From 588919529e13e4e7613323896e0b1c96d2958e41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Naist=20=C3=98vernes?= Date: Fri, 8 Feb 2019 10:29:09 +0100 Subject: [PATCH 01/31] Quick-fix: Fixed the rounding of a button and centered a message --- css/main.css | 113 +++++++++++--------------------------- css/main.css.map | 2 +- login.php | 5 +- scss/partials/_login.scss | 8 ++- 4 files changed, 44 insertions(+), 84 deletions(-) diff --git a/css/main.css b/css/main.css index 5e3f013..c95865b 100644 --- a/css/main.css +++ b/css/main.css @@ -10,8 +10,7 @@ h1 { margin: 0.67em 0; } hr { - -webkit-box-sizing: content-box; - box-sizing: content-box; + box-sizing: content-box; height: 0; overflow: visible; } @@ -20,14 +19,12 @@ pre { font-size: 1em; } a { - background-color: transparent; -} + background-color: transparent; } abbr[title] { border-bottom: none; text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; } + text-decoration: underline dotted; } b, strong { @@ -99,8 +96,7 @@ fieldset { padding: 0.35em 0.75em 0.625em; } legend { - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; color: inherit; display: table; max-width: 100%; @@ -115,8 +111,7 @@ textarea { [type="checkbox"], [type="radio"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; padding: 0; } [type="number"]::-webkit-inner-spin-button, @@ -149,21 +144,14 @@ template { *, *:after, *:before { - -webkit-box-sizing: inherit; - box-sizing: inherit; } + box-sizing: inherit; } html { - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; font-size: 62.5%; } body { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - display: -webkit-box; - display: -ms-flexbox; + flex-direction: column; display: flex; min-height: 100vh; font-size: 1.6em; @@ -173,21 +161,15 @@ body { letter-spacing: 0.01em; } main { - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; } + flex: 1; } .button-text, .button-outlined, .button-contained, .button-toggle { display: inline-block; - -webkit-transition: 0.3s; transition: 0.3s; border: 1px solid transparent; border-radius: 0.3rem; padding: 1rem 1.6rem 0.9rem; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + user-select: none; font-size: 1.4rem; font-weight: 700; text-align: center; @@ -232,15 +214,12 @@ main { height: 4.1rem; background-color: transparent; } .button-toggle > img, .button-toggle > svg { - -webkit-transform: translateY(0.5rem); - transform: translateY(0.5rem); + transform: translateY(0.5rem); margin-top: -1rem; width: 2rem; height: 2rem; } .button-group { - display: -webkit-inline-box; - display: -ms-inline-flexbox; display: inline-flex; } .button-group > *:not(:first-child) { border-left: none; @@ -253,8 +232,7 @@ main { .button-ripple { position: relative; overflow: hidden; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } + transform: translate3d(0, 0, 0); } .button-ripple:after { content: ""; display: block; @@ -267,18 +245,12 @@ main { background-image: radial-gradient(circle, #b9d9be 10%, transparent 10.01%); background-repeat: no-repeat; background-position: 50%; - -webkit-transform: scale(10, 10); - transform: scale(10, 10); + transform: scale(10, 10); opacity: 0; - -webkit-transition: opacity 1s, -webkit-transform 0.5s; - transition: opacity 1s, -webkit-transform 0.5s; - transition: transform 0.5s, opacity 1s; - transition: transform 0.5s, opacity 1s, -webkit-transform 0.5s; } + transition: transform 0.5s, opacity 1s; } .button-ripple:active:after { - -webkit-transform: scale(0, 0); - transform: scale(0, 0); + transform: scale(0, 0); opacity: 0.3; - -webkit-transition: 0s; transition: 0s; } .button-block { @@ -294,21 +266,16 @@ main { position: absolute; top: 50%; left: 2.4rem; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); + transform: translateY(-50%); opacity: 0; - -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease; - transition: opacity 0.3s ease, -webkit-transform 0.3s ease; transition: opacity 0.3s ease, transform 0.3s ease; - transition: opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease; font-size: 1.2rem; } .float-label input:not(:placeholder-shown) { padding: 2.4rem 2.4rem 1rem; } .float-label input:not(:placeholder-shown) + label { - -webkit-transform: translateY(calc(-50% - 1.6rem)); - transform: translateY(calc(-50% - 1.6rem)); + transform: translateY(calc(-50% - 1.6rem)); opacity: 0.5; } body { @@ -316,8 +283,7 @@ body { .card { position: relative; - -webkit-box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.2); - box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.2); + box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.2); border-radius: 2px; width: 200px; overflow: hidden; } @@ -332,38 +298,24 @@ body { background-color: white; } .card-details { - display: -webkit-box; - display: -ms-flexbox; display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + justify-content: center; + align-items: center; position: absolute; bottom: 0; width: 100%; min-height: 60px; - background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.75)), to(transparent)); background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.75), transparent); color: white; } .login-wrapper { - display: -webkit-box; - display: -ms-flexbox; display: flex; } .login-container { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + align-items: center; z-index: 1000; - display: -webkit-box; - display: -ms-flexbox; display: flex; - -webkit-box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2), 0 0 12px 0 rgba(0, 0, 0, 0.2); - box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2), 0 0 12px 0 rgba(0, 0, 0, 0.2); + box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2), 0 0 12px 0 rgba(0, 0, 0, 0.2); width: 100%; } .login { @@ -387,8 +339,7 @@ body { .login input[type=password], .login input[type=email] { margin-bottom: 1rem; - -webkit-box-shadow: inset 0.1rem 0.1rem rgba(0, 0, 0, 0.1), 0 -0.1rem 0 rgba(255, 255, 255, 0.15); - box-shadow: inset 0.1rem 0.1rem rgba(0, 0, 0, 0.1), 0 -0.1rem 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0.1rem 0.1rem rgba(0, 0, 0, 0.1), 0 -0.1rem 0 rgba(255, 255, 255, 0.15); border-radius: 5000rem; border: none; width: 100%; } @@ -396,7 +347,7 @@ body { .login input:focus { outline: none; } -.login button { +.login input[type=submit] { position: relative; border-radius: 5000rem; cursor: pointer; } @@ -405,8 +356,7 @@ body { position: absolute; top: 50%; left: 1.4rem; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); + transform: translateY(-50%); width: 2.4rem; vertical-align: top; } @@ -414,11 +364,7 @@ body { margin-left: 1rem; } .login-controllers { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - display: -webkit-box; - display: -ms-flexbox; + justify-content: flex-end; display: flex; } .login-image { @@ -429,6 +375,11 @@ body { background-repeat: no-repeat; background-color: white; } +.login-fail { + margin: 0 auto; + padding: 0 2rem; + max-width: 40rem; } + @media (min-width: 60rem) { .login-container { min-width: 50rem; @@ -448,4 +399,4 @@ body { clear: both; display: table; } -/*# sourceMappingURL=main.css.map */ \ No newline at end of file +/*# sourceMappingURL=main.css.map */ diff --git a/css/main.css.map b/css/main.css.map index f46defa..de68354 100644 --- a/css/main.css.map +++ b/css/main.css.map @@ -1,6 +1,6 @@ { "version": 3, -"mappings": "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", +"mappings": "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", "sources": ["../scss/vendor/_normalize.scss","../scss/partials/_base.scss","../scss/partials/_button.scss","../scss/modules/_color.scss","../scss/partials/_float-label.scss","../scss/partials/_card.scss","../scss/partials/_login.scss","../scss/partials/_utility.scss"], "names": [], "file": "main.css" diff --git a/login.php b/login.php index d7d67fa..16ce519 100644 --- a/login.php +++ b/login.php @@ -72,7 +72,10 @@ -

+
+

+
+ diff --git a/scss/partials/_login.scss b/scss/partials/_login.scss index 3619911..74ae3dc 100644 --- a/scss/partials/_login.scss +++ b/scss/partials/_login.scss @@ -48,7 +48,7 @@ outline: none; } -.login button { +.login input[type=submit] { position: relative; border-radius: 5000rem; @@ -88,6 +88,12 @@ background-color: white; } +.login-fail { + margin: 0 auto; + padding: 0 2rem; + max-width: 40rem; +} + @media (min-width: 60rem) { .login-container { From 341dbd99b8b247d5b33acdbd04548569f8ec7b69 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 8 Feb 2019 11:51:18 +0100 Subject: [PATCH 02/31] Added verify_code to the db and user.php In preparation for the email activation system --- gamesite_db.sql | 41 +++++++++++++++++++++-------------------- includes/user.php | 4 +++- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/gamesite_db.sql b/gamesite_db.sql index d5c6804..fba49f0 100644 --- a/gamesite_db.sql +++ b/gamesite_db.sql @@ -1,11 +1,11 @@ -- phpMyAdmin SQL Dump --- version 4.8.3 +-- version 4.8.1 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 --- Generation Time: 28. Jan, 2019 23:27 PM --- Tjener-versjon: 10.1.35-MariaDB --- PHP Version: 7.2.9 +-- Generation Time: Feb 08, 2019 at 11:24 AM +-- Server version: 10.1.33-MariaDB +-- PHP Version: 7.2.6 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; @@ -25,7 +25,7 @@ SET time_zone = "+00:00"; -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `achievements` +-- Table structure for table `achievements` -- CREATE TABLE `achievements` ( @@ -35,7 +35,7 @@ CREATE TABLE `achievements` ( -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `friend_list` +-- Table structure for table `friend_list` -- CREATE TABLE `friend_list` ( @@ -46,7 +46,7 @@ CREATE TABLE `friend_list` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dataark for tabell `friend_list` +-- Dumping data for table `friend_list` -- INSERT INTO `friend_list` (`id`, `user_1`, `user_2`, `status`) VALUES @@ -55,7 +55,7 @@ INSERT INTO `friend_list` (`id`, `user_1`, `user_2`, `status`) VALUES -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `gained_achievements` +-- Table structure for table `gained_achievements` -- CREATE TABLE `gained_achievements` ( @@ -67,7 +67,7 @@ CREATE TABLE `gained_achievements` ( -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `games` +-- Table structure for table `games` -- CREATE TABLE `games` ( @@ -82,7 +82,7 @@ CREATE TABLE `games` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dataark for tabell `games` +-- Dumping data for table `games` -- INSERT INTO `games` (`id`, `title`, `genre`, `description`, `creator`, `foldername`, `filename`, `size`) VALUES @@ -94,7 +94,7 @@ INSERT INTO `games` (`id`, `title`, `genre`, `description`, `creator`, `folderna -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `ratings` +-- Table structure for table `ratings` -- CREATE TABLE `ratings` ( @@ -107,7 +107,7 @@ CREATE TABLE `ratings` ( -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `users` +-- Table structure for table `users` -- CREATE TABLE `users` ( @@ -120,22 +120,23 @@ CREATE TABLE `users` ( `last_name` varchar(50) NOT NULL, `user_image` varchar(100) NOT NULL, `joined` date NOT NULL, - `privilege_level` tinyint(4) NOT NULL + `privilege_level` tinyint(4) NOT NULL, + `verify_code` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dataark for tabell `users` +-- Dumping data for table `users` -- -INSERT INTO `users` (`id`, `email`, `username`, `password`, `first_name`, `middle_name`, `last_name`, `user_image`, `joined`, `privilege_level`) VALUES -(1, 'hehe@willi.no', 'WilliWonka', 'qwerty', 'Willy', 'Wonka', 'Wonksense', '1.png', '2019-01-23', 1), -(2, 'Derp@Derpesen.no', 'Derperud', 'qwerty', 'Dermont', 'Derp', 'Derperu', '3.png', '2019-01-23', 0), -(3, 'heman@willi.no', 'heman', 'qwerty', 'misterio', 'universio', 'Wonkondo', '2.png', '2019-01-23', 0); +INSERT INTO `users` (`id`, `email`, `username`, `password`, `first_name`, `middle_name`, `last_name`, `user_image`, `joined`, `privilege_level`, `verify_code`) VALUES +(1, 'hehe@willi.no', 'WilliWonka', 'qwerty', 'Willy', 'Wonka', 'Wonksense', '1.png', '2019-01-23', 1, ''), +(2, 'Derp@Derpesen.no', 'Derperud', 'qwerty', 'Dermont', 'Derp', 'Derperu', '3.png', '2019-01-23', 0, ''), +(3, 'heman@willi.no', 'heman', 'qwerty', 'misterio', 'universio', 'Wonkondo', '2.png', '2019-01-23', 0, ''); -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `user_activity` +-- Table structure for table `user_activity` -- CREATE TABLE `user_activity` ( @@ -148,7 +149,7 @@ CREATE TABLE `user_activity` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dataark for tabell `user_activity` +-- Dumping data for table `user_activity` -- INSERT INTO `user_activity` (`id`, `act`, `user_id`, `target_id`, `type`, `date`) VALUES diff --git a/includes/user.php b/includes/user.php index 38b6e80..1f6f89a 100644 --- a/includes/user.php +++ b/includes/user.php @@ -7,7 +7,7 @@ class User extends Db_object{ protected static $db_table = "users"; //Slik at man kan endre navnet på databasetabellen. //Array skal brukes i properies() og inneholder bruker-variablene til objektet. - protected static $db_table_fields = array('username', 'email', 'password', 'first_name', 'middle_name', 'last_name', 'user_image', 'joined'); + protected static $db_table_fields = array('username', 'email', 'password', 'first_name', 'middle_name', 'last_name', 'user_image', 'joined', 'verify_code' ); public $id; public $username; public $email; @@ -17,6 +17,7 @@ class User extends Db_object{ public $last_name; public $user_image; public $joined; + public $verify_code; // Verifiserer at brukeren ligger i databasen, brukes ved login og kan brukes andre steder. public static function verify_user($email, $password) { @@ -252,6 +253,7 @@ public static function verify_new_user($username, $email, $password, $password_c $user->last_name = $last_name; $user->user_image = "1.png"; $user->joined = date("Y-m-d"); + $user->verify_code = md5($username . microtime()); $user->create(); From 023ae60133aadabe62586245c9e6811612b1e5f3 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 8 Feb 2019 11:51:18 +0100 Subject: [PATCH 03/31] Added verify_code to the db and user.php In preparation for the email activation system It uses the username + current microtime for making the verification code and then it hashes this to make it unique --- gamesite_db.sql | 41 +++++++++++++++++++++-------------------- includes/user.php | 4 +++- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/gamesite_db.sql b/gamesite_db.sql index d5c6804..fba49f0 100644 --- a/gamesite_db.sql +++ b/gamesite_db.sql @@ -1,11 +1,11 @@ -- phpMyAdmin SQL Dump --- version 4.8.3 +-- version 4.8.1 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 --- Generation Time: 28. Jan, 2019 23:27 PM --- Tjener-versjon: 10.1.35-MariaDB --- PHP Version: 7.2.9 +-- Generation Time: Feb 08, 2019 at 11:24 AM +-- Server version: 10.1.33-MariaDB +-- PHP Version: 7.2.6 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; @@ -25,7 +25,7 @@ SET time_zone = "+00:00"; -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `achievements` +-- Table structure for table `achievements` -- CREATE TABLE `achievements` ( @@ -35,7 +35,7 @@ CREATE TABLE `achievements` ( -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `friend_list` +-- Table structure for table `friend_list` -- CREATE TABLE `friend_list` ( @@ -46,7 +46,7 @@ CREATE TABLE `friend_list` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dataark for tabell `friend_list` +-- Dumping data for table `friend_list` -- INSERT INTO `friend_list` (`id`, `user_1`, `user_2`, `status`) VALUES @@ -55,7 +55,7 @@ INSERT INTO `friend_list` (`id`, `user_1`, `user_2`, `status`) VALUES -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `gained_achievements` +-- Table structure for table `gained_achievements` -- CREATE TABLE `gained_achievements` ( @@ -67,7 +67,7 @@ CREATE TABLE `gained_achievements` ( -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `games` +-- Table structure for table `games` -- CREATE TABLE `games` ( @@ -82,7 +82,7 @@ CREATE TABLE `games` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dataark for tabell `games` +-- Dumping data for table `games` -- INSERT INTO `games` (`id`, `title`, `genre`, `description`, `creator`, `foldername`, `filename`, `size`) VALUES @@ -94,7 +94,7 @@ INSERT INTO `games` (`id`, `title`, `genre`, `description`, `creator`, `folderna -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `ratings` +-- Table structure for table `ratings` -- CREATE TABLE `ratings` ( @@ -107,7 +107,7 @@ CREATE TABLE `ratings` ( -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `users` +-- Table structure for table `users` -- CREATE TABLE `users` ( @@ -120,22 +120,23 @@ CREATE TABLE `users` ( `last_name` varchar(50) NOT NULL, `user_image` varchar(100) NOT NULL, `joined` date NOT NULL, - `privilege_level` tinyint(4) NOT NULL + `privilege_level` tinyint(4) NOT NULL, + `verify_code` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dataark for tabell `users` +-- Dumping data for table `users` -- -INSERT INTO `users` (`id`, `email`, `username`, `password`, `first_name`, `middle_name`, `last_name`, `user_image`, `joined`, `privilege_level`) VALUES -(1, 'hehe@willi.no', 'WilliWonka', 'qwerty', 'Willy', 'Wonka', 'Wonksense', '1.png', '2019-01-23', 1), -(2, 'Derp@Derpesen.no', 'Derperud', 'qwerty', 'Dermont', 'Derp', 'Derperu', '3.png', '2019-01-23', 0), -(3, 'heman@willi.no', 'heman', 'qwerty', 'misterio', 'universio', 'Wonkondo', '2.png', '2019-01-23', 0); +INSERT INTO `users` (`id`, `email`, `username`, `password`, `first_name`, `middle_name`, `last_name`, `user_image`, `joined`, `privilege_level`, `verify_code`) VALUES +(1, 'hehe@willi.no', 'WilliWonka', 'qwerty', 'Willy', 'Wonka', 'Wonksense', '1.png', '2019-01-23', 1, ''), +(2, 'Derp@Derpesen.no', 'Derperud', 'qwerty', 'Dermont', 'Derp', 'Derperu', '3.png', '2019-01-23', 0, ''), +(3, 'heman@willi.no', 'heman', 'qwerty', 'misterio', 'universio', 'Wonkondo', '2.png', '2019-01-23', 0, ''); -- -------------------------------------------------------- -- --- Tabellstruktur for tabell `user_activity` +-- Table structure for table `user_activity` -- CREATE TABLE `user_activity` ( @@ -148,7 +149,7 @@ CREATE TABLE `user_activity` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dataark for tabell `user_activity` +-- Dumping data for table `user_activity` -- INSERT INTO `user_activity` (`id`, `act`, `user_id`, `target_id`, `type`, `date`) VALUES diff --git a/includes/user.php b/includes/user.php index 38b6e80..1f6f89a 100644 --- a/includes/user.php +++ b/includes/user.php @@ -7,7 +7,7 @@ class User extends Db_object{ protected static $db_table = "users"; //Slik at man kan endre navnet på databasetabellen. //Array skal brukes i properies() og inneholder bruker-variablene til objektet. - protected static $db_table_fields = array('username', 'email', 'password', 'first_name', 'middle_name', 'last_name', 'user_image', 'joined'); + protected static $db_table_fields = array('username', 'email', 'password', 'first_name', 'middle_name', 'last_name', 'user_image', 'joined', 'verify_code' ); public $id; public $username; public $email; @@ -17,6 +17,7 @@ class User extends Db_object{ public $last_name; public $user_image; public $joined; + public $verify_code; // Verifiserer at brukeren ligger i databasen, brukes ved login og kan brukes andre steder. public static function verify_user($email, $password) { @@ -252,6 +253,7 @@ public static function verify_new_user($username, $email, $password, $password_c $user->last_name = $last_name; $user->user_image = "1.png"; $user->joined = date("Y-m-d"); + $user->verify_code = md5($username . microtime()); $user->create(); From aad1daf0351b2622e2547656a6611beacc87f131 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 8 Feb 2019 13:37:49 +0100 Subject: [PATCH 04/31] Added script to block refresh on login.php Will finish the login here and check out the functions, look at what we can do for security and check on the error messages. --- login.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/login.php b/login.php index 16ce519..fcb1451 100644 --- a/login.php +++ b/login.php @@ -7,7 +7,6 @@ if ($session->is_signed_in()) {redirect("index.php");} if (isset($_POST['submit'])) { - echo "User found!"; $email = trim($_POST['email']); $password = trim($_POST['password']); @@ -68,7 +67,7 @@ - + @@ -76,6 +75,16 @@

+ + + @@ -83,4 +92,5 @@ - \ No newline at end of file + + From 8377c49706d456d24d011e5e5eac7a3f286019ce Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 8 Feb 2019 14:09:08 +0100 Subject: [PATCH 05/31] Added the activation mail sender This sends a mail to the registered with an activation link Needs a mail server to work --- includes/email.php | 36 ++++++++++++++++++++++++++++++++++++ includes/user.php | 4 ++++ 2 files changed, 40 insertions(+) create mode 100644 includes/email.php diff --git a/includes/email.php b/includes/email.php new file mode 100644 index 0000000..889d74f --- /dev/null +++ b/includes/email.php @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/includes/user.php b/includes/user.php index 1f6f89a..08732b8 100644 --- a/includes/user.php +++ b/includes/user.php @@ -255,8 +255,12 @@ public static function verify_new_user($username, $email, $password, $password_c $user->joined = date("Y-m-d"); $user->verify_code = md5($username . microtime()); + Email::sendActivationMail($email, $first_name); + $user->create(); + + } return $error_array; From 62b4490b98cfaecbbf31ef3a6905744919bb121e Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 8 Feb 2019 14:32:23 +0100 Subject: [PATCH 06/31] Added some comments to email.php and user.php I also changed the name of the method send_ActivationMail --- includes/email.php | 23 +++++++++++++++-------- includes/user.php | 2 +- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/includes/email.php b/includes/email.php index 889d74f..2e3c7bb 100644 --- a/includes/email.php +++ b/includes/email.php @@ -1,22 +1,34 @@ \ No newline at end of file diff --git a/includes/user.php b/includes/user.php index 08732b8..73a1b3f 100644 --- a/includes/user.php +++ b/includes/user.php @@ -255,7 +255,7 @@ public static function verify_new_user($username, $email, $password, $password_c $user->joined = date("Y-m-d"); $user->verify_code = md5($username . microtime()); - Email::sendActivationMail($email, $first_name); + Email::send_ActivationMail($email, $first_name); $user->create(); From faeecdc7889e8fdd18d8a67df3ff19df47772e31 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 8 Feb 2019 15:12:04 +0100 Subject: [PATCH 07/31] Added Hashing of stored password The old users should not work anymore, you need to make new ones. The password stored in the database will now be hashed with password_hash, it will be checked up towards the users typed password with password_verify(). Changed things in verify_user() and verify_new_user() Read about login security and will implement what I've learned in a new branch. --- includes/user.php | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/includes/user.php b/includes/user.php index 38b6e80..9f78ab5 100644 --- a/includes/user.php +++ b/includes/user.php @@ -27,20 +27,25 @@ public static function verify_user($email, $password) { $sql = "SELECT * FROM " . self::$db_table . " WHERE "; $sql .= "email = '{$email}' "; - $sql .= "AND password = '{$password}' "; $sql .= "LIMIT 1"; - - /* ----------------------------- HASHED PASSORD SATT PÅ VENT TIL NÅ ------------------------------*/ + // Sends the sql into the database, gets a array with the users back, only one because limit 1. $the_result_array = self::find_by_query($sql); - //$hashed_password = $the_result_array->password; - //$password = password_verify($password, $hashed_password); - + // Checks if the collected array is empty or not. if (!empty($the_result_array)) { - // Array shif delivers the first - return array_shift($the_result_array); + // Collects the hashed password from the array that was collected by the sql. + $hashed_password = $the_result_array[0]->password; + + // Checks here where if the hashed password fits to the password that have been inserted by user. + if (password_verify($password, $hashed_password)) { + + // Array shift delivers the one in place 0. + return array_shift($the_result_array); + } + + return false; } else { return false; @@ -172,7 +177,7 @@ public static function verify_new_user($username, $email, $password, $password_c global $database; - //Creates the error array, error messages will be pushed into this, and + //Creates the error array, error messages will be pushed into this, and showed on the register page. $error_array = array(); $username = $database->escape_string($username); $email = $database->escape_string($email); @@ -197,6 +202,7 @@ public static function verify_new_user($username, $email, $password, $password_c $sql .= "username = '{$username}' "; $sql .= "LIMIT 1"; $the_result_array = self::find_by_query($sql); + if (!empty($the_result_array)) { array_push($error_array, "The username is already in use, pick something else!"); } @@ -232,6 +238,7 @@ public static function verify_new_user($username, $email, $password, $password_c array_push($error_array, "Your password must be between 5 and 30 characters"); } + $password = password_hash($password, PASSWORD_DEFAULT); //Check password - bruker check_password til å sjekke om et passord fungerer, kommer til å tilkalle verify_password. if (empty($error_array)) { From f738fdbf48a0a6a6d7908f562059f4e561188f1b Mon Sep 17 00:00:00 2001 From: Daniel Date: Sat, 9 Feb 2019 00:31:21 +0100 Subject: [PATCH 08/31] Added search-for-friend list and security changes The ability for users to search for people to add as friends now lies in the profile page, it will of course be heavily modified later when it added to the front-end. Did some security changes, removed the block for special characters, real_escape_string helps stopping SQL-injections, changed max characters to 50 from 30, and added call on escape_string some places. Created friend_search stat is used when the feature is used, and placed ajax on the list and button. --- includes/add_friend.php | 24 ++++++------- includes/friend_search.php | 56 +++++++++++++++++++++++++++++++ includes/self_profile_content.php | 15 +++++++++ includes/user.php | 33 +++++++++++++----- js/functions.js | 28 +++++++++++++++- 5 files changed, 133 insertions(+), 23 deletions(-) create mode 100644 includes/friend_search.php diff --git a/includes/add_friend.php b/includes/add_friend.php index bf8a788..43c5388 100644 --- a/includes/add_friend.php +++ b/includes/add_friend.php @@ -1,22 +1,20 @@ + - + - -is_signed_in()) {redirect("login.php");} ?> +if (!User::is_friend($_GET['i'], $_GET['o'])) { + $user = User::add_friend($_GET['i'], $_GET['o']); +} -user_id, $_GET['id']); +echo ""; -redirect("../users.php"); ?> \ No newline at end of file diff --git a/includes/friend_search.php b/includes/friend_search.php new file mode 100644 index 0000000..1ebed22 --- /dev/null +++ b/includes/friend_search.php @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + user_id, $user->id)) { ?> + + + + + + + +
+ + + + username; ?> +
+ +
+
\ No newline at end of file diff --git a/includes/self_profile_content.php b/includes/self_profile_content.php index 354a6fc..f012b74 100644 --- a/includes/self_profile_content.php +++ b/includes/self_profile_content.php @@ -1,3 +1,4 @@ + username . ", but there is little for you to do here at the moment."; ?> + + +
+ + +
+ + + + \ No newline at end of file diff --git a/includes/user.php b/includes/user.php index 9f78ab5..fa51249 100644 --- a/includes/user.php +++ b/includes/user.php @@ -79,7 +79,6 @@ public static function add_friend($user_id, $friend_id) { $sql = "INSERT INTO friend_list(user_1, user_2, status)"; $sql .= "VALUES ('{$user_id}', '{$friend_id}', '{$status}')"; - if ($database->query($sql)) { return true; @@ -92,12 +91,33 @@ public static function add_friend($user_id, $friend_id) { } + // The search function for users. + public function find_friend($search) { + + global $database; + + if ($search !== "") { + + $sql = "SELECT * FROM users WHERE "; + $search = $database->escape_string($search); + $sql .= " username LIKE '%{$search}%' "; + return self::find_by_query($sql); + } + + } + + // The search function for users. public function find_user($search, $category) { + global $database; + // Adds things to the search with. $sql = "SELECT * FROM users WHERE "; + $search = $database->escape_string($search); + $category = $database->escape_string($category); + if ($category == 'all') { $sql .= " first_name LIKE '%{$search}%' OR"; $sql .= " middle_name LIKE '%{$search}%' OR"; @@ -202,7 +222,7 @@ public static function verify_new_user($username, $email, $password, $password_c $sql .= "username = '{$username}' "; $sql .= "LIMIT 1"; $the_result_array = self::find_by_query($sql); - + if (!empty($the_result_array)) { array_push($error_array, "The username is already in use, pick something else!"); } @@ -227,15 +247,10 @@ public static function verify_new_user($username, $email, $password, $password_c if($password != $password_check) { array_push($error_array, "Your passwords do not match"); } - - /*Error message: If the passwords contain other than numbers and letters.*/ - if(preg_match('/[^A-Za-z0-9]/', $password)) { - array_push($error_array, "Your password can only contain english characters or numbers"); - } /*Error message: If the password is not between 5 and 30 characters long.*/ - if((strlen($password) > 30) || strlen($password) < 5) { - array_push($error_array, "Your password must be between 5 and 30 characters"); + if((strlen($password) > 50) || strlen($password) < 5) { + array_push($error_array, "Your password must be between 5 and 50 characters"); } $password = password_hash($password, PASSWORD_DEFAULT); diff --git a/js/functions.js b/js/functions.js index 1dc2695..e15da0d 100644 --- a/js/functions.js +++ b/js/functions.js @@ -54,4 +54,30 @@ function update_gamelist() { xmlhttp.open("GET","includes/gamelist.php?s="+search+"&c="+category+"&g="+genre,true); xmlhttp.send(); -} \ No newline at end of file +} + +function find_friend() { + + var search = document.getElementById("search").value; + + xmlhttp = new XMLHttpRequest(); + xmlhttp.onreadystatechange = function() { + document.getElementById("friend_search").innerHTML = this.responseText; + }; + + xmlhttp.open("GET","includes/friend_search.php?s="+search,true); + xmlhttp.send(); + +} + +function send_friend_request(user_id, other_id) { + + xmlhttp = new XMLHttpRequest(); + xmlhttp.onreadystatechange = function() { + document.getElementById("send_friend_request").innerHTML = this.responseText; + }; + + xmlhttp.open("GET","includes/add_friend.php?i="+user_id+"&o="+other_id,true); + xmlhttp.send(); + +} From 882d7430efef261f28d9a43c75f0ccdbe45b2021 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 10 Feb 2019 22:41:40 +0100 Subject: [PATCH 09/31] Added some work on show friend-requests The work is not near complete, looked for more security changes, but will finish the show messages list function and accept/decline friend request function. Lots of ways to make functions more abstract. I try to do it with the accept/decline function. --- includes/add_friend.php | 8 +--- includes/friend_search.php | 1 + includes/handle_friend_request.php | 16 ++++++++ includes/message_list.php | 62 ++++++++++++++++++++++++++++++ includes/self_profile_content.php | 11 +++++- includes/user.php | 10 ++++- js/functions.js | 31 +++++++++++++++ 7 files changed, 130 insertions(+), 9 deletions(-) create mode 100644 includes/handle_friend_request.php create mode 100644 includes/message_list.php diff --git a/includes/add_friend.php b/includes/add_friend.php index 43c5388..601f808 100644 --- a/includes/add_friend.php +++ b/includes/add_friend.php @@ -1,6 +1,5 @@ find_friend();"; - - -?> \ No newline at end of file +?> diff --git a/includes/friend_search.php b/includes/friend_search.php index 1ebed22..59dd987 100644 --- a/includes/friend_search.php +++ b/includes/friend_search.php @@ -40,6 +40,7 @@ user_id, $user->id)) { ?> +
diff --git a/includes/handle_friend_request.php b/includes/handle_friend_request.php new file mode 100644 index 0000000..be0e3cd --- /dev/null +++ b/includes/handle_friend_request.php @@ -0,0 +1,16 @@ + + + diff --git a/includes/message_list.php b/includes/message_list.php new file mode 100644 index 0000000..3c36a47 --- /dev/null +++ b/includes/message_list.php @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + user_id, $user->id)) { ?> + + + + + + + +
+ + + + username; ?> Wants to become your friend! + +
+
+ + +
+
\ No newline at end of file diff --git a/includes/self_profile_content.php b/includes/self_profile_content.php index f012b74..2744db5 100644 --- a/includes/self_profile_content.php +++ b/includes/self_profile_content.php @@ -1,7 +1,6 @@ +
+ +

------------------------------------------------------------------------------------

+ +
+ +
+ \ No newline at end of file diff --git a/includes/user.php b/includes/user.php index fa51249..f923b0b 100644 --- a/includes/user.php +++ b/includes/user.php @@ -91,7 +91,7 @@ public static function add_friend($user_id, $friend_id) { } - // The search function for users. + // The search function for users, uses when they look trough the list to add to friends. public function find_friend($search) { global $database; @@ -148,6 +148,12 @@ public function find_user($search, $category) { return self::find_by_query($sql); } + + public static function find_messages() { + + } + + // checks if the user is an admin or not. public static function is_admin($user_id) { @@ -163,7 +169,7 @@ public static function is_admin($user_id) { return !empty($the_result_array) ? true : false; } - // checks if the user is an admin or not. + // checks if the user is an friend or not. public static function is_friend($user_id, $friend_id) { global $database; diff --git a/js/functions.js b/js/functions.js index e15da0d..2c8d431 100644 --- a/js/functions.js +++ b/js/functions.js @@ -81,3 +81,34 @@ function send_friend_request(user_id, other_id) { xmlhttp.send(); } + +//Shows all the message, friend-requests and others. +function find_messages() { + + var search = document.getElementById("search").value; + + xmlhttp = new XMLHttpRequest(); + xmlhttp.onreadystatechange = function() { + document.getElementById("friend_search").innerHTML = this.responseText; + }; + + xmlhttp.open("GET","includes/friend_search.php?s="+search,true); + xmlhttp.send(); + +} + +//Accept one of the friend request when the user accept, changed the friend_list status to 1. +function handle_friend_request(user_id, other_id, act) { + + //Act is 0 if declined and 1 if accepted. + + xmlhttp = new XMLHttpRequest(); + xmlhttp.onreadystatechange = function() { + document.getElementById("handle_friend_request").innerHTML = this.responseText; + }; + + xmlhttp.open("GET","includes/handle_friend_request.php?i="+user_id+"&o="+other_id,true); + xmlhttp.send(); + +} + From 356e7fd94a071f1fc60d63986ce9565a6ee2a7c7 Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 11 Feb 2019 17:36:41 +0100 Subject: [PATCH 10/31] Added some more work on the friend function It can now accept the requests other might have sent to a user with a button on the profile-page, decline option will be added soon, together with fixes and check-overs. Made a new class named friendship, find something better later. --- includes/friendship.php | 54 ++++++++++++++++++++++++++++++ includes/handle_friend_request.php | 16 ++++----- includes/init.php | 1 + includes/message_list.php | 38 ++++++--------------- includes/user.php | 5 --- js/functions.js | 19 ++--------- 6 files changed, 74 insertions(+), 59 deletions(-) create mode 100644 includes/friendship.php diff --git a/includes/friendship.php b/includes/friendship.php new file mode 100644 index 0000000..d25f4aa --- /dev/null +++ b/includes/friendship.php @@ -0,0 +1,54 @@ +user_1 = $user_1; + $friendship->user_2 = $user_2; + $friendship->status = $status; + $friendship->id = $id; + + $friendship->update(); + + } + +} + +?> \ No newline at end of file diff --git a/includes/handle_friend_request.php b/includes/handle_friend_request.php index be0e3cd..023ec35 100644 --- a/includes/handle_friend_request.php +++ b/includes/handle_friend_request.php @@ -2,15 +2,13 @@ This accepts or deletes a friend-request depending on the last _get. --> - + diff --git a/includes/init.php b/includes/init.php index dbc41aa..071ccb3 100644 --- a/includes/init.php +++ b/includes/init.php @@ -16,6 +16,7 @@ require_once("session.php");// Kontroll over nåværende session. require_once("achievement.php"); // Funksjoner som er utenfor klasser. require_once("rating.php"); // Klassen som omhandler ratings. +require_once("friendship.php"); // Klassen som omhandler ratings. //Place paths later on here. ?> \ No newline at end of file diff --git a/includes/message_list.php b/includes/message_list.php index 3c36a47..df4500b 100644 --- a/includes/message_list.php +++ b/includes/message_list.php @@ -6,57 +6,39 @@ user_id); ?> + foreach ($requests as $request) { ?> - - + - user_id, $user->id)) { ?> - - + + } ?>
- - - - username; ?> Wants to become your friend!id; ?> Wants to become your friend!
-
- - + +
\ No newline at end of file diff --git a/includes/user.php b/includes/user.php index f923b0b..80ed6f1 100644 --- a/includes/user.php +++ b/includes/user.php @@ -149,11 +149,6 @@ public function find_user($search, $category) { } - public static function find_messages() { - - } - - // checks if the user is an admin or not. public static function is_admin($user_id) { diff --git a/js/functions.js b/js/functions.js index 2c8d431..788fedf 100644 --- a/js/functions.js +++ b/js/functions.js @@ -82,23 +82,8 @@ function send_friend_request(user_id, other_id) { } -//Shows all the message, friend-requests and others. -function find_messages() { - - var search = document.getElementById("search").value; - - xmlhttp = new XMLHttpRequest(); - xmlhttp.onreadystatechange = function() { - document.getElementById("friend_search").innerHTML = this.responseText; - }; - - xmlhttp.open("GET","includes/friend_search.php?s="+search,true); - xmlhttp.send(); - -} - //Accept one of the friend request when the user accept, changed the friend_list status to 1. -function handle_friend_request(user_id, other_id, act) { +function handle_friend_request(user_id, other_id, id, act) { //Act is 0 if declined and 1 if accepted. @@ -107,7 +92,7 @@ function handle_friend_request(user_id, other_id, act) { document.getElementById("handle_friend_request").innerHTML = this.responseText; }; - xmlhttp.open("GET","includes/handle_friend_request.php?i="+user_id+"&o="+other_id,true); + xmlhttp.open("GET","includes/handle_friend_request.php?ui="+user_id+"&oi="+other_id+"&a="+act+"&id="+id,true); xmlhttp.send(); } From 977780a7e50e5261bb55565158c174a8cc7581df Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 12 Feb 2019 14:36:36 +0100 Subject: [PATCH 11/31] Added accept and decline friend request Fixed delete() by adding $session, as it uses it. Added some messages to better explain some of the pages. Added two buttons where the user can accept and decline friend-requests, but at the moment first object on the list will be updated , even trough it will work correctly in the back-end. Removed unnecessary call to the database in the friend_request_handler() . Changed the friend_request_handler.php to add a message to the user when updated. Added on the search-words in friend-search and the user-list. --- includes/add_friend.php | 13 ++++---- includes/db_object.php | 5 +-- includes/friend_search.php | 34 +++++++++++++++++---- includes/friendship.php | 16 +++++----- includes/handle_friend_request.php | 9 +++++- includes/message_list.php | 28 ++++++++--------- includes/user.php | 14 +++------ includes/userlist.php | 49 +++++++++++++++++++++++++++--- 8 files changed, 117 insertions(+), 51 deletions(-) diff --git a/includes/add_friend.php b/includes/add_friend.php index 601f808..017467a 100644 --- a/includes/add_friend.php +++ b/includes/add_friend.php @@ -2,15 +2,14 @@ This sends a friend request into the database. --> - -if (!User::is_friend($_GET['i'], $_GET['o'])) { - $user = User::add_friend($_GET['i'], $_GET['o']); -} + diff --git a/includes/db_object.php b/includes/db_object.php index 2e93726..0cd4dc6 100644 --- a/includes/db_object.php +++ b/includes/db_object.php @@ -186,7 +186,6 @@ public function create() { } - //Oppdaterer et objekt public function update() { @@ -219,14 +218,16 @@ public function update() { public function delete() { + global $database; + global $session; $sql = "DELETE FROM " . static::$db_table . " WHERE id= " . $database->escape_string($this->id); $sql .= " LIMIT 1"; $database->query($sql); - //Logs the creation of a object in the user activity-table on the database. + //Logs the creation of a object in the user activity-table on the database, adds the database-table that it belongs to. $log = $this->log_user_activity("delete", $session->user_id, $this->id, static::$db_table); //If the affected rows equal one, then... diff --git a/includes/friend_search.php b/includes/friend_search.php index 59dd987..e93da56 100644 --- a/includes/friend_search.php +++ b/includes/friend_search.php @@ -1,4 +1,12 @@ - + - + - username; ?> + + + username); + + // Switches out what is searched with the same with marks around it. + echo str_replace($search, '' . $search . '', $username); + + ?> + + + user_id, $user->id)) { ?> @@ -52,6 +74,6 @@ + } + } ?> \ No newline at end of file diff --git a/includes/friendship.php b/includes/friendship.php index d25f4aa..8d5ac5f 100644 --- a/includes/friendship.php +++ b/includes/friendship.php @@ -27,25 +27,25 @@ public static function find_friend_requests($user_id) { } + // Will accept or decline depending on the $status is 1 or 0. public function friend_request_handler($user_1, $user_2, $status, $id) { global $database; global $session; - $sql = "SELECT * FROM friend_list WHERE "; - $sql .= "user_1 = '{$user_1}' "; - $sql .= "AND user_2 = '{$user_2}' "; - $sql .= "LIMIT 1"; - - $the_result_array = self::find_by_query($sql); - $friendship = new Friendship(); $friendship->user_1 = $user_1; $friendship->user_2 = $user_2; $friendship->status = $status; $friendship->id = $id; - $friendship->update(); + if ($status == 1) { + + $friendship->update(); + } else { + + $friendship->delete(); + } } diff --git a/includes/handle_friend_request.php b/includes/handle_friend_request.php index 023ec35..342b74f 100644 --- a/includes/handle_friend_request.php +++ b/includes/handle_friend_request.php @@ -1,5 +1,6 @@ @@ -8,7 +9,13 @@ $user_1 = $_GET['ui']; $user_2 = $_GET['oi']; $status = $_GET['a']; - $id = $_GET['id']; + $id = $_GET['id']; Friendship::friend_request_handler($user_1, $user_2, $status, $id); + + if ($status == 1) { + echo "Friendship accepted!"; + } else { + echo "Friendship rejected!"; + } ?> diff --git a/includes/message_list.php b/includes/message_list.php index df4500b..f790f14 100644 --- a/includes/message_list.php +++ b/includes/message_list.php @@ -1,14 +1,9 @@ - + user_id); ?> @@ -20,25 +15,30 @@ // Places here in the number of users that you decide at the end of this foreach. $i= 0; - foreach ($requests as $request) { ?> + foreach ($requests as $request) { + + // Collects all the information of the user that sent the request + $user = User::find_by_id($request->user_1); + + ?> - id; ?> Wants to become your friend! + username; ?> Wants to become your friend!
- +
- + \ No newline at end of file diff --git a/includes/user.php b/includes/user.php index 80ed6f1..6aac88e 100644 --- a/includes/user.php +++ b/includes/user.php @@ -62,13 +62,14 @@ public static function verify_update($first_name, $middle_name, $last_name) { $middle_name = $database->escape_string($middle_name); $last_name = $database->escape_string($last_name); - if(strlen($first_name ) > 30 || strlen($middle_name) > 30 || strlen($last_name) > 30) { + if(strlen($first_name) > 30 || strlen($middle_name) > 30 || strlen($last_name) > 30) { array_push($error_array, "The firstname, middlename or last name cant be longer than 30 characters each."); } return $error_array; } + // public static function add_friend($user_id, $friend_id) { global $database; @@ -91,7 +92,7 @@ public static function add_friend($user_id, $friend_id) { } - // The search function for users, uses when they look trough the list to add to friends. + // The search function for users, uses when they look trough the list to add to friends. public function find_friend($search) { global $database; @@ -188,13 +189,11 @@ public function get_user_image() { } // Verifiserer at brukeren ligger i databasen, brukes ved llogin og kan brukes andre steder. - // Kan kuttes opp senere. public static function verify_new_user($username, $email, $password, $password_check, $first_name, $middle_name, $last_name) { - /* - * Legger feilmeldinger inn i error_array, error arrayet sendes så tilbake. + /* Legger feilmeldinger inn i error_array, error arrayet sendes så tilbake. * Hvis det er felmeldinger vil ikke brukeren bli laget, og feilmeldingene vil vises. - */ + */ global $database; @@ -264,9 +263,6 @@ public static function verify_new_user($username, $email, $password, $password_c //sets up the new user and creates it with create(); $user = new user(); - /*------------------------------------ Skal brukes når hashet passord settes opp --------------------------------------------*/ - //$password = password_hash($password, PASSWORD_BCRYPT); - $user->username = $username; $user->email = $email; $user->password = $password; diff --git a/includes/userlist.php b/includes/userlist.php index ba9913b..acd69e7 100644 --- a/includes/userlist.php +++ b/includes/userlist.php @@ -1,4 +1,7 @@ - + - username; ?> + + + username); + + // Switches out what is searched with the same with marks around it. + echo str_replace($search, '' . $search . '', $username); + + ?> + + + + + + first_name); + + // Switches out what is searched with the same with marks around it. + echo str_replace($search, '' . $search . '', $first_name); + + ?> + + + + + + last_name); + + // Switches out what is searched with the same with marks around it. + echo str_replace($search, '' . $search . '', $last_name); + + ?> + + - first_name; ?> - last_name; ?> joined; ?> Delete From a9632104928e8e90e12b87a7dcc5c9d53592652b Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 14 Feb 2019 21:58:26 +0100 Subject: [PATCH 12/31] Added fuction that makes string of characters Lies in user and is used to add a string of random characters at the end of the username when it is created. Can be abstracted later to work with the code that is sent out to check email. --- includes/user.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/includes/user.php b/includes/user.php index 6aac88e..563f8a1 100644 --- a/includes/user.php +++ b/includes/user.php @@ -260,6 +260,11 @@ public static function verify_new_user($username, $email, $password, $password_c //Check username - bruker check_username til å sjekke om brukernavnet fungerer. + + // Creates here the uinqe string that will be added to the username. + $user_id_str = User::create_unique_id(); + $username .= $user_id_str; + //sets up the new user and creates it with create(); $user = new user(); @@ -279,6 +284,19 @@ public static function verify_new_user($username, $email, $password, $password_c return $error_array; } + + // Function that creates the string that has to be added behind the username. + public static function create_unique_id($length = 5) { + $string = "#"; + $characters = array_merge(range('A','Z'), range('a','z'), range('0','9')); + $max = count($characters) - 1; + + for ($i = 0; $i < $length; $i++) { + $random = mt_rand(0, $max); + $string .= $characters[$random]; + } + return $string; + } } ?> \ No newline at end of file From aa9bbbcba95e84b1b1b37cf3d579013cf955625a Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 8 Mar 2019 09:34:55 +0100 Subject: [PATCH 13/31] Added phpdoc for methods and elsewhere --- gamepage.php | 18 +++++++++++-- includes/achievement.php | 15 ++++++----- includes/friend_search.php | 6 +++-- includes/friendship.php | 20 ++++++++++++--- includes/game.php | 52 ++++++++++++++++++++++++++++++++------ includes/init.php | 15 +++++++---- includes/message_list.php | 15 ++++++++--- includes/rate_game.php | 8 +++++- includes/user.php | 49 ++++++++++++++++++++++++++++++----- 9 files changed, 160 insertions(+), 38 deletions(-) diff --git a/gamepage.php b/gamepage.php index 4d50469..afa898f 100644 --- a/gamepage.php +++ b/gamepage.php @@ -1,4 +1,13 @@ - + + + + \ No newline at end of file diff --git a/includes/achievement.php b/includes/achievement.php index 3c43026..28557c8 100644 --- a/includes/achievement.php +++ b/includes/achievement.php @@ -13,12 +13,15 @@ class Achievement extends Db_object{ public $user_id; public $gained; - // Denne skal lage et achivement-objekt som så skal sendes inn til databasen. - // Objektet skal være satt sammen med rader fra både users og achievements. - // Skal kunne kalles på inne i spill hvis en viss handling skal skje. - // Feks: alle ball-objekter blir spist av en spillerstyrt slange. - // Kallet blir da noe alla: verify_achivement($user_id, $achivement_id); - + /** + * Denne skal lage et achivement-objekt som så skal sendes inn til databasen. + * Objektet skal være satt sammen med rader fra både users og achievements. + * Skal kunne kalles på inne i spill hvis en viss handling skal skje. + * Feks: alle ball-objekter blir spist av en spillerstyrt slange. + * Kallet blir da noe alla: verify_achivement($user_id, $achivement_id); + * + * @param $achievement_id will be the id thats bind the user together to the achievement. + */ public function verify_gained_achivement($achievement_id) { global $session; diff --git a/includes/friend_search.php b/includes/friend_search.php index e93da56..03fcd73 100644 --- a/includes/friend_search.php +++ b/includes/friend_search.php @@ -1,7 +1,7 @@ + @@ -58,7 +60,7 @@ - + user_id, $user->id)) { ?> diff --git a/includes/friendship.php b/includes/friendship.php index 8d5ac5f..7b47f8c 100644 --- a/includes/friendship.php +++ b/includes/friendship.php @@ -13,8 +13,12 @@ class Friendship extends Db_object{ public $user_2; public $status; - - // Finds all the friend requests sent to the user that is not answered before by the user. + /** + * Finds all the friend requests sent to the user that is not answered before by the user. + * + * @param Is the id of the reciever you want the friend requests to. + * @return Is the friend requests that is sent to the id in param. + */ public static function find_friend_requests($user_id) { global $database; @@ -27,7 +31,17 @@ public static function find_friend_requests($user_id) { } - // Will accept or decline depending on the $status is 1 or 0. + /** + * Will here accept or decline depending on wheter the input-param $status + * is 1 or 0, if it is 1 then it will be accepted and the row in the database + * will be updated to say so. + * + * @param $user_1 is the user that sent the friend-request + * @param $user_2 is the user that recieved the request, and have now accepted or refused. + * @param $status is either 1 for accept or 0 for refuse friend-request. + * @param $id is the id of the request, will use this to update. + * @return true if the process was finished and false if there was errors. + */ public function friend_request_handler($user_1, $user_2, $status, $id) { global $database; diff --git a/includes/game.php b/includes/game.php index f565957..88fc1a8 100644 --- a/includes/game.php +++ b/includes/game.php @@ -34,7 +34,15 @@ class Game extends Db_object { ); - // får $_FILES['uploaded_file'] som et argument($file), sets up the file. + + /** + * Gets the file as an argument and then does what it needs to do to it. + * Checks if the file is empty or if there is an error, makes agame if all + * is okay. + * + * @param $file the file that information will be collected from. + * @return True if all OK, false if error. + */ public function set_file($file) { // If file is empty, if there is no file, if type is notr array. @@ -52,24 +60,36 @@ public function set_file($file) { $this->filename = substr($this->foldername, 0, -3) . "php"; // kutter av zip og legger til php på der canvas ligger. $this->tmp_path = $file['tmp_name']; $this->size = $file['size']; - + return true; } } - - // Collects the placement of the game path, used when showing the picture at gameslist. + + /** + * Collects the placement of the game path, used when the game is called. + * + * @return the path to the games-folder where the main js is stored. + */ public function game_path() { return $this->upload_directory . DS . $this->foldername . DS . $this->filename; } - // Collects the placement of the game path, used when showing the picture at gameslist. + /** + * Collects the placement of the game path, used when showing the picture at gameslist. + * + * @return the path to the games-folder where the image id stored. + */ public function game_image_path() { return $this->upload_directory . DS . $this->foldername . DS . "image.png"; } - // Saves a game-object that has been made, the files and database-information. - // Also does a lot of error checking. + /** + * Stores a game object that have been made, and the database object for it. + * It also does a lot of error-checking when it does so. + * + * @return true if the process was finished and false if there was errors. + */ public function save() { //Checks if this has a game_id, if it has the game will be updated instead. @@ -126,7 +146,16 @@ public function save() { } } - + /** + * Uses the player-choosen category, genre and input search to + * look trough all the games stored in the database, to then + * collect all that fits. + * + * @param $category is what the user wants to search in, like title or creator. + * @param $genre is the genre of game you want to search trough. + * @param $search is the input that the user have written in the form. + * @return the list of games that fits to the search. + */ public function find_game($category, $genre, $search) { $sql = "SELECT * FROM games WHERE "; @@ -144,6 +173,13 @@ public function find_game($category, $genre, $search) { return self::find_by_query($sql); } + /** + * Collects the average score from one of the games based on the game id, + * then sends it back after making sure that the number format is a double + * with two decimals. + * + * @return The average score of the game with two decimals. + */ public function get_rating() { global $database; diff --git a/includes/init.php b/includes/init.php index 071ccb3..0cf35c7 100644 --- a/includes/init.php +++ b/includes/init.php @@ -1,11 +1,16 @@ \ No newline at end of file diff --git a/includes/message_list.php b/includes/message_list.php index f790f14..b723ed8 100644 --- a/includes/message_list.php +++ b/includes/message_list.php @@ -1,9 +1,14 @@ - + +include("init.php"); ?> user_id); ?> @@ -29,8 +34,10 @@
- - + +
diff --git a/includes/rate_game.php b/includes/rate_game.php index 80fc1a8..97a0ba9 100644 --- a/includes/rate_game.php +++ b/includes/rate_game.php @@ -1,4 +1,10 @@ - + Date: Fri, 8 Mar 2019 15:54:56 +0100 Subject: [PATCH 14/31] Added the activate link to the mail I have added the link to the email that gets sent out when a new user has signed up --- activate.php | 12 ++++++++++++ includes/email.php | 7 ++++--- includes/user.php | 4 ++-- 3 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 activate.php diff --git a/activate.php b/activate.php new file mode 100644 index 0000000..46f650d --- /dev/null +++ b/activate.php @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/includes/email.php b/includes/email.php index 2e3c7bb..f7519b2 100644 --- a/includes/email.php +++ b/includes/email.php @@ -23,16 +23,17 @@ public static function mail_Sender($to, $subject, $txt){ /* To do - * Legge til aktiveringslink + * Legge til aktiveringslink : Doneish, trenger formatering * Sjekke om denne er klikket på * Deretter aktivere konto. + */ - public static function send_ActivationMail($to, $first_name){ + public static function send_ActivationMail($to, $first_name, $verify_code ){ $subject = "Hello " . $first_name . " Please activate your account at CM Games"; - $txt = "Please press the link below to acitvate your new account at CM Games" . " http://localhost/gamesite/activate.php=". "somenumbers"; + $txt = "Please press the link below to activate your new account at CM Games " . "http://localhost/gamesite/activate.php?=" . $verify_code . " Thank you for registering. "; self::mail_sender($to, $subject, $txt); diff --git a/includes/user.php b/includes/user.php index 73a1b3f..53c83e5 100644 --- a/includes/user.php +++ b/includes/user.php @@ -253,9 +253,9 @@ public static function verify_new_user($username, $email, $password, $password_c $user->last_name = $last_name; $user->user_image = "1.png"; $user->joined = date("Y-m-d"); - $user->verify_code = md5($username . microtime()); + $user->verify_code = md5($username .microtime()); - Email::send_ActivationMail($email, $first_name); + Email::send_ActivationMail($user->$email, $user->first_name, $user->verify_code ); $user->create(); From 101886944151175f3375842e38170baab30518d3 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 10 Mar 2019 17:06:32 +0100 Subject: [PATCH 15/31] Started working on the userchat and fixed rating Added some parts of it into the index-content, created a class called Message for now, collects and shows the rows in the database inside of the square, updates it every 300 milliseconds, calls on read_chat.php and write_chat.php when they collect or write from the database. Need to do: - Comments and doc - clean up and decide better names - make it look prettier - make it more usable - only a set amount of messages - multiple rooms - css file properly sat up - more --- css/main.css | 51 +++++++++++++++ gamepage.php | 7 +-- gamesite_db.sql | 123 ++++++++++++++++++++++++++++++------- includes/index_content.php | 19 ++++++ includes/init.php | 1 + includes/message.php | 21 +++++++ includes/read_chat.php | 18 ++++++ includes/write_chat.php | 17 +++++ js/chat.js | 36 +++++++++++ js/functions.js | 5 ++ 10 files changed, 271 insertions(+), 27 deletions(-) create mode 100644 includes/message.php create mode 100644 includes/read_chat.php create mode 100644 includes/write_chat.php create mode 100644 js/chat.js diff --git a/css/main.css b/css/main.css index c95865b..61d8a58 100644 --- a/css/main.css +++ b/css/main.css @@ -400,3 +400,54 @@ body { display: table; } /*# sourceMappingURL=main.css.map */ + + +/* + * Added the part for the chat after this needs to be changed/replaced/fixed + */ + + *, + *:before, + *:after { + box-sizing: inherit; +} + +/*Chat styling*/ +.chatcontainer { + display: flex; + justify-content: center; + align-items: center; +} + +.userSettings { + margin-bottom: 20px; +} + +.chat { + max-width: 400px; + display: flex; + flex-direction: row; + flex-wrap: wrap; +} + +.chat #chatOutput { + overflow-y: scroll; + height: 280px; + width: 100%; + border: 1px solid #777; +} + +.chat #chatOutput p { + margin: 0; + padding: 5px; + border-bottom: 1px solid #bbb; + word-break: break-all; +} + +.chat #chatInput { + width: 75%; +} + +.chat #chatSend { + width: 25%; +} \ No newline at end of file diff --git a/gamepage.php b/gamepage.php index afa898f..a3c3cde 100644 --- a/gamepage.php +++ b/gamepage.php @@ -9,6 +9,7 @@ include("includes/header.php"); ?> +
game_path()); } ?> +
+ - - \ No newline at end of file diff --git a/gamesite_db.sql b/gamesite_db.sql index d5c6804..7d2db56 100644 --- a/gamesite_db.sql +++ b/gamesite_db.sql @@ -1,11 +1,11 @@ -- phpMyAdmin SQL Dump --- version 4.8.3 +-- version 4.7.4 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 --- Generation Time: 28. Jan, 2019 23:27 PM --- Tjener-versjon: 10.1.35-MariaDB --- PHP Version: 7.2.9 +-- Generation Time: 10. Mar, 2019 16:57 PM +-- Server-versjon: 10.1.29-MariaDB +-- PHP Version: 7.2.0 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; @@ -50,7 +50,12 @@ CREATE TABLE `friend_list` ( -- INSERT INTO `friend_list` (`id`, `user_1`, `user_2`, `status`) VALUES -(28, 2, 1, 0); +(94, 1, 2, 1), +(95, 1, 13, 1), +(96, 1, 12, 1), +(98, 1, 3, 1), +(100, 1, 1, 1), +(101, 1, 16, 0); -- -------------------------------------------------------- @@ -104,6 +109,19 @@ CREATE TABLE `ratings` ( `score` int(5) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; +-- +-- Dataark for tabell `ratings` +-- + +INSERT INTO `ratings` (`id`, `game_id`, `user_id`, `score`) VALUES +(11, 1, 1, 2), +(12, 2, 1, 5), +(14, 3, 1, 4), +(15, 4, 1, 5), +(16, 1, 3, 4), +(17, 2, 3, 2), +(18, 4, 3, 4); + -- -------------------------------------------------------- -- @@ -128,9 +146,15 @@ CREATE TABLE `users` ( -- INSERT INTO `users` (`id`, `email`, `username`, `password`, `first_name`, `middle_name`, `last_name`, `user_image`, `joined`, `privilege_level`) VALUES -(1, 'hehe@willi.no', 'WilliWonka', 'qwerty', 'Willy', 'Wonka', 'Wonksense', '1.png', '2019-01-23', 1), -(2, 'Derp@Derpesen.no', 'Derperud', 'qwerty', 'Dermont', 'Derp', 'Derperu', '3.png', '2019-01-23', 0), -(3, 'heman@willi.no', 'heman', 'qwerty', 'misterio', 'universio', 'Wonkondo', '2.png', '2019-01-23', 0); +(1, 'hehe@willi.no', 'WilliWonka', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'Willy', 'Wonka', 'Wonksensen', '1.png', '2019-01-23', 1), +(2, 'Derp@Derpesen.no', 'Derperud', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'Dermont', 'Derp', 'Derperud', '3.png', '2019-01-23', 0), +(3, 'heman@willi.no', 'heman', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'misterio', 'universio', 'Wonkondo', '2.png', '2019-01-23', 0), +(10, 'qwert@lol.mon', 'WilliWonkabob', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'asdoln', 'dolnes', 'papa', '1.png', '2019-02-08', 0), +(12, 'qwert@lol.mon', 'WilliWonkabobdsd', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'asdoln', 'dolnes', 'papa', '1.png', '2019-02-08', 0), +(13, 'qwert@lol.mon', 'WilliWonkabobdsd', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'asdoln', 'dolnes', 'papa', '1.png', '2019-02-08', 0), +(14, 'qwert@lol.mon', 'WilliWonkabobdsdsdsd', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'asdoln', 'dolnes', 'papa', '1.png', '2019-02-08', 0), +(16, 'vovje@livve.no', 'JonasGStøre#eFl7B', '$2y$10$HXfGfnEQqrZzrtsUl.44F.YoNtB2DV46aYqS4Z6/8Sy1PohJQic6C', 'qwe', 'wer', 'ert', '1.png', '2019-02-13', 0), +(17, 'sadad@asda.aasss', 'vaskens#8Cp3D', '$2y$10$pSdsEy68UZ1wyYl.q/4ldOVp1Gzeqq316ZFSKTvT1VQLCfilbdVDq', 'qwe', 'qwe', 'qwre', '1.png', '2019-02-13', 0); -- -------------------------------------------------------- @@ -152,17 +176,70 @@ CREATE TABLE `user_activity` ( -- INSERT INTO `user_activity` (`id`, `act`, `user_id`, `target_id`, `type`, `date`) VALUES -(1, 'create', '11', '11', 'users', '2019-01-25 09:33:30'), -(2, 'update', '', '1', 'users', '2019-01-25 09:40:14'), -(3, 'update', '1', '1', 'users', '2019-01-25 09:40:38'), -(5, 'delete', '', '9', 'users', '2019-01-25 09:42:46'), -(12, 'create', '1', '31', 'games', '2019-01-25 09:57:50'), -(13, 'update', '1', '8', 'users', '2019-01-25 11:04:17'), -(14, 'update', '1', '8', 'users', '2019-01-25 11:04:44'), -(15, 'delete', '', '11', 'users', '2019-01-25 11:32:36'), -(16, 'update', '1', '8', 'users', '2019-01-26 13:18:30'), -(17, 'delete', '', '8', 'users', '2019-01-28 10:03:00'), -(18, 'update', '1', '1', 'users', '2019-01-28 10:03:06'); +(1, 'delete', '', '16', 'users', '2019-02-09 19:09:01'), +(2, 'update', '1', '94', 'friend_list', '2019-02-11 16:54:52'), +(3, 'update', '1', '96', 'friend_list', '2019-02-11 16:55:47'), +(4, 'update', '1', '97', 'friend_list', '2019-02-11 16:55:49'), +(5, 'update', '1', '95', 'friend_list', '2019-02-11 16:55:52'), +(6, 'update', '1', '98', 'friend_list', '2019-02-11 19:16:50'), +(7, 'update', '1', '98', 'friend_list', '2019-02-11 19:50:12'), +(8, 'update', '1', '94', 'friend_list', '2019-02-11 19:50:17'), +(9, 'update', '1', '97', 'friend_list', '2019-02-11 19:50:20'), +(10, 'update', '1', '95', 'friend_list', '2019-02-11 23:33:39'), +(11, 'update', '1', '96', 'friend_list', '2019-02-12 14:48:09'), +(12, 'update', '1', '95', 'friend_list', '2019-02-12 15:07:18'), +(13, 'update', '1', '96', 'friend_list', '2019-02-12 15:07:24'), +(14, 'delete', '1', '97', 'friend_list', '2019-02-12 15:07:27'), +(15, 'update', '1', '98', 'friend_list', '2019-02-12 15:07:29'), +(16, 'delete', '1', '99', 'friend_list', '2019-02-12 15:07:30'), +(17, 'create', '16', '16', 'users', '2019-02-13 14:04:57'), +(18, 'create', '17', '17', 'users', '2019-02-13 18:54:23'), +(19, 'update', '1', '100', 'friend_list', '2019-02-25 20:14:36'), +(20, 'delete', '1', '15', 'users', '2019-02-25 20:16:40'), +(21, 'create', '1', '0', 'user_chat', '2019-03-10 15:39:41'), +(22, 'create', '1', '0', 'user_chat', '2019-03-10 15:40:50'), +(23, 'create', '1', '0', 'user_chat', '2019-03-10 15:42:42'), +(24, 'create', '1', '0', 'user_chat', '2019-03-10 15:44:10'), +(25, 'create', '1', '0', 'user_chat', '2019-03-10 15:44:53'), +(26, 'create', '1', '0', 'user_chat', '2019-03-10 15:47:46'), +(27, 'create', '1', '0', 'user_chat', '2019-03-10 15:48:08'), +(28, 'create', '1', '0', 'user_chat', '2019-03-10 15:49:37'), +(29, 'create', '1', '0', 'user_chat', '2019-03-10 15:50:34'), +(30, 'create', '1', '0', 'user_chat', '2019-03-10 15:50:49'), +(31, 'create', '1', '0', 'user_chat', '2019-03-10 15:53:21'); + +-- -------------------------------------------------------- + +-- +-- Tabellstruktur for tabell `user_chat` +-- + +CREATE TABLE `user_chat` ( + `id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `username` varchar(50) NOT NULL, + `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `text` varchar(200) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dataark for tabell `user_chat` +-- + +INSERT INTO `user_chat` (`id`, `user_id`, `username`, `time`, `text`) VALUES +(1, 1, '', '2019-03-10 14:08:34', 'dero'), +(2, 2, 'dererer', '2019-03-10 14:10:02', 'asdsda'), +(0, 0, 'Somebody', '0000-00-00 00:00:00', 'Hey'), +(0, 0, 'Somebodys', '0000-00-00 00:00:00', 'Hay'), +(0, 0, '', '0000-00-00 00:00:00', 'Lol'), +(0, 0, '', '0000-00-00 00:00:00', 'Der,'), +(0, 0, '', '0000-00-00 00:00:00', 'Der,'), +(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'Hello There People'), +(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'WilliWonkaStoner'), +(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'ddfsf'), +(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'FF'), +(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'dfsdf'), +(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'dfdfdf'); -- -- Indexes for dumped tables @@ -218,7 +295,7 @@ ALTER TABLE `achievements` -- AUTO_INCREMENT for table `friend_list` -- ALTER TABLE `friend_list` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=29; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=102; -- -- AUTO_INCREMENT for table `games` @@ -230,19 +307,19 @@ ALTER TABLE `games` -- AUTO_INCREMENT for table `ratings` -- ALTER TABLE `ratings` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19; -- -- AUTO_INCREMENT for table `users` -- ALTER TABLE `users` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18; -- -- AUTO_INCREMENT for table `user_activity` -- ALTER TABLE `user_activity` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=32; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/includes/index_content.php b/includes/index_content.php index edc2863..df7b653 100644 --- a/includes/index_content.php +++ b/includes/index_content.php @@ -20,4 +20,23 @@ + + +
+
+
+ + +
+
+
+ + +
+
+
+ + + + \ No newline at end of file diff --git a/includes/init.php b/includes/init.php index 0cf35c7..b76c1f8 100644 --- a/includes/init.php +++ b/includes/init.php @@ -22,6 +22,7 @@ require_once("achievement.php"); // Funksjoner som er utenfor klasser. require_once("rating.php"); // Klassen som omhandler ratings. require_once("friendship.php"); // Klassen som omhandler vennelister.. +require_once("message.php"); // Klassen som omhandler vennelister.. //Place paths later on here. ?> \ No newline at end of file diff --git a/includes/message.php b/includes/message.php new file mode 100644 index 0000000..6d5264c --- /dev/null +++ b/includes/message.php @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/includes/read_chat.php b/includes/read_chat.php new file mode 100644 index 0000000..31b6de4 --- /dev/null +++ b/includes/read_chat.php @@ -0,0 +1,18 @@ +username; + $text=$message->text; + $time=date('G:i', strtotime($message->time)); + + echo "

$time | $username: $text

\n"; + + + endforeach; + +?> \ No newline at end of file diff --git a/includes/write_chat.php b/includes/write_chat.php new file mode 100644 index 0000000..22d84b3 --- /dev/null +++ b/includes/write_chat.php @@ -0,0 +1,17 @@ +user_id); + + $message = new Message(); + $message->username = $user->username; + $message->text = substr($_GET["text"], 0, 128); + + $message->save(); + +?> \ No newline at end of file diff --git a/js/chat.js b/js/chat.js new file mode 100644 index 0000000..ae48270 --- /dev/null +++ b/js/chat.js @@ -0,0 +1,36 @@ +$(document).ready(function() { + var chatInterval = 300; // Refresh interval in miliseconds + var $userName = $("#userName"); // The username + var $chatOutput = $("#chatOutput"); + var $chatInput = $("#chatInput"); + var $chatSend = $("#chatSend"); + + function sendMessage() { + var userNameString = $userName.val(); + var chatInputString = $chatInput.val(); + + // Uses here get to call upon the write_chat php-file. + $.get("./includes/write_chat.php", { + username: userNameString, + text: chatInputString + }); + + $userName.val(""); + retrieveMessages(); + $('input[name=chatInput').val(''); + } + + function retrieveMessages() { + $.get("./includes/read_chat.php", function(data) { + $chatOutput.html(data); + }); + } + + $chatSend.click(function() { + sendMessage(); + }); + + setInterval(function() { + retrieveMessages(); + }, chatInterval); +}); \ No newline at end of file diff --git a/js/functions.js b/js/functions.js index 788fedf..83457bd 100644 --- a/js/functions.js +++ b/js/functions.js @@ -1,3 +1,8 @@ + +/** + * + * @param int game_id Spillet som det gjelder sin id. + */ function rate_game(game_id) { var score = document.querySelector('input[name="stars"]:checked').value; From 0e724c1734e2bf25fe5d05014888aa00180462c7 Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 11 Mar 2019 23:29:55 +0100 Subject: [PATCH 16/31] Changed the file-structure and worked more on the chat Added 4 new folders inside of includes. Classes will keep all the classes. Helpers will hold all the php-files that don't fit in classes or process, like config.php and database.php. Process will contain the php-files that does something, mostly called with ajax. Views will contain the files that shows up on the page, example is lists, content, footer and header. The pages like index.php will be in the main directory. Created userchat.php to be able place it anywhere, changed the table so that which game the comment is done on, will call on only the comments made on the side of the game. Had to change a lot of the things file-paths, the init on the files in the new folders had to be changed. --- gamepage.php | 7 +--- games.php | 6 +-- gamesite_db.sql | 42 +++++++------------ includes/{ => classes}/achievement.php | 0 includes/{ => classes}/db_object.php | 0 includes/{ => classes}/friendship.php | 0 includes/{ => classes}/game.php | 0 includes/{ => classes}/message.php | 4 +- includes/{ => classes}/rating.php | 0 includes/{ => classes}/session.php | 0 includes/{ => classes}/user.php | 0 includes/{ => helpers}/config.php | 0 includes/{ => helpers}/database.php | 0 includes/{ => helpers}/functions.php | 2 +- includes/index_content.php | 42 ------------------- includes/init.php | 29 ++++++------- includes/{ => process}/add_friend.php | 6 ++- includes/{ => process}/friend_search.php | 5 ++- .../{ => process}/handle_friend_request.php | 6 ++- includes/{ => process}/rate_game.php | 5 ++- includes/{ => process}/read_chat.php | 5 ++- includes/{ => process}/write_chat.php | 6 ++- includes/{ => views}/footer.php | 0 includes/{ => views}/gamelist.php | 7 +++- includes/{ => views}/header.php | 8 +++- includes/views/index_content.php | 27 ++++++++++++ includes/{ => views}/message_list.php | 6 +-- .../{ => views}/other_profile_content.php | 0 includes/{ => views}/self_profile_content.php | 5 +-- includes/views/userchat.php | 14 +++++++ includes/{ => views}/userlist.php | 5 ++- index.php | 6 +-- js/chat.js | 4 +- js/functions.js | 12 +++--- login.php | 2 +- logout.php | 2 +- profile.php | 8 ++-- register.php | 2 +- settings.php | 2 +- upload.php | 4 +- users.php | 6 +-- 41 files changed, 151 insertions(+), 134 deletions(-) rename includes/{ => classes}/achievement.php (100%) rename includes/{ => classes}/db_object.php (100%) rename includes/{ => classes}/friendship.php (100%) rename includes/{ => classes}/game.php (100%) rename includes/{ => classes}/message.php (75%) rename includes/{ => classes}/rating.php (100%) rename includes/{ => classes}/session.php (100%) rename includes/{ => classes}/user.php (100%) rename includes/{ => helpers}/config.php (100%) rename includes/{ => helpers}/database.php (100%) rename includes/{ => helpers}/functions.php (90%) delete mode 100644 includes/index_content.php rename includes/{ => process}/add_friend.php (65%) rename includes/{ => process}/friend_search.php (91%) rename includes/{ => process}/handle_friend_request.php (79%) rename includes/{ => process}/rate_game.php (77%) rename includes/{ => process}/read_chat.php (69%) rename includes/{ => process}/write_chat.php (60%) rename includes/{ => views}/footer.php (100%) rename includes/{ => views}/gamelist.php (89%) rename includes/{ => views}/header.php (92%) create mode 100644 includes/views/index_content.php rename includes/{ => views}/message_list.php (89%) rename includes/{ => views}/other_profile_content.php (100%) rename includes/{ => views}/self_profile_content.php (79%) create mode 100644 includes/views/userchat.php rename includes/{ => views}/userlist.php (91%) diff --git a/gamepage.php b/gamepage.php index a3c3cde..cb83285 100644 --- a/gamepage.php +++ b/gamepage.php @@ -6,8 +6,7 @@ * ligger under spillet. */ - -include("includes/header.php"); ?> +include("includes/views/header.php"); ?>
- - is_signed_in()) { ?>
@@ -47,4 +44,4 @@ - + diff --git a/games.php b/games.php index fd4061d..8de92fb 100644 --- a/games.php +++ b/games.php @@ -1,4 +1,4 @@ - + @@ -46,4 +46,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/gamesite_db.sql b/gamesite_db.sql index 7d2db56..6c96a04 100644 --- a/gamesite_db.sql +++ b/gamesite_db.sql @@ -3,7 +3,7 @@ -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 --- Generation Time: 10. Mar, 2019 16:57 PM +-- Generation Time: 11. Mar, 2019 19:39 PM -- Server-versjon: 10.1.29-MariaDB -- PHP Version: 7.2.0 @@ -55,7 +55,8 @@ INSERT INTO `friend_list` (`id`, `user_1`, `user_2`, `status`) VALUES (96, 1, 12, 1), (98, 1, 3, 1), (100, 1, 1, 1), -(101, 1, 16, 0); +(101, 1, 16, 0), +(102, 1, 14, 0); -- -------------------------------------------------------- @@ -114,7 +115,7 @@ CREATE TABLE `ratings` ( -- INSERT INTO `ratings` (`id`, `game_id`, `user_id`, `score`) VALUES -(11, 1, 1, 2), +(11, 1, 1, 1), (12, 2, 1, 5), (14, 3, 1, 4), (15, 4, 1, 5), @@ -206,7 +207,14 @@ INSERT INTO `user_activity` (`id`, `act`, `user_id`, `target_id`, `type`, `date` (28, 'create', '1', '0', 'user_chat', '2019-03-10 15:49:37'), (29, 'create', '1', '0', 'user_chat', '2019-03-10 15:50:34'), (30, 'create', '1', '0', 'user_chat', '2019-03-10 15:50:49'), -(31, 'create', '1', '0', 'user_chat', '2019-03-10 15:53:21'); +(31, 'create', '1', '0', 'user_chat', '2019-03-10 15:53:21'), +(32, 'update', '1', '11', 'ratings', '2019-03-10 16:05:46'), +(33, 'update', '1', '11', 'ratings', '2019-03-10 16:05:48'), +(34, 'update', '1', '11', 'ratings', '2019-03-10 16:05:50'), +(35, 'update', '1', '11', 'ratings', '2019-03-10 16:05:53'), +(36, 'update', '1', '11', 'ratings', '2019-03-10 16:05:55'), +(37, 'create', '1', '0', 'user_chat', '2019-03-10 16:37:16'), +(38, 'create', '1', '0', 'user_chat', '2019-03-10 17:26:18'); -- -------------------------------------------------------- @@ -216,31 +224,13 @@ INSERT INTO `user_activity` (`id`, `act`, `user_id`, `target_id`, `type`, `date` CREATE TABLE `user_chat` ( `id` int(11) NOT NULL, + `game_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, `username` varchar(50) NOT NULL, - `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `time` datetime NOT NULL, `text` varchar(200) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- --- Dataark for tabell `user_chat` --- - -INSERT INTO `user_chat` (`id`, `user_id`, `username`, `time`, `text`) VALUES -(1, 1, '', '2019-03-10 14:08:34', 'dero'), -(2, 2, 'dererer', '2019-03-10 14:10:02', 'asdsda'), -(0, 0, 'Somebody', '0000-00-00 00:00:00', 'Hey'), -(0, 0, 'Somebodys', '0000-00-00 00:00:00', 'Hay'), -(0, 0, '', '0000-00-00 00:00:00', 'Lol'), -(0, 0, '', '0000-00-00 00:00:00', 'Der,'), -(0, 0, '', '0000-00-00 00:00:00', 'Der,'), -(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'Hello There People'), -(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'WilliWonkaStoner'), -(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'ddfsf'), -(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'FF'), -(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'dfsdf'), -(0, 0, 'WilliWonka', '0000-00-00 00:00:00', 'dfdfdf'); - -- -- Indexes for dumped tables -- @@ -295,7 +285,7 @@ ALTER TABLE `achievements` -- AUTO_INCREMENT for table `friend_list` -- ALTER TABLE `friend_list` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=102; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=103; -- -- AUTO_INCREMENT for table `games` @@ -319,7 +309,7 @@ ALTER TABLE `users` -- AUTO_INCREMENT for table `user_activity` -- ALTER TABLE `user_activity` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=32; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=39; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/includes/achievement.php b/includes/classes/achievement.php similarity index 100% rename from includes/achievement.php rename to includes/classes/achievement.php diff --git a/includes/db_object.php b/includes/classes/db_object.php similarity index 100% rename from includes/db_object.php rename to includes/classes/db_object.php diff --git a/includes/friendship.php b/includes/classes/friendship.php similarity index 100% rename from includes/friendship.php rename to includes/classes/friendship.php diff --git a/includes/game.php b/includes/classes/game.php similarity index 100% rename from includes/game.php rename to includes/classes/game.php diff --git a/includes/message.php b/includes/classes/message.php similarity index 75% rename from includes/message.php rename to includes/classes/message.php index 6d5264c..9715648 100644 --- a/includes/message.php +++ b/includes/classes/message.php @@ -7,15 +7,15 @@ class Message extends Db_object{ protected static $db_table = "user_chat"; //Slik at man kan endre navnet på databasetabellen. //Array skal brukes i properies() og inneholder achivement-variablene til objektet. - protected static $db_table_fields = array('id', 'user_id', 'username', 'text', 'time'); + protected static $db_table_fields = array('id', 'game_id', 'user_id', 'username', 'text', 'time'); public $id; + public $game_id; public $user_id; public $username; public $text; public $time; - } ?> \ No newline at end of file diff --git a/includes/rating.php b/includes/classes/rating.php similarity index 100% rename from includes/rating.php rename to includes/classes/rating.php diff --git a/includes/session.php b/includes/classes/session.php similarity index 100% rename from includes/session.php rename to includes/classes/session.php diff --git a/includes/user.php b/includes/classes/user.php similarity index 100% rename from includes/user.php rename to includes/classes/user.php diff --git a/includes/config.php b/includes/helpers/config.php similarity index 100% rename from includes/config.php rename to includes/helpers/config.php diff --git a/includes/database.php b/includes/helpers/database.php similarity index 100% rename from includes/database.php rename to includes/helpers/database.php diff --git a/includes/functions.php b/includes/helpers/functions.php similarity index 90% rename from includes/functions.php rename to includes/helpers/functions.php index ec8576f..c934d54 100644 --- a/includes/functions.php +++ b/includes/helpers/functions.php @@ -9,7 +9,7 @@ function classAutoLoader($class) { $class = strtolower($class); - $the_path = "includes/{$class}.php"; + $the_path = "includes/classes/{$class}.php"; if(is_file($the_path) && !class_exists($class)) { diff --git a/includes/index_content.php b/includes/index_content.php deleted file mode 100644 index df7b653..0000000 --- a/includes/index_content.php +++ /dev/null @@ -1,42 +0,0 @@ - -

- This is the index page, where people will enter the page. -

- - -
- -
- - -
- -
-
-
-
- Monster Hunter World -
-
-
- - - -
-
-
- - -
-
-
- - -
-
-
- - - - -
\ No newline at end of file diff --git a/includes/init.php b/includes/init.php index b76c1f8..5abc8ba 100644 --- a/includes/init.php +++ b/includes/init.php @@ -6,23 +6,24 @@ * Gå inn på. */ -defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR); // Backslash in windows, annet i mac. -defined('SITE_ROOT') ? null : define('SITE_ROOT', DS . 'XAMPP'. DS . 'htdocs' . DS . 'gamesite'); // Dette er plassering fil folderen, må endres ettersom hvor den er plassert. +defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR); // Backslash in windows, annet i mac. +defined('SITE_ROOT') ? null : define('SITE_ROOT', DS . 'XAMPP'. DS . 'htdocs' . DS . 'gamesite'); // Dette er plassering fil folderen, må endres ettersom hvor den er plassert. defined('INCLUDES_PATH') ? null : define('INCLUDES_PATH', SITE_ROOT . DS . 'includes'); // Definer INCLUDES_PATH omg den ikke er definert allerede. +defined('CLASSES_PATH') ? null : define('CLASSES_PATH', INCLUDES_PATH . DS . 'classes' . DS); // Definer CLASSES_PATH hvis den ikke er definert allerede. +defined('PROCESS_PATH') ? null : define('PROCESS_PATH', INCLUDES_PATH . DS . 'process' . DS); // Definer CLASSES_PATH hvis den ikke er definert allerede. //require_once fordi den gir en stor feilmelding, include gir bare en warning. -require_once("functions.php"); // Funksjoner som er utenfor klasser. -require_once("config.php"); // Inneholder database konstantene. -require_once("database.php"); // Database-klassen ligger her. -require_once("db_object.php"); // Parent klasse for db_objekter. -require_once("user.php"); // User-klassen ligger her. -require_once("game.php"); // Klassen som styrer games. -require_once("session.php");// Kontroll over nåværende session. -require_once("achievement.php"); // Funksjoner som er utenfor klasser. -require_once("rating.php"); // Klassen som omhandler ratings. -require_once("friendship.php"); // Klassen som omhandler vennelister.. -require_once("message.php"); // Klassen som omhandler vennelister.. -//Place paths later on here. +require_once("helpers/functions.php"); // Funksjoner som er utenfor klasser. +require_once("helpers/config.php"); // Inneholder database konstantene. +require_once("helpers/database.php"); // Database-klassen ligger her. +require_once("classes/db_object.php"); // Parent klasse for db_objekter. +require_once("classes/user.php"); // User-klassen ligger her. +require_once("classes/game.php"); // Klassen som styrer games. +require_once("classes/session.php"); // Kontroll over nåværende session. +require_once("classes/achievement.php"); // Funksjoner som er utenfor klasser. +require_once("classes/rating.php"); // Klassen som omhandler ratings. +require_once("classes/friendship.php"); // Klassen som omhandler vennelister.. +require_once("classes/message.php"); // Klassen som omhandler vennelister.. ?> \ No newline at end of file diff --git a/includes/add_friend.php b/includes/process/add_friend.php similarity index 65% rename from includes/add_friend.php rename to includes/process/add_friend.php index 017467a..5f112d3 100644 --- a/includes/add_friend.php +++ b/includes/process/add_friend.php @@ -2,7 +2,11 @@ This sends a friend request into the database. --> - + - + +$path = $_SERVER['DOCUMENT_ROOT']; +$path .= "/gamesite/includes/init.php"; +require_once($path); +?> $time | $username: $text

\n"; - endforeach; ?> \ No newline at end of file diff --git a/includes/write_chat.php b/includes/process/write_chat.php similarity index 60% rename from includes/write_chat.php rename to includes/process/write_chat.php index 22d84b3..aee60c4 100644 --- a/includes/write_chat.php +++ b/includes/process/write_chat.php @@ -1,5 +1,8 @@ username = $user->username; $message->text = substr($_GET["text"], 0, 128); + $message->time = date("Y-m-d H:i:s"); $message->save(); diff --git a/includes/footer.php b/includes/views/footer.php similarity index 100% rename from includes/footer.php rename to includes/views/footer.php diff --git a/includes/gamelist.php b/includes/views/gamelist.php similarity index 89% rename from includes/gamelist.php rename to includes/views/gamelist.php index 646922f..a42a379 100644 --- a/includes/gamelist.php +++ b/includes/views/gamelist.php @@ -1,4 +1,9 @@ - + + - + + diff --git a/includes/views/index_content.php b/includes/views/index_content.php new file mode 100644 index 0000000..6638fab --- /dev/null +++ b/includes/views/index_content.php @@ -0,0 +1,27 @@ + +

+ This is the index page, where people will enter the page. +

+ + +
+ +
+ + +
+ +
+
+
+
+ Monster Hunter World +
+
+
+ + + + + +
\ No newline at end of file diff --git a/includes/message_list.php b/includes/views/message_list.php similarity index 89% rename from includes/message_list.php rename to includes/views/message_list.php index b723ed8..28442d2 100644 --- a/includes/message_list.php +++ b/includes/views/message_list.php @@ -4,9 +4,9 @@ * This will show all the messages that a user have, Friend-request is the only one for now. */ -include("init.php"); ?> - -user_id); diff --git a/includes/other_profile_content.php b/includes/views/other_profile_content.php similarity index 100% rename from includes/other_profile_content.php rename to includes/views/other_profile_content.php diff --git a/includes/self_profile_content.php b/includes/views/self_profile_content.php similarity index 79% rename from includes/self_profile_content.php rename to includes/views/self_profile_content.php index 2744db5..d6c03e6 100644 --- a/includes/self_profile_content.php +++ b/includes/views/self_profile_content.php @@ -1,4 +1,3 @@ - @@ -30,7 +29,7 @@
diff --git a/includes/views/userchat.php b/includes/views/userchat.php new file mode 100644 index 0000000..6aa535d --- /dev/null +++ b/includes/views/userchat.php @@ -0,0 +1,14 @@ +
+
+
+ + +
+
+
+ + +
+
+
+ \ No newline at end of file diff --git a/includes/userlist.php b/includes/views/userlist.php similarity index 91% rename from includes/userlist.php rename to includes/views/userlist.php index acd69e7..ed613f9 100644 --- a/includes/userlist.php +++ b/includes/views/userlist.php @@ -1,7 +1,10 @@ +$path = $_SERVER['DOCUMENT_ROOT']; +$path .= "/gamesite/includes/init.php"; +require_once($path); +?> + - + - \ No newline at end of file + \ No newline at end of file diff --git a/js/chat.js b/js/chat.js index ae48270..d5abc53 100644 --- a/js/chat.js +++ b/js/chat.js @@ -10,7 +10,7 @@ $(document).ready(function() { var chatInputString = $chatInput.val(); // Uses here get to call upon the write_chat php-file. - $.get("./includes/write_chat.php", { + $.get("./includes/process/write_chat.php", { username: userNameString, text: chatInputString }); @@ -21,7 +21,7 @@ $(document).ready(function() { } function retrieveMessages() { - $.get("./includes/read_chat.php", function(data) { + $.get("./includes/process/read_chat.php", function(data) { $chatOutput.html(data); }); } diff --git a/js/functions.js b/js/functions.js index 83457bd..6bfacf7 100644 --- a/js/functions.js +++ b/js/functions.js @@ -19,7 +19,7 @@ function rate_game(game_id) { } }; - xmlhttp.open("GET","includes/rate_game.php?s="+score+"&g="+game_id,true); + xmlhttp.open("GET","includes/process/rate_game.php?s="+score+"&g="+game_id,true); xmlhttp.send(); } } @@ -36,7 +36,7 @@ function update_userlist() { document.getElementById("userlist").innerHTML = this.responseText; }; - xmlhttp.open("GET","includes/userlist.php?s="+search+"&c="+category,true); + xmlhttp.open("GET","includes/views/userlist.php?s="+search+"&c="+category,true); xmlhttp.send(); } @@ -56,7 +56,7 @@ function update_gamelist() { document.getElementById("gameslist").innerHTML = this.responseText; }; - xmlhttp.open("GET","includes/gamelist.php?s="+search+"&c="+category+"&g="+genre,true); + xmlhttp.open("GET","includes/views/gamelist.php?s="+search+"&c="+category+"&g="+genre,true); xmlhttp.send(); } @@ -70,7 +70,7 @@ function find_friend() { document.getElementById("friend_search").innerHTML = this.responseText; }; - xmlhttp.open("GET","includes/friend_search.php?s="+search,true); + xmlhttp.open("GET","includes/process/friend_search.php?s="+search,true); xmlhttp.send(); } @@ -82,7 +82,7 @@ function send_friend_request(user_id, other_id) { document.getElementById("send_friend_request").innerHTML = this.responseText; }; - xmlhttp.open("GET","includes/add_friend.php?i="+user_id+"&o="+other_id,true); + xmlhttp.open("GET","includes/process/add_friend.php?i="+user_id+"&o="+other_id,true); xmlhttp.send(); } @@ -97,7 +97,7 @@ function handle_friend_request(user_id, other_id, id, act) { document.getElementById("handle_friend_request").innerHTML = this.responseText; }; - xmlhttp.open("GET","includes/handle_friend_request.php?ui="+user_id+"&oi="+other_id+"&a="+act+"&id="+id,true); + xmlhttp.open("GET","includes/process/handle_friend_request.php?ui="+user_id+"&oi="+other_id+"&a="+act+"&id="+id,true); xmlhttp.send(); } diff --git a/login.php b/login.php index fcb1451..bacb5cf 100644 --- a/login.php +++ b/login.php @@ -1,4 +1,4 @@ - + + + is_signed_in()) {redirect("login.php");} @@ -13,10 +13,10 @@ */ if ($session->user_id == $_GET['id']) { - include("includes/self_profile_content.php"); + include("includes/views/self_profile_content.php"); } elseif (isset($_GET['id'])) { - include("includes/other_profile_content.php"); + include("includes/views/other_profile_content.php"); } else { redirect("logout.php"); @@ -25,4 +25,4 @@ ?> - \ No newline at end of file + \ No newline at end of file diff --git a/register.php b/register.php index dea0cc8..266650e 100644 --- a/register.php +++ b/register.php @@ -1,4 +1,4 @@ - + + is_signed_in()) {redirect("login.php");} ?> diff --git a/upload.php b/upload.php index 25092c1..ca3ff2f 100644 --- a/upload.php +++ b/upload.php @@ -1,4 +1,4 @@ - + - \ No newline at end of file + \ No newline at end of file diff --git a/users.php b/users.php index da58709..22cd436 100644 --- a/users.php +++ b/users.php @@ -1,6 +1,6 @@ - + is_signed_in() || !User::is_admin($session->user_id)) {redirect("login.php");} ?> @@ -40,11 +40,11 @@
- \ No newline at end of file + \ No newline at end of file From 7404755b8e8b3aa692458599691e9c5103da7861 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 12 Mar 2019 14:30:26 +0100 Subject: [PATCH 17/31] Added some more work to the chat-system Added a new method inside of Message-class, might want to make it an abstract Db_object class later where two parameters is placed. The method collects all the messages that have the chatId that is of the current game. Placed the chat on the gamepage. --- gamepage.php | 51 +++++++++++++++++--------------- includes/classes/message.php | 19 ++++++++++++ includes/classes/user.php | 7 ++++- includes/process/read_chat.php | 8 ++++- includes/process/write_chat.php | 18 ++++++----- includes/views/index_content.php | 9 ------ includes/views/userchat.php | 4 +-- js/chat.js | 38 +++++++++++++++++------- 8 files changed, 99 insertions(+), 55 deletions(-) diff --git a/gamepage.php b/gamepage.php index cb83285..8d7521a 100644 --- a/gamepage.php +++ b/gamepage.php @@ -18,30 +18,33 @@ ?> -is_signed_in()) { ?> - -
- 1 star - 2 star - 3 star - 4 star - 5 star -
+ + + + is_signed_in()) { ?> + +
+ 1 star + 2 star + 3 star + 4 star + 5 star +
+ + + +
+ + get_rating()) { + echo $score; + } else { + echo "Game has never been rated"; + } + ?> - - -
- -get_rating()) { - echo $score; -} else { - echo "Game has never been rated"; -} -?> - -
+
- + - + diff --git a/includes/classes/message.php b/includes/classes/message.php index 9715648..1ef0d6b 100644 --- a/includes/classes/message.php +++ b/includes/classes/message.php @@ -15,6 +15,25 @@ class Message extends Db_object{ public $text; public $time; + /** + * Finds all the messages in user_chat that has the same game_id as the param, + * then sends them back out again + * + * @param $game_id is the id for the game. + * @return the messages that belong to the chat at the side of the game. + */ + public static function find_messages($game_id) { + + global $database; + $game_id = $database->escape_string($game_id); + + $sql = "SELECT * FROM " . self::$db_table . " WHERE "; + $sql .= "game_id = '{$game_id}' "; + $sql .= "ORDER BY id"; + + return static::find_by_query($sql); + + } } diff --git a/includes/classes/user.php b/includes/classes/user.php index 2757689..708bde6 100644 --- a/includes/classes/user.php +++ b/includes/classes/user.php @@ -113,7 +113,12 @@ public static function add_friend($user_id, $friend_id) { } - // The search function for users, uses when they look trough the list to add to friends. + /** + * The search function for users, uses when they look trough the list to add to friends. + * + * @param + * @return + */ public function find_friend($search) { global $database; diff --git a/includes/process/read_chat.php b/includes/process/read_chat.php index c5486fe..51e98f0 100644 --- a/includes/process/read_chat.php +++ b/includes/process/read_chat.php @@ -1,10 +1,16 @@ user_id); - $message = new Message(); + $message = new Message(); + $message->username = $user->username; - $message->text = substr($_GET["text"], 0, 128); - $message->time = date("Y-m-d H:i:s"); + $message->game_id = substr($_GET["chatId"], 0, 20); + $message->text = substr($_GET["text"], 0, 128); + $message->time = date("Y-m-d H:i:s"); $message->save(); diff --git a/includes/views/index_content.php b/includes/views/index_content.php index 6638fab..80efcb4 100644 --- a/includes/views/index_content.php +++ b/includes/views/index_content.php @@ -3,11 +3,6 @@ This is the index page, where people will enter the page.

- -
- -
-
@@ -20,8 +15,4 @@ - - - -
\ No newline at end of file diff --git a/includes/views/userchat.php b/includes/views/userchat.php index 6aa535d..dffc688 100644 --- a/includes/views/userchat.php +++ b/includes/views/userchat.php @@ -1,8 +1,8 @@
- - + +
diff --git a/js/chat.js b/js/chat.js index d5abc53..619f241 100644 --- a/js/chat.js +++ b/js/chat.js @@ -1,35 +1,53 @@ + +/** + * Jquery for the chat, sends and retrieves the messages that + * belong in the chatroom. + */ + $(document).ready(function() { - var chatInterval = 300; // Refresh interval in miliseconds - var $userName = $("#userName"); // The username - var $chatOutput = $("#chatOutput"); - var $chatInput = $("#chatInput"); - var $chatSend = $("#chatSend"); + var chatInterval = 300; // Refresh interval in miliseconds + var $chatId = $("#chatId"); // The chat-id and also the game-id + var $chatOutput = $("#chatOutput"); // All the messages that have been collected from the database. + var $chatInput = $("#chatInput"); // This is the string that the person writes. + var $chatSend = $("#chatSend"); // this is the send button. + + /** + * Sends there inn the message into the database. + */ function sendMessage() { - var userNameString = $userName.val(); + var chatIdString = $chatId.val(); var chatInputString = $chatInput.val(); - // Uses here get to call upon the write_chat php-file. + // Uses here .get to call upon the write_chat php-file. $.get("./includes/process/write_chat.php", { - username: userNameString, + chatId: chatIdString, text: chatInputString }); - $userName.val(""); + $chatInput.val(""); retrieveMessages(); $('input[name=chatInput').val(''); } + /** + * Collects here out the messages for the chatroom. + */ function retrieveMessages() { - $.get("./includes/process/read_chat.php", function(data) { + var chatIdString = $chatId.val(); + + // Sends here the chat-id in and collects the output. + $.get("./includes/process/read_chat.php", { chatId: chatIdString }, function(data) { $chatOutput.html(data); }); } + // If the send button is clicked. $chatSend.click(function() { sendMessage(); }); + // Retrieves the messages from the database with setInterval(function() { retrieveMessages(); }, chatInterval); From 76d420aa80e8f00a32bec05848b98b21fdd19bc4 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 12 Mar 2019 15:00:20 +0100 Subject: [PATCH 18/31] Moved and changed the admin-includes Had to move them out of admin_includes folder and place them in process. --- admin_includes/delete_game.php | 18 ------- includes/process/delete_game.php | 22 +++++++++ .../process}/delete_user.php | 49 ++++++++++--------- includes/views/gamelist.php | 2 +- includes/views/userlist.php | 2 +- 5 files changed, 50 insertions(+), 43 deletions(-) delete mode 100644 admin_includes/delete_game.php create mode 100644 includes/process/delete_game.php rename {admin_includes => includes/process}/delete_user.php (71%) diff --git a/admin_includes/delete_game.php b/admin_includes/delete_game.php deleted file mode 100644 index 1dce106..0000000 --- a/admin_includes/delete_game.php +++ /dev/null @@ -1,18 +0,0 @@ - - - -is_signed_in()) {redirect("login.php");} ?> - -delete(); - -redirect("../games.php"); - -?> \ No newline at end of file diff --git a/includes/process/delete_game.php b/includes/process/delete_game.php new file mode 100644 index 0000000..01ffb13 --- /dev/null +++ b/includes/process/delete_game.php @@ -0,0 +1,22 @@ + + + +is_signed_in()) {redirect("login.php");} ?> + +delete(); + +redirect("../../games.php"); + +?> \ No newline at end of file diff --git a/admin_includes/delete_user.php b/includes/process/delete_user.php similarity index 71% rename from admin_includes/delete_user.php rename to includes/process/delete_user.php index f2a2076..86e8003 100644 --- a/admin_includes/delete_user.php +++ b/includes/process/delete_user.php @@ -1,24 +1,27 @@ - - - - - - -is_signed_in()) {redirect("login.php");} ?> - -delete(); - -redirect("../users.php"); - + + + + + +is_signed_in()) {redirect("login.php");} ?> + +delete(); + +redirect("../../users.php"); + ?> \ No newline at end of file diff --git a/includes/views/gamelist.php b/includes/views/gamelist.php index a42a379..acb111e 100644 --- a/includes/views/gamelist.php +++ b/includes/views/gamelist.php @@ -65,7 +65,7 @@ is_signed_in()) { if (User::is_admin($session->user_id)) { ?> - Delete joined; ?> - Delete Edit View From 881a77c13cd7ae0e9665dd6b45daa39f13554512 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 12 Mar 2019 15:24:52 +0100 Subject: [PATCH 19/31] Fixed the email sending I changed the email from user-> to just email and it works --- activate.php | 7 ++++++- includes/user.php | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/activate.php b/activate.php index 46f650d..fee0fe2 100644 --- a/activate.php +++ b/activate.php @@ -1,6 +1,11 @@ - + + diff --git a/includes/user.php b/includes/user.php index 53c83e5..6eee180 100644 --- a/includes/user.php +++ b/includes/user.php @@ -253,9 +253,9 @@ public static function verify_new_user($username, $email, $password, $password_c $user->last_name = $last_name; $user->user_image = "1.png"; $user->joined = date("Y-m-d"); - $user->verify_code = md5($username .microtime()); + $user->verify_code = md5($username . microtime()); - Email::send_ActivationMail($user->$email, $user->first_name, $user->verify_code ); + Email::send_ActivationMail($email, $first_name, $user->verify_code ); $user->create(); From 9f46d6c381d8a70107eb43a6cedbebb2ed716be6 Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 13 Mar 2019 19:48:53 +0100 Subject: [PATCH 20/31] Added friendlist on profile friendlist.php shows whatever friends the logged in user might have, started adding the chat above but need ajax to change the chat-room when someone presses on the chat-button behind the names. Added some more phpdocs. --- gamepage.php | 9 ++-- includes/classes/friendship.php | 19 +++++++++ includes/classes/user.php | 37 ++++++++++++---- includes/views/friendlist.php | 56 +++++++++++++++++++++++++ includes/views/self_profile_content.php | 7 +++- includes/views/userchat.php | 5 ++- js/chat.js | 2 +- 7 files changed, 120 insertions(+), 15 deletions(-) create mode 100644 includes/views/friendlist.php diff --git a/gamepage.php b/gamepage.php index 8d7521a..678377c 100644 --- a/gamepage.php +++ b/gamepage.php @@ -18,9 +18,6 @@ ?>
- - - is_signed_in()) { ?>
@@ -47,4 +44,10 @@ + + + diff --git a/includes/classes/friendship.php b/includes/classes/friendship.php index 7b47f8c..d9e6316 100644 --- a/includes/classes/friendship.php +++ b/includes/classes/friendship.php @@ -31,6 +31,25 @@ public static function find_friend_requests($user_id) { } + /** + * Finds all the friend that a user have or have been accepted by. + * + * @param Is the id of the reciever you want the friend requests to. + * @return Is the friendlist of the user that is logged in. + */ + public static function find_friends($user_id) { + + global $database; + + $sql = "SELECT * FROM friend_list WHERE "; + $sql .= "(user_1 = '{$user_id}' OR "; + $sql .= "user_2 = '{$user_id}') "; + $sql .= "AND status = '1' "; + + return self::find_by_query($sql); + + } + /** * Will here accept or decline depending on wheter the input-param $status * is 1 or 0, if it is 1 then it will be accepted and the row in the database diff --git a/includes/classes/user.php b/includes/classes/user.php index 708bde6..737eb32 100644 --- a/includes/classes/user.php +++ b/includes/classes/user.php @@ -116,8 +116,8 @@ public static function add_friend($user_id, $friend_id) { /** * The search function for users, uses when they look trough the list to add to friends. * - * @param - * @return + * @param $search is the input of the user. + * @return the list of users that is found. */ public function find_friend($search) { @@ -205,7 +205,14 @@ public static function is_admin($user_id) { return !empty($the_result_array) ? true : false; } - // checks if the user is an friend or not. + // + /** + * checks if the user is an friend of the logged in user or not. + * + * @param + * @param + * @return + */ public static function is_friend($user_id, $friend_id) { global $database; @@ -228,13 +235,22 @@ public function get_user_image() { return "img" . DS . "profile" . DS . "default" . DS . $this->user_image; } - // Verifiserer at brukeren ligger i databasen, brukes ved llogin og kan brukes andre steder. + /** + * Verifiserer at brukeren ligger i databasen, brukes ved registrering og kan brukes andre steder. + * Legger feilmeldinger inn i error_array, error arrayet sendes så tilbake. + * Hvis det er felmeldinger vil ikke brukeren bli laget, og feilmeldingene vil vises. + * + * @param $username + * @param $email + * @param $password + * @param $password_check + * @param $first_name + * @param $middle_name + * @param $last_name + * @return the error_array, empty if all is well. + */ public static function verify_new_user($username, $email, $password, $password_check, $first_name, $middle_name, $last_name) { - /* Legger feilmeldinger inn i error_array, error arrayet sendes så tilbake. - * Hvis det er felmeldinger vil ikke brukeren bli laget, og feilmeldingene vil vises. - */ - global $database; //Creates the error array, error messages will be pushed into this, and showed on the register page. @@ -325,7 +341,10 @@ public static function verify_new_user($username, $email, $password, $password_c } - // Function that creates the string that has to be added behind the username. + /** + * Function that creates the string that has to be added behind the username. + * + */ public static function create_unique_id($length = 5) { $string = "#"; $characters = array_merge(range('A','Z'), range('a','z'), range('0','9')); diff --git a/includes/views/friendlist.php b/includes/views/friendlist.php new file mode 100644 index 0000000..f99c398 --- /dev/null +++ b/includes/views/friendlist.php @@ -0,0 +1,56 @@ +user_id); +?> + + + +
+ + + + + + + + + + + +user_1 !== $session->user_id) { + $user = User::find_by_id($friend->user_1); + } else { + $user = User::find_by_id($friend->user_2); + } +?> + + + + + + + + + + + + + + +
ImageUsernameChatOnline?
+ + + + username; ?>
+
\ No newline at end of file diff --git a/includes/views/self_profile_content.php b/includes/views/self_profile_content.php index d6c03e6..713007b 100644 --- a/includes/views/self_profile_content.php +++ b/includes/views/self_profile_content.php @@ -33,4 +33,9 @@ ?>
- \ No newline at end of file + + + + diff --git a/includes/views/userchat.php b/includes/views/userchat.php index dffc688..aab576d 100644 --- a/includes/views/userchat.php +++ b/includes/views/userchat.php @@ -1,8 +1,11 @@ +
- +
diff --git a/js/chat.js b/js/chat.js index 619f241..9326e64 100644 --- a/js/chat.js +++ b/js/chat.js @@ -47,7 +47,7 @@ $(document).ready(function() { sendMessage(); }); - // Retrieves the messages from the database with + // Retrieves the messages from the database with every interval setInterval(function() { retrieveMessages(); }, chatInterval); From 1850d4d9a437cac40073c33e933fd9c44e75b333 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 14 Mar 2019 15:32:54 +0100 Subject: [PATCH 21/31] Prepped the email link for activation Added the code variable to the activation link in email.php so that this can be requested when the user clicks on the activation link --- activate.php | 26 +++++++++++++++++++++++--- includes/email.php | 4 ++-- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/activate.php b/activate.php index fee0fe2..d80b27b 100644 --- a/activate.php +++ b/activate.php @@ -1,15 +1,35 @@ - + + + +/** +* Sjekker om at det er noe i get variablen, +* burde sjekke om det er det rette som blir sendt inn + +*/ +if (isset($_GET["code"])){ + $code = ($_GET["code"]); + //echo htmlspecialchars($code); + //$sql = "select * from users WHERE '{$verify_code}' = " . $code; + //User::find_by_query($sql); + +}else{ + echo "Activation could not be completed"; +} + +?> + + + + diff --git a/includes/email.php b/includes/email.php index f7519b2..6f49bae 100644 --- a/includes/email.php +++ b/includes/email.php @@ -21,7 +21,7 @@ public static function mail_Sender($to, $subject, $txt){ // Denne tar inn hvilken mail det skal sendes til og fornavent til brukeren - /* + /** To do * Legge til aktiveringslink : Doneish, trenger formatering * Sjekke om denne er klikket på @@ -33,7 +33,7 @@ public static function send_ActivationMail($to, $first_name, $verify_code ){ $subject = "Hello " . $first_name . " Please activate your account at CM Games"; - $txt = "Please press the link below to activate your new account at CM Games " . "http://localhost/gamesite/activate.php?=" . $verify_code . " Thank you for registering. "; + $txt = "Please press the link below to activate your new account at CM Games " . "http://localhost/gamesite/activate.php?code=" . $verify_code . " Thank you for registering. "; self::mail_sender($to, $subject, $txt); From f7b4aee93367a2f2edc0a0ada3487c63396b9f4d Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 14 Mar 2019 16:46:43 +0100 Subject: [PATCH 22/31] Activate user can now look for user When the activation link is clicked, the find_user_by_code method will start and then find the user that has that verify_code and then dump it for now --- activate.php | 13 ++----------- includes/user.php | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/activate.php b/activate.php index d80b27b..f597343 100644 --- a/activate.php +++ b/activate.php @@ -12,26 +12,17 @@ */ if (isset($_GET["code"])){ $code = ($_GET["code"]); - //echo htmlspecialchars($code); - //$sql = "select * from users WHERE '{$verify_code}' = " . $code; - //User::find_by_query($sql); + + User::activate_user($code); }else{ echo "Activation could not be completed"; } - - - - ?> - - - - \ No newline at end of file diff --git a/includes/user.php b/includes/user.php index 6eee180..aa1084f 100644 --- a/includes/user.php +++ b/includes/user.php @@ -266,6 +266,35 @@ public static function verify_new_user($username, $email, $password, $password_c return $error_array; } + public static function find_user_by_code($code){ + + global $database; + // Tar bort eventuele ting som ikke skal være med i stringen + $code = $database->escape_string($code); + + // Finner ut om verify_code også ligger i databasen + $sql = "SELECT * FROM ". self::$db_table ." WHERE verify_code = '{$code}' Limit 1"; + + // retunerer det database objektet som blir funnet + return self::find_by_query($sql); + } + + public static function activate_user($code){ + global $database; + + + $the_result_array = self::find_user_by_code($code); + var_dump($the_result_array); + + // Får in db-objektet og ser om den er tom + if(!empty($the_result_array)){ + + } + + + + } + } ?> \ No newline at end of file From 6cc1a256a72e040d2d05215e68614e473bf89bf8 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 14 Mar 2019 18:29:24 +0100 Subject: [PATCH 23/31] Users can be activated now The activate user method works now, it still needs more work but it works in a basic work Changes the status on the user from 0 to 1 when activated --- activate.php | 3 +++ includes/user.php | 36 +++++++++++++++++++++++++++--------- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/activate.php b/activate.php index f597343..235ebe4 100644 --- a/activate.php +++ b/activate.php @@ -1,5 +1,7 @@ + + escape_string($code); // Finner ut om verify_code også ligger i databasen - $sql = "SELECT * FROM ". self::$db_table ." WHERE verify_code = '{$code}' Limit 1"; + $sql = "SELECT * FROM ". self::$db_table ." WHERE verify_code = '{$code}' AND status = 0 Limit 1 "; // retunerer det database objektet som blir funnet - return self::find_by_query($sql); + return static ::find_by_query($sql); } - public static function activate_user($code){ + public function activate_user($code){ global $database; - - $the_result_array = self::find_user_by_code($code); - var_dump($the_result_array); + // Finner den brukeren som har den aktiverings koden + $in = self::find_user_by_code($code); + // Henter det neste objektet i rekken og gir det tilbake + // Får in db-objektet og ser om den er tom - if(!empty($the_result_array)){ - + // Må legge inn sjekk for at brukeren ikke er aktivert fra før + if(!empty($in)){ + $user = array_shift($in); + var_dump($user); + + //Denne endrer status på brukeren til aktiv eller nå bare til 1 og default er 0 + $user->status = 1; + + + $user->update(); + + + echo "User was acitvated"; + } + else{ + echo "This user could not be found or this user is active"; } From 5bc1fff80450fb749ffa802c1dafd7d7aa56ca80 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 14 Mar 2019 20:46:48 +0100 Subject: [PATCH 24/31] Added the new header, foreign keys and more Moved head.php: Created head.php and placed it in helpers it needs to be called on pages that the header should not be placed on. Foreign Keys on database: Added all the keys that the database, there is still some cleaning to do on the names, used cascade to ensure no problems when users is removed, need to use cascade more later. Added Header Front-end: Davids front-end were added, had to do quite a lot of work for the back-end to fit it in, removed the movement bar that was there before. Changed File-Structure: Placed the assets in the assets-folder and changed the includes for main.css and main.js to fit the changes. - Cleaned some folders and files - Added some files that I will use later - Made some large changes to the database - Moved the JavaScript from functions.js to main.js - Got the page name from the URI to decide which of the options should be '-active' --- achievement.php | 7 + assets/css/main.css | 3104 ++++++++++++++ assets/css/main.css.map | 7 + assets/img/avatar.jpg | Bin 0 -> 62562 bytes assets/img/brand.svg | 1 + {img => assets/img}/email.svg | 98 +- {img => assets/img}/facebook.png | Bin {img => assets/img}/game.jpg | Bin {img => assets/img}/google.png | Bin {img => assets/img}/login.jpg | Bin {img => assets/img}/password.svg | 130 +- {img => assets/img}/profile/default/1.png | Bin {img => assets/img}/profile/default/10.png | Bin {img => assets/img}/profile/default/11.png | Bin {img => assets/img}/profile/default/12.png | Bin {img => assets/img}/profile/default/2.png | Bin {img => assets/img}/profile/default/3.png | Bin {img => assets/img}/profile/default/4.png | Bin {img => assets/img}/profile/default/5.png | Bin {img => assets/img}/profile/default/6.png | Bin {img => assets/img}/profile/default/7.png | Bin {img => assets/img}/profile/default/8.png | Bin {img => assets/img}/profile/default/9.png | Bin {img => assets/img}/tba.png | Bin {js => assets/js}/chat.js | 0 js/functions.js => assets/js/main.js | 0 {scss => assets/scss}/main.scss | 7 +- .../scss}/modules/_breakpoint.scss | 14 +- {scss => assets/scss}/modules/_color.scss | 13 +- assets/scss/partials/_avatar.scss | 42 + {scss => assets/scss}/partials/_base.scss | 0 {scss => assets/scss}/partials/_button.scss | 2 +- {scss => assets/scss}/partials/_card.scss | 80 +- assets/scss/partials/_casing.scss | 5 + assets/scss/partials/_dropdown.scss | 95 + .../scss}/partials/_float-label.scss | 62 +- assets/scss/partials/_header.scss | 126 + {scss => assets/scss}/partials/_login.scss | 220 +- {scss => assets/scss}/partials/_utility.scss | 0 assets/scss/vendor/_animate.scss | 3623 +++++++++++++++++ {scss => assets/scss}/vendor/_normalize.scss | 484 +-- css/main.css | 453 --- css/main.css.map | 7 - gamepage.php | 2 - games.php | 49 - gamesite_db.sql | 172 +- includes/classes/message.php | 2 +- includes/classes/user.php | 2 +- includes/helpers/head.php | 25 + includes/process/write_chat.php | 1 + includes/views/header.php | 119 +- includes/views/self_profile_content.php | 2 - includes/views/userchat.php | 2 +- index.php | 44 +- js/main.js | 1 - login.php | 53 +- statistics.php | 7 + users.php | 2 - 58 files changed, 7869 insertions(+), 1194 deletions(-) create mode 100644 achievement.php create mode 100644 assets/css/main.css create mode 100644 assets/css/main.css.map create mode 100644 assets/img/avatar.jpg create mode 100644 assets/img/brand.svg rename {img => assets/img}/email.svg (96%) rename {img => assets/img}/facebook.png (100%) rename {img => assets/img}/game.jpg (100%) rename {img => assets/img}/google.png (100%) rename {img => assets/img}/login.jpg (100%) rename {img => assets/img}/password.svg (98%) rename {img => assets/img}/profile/default/1.png (100%) rename {img => assets/img}/profile/default/10.png (100%) rename {img => assets/img}/profile/default/11.png (100%) rename {img => assets/img}/profile/default/12.png (100%) rename {img => assets/img}/profile/default/2.png (100%) rename {img => assets/img}/profile/default/3.png (100%) rename {img => assets/img}/profile/default/4.png (100%) rename {img => assets/img}/profile/default/5.png (100%) rename {img => assets/img}/profile/default/6.png (100%) rename {img => assets/img}/profile/default/7.png (100%) rename {img => assets/img}/profile/default/8.png (100%) rename {img => assets/img}/profile/default/9.png (100%) rename {img => assets/img}/tba.png (100%) rename {js => assets/js}/chat.js (100%) rename js/functions.js => assets/js/main.js (100%) rename {scss => assets/scss}/main.scss (76%) rename {scss => assets/scss}/modules/_breakpoint.scss (97%) rename {scss => assets/scss}/modules/_color.scss (67%) create mode 100644 assets/scss/partials/_avatar.scss rename {scss => assets/scss}/partials/_base.scss (100%) rename {scss => assets/scss}/partials/_button.scss (98%) rename {scss => assets/scss}/partials/_card.scss (94%) create mode 100644 assets/scss/partials/_casing.scss create mode 100644 assets/scss/partials/_dropdown.scss rename {scss => assets/scss}/partials/_float-label.scss (95%) create mode 100644 assets/scss/partials/_header.scss rename {scss => assets/scss}/partials/_login.scss (86%) rename {scss => assets/scss}/partials/_utility.scss (100%) create mode 100644 assets/scss/vendor/_animate.scss rename {scss => assets/scss}/vendor/_normalize.scss (96%) delete mode 100644 css/main.css delete mode 100644 css/main.css.map delete mode 100644 games.php create mode 100644 includes/helpers/head.php delete mode 100644 js/main.js create mode 100644 statistics.php diff --git a/achievement.php b/achievement.php new file mode 100644 index 0000000..782211c --- /dev/null +++ b/achievement.php @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/assets/css/main.css b/assets/css/main.css new file mode 100644 index 0000000..37b137b --- /dev/null +++ b/assets/css/main.css @@ -0,0 +1,3104 @@ +html { + line-height: 1.15; + -webkit-text-size-adjust: 100%; } + +body { + margin: 0; } + +h1 { + font-size: 2em; + margin: 0.67em 0; } + +hr { + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 0; + overflow: visible; } + +pre { + font-family: monospace, monospace; + font-size: 1em; } + +a { + background-color: transparent; } + +abbr[title] { + border-bottom: none; + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; } + +b, +strong { + font-weight: bolder; } + +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; } + +small { + font-size: 80%; } + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sub { + bottom: -0.25em; } + +sup { + top: -0.5em; } + +img { + border-style: none; } + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + font-size: 100%; + line-height: 1.15; + margin: 0; } + +button, +input { + overflow: visible; } + +button, +select { + text-transform: none; } + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } + +fieldset { + padding: 0.35em 0.75em 0.625em; } + +legend { + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; } + +progress { + vertical-align: baseline; } + +textarea { + overflow: auto; } + +[type="checkbox"], +[type="radio"] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0; } + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } + +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; } + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; } + +details { + display: block; } + +summary { + display: list-item; } + +template { + display: none; } + +[hidden] { + display: none; } + +/*! + * animate.css -http://daneden.me/animate + * Version - 3.7.0 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2018 Daniel Eden + */ +@-webkit-keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); } + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); } + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); } } +@keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); } + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); } + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); } } +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; } + +@-webkit-keyframes flash { + from, + 50%, + to { + opacity: 1; } + 25%, + 75% { + opacity: 0; } } +@keyframes flash { + from, + 50%, + to { + opacity: 1; } + 25%, + 75% { + opacity: 0; } } +.flash { + -webkit-animation-name: flash; + animation-name: flash; } + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ +@-webkit-keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +@keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; } + +@-webkit-keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); } + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); } + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); } + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); } + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +@keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); } + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); } + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); } + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); } + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; } + +@-webkit-keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } } +@keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } } +.shake { + -webkit-animation-name: shake; + animation-name: shake; } + +@-webkit-keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); } + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); } + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); } + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); } + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); } } +@keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); } + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); } + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); } + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); } + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); } } +.headShake { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-name: headShake; + animation-name: headShake; } + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); } + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); } + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); } + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); } + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); } } +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); } + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); } + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); } + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); } + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); } } +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; } + +@-webkit-keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); } + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +@keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); } + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +.tada { + -webkit-animation-name: tada; + animation-name: tada; } + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ +@-webkit-keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; } + +@-webkit-keyframes jello { + from, + 11.1%, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); } + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); } + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); } + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } } +@keyframes jello { + from, + 11.1%, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); } + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); } + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); } + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } } +.jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center; } + +@-webkit-keyframes heartBeat { + 0% { + -webkit-transform: scale(1); + transform: scale(1); } + 14% { + -webkit-transform: scale(1.3); + transform: scale(1.3); } + 28% { + -webkit-transform: scale(1); + transform: scale(1); } + 42% { + -webkit-transform: scale(1.3); + transform: scale(1.3); } + 70% { + -webkit-transform: scale(1); + transform: scale(1); } } +@keyframes heartBeat { + 0% { + -webkit-transform: scale(1); + transform: scale(1); } + 14% { + -webkit-transform: scale(1.3); + transform: scale(1.3); } + 28% { + -webkit-transform: scale(1); + transform: scale(1); } + 42% { + -webkit-transform: scale(1.3); + transform: scale(1.3); } + 70% { + -webkit-transform: scale(1); + transform: scale(1); } } +.heartBeat { + -webkit-animation-name: heartBeat; + animation-name: heartBeat; + -webkit-animation-duration: 1.3s; + animation-duration: 1.3s; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + +@-webkit-keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); } + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); } + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +@keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); } + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); } + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +.bounceIn { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceIn; + animation-name: bounceIn; } + +@-webkit-keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); } + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); } + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; } + +@-webkit-keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); } + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); } + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; } + +@-webkit-keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); } + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); } + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; } + +@-webkit-keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; } + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } } +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } } +.bounceOut { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceOut; + animation-name: bounceOut; } + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; } + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; } + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; } + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; } + +@-webkit-keyframes fadeIn { + from { + opacity: 0; } + to { + opacity: 1; } } +@keyframes fadeIn { + from { + opacity: 0; } + to { + opacity: 1; } } +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; } + +@-webkit-keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; } + +@-webkit-keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; } + +@-webkit-keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; } + +@-webkit-keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; } + +@-webkit-keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; } + +@-webkit-keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; } + +@-webkit-keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; } + +@-webkit-keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; } + +@-webkit-keyframes fadeOut { + from { + opacity: 1; } + to { + opacity: 0; } } +@keyframes fadeOut { + from { + opacity: 1; } + to { + opacity: 0; } } +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; } + +@-webkit-keyframes fadeOutDown { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } +@keyframes fadeOutDown { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; } + +@-webkit-keyframes fadeOutDownBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } +@keyframes fadeOutDownBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; } + +@-webkit-keyframes fadeOutLeft { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } +@keyframes fadeOutLeft { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; } + +@-webkit-keyframes fadeOutLeftBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } +@keyframes fadeOutLeftBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; } + +@-webkit-keyframes fadeOutRight { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } +@keyframes fadeOutRight { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; } + +@-webkit-keyframes fadeOutRightBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } +@keyframes fadeOutRightBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; } + +@-webkit-keyframes fadeOutUp { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } +@keyframes fadeOutUp { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; } + +@-webkit-keyframes fadeOutUpBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } +@keyframes fadeOutUpBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; } + +@-webkit-keyframes flip { + from { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 40% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 50% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + to { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } } +@keyframes flip { + from { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 40% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 50% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + to { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } } +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; } + +@-webkit-keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } +@keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; } + +@-webkit-keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } +@keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; } + +@-webkit-keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; } } +@keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; } } +.flipOutX { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; } + +@-webkit-keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; } } +@keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; } } +.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; } + +@-webkit-keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + +@-webkit-keyframes lightSpeedOut { + from { + opacity: 1; } + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; } } +@keyframes lightSpeedOut { + from { + opacity: 1; } + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; } } +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + +@-webkit-keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; } + +@-webkit-keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; } + +@-webkit-keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; } + +@-webkit-keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; } + +@-webkit-keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; } + +@-webkit-keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; } } +@keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; } } +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; } + +@-webkit-keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } } +@keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } } +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; } + +@-webkit-keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } } +@keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } } +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; } + +@-webkit-keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } } +@keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } } +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; } + +@-webkit-keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; } } +@keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; } } +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; } + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; } + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; } } +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; } + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; } } +.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; + -webkit-animation-name: hinge; + animation-name: hinge; } + +@-webkit-keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; } + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); } + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); } + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); } } +@keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; } + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); } + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); } + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); } } +.jackInTheBox { + -webkit-animation-name: jackInTheBox; + animation-name: jackInTheBox; } + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ +@-webkit-keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; } + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ +@-webkit-keyframes rollOut { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } +@keyframes rollOut { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; } + +@-webkit-keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 50% { + opacity: 1; } } +@keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 50% { + opacity: 1; } } +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; } + +@-webkit-keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; } + +@-webkit-keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; } + +@-webkit-keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; } + +@-webkit-keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; } + +@-webkit-keyframes zoomOut { + from { + opacity: 1; } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + to { + opacity: 0; } } +@keyframes zoomOut { + from { + opacity: 1; } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + to { + opacity: 0; } } +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; } + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; } + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; } } +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; } } +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; } + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; } } +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; } } +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; } + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; } + +@-webkit-keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; } + +@-webkit-keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; } + +@-webkit-keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; } + +@-webkit-keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; } + +@-webkit-keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } +@keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; } + +@-webkit-keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } +@keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; } + +@-webkit-keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } +@keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; } + +@-webkit-keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } +@keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; } + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.animated.delay-1s { + -webkit-animation-delay: 1s; + animation-delay: 1s; } + +.animated.delay-2s { + -webkit-animation-delay: 2s; + animation-delay: 2s; } + +.animated.delay-3s { + -webkit-animation-delay: 3s; + animation-delay: 3s; } + +.animated.delay-4s { + -webkit-animation-delay: 4s; + animation-delay: 4s; } + +.animated.delay-5s { + -webkit-animation-delay: 5s; + animation-delay: 5s; } + +.animated.fast { + -webkit-animation-duration: 800ms; + animation-duration: 800ms; } + +.animated.faster { + -webkit-animation-duration: 500ms; + animation-duration: 500ms; } + +.animated.slow { + -webkit-animation-duration: 2s; + animation-duration: 2s; } + +.animated.slower { + -webkit-animation-duration: 3s; + animation-duration: 3s; } + +@media (print), (prefers-reduced-motion) { + .animated { + -webkit-animation: unset !important; + animation: unset !important; + -webkit-transition: none !important; + transition: none !important; } } +.avatar { + background-image: url(/img/backup.png); + background-position: center top; + background-size: cover; + background-repeat: no-repeat; + background-color: white; + border-radius: 50%; + width: 3.2rem; + height: 3.2rem; } + .avatar.-xl { + width: 6.4rem; + height: 6.4rem; } + .avatar.-l { + width: 4.8rem; + height: 4.8rem; } + .avatar.-s { + width: 2.4rem; + height: 2.4rem; } + .avatar.-xs { + width: 1.6rem; + height: 1.6rem; } + +*, +*:after, +*:before { + -webkit-box-sizing: inherit; + box-sizing: inherit; } + +html { + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-size: 62.5%; } + +body { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + min-height: 100vh; + font-size: 1.6em; + line-height: 1.6; + font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + font-weight: 300; + letter-spacing: 0.01em; } + +main { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; } + +.button-text, .button-outlined, .button-contained, .button-toggle { + display: inline-block; + -webkit-transition: 0.3s background-color, 0.3s opacity; + transition: 0.3s background-color, 0.3s opacity; + border: 1px solid transparent; + border-radius: 0.3rem; + padding: 1rem 1.6rem 0.9rem; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + font-size: 1.4rem; + font-weight: 700; + text-align: center; + vertical-align: top; + text-transform: uppercase; + letter-spacing: 0.15rem; } + .button-text:focus, .button-outlined:focus, .button-contained:focus, .button-toggle:focus { + outline: 0; } + [disabled].button-text, [disabled].button-outlined, [disabled].button-contained, [disabled].button-toggle { + pointer-events: none; + color: #6c757d; } + +.button-text:hover, .button-outlined:hover, .button-toggle:hover { + background-color: rgba(131, 163, 136, 0.05); } +.button-text .active, .button-outlined .active, .button-toggle .active, .button-text:active, .button-outlined:active, .button-toggle:active, .button-text:focus, .button-outlined:focus, .button-toggle:focus, .button-text:checked, .button-outlined:checked, .button-toggle:checked { + background-color: rgba(131, 163, 136, 0.11); } + +.button-contained:hover { + background-color: #65d775; } +.button-contained .active, .button-contained:active, .button-contained:focus, .button-contained:checked { + background-color: #3dcc51; } +[disabled].button-contained { + background-color: #dee2e6; } + +.button-text { + background-color: transparent; + color: #54D266; } + +.button-outlined { + border-color: #ced4da; + background-color: transparent; + color: #54D266; } + +.button-contained { + background-color: #54D266; + color: white; } + +.button-toggle { + border-color: #ced4da; + padding: 0.8rem 1rem 0.7rem; + min-width: 4.1rem; + height: 4.1rem; + background-color: transparent; } + .button-toggle > img, .button-toggle > svg { + -webkit-transform: translateY(0.5rem); + transform: translateY(0.5rem); + margin-top: -1rem; + width: 2rem; + height: 2rem; } + +.button-group { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; } + .button-group > *:not(:first-child) { + border-left: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .button-group > *:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.button-ripple { + position: relative; + overflow: hidden; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + .button-ripple:after { + content: ""; + display: block; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + pointer-events: none; + background-image: radial-gradient(circle, #b9d9be 10%, transparent 10.01%); + background-repeat: no-repeat; + background-position: 50%; + -webkit-transform: scale(10, 10); + transform: scale(10, 10); + opacity: 0; + -webkit-transition: opacity 1s, -webkit-transform 0.5s; + transition: opacity 1s, -webkit-transform 0.5s; + transition: transform 0.5s, opacity 1s; + transition: transform 0.5s, opacity 1s, -webkit-transform 0.5s; } + .button-ripple:active:after { + -webkit-transform: scale(0, 0); + transform: scale(0, 0); + opacity: 0.3; + -webkit-transition: 0s; + transition: 0s; } + +.button-block { + width: 100%; } + +body { + background-color: #eef2f6; } + +.card { + position: relative; + -webkit-box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.2); + box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.2); + border-radius: 2px; + width: 200px; + overflow: hidden; } + +.card-image { + width: 100%; + height: 200px; + background-image: url(/img/tba.png); + background-position: center; + background-size: cover; + background-repeat: no-repeat; + background-color: white; } + +.card-details { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + position: absolute; + bottom: 0; + width: 100%; + min-height: 60px; + background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.75)), to(transparent)); + background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.75), transparent); + color: white; } + +.dropdown { + position: relative; } + .dropdown:hover > .list { + top: 100%; + left: 0; } + .dropdown .dropdown:hover > .list { + top: 0; + left: 100%; } + .dropdown.-left:hover > .list { + right: 0; + left: unset; } + .dropdown.-left .dropdown:hover > .list { + right: 100%; + left: unset; } + .dropdown:hover > .list { + display: block; + -webkit-animation: fadeInUp 0.2s; + animation: fadeInUp 0.2s; } + +.list { + position: absolute; + display: none; + padding: 0.5rem; + border-radius: 1.2rem; + width: 15rem; + background-color: #212529; } + +.list > * { + display: block; } + +.list > a { + border-radius: 1rem; + padding: 0.5rem 2rem 0.75rem; + -webkit-text-decoration-line: none; + text-decoration-line: none; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + font-weight: 500; + color: #adb5bd; } + +.list > a:hover { + background-color: #343a40; + color: #dee2e6; } + +.float-label { + position: relative; } + +.float-label > input { + padding: 1.8rem 2.4rem 1.6rem; } + +.float-label > label { + position: absolute; + top: 50%; + left: 2.4rem; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + opacity: 0; + -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease; + transition: opacity 0.3s ease, -webkit-transform 0.3s ease; + transition: opacity 0.3s ease, transform 0.3s ease; + transition: opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease; + font-size: 1.2rem; } + +.float-label input:not(:placeholder-shown) { + padding: 2.4rem 2.4rem 1rem; } + +.float-label input:not(:placeholder-shown) + label { + -webkit-transform: translateY(calc(-50% - 1.6rem)); + transform: translateY(calc(-50% - 1.6rem)); + opacity: 0.5; } + +header { + background-color: #343a40; } + +.bar { + background-color: #e9ecef; } + +.bar .xp { + -webkit-transition: 0.5s width; + transition: 0.5s width; + width: 0%; + height: 0.8rem; + background-color: #ccf0d1; + background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%2354d266' fill-opacity='0.81' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E"); + background-size: contain; } + +.header { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin: 0 auto; + padding: 2rem; + max-width: 100rem; } + +.header.-main { + padding-bottom: 16rem; } + +.header .profile { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 0.5rem 0; + -webkit-text-decoration-line: none; + text-decoration-line: none; } + +.header .profile .username { + -webkit-transition: 0.3s color; + transition: 0.3s color; + margin-right: 1.2rem; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + font-weight: 500; + color: #adb5bd; } + +.header .profile:hover .username { + color: #dee2e6; } + +.header .profile .username.-active { + color: #f8f9fa; } + +nav { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + +nav .item { + -webkit-transition: 0.3s color; + transition: 0.3s color; + -webkit-text-decoration-line: none; + text-decoration-line: none; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + font-weight: 500; + color: #adb5bd; } + +nav .item:hover { + color: #dee2e6; } + +nav .item.-active { + color: #f8f9fa; } + +nav .item + .item { + margin-left: 4rem; } + +.header .brand { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + border-radius: 50%; + width: 5rem; + height: 5rem; + background-color: #f8f9fa; } + +.header .brand img { + width: 80%; } + +.login-wrapper { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + +.login-container { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + z-index: 1000; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2), 0 0 12px 0 rgba(0, 0, 0, 0.2); + box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2), 0 0 12px 0 rgba(0, 0, 0, 0.2); + width: 100%; } + +.login { + width: 100%; } + +.login-title-container { + margin: 0 auto 2rem; + padding: 0 2rem; + max-width: 40rem; } + +.login-title { + display: inline-block; + opacity: 0.8; + margin: 0; + border-bottom: 0.3rem solid #54D266; } + +.login .login-input, .login .login-controllers { + margin: 0 auto; + padding: 0 2rem; + max-width: 40rem; } + +.login input[type=password], .login input[type=email] { + margin-bottom: 1rem; + -webkit-box-shadow: inset 0.1rem 0.1rem rgba(0, 0, 0, 0.1), 0 -0.1rem 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0.1rem 0.1rem rgba(0, 0, 0, 0.1), 0 -0.1rem 0 rgba(255, 255, 255, 0.15); + border-radius: 5000rem; + border: none; + width: 100%; } + +.login input:focus { + outline: none; } + +.login input[type=submit] { + position: relative; + border-radius: 5000rem; + cursor: pointer; } + +.image { + position: absolute; + top: 50%; + left: 1.4rem; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + width: 2.4rem; + vertical-align: top; } + +.marg-left { + margin-left: 1rem; } + +.login-controllers { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + +.login-controllers > * + * { + margin-left: 0.5rem; } + +.login-controllers * { + border-radius: 500rem; + -webkit-text-decoration-line: none; + text-decoration-line: none; } + +.login-image { + display: none; + background-image: url(/img/login.jpg); + background-position: left center; + background-size: cover; + background-repeat: no-repeat; + background-color: white; } + +@media (min-width: 60rem) { + .login-container { + min-width: 50rem; + max-width: 38.2%; } + + .login-image { + display: block; + width: 61.8%; } } +.float-left { + float: left; } + +.float-right { + float: right; } + +.clearfix::after { + content: " "; + clear: both; + display: table; } + +/*# sourceMappingURL=main.css.map */ + + +/* + * Added the part for the chat after this needs to be changed/replaced/fixed + */ + + *, + *:before, + *:after { + box-sizing: inherit; +} + +/*Chat styling*/ +.chatcontainer { + display: flex; + justify-content: center; + align-items: center; +} + +.userSettings { + margin-bottom: 20px; +} + +.chat { + max-width: 400px; + display: flex; + flex-direction: row; + flex-wrap: wrap; +} + +.chat #chatOutput { + overflow-y: scroll; + height: 280px; + width: 100%; + border: 1px solid #777; +} + +.chat #chatOutput p { + margin: 0; + padding: 5px; + border-bottom: 1px solid #bbb; + word-break: break-all; +} + +.chat #chatInput { + width: 75%; +} + +.chat #chatSend { + width: 25%; +} \ No newline at end of file diff --git a/assets/css/main.css.map b/assets/css/main.css.map new file mode 100644 index 0000000..2112a8f --- /dev/null +++ b/assets/css/main.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../scss/vendor/_normalize.scss","../scss/vendor/_animate.scss","../scss/partials/_avatar.scss","../scss/partials/_base.scss","../scss/partials/_button.scss","../scss/modules/_color.scss","../scss/partials/_card.scss","../scss/partials/_dropdown.scss","../scss/partials/_float-label.scss","../scss/partials/_header.scss","../scss/partials/_login.scss","../scss/partials/_utility.scss"], +"names": [], +"file": "main.css" +} diff --git a/assets/img/avatar.jpg b/assets/img/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..97ed1e1c97272f18b40eef1fed0ed232897d4c08 GIT binary patch literal 62562 zcmV(lK=i*-Nk&Fm^Z)=?MM6+kP&gn?^Z)=*69b(ADu4p30X`)RghC;QE6fG}ku0n5 z;noc09l#j?b-Aa4&=1jECGd8BP&}jF7s)>V{&W84!-w_z9QRNAUSS`x6r-R{~z*E{0>t6SNwnd-i7}^{NeoH^8dX5o4<9x#s9zlx67ZQKk|Bu{%!r2 z{pa{E-M{iaw14k+`&-Za-{}2=z2N(w{4epp=)doOm-p`dkNqB&e#`#%|6jNd^k45^ z^M5=4%l!%eL&oFuKlFcZegOZb|Ahaq{*UtS>9hRb{lD&i)PCmsv-+q1Px@c?KegXs zU(J8Cf6D(C{-6Ix`QQKl{Qmg=_xs2Fs{iBeyZcf9FZVD1`KnsH4J!oq0(OY>Eu8nV zx@4B?PSf`DUIijL<9PU*G5-ZVmwk`tf5e=a%5o#jlU8P$6vcDZaT8VR+)x^~_}(_o z-cD%b2EsHRSs`bC9c)p4in?wjW^6EloorQk>_4Y8@MwT;7WcuSsZ^%uU`$()X;gW zDLh_arIIVn)Mvm@JtdH%H!YxP2HB2;8&Q+$Wg>NiBD!53bK}vo)<>n=4S!H;2Y?sb#l3 z0B4n0QxM~$@lD8sy_mtM3*;#KdI4@jk!fQz1J;zAw|M%$$k7fWZ7r&AK{!sdU{D8< z@OoPGX}lrvfTpg5E>&M7zz=+9rb4N{Vr@yJTS#>%d2U%hywtc~ z_sy>Jbn$*%F|fga{^MC6uDpDOLiNV$X&K*EFVKm(IyDyOB)C}Jv3i4|?Zu}uwBapq zlC)=>g3+CT{ayJ1b^^Q7(9z;(oyyMa;xf_j95@fUamJnWINU|%XZ|T&GFzDU;&yt{ z_#aFL2gJLaYLR@{N0Xpq^5^GxNVIAoE7cgLOQN+r-oX_Guhz&)-?wWn#Z!VWtda{Z zOchAFuzSa=Hq!8K=SgKDtJ8tVf3*)mC9$`NFjBF!6NE|Ywh^G7wal2t04A?(mn0W8 z_pOBu-JCJSIuWcV_k=5GAZ74$1)BzyKCp0l-n~3zx0f5$YzJBA))uxv(@#f&in0Mq zKjA&2-G#-BBILHlHaTSnsc^*I6~ z>lmDb`ijgg;rx=KRES8<73m{%)a`#>LKA6&s;NVtE!4DBQXRL-ZL^K%Vj$xJ4uEQr3d%56!BBT5F979Pa}6lWM5S4k3o~dB zK~HibxHvajxEiv${Q*Uxs`kBWO$O(y3Kynbl%8GB%c-R`9}f@W03oceT6~@D%>A8~ zmHlW#JbqQB3psH;TQuIYOFOY3zwVdkmmj)eMrsvOC8;@pk9df^)S)gP^u`kn_9O!P z72ZipjJ{^HHj+KV{X%Xbc+Mbo50uxLB5?9tr8A|eTLE}Axa0|O9HOSvTb0Aq`E#cLCc$=NeZ}e~TY3YC=rNSM#9YMD1&sTBT%a8f$&-@LVe0QjuhdxMmMp8}mit+y zx=;%V%(hFic*;mATu<|f?*v%SL<9zFF&fkirrGOGt&6`m!Ggtz9Nv9u?;OQt#IlPJ z!pX-HXM#R6j>7Zs{`-&Dl5{bPz$s6s&NjNT{jtGy!F1}E9iD!fNyupnft{yZIaeVc zYq|mK_VLqZ?W65E>hF;bdNLJn1$7yOmdZ|(A_!;cncIxx-t%p?62%ftx+E-+bUMI6 zcy-!9L?tT8CA@HaLdl##csddOY8s6EuUieE>I7?lzys+|Jn^QM5@Sb*~lmGtqbvmu2{mouF0I z2d%e>)2t)lt(`Y8SGDbVi&PB@!0j3!F+7eFFX13}5d`V-#4JPGmZ-P!*LIipF>Y3{ zVt6hJ@U$L9%i1lCuu~zpR=sThgl9urBy_Xrv2@Ey>Y{^YrveUI8s&`3wV45b!tYpsJkJr}40OyCcjIpw9mH zsHv}nYB+52zHSsU@-J)SNc=o)#5&zww) z`L%8AbT!N+1!T4$*DTje%A_Mbb?V2q0M`kr&0cR^@->1(u99kx6hKG|uR)cGq_V_q z88p#{5Ls;__w$Us^_z9EZU7{M|AzJvjIN>SIIx`(!>_ zzp<~iY5+6+n$Y$&*_Uq${E%bjS3h)@09%sc0ZiHdN| z_gA6Hi-IcxZ(+N8VkVAb+`rw9jYMu`^P~TG@GY?AFy){w`Gy;cTF`N{F_eMyq8Kjj z$?1a*WGdx$J9qxJfaC^Kvc{y<* zGjY7$Oh(vP6lHTG8QT6w*284l+Q_C$7sL~;Sc^7-tlsLVsy_AHz0flOrbI`~G>;OS z*a`vBg#Hilv>D%^nvu7@c1a)G4Z|kRy?vge?Y*^jOJybYhTrR$uK}E_;e;m2r;|yO zIrTK~Qn%zORv`ohRt|?kiwmioH$urqf*F=@tre(Be`^=EL|i{sHUet z5Aq~^^&1n-pq(x7uLI+UBQ^;w@#6aRhD=L5yV7A_Ha+3|C0p^9Rn}r;XNI}mJITcg z@^Tb5JWm*}+_O(mt(L*>eAQj)2b~#_jTnHUp|~Fo?dljQ*_m5p)xplh8HFnl}jz1x2OkaNkl zo^L)!YCWk{YkgVuSzHK#{!o@R-h<)X(y{vsX>Ue11dkY)UF>nIUfgEF$KStjRta7l zGer%X{&4Xbzwzo2P`FdG&Q#H1x(w_7+fs`|bkQ^jusBMbp&%y^Jg=ybEpz@Juq z_&)H*qh`Y#{g)qZ1SYC4{#Z&?tK1=^HU1> zv`R8>lSa3s5rUM_0$j-T?6uLgxnILwK3`J`GWdXoc3eZ&SQUq5Roo?*cJi*MKqU)2 zN+@?0y+SKUD}E16^p%8}Tb7A2{4h_6vOsBh_u{{x%E4MPNaln5Y>Z^EepVfu=n{Nh zrVw*5CF_A=Kd7PeW9bkI<)r97hl)fdA|Jo=tgbk4azVuVeu!J31K$DZDg;V+9Z0t4 zTrj3Gb?txWmfRCK2GlRoZ!C~Y{a=xUs3`5sn3lGXj<{Wr@=CosnG90^6#(0G!k8EY z6AJ%-0Bn^XSTF6vQ$QXB{w;2vMz12a^xBexz3Lx8Defx*YsBJM0%I)5oc(*6zjyxR z+c*-P#jC49y4ad(`@vTN1G-PU3Gw`%y3===A{hloGHgxSz3_JQaZ)>d_fnw&9HAWE z$Y(@W&n_YcSKoknlWX!x2(WH<%6IXNYKs3)4Q;niQd)mm49o@be&vI(nhH0Z0y|ZaZ5Lo2>B32UbQEQ>D=CO;SqbZes zY`a>(*^6!WMl_wGYQA8Ct{87F9pWo&h<_n{?g%a!*-IVT02!fx1x&}z*IPKSRPd{h zN&9y50J97m_s1T4hfplQMq2_)9xr)@#9D~3#r>fvzt-q(YNb}EV1A&E>S1cZGas>( zmq`j?*9){DaWi9<0RO?v zc|rv+a=Z2PWb#yxYZwAAMe@KdfxU=d&9k%;2bM?t!!Zk@FCK#8 zK6(@+PZNg6f({adw%aI!F^~s6#hs$&NS5oH>LkBtjE=P~hcL>*!h&EPpM0KiXxf2C zCRUD7T(wfC_?NHuEU09qdcdw1dLt}t+bL&yg7~>6rZOKa-Pe zGKlkg|JKX7*6c#rCckV9ZjH5+E4i$jS-y_r;$I)&GPsOD>kbIt`l^pH- zOVk{xCdXRvi&HimLdl&ki*a=P0D?KY?Gz*lNCK|1CmwnrpYr|gCR$fx2&%hw$U6L> zhc1#YeXlpn^PLWH^pQ&o@<2bTxQQk7R0Vq%k4QsRLj9BPyPI*8ie^R2R$PCX{6OSU z-df#E2|pHanS0PxC~Zn;WW#@1#!by!CS?q2iDb@vtI}OYn$v8NL4$NAqjL%#ju8xEID^3>-^Us?wsnr3lS~8=J#6(}8kbE~?gGXy9rglc} zt|eueFzXF!eNaPt7z$;4wbkfTyvGWg(g=Y*3P}cMr%3?h^ni{4X<$KPQ)re*1whNv zQE7yIR<>#=iu3Bi)ggx7f8x$9xc#jKOZF~d!p6X^*a>$neYTtwfNB_}dTG}ZDaYnK zK=0-Y?#o94OWM8(vQdu0amN71USN`0iKEwJE59S%MDIpshLQ1#K=UQkIyDY_B})QD z!WP6)F(;ez2}#ZIps)$S2V^6#wx&F3I3(CKV?o;F`F4=?@igcHB8DMDlz*_b z>t|zkf=aDr)@A?Y(3~9NC18!N0|uiCqp2=>ShNP*&Klo8(dKp++Jd#DJF^-eh@Ds> z&dRHy5fNR<@cz?dZxEFJi!6`m1gq{=PHjNi9+;d)og0s9@I7t4rZSC&Yzw6H@c>wU zFfs70H}K0>S3}Pze{(Tmu~~j(M;%2I%CrXuf!V*R{Jty3zhpum7cq1BU&`u`{^Ahm zVE$jxLq3fZncGj_ZHWcc(N+Fi*{lB4D#2cOHz5DU=(j(<4-#tgF5C(H1Qv6j}WSs=pt@#3_l_mpD;<&no4oScxqzGnX!fHAP^j!mjQB% z3~sNTCfl=t2-`&sGMYJ=RQ5If(bXyVNM}>#oxgl5>*1n6w#->U45mK{7WAo^Tn&DF z!BOoz3T%LWX&A~KJg#c8f3yHq!hnjkSaXB2!=@Vi=UZmSEZnth;Wg2fh#l9(wBDks z_)k}lYK6^*ahYcqf6)Y_LMUlLlF7o{UivQTcNW9mTJ z553F-$;CpUa=-7&Qzm9D3Ql*WIC#WbLG<^LIW7PBl#K(DXPV>PB->3_#+6p~4oB3x zGjYFA;;li)pslu(O&0BW(nqf*%B)xJRNSQ!O?B8G%sZustpSPK@=$Wu`CB_3nPfi9 zhwG=K4CJI5V8Rlo_tfmzly;(zbVFkNL{Keyva1Z@W}6)H828Nz>kv%UnM&MFtqxIu zlUzRT4?S-arI|m_F2RkUYx&{rYkV}Lnkxxxo(g)2GEP#&a;T9PE1KUii6YaKV@ZE~ zO*H=q-x%AbO(R~QTc`|0Y3=Xuk^Z@#cSY_@O?JpDeM_k&5nTuDOOi05*Mt1+1jt-Z z69@|${^I{*hFOc}7sPloVZ|sRhP_iXv$3QZ^-h-N?#q|59)S7^e91~+;XH8K&BNSu zt?+UyXs9S;e>JTK-`&Fo?Z%5lD~m)60lbys;~I7jG}_s0L=XxB1dhie#?`W59(BE1 zdYDa(Ze+@g$0{_-n!PeAHkcQ^5$AJ_xe{yL!7}!nCtfkKvwV^+dQ9o8J>HVkyRVhS zhcHsA(LHc`V=Surx^`%Ik!2y3b@%&f>av5S<-et{5dzBIwD+NQE1D(7UEB)-Q!o84 znJd+&@_@bwET^y}AS#e0ykT~>NlNbtln1;KXHpFa zw1mCtDzsGqXj`M$0x&&(GGkDRt(GXFJgeovBH`{dV-C29-*~j1>;tmnKR;@s;4yiW zE&;hbt*kObdJXkhcwZCZ8-%-*x7YRU-M{O1Fa6((rEZs|_C48Y!^`e*&cn(U?zd)e z%pW3x%=NJBbsZ$wi#K2DCa)B3(6mI_?d13qm+_qp6$I||=IRIy*71U_bcxz=9q1>R z$=@|(Lrok@736^n?3&%Hhw6EP#Hx^oybSI0@46l1tUhRM*p=ljDL$3v-eCH zo`O?K*gzL-mK~;yfGka{4Waq=Bqf8SbDPi&3)I$|l_5#O^LQ=b58Y6%hR5^f)U8vt z>Jl_6nr4>AYFQ;)WRs-A_6eV+Qq%oJpy1(PD-yQ>F#Nm`N@hm5g>*awwiPGttSl-+ zaE=Yu_NQYs};K5XO}?otq|FT{Zc8_XB$r z?UiaMs}D1bTm-{|bLaxme^1oi9M;)Bsj7g;QuR_p-EpbITM5?A73b^uU743&Codr; z>(t90{eYSE*C=b!;_3ET0*L^5lahzY57cs{!eA#G)tB=q90(J6Emsbw%Gk9=@hF#= z)3W-Dn}+yCt+FAaCge}T%(0_NyqW{Ge(42*c2J>jJ0cdKaLR@L@xzi&M#SsoXwlJ| z`bB$?Jyn=ppJKcb^5ZS6pCY{$LR1(I3g{+EnZv+nt>`ht?h%6??;;!(xs~@{qs=3Q zA{c-NLCi1~kdj zytpT`=w=Ii;n$Jm6iUrbY?~ySo25rlGB+INmqaTyXxuJoXe)MSFepl;aVYD?wN(@u zvzdw=d^Zd7epU70g@*bwjt?^-@-@@*P-e-}@DzD}!%n;}9~GpzpblFv!6fz?kU4M@ zz*W7q3IBvnJ-z7FW%<-JFc+JYdW({X4>5|iyX9`pZ;o#depa_z%N(9<|{mYf;j4l8)(O&Q2U?p~ZKzZ=Yrv?@IW&m=!o>c_*eXbzE)?KVP zu53=et}y}`u0D5b!?+- zV2~=(k^skHp0(Jn)`wd^)1%HhBwxDGZ9DqnA8W^+-&%78VLC`F8ouWIpqBVa2U=mw zEy!pOV-L4{CH|T1`qP2>PQMQ~o{$r88%S9SJeua4NtNzz6hBQ8HswKJ^4x+snA@@Q z;;(3yyWuCzvUr$*5)v+O;Y8(F0HWsq$a1R)P!6Y%oeKXr95bZI#p!hN@RV5t*l_ES zk1WrAck~x!51%mE2Ok8>LNS96=|ll2i_X`1Zg-9F8^EgVV+r069{^7_D#fT19j^f zZm~c*5MVL|cnOZL*%Sya@z3`g8l z&wKpQu$$i7t;?0{#4W2FJ~9EQ3T_;(r&rYSky-gk;JPIK`*3 zEK8W~PeY;PEG%3zD6VWQZGM@v>r|Xtt{nl3<=Fi7?l9(Q^#fOsWTc|*DArF8D|c#m zm!xF`^T2PQB0qfn&DegwV>mncWdQvGF)ZcQl_Tw+N#HK%a1(oCDAr8wyz1{~P*GL+ zq`~X}P49+|{lF~lPVnYH6WboLIA8K*ug}#Hs~q2II$&&ETn5P$$L{37egL z5&PL6QwF&v;1}>4z9Ej#HX8T@WgjPHG|qnI3At2re;27gao7lf1(sND^Ypl1zTA1q zO3NgS>{t0Clh1YlZ`BFo)F2z@1i=_WWIF400wJ`-GusQ5p`Ez9Ba#45x?%a5noWQ- zI^McahO1ggqLZlz()WP$EzrLDf`2?EJu3#Fz52*}5B|5j;=X&^@#6P1CV~Rwvgd<1 zIc^lZ2`e;T9T_Hff3D)OQXx=Nvg?_17>)m3kjfyFR%+QZ;N#d}39g)M5a7SR#*c11|3(pMbmc63eH>wRqh?c%n%%3 zZ(g5oB@hwzz_z(lZ-%G@c4Io^C75J5-I7iXFXs;M<%2A79!BJYm|abe#-dH<>amj= z*dH}GipWrie+fV6<(l$QR4jOW?KPf*m`oS{Qs)<%fR1Ft){JI| z={y(d@0G%9IyF;AiL)Y0NIB(W$salJGNIMEEd}5A+2gFPe>!W;mB>0_WO>U-4LPO2 zM3CCr>AB^iUW*jT6wj~-urHU>v9Isa+uY4kP6Pbs8j2YnM(z0|lL8+`;?iMCX$0g$8)}W^B3N;1u`{8h!X6PsS{n6O z3m>PeU@FEZdM}keF`I$w$MO^p5PBF8FhaT3si`){Mmn|v6M#;h;UTGyA|*SUEWYbp z(=T}Zib<5J>~N}&8IbWP;N}KLO1UJC0X1-UWCV$vH)kRj zq`z$hT)`Eym~}8Ylp`NI_?94PRJ6LC#u$+{f!ROk-m`z?a;B|ZijJ_HemM?(NQQII z_eA8-_~Oklu~ygq`Vk+_vyqLsQ}FmK&9cl~EP6FIuGzdg*qOWw_Lf@u@aa1lRCSoJ zCVUqC;WrPccw{leL>Thpj(o*uWxqCfpOF}Zm=|XXI>fI;!d;kh#QdPb9}#1I@Mg6( zK2)Uy?&*9R41)Fxu}+><`Q_GX(;Y$W0?|nEggPgqmezEy8??kr8uyL8mMMOJ4lcS)wm&!N#NhyI8N zeaB#7L95WbRf)e!>Kgv{Rz9g4Dq`bU9$ab6XXD*(ifbYza(8kOXi)L5?n~UWOV(X3 z`P<=%8Ul8dvi)wYg+LR%8wKm4-*&lAwfjci|D#q6Dv4y80e85gz8x1n$-Ur!r-KIh z;f`5(3zYn&+Sakove34eS~&RGxY8T8*WG*k3I)r6rQ^6315LxO8@Sf*j#GIwL%9)t zt2{oJ-D+JQdOe0l*3~M)@s6k3z1i#(_DeE6j7VhmC4fKN@extL;kaj*0hOcyhe z-)?mL!c>07f=Q%~Sx19f^mp4I@+}=GRw|PXmwFG>+D(7&Q}Fiz$s%dAy9Q~--x z7ps`zR|Wj*@qbrpU~4QC2Q~-yRCJqr9wNchJ{*2#>g1S$Ts(Fp4tA~r*_isJG3Oao)v~1t!$rMO5Nm6ygIx$XVOCAm5zBS_ZBsn}?$)uZvM(f)78-uU z7psEOU_=!MpAQ+jdFQW$(M*N?{wRFKN?d~7>;Jch93b0XQG#b~35`T{JX^tGStFaV zXN@N~paQ;UKb**#2U`fFLg7E|GrZ@f(xgsF#ZNyYp$AK?VZ%)g?7l;EwoOBl)uc_M zIDrhF$71%Gu>*)2n3MVeRF>1Vz!>U~C3`bD-Jnkql76ZQteT`pDDgUag4h$<6!0~F zgZ`@lGy8{?c!bL(TyEbrwOK-hkgzjMq2MAisxve}Hp7oOW{F~m(1Hrq3E|7~HDb)a zdLp8WzpHaEbiAgo6aYU0q$ddkL+)xJIRm*XKa9H0e3WQ36C4liv%hHz#~vPOUBJ%P1h|)vRf|AlBZsA?u2Pa*mW@OPxP*6-+>(=#XH^mTs9FvzkZ)-PQD|9bm(2 zuEOdqqIogoDjBE^{HS$&_{BF&y3ebiao*#2te!K-8n=`-^uYrmO_wTQ6rjwQ@;+^d z!YD(zTc-i>E6xN#ss1@@xkYb-4cAE>4k|P>%lHZy(a@6BfG)bXPQ=s!mp-TaTRjHI zB!Kn98Jwy*Fl@}T-$aRU`=}RkMStJ0V^j&Og?CrpuRGm^dz(k`JqyNw5HctcjH{bt z@VU_NRd(h3JLaORM~I%7>znk^Y>z|xbEF3ecAHgfP1wX(rmBZ=Fy-<4;|_a+9;JH&?| z78SP`JIi5#a>;kg@St%u2GR}TFi<^Wi?{XdlJz~TZVCjHl@MFmzsM2@p5syad&l>O zLp_?1o{BXbDbP8WNfFQ8paCO=HBf$upCzQgmTZFCSd&EgvV7-E)C#tgYfz>)!SpIW zq>fr!RQr~+mb`YcF@^zkE_{-Muw*{8T~G%YZ`Li4EU}PSo4EpY?fytCe@npHun@Ie zqXtTKq2(LxBwpi8x9dlIZyC;u$f4Yd1)L$NsY9zz@0Wz3GwQCgX1~JYgAA|WIu6@I zBt6b<;ySQ{OVKSC>W&x!6P#tpY`A*?B@O=f$J!2$zRCosFStgfH_I9{@suOdF?!x@ zf+gQzL0?9v#dpgS@>IB`A!}GNcLrtKDq`ykQ+yIi-ZWV6l0Yu%)cirGMdjDLdke(f z$y$wDHQ%VfFUFwZY8T4nUkT>$cRBfL5q`}Bh&frE=PDi+TplQn5HQL_6N>IrWo5c5 z0SJ*0j9zHaN_{froi=BO zdMapyG`mO>d5xqp)xo{Ea7GKvfn_mXtVxxS9kP-oVx%h*{&_es3!=Y5&#C3+ixpWg zH)PThkxao}xxLT`2$D693&5uz>**h@$C1CLtpHDBOIXh$b@Bl@Xejfa1UOe+kPB7( z`rF@hiiO;14sl~j;Cf!J`LyQ=np`pK+Tfx(`b3-UeZ`e6EP4Od!bcR!<28q$IHdZv z=o1M~WxmYP1$l;A#IgZ~ioyu1hk>2sX#u2}tv|F?s0!TDlvF>i+Wa%@f3d=xVxfUq zi5EjKm6{!OMhKzxtcNoB3}HTGs>440Nwqe1#~7=}_uUo1+dWsnU$)Rw%XKyf4c3)1 z^0tt*sL|Po`LM|fm_jVBo#qo+jst8p4PN|2+Oaoe9>R!jh%WBb-z}hMh_W~H4SgG6 z&tm!1B31a-YiLT<=gx_GR+OyzY3>Bw#I2wY>ucTPj0ZXZkD{^914+D@Lhj1&o%Z`H zk|V92TOe*avk!OSey+XV+PuNq&`fxqs!GMz0+PciqWBCW9Ye1Q=RK`RgMkKh#p>(p zCgp1@mzF8`6Brg^aVrug!6J$S&|OHW(ocDYp%yAqi5yF-@&U(;ASnK6;sr+&u5y0{ ziCn$vAk2Oz#3EXhMZhLPJm?FXWI?wC)DIFc;$AH$Zqahf?|#GISoe$M(0*y}c~{o_ z?&lqxd=Jid$5bUHgU3UA*kdul@uE(}vV-1E-N=ni z@d@n4Ox@*S^l-}4W$cq(2J3bmV+e~Po7Q4XbPti&gi?ri*S6-|lSM`6T26K`ZzIFs zN-7uz%;SRGXk*1gzvVRGp)xusX#zUgy${kOA*u8fbB?LOi0)Xr^{b2pk&&r1cYw8_ z{JgdN^G$bIn__}jK2c_gQg6tH+^4M^nXmDt0Z5Z%)u^m<)8}Sd-uNtVsXuu)oS&&> zLn9kP-Wbf7{lCo|n&M(*aUR6=CX)Zh3-Ul1Ry^C;2Ww&?b0i$hy5PO`edWlHo| z=q*9^S@Z1tmd-njqBFlV20!V=tv&nS%O@Eq43m1=_D53-s1P(09dTV=dHERll_^>s z9qA8~t~HIFxkCstqCk}|){6`Y&S&^;p={bb@LHEZGsP7BA8nj>fw*c-MJY!BLEl6h z$*mki)l(SUMV8kAtUqT}Jlf>@icA~~({Fe+zRg&g{~Ps7jTdT7`#sg%FpVy(*B64Q z_1_?PTl?}`O{R-E3eCenrWnS`-X6co-C5o#1-R1em+_-9h#ev^!?%Jm-@q`x( zF}t)fe2_zlDW(G@e-Yz#agURa=D-&}wE;Fp)wiZOSC4xm=1TyIU#2ja6y2F4n`awn z;T1o6SPM!5m3>LtQU9%MH;T9nl3 zy?*k`5`xs@-bgzd^I;d9>M&a42mM{G(>?GO@m6ja(p!apS<+h>osEM{W(Xym$DLO6 zdm**NmS3~!jt}=yGKUR+zby#YwGc&IRi!YbM2~U~3ktj*&ye#~BEwDCxCsLh@Qg@V z7+PSLQXdjMmdo!ZVX3O1;u+0Q4qFIab)A*C1vZl~c$B&+{+zZzM|?`}1?ZGt<~~u5aQYiPjrH_Ja@eq!$b7&-x`i% zyV?>T=_v>1Loo3M`iqs&?|_2Z|IjXUCM|5M*ki_Vo&7NyQ4KD6g z+$SpU>%MI6P3$FFKg2#C0CMAz`J zvFB;YSiK`)*bYri|kD{|O;Z6~?`o#y@+F+)bKB4;qepR3sE?z$Wyhf#SU zmu8C;&07YS^E-ubbP}kp|9!`xZ2d{Y==X5$Cmzj0J^ZlK>p`|A&yT|EQQyN}TGPKt zc9u`)|Dvb1{!a*Ele-bp&bo~xUg6Uo0gxCi1)SLYd32N%IdJ6X@m&8!2y$5(3`|!T zb$r-TI_BoT1TxRSSgx1QdxYX$v!3@T|6BwIVHg5*_eC*t9ICe_OyXbrmbIQtT(;6s zDbckE_I5DP)apmG+;>Grfsb5$*fN(;7go;zO z5Gy0ruXLn@2dQTMRf3w{xsjldJ(bo!jZ22Jko;_tkSn{6 zRY0#;3#|;eJ#jrVT(KZ1d z-_{L)Zn(_if+Gm?r`#u2rz`UCxz-Y~?8hHWpm3$|_r;N66%eACVSD*R_Hlmic%<~& zy(=5Sa-*|L-O`vov(e( z*vux_)}rtp4ihuMFGKVMx#n$>RsMk8VP}<&l!R-D^7x1Y!$1~``$C$ zJkNXcG~cClb(b_${@_y{I_;AoRR1oJ3}y)MaFe4Jq#YZ{cmJ1 z*roSv;g4AOC*{@|Xk-FTA{mP5kMsDAF_*XFtiI+{M!2-AOGR=tg~xBz}6lEK$x*X%*Sqz@{DVr+h;S=irmkvD}hn!ah|(9%b>XSR_-rS;51rI8B@M@nwY z*eEQ1<@k@USzNWtAvx8`u)7*q*(?L`g4T=W`6B{+*9Q#PAZy2;A)^v`Y9YudS#zt4 z_ZNpR^EJKVAuUm)p(M%ZQrK2ZzJM&(zwrwx>@w3ZSL1_#3iG1%MGeU7H-w3Uhbugm zge+o6j})Pn-ww;2~SZ=FYqVwDi-#9pjn>LLSp|+uDou*fXbWk=Jq7x;1qcOMykNWOZbM;2rsuXo9}AYFia z*~l-s4nD0*z6mLcLwC>`6a&cI3ND4f#CB0HE%~&n#F6)Jo8OWG`d}R71_z-kI#%Bq zR@LIo6$!UY-`@)+dLA_FuOs?2r4@o2*p>;>^rlfCQR7NX>YZi8@r7p}IG9Jfy-3W- z`EEraBz(`k(c$EQ&S|j<%l2h$t4D~viM%iOQC_pa25p#($s2+FMC3COGsl{$vWk2F z*UM2AnuRdCHc2P8HVKP87m0WkES@n}E>@C)q-w=@VT$?4hkzjo$Xk5PUl5CcE(Kwa z!89?kVjH7hygdFIf~o`!3Hi$WdOA;Ev<<8Pz!L?qb-ax+!TcgA=^B21sRMtK@klTm zHRuce^_gkZo@BiKG|_5GQjpTz#Sd^gk4sw3Uv_Hbv`YWeCRs;&1FN8!~LmDBCN!w1U((3hep*Kt;%BQe7eBKag3Fvd~A!elLPXN}K(-iev%@QU-D>Z(c z9ZZ`Cm=v8A5Ot*^fS2r4016CGyGf(vO(j(YGRfaT1CnuDO}2SsYuLx?^mjqWrjlru zBk$H|SnvMiMt5AfDB-3gcEDiG#bjI=zm~b6Pk%-gd$Kh^#f>1UpK21V=@pqaV zUA*rT$&k7n^yxTKB4nKY@=Za$KenB4s=%Fx)#0fXJYgo0bArwY z{j+a}tXiwY!EjiG4Uv5gmy?V2zl^ph8gpvddKu{h@L_F#5+{UC^KGtDbwLe2jSst+ zN>Jjm_(8w24$Ez9pA-g;-3QZ3LnnKQ4bolM8Fc5IeGq2@>&lorj3-s)6H`bfwSqeh z=UThCL19+S{@%w9Z%=2JaCWlL}EHw>F5C0c|c^ynb8MfH-UcDkc zB4q-y1mv2&q-Arc#$i<~w}KykD6jx6K+?Yq-xxby;oodikSu%2W#+GPy)*6w)3rBO z<|8{+IVsm0#4rCRH_!s@(qbO*{6i-M#60b2MdBQoFd{sIO`ZL8g@?v82!0s&8IfrQ z*S|E!Ta107%kpHq9I_M;_%)PS!&F4|#cBr1$Uh?&!f(#!FSX!|IFnvC-!xy&w1vNCAdsb3Qt`S%-FW=-v-Q zF3O`_cSe{_Y}f138YE-?>=$+*i*F3=;BPm+IwXlehE8>m@$qPyy-yb;Luce($5ATaZL?~>{(9c@L0nM|`+8qPee(9>YEO!@@p3S#~1u5TX{ zOb8@Qb{Vf!eFIwRXyT+&p)Ft_oorTDw_VR>88n859JeSwI=p^0Bn?`q?IebxU=P4V#}T>9~fGE${tej z?Qa>wmVdOSyBTtP2z?7n(p~w_YlB$KE2O>QcwVFot0%Ek-jsIN)@GFVukXQx&9J@X z0EDVEf5&W{Es;3umQp*f(Ldo6uX24i7WliE)WC_!_`=-6Rw(q`O%1d|QPzFPX(W7w z#7~`_VOJz^cHir7&%5+@UY_QoyMbZu0Vg)^p5Z~odPE0OyI=}Mi=Fi2zQ5mMns-wV1D7wtJ%a#w&GydH;P+-8b!?s}m*jzWE%;Vs1Ryp%a_9+mO?E4n3iob^ zQz>bI#!S!%#$m!(BRnhNs+65>1Sop>dfYxP|RcZSXI(Z4^ixROO#&z5T zgH_@n0fP)7JG)~{FZo~m^PN%8ApdG(n1uKklI1q}xC_q$u*4!>?*p zPTY(TVVD^L$W=bDHMSrzN~bYt^*ScJ^Uay@3|yP_v5zu=Z1U`(H#E$J^i)_XdRgq2 z^%9jUG>Bk|+Ru{&-7wV-sk(D8i+l7mKc;cXkNDw>JOGa_M^TBvG-BDu9!*p)Kxtf_ z*e~9XSF@3vu{~q{(3BwCDgm*5*9x>K6A(ZuS}vt4>R$5Cy~usvdpT4tY8&_CGi>jLYta3fK^!JzjxgFU09oc53p4Vu)d zwF!QhMZj)sVRT5Qq@#S3uK84f#ONL#(Wjw{O1ZgKsiwfY$RCbyQ7#DSL$%4TnqqhB zWntq=4f6kyzs>A+pz9sG-L%G~n!{VrvLT*;u{RTog^$uCmuSf}ELZu{v06Y8k!ob% zV=r|ogRh=9@5DP%jKeqG##a5uSQOiVzq;Jx)rcT4Nssr)5qjzaBaI*!=Rrjr67DVK zh2wai*LG1rL`nI9<$v94f5+r)0cqklkM`f40xa0}B^xInuQn2_V8HXRJ-cD4M5ARi`zsdEYXrDsdizuw-W+_+3q8baXeK{ns}PQZs;80_^Qxhz4#TGU*Z3DGkCV*N?T-K;N%d7y2-?Ex^U`6T3mK>$2+)0fR(UC6?ml~%hpF>BQz zgeaX^blTg8Eyi6@tjF9UbT#C5A(e%XF807eOyYQuqJ2jxiiJX{Z(bX+_OVXbIn?rsChOvV7vB z=ReS^jT#g&q6Ma59&$B@Wt77AvQ-~c#N%xaXOOCxdparUL%$j1!ISyUqA{-Dt_ZM3 zri?(*R`}h@9c?S{Zaww6T79Gjz*_z{DD8Y$#j^JD(NyA4Pl6^&6<*%6x93FN`MQmv!aeR#JA&Ct9 z!4`X$HA~3uieE*X5wL@PT$rl1A8uWFd@c)SK%DofW-wSJ2TD~TvOh$S=wQ>=D3rXR zw!Lu9O-m2B-klGOK;}PzN!I8B&uFUub;S}WAA<)mwM-BHC!w3nH|g5E&`(%{+{AhT zb@U4wkD9isDX&Xda^3oYp!NkrRid_Z!^1tpP_R$KT_Osi3n{yiO&=Pxz(wH$E8s6A z71El+TlU^=F{-m7Ggn~SU8%7fM5DNOkvKl1TI)-j*C%Y+Jnx5ki=!(`{{^a3b$|dG zgVS{QJreF(M7QzcdaEI0v)kGL1p-JFU~cRTX^gKT3i!4RDAhQhO-l!FK1}u z`~Uiq`9@;uy^!et^;QqBQnK-PaJ!ApdZ}%(uwa0Dsq%kSB-EiX0Ip-8tOE>uPXhC9 zfGa;r-l-Vn9qpGM6d^gSN?qn>at$J~eu!n1l%>e9m#<-#jVcO)F`H`091nhkq7pHs z0IL#39Tw%J=TZQ4bh!QPlVYu07i-O#(ZR!e7(Bk%0O&b+I#iC zA#Yhkrw)Ix9~1aQrt9gP_44G7i0^}yCG347pGKi?Xs6b?+HY+u@Z1eZS|7W0_8>BuM8uIAuQaTjAzzVuQ#}65vpG@ciR{KWAJ% z+n|iSXS-)6g*ms7$TvWNzk8kXF31Fru+E?db^EtH@Unc2F5@`cK7lhL?N31zq6F49 zd^05OvM!6D%fL;ZSYxuk(Q%010qkLJzOL6TI~*8T4ph7&u}36;>QAG|zbfV>(Z&;Y zKKACIddr>)317yFcIIdTVRAXO6_(S9J&f(ov`Wr;&>J$?zi2Rg6NNbisat~g>;SOt4QNPb66M#&nIz7rKBgs=0JPWeYm>;BPiCXJjOJbA?`U^ z;l@8GO%K`_S9kCtmQaB5DpRS@05=e=!A@vGCJaK#pXmvY$`n!yn)>_DOlSAZjz|Ys z!Hr4Nea(a-EWrB0Buo=7*6^ z$+RH%Ok!4+%o^JGcl%AlBwneN&7dBnM9)jJkX($SQh(ek(<)D2iFcKz^?OE^q*pGRs+vK4!Me1Vl5Xm z9lW)S&ff8Cr-pW?s**r|y7I|Bg6HmB1q=p}Fm#G*)%_TQ2|0ES< z^g~v*m)>L`%!|M6S`a%1Ce-H3eysts;F=MNS8w3_s!5nnu;olcSO~vVA&Io`x*Rb0 zDA*+ziiFS#(lP!y?*sDHwz}1b+>4B^o+Rr$_B~*-yirzTX#AIUsEHJQi4t@Hz0F7h z=7fVJqyy2;W=~#wDwyei=<6Nu>+q-^wJ+%k;)19by0V5_w>ej@ZkC zA#nbgslBi+@hD!!Z)jq|rsg<}^6rQA&p%nFI*(N4T5WL7ToB~Rywj*VLVidEF*2-2 z09SOFTOU9vWLz;Ke_thOMg+lqkI>VRdwhod+YXSLcbO@aEDlX;aGAn4J0b{3pf-UX z=WP;KKABwQnc`H{vB)0H?3`QRLLWv8MCtlES_*&I5=pWgI8&s=!Az+!Vg{&VQE-sJ ztw3Z1KNseC;Y1aQ|H+kvtKJv`WPj)~rc2DN>op|Ljp{gAjOZ82g;&S@*tPL5sX=sZ z(4K?w5Rp&Z|A>n7@O7iQt%Vfh3&ja{HB42j{>LDrRQZ~xTp)u#LnYxnPcz9fAAL_q zwn=NhD*%0{7#u2w?sts@_k|EKFw-}hXqzux#2peB%nQ5cH3Nz=_kc_Jj%Dv|Q`e+hsfFHrz#Q4)p)^{?CWkoW0+P_P zMBANOP2nvH>&9?xk~IWQc4r_a^)<7e`n)viAHJ3U>AlM|fcx(w&Rm4yq)oKMg6N;O z=zSvMiOo9<<;-6mbpdrZaN13VW-y=-D7&1?dN!9{pk#O{`<&Wkxtol4t<|2v^(V1h=& z=CG^BzZ>Y(`blJd9-nIsqMwqqeh{wn>Pcg*EhpyR=-#-pYbkQh*fb zsEK%kP|0uLlhuZ4kMuSsxB0qrWNox=FPIOsH)0R?<)Uy>hpQN{DYi7I?&dM{aj`fLO!hqkvLMeG-z58;IjDWhbGdB#1QJ70 z)%Q8=>iH|#HKomJ7O5vkbQo=KAgcg6q#~LE@hx*CcxECxqd+pjlVwWTi%QbL=mMe0=+O{@0CLH1~1u@kUx3qJG7ZvE*9`m))(R{jP;>=s}+^IZcVUIrt`ra z=cgX`1%=_~#xNuCn?F@?DBRq%x0$f>MprA!+daprwuG<8Nwn8xS$Sum%-J_SrQX21 zyWE^cSt9Up4=GexR zv1h|EBit6kHBQeT^v%lWkYQ2KgIw-;N2!|gVE5{KKlXEPh_`g?gGQ2iqWu`Wj7_l> ziTwl1E|M664Isu~S(Hu<#%Fm^XwCwgkw5Q0pGJ{TE>rS~^{_bCj31OY^DTC;TW!`@IGJ z5=Wv?a4fG_1$}Z~qym#CH|!be&?Q`TK;Dw`WF^b>BS<*-I;vN{qKO5Hb@gkE_0=)czJG_I6noq%}q$*>_Yp3z4yq=O+U>ll?}NN4`Dpx>%YmF9kS8OB_SI zILBvuh~jjMoL#spMr-hbciRWCX2PBd5B#`?@Ca716c^+94jM`m3TLZ$BSf7eFF zM&j(~FSWF7m{P&U_ySO7W*f#%@Q2fq@AG_GZl`l|kHK(mzT1lXFr$uo11MPnIrUg8jC;xET<<0Impb{QLUgP1Hynn+LPqRyi{#0$0 zG8MP#tRen1@rGpaQKiYEr*lMysi33w*$kv{$-o+iAmr7eJTpC|vVF9n@{I*+!}YbR zv|f}L)k}9IIC2icih^p~2u(gt32gsuVy1#4jr)Nm`sLk2H@iOpTOhdDyi;FAAUi`D z0>Z&l7a0NCdLtU~NyX5O8Gt*_RI^C4xP|}bz34n4-Mypx z|1|-<>K#Y=5c+#vOM~kGtZahg+8_B8A!Ih;a~&?L6bRyEA3uNw(Jkpx^tycJaySCn{nD%N@_LX)PNWp%LQc zr$v>bxwx5!U*K8;00xd{&o@FaFr?M%eeH?d*ZhbXc@s8ZK-xR;Kz8(oTQawcTO;mq zfq?*5je_j$H6_a~rxEgkWijJ#g6Mx7yw41sZp29p$OL-!wRnM)rf))B8URU)xz=J9 zCq+)Xy&&$^AhH5CV{9bb%=VTzhD-M`tvpfMj1&(tN$vvr39|S2*OvA^1M7PfFCZI* z2a2VnZfaoOV9t>BRELha)jhQ%iDR52=N6h^-`!gGvq_@mNty=1TlVl69We#87l;Tu z+n7~|D@*UU$XL6KXWd$(zaQs_=khL@Y1)Xlw84^rO>-Pev>m}YEqP`^mf6R|7B>Qn zNi`UkWL-~y@bUqj+PaxM6T?_(lmE%`{oi1^l2+0lVK z<-)*)6m0sRiVVGtnoo-Kh=`f73(uXtsORkoyGPSs;CAfKnr33YXdYudg3k4Q0_4_= z{(5p|9O^XE9FB$0UdQoQ5RC`A_1rn|e2Dr_F6HUA-}!ty1UNsYe{@(GB2fvp{IX{u z2cchRfO0gbs4HnWm6d&-Q_G9FnyX)ylQ6kWZfi0p5!Z(_+wo3-{VBr4%T7mVWT6YG zp(WshJOlI^5y7lSt^U{NxS5-dRFKM-GiK5OmjX0?UoBr`vlWei*M(r#r>w*J zN;QkB4V*qxh=;}rMms5mII{{k6F<*dDcleJW)0RFGWRe=5X>nq5W$A|t%yxD+7fN1 zf*qikk!HsJ*`p0ex{ClAoud+OscS-X7%nz=h(223IB1RHp#S#x;xIb%n$4#>e;nM# zWZ5jEK`e&b`gw#!sE5no5Z9S4qR}iRBV;3Wgb_bNt~$Mith)Zk3=2U#Y~N`-ae|F9 zPkvh!=-VG+AAU2X^VcS}@mA)$8bPn+2`(g7?zlgY!M^zCL*SH^tO9nYMm@xKi6nQJ z-@(>JX|`(3OOh=+)a__V@9K#>;SFVZ;=wGT*b%PPOw_YKEQQz@71beUT5OXY8 z*%K|TAkgJ4zUBukhf~X1+m$D2! zT9bB}di7n_<1)Tx^h6xQs*7q$=6lDVt2WGBQc)wvhR?<@*g$_Z21D}~B%dxego%ne z^fx^F8Wq_|^J7(scS8~QFiIyWQp!Vv0u3rw{+za6Bu8O5czaEjy;0#5#QJe@-C9t_ z2ZftTduQd8+gZ?5H`ci&Nz53X04&}~|GO>T|GRPviNCtt?P{PQ?ENfzpV=_CatX}7 z>me=%Ye)@;MuCUQh(-kScc4R}ri$0O5g{qt>J}Ej<~N^F0ljgpN5Zp28M}8RR85SA zyEkeK&-Km-RB)PA9!G^b>l`fbq*ugA2EJkegDHGkrOta;Z7|amv^*^PKu`S*a-YuV z&B4+TDi>j!$-w>J-;*>6HHha@Rq%45;dKJKv;W$sHrL_F(@j#Fy+Yo7PvyCj<)gT6 zo*l{Cs>A8Ho~<5)i>(TWL9KymcmQ z|FJ4AJWSg8;jy9FU;k?>>a&KP(w{4??QlT~piT!btyr|f8QbYt<6oZg7>qw+mg#XU ze;8|N_<3s&JsypPkp@t2){`*00|AUJ@mmH)O3Z<^H@G=aCN=HUa3;L^ofQ9;PB8_u zK~-^Y?F$S9Uxt7ONHJTH(B16Jd;JMPUd#F=u*e!Hs~!O(<`|78knJqg72N10x~ zQ)pB*r0jlac%!j&Srn>Qxe`=vuw+&5ATVhFy?ACf3lG~3Z~Y}(aGL!UpKUcQ{Q?&0 zwmd9M2)KXu!twUxu__86%e#@5M_dJrD$L{n(4TX1?C7N?dq43U3Xb_qFl(Q^OX{i& z0+T!s%z`iVun~e81PR16SE_xCzd#6$-^V6gt)t8U|8#Y|c z{RP5&_jiN(cUhgipc_@st`8uE3qg~rP%-HKosT^J`yq3Lu?>d@lO;iLtN~85b`J>0 zaa8J2bLHUxcN-k)C2I>}(KZ=`}z^KStlR6!bc3Z&fi z**XNR3p6TL^zJgB*+vGdh4npixXqNXH5hE?XjUT#NIqprfugq|5J?%;ZOI;L4!_8) z;l<>Sn<|{!b+C2s0;^w73Qy7Ep7fUewaFf{BzPok&0co7jRUpcx-(MQwcYe)32lK1lYEfXF*@~&`vTx7O+~l$2Xt>;5 zNY!6mPuT{|gTw36Jf^#p6i_Y+-XyB*=rW+B@l7;SV&T6UmhswMp!UHxfcCI8UPC&a zX~oO+1F(70F#cNmwmL<&`satOU^%}u?d^`2>9D-%>1B{D4=X^M%X9_)=ali^LAfyB zdea5A+wx&<*l?V-lIsmMvngi;ZOI3&Ed54iN&D8EAZkXUtMnxvpAK}Ew{n|TT@w7_ z_X#J@)gOuC#)5+u57@FT236EZ5Y;_uq#cQ*H)l@!>Aw*Du2`by+7TE&Q6 zvM_>g5Mn(fHmm89Igrq^mRe3YhmI~nsK{HpSObw)*4e|(K&vh$0SqanB_~{~J!tCO zbS93|rF~!_?gVj`^$!}qWKQQ__xP;gNS((*egG>md7qiHeeIf)a!ufN3Ld!Ke#i3H}`l_!&n zF`b#0Ls=I`0vMa9$?3`IRevA4olr)0{v;F65z z4{GXmsDKCG*-f&p01d*@&VlzqDWDa1Nb^QOZP0iEq+(2z& zs-_#|zjw(u8Pjpj57}hbm%THj9A0f?WTdmVTKwKg;yG5m#Q*}Gr>sumu#Fol-=Oko zJE}Mbcmb*lN1^5>Pg= z$R8Enp%AYzwrGTH2ss#@ksh=$jC(pK-DMFOs7YMLl?g_8SWgE4KE5e`6)ID1;eA@+ zc-GFW-lhMPIfuyjpx8K@iU&$UL;ZZto~ImJ32-0T-`VTiA&HN?2Q%U3W87uGj(xh? zoOYC%>joOX^Gi3Ow5ApSSe?qtd_BqV-2gA{H$j@$r+<&l!*wOW=7wwE=PeAAKecig1+_gw1#3W(=6Pk{Alk zLv#g-AP@iMOHmbZIrU>me}lHDC5|d#1fc2fxi8e=9nq@`DVwZAoCIVUCR$duUq9Tx zRc|KwbAOF!_FeDbn}H8c=Un2rd%}G8D#X|LW|)W9M`?%00XV)m-{wYk*5f6g+}zVX zJpNOtWd}~NzKhLa1`|CXRK*2CqO{qycPE;|q?Kl*K&v(;_kS3FWnYX_aj7(tvvH@q zE|Xu0x~=QoYI;YYyDEAL9#UrFnIThRBe$Khhlsv=$R_nn&U@ zY@&qZ~oI$*^pKicthN6!BU!_LRhtZn;t7S-}8qpVgA@!r;)uygw4YcVDT(^BqKH zqxyjrS6^jl3;;+klHW)pY;&81K+8n`;j0m3!I+;Mo5>t|0e;WcX2svdP*Z`8u+1@f5V4(mE%dQaE z?FWZg6yzNmeyQ$pPf$A%z_)>n!S%3a7BU%2#$pL(YdY(jX;>qRvQfM7|6L0K@!>oV ztaP+&s2P=wd5^9w2y*jh=pHpDK0y?>c^aGAnR#dG`I|&8)h-rnyeu#bmhCfgR82!9 z!Y~E`bdAaJZRY*2s#jlIOc^-y9^Po9tzr4UD@Hq*K@V30scu($&E5OUVX zF^)@_xvrU=ItUZOW(TmKM^#sTL{=&*7H<+KpKf-!6Y1bXTJ-jSFohWdu?4VYcn-B4 z8KG3@p;a^DzlJQ?V@C&u9m8811JZmSBw}p3W3&nd}$-`ySKpyGqeJ z_OHwl90IPHWN?eHTStF(TyBPsel#358-nB66*Qe*=^A|TqQB{oq@Y1~PPKS?yUs4g zelHV|c~8kZoFgp(O+#W0r||Q8nQG&NX~{p?MTf=uf{wvtn5Ld{ys-8e7ZIp)I`kmji`B^&)(DdUVZcU``om!V2)Bud_na7&j?Q4hZr?lgDnB@Q;! zhGqwwnFF)`uXm1nj)a)d&H2+dj&{5$3_C^-;Jh5_Gr2rq&Wbw_EsPp1v{Xr!W3PS1 zlb?zB4L!84){=;pu2SSwJ!9D@)D=DA1peeM6rq?{?p(s9&HZtyoJF#hqs?scT}(`q z*%3!=icGw`)dsRMmD#)>3P1N3svl6(MjS}yI8>AdW~RSihKf%VTdFh^_F?I16nnrM zM2%|6u?7Dh#!i0yrg9MAOd0{dg!r3#H;KiYX!e^^b$mbuNz0zj=~Z5!WTCrUTm5%5-4PL50^J&R1FN3~b(t&$C?7$t#ufw8sfATN$M8QuGuXv znpBvBFUo%2xmO+d!|MHpR($s;X9Dijw1<~W3;Ljk6h8>x-}E%Ka}Dt)k8?jMI;JK% zIsBE@<4W%T=v(or&#Ogeew%#SHS*)9URTZg3MR1_o6&AuG)(3-Xw1}iq3cIRcFR%m!{8}6)HaI&`1A1k{o@?&?oq7*ELhhAMGb@?6*!G40@D`8`yc7sn+}q z3`agD8#`vpq3Uv<3?ix68{ELH{$@x@z|x!~e-fZ%+(6*eoO-Cbi18Sn(48K?NawyF zFw)-h%6Dk}U{7~R*9E!1Lba5AP#sYtW7m(51qkcYhzRfPh+EoS)IxLH&mR|e$QGvj z)62**lPnWf@_cksUeb;nUrLI`X$6}m1uBx~k@FMY58kGbfq zkB_}XFJ@TaA~HX5>AL94r%931P zDPoKVyH(Uct8Z%?jfH67vt2q1twbz_yi>s)*|s0y=o}WLt*Ko?Up$j4Z!yz=1eR27 zi}Lb8*X!?4uA^vx_>C+mOH3Ze>>CG-ZY!nyDOFTl%r5LY@=wj58EFsm8t!V9Bs$!7 zNnotNj)glNHF0NuD}`H-0fxMss8@N-xa0Hlu>P3|djvL9IfnFbmE7uR@{YRg5h+1n zq|(1|(`id1^2st7eCkiB#gZ+<3}R^yFsj77vEjWhhC^%rr&BY{?o7PtOCd=3DS@-s z>Vg>kEo`%@kKQeHRIFRy(?E^%q3cXd7WH6FcG^RBKB@#2CqI=%1@4EOvLOui&Iim~ z+z*3&_V`Xdc1|9qH9#$H2o@`;j|W~lU3EB}uP;%;r$xvV^d}_5CUuTw9I< z?DKl7m=Y-WAobI5q0oNMvf~%!`%_`(>>oF52j~azR7SF`i@lW8yx@5!;L;0(iQn7=NWb-o2x0hkl8^QXZ1kG;1IxQZwog}(1PY2dDJc+ ze#?eg^7rUy(t%@d>C3(1Pk>ls2`RPl4(Ij@|A@B&3o=q?`TnYQu;^|Pnviawx)lC$ zRrg{IWEt7!KrpfsGrVZ*4d4uEr978EoRMhjmCN`o63MH<>I8h(sqXlgzAq|W*CWmo z8lp;W2O5TjA}Kymx?wW%r{}r z;vGPKxFJGw9)_6vU|I)dditvHQVgoP_hP&3UK%LASIeJ?pdJXrDja$pbx(uRjT-D{ zZO-HDvVZ(jd^w%!a|e27UN`-^qP2qbtWNUTe6gcRf{D^%5P{ioY*rX5ex3HlAeAb)cCos^U zpd{)yQEJU`hVi7J>Km_NgrB%@fB@unU?NE_$brtxp+b$%L zW^8QSkWu(adclp2!V?sZY&oczoU%HNf!+exWQp3osYRgww0P4ppcwiz{nXL>PF=rp zsq1o`CFILpQQykq#}F7!DQGJ)Z{9|qBM-Sg=N~Nv^SAM^!D+<_BlF-8HG@2D2{fGM z!}k*Pf#2o_V=O$~lK{_X6NmMXjt1Jao}fMy6klQuyY|YvIc{A^_YtOvBQX8sfFhb^ zdK%&S)FH>GFab} zpGsVT{*PtP>SHY(_8yrK0FiUJ5%^!k6tfjr%533DeAZ!Jc`~dIY||dq?<97z66A5L zBQOzQaX8TaCLKjyg&ttl-%3J@7|nvJ8Z!s*_BP=~iOim!7xTg{qay!j1-8A4*J8z? zWc^AH-a<=|{L#KRY3IGC{V~iYwW?Xjefl7fCN$ z+VO8{;jk1hd5IFxEsbZ{mD1^+y=KKWE znXSjt(_khhyd=CX^KsZ}ATz@vo@`6o$H3rhkqXMmJ6>zXI;QUhNX5#9U1_Ky$^z>b zeMbzQ9VQ+q?JO(>iuX-OXp^`q6sNz{L(K1Lvc0Z4sLh2D__cFuOZMAwx=YJ|rIA=Q zoKwSG3kDSpyz@C>qb_>@ejoTt-L9Lm5 zI=GfW)FqV1rV!MOX|+2^hPc48#`~~*O{kBYaA}o51ulMJdhiBjFc%`+S(~6w9G``^=C^}tzKJom;B*Yu@Sz=qie6CiKSo#ImZrk5@;qRh+ zp>x7CZepp{wvXLdhvt*dSYY~X$d6e({EHRR0)I+!^QKn@-Ek6#I%0XfCoAMatYNTt zZ21EMpV^;=JN8FLKL(GQbVEK<$SJPHyW}0r9*e9}NT|gS`20v9z7|xF{NxotKzGKm zLqGrU?ekHHTJKQg$PiYXyl_W2&Wg$=)xM9qJ|y=lShiapG(5342T8mlkn7z8 z5}R*0E89O`Od=|g{h*9%^1n(5@!64iQWc#`%xv{Jok+TZV@32m>MrD)WbckbH`({I zSt`YluepHA1?K9F&Qn>7H2TGac?;4r%%-GQ3t{YPOnVrw#_;+L4@$UIRs-zkw?*^M zfo(=UOVi1>k)G{XAZNA+fQS|yOzv&u`V)z#iBGTNjyfXC7pjf>0}{_6b(@W}8D!?s z1CjZRnB4Ov(#$wTSK%!Gi4nA|N)DtuI6;tTrn$S3gCJG@wesI+_2}V)J9sae7A@bg zc$?D;t`oO)EqV!VvUqmZbgP1ntn`NVhutM-zF(#_ z?dL=X>Pju}_N6;I!5IDF=IzHEyE)QEFI=ZoH2mSNFEqvCMRZXw%ot_N$4FZ~%3BY= zmUk)t2<9(N{=g>S8&my71Sm|m7KgedFAeKV?y@-kaXvU(G?y*Y|C7IR{a79-qPI(& zV(ItPKr~ir7P@n_2)E<1whN**(bj%%!xMOJ#tm{eZ{kWwprfz6awpiOrNt zIMwM!Ulsi>@i|GADN|P=%jmxNG>0CymBzv&QL1n!!%(Ow_H{00&rtVI>w(n@$CJ;ooRZ zU;Lk~VrZHr$~o#eM!`s{7-c0>ryy)?3Enep?`!rW0jaoqe69d|GncZjqm$6J;g23h zU~urNJlG^?$8*-3X}Ap5U5{O-I8umTe{mQJh-}?h$ZG@^Vz^HcRE1SKv>7Az6ux27 z`73m^=3+vZ(IX^9T-WED`Ks!J>b!?WN#%Hl)&~7l_L|Vd&Exz*Y+$D(+Ssq;4PuY3 zQdHulb(%Hv(A>=9ieX(`eX`U@TOK?vlBPNfJUx?PdF!XR9_{G^x=$z^p=>9G3nk$| zIY2a*E2a=pwSlRC0}~2%0{MGd(70EqY|bNd1}bS49g}^qlRo}uq-Ns1Kgy2>ok$;R zH8^q@k1_mN@as)&qImWX$VN}>1Gyq(LLs_af11xr z7`nw~=+cOyFvUEiX(Hm9!;17UEzY3gjdgg?pAbF$8``AY8Y{8|duT9c&}h3BDnZB5 z4Ry3NixVx+>=M_`D==G~O?S9>qDefR!X-z!`X_gc(B}^}s0er42-W`4NO+Y<#J46YKbyoyl zC}!s^(W5rZZ4P99RGLqmw=ZyThsTINh|_U(bmZUn0*w}C&|g&ve2UdvIjtBmy(GE@mm-&u%nbuKLjGg-QELCjBrz1ro>?R4V)KDNQpy)g@?Cv^ zZY;lL!<`@x3xx(O@gSKvK5h=OWr&#+{&Q6y2!Btr@11kzBLz(w&=F1${f}hG>Vlj+ zghsrz<{N5V&Bx-#?Co3{Ej9J87jpa&OgU-AVDKx!tvggI)-;n&gfNM@FI*rAn;`rO z%bnTdMW-o&<8S{HVGVa;@bJ!9juCGEmmigQ%~O)8Ou7wh!^@8TS3Xp;>%ay~>xB<$ z)=R>t#2TuLo#dZ-4shL{=i|1f0Nx_oIQ-_!a2 z;}q1N=9~8~u+5o7H?#RLt1368=38mg_Pf3(O%`d%ibHQ+e)&B}g<#qCD!5D%)vCc=#bOeKpmQ*zyBhEmdUT_C?+6M# zwWNR`c9$q@?NDHA3@;vBCedF0iua{aSBHmIHXA;pjiPA-Yyk(!Ny?eZvV)MVFrsZv z@-^nDYQ*9=s=I2_O#w5f#0+sgpfWcqDnw(aQQNb8Xr$jOY2HD@PP@#gG#k_pciQCz zLG&B9u6}kp#lJQ)e#2I^UlGeFU3_>_nN%POModo|q6?(Gs-W;PgS;!Eb^0b} zQcfAXcP)xe!xMV96kwC9MVpwqjk*B~z<)9*w~c_=dmy>$ASDsvd#a>Yo+;yg44Le% zj`2p~G=*d}Cg2;|RW1oM|>opcY8%Yg2X}y}Vc}|R4E6v;UJTflSY0-~dl;^#d9V?80W+m(9>F8AH zWCd8I+GXEOmh-twh2Y;0cBfqt7~5!P&JuwvfqbVxWqckOcG}nyk&31S3wWod@^65B zV4g)lhnKNSIzvx+&BPnWHWQ|YionQ#HL5fd^z)z7S&hPMG*ZV;KEaX%u4izWjX-bC z73%e$9LUHFWq$T@h@Xx+k5!r6=KN)6vA+&#EUWWmOR0v9<>1h7jQ;iaEQM{PsxF z%7c+8QXpu?y*NV$L))c;UI}e>Y`ysc&8w`>y94qXE5c#|f)M(%W9jhD!YfDv&>~W~Us3pi7ATn;tWFNKHrlaxb2V9V9?Rxi{<<|M^yRahjeDm-qE03mooYD~C{BSnI z)(Tqf4dbBK8m0{+GV;!tXFQ*?4a|)W~LUUy_ zw44;=Cz7j~o`J0m<0~t@64JRWwQSBI>=rpBVe0_+TgtPWHPSGH5$Dx-3w~rII1`be zW~f30j1}14UrrI1xXp!$!>Vc+KHSr?;KL#Rf1Z&G@Gg_cUe*n*7xdZIgX>tpi2~=e zv(#u2R~;b8B1{n9bhp@*42TI6$%aKrZ<@9OiZEBegL$#R?A6h@>PyjjS6%99>=Nzra2TO=Q$U^$Oh9j=i0%sQ%`$u{(o#JLB<#e7TU*{ z?i65DF}(Uw3J=Pfp}V#27ujAFCVv+b zvT&zvtp~E$&9>@*7?~2Lgem$NwmCs!Q8!^ z{K;kv|rU?<0%2dK87C-yc}L((-z z3M*8!&DY#^?kuIR8^MH5Z7=7yFARTy@6&YgE=+6ao2oF{1APYL7k!0YTTVWx0cLVk zhj(#Rg2yOimTkk30m1w%qG>zb*1Vg#q8MoO=u9;sQ)#c79{2KU%z!7*05?F$zp&;a-6^kBWAbg~Z%f|}c!*<$K%6Oh zTYOYhr#!@y_3P91OR#6uRRe7Hb90*`-=;I(j8KO!tT~iA2L%+hIvt**(OpoHHw8*f zbp=j7PBA^BrZI=8%il7TWj?Il>9nHEpj<#z#Ee$P7OKEG)-+;^)v%j?7dTpvQPUYp z{DBGCZECs(NfCJ^+MIQ-)ajpnfmEgDKw!IoN)ageNxhK#ak~aTr>JhH4ebK7H(09{ z*qs#RTcU<&W6j@gY8jh<5uCvr0A~F(Dw`Y_?R=NdE^s}ds?qKn^{ef;_wRf8^C7oYF_iG5tQO|1M;7_0~0PIf}Y%U0I?a@IN2DS z%1fKZrxBtxKAHKMJ>cPdb8d{5aYi36Ph~Dc=b{EX0mYU$>sgG84pBu%CqSenOt;C1 zA-t0!^Uz4l*~WeXSC4R_UXiC9FJ4sJN-OcQb$ZW8;qjzs*m==h9scCaf z$r+A?yW&U||LLfr3c&xT3mn~2d!(CIFX&;UWghX!8EPU&yBtq~uGauE5 z+#=x-upXQK{Vm&YS@E%U=he60xa|X_j?P``C!0NbwK=aN}@&d;`Jn&3F)2CWOT zD+^Kyrg0R$%x&}jgKz7PxH|0#$8T_OLlJ>!=ZzYu3_ z8BDo>6u`cbEQ*^gF!foy9yOf2oX5&|ccsH+kix9i3YSI-a2l#!y@k>xUG>l(9(N>y zUBEt2YvYOwCQqGZFZth_YcqLK2EJ*8&|rX78{%thmk=m02VwC>b6%*#w_@`^0>_f= zemV9=%M0?!i{*t;IwQBnH87K+F5La;8o(jEP}o+x!frt8{BGOu;`glYHu7uz zaeW_|KHn!98;3O>2HrfAJAl)5{J<8T#LW3kp2HaJpJse6rYh-#9@yBLOQioD(P+y0 z;zit$7>@&DEcqB%{;d*%!u1b27yU-@Pd~xS|9Iypn4|Ho*T(=5x7Wac<}+0YNbq8N z1UojDt^@Mp+S{?q6c%y=H@C+ip6kn>nD7|8`Fn_Vc29~*=g3=(++m4DPA&X(ix^Sf z<_<@n;r$umu~pg(XZ|;vSS(Wx5io>eX{9b3^&B*7<~06B=KFQU?I5(Ao=W?Pp3On4 zQ+SePn<^9;7T5*zg=2NFi9NcdG`k+nEU^g2dr)UC^d1%@fjNOZtOutcGS5(R)V~A& z1cbe5ZVEPNdTgbdrhLd{jrx;LTShST#sbI6GI{gkGy{=4@w{KMX!)HoCdn&QC$MV|j@Rax{KSJuSplg2{Evp5ex)vm%rn;d zN5ygq@%Jt>r*RZ!d(E-U>-P9$kWG3k>bAz6NMmr;uN>@4;=gx)N5*~^V&jDLhm>DA@YjB_BhR)1y_ z@w*Wm|3r9U^O4DnL0E&1uM<%G>5kH=4=Zom;Gt16e$xu_$*q<`+sjeP@LFU{&Bkqn z@|Y#1%Q!0pk3SboS>>(L2S*$M8#^TOEn>5^zOs=5{!~Tz9o*mj$nEXY;M=38r(<-mq!{zs{U{+XclK~ zQWV3F77r|VX0s}+LBVg~i|2>0kO%-_J^ji9hlX75t8yCY@=7M>tE3i(iAL7{;7y5R z#WZ!r(0G6T%Qld`|9?tjfl0?(j0Ryw#sabz9KjST;HOFWL6r7I2EB$iPi~nLkOG(c z=PM~C=D~-7?Fmj>T-AvXkNn)Mq?xG##75*kiHi>g0rgt15-5C|kzzvZ+ZiAwNMdX$ zm>-|7gV^X|CP}HVT19t%d7YC#VcNd?!K@O}ub*z)vRyBoJ5n(N)6s_5=!)O{lK!_Y zfOK`sii3y_cmnF(%P_yC|Fd2n3Bt<&9Z)eUZwn2*z8<*dMq0M8S zyG;q;m6>?`);wkovk}NjM1?N%hg^nUFs%)HkerZ)OWWJ1a19G|HS#WTxuN5cx{lqw z?jvY?cQ=EwrHA}o)Eghd@G^QWVA=eiJPVP4aTs8>&n%_lp;cUJS0ws*>fJ`VgyGRU zWhc=|XOTi(U*5kJU2b|Bo`8yenu_zTu>P}oob$8iyZHTAqQG+8k1HO;Gpu|p8`>Zw zAv{s{g@nr1PVIgKLNOg08~W4Q2#48P?_*nX3JVx{CoSs&Z+r6^cn{GrnWyVk}tL zD%3KVv3@eRe|DbO7v}SMiK&>tPBqP9pPVM)iZW9=)Hf47+K!^-8121S?ZE3Tn63HR z;G4!zWa05aI>4x`Q8aG96IkkMvp?osr3N`K(gCxS08&+2g^m@xFCg`pvLOPglJA9s zajs#kcPmNOgVIPGrj!l=I0H8B+2)%N^J|xi#g3p$ZOZ+=Q|2n`STN{lZcGx^jjsn> zt>*ORP8~0$mn2cT>uW>SRsPyIraH;L3oCWoOZ1sJfngoSVWq>fBUC8B)vs@FHoC$% z)fJdpW445-%E!HBQK6NHHI01z>a%n>6xdVe+HQ{eT}T zrx#(wPfJ4kgKuB7g=&oj$M$*vl~c8hz?7$(`g^zu-Hf&y>>Uoh zZzJJ>I~U04L#0lm_k^y7&G4tk?@hxxakbsgbej!XlELb;>V!}4zeo5^M{;Z&P5cGI zD%7@5OPB!6`*q$6hv)IR`uy#Ye_YrX();D%j=$?^-fYBDsyJ|99SK}O{)q#*Vo9GB z7B;q8dv-CYb!t@q^H#VgLmWlu*IA{oPW{g^eL(lrYP^&`Bh3Eqo^=)_a<|&Zh5z(8 zbwD~=rX!jo?`-@BS_n(KCN0BeYZ3tkFil>Y3GM7uENTFxvELN*U{5JTMa~kqky@ZCUZ}$+(OpBmn}&etAXg6b~-MJ|+K$ z&ZwRnelEA@^lQ^{w(^Yn%eO4C^kg74GcXD2I^-_<17KP|lZSX4Z#EngFjOsBdty;V zk(Eoz?F!i!W>k9co5(m5ZL$ZXj(8s#y?DL6AgJH38;ypdJXH!a|!uP}X z1-L}OmA3_1F4Ycs^Dmw!g^%#+OQB+#8NFPYj|2jj#V7XSn8k&R$LrjtNf;kyu>E!5 zQkclbDz$X_6~Wk3>E{;ldx*VJ@ViND#XS@rG5$ahJmi`n`lbDD{6~r#mbeo@R>YM8 zm`o|N3A~DwMxYsD_RIKT(7=g=B0h3x@nS$2P?*6PgnzwonoI?@)5D&Bw~QGmO(a_l zMgWIn#`=W71NMNzc$)2lx8|AM9c^l2(bu>5D!wDR%P8N)mi}8Gu-Wb|n2QJ&JN^EJ z>O(2usI-<;q4L9v5)4*LXSlbH`QqI_(4PLvW$F~$q967MUpIV?%I9k$(C+7Npm~`e zM13(+z5n%OhCKzn)O4Yb{rH3VlL1VZNh~$%|4B$7*}VL@A%IZ3zY^$W&N&Rg)@&qQ z3KERF#cng!vQV^oGIo{1tg5`5p5ldTi7$ZMYeV7gn5I*;7DLU9;n%~pv3Z(neP=|B zUz8L6Zy#}AlbaUP0AG;K(0RdPW`3-SAs-cllMFn7VX>+=&mgM{Opi$!VJC+kc@5Xu zsB+zjrJYFQM9#PHQKHNiT9kx{4J1?B5*D8Q2}JZ2w+pUTs@Ckf>D|ng^`XWM0r%&e2xI*FlnCwLohPvUhDKmLunDFgwFi@1kbt&(67Ww%NtUD` z6i&x6)@wc9Z@M5(i)%mHhaS)0eAs9+agl8Ah-jX~s3{M2driLA)$cE}TVh)RR{-|3 z`jo}og?C{_(Te|YF^9&XbZe3?68l)0t57FHCkt#h+1m=)#J_h@n1miKy1!B zI4++tt(jSnKS!%~ArCak9n7LZshRgdqSP1>8RTeqB=8lI3KE~jJ`&3apTn@_UGwu! zk4*!^CHAv6Hh{7nyH3Q?pNJ3+JlIEmKRL8%`sTt#!8%vtM1v9<J0Ua6Wv+beogv_zX5G>#Fim)|4O+8_z4w?s2hcr+TJlxkkfJ;2{B7buwY58WGHUSD!!&h?|a(m_{6j{^mak{o@R!YQ~OU+}T7_4#2zF6PhP_Fk7j`kN+bBT)m* zzN;@pV5BjOj>$9`@E<+4IHiEg(yJ|G1HUwvOVAs_1^*wi>qitu7u{C$Zg7i(`7iQ> zsO}Y70%m`$9}>E(qtE%lk5vB{faQVm(2<^Z2wNm~gF;X76KglL8_x4qFS~nF+sO?2 zxHsOH>VF_F@htkI4=o81uz`R@8zIAeG{B9J%yF<`fYM4)6eQ)2ahswXS9aK?o8B1U z^Y-a39A#_<$|upZcO+$z71BpLhZ#hrwT~sks6Xd42#oslZ!nO8>TmLTPcBQ3G|?wg zdu1|+oFdF)l;iB#lRn8q(dIV*Smd4ZrK)bo8v2I*(<6sAXo8~whl>0aCB>gl{-R$E zn~=`%qU3_lNl+h>dDz{PMYX%ZLF7F%dx?yuoRZZ)6;`B z3F4NgDnR$Sl%LTo_EKrvu+LdH1d%N$N0!AzCy=`mxzR7NnpJEGT0HQf=P^@CN1baL zR~Il4;9dCC7AzyjN~gMg+{s=){;!|qUQhWCu76|>c@(4#`@&8s zi1mJC6C)~M!MXz3q`CI6%r^J!*<(CxzG=OP{!C#8&sI5AB$*pSFrE>y6d}IEM+=DK z(fZ%{$czWK-p3EHT5=gM$S>uCM!VTA<}%k)<}MErPAhBHWNFUIaTCB|v%(0>xD@|~ zVdUS-8fOfLx{(WQV@Jk3~rnzQhFVam4yL)~4gW>Rn2cz#((DH(#;k z$AH8KoOFIDyYZ>wtte|mfRSEK@h06|4Su+j!KVaI>WoynbG9_2{`ya%7{Ia*y z`>2E?8H)5v@i$*RKDfr<;bjD_w=VrIPms?4-^miST zPWeYERGl2tx1{+Xu0xeWj$D!1=^UzrgR@zG`OR=-A;T(`Ht9vLmY~jABEI6o?yNvi z5kXmGZ;j9bXS)MEC{oFMMxPr(m+_N+fFommit8uSYQ4SIoL6KFv|@c!P&$)AgZDpE zw}zde*V^~hQ24=h91I(p=!uN}+E6l|^^EHJ_*+iYo}m~UGm%=;l6F{TM#EAbhFl)s zlFw!l*cNaqs?ztPkq$o^mk0R>AtgQc7FI#9FJc?73x@ zevGxoG!!rm8DVa{OF_l1r1I^ab9gB>_A@W5t$NmZ;pa?%*hhpuZ@OOES$LzAoJw|+5HkU1%bqlJV|B4i5=r*!IJoTfCso+DbB{J zK4*ah&g107(kx5cW}_hC955g3XI-0J1NuxVfDsfA;8ep?B@@NN3!vZsod<^Yfa+{L z$(InYm-_A@-4CA&Ob^}?5BN>nf8>hfE%J8kv zbyDo9F;hUst5Bo9eF2kYBQJ>+OsBx=)Iy+erPxNS)swH*r+tvNd|*g)B^$l{P1gVC z5~yeWEj2@MryCuBTrQ>gU0)Wp-(c7CLi`sa;8gIcVASz=a)J}n<{B;AvNDp~>siI> zH*FQxdR+YJQO)+|Y7@-=@Y?U1!u{r#$JfFSnq=r%+|s`hAIiA`p+5p8I_7VPG$^P< zN6Eu>Y3W&eZk2qCH0q?li(lGwHt0$ZvJfPQIrn__wc`kgD?*M@<#fFF&OB=wQqB}O zY@I_6GG1v&EYwTVN?*~yk{oKuZA^(k(Rszj%H4A+!$rYlpxBR73!ho`>wCt0sf{gd zP~@s+$@!;$bU4Xv>YWh1FbbG(sayf@S{@}%Oem{~{gKevMs&PQ50e+N}O|7rm51@;*w)89I{-)z!*_%2^cFvIg&h>#R4bqIJU|l zXrSo#?Y(>4H+ziKq-gu0u2sPwm^$fN=}dcRn-J#ne42>Gx1Kv~{?sq1PpniibYFgqhrS8qKN1jVFmX(Q3F!RUv1TV{qx{80v*pV_H=aR7~ zf5;;j+^4@5{oqD2!9O~-sM9LH<3zEp0PcH|c>ggIOY}C~lbR3dT9aW5ak27SZ{(SK z&z!OR_7&N+v;YMv7P9gt4hhLm2$a;Y8%F_kR> zlgA)EBfQ6~^Dh(`FqbK`Aj2)FQLJwtMxBY)PkywK+ZzJKxBsym?HOU>dI%H1f#rtc zt>U{+Oy_1rgTj`h22WztuB*pfuhI48+L7$`v}}w$hsxR4HQ!pkYdlV0@oi3l0tB7> z7|sh?W9-b4!p?bLphrC($tfvOB=09Cp{3%#S4c8x0R(M&T;-Yu{!5VCpqt@gpMl}_c zQtcH&P6$>v8YT{}d|if{wM~}y1bsfK*^W5!p(QK|b_{dwmaAd~6(;fh65Yf^;`w2R z!<{~cbUBIGTbL~qu}s8uW>#q;#pwV0aidx8^<8|6R>VDm0v8CtPMzAx;@op$kLt}5 z=5BIv6*+=rt>0^R%s*DVgFNYX=)fKUxb8%-*1G#kywO7XdoWC_RhPdhQ#))i@MD`x z{<$ga*n!xsY#KQFbL|8c<)V5Gmm`{B5Xx~9_0-FI16I(B!Ex4(0}L=ats4TMrGQO% zYX~Nn31B{ubc1Z=1*9?`pW>{8c$yT)3553)+cZ{5;@v1wmK#QuDWMJ=c?lKJ%9mfn zGcfbnjrFFS$>Qsp5cl|j@hlN^-NJlIUK7(ZCqks;L&cvs3$ zy7+!tsS)1WG8Z$v{k_(1a!i9HgB)}zn;`mG;}1*>JbdHr+WA|6ce9gPl2sSb^(bft z-6`?cT2KM{?mQuj9jnz*=encTuXS?zku~@N0!O2a9Lh71DmvhQYdfgF!tn}mldmw% zIBs3rml(^JBj{ThobLWiJ8%{uDUTm5UH@g=Xy$Ul?*`a}eRBRMeT4Qul<`?5`M{UF zhZO<~0<+6Xw}5z|sSGn}#_O915eqch{5C}{i&Rs>;RnixAnxF~x3E$c#QFr%lXw6s z5p)z61uGn^z%|?5dWu9#myw%u8-YlGn>)Y#aN1OAt>9K1DZPHkMOp7J;bIZbuzNu2 zBAht}A3r4cVvC59@r6!7q{>*d9xDlV7wdfBDbKXeVnkVlnQR;&ApU|%Y8!u|Oq7`4 zC`7!WQE+Nx z{wJt{kL0C&O!mkmb`zQBWD}?e?CUaF;1{WzI9DTyPjJQD_3|4fdL9^F1%s!2R8xTQ z8x@%AW2g(tx)h56I9zzmm%H2RfSCvwYv{`I&O)LwPVwQjf1X)?qLTQGoS2?Td$@t_j1arSa-VlEe{mM+CrpoH^1FB^v z1YNM`880ss4-b@`=qmm>XOj+}DD$J-63-bR5PQ^Vl!B7Kg2}A`+lRF4;`Xz+aExDX z7Y-ibiTh@)kckATJ;sGKUY z%UEQ>g-SefaQTvI|Ko%|q}-nzSTK=hSqZ949k0AC`GPB!=0N!tX_9PYpPmW0eC^EZ zIgssg3uN!tge(uz;z6sWqLPS7I9GrDuhl*g8SVg0#aQD~rPqTogXn00!p(;wPcjC` zj_QC(!BBfc0DgHm*PzQOy#OXC_NEpwE4}S69y@3dIR=%HCbTs~+}!WU)5eSh zIzIYzPi2$rnWIVhXe;u(Q)qG?NYDm(_aUR@Abh_p35A;{Y7wy%s57SGY8cBim8tZk zR{MG2QGJ}~y3|(xlORIP6AGFgEfO1yGsnTbv*Kc~I6P7>CXHkeo!eQt^QIPA!DRJz zHnGb$0DSoJEj`i!UYxF#-GGS=EJkZM!QG0!a29JzZp z2M$MoL$H;PgN{URN-I^Y?Lx_$V{e4i>F>jI^;rJVm+PtU?rAsy&pk%DYhK|k|FQaj zEmG^tc5(e2?P1peJg-vy&vsVag}KN*>xKDp#m)&UXfn4nD*q>i^KG!|3bu=YJ2*ye z3&GRy`i%WUs;$}W44FYo7z3z)?z>c)?+V#>xcF&&92kqm&i*r8Ml~ga)pWtOxL-xO z=X&#w`JE@TnVc!xff)zMR#hJ;zlt@^yi}=RqHGMWvCK3|k z@OfhfAT&);(91(p*xj=*6kYj7ngd~L8YqQYN95)VKpMDfCpr>vU4%XtqHxc&G{Jzh7*vkv19izy9l)k{0Cu++iyddvRu0MG^qk&)?va{6a8|OnG zfg2(N(w6!DF5+=lWKQ@2LLAQAr; zsxUm=e!E0UapuD91?h;*O3Bj@EYADUFM-Hb7C;6p1~)t*a+nG!j_HCqdT00J>};*oHv>b+8$BW#b~|4ae3g`{r|9)58iTl-F6yOnTgAjmfw3j=4oazSK09 z!NQR!?2aFS7#)>(lwNJR%qd*_l2d^Tm55621?qA!A_UC}9zcF!h=u|5t%4{U!{ImY z9_@oAQ=UGVeBh@YeC5AKoLAehxM5~3Qk+2&IqAE4N!+BJQ^`FM zSTqtK=dF0mN+wCCvdCJ*ZO>QlfxpedxMCB7oAzY_-P>--3wa$G4(~$otIp6*+6f-XIZVr#~-*NrPLAT%>iWRCq{ZS$%K44~|Id|*IGuk{$ zCC>=;#?=az@<1${^lzQBPLU3n&t*=qEItnCFG}9K27Fz9w~O!rGV}>&Ir?!uhD*13 zo9Er{iphT1m)VGYPfeH4F3|+RB0!5U?r(ZMB}(|5~oZ)AogQ6^H`wld#0(a zEFpD=VqC=)YPaX%i%aKH+u5de!;m0_6sXQRvWl=!@emFesT1a+35=ZncVuzJlr`PI zRdD$go=Ccc+^)(qwTZIKoi8aCDyLn?Tu@!-gT{%Loz8>C zaf;ufKn`#J`?)c<&-Gu*!B7KJ1O{(kY?MdYH2iyW6&Dg;TZ_P)L|~36Tt}KKuS`gQ z+buXFpK|~zZ0yVCKA9s(-k1{sYIxW?neAwG?n6~#p>{P)R8Crr-(N}Mk5f{5dn1}4 zvN5@I`=y3}zX69#z^iW!(|MT>=DwT>(1iY|B|r2mnMxUfFW|8L5yyUUGOPET=l5~B z5XFT0e)f_2)TCvIYeQ!L3S@mZD{(L4R7LX@(x4_8rSV+=gUGcW$|9g#8hIg)5wSs* z@Ig#=YLdIj5K#lb&CLv}+{K`h@WgZe_M=c@01)EINxWWs*#oeve1#X!L?iq5v&FP$ zT;-u{&K`$oV=@$QBPGbGWYm@E#&$2$Ek~<+MzI^n+#txZW)owqTm<}{nS7Y1SC4br zrL=jHp80jI(zj>m+)H^N2M{u0MXj-w%Zpke7o}quXXO=1Cxxy5W>cY$>1mdy19hH7 z3V+D@as#kbWuNZiyd!}7?^BuwjyPvUI3QGo`Syj2$<*WP&foBV z3z&bhnh-{-&~OJBZRjNMQ%Mt$A~M=ajR~}v_!V~>Ht=ww)5Tg`=jbsN0m>P6%cibUT~0`7-V{MA#uXc~bmF>17X#KnFJ-&@Yh zxXdc;;t>%#YI7RsH3(oWP@{X~l~Wcv|Kd(zvroAoK&mK!OI3dF+~UgKl!<2}yYRQ% zJ|?8K>|L zn*8O?IES&??oc@&o5imp5zks{>wo{zSN7L^Js+&^>q{?oG+@5=dsX7rM3-m~gl-6& z;U`{@Q72nu3hS>tSoG>k=5S2-dxlkGA`e@*ISW(fo1jO%y47S^#uu#Z96eN-gd9Ei zWW=$3U{CS}lB=19Sl);Fh}^B- zk%Q|V5VNpy>8~IpM3_6Hi;grclu^TF` zM^sPbqU*;GV_3ei=PyZ6!#>2Yd?;_#%qF;|zDOMv!=;E^GN{O@qmNMWE6?G9V}C{`!+voM&l~bq4eAaVR*E`931xLEKBUbZ@4d?xPY)Y3CORe* z_(a%*I%clZ5?aj4BCCF&j6*JWX1qV;ib-`9F{|YvZtI`5z)b ze1Gu#my-U@D^O;afI09X>~3P;fPaTiZYSB9?)XU2A*f6aVfX`{f)sR*W@?ttWO_J4 zIaZ+{p#hKRi{Ji+G2e1GaUs||w!7O&%oYEG+-MBO8$Bj9kuyy3h zx_Q~PGSHM8cmVXw{QMe9F;$luJMQsx7j8e4{7jDiKYdY&;ZN0-(*nG3kKJrK z9}P>6rJJh>Rq6x!E#S0)_VT*N91q*28g-fVvL!zvD<38_ZRq<{3^>(Zl?E2^J6gFd z)*?8ll)dN|j;g+QjuP&THo+w}O#=HXES67@hZiyQfCV?7>8QM_CgAdlp*?ZT5OJ=3 zm(l6H*1H}1Q+reJ@-BI0ew8L^X_`k&Bc+D|&}&AbOG1fuqN4Sm2B(}t4l(id9pn+- z#d*4|)*4*6W9V9TeW5OEV$>weGAXvDSjBo=Yk^aq44peM<4{Vo)frY}(xPBs8mshFan}QS@FsZB|IeO`dR$2VPexDDID!TGK zz)d|)RVT!~JLshTe_;klwZ^)Srbkq`*S!ZBoIo0F=fe~o9HHAQnTiz?s9=#cv^+Av zY5_SN*b1t>?4T_ehhhmA7lS9rGsq_mV$;$_E4QB#XeN4yCOmk`wUgb^*ku?xLhAs) z6tj|M7E@A+$@8#dbq9aag zeM~x;nPD)&K^yoWtQn;?h@?cI^)t?)CD*C0_U02vA(PbiUD_v~Pr`0JFVTK`RnEQ-rfk`N~PZ06of)cWNe99Rdjb(YsK5Ie0At?pQiY#sOw`|75n zsxX95L#WxcI^{mH!eQ3=54GKR%G%aZel&)%5+)77bK82h9v1qkiQmJE)gE-U%)-Wp zR3kF3!zDg|vI-VqD|aedVo`UMhdVT-1v_Z*b_T4Zi1f&Jf?J}=?NRh0nC`6O6qf_c zN(HaoowCb*>%jwhoX;=umCb2<&;_(*bp7V|M^opk?c@054BwuA3YSCcz85%m<$B#l zJqwiKlP{5WhK)8RJFQ{cxohY+?%Q^M$H*_LC~~Nuybh0>YLXQ-2>o-Ya`2QqnUUQ) z-^f<*c9Djj>`fiDvUxm)3STS4DTLO^xO{BSm_n(dmdQ6rxR`fH#qn6j_#L<|0p-J6 zAoFCh>I>B`Owb4CJpXjaGth{M{ay7!yw{HEA-~7{$V=V5EH<__0Nx`jpGSFzX-4-F zxar^~C_TSAe(|LHb3(P4#^k?l^uw54|%g=YgqRCgfxA^3gK^ zL{q_){5?7_cNKrq8GWs)x~fWM$p|bP0Qb3AWos+6ya$lszFENk#r-6v&)E<}t&JYE zT(w#Wij{`6h!I@Wku$x#plKnu{~u}GGDH;%aSZ?`-AO|jLXn6fE*6m3cC__!7d4(O zzMH44FlLJzAssAJ#w|57X(i<&ZAo0O=(8- zP}f3Cz{Ejbg~Yuh?(xk33;MEY#4(+wmB37&D0^1uuSU|Vs27v4;OL84|lC)`kKjv9kpjGR|@iHRr7%& zbFd$>rCfnGm=_ODYcmz!NK&T6$th!dL++4RQgd2-;qTjvEPa5HL3&eRiK8Lw#RlCx zL~&DT@QyGDSn{L+I6k%T3SyQSj>uoXofCW>$+tI_efHHC^{j$I99v}0=Lf=#d^;F) zJw%3F3_|7^qu0a$SM}1`&H~K~PJ#nz)!^vT~B*rX|cQ6c-BYHKHT21m6ulBqPX}p$U{{&4j|ko zix=gaVZ1QmMm4|$#WLicV_*%WTlaetsdk3!hT$&$sC$)nJN4fV5$D<#ypQszS9{EW zj9dPbktLwiXWXR>Xv@Z!uKaCs!T~=)*B4DC`w@G1tVkLnsMibY{j%5?#yp%UCa%dC zU=h&v(&YPvH27i{E?pPVobrN#O5ZS!a#!$$YFFTWQo;|W^WyE+T1t{bR5e9p#sB%= zI8uib&w}*{N>FgCB&ohf08R>{2;=*tJ51}-G_e%C6q{qxttJ02di{(lOD%W;8 zF{|wQ76=FgE6Uh=pi!X?VtdFn8Z9-xioxkwpk`dN^hg9hn4EY%OMOp|c<43dF)%{X zmW4AV=lv*Mm~gzzj#NO&-1)zIS7L8qO!_iWwK$rN_-(nJXN)}Ch5xg$DRI)J=e(06mR1#CSfatq;v}4iAX+CjDy4Z2BI8LA zjRxutrhk@)#p`4$SZJolf?-wTWc&aiIB@Ms zFXhsKORvl0fRUT`h8x+kRUJ?sgKNaL=u9i39DEhai~;u}KlF1!43rXAfK#BdYxWd0 zs98$%91Ru$m~(H}I0^717F9=4g)ZWc+<(0L_ z%&$D=HWRy`!Q+Cd5KX4csZ+y;G%EYTVV3fr_gu0oW;El1>^txY>Tsn&AJJ@ppG_w_ zr&{vGLJrc}p)>x>@xgY7>MH~PfR0U>GddR{*=1Zx6>Qd81*w3!Ya-~)!AIrhPmf?Z zKy7W>yC1b|H&OOFx$7zocIyxQeSm1VJ2u0H)q2?4*eF1w!|!@@vyUAF&5^19;Yjx8 zTDT652bb9m293*yZ103vELp2mtI=c=_B)S1ukgo50`M@G;_QAC%NxhjzZPvS;|{c& z_I2TeFdzAl9V0p>k+VEIZ@ax{#`GL}t_{wq*&)OM=@~vKyL7|81IBf;J^UMg@O(zPrO#P{MZ1}meiy00~BoMAT_0Wd#T-s;~hG-i=z_VOCKjk;?2*e^64=6L|hhmU9rW{s8h2)+Qg6Aylf zp~d3JuRAd|jd3MpZQ$Mj9LfaQGp$*unhwu2Jcr41YTrggQ6bQ!0|dI*d%>AFAAT8O zaH|K74kS)ONsZ!Z(nl&A=u6Tuu{9NI;$10yaLb?XD?mQ^*V}(>TdHz11j{l-UrBxl z#M-zNYhpMJ1aeXPY30{85>**;2_vw0bB#emATA;YoTx0_&EcjxH|$=1mdW2O0HWr@ zbu&EW?jikSes!$|GGC({`qIF=E?adyL zL4lTX2hq~3%-0L30^R87GT4q$lL2yAgnP)VP=A%Q$wpdPDOs6U@5+F@AUjZ?9c~eL zDcIhEHlDao`{WSQT38hx>}2fm$Mo{k-DNM^Y(;J1a7Ql=X z5P^rEB1iRD#M8f3IH5B1ZAUqf-`sxo$=1PSQVa{_Sz(}1T?+9jNnp%S+1R1am>^DC zc+ibKwz;o{1O;HTEz1Iy6EbfkO#;x|biZ5h|E9gLwt{l+elCnw;Q))lw<$s3$5UAx zU9~uLEA^bGoB{B%+{8@9tH#AH<&4ys%Si5@CR3PIZR41utd8xB3kl0@pW$q=UFXs$ z9OW?NT0q?#7K>Vms&tMtvX=@?!~w2~Z$O*mFlo%$tB(`RCDb~5tKQM|moiL4((4v< zjrmyuvzb1;#pS1#_6y1X(FCZhdFC`Uy0|Jl`O~oI%;ZHBiMBwNa_NySBkl?kK87$z zMUXf&_UZxV+M8rv?o+()I7zz>gBe?@sNGrxx+9Rox-Y-g7HxeJW^!WvjU0!Q)Ky?O zLTJu&;L&%gRnmC{$8jwtbuxy)sbNy?~pI+xsNFD$}r|0 zDZKt2yLPX|G9Y}m7>k$y$svqb<3k!uVEf4yApP@duk|(0cqQiU>4tc6<*(8|F>Qi(Sn^~LtHTA!~DC_J2r)8a;jOhrR8ad ztIxs)Xh1TGxQQS}x*6S~r1*{maQ5Y6sSr|JI%KWcvErdhdGY9i5B>fes&~z@lDbQF zFwNg%H35^AN_^m%^dq892LWC`9olp7aQlwMp2)~Kh2#$8?3wnE2_fV)`EHMw0M#R| zw+8LAhp_(#qdfJ!HSiIJD-cBQp^v%*Z<@Y0A3pM)<%YZm6xgClk+yEn#Z;UH;}ojg zwW1zlYCJCGnWT8J@M|M|)t`Z+Jdsr8%If8?0Ww=|Jj?X+i%`~DB`5EZc`C3Wrc12-#9;`s8 zQ>w{Wq-ek6ATVt-1t$7k@&wtjo7LL0q2MEuAAiT%;+m78AJiuaI#6hX6OH7ONL>^2 zz_rnL-7y3Mz4SMV&kya=SH+7jlh45@qYI}i9Sm9X3mSEGa;aKQMES=&Lak>d`CZz_ z%^Z90nqQ79dsb(F`6i&o>y?($CpX0t=SQ-cw-6< zj@A~&K=WoX2^B%>WZd2v=5n|rscKSFVoE7Y7kA?49@nqalX);otoW_uCZIH(%p?q7 zOVSV!L^GlNxYqkl71#geNtm8;Oy=CIOwE}XE5#TTab-o zBCZXpN)H`)N=P%s$K)-c4)o_4`3%8XyOk7kCd+m)e|(&O7mzW;2*j3LF!{=n8=o$0 z`IwjHEil~H$*Pqnp^~R@m9a&=)T2F?aC+by@v&_6xrcMDnpd!w+YauHbI*MHtXD+1 zZ;T7%?3tv}lEPdE<#-^=h$^+35bhSZhe#kq5nTN|YkaM9eD>%`q(Y)cUp(0O4OCr_ zf8w4w$`$^ZGg2PZql0JO;&84$WCx@Amt%n`l%I?MB65to;&1vhS%>NlC1`mFzE9d9 z=P_AkOBJf|Q+Ehndn$I)7#fPOW6oHxO<=ez8)(shbA&x#yFRB8{w$iqeA-6rMTq9i&dOZElpCnQl<>TpF(}iVJv+AHL;e&KnWPGn^_En3G>IS*f`P^`9=G# z)VbbRfS6z4PX7#1aDvW|uWTDR2@#Y4LK-PxZO^N!xw)s%DzFrXdEJ--IC!4>5q0Z# zd1k|P2;}0#1hOPP6TIMSpN4?QR3eBziIJ7}3-+Do*wzk!={R((4&I@v2VbW)b{!-B zoZg;PkJm@{QwE%ly2F(AvGhayMbQTXxvP=(X|7j9`}-vh<)q;Og#HG}e`9pk5hI2` z2ktX|nAKb_xd2zs6%q%e06c=Rg%WRUR!9vyzy9t*ap4eD0JUg%e*CbH930#nlUXXD z#AXyEU$`nEzSx|Ap+RQT*QLOx~S-hrj zo)HY-=j%(M2lo^nvt1;-nm|oiugN$x?}lj8lG}*8|9!M>!|zX^t|+NwVc!CAxFBDo zL4?16SXBuLPvvtDf_>UPKVh*<6|&fngoBX4@1tGO8rChnuQ|dZi0_o+ThU1bc|2Xe z=mE2XAeKinx3whs%21$JF_`XPr>Re1uOYfKow^YaD=7j8RsgXVRw)u#PY~TF+9(Ox zea7=5$B?74+VJ4LXW$&8>6u^NUo>`Ev7p+_I3Tz(=Y8`;jxB%OyBzufJ=%j{39YkX z+g024OYvc^!;V)@(=j{Y$8ThB%f?V@=1%)1UL4U+S_!49YI&ItmQsZoDMYv;9%(=8KDj?bpB8W~z3Ydkq?P1FYbeJ#Ed{lggDCD2;aG>CSS9q`WdHslOk zUJvvpUegReb3^*&t4a^dwcr<<)Q0lJNc&C$DC^z6z*; zDE@}&%)e>3jQizM;gvas;Jqq;-GF|ObX;lFlPND-T%&L$d9q)C)2E}rP`$iVZ}8Lt zKZ77XV43J^Wsg8+8Y6rd1?+?bxyjQ$(xU(FXkl8Y*nu1^uJ@boXZ7Ip8UiYR#KoLX zez@{Tu^_jkl|xbAXU)~woK+wU;JuisLxFu#AO}1sWs2&vBeR2E@w%ex04;-SU0CdDb5SC0~L#Y zzF7eIyM zcq*U47bktYJtJY!GjP?Y8ea-E;CO^B#xN`FOw>q%O=v_@Qc-ajkI_4#_Er2Kd_!$w z{(IW~@x4wN@Jt7X58%#ts8(TTZMzarA)=WcOL3-&dYtFFX|BSQ>?@nzH z9>ij$?{fR0K>RvY-M2@}&YlRmpPMGkxs?e3=8&|-bI^^u!|}oc{zIp;Uk7HtpcGa; zqpE3iqYWk#Lb*b#K)SqP_Hs+LmpI%CQONxR6IDKKC*XY<>F6u$&|Uzmo>(Ad*7;%Wi^}{?{0++JBJNW^caO6Jbzj;xBP592w0KN}T0_7zo`Q%Tcu9;8 zWfn^D*g)>4^`I9z{v*l8AZ1-gq9P(>h|=coFI-)oAK$USg^TA`^83*RB&?T9s(esR zAJv|Vz7vMC_c98Ku!SdN6ysMoozxif^mxB>ef=K)%N|-XVVb`&eInwkG$}Pyh^>ni zE6th`KeiOvVn9(*ZM?8L9OW!{GdjW(*P-H*Q$7F%o@oC1%&Wb1$i-^CqvAgqe_xU0 zbx0w2PFKBYtI2e9T25hl1)lPeu81cK$`B_PA$zrpD&(e&tBb!VZGXUrUp}2y8A@{w z^ZAj9g%ckxohy;ox13C=LsyGKumEl%l>^#>NSa^C)dMRCIe~^c+NjLJ8T@qmRxa7I zCiHzA6N6HG_FJ1t(w^Y1Q|Djpki(PE3|r1LlXMQ7ne*NIJ5ByXIL?XPixJ2QKE?hQ zzyxsK8283wP073^F6EMU#lQFjq9|a+b^dP&$LHd|;r`vEyIvQUDW>6WG@0*7;%;1Z z1uOFZ++e0naB=6M) z5U;~3wS+KQI||wrwRVf^Ol3`D2v6~Z$x5ezG?191M%@W#qBj!Nkau-0bVw1LtpU*J z_wDngpzd58N|{0f)2|kxbKC_f!`q$7AJ6Cj9M8wAKoZ8QBRO~T-6Aj_-8c`7DexO2io^P9csUscmY7^jxN3Wa{G~Cvo~fxeP5ja&2rnd(ZO90uQqO+p z6REM;O|;dvJi{m_6E%c)!HfihD+X?rv7P|nu1Bqjba4!h4sHg;wck7@$@7~)YqwnB zb3+Nktko$-(g306x%0OjGlX4L^FKw%^%$;QoEP_XxFHsh zPeY`S)LB#IeQZ;DJ2sIoR0i(em?9l5|K(iWfwM_Yh8+=`HC({yCVjYwov%G1gR z#AcFtF8Z>YqeX{o#dhx21g0EWJnl{Ps?cYlJdy6dTbR^%1UBMnkU}&mz+gX2Sg%e;)uEhin52iQ7qdkZ zn+eNEs)Ng3FBqC};eWTiuHRV}-FY)Iq zJLoB&@^GLR8f39A>{g4pkmr|bT_*tZug#RjbL65vRk}$VtySn@&9>~*LZBHOhSn%D zVF{kk59y{Pa~`E2fXI{0H<0U8#I#MDF~XD>0=#{Tmv9TVK5MKK2|r2X9VP)Gt)Eku z6qI6adCA1k{lP)ZYA%GHI!?;P@2+?I_phIvj^x@-n#G4P%W5Z)J2ZY+3wB%aXhN}& zIYo+`0-8#+NYyCj+UbAw^$J0#ny8eOQ+;CA+gBHjg$V<-$Fl?zGA7y4_!3(IC?tV^ zdQ$4l_&=FjA7*FWWs<+~H)BWkl}MFh=w_wZJ9k)IA+@U^GcL+Ol&5wNbj0`2n}OGL zueq0gJ`lg$d~1||wZQ^md!_x`8&#$Ay{`GQn{|29Ho4g|!r7q-RFpld%z}cc-64Po zXy74Fx0@?%S=WJt_mfbir#FCcOrSesASWauSA0AC+jU|sDH?l;`9mH>v-i$hxo%}bTxT*euUIxhh3mKw2(bb*f!NnU~)^>k z4X0i1U_)~V?j0ztTNpHW=3#_&PewJJx9gA zI3c=M{5tE>E3qr$G-7ZNJe^9pkXZ>O_Mqfht2`^ZOK(tq8rYZNIw1T_e|#np>EZuf$=ANbw`cL@d*pq zcpSOtDO^to;E}GmS7%y9_17DD8(sDThS+z1iN0K)HzYfbSo(}N=T$L(;+Uo4>uvUK zS`3Wed&on-h`?VX34?Q4>UjQuUBK8Q7@3sXCa>k6C~t+DkA7VFsf}6-yjXRirEhTy z=qzs^h-`qi=5%{;rj$FTv3Y2^Yi&XslD-2A7W^Z-OF}iTGv@-kHHu;#=F2)L+L#Mu zJ#W0Em$t>%;AEJ%TVv<1hT~bbPozmJNX9ct8ox#6Wqd6&0&z=>A2nKx>a_=@4&sR| zd|~1eO={T#wOM+JYw3`lRk_M;iveNY`Q>yGyeAa9{P&L=RFelqZu}AZ;oEOKQ@+0@ zsclQ<&!|L4uC{B$`Zr{B|$>*o>}oG9nrXOEMt~S4QTZRV-|)MLHm-BUPh20?Fw3+*9p=khF>C ztf~h)0T&@rRr+#J6gsu)iEqf^NNEu8md=ZTSR5MJW2HSDrzt&C(QSMUaSG~?FvjFA z@E^7dECHt~8e{wF04#_O00$YQNl=3Hi-(;yL7L*vuQZBJA2F(-g!2|TNZvd&6z_CJ zl2s(JA$s#^JB>IGYr|NgWcq$Xn(yklRMzr7*H2UuZqGe-sUZ8z=us-$9uhDuz;26! zE%Y@~)}dB=|C)hZhnr4ihBL>B%~G0z*qILa$C`JmKBYuJlc2soqadNE>>@Yh!5Juq z$1g_st!t#lfA~cIH;or3Dv-Citsj19dB&hIk5Z#e)+;rhPkM;GvIa{k#CBc`=hg)c z_O`2bSUB9&&7`F;M%QS-6tt7wO1H{3%R3q|u}5un+kqJItb$hve@XlR9bAuk@3Kqj z1&UHXtnV8mNbS=OgLF`N2SiG%Ll;pvfaw8xi3)andtCD&q7?-fC+-7-2*kZtVn2yc z{GM7kR%V`eUFx`qzbagOh|g0lhjTk#zHu~nJ@Ae z`Xw}|Sbi3OXz+DtQeT{AkmN^K{>Ep0>K|fAJ2&#doc(`S^kbn3Z#Nfn8xi*A7P)%C zo8)L}j^w|vNSJiw7e zS6XTZbtuy%EzmrLEA`zw(<*gP4PFJRv{YYFm6%qs_NFnK{VRTy?(qNeZjZQ=QkcFt zeTZH86MV6g1kKD{lVpE4K0r%85g}FAL%Z@@2Nt8-mh=_R<6I^%BC<9s-L48(aJni; zen~g-30W#CQxsGfc=Z9UvnwGu0pqygOgdf2-l!SZ=B62DW*neS?flTay)u|sz*sLu z_YM$eJH|>J*0e*jRUsC_N3dcgw&0bGSpRPgQHC?S6|SQe$A^UpIa!3wPS?7X^ChB+ zW{cz`6-GWVetRcWUI{OGdpje9qmcCd9pl(g-VV2^Ioin%2FC|PUx`8qoQ$=yF)N|^ z&LA&Nk8;$Qvrs#a`&mJrdz>E)otQjh6TfR2g%wfUN&iQ`_uR!FlxE<1fM+h}+9u#| zr?d;7nnuWSpU-@Gh*@>PAX#3i)t(>W_6gz{5&sp9ImK60Q#_w~%}vYw1niCgeyzM+ zK|ELWTih?Qdlm%!23y&1YdSufk@s512C3^l6gU+BHkahbpO0Ql!@Lb`=R@lDqKXd8 zlu&!%f=UHCZkkz~lh{9w9f3^8e(p54s}3*=c^D`5Bl05i*`3TAE56ZEsq)S;qxiL5 z6g5Sz?SAO`nL9TH1nTI<`9i0@Jo&i~A|9nTbS?m>T=Z=R)A@1YWjV91Yp^m59M87i z(SoS6{2Iq``l&VXh~p(21&xr6pBqyevhE7z@3vIX&-l80|H!V>It`cjf2@hTrBgAY zB<7UA8}9_0q6LcVDReYUf zJ5j0F_VuQuXNmH0A(_YT0B_04^&aL(A#%$grQpm_m$&p%En@0*N&GH5c&V69v4m9w zvG{!PNqX5hq|H4iwRsLBsZ93#cyE>ThxE|2TK`G>(%Vfc5pM5B$y@)EHLgvDKt-W% z7S`ve)!~7P`yBhR{E0g(XPAkNoqc}0#s0bZPvTvWhz_K2Tiv@;eGKWei<|({_qHyc zVVcsi$XLscCCB{rv1J5-5d}0 z1+&_e?cI_v0-u_9);b_$A;*g|R&7fMR)G5d{_w$4iTw$Z0E&}|S#~6KE$&5kE>BNz zy7x}tvTv}!m~1?gQ53Z+0>LG!!H7Hb{Eb2;y)NMd_Yvx7quX7)Xe>vQ@e(F-pDXQm zv)A`w@gw>=&u83kt0(x|=a0QhJ4>;Vr1Oy)?5kY!J7|xRI%jK}9?B&F>8mtwb;paD z#VUo+RYXHm-H?&W=~OUdzeo<0@tw4w8M~F>S8^<8zD_Y>R2qo@>=)jv-7#)=Nn(Wk z*vzsS(s;ENEcgP~nx}IeBcBPxQ%MXN-!JA1tzkt@`CR=>$(`B7D=MkQ>FD2vDN)SN zrvI4jUjD8%g+J%|Gq%$m!9;{CS*3bwm9F>Ap?xP$2b6Pm`--`}0e%Nb06|dnF=bPS zC7uwNYGHx>5}Y2>!NH@0rN@C$GKNbEGbEf!lWb>V z`J6>{WUTM->W(dfk7Mk>vWu>38Z|9EOzS56oW+VJp5+zznf{W5BCWtwNPyUt#+tGk zci%@aZP%or1NwOzU?eo=12OaK&t@uo-rhg0T1d~nx;~`A2@$;^q@~(SCb8M#o0DY# z?DHTGj!Zg?D~x&bLf0V9Rp##v#_58#y(>LISRXh=wGnzF*{HabddR`F&mtFW?)~h^ z-L&gCHCDOF)ArRpEkJX8%k7U7m_6;)q=ub$&T zoy2v`Uvn)1-`6|FEmr0G=f|mQTA%pfPu+AY;Ikx2JZ8Een;8d_G>ii?Nn@tsz%pk6(mLT$9 z`|5{kSJK~tc70$m&LbmX?yvm|}fCFL8#bpj1Z<&hPWVNn}Q91f%Tm@J20 z7JzGM^V)y{Ejr%cWt)G_w@4hnXyyK*6;yI&dGprRmFs{mx-_u_RAlQP${4VH@)^S=~-xep>~TOnS|AH7y&I#jmT^ViRs z8jusgQ<~SgdVJoj1aO2M3M*H+=%uCta-vs3b~&3$>uusO^8Zq7GDRYtn}!N@Yx5M; zd8Ua|dlT3>mZ=pqZFsR(6A)2mqte)LQ?ypB_4@nP#SdY6rPdq=&l9?i3z^;lX%;03 z*Lp)OmYMj?PGx@#9mjAsf+F({K7(sFt$h8Ij{UaJACeM1!i*M3ZnlQq1ALmNcX-@9 zmu&54A1Q%mBaIPZg1b|5AR6q!Jze_az&aUkw1`yld5$dKhJ4pOjyDinu(a}g1sLSl1e<_`5GZSu+YpI z>hhQ#ec#x@r#Hy=jvV2Arwe?OS8VNL@Od^sK@ii7R1iU?enqkd4S2NKI zOBDc0;wXtJMg+oR1j4Z9!1z4;asb4YprSRq-~PW}-&VrJm`h&5HEEdPJLXt+ZpVL8ROCN-qdhF3=+^c0ETf8>=2>O|-5Iau^l2V4V*$mD3rWALu9NQyy;ZMF4?wdR$0V z2Baxm#=bNdi~E!z`LVKh6|k`_&Ehky{fA+{T~I|{8i7Ka>b#7-5=xSSe!G+b9&uHHFJ%XRy4w^SuEP2;P|-h(r9)nH+jcN2jyRJ~O+ILW`Ag(FX3z^je0IoGEI457|TL#T|g^WiMUCw*LAan1Xx87~t5_bd7jEba>__*9W)*$-Ok^tPSG{c_^?bL!BPCw&5&(VBDwi zfdCr@?YQKMO&%Y(kzSr_t`MW z@mT{D)XkN=gwkvLH(Ix+7st~0gq5(K@P4W;graHnWDljr2bX1G>+iGRs!g*4bcYg^ z#5-r$2xzulypdXM78$pMRspVU4#%3SgjqyuxZkIS8vn3_o1q(RH_gNQ|0G*+S8e!t>#qQD*$@9wJHM@I=`tCUP4<;4u`aZ^=Da+Z_4kb}SbC z3FB{Ry0&^wp0CIOE2v*;BY*4{7eieE`P5dyU+o1|J~vYNbR8C!-yw*3sPHH$%wRB{ zH}I2{%Xdgu|FA*nBQr?a}(Hf4K{MkRYZz4r8U zT54Gq@`t-J8Ez%Se6UX1vY<`7>MSbR`CiyO^dpP}S?cw-fG6rPRxz{^#x+D1ZtrqZZ$!s+{toO(I6c03(k}G~$tp>+szwVf0jwBw7JLL26Y&_%;HL552P%GIAT$BzkU{?$1>|uYV)^0Hd z5AjfDC{_dHM|X-GwWJtdwa(_||EH&yAqmM3JmF;eB!+B4%bGA@_x57tD#u-tx3?4L zd?D@y>Q3V{Lef3`@tjIp3U6T6XULulH^St-Ia%WC2$rA(q`TqZ18l3nix=|^4co{D z6m&AJ6lpR~$gcRw$yy}-CSu|>9V3TmxGt71GOiWS`#hTYLv^^~e-o>_gB;q>|M;;K zhTiH$`s!wiy$?`gYrtIHJnZuu0|(W_jWbqyU2Vi#1$0eiqd&DIBX2bg_6w}N?FQ~4 zOn+<>YVpsR5W*7ELoOptH0vp8~$<} zJqC%-&)M6i7|Qy5jLTC`P%e98Xnqtp)%`r6BB%PR^>&o8WHy&KM5&p56Ye?-C}a%s zcS@oLzWuu*vLOf)s!Kn(%un>9lP6#99d^vCCLnZpQLyf~t@}0ej;sH_U0~cnb+0S< zIkeCE7dk#bL0ekPf2XNGyZv9*W>{&w&et9ER}Y_xAzX}YU3jBrk6f8s8zR|x#WYWWqzO?Yb)bfwW^$SOd6 z6{**ae?L|K6+QQx9vN-lb;`Wul{0!srT91?9Q_>?ZEAsx_Huk@!+}NSlILD-dBZAZ z_t`~3OI-p6in;bb)s$#GNEqvo7?ha<{M{Kw>y)b-MOJ%Y&i+9Cr_wMSXPLN5hByod zO(&JLeb2l+?{%Q@s`%~WbJr>wTfx&cUP zbJhWKAe^hI48ypSc_ZqI9;nB zE?(_b**Id%+VI=D%-3`EO>tTuewy}6?E*QZaj%a4E{ zYb}95p8SvMn#@sAo;f2-i_5 zSf(9LAwpX(uDc!9#aH}rcFTD9iz25k5d2}0w1C<0lFt$eZ^ni{v~WgRw+ldRIpaNu_wm1?DX#C-?L6sfg-+j>2F~X&o{uBBMmG;^@As zAQoIp(R>RzgH+3m^<1`A6=)@zz0nI~vp})0`M;y!Szonu3BRkRW+(!h(W8&2KmhDU zJKAtpp-nUIkUc2-G2NY+DNB?-F><=Wp(*9Ll@ z-Sr2Yki|FvxZ5fJ2i|Lrc+{UQ^FdkeEW+YJkTXOxS00XK0<+;52n#EbFq3l)!V02! zvuUOjfmP}5uiIYfpur^(CCr^apozIeD|bt~6OLhX*FRNG<{p_?(> z;PQA1RZemr-^t`MaX+EJ#v~tbu24?9))}`Oi;_ujReExknSo@AYwOF2@A7Yx@iSbr@~<+F%UtVwm64MuWI~Iv&I5q0l;RTK7k>{kAz0>#(wna}Vi{u*56No1l&C_6 zVkC?e_q!);Zh&%`&9W{`-*!Tid5`oQAxassz7+4`=3&6015~26bfF41KrN>(mMT%v zww=Zo1EPWPrOvxxC7SMOFPFDL3XfrK>r^|t63iA8bve#0bAMIae7pH7r6ym+-1BgW zJ579k`>JS7HFPcCK%1n@d-%z|*n7Z2b$}sTdTCn_S6cw#VB|}}9V6Obh94izXu^s5 z0{onO3_B=I9Ae3q|Aq_Lm^2dEfnbGj*St;3b|@hGx1Y@Y`=Czo2L%~BnH8Yj|DoqP zRr?HuWX|cm)s(dvu=lJGwb3sA>J9d2^V64or;KfM082cbpda#O@&go768~krgR_WI z(Lrq(=^1&D#x2D#P`~tdz&j0d5@wrziH!Y`DP}FSi{jz4%x39sOR@}55%GajLG*!JiX0J5;u~&Ae;)_V$G*Y4z>r7z6?l~XZzpP`{J`J!hk|mr%zzcEIzYMD0%~u1c zegOXYR5kr#30kDvYGs|$rAQIZ)5$0Om96$yJkMZ9LG*=D?~U`f!?(g=fB2{|Jfdn? zgqH^{I6sl!y*S`{j$VG;;XHswQjd z^T{SlGsjcD#R_|r>eDLyb4yF8hPfENP?rQ&m@ml_XwCiFnY}6Z2nMHnFDRj4-U~I& zPi1u535YV&{XYdA^j8eF;LvU2taAhd2 zfSJpsdjlvIjB#TpGZ}juV??wrf#nfXBg2qfHibGK=MIMOLd^C}QK-uybJ`m=p>Y?C zK#*J)uKZ0$qs7j1pV6T%T1~02apw16a16;C2k-W9yrHtx-o(f7q-a@PG&NO5F4-L$aSV z&Cm)Co%?_*#iWK@R~c^O3Qp4L89t&N-Wj6K1Yd>G!H3(dlV(VeSFibA)`}0!lduNX_?^rHV z9J38mweX#PA9DYX{3|iX6Y;T6)y=Cn_!QuTW}p~_F0>=s2qQgVeAu55#F*Y=pR8~JJM5IA z<@GiTixxx=j0vav5tP1-mAywto+4%`i5)$B1owLP+bMhZWom&4t5Q@t2aafeoGC zv*B$Qk#_v7wa#zi=K=D5n@7oQj^#xG7w9 zk4yxDQS`iip`D%<53<{IpbWXMuImD+H+e-L@U#ThI@B;gXuA-4HjM2Q z!{^!%;sXBOyxf|Xjv^@Z4*=}L+wiXNLvhFeooKd1E5=T z3yzq>pS$39xM0lpA0pzlv-9(6;nT0gJ%jt&A(TVN~J}{dSpB4OPRtl z@!~T*VT0f2J#MTC5z27?lMbx%uSUg*7vq0X8*`s64&vlJlQ6`)SZq2#Yj*Zx6zZ>* zx}ThBj>tID%C8o=87lzK8Mk{c59BH14ih*kY+NAMkzupQO)rMRK|y$Y>Gb~s_bSfu zE`qb_+07v#nz13?<6pqZ9k~@O4*P)b!DMM%S8LYwXL13ms*a+rv`(_pqY*e!<*#Hh z)CC$mfJB*PD`A)iqeM6h)~c0J@{Aw@P#1Y**%%!{m>wtd~J8<;Va4sn9_uTI7Xb zo0C_J^$?a0Ix9R?X;3LeJ>_}i0uE-;ij)Epr3)$mb=D=&1CkQh`yP3*hXFQ<@*?D9 z&zFv4fKDh)iG<7B6v$=35J<-1Ohru=2NPM$wNY$y^vHqyQ-(DbL5NZFbWous)5%90 zgxpM(t@EdPdH$0WOC!foLV|8hhO6I%`eh9V4m$pIXdug-ZYvEsMF42{K0~bOg(c@5 zq;8P*z8f4mz(*9D1A-5ujkA3#4dQ2m?za5YPbTTh?O_=13N37PrA(6~Hvc?W% z*a!f7e+3X1rH%X2003BSAy_Gq6J%w8eAKBN77sDUh-l{f@MND0Um}pn%PKh?vFZo- zG9vY}e(M{+hUyU+WgL{Mx`24q+`V=fO&1NOr}U{_piZ!V#s)~jczv1znmJ25-feJw z>RX;HC85{uCR$>?!w<^n zhg1UV_nHcl31;UcHz-^0pTA;q&qi3_0p8r5V5tEpj-!=;eD@Nrfse;@22The Commuters-Icon \ No newline at end of file diff --git a/img/email.svg b/assets/img/email.svg similarity index 96% rename from img/email.svg rename to assets/img/email.svg index eb17408..3440c40 100644 --- a/img/email.svg +++ b/assets/img/email.svg @@ -1,49 +1,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/facebook.png b/assets/img/facebook.png similarity index 100% rename from img/facebook.png rename to assets/img/facebook.png diff --git a/img/game.jpg b/assets/img/game.jpg similarity index 100% rename from img/game.jpg rename to assets/img/game.jpg diff --git a/img/google.png b/assets/img/google.png similarity index 100% rename from img/google.png rename to assets/img/google.png diff --git a/img/login.jpg b/assets/img/login.jpg similarity index 100% rename from img/login.jpg rename to assets/img/login.jpg diff --git a/img/password.svg b/assets/img/password.svg similarity index 98% rename from img/password.svg rename to assets/img/password.svg index ce88968..94ab865 100644 --- a/img/password.svg +++ b/assets/img/password.svg @@ -1,65 +1,65 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/profile/default/1.png b/assets/img/profile/default/1.png similarity index 100% rename from img/profile/default/1.png rename to assets/img/profile/default/1.png diff --git a/img/profile/default/10.png b/assets/img/profile/default/10.png similarity index 100% rename from img/profile/default/10.png rename to assets/img/profile/default/10.png diff --git a/img/profile/default/11.png b/assets/img/profile/default/11.png similarity index 100% rename from img/profile/default/11.png rename to assets/img/profile/default/11.png diff --git a/img/profile/default/12.png b/assets/img/profile/default/12.png similarity index 100% rename from img/profile/default/12.png rename to assets/img/profile/default/12.png diff --git a/img/profile/default/2.png b/assets/img/profile/default/2.png similarity index 100% rename from img/profile/default/2.png rename to assets/img/profile/default/2.png diff --git a/img/profile/default/3.png b/assets/img/profile/default/3.png similarity index 100% rename from img/profile/default/3.png rename to assets/img/profile/default/3.png diff --git a/img/profile/default/4.png b/assets/img/profile/default/4.png similarity index 100% rename from img/profile/default/4.png rename to assets/img/profile/default/4.png diff --git a/img/profile/default/5.png b/assets/img/profile/default/5.png similarity index 100% rename from img/profile/default/5.png rename to assets/img/profile/default/5.png diff --git a/img/profile/default/6.png b/assets/img/profile/default/6.png similarity index 100% rename from img/profile/default/6.png rename to assets/img/profile/default/6.png diff --git a/img/profile/default/7.png b/assets/img/profile/default/7.png similarity index 100% rename from img/profile/default/7.png rename to assets/img/profile/default/7.png diff --git a/img/profile/default/8.png b/assets/img/profile/default/8.png similarity index 100% rename from img/profile/default/8.png rename to assets/img/profile/default/8.png diff --git a/img/profile/default/9.png b/assets/img/profile/default/9.png similarity index 100% rename from img/profile/default/9.png rename to assets/img/profile/default/9.png diff --git a/img/tba.png b/assets/img/tba.png similarity index 100% rename from img/tba.png rename to assets/img/tba.png diff --git a/js/chat.js b/assets/js/chat.js similarity index 100% rename from js/chat.js rename to assets/js/chat.js diff --git a/js/functions.js b/assets/js/main.js similarity index 100% rename from js/functions.js rename to assets/js/main.js diff --git a/scss/main.scss b/assets/scss/main.scss similarity index 76% rename from scss/main.scss rename to assets/scss/main.scss index 456fb30..b0ab9dd 100644 --- a/scss/main.scss +++ b/assets/scss/main.scss @@ -3,15 +3,20 @@ // Vendor @import "vendor/normalize"; +@import "vendor/animate"; // Modules @import "modules/breakpoint"; @import "modules/color"; // Partials +@import "partials/avatar"; @import "partials/base"; @import "partials/button"; -@import "partials/float-label"; @import "partials/card"; +@import "partials/casing"; +@import "partials/dropdown"; +@import "partials/float-label"; +@import "partials/header"; @import "partials/login"; @import "partials/utility"; \ No newline at end of file diff --git a/scss/modules/_breakpoint.scss b/assets/scss/modules/_breakpoint.scss similarity index 97% rename from scss/modules/_breakpoint.scss rename to assets/scss/modules/_breakpoint.scss index c84e6b2..ac14225 100644 --- a/scss/modules/_breakpoint.scss +++ b/assets/scss/modules/_breakpoint.scss @@ -1,7 +1,7 @@ -// Breakpoint -// –––––––––––––––––––––––––––––––––––––––––––––––––– - -// Breakpoints -$breakpoint-tablet: 40rem; -$breakpoint-laptop: 80rem; -$breakpoint-desktop: 120rem; +// Breakpoint +// –––––––––––––––––––––––––––––––––––––––––––––––––– + +// Breakpoints +$breakpoint-tablet: 40rem; +$breakpoint-laptop: 80rem; +$breakpoint-desktop: 120rem; diff --git a/scss/modules/_color.scss b/assets/scss/modules/_color.scss similarity index 67% rename from scss/modules/_color.scss rename to assets/scss/modules/_color.scss index 1bcea06..12674b1 100644 --- a/scss/modules/_color.scss +++ b/assets/scss/modules/_color.scss @@ -27,4 +27,15 @@ $color-teal: #20c997 !default; $color-cyan: #17a2b8 !default; // Temp -$color-primary: #54D266; \ No newline at end of file +$color-primary: #54D266; + +$color-primary-100: rgb(180, 255, 191) !default; +$color-primary-200: rgb(128, 240, 144) !default; +$color-primary-300: rgb(115, 230, 132) !default; +$color-primary-400: rgb(94, 219, 112) !default; +$color-primary-500: $color-primary !default; +$color-primary-600: rgb(77, 151, 88) !default; +$color-primary-700: rgb(54, 88, 59) !default; +$color-primary-800: rgb(36, 49, 38) !default; +$color-primary-900: rgb(22, 26, 22) !default; + diff --git a/assets/scss/partials/_avatar.scss b/assets/scss/partials/_avatar.scss new file mode 100644 index 0000000..b331ea0 --- /dev/null +++ b/assets/scss/partials/_avatar.scss @@ -0,0 +1,42 @@ +// Avatar +// --------------------------------------------------------------- + +// Description +// ----------- +// + +// HTML structure +// -------------- +//
+ +.avatar { + background-image: url(/img/backup.png); // Backup default + background-position: center top; + background-size: cover; + background-repeat: no-repeat; + background-color: white; + + border-radius: 50%; + width: 3.2rem; + height: 3.2rem; + + &.-xl { + width: 6.4rem; + height: 6.4rem; + } + + &.-l { + width: 4.8rem; + height: 4.8rem; + } + + &.-s { + width: 2.4rem; + height: 2.4rem; + } + + &.-xs { + width: 1.6rem; + height: 1.6rem; + } +} \ No newline at end of file diff --git a/scss/partials/_base.scss b/assets/scss/partials/_base.scss similarity index 100% rename from scss/partials/_base.scss rename to assets/scss/partials/_base.scss diff --git a/scss/partials/_button.scss b/assets/scss/partials/_button.scss similarity index 98% rename from scss/partials/_button.scss rename to assets/scss/partials/_button.scss index 70f4191..93abd6c 100644 --- a/scss/partials/_button.scss +++ b/assets/scss/partials/_button.scss @@ -22,7 +22,7 @@ %button { display: inline-block; - transition: 0.3s; + transition: 0.3s background-color, 0.3s opacity; border: 1px solid transparent; border-radius: 0.3rem; diff --git a/scss/partials/_card.scss b/assets/scss/partials/_card.scss similarity index 94% rename from scss/partials/_card.scss rename to assets/scss/partials/_card.scss index 7a10ac0..fa162f2 100644 --- a/scss/partials/_card.scss +++ b/assets/scss/partials/_card.scss @@ -1,41 +1,41 @@ -body { - background-color: hsla(214, 30%, 95%, 1); -} - -.card { - - position: relative; - - box-shadow: 0 4px 6px 0 hsla(0, 0%, 0%, 0.2); - border-radius: 2px; - width: 200px; - - overflow: hidden; -} - -.card-image { - width: 100%; - height: 200px; - - background-image: url(/img/tba.png); - background-position: center; - background-size: cover; - background-repeat: no-repeat; - background-color: white; -} - -.card-details { - display: flex; - justify-content: center; - align-items: center; - - position: absolute; - bottom: 0; - - width: 100%; - min-height: 60px; - - background-image: linear-gradient(0deg, hsla(0, 0%, 0%, 0.75), transparent) ; - - color: white; +body { + background-color: hsla(214, 30%, 95%, 1); +} + +.card { + + position: relative; + + box-shadow: 0 4px 6px 0 hsla(0, 0%, 0%, 0.2); + border-radius: 2px; + width: 200px; + + overflow: hidden; +} + +.card-image { + width: 100%; + height: 200px; + + background-image: url(/img/tba.png); + background-position: center; + background-size: cover; + background-repeat: no-repeat; + background-color: white; +} + +.card-details { + display: flex; + justify-content: center; + align-items: center; + + position: absolute; + bottom: 0; + + width: 100%; + min-height: 60px; + + background-image: linear-gradient(0deg, hsla(0, 0%, 0%, 0.75), transparent) ; + + color: white; } \ No newline at end of file diff --git a/assets/scss/partials/_casing.scss b/assets/scss/partials/_casing.scss new file mode 100644 index 0000000..0f48983 --- /dev/null +++ b/assets/scss/partials/_casing.scss @@ -0,0 +1,5 @@ +%casing { + margin: 0 auto; + padding: 2rem; + max-width: 120rem; +} \ No newline at end of file diff --git a/assets/scss/partials/_dropdown.scss b/assets/scss/partials/_dropdown.scss new file mode 100644 index 0000000..a9d7d8b --- /dev/null +++ b/assets/scss/partials/_dropdown.scss @@ -0,0 +1,95 @@ +// Dropdown +// --------------------------------------------------------------- + +// Description +// ----------- +// Simple, infinitly stackable dropdown logic to expanded upon +// with graphics, depending on the needs of your project. +// You can also use visibility instead of display to +// enable keyframes. + +// Variables +// --------- +$list-width: 15rem; // The width of the dropdown list +$list-space: 100%; // The space between list and the activator + +// HTML structure +// -------------- +// + +.dropdown { + position: relative; + + &:hover > .list { + top: $list-space; + left: 0; + } + + .dropdown:hover > .list { + top: 0; + left: 100%; + } + + + &.-left { + // 1. Removing default + &:hover > .list { + right: 0; + left: unset; // 1 + } + + // 1. Removing default + .dropdown:hover > .list { + right: 100%; + left: unset; // 1 + } + } + + &:hover > .list { + display: block; + animation: fadeInUp 0.2s; + } +} + +.list { + position: absolute; + + display: none; + + padding: 0.5rem; + border-radius: 1.2rem; + width: $list-width; + + background-color: $color-gray-900; +} + +.list > * { + display: block; +} + +.list > a { + border-radius: 1rem; + padding: 0.5rem 2rem 0.75rem; + + text-decoration-line: none; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + font-weight: 500; + color: $color-gray-500; +} + +.list > a:hover { + background-color: $color-gray-800; + + color: $color-gray-300; +} + diff --git a/scss/partials/_float-label.scss b/assets/scss/partials/_float-label.scss similarity index 95% rename from scss/partials/_float-label.scss rename to assets/scss/partials/_float-label.scss index fb2a2fc..380192e 100644 --- a/scss/partials/_float-label.scss +++ b/assets/scss/partials/_float-label.scss @@ -1,32 +1,32 @@ -// Float label -// –––––––––––––––––––––––––––––––––––––––––––––––––– - -.float-label { - position: relative; -} - -.float-label > input { - padding: 1.8rem 2.4rem 1.6rem; -} - -.float-label > label { - position: absolute; - top: 50%; - left: 2.4rem; - transform: translateY(-50%); - - opacity: 0; - - transition: opacity 0.3s ease, transform 0.3s ease; - - font-size: 1.2rem; -} - -.float-label input:not(:placeholder-shown) { - padding: 2.4rem 2.4rem 1rem; -} - -.float-label input:not(:placeholder-shown) + label { - transform: translateY( calc(-50% - 1.6rem) ); - opacity: 0.5; +// Float label +// –––––––––––––––––––––––––––––––––––––––––––––––––– + +.float-label { + position: relative; +} + +.float-label > input { + padding: 1.8rem 2.4rem 1.6rem; +} + +.float-label > label { + position: absolute; + top: 50%; + left: 2.4rem; + transform: translateY(-50%); + + opacity: 0; + + transition: opacity 0.3s ease, transform 0.3s ease; + + font-size: 1.2rem; +} + +.float-label input:not(:placeholder-shown) { + padding: 2.4rem 2.4rem 1rem; +} + +.float-label input:not(:placeholder-shown) + label { + transform: translateY( calc(-50% - 1.6rem) ); + opacity: 0.5; } \ No newline at end of file diff --git a/assets/scss/partials/_header.scss b/assets/scss/partials/_header.scss new file mode 100644 index 0000000..a2c7a98 --- /dev/null +++ b/assets/scss/partials/_header.scss @@ -0,0 +1,126 @@ +header { + background-color: $color-gray-800; +} + +// Bar +.bar { + background-color: $color-gray-200; +} + +.bar .xp { + transition: 0.5s width; + + width: 0%; + height: 0.8rem; + + background-color: #ccf0d1; + background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%2354d266' fill-opacity='0.81' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E"); + background-size: contain; +} + +// Header +.header { + justify-content: space-between; + align-items: center; + + display: flex; + + margin: 0 auto; + padding: 2rem; + max-width: 100rem; +} + +.header.-main { + padding-bottom: 16rem; +} + + +// Profile and Dropdown +.header .profile { + align-items: center; + + display: flex; + + padding: 0.5rem 0; + + text-decoration-line: none; +} + +.header .profile .username { + transition: 0.3s color; + + margin-right: 1.2rem; + + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + font-weight: 500; + color: $color-gray-500; +} + +.header .profile:hover .username { + color: $color-gray-300; +} + +.header .profile .username.-active { + color: $color-gray-100; +} + + +// Navigation +nav { + align-items: center; + + display: flex; +} + +nav .item { + transition: 0.3s color; + + text-decoration-line: none; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + font-weight: 500; + color: $color-gray-500; +} + +nav .item:hover { + color: $color-gray-300; +} + +nav .item.-active { + color: $color-gray-100; +} + +nav .item + .item { + margin-left: 4rem; +} + + +// Brand +.header .brand { + justify-content: center; + align-items: center; + + display: flex; + + border-radius: 50%; + width: 5rem; + height: 5rem; + + background-color: $color-gray-100; +} + +.header .brand img { + width: 80%; +} + + +@media (min-width: $breakpoint-tablet) { + +} + +@media (min-width: $breakpoint-laptop) { + +} + +@media (min-width: $breakpoint-desktop) { + +} \ No newline at end of file diff --git a/scss/partials/_login.scss b/assets/scss/partials/_login.scss similarity index 86% rename from scss/partials/_login.scss rename to assets/scss/partials/_login.scss index 74ae3dc..8e9eb33 100644 --- a/scss/partials/_login.scss +++ b/assets/scss/partials/_login.scss @@ -1,109 +1,113 @@ -.login-wrapper { - display: flex; -} - -.login-container { - align-items: center; - z-index: 1000; - - display: flex; - - box-shadow: 0 0 6px 0 hsla(0, 0%, 0%, 0.2), 0 0 12px 0 hsla(0, 0%, 0%, 0.2); - width: 100%; -} - -.login { - width: 100%; -} - -.login-title-container { - margin: 0 auto 2rem; - padding: 0 2rem; - max-width: 40rem; -} - -.login-title { - display: inline-block; - opacity: 0.8; - - margin: 0; - border-bottom: 0.3rem solid $color-primary; -} - -.login .login-input, .login .login-controllers { - margin: 0 auto; - padding: 0 2rem; - max-width: 40rem; -} - -.login input[type=password], .login input[type=email] { - margin-bottom: 1rem; - box-shadow: inset 0.1rem 0.1rem hsla(0, 0%, 0%, 0.10), 0 -0.1rem 0 hsla(0, 0%, 100%, 0.15); - border-radius: 5000rem; - border: none; - width: 100%; -} - -.login input:focus { - outline: none; -} - -.login input[type=submit] { - position: relative; - - border-radius: 5000rem; - - cursor: pointer; -} - -.image { - position: absolute; - top: 50%; - left: 1.4rem; - transform: translateY(-50%); - - - width: 2.4rem; - - vertical-align: top; -} - -.marg-left { - margin-left: 1rem; -} - -.login-controllers { - justify-content: flex-end; - - display: flex; -} - -.login-image { - display: none; - - background-image: url(/img/login.jpg); - background-position: left center; - background-size: cover; - background-repeat: no-repeat; - background-color: white; -} - -.login-fail { - margin: 0 auto; - padding: 0 2rem; - max-width: 40rem; -} - - -@media (min-width: 60rem) { - .login-container { - min-width: 50rem; - max-width: 38.2%; - } - - .login-image { - display: block; - - width: 61.8%; - } +.login-wrapper { + display: flex; +} + +.login-container { + align-items: center; + z-index: 1000; + + display: flex; + + box-shadow: 0 0 6px 0 hsla(0, 0%, 0%, 0.2), 0 0 12px 0 hsla(0, 0%, 0%, 0.2); + width: 100%; +} + +.login { + width: 100%; +} + +.login-title-container { + margin: 0 auto 2rem; + padding: 0 2rem; + max-width: 40rem; +} + +.login-title { + display: inline-block; + opacity: 0.8; + + margin: 0; + border-bottom: 0.3rem solid $color-primary; +} + +.login .login-input, .login .login-controllers { + margin: 0 auto; + padding: 0 2rem; + max-width: 40rem; +} + +.login input[type=password], .login input[type=email] { + margin-bottom: 1rem; + box-shadow: inset 0.1rem 0.1rem hsla(0, 0%, 0%, 0.10), 0 -0.1rem 0 hsla(0, 0%, 100%, 0.15); + border-radius: 5000rem; + border: none; + width: 100%; +} + +.login input:focus { + outline: none; +} + +.login input[type=submit] { + position: relative; + + border-radius: 5000rem; + + cursor: pointer; +} + +.image { + position: absolute; + top: 50%; + left: 1.4rem; + transform: translateY(-50%); + + + width: 2.4rem; + + vertical-align: top; +} + +.marg-left { + margin-left: 1rem; +} + +.login-controllers { + justify-content: flex-end; + + display: flex; +} + +.login-controllers > * + * { + margin-left: 0.5rem; +} + +.login-controllers * { + border-radius: 500rem; + + text-decoration-line: none; +} + +.login-image { + display: none; + + background-image: url(/img/login.jpg); + background-position: left center; + background-size: cover; + background-repeat: no-repeat; + background-color: white; +} + + +@media (min-width: 60rem) { + .login-container { + min-width: 50rem; + max-width: 38.2%; + } + + .login-image { + display: block; + + width: 61.8%; + } } \ No newline at end of file diff --git a/scss/partials/_utility.scss b/assets/scss/partials/_utility.scss similarity index 100% rename from scss/partials/_utility.scss rename to assets/scss/partials/_utility.scss diff --git a/assets/scss/vendor/_animate.scss b/assets/scss/vendor/_animate.scss new file mode 100644 index 0000000..dac48f1 --- /dev/null +++ b/assets/scss/vendor/_animate.scss @@ -0,0 +1,3623 @@ +@charset "UTF-8"; + +/*! + * animate.css -http://daneden.me/animate + * Version - 3.7.0 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2018 Daniel Eden + */ + +@-webkit-keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} + +@keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} + +@-webkit-keyframes flash { + from, + 50%, + to { + opacity: 1; + } + + 25%, + 75% { + opacity: 0; + } +} + +@keyframes flash { + from, + 50%, + to { + opacity: 1; + } + + 25%, + 75% { + opacity: 0; + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} + +@-webkit-keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +@keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +.headShake { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-name: headShake; + animation-name: headShake; +} + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} + +@-webkit-keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} + +@-webkit-keyframes jello { + from, + 11.1%, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} + +@keyframes jello { + from, + 11.1%, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} + +.jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center; +} + +@-webkit-keyframes heartBeat { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 14% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 28% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 42% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 70% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes heartBeat { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 14% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 28% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 42% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 70% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +.heartBeat { + -webkit-animation-name: heartBeat; + animation-name: heartBeat; + -webkit-animation-duration: 1.3s; + animation-duration: 1.3s; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; +} + +@-webkit-keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.bounceIn { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} + +.bounceOut { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +@keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes fadeOutDownBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes fadeOutLeft { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes fadeOutLeftBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes fadeOutRight { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes fadeOutRightBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes fadeOutUpBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flip { + from { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + to { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +@keyframes flip { + from { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + to { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} + +@-webkit-keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + from { + opacity: 1; + } + + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +@keyframes lightSpeedOut { + from { + opacity: 1; + } + + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; + -webkit-animation-name: hinge; + animation-name: hinge; +} + +@-webkit-keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + } + + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + } + + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + } + + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + } + + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +.jackInTheBox { + -webkit-animation-name: jackInTheBox; + animation-name: jackInTheBox; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +@keyframes rollOut { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 50% { + opacity: 1; + } +} + +@keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 50% { + opacity: 1; + } +} + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + from { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + to { + opacity: 0; + } +} + +@keyframes zoomOut { + from { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + to { + opacity: 0; + } +} + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + +@-webkit-keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +.animated.delay-1s { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} + +.animated.delay-2s { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} + +.animated.delay-3s { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} + +.animated.delay-4s { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} + +.animated.delay-5s { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} + +.animated.fast { + -webkit-animation-duration: 800ms; + animation-duration: 800ms; +} + +.animated.faster { + -webkit-animation-duration: 500ms; + animation-duration: 500ms; +} + +.animated.slow { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} + +.animated.slower { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +@media (print), (prefers-reduced-motion) { + .animated { + -webkit-animation: unset !important; + animation: unset !important; + -webkit-transition: none !important; + transition: none !important; + } +} diff --git a/scss/vendor/_normalize.scss b/assets/scss/vendor/_normalize.scss similarity index 96% rename from scss/vendor/_normalize.scss rename to assets/scss/vendor/_normalize.scss index 4d5d1a5..b7cd4af 100644 --- a/scss/vendor/_normalize.scss +++ b/assets/scss/vendor/_normalize.scss @@ -1,242 +1,242 @@ -// Document -// –––––––––––––––––––––––––––––––––––––––––––––––––– - -// 1. Correct the line height in all browsers. -// 2. Prevent adjustments of font size after orientation changes in iOS. - -html { - line-height: 1.15; // 1 - -webkit-text-size-adjust: 100%; // 2 -} - -// Sections -// –––––––––––––––––––––––––––––––––––––––––––––––––– - -// Remove the margin in all browsers. -body { - margin: 0; -} - -// Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -// Grouping content -// –––––––––––––––––––––––––––––––––––––––––––––––––– - -// 1. Add the correct box sizing in Firefox. -// 2. Show the overflow in Edge and IE. -hr { - box-sizing: content-box; // 1 - height: 0; // 1 - overflow: visible; // 2 -} - -// 1. Correct the inheritance and scaling of font size in all browsers. -// 2. Correct the odd `em` font sizing in all browsers. -pre { - font-family: monospace, monospace; // 1 - font-size: 1em; // 2 -} - -// Text-level semantics -// –––––––––––––––––––––––––––––––––––––––––––––––––– - -// Remove the gray background on active links in IE 10. -a { - background-color: transparent; -} - -// 1. Remove the bottom border in Chrome 57- -// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. -abbr[title] { - border-bottom: none; // 1 - text-decoration: underline; // 2 - text-decoration: underline dotted; // 2 -} - -// Add the correct font weight in Chrome, Edge, and Safari. -b, -strong { - font-weight: bolder; -} - -// 1. Correct the inheritance and scaling of font size in all browsers. -// 2. Correct the odd `em` font sizing in all browsers. -code, -kbd, -samp { - font-family: monospace, monospace; // 1 - font-size: 1em; // 2 -} - -// Add the correct font size in all browsers. -small { - font-size: 80%; -} - -// Prevent `sub` and `sup` elements from affecting the line height in all browsers. -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -// Embedded content -// –––––––––––––––––––––––––––––––––––––––––––––––––– - -// Remove the border on images inside links in IE 10. -img { - border-style: none; -} - -// Forms -// –––––––––––––––––––––––––––––––––––––––––––––––––– - -// 1. Change the font styles in all browsers. -// 2. Remove the margin in Firefox and Safari. -button, -input, -optgroup, -select, -textarea { - font-family: inherit; // 1 - font-size: 100%; // 1 - line-height: 1.15; // 1 - margin: 0; // 2 -} - -// Show the overflow in IE and Edge. -button, -input { - overflow: visible; -} - -// Remove the inheritance of text transform in Edge, Firefox, and IE. -button, -select { - text-transform: none; -} - -// Correct the inability to style clickable types in iOS and Safari. -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -// Remove the inner border and padding in Firefox. -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -// Restore the focus styles unset by the previous rule. -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -// Correct the padding in Firefox. -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -// 1. Correct the text wrapping in Edge and IE. -// 2. Correct the color inheritance from `fieldset` elements in IE. -// 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. -legend { - box-sizing: border-box; // 1 - color: inherit; // 2 - display: table; // 1 - max-width: 100%; // 1 - padding: 0; // 3 - white-space: normal; // 1 -} - -// Add the correct vertical alignment in Chrome, Firefox, and Opera. -progress { - vertical-align: baseline; -} - -// Remove the default vertical scrollbar in IE 10+. -textarea { - overflow: auto; -} - -// 1. Add the correct box sizing in IE 10. -// 2. Remove the padding in IE 10. -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; // 1 - padding: 0; // 2 -} - -// Correct the cursor style of increment and decrement buttons in Chrome. -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -// 1. Correct the odd appearance in Chrome and Safari. -// 2. Correct the outline style in Safari. -[type="search"] { - -webkit-appearance: textfield; // 1 - outline-offset: -2px; // 2 -} - -// Remove the inner padding in Chrome and Safari on macOS. -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -// 1. Correct the inability to style clickable types in iOS and Safari. -// 2. Change font properties to `inherit` in Safari. -::-webkit-file-upload-button { - -webkit-appearance: button; // 1 - font: inherit; // 2 -} - -// Interactive -// –––––––––––––––––––––––––––––––––––––––––––––––––– - -// Add the correct display in Edge, IE 10+, and Firefox. -details { - display: block; -} - -// Add the correct display in all browsers. -summary { - display: list-item; -} - -// Misc -// –––––––––––––––––––––––––––––––––––––––––––––––––– - -// Add the correct display in IE 10+. -template { - display: none; -} - -// Add the correct display in IE 10. -[hidden] { - display: none; -} +// Document +// –––––––––––––––––––––––––––––––––––––––––––––––––– + +// 1. Correct the line height in all browsers. +// 2. Prevent adjustments of font size after orientation changes in iOS. + +html { + line-height: 1.15; // 1 + -webkit-text-size-adjust: 100%; // 2 +} + +// Sections +// –––––––––––––––––––––––––––––––––––––––––––––––––– + +// Remove the margin in all browsers. +body { + margin: 0; +} + +// Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +// Grouping content +// –––––––––––––––––––––––––––––––––––––––––––––––––– + +// 1. Add the correct box sizing in Firefox. +// 2. Show the overflow in Edge and IE. +hr { + box-sizing: content-box; // 1 + height: 0; // 1 + overflow: visible; // 2 +} + +// 1. Correct the inheritance and scaling of font size in all browsers. +// 2. Correct the odd `em` font sizing in all browsers. +pre { + font-family: monospace, monospace; // 1 + font-size: 1em; // 2 +} + +// Text-level semantics +// –––––––––––––––––––––––––––––––––––––––––––––––––– + +// Remove the gray background on active links in IE 10. +a { + background-color: transparent; +} + +// 1. Remove the bottom border in Chrome 57- +// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. +abbr[title] { + border-bottom: none; // 1 + text-decoration: underline; // 2 + text-decoration: underline dotted; // 2 +} + +// Add the correct font weight in Chrome, Edge, and Safari. +b, +strong { + font-weight: bolder; +} + +// 1. Correct the inheritance and scaling of font size in all browsers. +// 2. Correct the odd `em` font sizing in all browsers. +code, +kbd, +samp { + font-family: monospace, monospace; // 1 + font-size: 1em; // 2 +} + +// Add the correct font size in all browsers. +small { + font-size: 80%; +} + +// Prevent `sub` and `sup` elements from affecting the line height in all browsers. +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +// Embedded content +// –––––––––––––––––––––––––––––––––––––––––––––––––– + +// Remove the border on images inside links in IE 10. +img { + border-style: none; +} + +// Forms +// –––––––––––––––––––––––––––––––––––––––––––––––––– + +// 1. Change the font styles in all browsers. +// 2. Remove the margin in Firefox and Safari. +button, +input, +optgroup, +select, +textarea { + font-family: inherit; // 1 + font-size: 100%; // 1 + line-height: 1.15; // 1 + margin: 0; // 2 +} + +// Show the overflow in IE and Edge. +button, +input { + overflow: visible; +} + +// Remove the inheritance of text transform in Edge, Firefox, and IE. +button, +select { + text-transform: none; +} + +// Correct the inability to style clickable types in iOS and Safari. +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +// Remove the inner border and padding in Firefox. +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +// Restore the focus styles unset by the previous rule. +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +// Correct the padding in Firefox. +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +// 1. Correct the text wrapping in Edge and IE. +// 2. Correct the color inheritance from `fieldset` elements in IE. +// 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. +legend { + box-sizing: border-box; // 1 + color: inherit; // 2 + display: table; // 1 + max-width: 100%; // 1 + padding: 0; // 3 + white-space: normal; // 1 +} + +// Add the correct vertical alignment in Chrome, Firefox, and Opera. +progress { + vertical-align: baseline; +} + +// Remove the default vertical scrollbar in IE 10+. +textarea { + overflow: auto; +} + +// 1. Add the correct box sizing in IE 10. +// 2. Remove the padding in IE 10. +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; // 1 + padding: 0; // 2 +} + +// Correct the cursor style of increment and decrement buttons in Chrome. +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +// 1. Correct the odd appearance in Chrome and Safari. +// 2. Correct the outline style in Safari. +[type="search"] { + -webkit-appearance: textfield; // 1 + outline-offset: -2px; // 2 +} + +// Remove the inner padding in Chrome and Safari on macOS. +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +// 1. Correct the inability to style clickable types in iOS and Safari. +// 2. Change font properties to `inherit` in Safari. +::-webkit-file-upload-button { + -webkit-appearance: button; // 1 + font: inherit; // 2 +} + +// Interactive +// –––––––––––––––––––––––––––––––––––––––––––––––––– + +// Add the correct display in Edge, IE 10+, and Firefox. +details { + display: block; +} + +// Add the correct display in all browsers. +summary { + display: list-item; +} + +// Misc +// –––––––––––––––––––––––––––––––––––––––––––––––––– + +// Add the correct display in IE 10+. +template { + display: none; +} + +// Add the correct display in IE 10. +[hidden] { + display: none; +} diff --git a/css/main.css b/css/main.css deleted file mode 100644 index 61d8a58..0000000 --- a/css/main.css +++ /dev/null @@ -1,453 +0,0 @@ -html { - line-height: 1.15; - -webkit-text-size-adjust: 100%; } - -body { - margin: 0; } - -h1 { - font-size: 2em; - margin: 0.67em 0; } - -hr { - box-sizing: content-box; - height: 0; - overflow: visible; } - -pre { - font-family: monospace, monospace; - font-size: 1em; } - -a { - background-color: transparent; } - -abbr[title] { - border-bottom: none; - text-decoration: underline; - text-decoration: underline dotted; } - -b, -strong { - font-weight: bolder; } - -code, -kbd, -samp { - font-family: monospace, monospace; - font-size: 1em; } - -small { - font-size: 80%; } - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sub { - bottom: -0.25em; } - -sup { - top: -0.5em; } - -img { - border-style: none; } - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - font-size: 100%; - line-height: 1.15; - margin: 0; } - -button, -input { - overflow: visible; } - -button, -select { - text-transform: none; } - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; } - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; } - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; } - -fieldset { - padding: 0.35em 0.75em 0.625em; } - -legend { - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; } - -progress { - vertical-align: baseline; } - -textarea { - overflow: auto; } - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; - padding: 0; } - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; } - -[type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; } - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; } - -details { - display: block; } - -summary { - display: list-item; } - -template { - display: none; } - -[hidden] { - display: none; } - -*, -*:after, -*:before { - box-sizing: inherit; } - -html { - box-sizing: border-box; - font-size: 62.5%; } - -body { - flex-direction: column; - display: flex; - min-height: 100vh; - font-size: 1.6em; - line-height: 1.6; - font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif; - font-weight: 300; - letter-spacing: 0.01em; } - -main { - flex: 1; } - -.button-text, .button-outlined, .button-contained, .button-toggle { - display: inline-block; - transition: 0.3s; - border: 1px solid transparent; - border-radius: 0.3rem; - padding: 1rem 1.6rem 0.9rem; - user-select: none; - font-size: 1.4rem; - font-weight: 700; - text-align: center; - vertical-align: top; - text-transform: uppercase; - letter-spacing: 0.15rem; } - .button-text:focus, .button-outlined:focus, .button-contained:focus, .button-toggle:focus { - outline: 0; } - [disabled].button-text, [disabled].button-outlined, [disabled].button-contained, [disabled].button-toggle { - pointer-events: none; - color: #6c757d; } - -.button-text:hover, .button-outlined:hover, .button-toggle:hover { - background-color: rgba(131, 163, 136, 0.05); } -.button-text .active, .button-outlined .active, .button-toggle .active, .button-text:active, .button-outlined:active, .button-toggle:active, .button-text:focus, .button-outlined:focus, .button-toggle:focus, .button-text:checked, .button-outlined:checked, .button-toggle:checked { - background-color: rgba(131, 163, 136, 0.11); } - -.button-contained:hover { - background-color: #65d775; } -.button-contained .active, .button-contained:active, .button-contained:focus, .button-contained:checked { - background-color: #3dcc51; } -[disabled].button-contained { - background-color: #dee2e6; } - -.button-text { - background-color: transparent; - color: #54D266; } - -.button-outlined { - border-color: #ced4da; - background-color: transparent; - color: #54D266; } - -.button-contained { - background-color: #54D266; - color: white; } - -.button-toggle { - border-color: #ced4da; - padding: 0.8rem 1rem 0.7rem; - min-width: 4.1rem; - height: 4.1rem; - background-color: transparent; } - .button-toggle > img, .button-toggle > svg { - transform: translateY(0.5rem); - margin-top: -1rem; - width: 2rem; - height: 2rem; } - -.button-group { - display: inline-flex; } - .button-group > *:not(:first-child) { - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .button-group > *:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - -.button-ripple { - position: relative; - overflow: hidden; - transform: translate3d(0, 0, 0); } - .button-ripple:after { - content: ""; - display: block; - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; - pointer-events: none; - background-image: radial-gradient(circle, #b9d9be 10%, transparent 10.01%); - background-repeat: no-repeat; - background-position: 50%; - transform: scale(10, 10); - opacity: 0; - transition: transform 0.5s, opacity 1s; } - .button-ripple:active:after { - transform: scale(0, 0); - opacity: 0.3; - transition: 0s; } - -.button-block { - width: 100%; } - -.float-label { - position: relative; } - -.float-label > input { - padding: 1.8rem 2.4rem 1.6rem; } - -.float-label > label { - position: absolute; - top: 50%; - left: 2.4rem; - transform: translateY(-50%); - opacity: 0; - transition: opacity 0.3s ease, transform 0.3s ease; - font-size: 1.2rem; } - -.float-label input:not(:placeholder-shown) { - padding: 2.4rem 2.4rem 1rem; } - -.float-label input:not(:placeholder-shown) + label { - transform: translateY(calc(-50% - 1.6rem)); - opacity: 0.5; } - -body { - background-color: #eef2f6; } - -.card { - position: relative; - box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.2); - border-radius: 2px; - width: 200px; - overflow: hidden; } - -.card-image { - width: 100%; - height: 200px; - background-image: url(/img/tba.png); - background-position: center; - background-size: cover; - background-repeat: no-repeat; - background-color: white; } - -.card-details { - display: flex; - justify-content: center; - align-items: center; - position: absolute; - bottom: 0; - width: 100%; - min-height: 60px; - background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.75), transparent); - color: white; } - -.login-wrapper { - display: flex; } - -.login-container { - align-items: center; - z-index: 1000; - display: flex; - box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2), 0 0 12px 0 rgba(0, 0, 0, 0.2); - width: 100%; } - -.login { - width: 100%; } - -.login-title-container { - margin: 0 auto 2rem; - padding: 0 2rem; - max-width: 40rem; } - -.login-title { - display: inline-block; - opacity: 0.8; - margin: 0; - border-bottom: 0.3rem solid #54D266; } - -.login .login-input, .login .login-controllers { - margin: 0 auto; - padding: 0 2rem; - max-width: 40rem; } - -.login input[type=password], .login input[type=email] { - margin-bottom: 1rem; - box-shadow: inset 0.1rem 0.1rem rgba(0, 0, 0, 0.1), 0 -0.1rem 0 rgba(255, 255, 255, 0.15); - border-radius: 5000rem; - border: none; - width: 100%; } - -.login input:focus { - outline: none; } - -.login input[type=submit] { - position: relative; - border-radius: 5000rem; - cursor: pointer; } - -.image { - position: absolute; - top: 50%; - left: 1.4rem; - transform: translateY(-50%); - width: 2.4rem; - vertical-align: top; } - -.marg-left { - margin-left: 1rem; } - -.login-controllers { - justify-content: flex-end; - display: flex; } - -.login-image { - display: none; - background-image: url(/img/login.jpg); - background-position: left center; - background-size: cover; - background-repeat: no-repeat; - background-color: white; } - -.login-fail { - margin: 0 auto; - padding: 0 2rem; - max-width: 40rem; } - -@media (min-width: 60rem) { - .login-container { - min-width: 50rem; - max-width: 38.2%; } - - .login-image { - display: block; - width: 61.8%; } } -.float-left { - float: left; } - -.float-right { - float: right; } - -.clearfix::after { - content: " "; - clear: both; - display: table; } - -/*# sourceMappingURL=main.css.map */ - - -/* - * Added the part for the chat after this needs to be changed/replaced/fixed - */ - - *, - *:before, - *:after { - box-sizing: inherit; -} - -/*Chat styling*/ -.chatcontainer { - display: flex; - justify-content: center; - align-items: center; -} - -.userSettings { - margin-bottom: 20px; -} - -.chat { - max-width: 400px; - display: flex; - flex-direction: row; - flex-wrap: wrap; -} - -.chat #chatOutput { - overflow-y: scroll; - height: 280px; - width: 100%; - border: 1px solid #777; -} - -.chat #chatOutput p { - margin: 0; - padding: 5px; - border-bottom: 1px solid #bbb; - word-break: break-all; -} - -.chat #chatInput { - width: 75%; -} - -.chat #chatSend { - width: 25%; -} \ No newline at end of file diff --git a/css/main.css.map b/css/main.css.map deleted file mode 100644 index de68354..0000000 --- a/css/main.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "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", -"sources": ["../scss/vendor/_normalize.scss","../scss/partials/_base.scss","../scss/partials/_button.scss","../scss/modules/_color.scss","../scss/partials/_float-label.scss","../scss/partials/_card.scss","../scss/partials/_login.scss","../scss/partials/_utility.scss"], -"names": [], -"file": "main.css" -} diff --git a/gamepage.php b/gamepage.php index 678377c..8677541 100644 --- a/gamepage.php +++ b/gamepage.php @@ -42,8 +42,6 @@
- - - - - -
- - -
- - - - - - - -
- - - -
- -
- -
- - - - \ No newline at end of file diff --git a/gamesite_db.sql b/gamesite_db.sql index 6c96a04..76db594 100644 --- a/gamesite_db.sql +++ b/gamesite_db.sql @@ -3,7 +3,7 @@ -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 --- Generation Time: 11. Mar, 2019 19:39 PM +-- Generation Time: 14. Mar, 2019 20:01 PM -- Server-versjon: 10.1.29-MariaDB -- PHP Version: 7.2.0 @@ -29,7 +29,10 @@ SET time_zone = "+00:00"; -- CREATE TABLE `achievements` ( - `id` int(11) NOT NULL + `id` int(11) NOT NULL, + `title` varchar(50) NOT NULL, + `text` varchar(255) NOT NULL, + `game_id` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- @@ -55,8 +58,8 @@ INSERT INTO `friend_list` (`id`, `user_1`, `user_2`, `status`) VALUES (96, 1, 12, 1), (98, 1, 3, 1), (100, 1, 1, 1), -(101, 1, 16, 0), -(102, 1, 14, 0); +(102, 1, 14, 0), +(103, 1, 17, 0); -- -------------------------------------------------------- @@ -115,7 +118,7 @@ CREATE TABLE `ratings` ( -- INSERT INTO `ratings` (`id`, `game_id`, `user_id`, `score`) VALUES -(11, 1, 1, 1), +(11, 1, 1, 4), (12, 2, 1, 5), (14, 3, 1, 4), (15, 4, 1, 5), @@ -147,14 +150,13 @@ CREATE TABLE `users` ( -- INSERT INTO `users` (`id`, `email`, `username`, `password`, `first_name`, `middle_name`, `last_name`, `user_image`, `joined`, `privilege_level`) VALUES -(1, 'hehe@willi.no', 'WilliWonka', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'Willy', 'Wonka', 'Wonksensen', '1.png', '2019-01-23', 1), +(1, 'hehe@willi.no', 'WilliWonka', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'Willy', 'Wonkas', 'Wonksensen', '1.png', '2019-01-23', 1), (2, 'Derp@Derpesen.no', 'Derperud', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'Dermont', 'Derp', 'Derperud', '3.png', '2019-01-23', 0), -(3, 'heman@willi.no', 'heman', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'misterio', 'universio', 'Wonkondo', '2.png', '2019-01-23', 0), +(3, 'heman@willi.no', 'heman', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'misterio', 'universido', 'Wonkondo', '2.png', '2019-01-23', 0), (10, 'qwert@lol.mon', 'WilliWonkabob', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'asdoln', 'dolnes', 'papa', '1.png', '2019-02-08', 0), (12, 'qwert@lol.mon', 'WilliWonkabobdsd', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'asdoln', 'dolnes', 'papa', '1.png', '2019-02-08', 0), (13, 'qwert@lol.mon', 'WilliWonkabobdsd', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'asdoln', 'dolnes', 'papa', '1.png', '2019-02-08', 0), (14, 'qwert@lol.mon', 'WilliWonkabobdsdsdsd', '$2y$10$JKhFJm5uGNYIL/qCWJY2bO.3vEOY8pW3n7t6qtzrmBvE69J7sDU82', 'asdoln', 'dolnes', 'papa', '1.png', '2019-02-08', 0), -(16, 'vovje@livve.no', 'JonasGStøre#eFl7B', '$2y$10$HXfGfnEQqrZzrtsUl.44F.YoNtB2DV46aYqS4Z6/8Sy1PohJQic6C', 'qwe', 'wer', 'ert', '1.png', '2019-02-13', 0), (17, 'sadad@asda.aasss', 'vaskens#8Cp3D', '$2y$10$pSdsEy68UZ1wyYl.q/4ldOVp1Gzeqq316ZFSKTvT1VQLCfilbdVDq', 'qwe', 'qwe', 'qwre', '1.png', '2019-02-13', 0); -- -------------------------------------------------------- @@ -166,8 +168,8 @@ INSERT INTO `users` (`id`, `email`, `username`, `password`, `first_name`, `middl CREATE TABLE `user_activity` ( `id` int(11) NOT NULL, `act` varchar(25) NOT NULL, - `user_id` varchar(100) NOT NULL, - `target_id` varchar(100) NOT NULL, + `user_id` int(11) NOT NULL, + `target_id` int(11) NOT NULL, `type` varchar(25) NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=latin1; @@ -177,44 +179,25 @@ CREATE TABLE `user_activity` ( -- INSERT INTO `user_activity` (`id`, `act`, `user_id`, `target_id`, `type`, `date`) VALUES -(1, 'delete', '', '16', 'users', '2019-02-09 19:09:01'), -(2, 'update', '1', '94', 'friend_list', '2019-02-11 16:54:52'), -(3, 'update', '1', '96', 'friend_list', '2019-02-11 16:55:47'), -(4, 'update', '1', '97', 'friend_list', '2019-02-11 16:55:49'), -(5, 'update', '1', '95', 'friend_list', '2019-02-11 16:55:52'), -(6, 'update', '1', '98', 'friend_list', '2019-02-11 19:16:50'), -(7, 'update', '1', '98', 'friend_list', '2019-02-11 19:50:12'), -(8, 'update', '1', '94', 'friend_list', '2019-02-11 19:50:17'), -(9, 'update', '1', '97', 'friend_list', '2019-02-11 19:50:20'), -(10, 'update', '1', '95', 'friend_list', '2019-02-11 23:33:39'), -(11, 'update', '1', '96', 'friend_list', '2019-02-12 14:48:09'), -(12, 'update', '1', '95', 'friend_list', '2019-02-12 15:07:18'), -(13, 'update', '1', '96', 'friend_list', '2019-02-12 15:07:24'), -(14, 'delete', '1', '97', 'friend_list', '2019-02-12 15:07:27'), -(15, 'update', '1', '98', 'friend_list', '2019-02-12 15:07:29'), -(16, 'delete', '1', '99', 'friend_list', '2019-02-12 15:07:30'), -(17, 'create', '16', '16', 'users', '2019-02-13 14:04:57'), -(18, 'create', '17', '17', 'users', '2019-02-13 18:54:23'), -(19, 'update', '1', '100', 'friend_list', '2019-02-25 20:14:36'), -(20, 'delete', '1', '15', 'users', '2019-02-25 20:16:40'), -(21, 'create', '1', '0', 'user_chat', '2019-03-10 15:39:41'), -(22, 'create', '1', '0', 'user_chat', '2019-03-10 15:40:50'), -(23, 'create', '1', '0', 'user_chat', '2019-03-10 15:42:42'), -(24, 'create', '1', '0', 'user_chat', '2019-03-10 15:44:10'), -(25, 'create', '1', '0', 'user_chat', '2019-03-10 15:44:53'), -(26, 'create', '1', '0', 'user_chat', '2019-03-10 15:47:46'), -(27, 'create', '1', '0', 'user_chat', '2019-03-10 15:48:08'), -(28, 'create', '1', '0', 'user_chat', '2019-03-10 15:49:37'), -(29, 'create', '1', '0', 'user_chat', '2019-03-10 15:50:34'), -(30, 'create', '1', '0', 'user_chat', '2019-03-10 15:50:49'), -(31, 'create', '1', '0', 'user_chat', '2019-03-10 15:53:21'), -(32, 'update', '1', '11', 'ratings', '2019-03-10 16:05:46'), -(33, 'update', '1', '11', 'ratings', '2019-03-10 16:05:48'), -(34, 'update', '1', '11', 'ratings', '2019-03-10 16:05:50'), -(35, 'update', '1', '11', 'ratings', '2019-03-10 16:05:53'), -(36, 'update', '1', '11', 'ratings', '2019-03-10 16:05:55'), -(37, 'create', '1', '0', 'user_chat', '2019-03-10 16:37:16'), -(38, 'create', '1', '0', 'user_chat', '2019-03-10 17:26:18'); +(42, 'update', 1, 11, 'ratings', '2019-03-14 18:23:25'), +(43, 'update', 1, 11, 'ratings', '2019-03-14 18:23:26'), +(44, 'create', 1, 0, 'user_chat', '2019-03-14 18:27:07'), +(45, 'create', 1, 2, 'user_chat', '2019-03-14 18:33:08'), +(46, 'create', 1, 3, 'user_chat', '2019-03-14 18:33:11'), +(47, 'create', 1, 4, 'user_chat', '2019-03-14 18:37:46'), +(48, 'create', 1, 5, 'user_chat', '2019-03-14 18:38:15'), +(49, 'create', 1, 6, 'user_chat', '2019-03-14 18:38:55'), +(50, 'create', 1, 7, 'user_chat', '2019-03-14 18:38:57'), +(51, 'create', 1, 8, 'user_chat', '2019-03-14 18:39:01'), +(52, 'create', 1, 9, 'user_chat', '2019-03-14 18:39:04'), +(53, 'update', 1, 98, 'friend_list', '2019-03-14 18:40:06'), +(54, 'create', 1, 10, 'user_chat', '2019-03-14 18:45:57'), +(55, 'create', 1, 11, 'user_chat', '2019-03-14 18:46:22'), +(56, 'update', 1, 1, 'users', '2019-03-14 18:54:50'), +(57, 'update', 1, 1, 'users', '2019-03-14 18:54:53'), +(58, 'delete', 1, 16, 'users', '2019-03-14 18:59:30'), +(59, 'update', 1, 3, 'users', '2019-03-14 18:59:51'), +(60, 'update', 1, 3, 'users', '2019-03-14 18:59:54'); -- -------------------------------------------------------- @@ -231,6 +214,19 @@ CREATE TABLE `user_chat` ( `text` varchar(200) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; +-- +-- Dataark for tabell `user_chat` +-- + +INSERT INTO `user_chat` (`id`, `game_id`, `user_id`, `username`, `time`, `text`) VALUES +(5, 2, 1, 'WilliWonka', '2019-03-14 19:38:15', 'fgdgdfgf'), +(6, 2, 1, 'WilliWonka', '2019-03-14 19:38:55', 'sadasd'), +(7, 2, 1, 'WilliWonka', '2019-03-14 19:38:57', 'sadsadd'), +(8, 5, 1, 'WilliWonka', '2019-03-14 19:39:01', 'asdasd'), +(9, 5, 1, 'WilliWonka', '2019-03-14 19:39:04', 'asdasd'), +(10, 0, 1, 'WilliWonka', '2019-03-14 19:45:57', 'Hello'), +(11, 2, 1, 'WilliWonka', '2019-03-14 19:46:22', 'sadsadsad'); + -- -- Indexes for dumped tables -- @@ -239,13 +235,23 @@ CREATE TABLE `user_chat` ( -- Indexes for table `achievements` -- ALTER TABLE `achievements` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `AchievementsGamesFN` (`game_id`); -- -- Indexes for table `friend_list` -- ALTER TABLE `friend_list` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `UsersFriend_listFN1` (`user_1`), + ADD KEY `UsersFriend_listFN2` (`user_2`); + +-- +-- Indexes for table `gained_achievements` +-- +ALTER TABLE `gained_achievements` + ADD PRIMARY KEY (`id`,`user_id`) USING BTREE, + ADD KEY `Gained_achievementsUserFNs` (`user_id`); -- -- Indexes for table `games` @@ -257,7 +263,8 @@ ALTER TABLE `games` -- Indexes for table `ratings` -- ALTER TABLE `ratings` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `RatingsUserFN` (`user_id`); -- -- Indexes for table `users` @@ -269,7 +276,16 @@ ALTER TABLE `users` -- Indexes for table `user_activity` -- ALTER TABLE `user_activity` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `User_activityUsersFN2` (`target_id`), + ADD KEY `user_id` (`user_id`); + +-- +-- Indexes for table `user_chat` +-- +ALTER TABLE `user_chat` + ADD PRIMARY KEY (`id`), + ADD KEY `User_chatUsersFN` (`user_id`); -- -- AUTO_INCREMENT for dumped tables @@ -285,7 +301,7 @@ ALTER TABLE `achievements` -- AUTO_INCREMENT for table `friend_list` -- ALTER TABLE `friend_list` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=103; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=104; -- -- AUTO_INCREMENT for table `games` @@ -309,7 +325,55 @@ ALTER TABLE `users` -- AUTO_INCREMENT for table `user_activity` -- ALTER TABLE `user_activity` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=39; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=61; + +-- +-- AUTO_INCREMENT for table `user_chat` +-- +ALTER TABLE `user_chat` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12; + +-- +-- Begrensninger for dumpede tabeller +-- + +-- +-- Begrensninger for tabell `achievements` +-- +ALTER TABLE `achievements` + ADD CONSTRAINT `AchievementsGamesFN` FOREIGN KEY (`game_id`) REFERENCES `games` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Begrensninger for tabell `friend_list` +-- +ALTER TABLE `friend_list` + ADD CONSTRAINT `UsersFriend_listFN1` FOREIGN KEY (`user_1`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + ADD CONSTRAINT `UsersFriend_listFN2` FOREIGN KEY (`user_2`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Begrensninger for tabell `gained_achievements` +-- +ALTER TABLE `gained_achievements` + ADD CONSTRAINT `Gained_achievementsAchievementsFNs` FOREIGN KEY (`id`) REFERENCES `achievements` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + ADD CONSTRAINT `Gained_achievementsUserFNs` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Begrensninger for tabell `ratings` +-- +ALTER TABLE `ratings` + ADD CONSTRAINT `RatingsUserFN` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Begrensninger for tabell `user_activity` +-- +ALTER TABLE `user_activity` + ADD CONSTRAINT `User_activityUsersFN1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- +-- Begrensninger for tabell `user_chat` +-- +ALTER TABLE `user_chat` + ADD CONSTRAINT `User_chatUsersFN` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/includes/classes/message.php b/includes/classes/message.php index 1ef0d6b..41958da 100644 --- a/includes/classes/message.php +++ b/includes/classes/message.php @@ -7,7 +7,7 @@ class Message extends Db_object{ protected static $db_table = "user_chat"; //Slik at man kan endre navnet på databasetabellen. //Array skal brukes i properies() og inneholder achivement-variablene til objektet. - protected static $db_table_fields = array('id', 'game_id', 'user_id', 'username', 'text', 'time'); + protected static $db_table_fields = array('game_id', 'user_id', 'username', 'text', 'time'); public $id; public $game_id; public $user_id; diff --git a/includes/classes/user.php b/includes/classes/user.php index 737eb32..8211848 100644 --- a/includes/classes/user.php +++ b/includes/classes/user.php @@ -232,7 +232,7 @@ public static function is_friend($user_id, $friend_id) { // Collects the placement of the game path, used when showing the picture at the list of users. public function get_user_image() { - return "img" . DS . "profile" . DS . "default" . DS . $this->user_image; + return "assets/" . "img/" . "profile/" . "default/" . $this->user_image; } /** diff --git a/includes/helpers/head.php b/includes/helpers/head.php new file mode 100644 index 0000000..9bae14e --- /dev/null +++ b/includes/helpers/head.php @@ -0,0 +1,25 @@ + + + + + + + + + + + + + Game-Site + + + + + + + + + + + + \ No newline at end of file diff --git a/includes/process/write_chat.php b/includes/process/write_chat.php index ad9fec7..f628be8 100644 --- a/includes/process/write_chat.php +++ b/includes/process/write_chat.php @@ -15,6 +15,7 @@ $message->username = $user->username; $message->game_id = substr($_GET["chatId"], 0, 20); + $message->user_id = $session->user_id; $message->text = substr($_GET["text"], 0, 128); $message->time = date("Y-m-d H:i:s"); diff --git a/includes/views/header.php b/includes/views/header.php index b4cb80e..0050bfa 100644 --- a/includes/views/header.php +++ b/includes/views/header.php @@ -3,6 +3,15 @@ $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/gamesite/includes/init.php"; require_once($path); + +// If a user is logged in, collect all information about that user. +if ($session->is_signed_in()) { + $user = User::find_by_id($session->user_id); +} + +// Collects the pagename, is useful when you need to decide what page you are on. +$page = $_SERVER['REQUEST_URI']; +$page = substr($page, 10); ?> @@ -11,56 +20,66 @@ - - - - - - - - - - - - - Game-Site - - - - - - - - - - - - + - -
- Index - List of games - - is_signed_in()) { ?> - - Profile - Upload - Settings - Logout - - user_id)) { ?> - - List of users - - - - - - Login - Register

- - -
+ +
+ +
+
+
+ + +
+ + Brand + + + + + is_signed_in()) { ?> + + + + + + + + + + + +
+
diff --git a/includes/views/self_profile_content.php b/includes/views/self_profile_content.php index 713007b..399b422 100644 --- a/includes/views/self_profile_content.php +++ b/includes/views/self_profile_content.php @@ -33,8 +33,6 @@ ?>
- - diff --git a/includes/views/userchat.php b/includes/views/userchat.php index aab576d..6ace6d1 100644 --- a/includes/views/userchat.php +++ b/includes/views/userchat.php @@ -14,4 +14,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/index.php b/index.php index 48111b6..88c7f90 100644 --- a/index.php +++ b/index.php @@ -1,11 +1,47 @@ - - + +
+ + + +
+ +
+ +
\ No newline at end of file diff --git a/js/main.js b/js/main.js deleted file mode 100644 index 3918c74..0000000 --- a/js/main.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; diff --git a/login.php b/login.php index bacb5cf..9d123a4 100644 --- a/login.php +++ b/login.php @@ -1,29 +1,29 @@ - + is_signed_in()) {redirect("index.php");} + // Hvis man er logget inn blir man sendt til index.php. + if ($session->is_signed_in()) {redirect("index.php");} -if (isset($_POST['submit'])) { - - $email = trim($_POST['email']); - $password = trim($_POST['password']); + if (isset($_POST['submit'])) { + + $email = trim($_POST['email']); + $password = trim($_POST['password']); - //Sjekker om brukeren er i databasen, ved metode som ligger i User-klassen(user.php) - $user_found = User::verify_user($email, $password); + //Sjekker om brukeren er i databasen, ved metode som ligger i User-klassen(user.php) + $user_found = User::verify_user($email, $password); - if ($user_found) { - - //tar i bruk login() metoden til å legge ting in i $user_id, sette $signed_in til true og sender dem til index.php med en redirect();. - $session->login($user_found); - redirect("index.php"); - } else { - $the_message = "Your password or email are incorrect."; - } + if ($user_found) { + + //tar i bruk login() metoden til å legge ting in i $user_id, sette $signed_in til true og sender dem til index.php med en redirect();. + $session->login($user_found); + redirect("index.php"); + } else { + $the_message = "Your password or email are incorrect."; + } -} else { + } else { $email = ""; $password = ""; @@ -32,6 +32,15 @@ } ?> + + + + + +
@@ -63,8 +72,8 @@ - +
diff --git a/statistics.php b/statistics.php new file mode 100644 index 0000000..782211c --- /dev/null +++ b/statistics.php @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/users.php b/users.php index 22cd436..2dd7de4 100644 --- a/users.php +++ b/users.php @@ -45,6 +45,4 @@ - - \ No newline at end of file From 7340b2663ab6cd91c0e4ff9fe1245c8a001c9051 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 15 Mar 2019 09:22:19 +0100 Subject: [PATCH 25/31] Quick-fix: Fixed the -active thing before show-of Have to change this later, had to do this to make it work. --- includes/views/header.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/includes/views/header.php b/includes/views/header.php index 0050bfa..ae782a5 100644 --- a/includes/views/header.php +++ b/includes/views/header.php @@ -1,8 +1,11 @@ is_signed_in()) { @@ -10,8 +13,8 @@ } // Collects the pagename, is useful when you need to decide what page you are on. -$page = $_SERVER['REQUEST_URI']; -$page = substr($page, 10); +/*$page = $_SERVER['REQUEST_URI']; +$page = substr($page, 10);*/ ?> @@ -41,9 +44,9 @@ is_signed_in()) { ?> From 76a2a0f2d63508d170c2cee62f839c2665a200ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Naist=20=C3=98vernes?= Date: Fri, 15 Mar 2019 10:01:58 +0100 Subject: [PATCH 26/31] Quick update: Updated to the Header V2 Back in the day of old David made a fine header, but in night time he grew tired of the dated designs so he made the holy grail, Header v2. --- assets/css/main.css | 404 +++++++++++++--------------- assets/css/main.css.map | 4 +- assets/img/brand-green.svg | 1 + assets/img/brand-white.svg | 1 + assets/img/profile/default/1.png | Bin 3816 -> 0 bytes assets/img/profile/default/10.png | Bin 3817 -> 0 bytes assets/img/profile/default/11.png | Bin 3813 -> 0 bytes assets/img/profile/default/12.png | Bin 3814 -> 0 bytes assets/img/profile/default/2.png | Bin 3815 -> 0 bytes assets/img/profile/default/3.png | Bin 3813 -> 0 bytes assets/img/profile/default/4.png | Bin 3815 -> 0 bytes assets/img/profile/default/5.png | Bin 3815 -> 0 bytes assets/img/profile/default/6.png | Bin 3815 -> 0 bytes assets/img/profile/default/7.png | Bin 3815 -> 0 bytes assets/img/profile/default/8.png | Bin 3816 -> 0 bytes assets/img/profile/default/9.png | Bin 3815 -> 0 bytes assets/scss/main.scss | 2 + assets/scss/modules/_color.scss | 4 +- assets/scss/partials/_avatar.scss | 6 +- assets/scss/partials/_base.scss | 4 + assets/scss/partials/_card.scss | 28 +- assets/scss/partials/_casing.scss | 2 +- assets/scss/partials/_chat.scss | 49 ++++ assets/scss/partials/_dropdown.scss | 64 ++++- assets/scss/partials/_header.scss | 79 +++--- assets/scss/partials/_main.scss | 9 + includes/helpers/head.php | 3 +- includes/views/header.php | 86 +++--- 28 files changed, 430 insertions(+), 316 deletions(-) create mode 100644 assets/img/brand-green.svg create mode 100644 assets/img/brand-white.svg delete mode 100644 assets/img/profile/default/1.png delete mode 100644 assets/img/profile/default/10.png delete mode 100644 assets/img/profile/default/11.png delete mode 100644 assets/img/profile/default/12.png delete mode 100644 assets/img/profile/default/2.png delete mode 100644 assets/img/profile/default/3.png delete mode 100644 assets/img/profile/default/4.png delete mode 100644 assets/img/profile/default/5.png delete mode 100644 assets/img/profile/default/6.png delete mode 100644 assets/img/profile/default/7.png delete mode 100644 assets/img/profile/default/8.png delete mode 100644 assets/img/profile/default/9.png create mode 100644 assets/scss/partials/_chat.scss create mode 100644 assets/scss/partials/_main.scss diff --git a/assets/css/main.css b/assets/css/main.css index 37b137b..d0a1016 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -10,8 +10,7 @@ h1 { margin: 0.67em 0; } hr { - -webkit-box-sizing: content-box; - box-sizing: content-box; + box-sizing: content-box; height: 0; overflow: visible; } @@ -25,8 +24,7 @@ a { abbr[title] { border-bottom: none; text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; } + text-decoration: underline dotted; } b, strong { @@ -98,8 +96,7 @@ fieldset { padding: 0.35em 0.75em 0.625em; } legend { - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; color: inherit; display: table; max-width: 100%; @@ -114,8 +111,7 @@ textarea { [type="checkbox"], [type="radio"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; padding: 0; } [type="number"]::-webkit-inner-spin-button, @@ -2580,9 +2576,10 @@ template { background-size: cover; background-repeat: no-repeat; background-color: white; + box-shadow: 0 0.1rem 0.3rem rgba(0, 0, 0, 0.12), 0 0.1rem 0.2rem rgba(0, 0, 0, 0.24); border-radius: 50%; - width: 3.2rem; - height: 3.2rem; } + width: 3.8rem; + height: 3.8rem; } .avatar.-xl { width: 6.4rem; height: 6.4rem; } @@ -2599,21 +2596,14 @@ template { *, *:after, *:before { - -webkit-box-sizing: inherit; - box-sizing: inherit; } + box-sizing: inherit; } html { - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; font-size: 62.5%; } body { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - display: -webkit-box; - display: -ms-flexbox; + flex-direction: column; display: flex; min-height: 100vh; font-size: 1.6em; @@ -2623,21 +2613,18 @@ body { letter-spacing: 0.01em; } main { - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; } + flex: 1; } + +body { + background-color: #eef2f6; } .button-text, .button-outlined, .button-contained, .button-toggle { display: inline-block; - -webkit-transition: 0.3s background-color, 0.3s opacity; transition: 0.3s background-color, 0.3s opacity; border: 1px solid transparent; border-radius: 0.3rem; padding: 1rem 1.6rem 0.9rem; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + user-select: none; font-size: 1.4rem; font-weight: 700; text-align: center; @@ -2682,15 +2669,12 @@ main { height: 4.1rem; background-color: transparent; } .button-toggle > img, .button-toggle > svg { - -webkit-transform: translateY(0.5rem); - transform: translateY(0.5rem); + transform: translateY(0.5rem); margin-top: -1rem; width: 2rem; height: 2rem; } .button-group { - display: -webkit-inline-box; - display: -ms-inline-flexbox; display: inline-flex; } .button-group > *:not(:first-child) { border-left: none; @@ -2703,8 +2687,7 @@ main { .button-ripple { position: relative; overflow: hidden; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } + transform: translate3d(0, 0, 0); } .button-ripple:after { content: ""; display: block; @@ -2717,60 +2700,96 @@ main { background-image: radial-gradient(circle, #b9d9be 10%, transparent 10.01%); background-repeat: no-repeat; background-position: 50%; - -webkit-transform: scale(10, 10); - transform: scale(10, 10); + transform: scale(10, 10); opacity: 0; - -webkit-transition: opacity 1s, -webkit-transform 0.5s; - transition: opacity 1s, -webkit-transform 0.5s; - transition: transform 0.5s, opacity 1s; - transition: transform 0.5s, opacity 1s, -webkit-transform 0.5s; } + transition: transform 0.5s, opacity 1s; } .button-ripple:active:after { - -webkit-transform: scale(0, 0); - transform: scale(0, 0); + transform: scale(0, 0); opacity: 0.3; - -webkit-transition: 0s; transition: 0s; } .button-block { width: 100%; } -body { - background-color: #eef2f6; } - .card { position: relative; - -webkit-box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.2); - box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.2); - border-radius: 2px; - width: 200px; + box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.2); + border-radius: 0.8rem; + width: 18.5rem; overflow: hidden; } .card-image { width: 100%; - height: 200px; + height: 26.5rem; background-image: url(/img/tba.png); - background-position: center; + background-position: center center; background-size: cover; background-repeat: no-repeat; background-color: white; } .card-details { - display: -webkit-box; - display: -ms-flexbox; display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + justify-content: center; + align-items: center; position: absolute; + left: 0; bottom: 0; + opacity: 0.75; + padding: 1.2rem; width: 100%; - min-height: 60px; - background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.75)), to(transparent)); - background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.75), transparent); - color: white; } + min-height: 4rem; + background-color: #1f1f1f; } + +.cards { + justify-content: space-between; + flex-wrap: wrap; + display: flex; } + +.casing { + margin: 0 auto; + padding: 2rem; + max-width: 120rem; } + +/* + * Added the part for the chat after this needs to be changed/replaced/fixed + */ +*, +*:before, +*:after { + box-sizing: inherit; } + +/*Chat styling*/ +.chatcontainer { + display: flex; + justify-content: center; + align-items: center; } + +.userSettings { + margin-bottom: 20px; } + +.chat { + max-width: 400px; + display: flex; + flex-direction: row; + flex-wrap: wrap; } + +.chat #chatOutput { + overflow-y: scroll; + height: 280px; + width: 100%; + border: 1px solid #777; } + +.chat #chatOutput p { + margin: 0; + padding: 5px; + border-bottom: 1px solid #bbb; + word-break: break-all; } + +.chat #chatInput { + width: 75%; } + +.chat #chatSend { + width: 25%; } .dropdown { position: relative; } @@ -2786,34 +2805,64 @@ body { .dropdown.-left .dropdown:hover > .list { right: 100%; left: unset; } + .dropdown.-center:hover > .list { + left: 50%; + transform: translateX(-50%); } + .dropdown.-center .dropdown:hover > .list { + right: 100%; + left: unset; } .dropdown:hover > .list { - display: block; - -webkit-animation: fadeInUp 0.2s; - animation: fadeInUp 0.2s; } + animation: fadeIn 0.1s; + display: block; } .list { position: absolute; + z-index: 1000; display: none; - padding: 0.5rem; + box-shadow: 0 0.1rem 0.3rem rgba(0, 0, 0, 0.12), 0 0.1rem 0.2rem rgba(0, 0, 0, 0.24); + padding: 1.2rem 0; border-radius: 1.2rem; - width: 15rem; - background-color: #212529; } + width: 17rem; + background-color: #f8f9fa; } .list > * { display: block; } .list > a { - border-radius: 1rem; padding: 0.5rem 2rem 0.75rem; - -webkit-text-decoration-line: none; - text-decoration-line: none; + text-decoration-line: none; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-weight: 500; - color: #adb5bd; } + color: #343a40; } .list > a:hover { - background-color: #343a40; - color: #dee2e6; } + background-color: #54D266; + color: #f8f9fa; } + +.dropdown > .list:after { + content: " "; + position: absolute; + bottom: 100%; + left: 50%; + transform: translateX(-50%); + border: solid transparent; + border-color: rgba(248, 249, 250, 0); + border-bottom-color: #f8f9fa; + border-width: 6px; + width: 0; + height: 0; + pointer-events: none; } + +.list .divider { + opacity: 0.5; + border-color: #f8f9fa; + width: 100%; } + +.list a svg { + margin-right: 0.5rem; } + +.list > a:hover > .fa-heart { + color: #dc3545; } .float-label { position: relative; } @@ -2825,93 +2874,80 @@ body { position: absolute; top: 50%; left: 2.4rem; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); + transform: translateY(-50%); opacity: 0; - -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease; - transition: opacity 0.3s ease, -webkit-transform 0.3s ease; transition: opacity 0.3s ease, transform 0.3s ease; - transition: opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease; font-size: 1.2rem; } .float-label input:not(:placeholder-shown) { padding: 2.4rem 2.4rem 1rem; } .float-label input:not(:placeholder-shown) + label { - -webkit-transform: translateY(calc(-50% - 1.6rem)); - transform: translateY(calc(-50% - 1.6rem)); + transform: translateY(calc(-50% - 1.6rem)); opacity: 0.5; } header { - background-color: #343a40; } + background-color: #212529; } -.bar { - background-color: #e9ecef; } +.xp { + position: relative; + background-color: #6c757d; } -.bar .xp { - -webkit-transition: 0.5s width; +.xp .xp-bar { transition: 0.5s width; width: 0%; - height: 0.8rem; - background-color: #ccf0d1; - background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%2354d266' fill-opacity='0.81' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E"); + height: 0.25rem; + background-color: #54D266; background-size: contain; } .header { - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; + justify-content: space-between; + align-items: center; display: flex; margin: 0 auto; - padding: 2rem; - max-width: 100rem; } + padding: 0.6rem 7.4rem 0.6rem 4rem; + max-width: 120rem; + min-height: 7rem; } -.header.-main { +.header.-big { padding-bottom: 16rem; } .header .profile { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; + position: relative; + align-items: center; display: flex; - padding: 0.5rem 0; - -webkit-text-decoration-line: none; - text-decoration-line: none; } + cursor: pointer; + padding: 1.2rem 0; + text-decoration-line: none; } -.header .profile .username { - -webkit-transition: 0.3s color; - transition: 0.3s color; - margin-right: 1.2rem; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; - font-weight: 500; - color: #adb5bd; } +.profile .icon-buffer { + position: absolute; + top: 50%; + left: 100%; + transform: translateY(-50%); + width: 80%; + height: 100%; } -.header .profile:hover .username { - color: #dee2e6; } +.profile .icon { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transition: 0.3s color; } -.header .profile .username.-active { - color: #f8f9fa; } +.profile .icon { + color: #495057; } + +.header .dropdown:hover .icon { + color: #54D266; } nav { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; + align-items: center; display: flex; } nav .item { - -webkit-transition: 0.3s color; transition: 0.3s color; - -webkit-text-decoration-line: none; - text-decoration-line: none; + text-decoration-line: none; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-weight: 500; color: #adb5bd; } @@ -2922,42 +2958,31 @@ nav .item:hover { nav .item.-active { color: #f8f9fa; } -nav .item + .item { - margin-left: 4rem; } +nav > * + * { + margin-left: 2rem; } .header .brand { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; + justify-content: center; + align-items: center; display: flex; - border-radius: 50%; - width: 5rem; - height: 5rem; - background-color: #f8f9fa; } + margin-right: 1rem; + padding: 1.2rem 0; + width: 6.4rem; } .header .brand img { - width: 80%; } + width: 100%; } +@media (max-width: 40rem) { + .header { + display: none; } } .login-wrapper { - display: -webkit-box; - display: -ms-flexbox; display: flex; } .login-container { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + align-items: center; z-index: 1000; - display: -webkit-box; - display: -ms-flexbox; display: flex; - -webkit-box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2), 0 0 12px 0 rgba(0, 0, 0, 0.2); - box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2), 0 0 12px 0 rgba(0, 0, 0, 0.2); + box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2), 0 0 12px 0 rgba(0, 0, 0, 0.2); width: 100%; } .login { @@ -2981,8 +3006,7 @@ nav .item + .item { .login input[type=password], .login input[type=email] { margin-bottom: 1rem; - -webkit-box-shadow: inset 0.1rem 0.1rem rgba(0, 0, 0, 0.1), 0 -0.1rem 0 rgba(255, 255, 255, 0.15); - box-shadow: inset 0.1rem 0.1rem rgba(0, 0, 0, 0.1), 0 -0.1rem 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0.1rem 0.1rem rgba(0, 0, 0, 0.1), 0 -0.1rem 0 rgba(255, 255, 255, 0.15); border-radius: 5000rem; border: none; width: 100%; } @@ -2999,8 +3023,7 @@ nav .item + .item { position: absolute; top: 50%; left: 1.4rem; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); + transform: translateY(-50%); width: 2.4rem; vertical-align: top; } @@ -3008,11 +3031,7 @@ nav .item + .item { margin-left: 1rem; } .login-controllers { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - display: -webkit-box; - display: -ms-flexbox; + justify-content: flex-end; display: flex; } .login-controllers > * + * { @@ -3020,8 +3039,7 @@ nav .item + .item { .login-controllers * { border-radius: 500rem; - -webkit-text-decoration-line: none; - text-decoration-line: none; } + text-decoration-line: none; } .login-image { display: none; @@ -3039,6 +3057,13 @@ nav .item + .item { .login-image { display: block; width: 61.8%; } } +.main { + margin-top: -15rem; } + +.category-title { + margin-top: 0; + color: #f8f9fa; } + .float-left { float: left; } @@ -3051,54 +3076,3 @@ nav .item + .item { display: table; } /*# sourceMappingURL=main.css.map */ - - -/* - * Added the part for the chat after this needs to be changed/replaced/fixed - */ - - *, - *:before, - *:after { - box-sizing: inherit; -} - -/*Chat styling*/ -.chatcontainer { - display: flex; - justify-content: center; - align-items: center; -} - -.userSettings { - margin-bottom: 20px; -} - -.chat { - max-width: 400px; - display: flex; - flex-direction: row; - flex-wrap: wrap; -} - -.chat #chatOutput { - overflow-y: scroll; - height: 280px; - width: 100%; - border: 1px solid #777; -} - -.chat #chatOutput p { - margin: 0; - padding: 5px; - border-bottom: 1px solid #bbb; - word-break: break-all; -} - -.chat #chatInput { - width: 75%; -} - -.chat #chatSend { - width: 25%; -} \ No newline at end of file diff --git a/assets/css/main.css.map b/assets/css/main.css.map index 2112a8f..6f3cce6 100644 --- a/assets/css/main.css.map +++ b/assets/css/main.css.map @@ -1,7 +1,7 @@ { "version": 3, -"mappings": "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", -"sources": ["../scss/vendor/_normalize.scss","../scss/vendor/_animate.scss","../scss/partials/_avatar.scss","../scss/partials/_base.scss","../scss/partials/_button.scss","../scss/modules/_color.scss","../scss/partials/_card.scss","../scss/partials/_dropdown.scss","../scss/partials/_float-label.scss","../scss/partials/_header.scss","../scss/partials/_login.scss","../scss/partials/_utility.scss"], +"mappings": "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", +"sources": ["../scss/vendor/_normalize.scss","../scss/vendor/_animate.scss","../scss/partials/_avatar.scss","../scss/partials/_base.scss","../scss/partials/_button.scss","../scss/modules/_color.scss","../scss/partials/_card.scss","../scss/partials/_casing.scss","../scss/partials/_chat.scss","../scss/partials/_dropdown.scss","../scss/partials/_float-label.scss","../scss/partials/_header.scss","../scss/partials/_login.scss","../scss/partials/_main.scss","../scss/partials/_utility.scss"], "names": [], "file": "main.css" } diff --git a/assets/img/brand-green.svg b/assets/img/brand-green.svg new file mode 100644 index 0000000..c2b57fd --- /dev/null +++ b/assets/img/brand-green.svg @@ -0,0 +1 @@ +The Commuters-IconLayer 1 \ No newline at end of file diff --git a/assets/img/brand-white.svg b/assets/img/brand-white.svg new file mode 100644 index 0000000..8fc2472 --- /dev/null +++ b/assets/img/brand-white.svg @@ -0,0 +1 @@ +The Commuters-IconLayer 1 \ No newline at end of file diff --git a/assets/img/profile/default/1.png b/assets/img/profile/default/1.png deleted file mode 100644 index f2caca78be6ab6cf93b048d4340cec89b57f9f34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3816 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 diff --git a/assets/img/profile/default/11.png b/assets/img/profile/default/11.png deleted file mode 100644 index aa1a590fdd09a134ade4996723c96682eaf6503f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3813 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 bPQCvJt*l%G{65jp00000NkvXXu0mjf%#MfP diff --git a/assets/img/profile/default/12.png b/assets/img/profile/default/12.png deleted file mode 100644 index b3924803d3784e43db02f2da5c66da2f88071093..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3814 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 diff --git a/assets/img/profile/default/2.png b/assets/img/profile/default/2.png deleted file mode 100644 index a1ddb0f5b49929d0b9b24442a56200735ac6bfa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3815 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 bcIy23GAiIt*)xG5JERVWFTf{_h{MT8~a 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 daP)ooDr1T_-_I7(Zv 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 diff --git a/assets/scss/main.scss b/assets/scss/main.scss index b0ab9dd..3b7a706 100644 --- a/assets/scss/main.scss +++ b/assets/scss/main.scss @@ -15,8 +15,10 @@ @import "partials/button"; @import "partials/card"; @import "partials/casing"; +@import "partials/chat"; @import "partials/dropdown"; @import "partials/float-label"; @import "partials/header"; @import "partials/login"; +@import "partials/main"; @import "partials/utility"; \ No newline at end of file diff --git a/assets/scss/modules/_color.scss b/assets/scss/modules/_color.scss index 12674b1..4615391 100644 --- a/assets/scss/modules/_color.scss +++ b/assets/scss/modules/_color.scss @@ -36,6 +36,6 @@ $color-primary-400: rgb(94, 219, 112) !default; $color-primary-500: $color-primary !default; $color-primary-600: rgb(77, 151, 88) !default; $color-primary-700: rgb(54, 88, 59) !default; -$color-primary-800: rgb(36, 49, 38) !default; -$color-primary-900: rgb(22, 26, 22) !default; +$color-primary-800: rgb(26, 29, 26) !default; +$color-primary-900: hsl(120, 4%, 5%) !default; diff --git a/assets/scss/partials/_avatar.scss b/assets/scss/partials/_avatar.scss index b331ea0..28dd0f5 100644 --- a/assets/scss/partials/_avatar.scss +++ b/assets/scss/partials/_avatar.scss @@ -16,9 +16,11 @@ background-repeat: no-repeat; background-color: white; + //box-shadow: 0 0 0 0.2rem $color-primary; + box-shadow: 0 0.1rem 0.3rem hsla(0, 0%, 0%, 0.12), 0 0.1rem 0.2rem hsla(0, 0%, 0%, 0.24); border-radius: 50%; - width: 3.2rem; - height: 3.2rem; + width: 3.8rem; + height: 3.8rem; &.-xl { width: 6.4rem; diff --git a/assets/scss/partials/_base.scss b/assets/scss/partials/_base.scss index 6bb83ed..26dde4f 100644 --- a/assets/scss/partials/_base.scss +++ b/assets/scss/partials/_base.scss @@ -33,4 +33,8 @@ body { main { flex: 1; // 1 +} + +body { + background-color: hsla(214, 30%, 95%, 1); } \ No newline at end of file diff --git a/assets/scss/partials/_card.scss b/assets/scss/partials/_card.scss index fa162f2..75eb087 100644 --- a/assets/scss/partials/_card.scss +++ b/assets/scss/partials/_card.scss @@ -1,24 +1,19 @@ -body { - background-color: hsla(214, 30%, 95%, 1); -} - .card { - position: relative; box-shadow: 0 4px 6px 0 hsla(0, 0%, 0%, 0.2); - border-radius: 2px; - width: 200px; + border-radius: 0.8rem; + width: 18.5rem; overflow: hidden; } .card-image { width: 100%; - height: 200px; + height: 26.5rem; background-image: url(/img/tba.png); - background-position: center; + background-position: center center; background-size: cover; background-repeat: no-repeat; background-color: white; @@ -30,12 +25,21 @@ body { align-items: center; position: absolute; + left: 0; bottom: 0; + opacity: 0.75; + + padding: 1.2rem; width: 100%; - min-height: 60px; + min-height: 4rem; - background-image: linear-gradient(0deg, hsla(0, 0%, 0%, 0.75), transparent) ; + background-color: $color-dark; +} + +.cards { + justify-content: space-between; + flex-wrap: wrap; - color: white; + display: flex; } \ No newline at end of file diff --git a/assets/scss/partials/_casing.scss b/assets/scss/partials/_casing.scss index 0f48983..7546dbf 100644 --- a/assets/scss/partials/_casing.scss +++ b/assets/scss/partials/_casing.scss @@ -1,4 +1,4 @@ -%casing { +.casing { margin: 0 auto; padding: 2rem; max-width: 120rem; diff --git a/assets/scss/partials/_chat.scss b/assets/scss/partials/_chat.scss new file mode 100644 index 0000000..1b6f541 --- /dev/null +++ b/assets/scss/partials/_chat.scss @@ -0,0 +1,49 @@ +/* + * Added the part for the chat after this needs to be changed/replaced/fixed + */ + + *, + *:before, + *:after { + box-sizing: inherit; +} + +/*Chat styling*/ +.chatcontainer { + display: flex; + justify-content: center; + align-items: center; +} + +.userSettings { + margin-bottom: 20px; +} + +.chat { + max-width: 400px; + display: flex; + flex-direction: row; + flex-wrap: wrap; +} + +.chat #chatOutput { + overflow-y: scroll; + height: 280px; + width: 100%; + border: 1px solid #777; +} + +.chat #chatOutput p { + margin: 0; + padding: 5px; + border-bottom: 1px solid #bbb; + word-break: break-all; +} + +.chat #chatInput { + width: 75%; +} + +.chat #chatSend { + width: 25%; +} \ No newline at end of file diff --git a/assets/scss/partials/_dropdown.scss b/assets/scss/partials/_dropdown.scss index a9d7d8b..545fc4a 100644 --- a/assets/scss/partials/_dropdown.scss +++ b/assets/scss/partials/_dropdown.scss @@ -10,7 +10,7 @@ // Variables // --------- -$list-width: 15rem; // The width of the dropdown list +$list-width: 17rem; // The width of the dropdown list $list-space: 100%; // The space between list and the activator // HTML structure @@ -55,22 +55,38 @@ $list-space: 100%; // The space between list and the activator } } + &.-center { + // 1. Removing default + &:hover > .list { + left: 50%; + transform: translateX(-50%); + } + + // 1. Removing default + .dropdown:hover > .list { + right: 100%; + left: unset; // 1 + } + } + &:hover > .list { + animation: fadeIn 0.1s; display: block; - animation: fadeInUp 0.2s; } } .list { position: absolute; + z-index: 1000; display: none; - padding: 0.5rem; + box-shadow: 0 0.1rem 0.3rem hsla(0, 0%, 0%, 0.12), 0 0.1rem 0.2rem hsla(0, 0%, 0%, 0.24); + padding: 1.2rem 0; border-radius: 1.2rem; width: $list-width; - background-color: $color-gray-900; + background-color: $color-gray-100; } .list > * { @@ -78,18 +94,50 @@ $list-space: 100%; // The space between list and the activator } .list > a { - border-radius: 1rem; padding: 0.5rem 2rem 0.75rem; text-decoration-line: none; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-weight: 500; - color: $color-gray-500; + color: $color-gray-800; } .list > a:hover { - background-color: $color-gray-800; + background-color: $color-primary; + + color: $color-gray-100; +} + +.dropdown > .list:after { + content: " "; + + position: absolute; + bottom: 100%; + left: 50%; + transform: translateX(-50%); + + border: solid transparent; + border-color: rgba(248, 249, 250, 0); + border-bottom-color: #f8f9fa; + border-width: 6px; + width: 0; + height: 0; + + pointer-events: none; +} + +.list .divider { + opacity: 0.5; + + border-color: $color-gray-100; + width: 100%; +} - color: $color-gray-300; +.list a svg { + margin-right: 0.5rem; } +// Experiment +.list > a:hover > .fa-heart { + color: $color-red; +} \ No newline at end of file diff --git a/assets/scss/partials/_header.scss b/assets/scss/partials/_header.scss index a2c7a98..5295cff 100644 --- a/assets/scss/partials/_header.scss +++ b/assets/scss/partials/_header.scss @@ -1,20 +1,22 @@ header { - background-color: $color-gray-800; + background-color: $color-gray-900; } -// Bar -.bar { - background-color: $color-gray-200; +// XP +.xp { + position: relative; + + background-color: $color-gray-600; } -.bar .xp { +.xp .xp-bar { transition: 0.5s width; width: 0%; - height: 0.8rem; + height: 0.25rem; - background-color: #ccf0d1; - background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%2354d266' fill-opacity='0.81' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E"); + background-color: $color-primary; + //background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%2354d266' fill-opacity='0.81' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E"); background-size: contain; } @@ -26,42 +28,55 @@ header { display: flex; margin: 0 auto; - padding: 2rem; - max-width: 100rem; + padding: 0.6rem 7.4rem 0.6rem 4rem; + max-width: 120rem; + min-height: 7rem; } -.header.-main { +.header.-big { padding-bottom: 16rem; } // Profile and Dropdown .header .profile { + position: relative; align-items: center; display: flex; - padding: 0.5rem 0; + cursor: pointer; + + padding: 1.2rem 0; text-decoration-line: none; } -.header .profile .username { - transition: 0.3s color; +.profile .icon-buffer { + position: absolute; + top: 50%; + left: 100%; + transform: translateY(-50%); - margin-right: 1.2rem; + width: 80%; + height: 100%; +} - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; - font-weight: 500; - color: $color-gray-500; +.profile .icon { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + + transition: 0.3s color; } -.header .profile:hover .username { - color: $color-gray-300; +.profile .icon { + color: $color-gray-700; } -.header .profile .username.-active { - color: $color-gray-100; +.header .dropdown:hover .icon { + color: $color-primary; } @@ -89,8 +104,8 @@ nav .item.-active { color: $color-gray-100; } -nav .item + .item { - margin-left: 4rem; +nav > * + * { + margin-left: 2rem; } @@ -101,20 +116,20 @@ nav .item + .item { display: flex; - border-radius: 50%; - width: 5rem; - height: 5rem; - - background-color: $color-gray-100; + margin-right: 1rem; + padding: 1.2rem 0; + width: 6.4rem; } .header .brand img { - width: 80%; + width: 100%; } -@media (min-width: $breakpoint-tablet) { - +@media (max-width: $breakpoint-tablet) { + .header { + display: none; + } } @media (min-width: $breakpoint-laptop) { diff --git a/assets/scss/partials/_main.scss b/assets/scss/partials/_main.scss new file mode 100644 index 0000000..44b74ed --- /dev/null +++ b/assets/scss/partials/_main.scss @@ -0,0 +1,9 @@ +.main { + margin-top: -15rem; +} + +.category-title { + margin-top: 0; + + color: $color-gray-100; +} \ No newline at end of file diff --git a/includes/helpers/head.php b/includes/helpers/head.php index 9bae14e..06c6fff 100644 --- a/includes/helpers/head.php +++ b/includes/helpers/head.php @@ -22,4 +22,5 @@ - \ No newline at end of file + + \ No newline at end of file diff --git a/includes/views/header.php b/includes/views/header.php index ae782a5..a53dd26 100644 --- a/includes/views/header.php +++ b/includes/views/header.php @@ -15,7 +15,7 @@ // Collects the pagename, is useful when you need to decide what page you are on. /*$page = $_SERVER['REQUEST_URI']; $page = substr($page, 10);*/ -?> +?> @@ -27,49 +27,53 @@ // Calls here in the head.php that lies in the helpers folder include("includes/helpers/head.php"); ?> - + - -
- -
-
-
- - -
- - Brand - - -
-
+ + From b6b4136d0c54f3c9168cdb4f0a7fc36fc979ad4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Naist=20=C3=98vernes?= Date: Fri, 15 Mar 2019 10:12:59 +0100 Subject: [PATCH 27/31] Quick-fix: Fixed links in Header In my head there are links, links that are broken, so i fixed them, and now everything is great, the end. --- includes/views/header.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/includes/views/header.php b/includes/views/header.php index a53dd26..1b49f79 100644 --- a/includes/views/header.php +++ b/includes/views/header.php @@ -47,8 +47,8 @@ Games - About - Contact + About + Contact is_signed_in()) { ?> @@ -62,13 +62,13 @@ From ea7eb36aa8adffcbe19dc368b631de85a6dbf388 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 15 Mar 2019 10:19:41 +0100 Subject: [PATCH 28/31] Quick-fix: Changed index.html to index.php --- includes/views/header.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/views/header.php b/includes/views/header.php index 1b49f79..5ff4b21 100644 --- a/includes/views/header.php +++ b/includes/views/header.php @@ -43,10 +43,10 @@ From e303d9ce4ecc0e0393e1a6e2c9da351574bdae4a Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 15 Mar 2019 12:33:42 +0100 Subject: [PATCH 29/31] Added default images back and started on chat page The images removed was added back into the image-folder and the foundation of the chat was laid. Had to push to save the things done to be able to go back and find the files needed to merge the Email. --- assets/img/profile/default/1.png | Bin 0 -> 3816 bytes assets/img/profile/default/10.png | Bin 0 -> 3817 bytes assets/img/profile/default/11.png | Bin 0 -> 3813 bytes assets/img/profile/default/12.png | Bin 0 -> 3814 bytes assets/img/profile/default/2.png | Bin 0 -> 3815 bytes assets/img/profile/default/3.png | Bin 0 -> 3813 bytes assets/img/profile/default/4.png | Bin 0 -> 3815 bytes assets/img/profile/default/5.png | Bin 0 -> 3815 bytes assets/img/profile/default/6.png | Bin 0 -> 3815 bytes assets/img/profile/default/7.png | Bin 0 -> 3815 bytes assets/img/profile/default/8.png | Bin 0 -> 3816 bytes assets/img/profile/default/9.png | Bin 0 -> 3815 bytes chat.php | 13 +++++++++++++ includes/views/chat_content.php | 10 ++++++++++ includes/views/header.php | 2 +- includes/views/self_profile_content.php | 13 ------------- 16 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 assets/img/profile/default/1.png create mode 100644 assets/img/profile/default/10.png create mode 100644 assets/img/profile/default/11.png create mode 100644 assets/img/profile/default/12.png create mode 100644 assets/img/profile/default/2.png create mode 100644 assets/img/profile/default/3.png create mode 100644 assets/img/profile/default/4.png create mode 100644 assets/img/profile/default/5.png create mode 100644 assets/img/profile/default/6.png create mode 100644 assets/img/profile/default/7.png create mode 100644 assets/img/profile/default/8.png create mode 100644 assets/img/profile/default/9.png create mode 100644 chat.php create mode 100644 includes/views/chat_content.php diff --git a/assets/img/profile/default/1.png b/assets/img/profile/default/1.png new file mode 100644 index 0000000000000000000000000000000000000000..f2caca78be6ab6cf93b048d4340cec89b57f9f34 GIT binary patch literal 3816 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 literal 0 HcmV?d00001 diff --git a/assets/img/profile/default/11.png b/assets/img/profile/default/11.png new file mode 100644 index 0000000000000000000000000000000000000000..aa1a590fdd09a134ade4996723c96682eaf6503f GIT binary patch literal 3813 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 bPQCvJt*l%G{65jp00000NkvXXu0mjf%#MfP literal 0 HcmV?d00001 diff --git a/assets/img/profile/default/12.png b/assets/img/profile/default/12.png new file mode 100644 index 0000000000000000000000000000000000000000..b3924803d3784e43db02f2da5c66da2f88071093 GIT binary patch literal 3814 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 literal 0 HcmV?d00001 diff --git a/assets/img/profile/default/2.png b/assets/img/profile/default/2.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ddb0f5b49929d0b9b24442a56200735ac6bfa1 GIT binary patch literal 3815 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 bcIy23GAiIt*)xG5JERVWFTf{_h{MT8~a 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 daP)ooDr1T_-_I7(Zv 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 literal 0 HcmV?d00001 diff --git a/chat.php b/chat.php new file mode 100644 index 0000000..1158e3b --- /dev/null +++ b/chat.php @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/includes/views/chat_content.php b/includes/views/chat_content.php new file mode 100644 index 0000000..1ed6a04 --- /dev/null +++ b/includes/views/chat_content.php @@ -0,0 +1,10 @@ +
+ +
+
+ +
diff --git a/includes/views/header.php b/includes/views/header.php index 5ff4b21..0e9d7a5 100644 --- a/includes/views/header.php +++ b/includes/views/header.php @@ -64,7 +64,7 @@
Profile Settings - Messages + Messages Sign out
Donate diff --git a/includes/views/self_profile_content.php b/includes/views/self_profile_content.php index 399b422..fec135d 100644 --- a/includes/views/self_profile_content.php +++ b/includes/views/self_profile_content.php @@ -24,16 +24,3 @@ include("includes/process/friend_search.php"); ?>
- -

------------------------------------------------------------------------------------

- -
- -
- - - From 83ab01b87a0a02655073d16914d4a533debff893 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 15 Mar 2019 12:45:17 +0100 Subject: [PATCH 30/31] Merged User Devlop And User Email manually Merged Markus Email user-class into devlop user-class . --- includes/classes/user.php | 59 +++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 5 deletions(-) diff --git a/includes/classes/user.php b/includes/classes/user.php index 8211848..aa8d55b 100644 --- a/includes/classes/user.php +++ b/includes/classes/user.php @@ -7,7 +7,7 @@ class User extends Db_object{ protected static $db_table = "users"; //Slik at man kan endre navnet på databasetabellen. //Array skal brukes i properies() og inneholder bruker-variablene til objektet. - protected static $db_table_fields = array('username', 'email', 'password', 'first_name', 'middle_name', 'last_name', 'user_image', 'joined'); + protected static $db_table_fields = array('username', 'email', 'password', 'first_name', 'middle_name', 'last_name', 'user_image', 'joined', 'verify_code', 'status' ); public $id; public $username; public $email; @@ -17,7 +17,8 @@ class User extends Db_object{ public $last_name; public $user_image; public $joined; - + public $verify_code; + public $status; /** * Verifiy that the user lies in the database with this email and password, used with login * but can also be used other places. @@ -263,7 +264,6 @@ public static function verify_new_user($username, $email, $password, $password_c $middle_name = $database->escape_string($middle_name); $last_name = $database->escape_string($last_name); - // Fjerner all potensiel sql kode. $username = strip_tags($username); $email = strip_tags($email); @@ -274,8 +274,10 @@ public static function verify_new_user($username, $email, $password, $password_c $password_check = strip_tags($password_check); // Sjekker om brukernavn eller email ligger i databasen. - $sql = "SELECT * FROM " . self::$db_table . " WHERE "; - $sql .= "username = '{$username}' "; + $sql = "SELECT * FROM " . self::$db_table . " WHERE "; + $sql .= "email = '{$email}' "; + $sql .= "AND password = '{$password}' "; + $sql .= "AND status = 1 "; $sql .= "LIMIT 1"; $the_result_array = self::find_by_query($sql); @@ -356,6 +358,53 @@ public static function create_unique_id($length = 5) { } return $string; } + + + public static function find_user_by_code($code){ + + global $database; + // Tar bort eventuele ting som ikke skal være med i stringen + $code = $database->escape_string($code); + + // Finner ut om verify_code også ligger i databasen + $sql = "SELECT * FROM ". self::$db_table ." WHERE verify_code = '{$code}' AND status = 0 Limit 1 "; + + // retunerer det database objektet som blir funnet + return static ::find_by_query($sql); + } + + public function activate_user($code){ + global $database; + + // Finner den brukeren som har den aktiverings koden + $in = self::find_user_by_code($code); + // Henter det neste objektet i rekken og gir det tilbake + + + // Får in db-objektet og ser om den er tom + // Må legge inn sjekk for at brukeren ikke er aktivert fra før + if(!empty($in)){ + $user = array_shift($in); + var_dump($user); + + //Denne endrer status på brukeren til aktiv eller nå bare til 1 og default er 0 + $user->status = 1; + + + $user->update(); + + + echo "User was acitvated"; + } + else{ + echo "This user could not be found or this user is active"; + } + + + + } + + } ?> \ No newline at end of file From 8b18c0a104c22114c4161f8bd0f667de3eab07e1 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 15 Mar 2019 13:06:46 +0100 Subject: [PATCH 31/31] Fixed database incompatibilities The email function should now work as it should. Had to delete some user activity that did not fit with the new foreign keys and --- gamesite_db.sql | 52 +++++++++++++++++++------------------------------ 1 file changed, 20 insertions(+), 32 deletions(-) diff --git a/gamesite_db.sql b/gamesite_db.sql index 0cbdd9b..d33dba6 100644 --- a/gamesite_db.sql +++ b/gamesite_db.sql @@ -3,7 +3,7 @@ -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 --- Generation Time: 14. Mar, 2019 20:01 PM +-- Generation Time: 15. Mar, 2019 12:59 PM -- Server-versjon: 10.1.29-MariaDB -- PHP Version: 7.2.0 @@ -25,7 +25,7 @@ SET time_zone = "+00:00"; -- -------------------------------------------------------- -- --- Table structure for table `achievements` +-- Tabellstruktur for tabell `achievements` -- CREATE TABLE `achievements` ( @@ -38,7 +38,7 @@ CREATE TABLE `achievements` ( -- -------------------------------------------------------- -- --- Table structure for table `friend_list` +-- Tabellstruktur for tabell `friend_list` -- CREATE TABLE `friend_list` ( @@ -48,23 +48,10 @@ CREATE TABLE `friend_list` ( `status` tinyint(2) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- --- Dumping data for table `friend_list` --- - -INSERT INTO `friend_list` (`id`, `user_1`, `user_2`, `status`) VALUES -(94, 1, 2, 1), -(95, 1, 13, 1), -(96, 1, 12, 1), -(98, 1, 3, 1), -(100, 1, 1, 1), -(102, 1, 14, 0), -(103, 1, 17, 0); - -- -------------------------------------------------------- -- --- Table structure for table `gained_achievements` +-- Tabellstruktur for tabell `gained_achievements` -- CREATE TABLE `gained_achievements` ( @@ -76,7 +63,7 @@ CREATE TABLE `gained_achievements` ( -- -------------------------------------------------------- -- --- Table structure for table `games` +-- Tabellstruktur for tabell `games` -- CREATE TABLE `games` ( @@ -91,7 +78,7 @@ CREATE TABLE `games` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dumping data for table `games` +-- Dataark for tabell `games` -- INSERT INTO `games` (`id`, `title`, `genre`, `description`, `creator`, `foldername`, `filename`, `size`) VALUES @@ -103,7 +90,7 @@ INSERT INTO `games` (`id`, `title`, `genre`, `description`, `creator`, `folderna -- -------------------------------------------------------- -- --- Table structure for table `ratings` +-- Tabellstruktur for tabell `ratings` -- CREATE TABLE `ratings` ( @@ -129,7 +116,7 @@ INSERT INTO `ratings` (`id`, `game_id`, `user_id`, `score`) VALUES -- -------------------------------------------------------- -- --- Table structure for table `users` +-- Tabellstruktur for tabell `users` -- CREATE TABLE `users` ( @@ -143,22 +130,23 @@ CREATE TABLE `users` ( `user_image` varchar(100) NOT NULL, `joined` date NOT NULL, `privilege_level` tinyint(4) NOT NULL, - `verify_code` text NOT NULL + `verify_code` text NOT NULL, + `status` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dumping data for table `users` +-- Dataark for tabell `users` -- -INSERT INTO `users` (`id`, `email`, `username`, `password`, `first_name`, `middle_name`, `last_name`, `user_image`, `joined`, `privilege_level`, `verify_code`) VALUES -(1, 'hehe@willi.no', 'WilliWonka', 'qwerty', 'Willy', 'Wonka', 'Wonksense', '1.png', '2019-01-23', 1, ''), -(2, 'Derp@Derpesen.no', 'Derperud', 'qwerty', 'Dermont', 'Derp', 'Derperu', '3.png', '2019-01-23', 0, ''), -(3, 'heman@willi.no', 'heman', 'qwerty', 'misterio', 'universio', 'Wonkondo', '2.png', '2019-01-23', 0, ''); +INSERT INTO `users` (`id`, `email`, `username`, `password`, `first_name`, `middle_name`, `last_name`, `user_image`, `joined`, `privilege_level`, `verify_code`, `status`) VALUES +(1, 'hehe@willi.no', 'WilliWonka', 'qwerty', 'Willy', 'Wonka', 'Wonksense', '1.png', '2019-01-23', 1, '', 0), +(2, 'Derp@Derpesen.no', 'Derperud', 'qwerty', 'Dermont', 'Derp', 'Derperu', '3.png', '2019-01-23', 0, '', 0), +(3, 'heman@willi.no', 'heman', 'qwerty', 'misterio', 'universio', 'Wonkondo', '2.png', '2019-01-23', 0, '', 0); -- -------------------------------------------------------- -- --- Table structure for table `user_activity` +-- Tabellstruktur for tabell `user_activity` -- CREATE TABLE `user_activity` ( @@ -171,7 +159,7 @@ CREATE TABLE `user_activity` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- --- Dumping data for table `user_activity` +-- Dataark for tabell `user_activity` -- INSERT INTO `user_activity` (`id`, `act`, `user_id`, `target_id`, `type`, `date`) VALUES @@ -315,13 +303,13 @@ ALTER TABLE `ratings` -- AUTO_INCREMENT for table `users` -- ALTER TABLE `users` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19; -- -- AUTO_INCREMENT for table `user_activity` -- ALTER TABLE `user_activity` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=61; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=62; -- -- AUTO_INCREMENT for table `user_chat` @@ -363,7 +351,7 @@ ALTER TABLE `ratings` -- Begrensninger for tabell `user_activity` -- ALTER TABLE `user_activity` - ADD CONSTRAINT `User_activityUsersFN1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; + ADD CONSTRAINT `User_activityUsersFN1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; -- -- Begrensninger for tabell `user_chat`