├── Documentation ├── 7th Semester Project Presentation.pptx └── Project Report.pdf ├── README.md └── core ├── core ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-311.pyc │ ├── settings.cpython-311.pyc │ ├── urls.cpython-311.pyc │ └── wsgi.cpython-311.pyc ├── asgi.py ├── settings.py ├── urls.py └── wsgi.py ├── db.sqlite3 ├── manage.py ├── missingperson ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-311.pyc │ ├── admin.cpython-311.pyc │ ├── apps.cpython-311.pyc │ ├── models.cpython-311.pyc │ └── views.cpython-311.pyc ├── admin.py ├── apps.py ├── migrations │ ├── 0001_initial.py │ ├── 0002_remove_missingperson_identification_marks.py │ ├── __init__.py │ └── __pycache__ │ │ ├── 0001_initial.cpython-311.pyc │ │ ├── 0002_remove_missingperson_identification_marks.cpython-311.pyc │ │ └── __init__.cpython-311.pyc ├── models.py ├── templates │ ├── card.html │ ├── detect.html │ ├── edit.html │ ├── findemail.html │ ├── index.html │ ├── location.html │ ├── missing.html │ ├── register.html │ ├── regmail.html │ └── surveillance.html ├── tests.py └── views.py ├── public └── static │ ├── assets │ ├── css │ │ └── style.css │ ├── js │ │ └── main.js │ ├── scss │ │ └── Readme.txt │ └── vendor │ │ ├── aos │ │ ├── aos.cjs.js │ │ ├── aos.css │ │ ├── aos.esm.js │ │ ├── aos.js │ │ └── aos.js.map │ │ ├── bootstrap-icons │ │ ├── bootstrap-icons.css │ │ ├── bootstrap-icons.json │ │ ├── bootstrap-icons.min.css │ │ ├── bootstrap-icons.scss │ │ └── fonts │ │ │ ├── bootstrap-icons.woff │ │ │ └── bootstrap-icons.woff2 │ │ ├── bootstrap │ │ ├── css │ │ │ ├── bootstrap-grid.css │ │ │ ├── bootstrap-grid.css.map │ │ │ ├── bootstrap-grid.min.css │ │ │ ├── bootstrap-grid.min.css.map │ │ │ ├── bootstrap-grid.rtl.css │ │ │ ├── bootstrap-grid.rtl.css.map │ │ │ ├── bootstrap-grid.rtl.min.css │ │ │ ├── bootstrap-grid.rtl.min.css.map │ │ │ ├── bootstrap-reboot.css │ │ │ ├── bootstrap-reboot.css.map │ │ │ ├── bootstrap-reboot.min.css │ │ │ ├── bootstrap-reboot.min.css.map │ │ │ ├── bootstrap-reboot.rtl.css │ │ │ ├── bootstrap-reboot.rtl.css.map │ │ │ ├── bootstrap-reboot.rtl.min.css │ │ │ ├── bootstrap-reboot.rtl.min.css.map │ │ │ ├── bootstrap-utilities.css │ │ │ ├── bootstrap-utilities.css.map │ │ │ ├── bootstrap-utilities.min.css │ │ │ ├── bootstrap-utilities.min.css.map │ │ │ ├── bootstrap-utilities.rtl.css │ │ │ ├── bootstrap-utilities.rtl.css.map │ │ │ ├── bootstrap-utilities.rtl.min.css │ │ │ ├── bootstrap-utilities.rtl.min.css.map │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ ├── bootstrap.min.css.map │ │ │ ├── bootstrap.rtl.css │ │ │ ├── bootstrap.rtl.css.map │ │ │ ├── bootstrap.rtl.min.css │ │ │ └── bootstrap.rtl.min.css.map │ │ └── js │ │ │ ├── bootstrap.bundle.js │ │ │ ├── bootstrap.bundle.js.map │ │ │ ├── bootstrap.bundle.min.js │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ ├── bootstrap.esm.js │ │ │ ├── bootstrap.esm.js.map │ │ │ ├── bootstrap.esm.min.js │ │ │ ├── bootstrap.esm.min.js.map │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.js.map │ │ │ ├── bootstrap.min.js │ │ │ └── bootstrap.min.js.map │ │ ├── boxicons │ │ ├── css │ │ │ ├── animations.css │ │ │ ├── boxicons.css │ │ │ ├── boxicons.min.css │ │ │ └── transformations.css │ │ └── fonts │ │ │ ├── boxicons.eot │ │ │ ├── boxicons.svg │ │ │ ├── boxicons.ttf │ │ │ ├── boxicons.woff │ │ │ └── boxicons.woff2 │ │ ├── glightbox │ │ ├── css │ │ │ ├── glightbox.css │ │ │ ├── glightbox.min.css │ │ │ ├── plyr.css │ │ │ └── plyr.min.css │ │ └── js │ │ │ ├── glightbox.js │ │ │ └── glightbox.min.js │ │ ├── isotope-layout │ │ ├── isotope.pkgd.js │ │ └── isotope.pkgd.min.js │ │ ├── php-email-form │ │ └── validate.js │ │ ├── remixicon │ │ ├── remixicon.css │ │ ├── remixicon.eot │ │ ├── remixicon.glyph.json │ │ ├── remixicon.less │ │ ├── remixicon.svg │ │ ├── remixicon.symbol.svg │ │ ├── remixicon.ttf │ │ ├── remixicon.woff │ │ └── remixicon.woff2 │ │ ├── swiper │ │ ├── swiper-bundle.min.css │ │ ├── swiper-bundle.min.js │ │ └── swiper-bundle.min.js.map │ │ └── waypoints │ │ └── noframework.waypoints.js │ └── img │ ├── apple-touch-icon.png │ ├── clients │ ├── client-1.png │ ├── client-2.png │ ├── client-3.png │ ├── client-4.png │ ├── client-5.png │ └── client-6.png │ ├── cta-bg.jpg │ ├── favicon.png │ ├── hero-img.png │ ├── portfolio │ ├── portfolio-1.jpg │ ├── portfolio-2.jpg │ ├── portfolio-3.jpg │ ├── portfolio-4.jpg │ ├── portfolio-5.jpg │ ├── portfolio-6.jpg │ ├── portfolio-7.jpg │ ├── portfolio-8.jpg │ ├── portfolio-9.jpg │ ├── portfolio-details-1.jpg │ ├── portfolio-details-2.jpg │ └── portfolio-details-3.jpg │ ├── skills.png │ ├── team │ ├── team-2.JPG │ ├── team-3.jpg │ └── team-4.jpg │ └── why-us.png └── requirements.txt /Documentation/7th Semester Project Presentation.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/Documentation/7th Semester Project Presentation.pptx -------------------------------------------------------------------------------- /Documentation/Project Report.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/Documentation/Project Report.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🕵️‍♂️ Bharatiya Rescue:Missing Person Detection System! 📸 2 | Bharatiya Rescue is an innovative project aimed at leveraging cutting-edge technology to help reunite missing individuals with their loved ones. Our user-friendly system, built using Django, HTML, CSS, JavaScript, OpenCV, and the `facerecognition` library, combines a smooth UI with robust functionality to ensure an efficient and seamless experience for all users. 3 | 4 | ## How It Works 5 | 1. **Register a missing person complaint** with essential details like a recent photograph, name, address, Aadhar number, email, and mobile number. 6 | 2. **Surveillance mode**: The system uses facial recognition to detect the missing person's face. If a match is found, an email alert is automatically sent to the parents and the police. 7 | 3. **Location storage**: The system stores the missing person's last known location in a secure database. 8 | 4. **Admin management**: Admins can remove entries when the missing person is found, maintaining an up-to-date and efficient system. 9 | 10 | ## Future Enhancements 11 | - Integration with advanced AI algorithms and machine learning models for improved face recognition accuracy. 12 | - Use of geospatial technology for real-time tracking. 13 | - Integration with social media and public alert systems to increase community response. 14 | - Collaboration with law enforcement and technology innovators for continuous improvements. 15 | 16 | ## Other Developers 17 | - Akash Mohanty 18 | - Sarin Sahu 19 | 20 | 21 | ## Some Screenshorts: 22 | 34 | 35 | ## Getting Started 36 | ### Prerequisites 37 | - Python 3.x 38 | - `pip` (Python package installer) 39 | 40 | ### Clone the Repository 41 | ```bash 42 | git clone https://github.com/thegeek36/Missing-Person-Detection-System.git 43 | cd Missing-Person-Detection-System 44 | ``` 45 | 46 | ### Set Up Virtual Environment 47 | ```bash 48 | python -m venv venv 49 | source venv/bin/activate # For Windows use: venv\Scripts\activate 50 | ``` 51 | 52 | ### Install Dependencies 53 | ```bash 54 | pip install -r requirements.txt 55 | ``` 56 | 57 | ### Create a New Database 58 | Delete the existing `db.sqlite3` file (if present): 59 | ```bash 60 | rm db.sqlite3 # For Windows, use: del db.sqlite3 61 | ``` 62 | 63 | Create a new database: 64 | ```bash 65 | python manage.py migrate 66 | ``` 67 | 68 | ### Create Admin Superuser 69 | ```bash 70 | python manage.py createsuperuser 71 | ``` 72 | Follow the prompts to set up your admin username, email, and password. 73 | 74 | ### Run the Server 75 | ```bash 76 | python manage.py runserver 77 | ``` 78 | Open your browser and navigate to `http://127.0.0.1:8000` to view the application. 79 | 80 | ### Important Note 81 | Ensure to change the SMTP details in `core/core/settings.py` to enable the email alert functionality. 82 | 83 | ## Star the Repository 84 | If you like the project, don't forget to star the repository! 85 | 86 | 87 | -------------------------------------------------------------------------------- /core/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/core/__init__.py -------------------------------------------------------------------------------- /core/core/__pycache__/__init__.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/core/__pycache__/__init__.cpython-311.pyc -------------------------------------------------------------------------------- /core/core/__pycache__/settings.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/core/__pycache__/settings.cpython-311.pyc -------------------------------------------------------------------------------- /core/core/__pycache__/urls.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/core/__pycache__/urls.cpython-311.pyc -------------------------------------------------------------------------------- /core/core/__pycache__/wsgi.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/core/__pycache__/wsgi.cpython-311.pyc -------------------------------------------------------------------------------- /core/core/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for core project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /core/core/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for core project. 3 | 4 | Generated by 'django-admin startproject' using Django 4.2.4. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.2/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/4.2/ref/settings/ 11 | """ 12 | 13 | from pathlib import Path 14 | 15 | # Build paths inside the project like this: BASE_DIR / 'subdir'. 16 | BASE_DIR = Path(__file__).resolve().parent.parent 17 | 18 | 19 | # Quick-start development settings - unsuitable for production 20 | # See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ 21 | 22 | # SECURITY WARNING: keep the secret key used in production secret! 23 | SECRET_KEY = 'django-insecure-=6+iou_@!f^&y=r2n6_e&kh93u0o9wwgs9rv_z6!n&x0+-au_@' 24 | 25 | # SECURITY WARNING: don't run with debug turned on in production! 26 | DEBUG = True 27 | 28 | ALLOWED_HOSTS = [] 29 | 30 | 31 | # Application definition 32 | 33 | INSTALLED_APPS = [ 34 | 'django.contrib.admin', 35 | 'django.contrib.auth', 36 | 'django.contrib.contenttypes', 37 | 'django.contrib.sessions', 38 | 'django.contrib.messages', 39 | 'django.contrib.staticfiles', 40 | 41 | ] 42 | EXTERNAL_APPS = ['missingperson'] 43 | INSTALLED_APPS += EXTERNAL_APPS 44 | 45 | MIDDLEWARE = [ 46 | 'django.middleware.security.SecurityMiddleware', 47 | 'django.contrib.sessions.middleware.SessionMiddleware', 48 | 'django.middleware.common.CommonMiddleware', 49 | 'django.middleware.csrf.CsrfViewMiddleware', 50 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 51 | 'django.contrib.messages.middleware.MessageMiddleware', 52 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 53 | ] 54 | 55 | ROOT_URLCONF = 'core.urls' 56 | 57 | TEMPLATES = [ 58 | { 59 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 60 | 'DIRS': [], 61 | 'APP_DIRS': True, 62 | 'OPTIONS': { 63 | 'context_processors': [ 64 | 'django.template.context_processors.debug', 65 | 'django.template.context_processors.request', 66 | 'django.contrib.auth.context_processors.auth', 67 | 'django.contrib.messages.context_processors.messages', 68 | ], 69 | }, 70 | }, 71 | ] 72 | 73 | EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 74 | WSGI_APPLICATION = 'core.wsgi.application' 75 | 76 | 77 | # Database 78 | # https://docs.djangoproject.com/en/4.2/ref/settings/#databases 79 | 80 | DATABASES = { 81 | 'default': { 82 | 'ENGINE': 'django.db.backends.sqlite3', 83 | 'NAME': BASE_DIR / 'db.sqlite3', 84 | } 85 | } 86 | 87 | 88 | # Password validation 89 | # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators 90 | 91 | AUTH_PASSWORD_VALIDATORS = [ 92 | { 93 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 94 | }, 95 | { 96 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 97 | }, 98 | { 99 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 100 | }, 101 | { 102 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 103 | }, 104 | ] 105 | 106 | 107 | # Internationalization 108 | # https://docs.djangoproject.com/en/4.2/topics/i18n/ 109 | 110 | LANGUAGE_CODE = 'en-us' 111 | 112 | TIME_ZONE = 'Asia/Kolkata' 113 | 114 | USE_I18N = True 115 | 116 | USE_TZ = True 117 | 118 | 119 | # Static files (CSS, JavaScript, Images) 120 | # https://docs.djangoproject.com/en/4.2/howto/static-files/ 121 | 122 | 123 | import os 124 | STATIC_URL = '/static/' 125 | STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') 126 | 127 | STATICFILES_DIRS = [ 128 | os.path.join(BASE_DIR , "public/static") 129 | ] 130 | 131 | MEDIA_ROOT = os.path.join(BASE_DIR,'public/static') 132 | MEDIA_URL = '/media/' 133 | 134 | # Default primary key field type 135 | # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field 136 | 137 | DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' 138 | # brel bopf laof qbmo 139 | 140 | 141 | EMAIL_HOST = 'smtp.gmail.com' 142 | EMAIL_PORT = 587 143 | EMAIL_USE_TLS = True 144 | EMAIL_HOST_USER = "XXXXXXXXXXXXX"# Replace with your Gmail email address 145 | EMAIL_HOST_PASSWORD = "XXXXXXXX" # Replace with your password 146 | -------------------------------------------------------------------------------- /core/core/urls.py: -------------------------------------------------------------------------------- 1 | """ 2 | URL configuration for core project. 3 | 4 | The `urlpatterns` list routes URLs to views. For more information please see: 5 | https://docs.djangoproject.com/en/4.2/topics/http/urls/ 6 | Examples: 7 | Function views 8 | 1. Add an import: from my_app import views 9 | 2. Add a URL to urlpatterns: path('', views.home, name='home') 10 | Class-based views 11 | 1. Add an import: from other_app.views import Home 12 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 13 | Including another URLconf 14 | 1. Import the include() function: from django.urls import include, path 15 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 16 | """ 17 | from django.contrib import admin 18 | from django.urls import path 19 | from missingperson.views import* 20 | from django.urls import path 21 | from django.conf import settings 22 | from django.conf.urls.static import static 23 | from django.contrib.staticfiles.urls import staticfiles_urlpatterns 24 | 25 | urlpatterns = [ 26 | path('',home,name='home'), 27 | path('detect/',detect,name='detect'), 28 | path('surveillance/',surveillance,name = 'surveillance'), 29 | path('register/',register,name='register'), 30 | path('missing/',missing,name='missing'), 31 | path('delete//',delete_person, name='delete_person'), 32 | path('update//',update_person, name='update_person'), 33 | path('admin/', admin.site.urls), 34 | ] 35 | if settings.DEBUG: 36 | urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 37 | urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 38 | 39 | 40 | -------------------------------------------------------------------------------- /core/core/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for core project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /core/db.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/db.sqlite3 -------------------------------------------------------------------------------- /core/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | """Run administrative tasks.""" 9 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings') 10 | try: 11 | from django.core.management import execute_from_command_line 12 | except ImportError as exc: 13 | raise ImportError( 14 | "Couldn't import Django. Are you sure it's installed and " 15 | "available on your PYTHONPATH environment variable? Did you " 16 | "forget to activate a virtual environment?" 17 | ) from exc 18 | execute_from_command_line(sys.argv) 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /core/missingperson/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/__init__.py -------------------------------------------------------------------------------- /core/missingperson/__pycache__/__init__.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/__pycache__/__init__.cpython-311.pyc -------------------------------------------------------------------------------- /core/missingperson/__pycache__/admin.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/__pycache__/admin.cpython-311.pyc -------------------------------------------------------------------------------- /core/missingperson/__pycache__/apps.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/__pycache__/apps.cpython-311.pyc -------------------------------------------------------------------------------- /core/missingperson/__pycache__/models.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/__pycache__/models.cpython-311.pyc -------------------------------------------------------------------------------- /core/missingperson/__pycache__/views.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/__pycache__/views.cpython-311.pyc -------------------------------------------------------------------------------- /core/missingperson/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import * 3 | # Register your models here. 4 | admin.site.register(MissingPerson) 5 | admin.site.register(Location) -------------------------------------------------------------------------------- /core/missingperson/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class MissingpersonConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'missingperson' 7 | 8 | 9 | -------------------------------------------------------------------------------- /core/missingperson/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.2.4 on 2023-09-17 15:34 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | import django.utils.timezone 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | initial = True 11 | 12 | dependencies = [ 13 | ] 14 | 15 | operations = [ 16 | migrations.CreateModel( 17 | name='MissingPerson', 18 | fields=[ 19 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 20 | ('first_name', models.CharField(max_length=255)), 21 | ('last_name', models.CharField(max_length=255)), 22 | ('father_name', models.CharField(max_length=255)), 23 | ('date_of_birth', models.DateField()), 24 | ('address', models.TextField()), 25 | ('email', models.EmailField(max_length=254)), 26 | ('phone_number', models.CharField(max_length=10)), 27 | ('identification_marks', models.TextField()), 28 | ('aadhar_number', models.CharField(max_length=12, unique=True)), 29 | ('image', models.ImageField(upload_to='missing_persons/')), 30 | ('missing_from', models.DateField()), 31 | ('gender', models.CharField(choices=[('Male', 'Male'), ('Female', 'Female'), ('Others', 'Others')], max_length=10)), 32 | ], 33 | ), 34 | migrations.CreateModel( 35 | name='Location', 36 | fields=[ 37 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 38 | ('latitude', models.DecimalField(decimal_places=6, max_digits=9)), 39 | ('longitude', models.DecimalField(decimal_places=6, max_digits=9)), 40 | ('detected_at', models.DateTimeField(default=django.utils.timezone.now)), 41 | ('missing_person', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='missingperson.missingperson')), 42 | ], 43 | options={ 44 | 'ordering': ['-detected_at'], 45 | }, 46 | ), 47 | ] 48 | -------------------------------------------------------------------------------- /core/missingperson/migrations/0002_remove_missingperson_identification_marks.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.2.4 on 2023-09-19 16:39 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('missingperson', '0001_initial'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RemoveField( 14 | model_name='missingperson', 15 | name='identification_marks', 16 | ), 17 | ] 18 | -------------------------------------------------------------------------------- /core/missingperson/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/migrations/__init__.py -------------------------------------------------------------------------------- /core/missingperson/migrations/__pycache__/0001_initial.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/migrations/__pycache__/0001_initial.cpython-311.pyc -------------------------------------------------------------------------------- /core/missingperson/migrations/__pycache__/0002_remove_missingperson_identification_marks.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/migrations/__pycache__/0002_remove_missingperson_identification_marks.cpython-311.pyc -------------------------------------------------------------------------------- /core/missingperson/migrations/__pycache__/__init__.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/migrations/__pycache__/__init__.cpython-311.pyc -------------------------------------------------------------------------------- /core/missingperson/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.utils import timezone 3 | # Create your models here. 4 | from django.db import models 5 | 6 | class MissingPerson(models.Model): 7 | GENDER_CHOICES = [ 8 | ('Male', 'Male'), 9 | ('Female', 'Female'), 10 | ('Others', 'Others'), 11 | ] 12 | 13 | first_name = models.CharField(max_length=255) 14 | last_name = models.CharField(max_length=255) 15 | father_name = models.CharField(max_length=255) 16 | date_of_birth = models.DateField() 17 | address = models.TextField() 18 | email = models.EmailField() 19 | phone_number = models.CharField(max_length=10) # Assuming a maximum of 15 digits for phone number 20 | aadhar_number = models.CharField(max_length=12, unique=True) # Aadhar number is 12 digits and should be unique 21 | image = models.ImageField(upload_to='missing_persons/') # Store images in a 'missing_persons' directory 22 | missing_from = models.DateField() 23 | gender = models.CharField(max_length=10, choices=GENDER_CHOICES) 24 | 25 | def __str__(self): 26 | return f"{self.first_name} {self.last_name}" 27 | 28 | 29 | 30 | 31 | class Location(models.Model): 32 | missing_person = models.ForeignKey('MissingPerson', on_delete=models.CASCADE) 33 | latitude = models.DecimalField(max_digits=9, decimal_places=6) # Decimal field for latitude (adjust max_digits and decimal_places as needed) 34 | longitude = models.DecimalField(max_digits=9, decimal_places=6) # Decimal field for longitude (adjust max_digits and decimal_places as needed) 35 | detected_at = models.DateTimeField(default=timezone.now) 36 | 37 | def __str__(self): 38 | return f"Location for {self.missing_person.first_name} {self.missing_person.last_name}" 39 | 40 | class Meta: 41 | ordering = ['-detected_at'] # Show the most recent locations first 42 | -------------------------------------------------------------------------------- /core/missingperson/templates/card.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | {% for person in missingperson %} 4 |
5 |
6 |
7 | Card image cap 8 | 9 |
10 |
11 |
12 |
13 | 14 |
Name : {{person.first_name}} {{person.last_name}}
15 | 16 |

Aadhar Number : {{person.aadhar_number}} 17 |
18 | Missing From : {{person.missing_from}} 19 |
20 | Phone Number : {{person.phone_number}} 21 |

22 | 23 | Delete 24 | Edit 25 |
26 |
27 |
28 | {% endfor %} 29 |
30 |
31 | 32 | -------------------------------------------------------------------------------- /core/missingperson/templates/detect.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/missingperson/templates/detect.html -------------------------------------------------------------------------------- /core/missingperson/templates/edit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 63 | Edit Details 64 | 65 | 66 | 77 |
78 |
79 |
80 |
81 | {% csrf_token %} 82 |

Edit Information

83 |

84 | {% if messages %} 85 | 90 | {% endif %} 91 |
92 |
93 |
94 | 95 | 96 |
97 |
98 | 99 | 100 |
101 |
102 |
103 |
104 | 105 | 106 |
107 |
108 | 109 | 110 |
111 |
112 |
113 | 114 | 115 |
116 |
117 |
118 | 119 | 120 |
We'll never share your email with anyone else.
121 |
122 |
123 | 124 | 125 |
126 |
127 |
128 |
129 | 130 | 131 |
132 |
133 | 134 | 135 |
136 |
137 |
138 |
139 | 140 | 141 | 142 |
143 | 144 |
145 | 146 | 147 |
148 | 149 |
150 | 151 | 152 |
153 |
154 |
155 | 156 | 157 |
158 |
159 | 160 |
161 | 162 |
163 |
164 |
165 |
166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /core/missingperson/templates/findemail.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Missing Person Found Notification 6 | 28 | 29 | 30 |
31 |
32 |

Missing Person Found

33 |
34 |
35 |
36 |

Dear {{fathers_name}},

37 |

We are pleased to inform you that the missing person missing form {{missing_from}} and you were concerned about has been found. The person was located in a camera footage, and we have identified their whereabouts.

38 |

Here are the details:

39 |
    40 |
  • Name: {{first_name}} {{last_name}}
  • 41 |
  • Date and Time of Sighting: {{date_time}}
  • 42 |
  • Location: {{location}}
  • 43 |
  • Aadhar Number:{{aadhar_number}}
  • 44 |
45 |

We understand the relief this news must bring to you. If you have any further questions or require more information, please do not hesitate to reach out to us.

46 |

Thank you for your cooperation and concern in this matter.

47 |

Sincerely,

48 |

Team Bharatiya Rescue

49 |
50 | 51 | 52 | -------------------------------------------------------------------------------- /core/missingperson/templates/location.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 63 | Missing Persons 64 | 65 | 66 | 77 |
78 | 88 |
89 |
90 |
91 |

Missing Persons

92 | 93 |
94 |
95 | 96 |
97 | 98 | 99 |
100 |
101 |
102 |
103 | 104 | {% include 'misscard.html' %} 105 | 106 | -------------------------------------------------------------------------------- /core/missingperson/templates/missing.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 63 | Missing Persons 64 | 65 | 66 | 77 |
78 | 88 |
89 |
90 |
91 |

Missing Persons

92 | 93 |
94 |
95 | 96 |
97 | 98 | 99 |
100 |
101 |
102 |
103 | 104 | {% include 'card.html' %} 105 | 106 | -------------------------------------------------------------------------------- /core/missingperson/templates/register.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 63 | Register 64 | 65 | 66 | 77 |
78 |
79 |
80 |
81 | {% csrf_token %} 82 |

Report Missing Case

83 |

84 | {% if messages %} 85 | 90 | {% endif %} 91 |
92 |
93 |
94 | 95 | 96 |
97 |
98 | 99 | 100 |
101 |
102 |
103 |
104 | 105 | 106 |
107 |
108 | 109 | 110 |
111 |
112 |
113 | 114 | 115 |
116 |
117 |
118 | 119 | 120 |
We'll never share your email with anyone else.
121 |
122 |
123 | 124 | 125 |
126 |
127 |
128 |
129 | 130 | 131 |
132 |
133 | 134 | 135 |
136 |
137 |
138 |
139 | 140 | 141 | 142 |
143 | 144 |
145 | 146 | 147 |
148 | 149 |
150 | 151 | 152 |
153 |
154 |
155 | 156 | 157 |
158 |
159 | 160 |
161 |
Go to the Survillance Mode here.
162 |
163 |
164 |
165 |
166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /core/missingperson/templates/regmail.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Case Registered Successfully 5 | 27 | 28 | 29 |
30 |
31 |

Case Registered Successfully

32 |
33 |
34 |

Dear {{fathers_name}},

35 |

We are writing to confirm that your case has been registered successfully with Bharatiya Rescue. Below are the details of your case:

36 | 37 |
38 |

Case Registered on: {{date_time}}

39 |

Name: {{first_name}} {{last_name}}

40 |

Aadhar Number: {{aadhar_number}}

41 |

Missing From: {{missing_from}}

42 |
43 | 44 |

Your information and case details have been recorded in our system. Our team will review your case and take necessary action. You will be notified of any updates or developments regarding your case.

45 |

If you have any urgent concerns or additional information to provide, please contact our support team at support@bhratiyarecue.com.

46 |

Thank you for choosing Bharatiya Rescue. We are committed to assisting you during this time.

47 | 48 |

Best regards,

49 |

Bharatiya Rescue

50 |
51 |
52 | 53 | 54 | -------------------------------------------------------------------------------- /core/missingperson/templates/surveillance.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 64 | 65 | Surrivalance 66 | 67 | 68 | 79 |
80 |

Welcome to Surveillance Mode

81 |
82 | Start Webcam 83 |
84 |
85 |

Press q to Close Camera.

86 |
87 | 88 | 89 | -------------------------------------------------------------------------------- /core/missingperson/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /core/missingperson/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render,redirect 2 | from .models import* 3 | from django.contrib import messages 4 | from django.core.mail import send_mail 5 | from django.template.loader import render_to_string 6 | from datetime import datetime 7 | import face_recognition 8 | import cv2 9 | from twilio.rest import Client 10 | from django.shortcuts import get_object_or_404, redirect 11 | from django.http import HttpResponse 12 | 13 | #Add yourr own credentials 14 | # account_sid = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx' 15 | # auth_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 16 | # twilio_whatsapp_number = '+14155238886' 17 | 18 | 19 | # Create your views here. 20 | def home(request): 21 | return render(request,"index.html") 22 | 23 | # def send_whatsapp_message(to,context): 24 | # client = Client(account_sid, auth_token) 25 | # whatsapp_message = ( 26 | # f"Dear {context['fathers_name']},\n\n" 27 | # f"We are pleased to inform you that the missing person missing from {context['missing_from']} and you were concerned about has been found. " 28 | # "The person was located in a camera footage, and we have identified their whereabouts.\n\n" 29 | # "Here are the details:\n" 30 | # f" - Name: {context['first_name']} {context['last_name']}\n" 31 | # f" - Date and Time of Sighting: {context['date_time']}\n" 32 | # f" - Location: {context['location']}\n" 33 | # f" - Aadhar Number: {context['aadhar_number']}\n\n" 34 | # #"We understand the relief this news must bring to you. If you have any further questions or require more information, please do not hesitate to reach out to us.\n\n" 35 | # "Thank you for your cooperation and concern in this matter.\n\n" 36 | # "Sincerely,\n\n" 37 | # "Team Bharatiya Rescue ") 38 | # message = client.messages.create( 39 | # body=whatsapp_message, 40 | # from_='whatsapp:' + twilio_whatsapp_number, 41 | # to='whatsapp:' + to 42 | # ) 43 | # print(f"WhatsApp message sent: {message.sid}") 44 | 45 | def detect(request): 46 | video_capture = cv2.VideoCapture(0) 47 | 48 | # Initialize a flag to track if a face has been detected in the current video stream 49 | face_detected = False 50 | 51 | while True: 52 | ret, frame = video_capture.read() 53 | 54 | # Find face locations and encodings in the current frame 55 | face_locations = face_recognition.face_locations(frame) 56 | face_encodings = face_recognition.face_encodings(frame, face_locations) 57 | 58 | for face_encoding, (top, right, bottom, left) in zip(face_encodings, face_locations): 59 | # Compare detected face with stored face images 60 | for person in MissingPerson.objects.all(): 61 | stored_image = face_recognition.load_image_file(person.image.path) 62 | stored_face_encoding = face_recognition.face_encodings(stored_image)[0] 63 | 64 | # Compare face encodings using a tolerance value 65 | #tolerance = 0.6 # Adjust this tolerance as needed 66 | matches = face_recognition.compare_faces([stored_face_encoding], face_encoding) 67 | 68 | if any(matches): 69 | name = person.first_name + " " + person.last_name 70 | cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED) 71 | font = cv2.FONT_HERSHEY_DUPLEX 72 | cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1) 73 | 74 | # Check if a face has already been detected in this video stream 75 | if not face_detected: 76 | print("Hi " + name + " is found") 77 | 78 | current_time = datetime.now().strftime('%d-%m-%Y %H:%M') 79 | subject = 'Missing Person Found' 80 | from_email = 'pptodo01@gmail' 81 | recipientmail = person.email 82 | recipient_phone_number = '+91'+str(person.phone_number) 83 | print(recipient_phone_number) 84 | context = {"first_name":person.first_name,"last_name":person.last_name, 85 | 'fathers_name':person.father_name,"aadhar_number":person.aadhar_number, 86 | "missing_from":person.missing_from,"date_time":current_time,"location":"India"} 87 | #send_wapmessage(context,current_time,wapnum) 88 | #send_whatsapp_message(recipient_phone_number, context) 89 | html_message = render_to_string('findemail.html',context = context) 90 | # Send the email 91 | send_mail(subject,'', from_email, [recipientmail], fail_silently=False, html_message=html_message) 92 | face_detected = True # Set the flag to True to indicate a face has been detected 93 | break # Break the loop once a match is found 94 | 95 | # Check if no face was detected in the current frame 96 | if not face_detected: 97 | name = "Unknown" 98 | cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED) 99 | font = cv2.FONT_HERSHEY_DUPLEX 100 | cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1) 101 | 102 | # Display the resulting image 103 | cv2.imshow('Camera Feed', frame) 104 | 105 | # Hit 'q' on the keyboard to quit! 106 | if cv2.waitKey(1) & 0xFF == ord('q'): 107 | break 108 | 109 | video_capture.release() 110 | cv2.destroyAllWindows() 111 | return render(request, "surveillance.html") 112 | 113 | def surveillance(request): 114 | return render(request,"surveillance.html") 115 | 116 | 117 | def register(request): 118 | if request.method == 'POST': 119 | first_name = request.POST.get('first_name') 120 | last_name = request.POST.get('last_name') 121 | father_name = request.POST.get('fathers_name') 122 | date_of_birth = request.POST.get('dob') 123 | address = request.POST.get('address') 124 | phone_number = request.POST.get('phonenum') 125 | aadhar_number = request.POST.get('aadhar_number') 126 | missing_from = request.POST.get('missing_date') 127 | email = request.POST.get('email') 128 | image = request.FILES.get('image') 129 | gender = request.POST.get('gender') 130 | aadhar = MissingPerson.objects.filter(aadhar_number=aadhar_number) 131 | if aadhar.exists(): 132 | messages.info(request, 'Aadhar Number already exists') 133 | return redirect('/register') 134 | person = MissingPerson.objects.create( 135 | first_name = first_name, 136 | last_name = last_name, 137 | father_name = father_name, 138 | date_of_birth = date_of_birth, 139 | address = address, 140 | phone_number = phone_number, 141 | aadhar_number = aadhar_number, 142 | missing_from = missing_from, 143 | email = email, 144 | image = image, 145 | gender = gender, 146 | ) 147 | person.save() 148 | messages.success(request,'Case Registered Successfully') 149 | current_time = datetime.now().strftime('%d-%m-%Y %H:%M') 150 | subject = 'Case Registered Successfully' 151 | from_email = 'pptodo01@gmail' 152 | recipientmail = person.email 153 | context = {"first_name":person.first_name,"last_name":person.last_name, 154 | 'fathers_name':person.father_name,"aadhar_number":person.aadhar_number, 155 | "missing_from":person.missing_from,"date_time":current_time} 156 | html_message = render_to_string('regmail.html',context = context) 157 | # Send the email 158 | send_mail(subject,'', from_email, [recipientmail], fail_silently=False, html_message=html_message) 159 | 160 | return render(request,"register.html") 161 | 162 | 163 | def missing(request): 164 | queryset = MissingPerson.objects.all() 165 | search_query = request.GET.get('search', '') 166 | if search_query: 167 | queryset = queryset.filter(aadhar_number__icontains=search_query) 168 | 169 | context = {'missingperson': queryset} 170 | return render(request,"missing.html",context) 171 | 172 | def delete_person(request, person_id): 173 | person = get_object_or_404(MissingPerson, id=person_id) 174 | person.delete() 175 | return redirect('missing') # Redirect to the missing view after deleting 176 | 177 | 178 | def update_person(request, person_id): 179 | person = get_object_or_404(MissingPerson, id=person_id) 180 | 181 | if request.method == 'POST': 182 | # Retrieve data from the form 183 | first_name = request.POST.get('first_name', person.first_name) 184 | last_name = request.POST.get('last_name', person.last_name) 185 | fathers_name = request.POST.get('fathers_name', person.fathers_name) 186 | dob = request.POST.get('dob', person.dob) 187 | address = request.POST.get('address', person.address) 188 | email = request.POST.get('email', person.email) 189 | phonenum = request.POST.get('phonenum', person.phonenum) 190 | aadhar_number = request.POST.get('aadhar_number', person.aadhar_number) 191 | missing_date = request.POST.get('missing_date', person.missing_date) 192 | gender = request.POST.get('gender', person.gender) 193 | 194 | # Check if a new image is provided 195 | new_image = request.FILES.get('image') 196 | if new_image: 197 | person.image = new_image 198 | 199 | # Update the person instance 200 | person.first_name = first_name 201 | person.last_name = last_name 202 | person.fathers_name = fathers_name 203 | person.dob = dob 204 | person.address = address 205 | person.email = email 206 | person.phonenum = phonenum 207 | person.aadhar_number = aadhar_number 208 | person.missing_date = missing_date 209 | person.gender = gender 210 | 211 | # Save the changes 212 | person.save() 213 | 214 | return redirect('missing') # Redirect to the missing view after editing 215 | 216 | return render(request, 'edit.html', {'person': person}) 217 | -------------------------------------------------------------------------------- /core/public/static/assets/js/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Template Name: Arsha 3 | * Updated: Jul 27 2023 with Bootstrap v5.3.1 4 | * Template URL: https://bootstrapmade.com/arsha-free-bootstrap-html-template-corporate/ 5 | * Author: BootstrapMade.com 6 | * License: https://bootstrapmade.com/license/ 7 | */ 8 | (function() { 9 | "use strict"; 10 | 11 | /** 12 | * Easy selector helper function 13 | */ 14 | const select = (el, all = false) => { 15 | el = el.trim() 16 | if (all) { 17 | return [...document.querySelectorAll(el)] 18 | } else { 19 | return document.querySelector(el) 20 | } 21 | } 22 | 23 | /** 24 | * Easy event listener function 25 | */ 26 | const on = (type, el, listener, all = false) => { 27 | let selectEl = select(el, all) 28 | if (selectEl) { 29 | if (all) { 30 | selectEl.forEach(e => e.addEventListener(type, listener)) 31 | } else { 32 | selectEl.addEventListener(type, listener) 33 | } 34 | } 35 | } 36 | 37 | /** 38 | * Easy on scroll event listener 39 | */ 40 | const onscroll = (el, listener) => { 41 | el.addEventListener('scroll', listener) 42 | } 43 | 44 | /** 45 | * Navbar links active state on scroll 46 | */ 47 | let navbarlinks = select('#navbar .scrollto', true) 48 | const navbarlinksActive = () => { 49 | let position = window.scrollY + 200 50 | navbarlinks.forEach(navbarlink => { 51 | if (!navbarlink.hash) return 52 | let section = select(navbarlink.hash) 53 | if (!section) return 54 | if (position >= section.offsetTop && position <= (section.offsetTop + section.offsetHeight)) { 55 | navbarlink.classList.add('active') 56 | } else { 57 | navbarlink.classList.remove('active') 58 | } 59 | }) 60 | } 61 | window.addEventListener('load', navbarlinksActive) 62 | onscroll(document, navbarlinksActive) 63 | 64 | /** 65 | * Scrolls to an element with header offset 66 | */ 67 | const scrollto = (el) => { 68 | let header = select('#header') 69 | let offset = header.offsetHeight 70 | 71 | let elementPos = select(el).offsetTop 72 | window.scrollTo({ 73 | top: elementPos - offset, 74 | behavior: 'smooth' 75 | }) 76 | } 77 | 78 | /** 79 | * Toggle .header-scrolled class to #header when page is scrolled 80 | */ 81 | let selectHeader = select('#header') 82 | if (selectHeader) { 83 | const headerScrolled = () => { 84 | if (window.scrollY > 100) { 85 | selectHeader.classList.add('header-scrolled') 86 | } else { 87 | selectHeader.classList.remove('header-scrolled') 88 | } 89 | } 90 | window.addEventListener('load', headerScrolled) 91 | onscroll(document, headerScrolled) 92 | } 93 | 94 | /** 95 | * Back to top button 96 | */ 97 | let backtotop = select('.back-to-top') 98 | if (backtotop) { 99 | const toggleBacktotop = () => { 100 | if (window.scrollY > 100) { 101 | backtotop.classList.add('active') 102 | } else { 103 | backtotop.classList.remove('active') 104 | } 105 | } 106 | window.addEventListener('load', toggleBacktotop) 107 | onscroll(document, toggleBacktotop) 108 | } 109 | 110 | /** 111 | * Mobile nav toggle 112 | */ 113 | on('click', '.mobile-nav-toggle', function(e) { 114 | select('#navbar').classList.toggle('navbar-mobile') 115 | this.classList.toggle('bi-list') 116 | this.classList.toggle('bi-x') 117 | }) 118 | 119 | /** 120 | * Mobile nav dropdowns activate 121 | */ 122 | on('click', '.navbar .dropdown > a', function(e) { 123 | if (select('#navbar').classList.contains('navbar-mobile')) { 124 | e.preventDefault() 125 | this.nextElementSibling.classList.toggle('dropdown-active') 126 | } 127 | }, true) 128 | 129 | /** 130 | * Scrool with ofset on links with a class name .scrollto 131 | */ 132 | on('click', '.scrollto', function(e) { 133 | if (select(this.hash)) { 134 | e.preventDefault() 135 | 136 | let navbar = select('#navbar') 137 | if (navbar.classList.contains('navbar-mobile')) { 138 | navbar.classList.remove('navbar-mobile') 139 | let navbarToggle = select('.mobile-nav-toggle') 140 | navbarToggle.classList.toggle('bi-list') 141 | navbarToggle.classList.toggle('bi-x') 142 | } 143 | scrollto(this.hash) 144 | } 145 | }, true) 146 | 147 | /** 148 | * Scroll with ofset on page load with hash links in the url 149 | */ 150 | window.addEventListener('load', () => { 151 | if (window.location.hash) { 152 | if (select(window.location.hash)) { 153 | scrollto(window.location.hash) 154 | } 155 | } 156 | }); 157 | 158 | /** 159 | * Preloader 160 | */ 161 | let preloader = select('#preloader'); 162 | if (preloader) { 163 | window.addEventListener('load', () => { 164 | preloader.remove() 165 | }); 166 | } 167 | 168 | /** 169 | * Initiate glightbox 170 | */ 171 | const glightbox = GLightbox({ 172 | selector: '.glightbox' 173 | }); 174 | 175 | /** 176 | * Skills animation 177 | */ 178 | let skilsContent = select('.skills-content'); 179 | if (skilsContent) { 180 | new Waypoint({ 181 | element: skilsContent, 182 | offset: '80%', 183 | handler: function(direction) { 184 | let progress = select('.progress .progress-bar', true); 185 | progress.forEach((el) => { 186 | el.style.width = el.getAttribute('aria-valuenow') + '%' 187 | }); 188 | } 189 | }) 190 | } 191 | 192 | /** 193 | * Porfolio isotope and filter 194 | */ 195 | window.addEventListener('load', () => { 196 | let portfolioContainer = select('.portfolio-container'); 197 | if (portfolioContainer) { 198 | let portfolioIsotope = new Isotope(portfolioContainer, { 199 | itemSelector: '.portfolio-item' 200 | }); 201 | 202 | let portfolioFilters = select('#portfolio-flters li', true); 203 | 204 | on('click', '#portfolio-flters li', function(e) { 205 | e.preventDefault(); 206 | portfolioFilters.forEach(function(el) { 207 | el.classList.remove('filter-active'); 208 | }); 209 | this.classList.add('filter-active'); 210 | 211 | portfolioIsotope.arrange({ 212 | filter: this.getAttribute('data-filter') 213 | }); 214 | portfolioIsotope.on('arrangeComplete', function() { 215 | AOS.refresh() 216 | }); 217 | }, true); 218 | } 219 | 220 | }); 221 | 222 | /** 223 | * Initiate portfolio lightbox 224 | */ 225 | const portfolioLightbox = GLightbox({ 226 | selector: '.portfolio-lightbox' 227 | }); 228 | 229 | /** 230 | * Portfolio details slider 231 | */ 232 | new Swiper('.portfolio-details-slider', { 233 | speed: 400, 234 | loop: true, 235 | autoplay: { 236 | delay: 5000, 237 | disableOnInteraction: false 238 | }, 239 | pagination: { 240 | el: '.swiper-pagination', 241 | type: 'bullets', 242 | clickable: true 243 | } 244 | }); 245 | 246 | /** 247 | * Animation on scroll 248 | */ 249 | window.addEventListener('load', () => { 250 | AOS.init({ 251 | duration: 1000, 252 | easing: "ease-in-out", 253 | once: true, 254 | mirror: false 255 | }); 256 | }); 257 | 258 | })() -------------------------------------------------------------------------------- /core/public/static/assets/scss/Readme.txt: -------------------------------------------------------------------------------- 1 | The .scss (Sass) files are only available in the pro version. -------------------------------------------------------------------------------- /core/public/static/assets/vendor/aos/aos.js: -------------------------------------------------------------------------------- 1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.AOS=t()}(this,function(){"use strict";var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t="Expected a function",n=NaN,o="[object Symbol]",i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt,u="object"==typeof e&&e&&e.Object===Object&&e,d="object"==typeof self&&self&&self.Object===Object&&self,l=u||d||Function("return this")(),f=Object.prototype.toString,m=Math.max,p=Math.min,b=function(){return l.Date.now()};function v(e,n,o){var i,a,r,c,s,u,d=0,l=!1,f=!1,v=!0;if("function"!=typeof e)throw new TypeError(t);function y(t){var n=i,o=a;return i=a=void 0,d=t,c=e.apply(o,n)}function h(e){var t=e-u;return void 0===u||t>=n||t<0||f&&e-d>=r}function k(){var e=b();if(h(e))return x(e);s=setTimeout(k,function(e){var t=n-(e-u);return f?p(t,r-(e-d)):t}(e))}function x(e){return s=void 0,v&&i?y(e):(i=a=void 0,c)}function O(){var e=b(),t=h(e);if(i=arguments,a=this,u=e,t){if(void 0===s)return function(e){return d=e,s=setTimeout(k,n),l?y(e):c}(u);if(f)return s=setTimeout(k,n),y(u)}return void 0===s&&(s=setTimeout(k,n)),c}return n=w(n)||0,g(o)&&(l=!!o.leading,r=(f="maxWait"in o)?m(w(o.maxWait)||0,n):r,v="trailing"in o?!!o.trailing:v),O.cancel=function(){void 0!==s&&clearTimeout(s),d=0,i=u=a=s=void 0},O.flush=function(){return void 0===s?c:x(b())},O}function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function w(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&f.call(e)==o}(e))return n;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(i,"");var u=r.test(e);return u||c.test(e)?s(e.slice(2),u?2:8):a.test(e)?n:+e}var y=function(e,n,o){var i=!0,a=!0;if("function"!=typeof e)throw new TypeError(t);return g(o)&&(i="leading"in o?!!o.leading:i,a="trailing"in o?!!o.trailing:a),v(e,n,{leading:i,maxWait:n,trailing:a})},h="Expected a function",k=NaN,x="[object Symbol]",O=/^\s+|\s+$/g,j=/^[-+]0x[0-9a-f]+$/i,E=/^0b[01]+$/i,N=/^0o[0-7]+$/i,z=parseInt,C="object"==typeof e&&e&&e.Object===Object&&e,A="object"==typeof self&&self&&self.Object===Object&&self,q=C||A||Function("return this")(),L=Object.prototype.toString,T=Math.max,M=Math.min,S=function(){return q.Date.now()};function D(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function H(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&L.call(e)==x}(e))return k;if(D(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=D(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(O,"");var n=E.test(e);return n||N.test(e)?z(e.slice(2),n?2:8):j.test(e)?k:+e}var $=function(e,t,n){var o,i,a,r,c,s,u=0,d=!1,l=!1,f=!0;if("function"!=typeof e)throw new TypeError(h);function m(t){var n=o,a=i;return o=i=void 0,u=t,r=e.apply(a,n)}function p(e){var n=e-s;return void 0===s||n>=t||n<0||l&&e-u>=a}function b(){var e=S();if(p(e))return v(e);c=setTimeout(b,function(e){var n=t-(e-s);return l?M(n,a-(e-u)):n}(e))}function v(e){return c=void 0,f&&o?m(e):(o=i=void 0,r)}function g(){var e=S(),n=p(e);if(o=arguments,i=this,s=e,n){if(void 0===c)return function(e){return u=e,c=setTimeout(b,t),d?m(e):r}(s);if(l)return c=setTimeout(b,t),m(s)}return void 0===c&&(c=setTimeout(b,t)),r}return t=H(t)||0,D(n)&&(d=!!n.leading,a=(l="maxWait"in n)?T(H(n.maxWait)||0,t):a,f="trailing"in n?!!n.trailing:f),g.cancel=function(){void 0!==c&&clearTimeout(c),u=0,o=s=i=c=void 0},g.flush=function(){return void 0===c?r:v(S())},g},W=function(){};function P(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(e.addedNodes),n=Array.prototype.slice.call(e.removedNodes);if(function e(t){var n=void 0,o=void 0;for(n=0;n=o.out&&!n.once?a():t>=o.in?e.animated||(function(e,t){t&&t.forEach(function(t){return e.classList.add(t)})}(i,n.animatedClassNames),V("aos:in",i),e.options.id&&V("aos:in:"+e.options.id,i),e.animated=!0):e.animated&&!n.once&&a()}(e,window.pageYOffset)})},Z=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}},ee=function(e,t,n){var o=e.getAttribute("data-aos-"+t);if(void 0!==o){if("true"===o)return!0;if("false"===o)return!1}return o||n},te=function(e,t){return e.forEach(function(e,n){var o=ee(e.node,"mirror",t.mirror),i=ee(e.node,"once",t.once),a=ee(e.node,"id"),r=t.useClassNames&&e.node.getAttribute("data-aos"),c=[t.animatedClassName].concat(r?r.split(" "):[]).filter(function(e){return"string"==typeof e});t.initClassName&&e.node.classList.add(t.initClassName),e.position={in:function(e,t,n){var o=window.innerHeight,i=ee(e,"anchor"),a=ee(e,"anchor-placement"),r=Number(ee(e,"offset",a?0:t)),c=a||n,s=e;i&&document.querySelectorAll(i)&&(s=document.querySelectorAll(i)[0]);var u=Z(s).top-o;switch(c){case"top-bottom":break;case"center-bottom":u+=s.offsetHeight/2;break;case"bottom-bottom":u+=s.offsetHeight;break;case"top-center":u+=o/2;break;case"center-center":u+=o/2+s.offsetHeight/2;break;case"bottom-center":u+=o/2+s.offsetHeight;break;case"top-top":u+=o;break;case"bottom-top":u+=o+s.offsetHeight;break;case"center-top":u+=o+s.offsetHeight/2}return u+r}(e.node,t.offset,t.anchorPlacement),out:o&&function(e,t){window.innerHeight;var n=ee(e,"anchor"),o=ee(e,"offset",t),i=e;return n&&document.querySelectorAll(n)&&(i=document.querySelectorAll(n)[0]),Z(i).top+i.offsetHeight-o}(e.node,t.offset)},e.options={once:i,mirror:o,animatedClassNames:c,id:a}}),e},ne=function(){var e=document.querySelectorAll("[data-aos]");return Array.prototype.map.call(e,function(e){return{node:e}})},oe=[],ie=!1,ae={offset:120,delay:0,easing:"ease",duration:400,disable:!1,once:!1,mirror:!1,anchorPlacement:"top-bottom",startEvent:"DOMContentLoaded",animatedClassName:"aos-animate",initClassName:"aos-init",useClassNames:!1,disableMutationObserver:!1,throttleDelay:99,debounceDelay:50},re=function(){return document.all&&!window.atob},ce=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&(ie=!0),ie&&(oe=te(oe,ae),X(oe),window.addEventListener("scroll",y(function(){X(oe,ae.once)},ae.throttleDelay)))},se=function(){if(oe=ne(),de(ae.disable)||re())return ue();ce()},ue=function(){oe.forEach(function(e,t){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay"),ae.initClassName&&e.node.classList.remove(ae.initClassName),ae.animatedClassName&&e.node.classList.remove(ae.animatedClassName)})},de=function(e){return!0===e||"mobile"===e&&U.mobile()||"phone"===e&&U.phone()||"tablet"===e&&U.tablet()||"function"==typeof e&&!0===e()};return{init:function(e){return ae=I(ae,e),oe=ne(),ae.disableMutationObserver||_.isSupported()||(console.info('\n aos: MutationObserver is not supported on this browser,\n code mutations observing has been disabled.\n You may have to call "refreshHard()" by yourself.\n '),ae.disableMutationObserver=!0),ae.disableMutationObserver||_.ready("[data-aos]",se),de(ae.disable)||re()?ue():(document.querySelector("body").setAttribute("data-aos-easing",ae.easing),document.querySelector("body").setAttribute("data-aos-duration",ae.duration),document.querySelector("body").setAttribute("data-aos-delay",ae.delay),-1===["DOMContentLoaded","load"].indexOf(ae.startEvent)?document.addEventListener(ae.startEvent,function(){ce(!0)}):window.addEventListener("load",function(){ce(!0)}),"DOMContentLoaded"===ae.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1&&ce(!0),window.addEventListener("resize",$(ce,ae.debounceDelay,!0)),window.addEventListener("orientationchange",$(ce,ae.debounceDelay,!0)),oe)},refresh:ce,refreshHard:se}}); 2 | -------------------------------------------------------------------------------- /core/public/static/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff -------------------------------------------------------------------------------- /core/public/static/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 -------------------------------------------------------------------------------- /core/public/static/assets/vendor/bootstrap/css/bootstrap-reboot.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v5.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2023 The Bootstrap Authors 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5 | */ 6 | :root, 7 | [data-bs-theme=light] { 8 | --bs-blue: #0d6efd; 9 | --bs-indigo: #6610f2; 10 | --bs-purple: #6f42c1; 11 | --bs-pink: #d63384; 12 | --bs-red: #dc3545; 13 | --bs-orange: #fd7e14; 14 | --bs-yellow: #ffc107; 15 | --bs-green: #198754; 16 | --bs-teal: #20c997; 17 | --bs-cyan: #0dcaf0; 18 | --bs-black: #000; 19 | --bs-white: #fff; 20 | --bs-gray: #6c757d; 21 | --bs-gray-dark: #343a40; 22 | --bs-gray-100: #f8f9fa; 23 | --bs-gray-200: #e9ecef; 24 | --bs-gray-300: #dee2e6; 25 | --bs-gray-400: #ced4da; 26 | --bs-gray-500: #adb5bd; 27 | --bs-gray-600: #6c757d; 28 | --bs-gray-700: #495057; 29 | --bs-gray-800: #343a40; 30 | --bs-gray-900: #212529; 31 | --bs-primary: #0d6efd; 32 | --bs-secondary: #6c757d; 33 | --bs-success: #198754; 34 | --bs-info: #0dcaf0; 35 | --bs-warning: #ffc107; 36 | --bs-danger: #dc3545; 37 | --bs-light: #f8f9fa; 38 | --bs-dark: #212529; 39 | --bs-primary-rgb: 13, 110, 253; 40 | --bs-secondary-rgb: 108, 117, 125; 41 | --bs-success-rgb: 25, 135, 84; 42 | --bs-info-rgb: 13, 202, 240; 43 | --bs-warning-rgb: 255, 193, 7; 44 | --bs-danger-rgb: 220, 53, 69; 45 | --bs-light-rgb: 248, 249, 250; 46 | --bs-dark-rgb: 33, 37, 41; 47 | --bs-primary-text-emphasis: #052c65; 48 | --bs-secondary-text-emphasis: #2b2f32; 49 | --bs-success-text-emphasis: #0a3622; 50 | --bs-info-text-emphasis: #055160; 51 | --bs-warning-text-emphasis: #664d03; 52 | --bs-danger-text-emphasis: #58151c; 53 | --bs-light-text-emphasis: #495057; 54 | --bs-dark-text-emphasis: #495057; 55 | --bs-primary-bg-subtle: #cfe2ff; 56 | --bs-secondary-bg-subtle: #e2e3e5; 57 | --bs-success-bg-subtle: #d1e7dd; 58 | --bs-info-bg-subtle: #cff4fc; 59 | --bs-warning-bg-subtle: #fff3cd; 60 | --bs-danger-bg-subtle: #f8d7da; 61 | --bs-light-bg-subtle: #fcfcfd; 62 | --bs-dark-bg-subtle: #ced4da; 63 | --bs-primary-border-subtle: #9ec5fe; 64 | --bs-secondary-border-subtle: #c4c8cb; 65 | --bs-success-border-subtle: #a3cfbb; 66 | --bs-info-border-subtle: #9eeaf9; 67 | --bs-warning-border-subtle: #ffe69c; 68 | --bs-danger-border-subtle: #f1aeb5; 69 | --bs-light-border-subtle: #e9ecef; 70 | --bs-dark-border-subtle: #adb5bd; 71 | --bs-white-rgb: 255, 255, 255; 72 | --bs-black-rgb: 0, 0, 0; 73 | --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 74 | --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 75 | --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); 76 | --bs-body-font-family: var(--bs-font-sans-serif); 77 | --bs-body-font-size: 1rem; 78 | --bs-body-font-weight: 400; 79 | --bs-body-line-height: 1.5; 80 | --bs-body-color: #212529; 81 | --bs-body-color-rgb: 33, 37, 41; 82 | --bs-body-bg: #fff; 83 | --bs-body-bg-rgb: 255, 255, 255; 84 | --bs-emphasis-color: #000; 85 | --bs-emphasis-color-rgb: 0, 0, 0; 86 | --bs-secondary-color: rgba(33, 37, 41, 0.75); 87 | --bs-secondary-color-rgb: 33, 37, 41; 88 | --bs-secondary-bg: #e9ecef; 89 | --bs-secondary-bg-rgb: 233, 236, 239; 90 | --bs-tertiary-color: rgba(33, 37, 41, 0.5); 91 | --bs-tertiary-color-rgb: 33, 37, 41; 92 | --bs-tertiary-bg: #f8f9fa; 93 | --bs-tertiary-bg-rgb: 248, 249, 250; 94 | --bs-heading-color: inherit; 95 | --bs-link-color: #0d6efd; 96 | --bs-link-color-rgb: 13, 110, 253; 97 | --bs-link-decoration: underline; 98 | --bs-link-hover-color: #0a58ca; 99 | --bs-link-hover-color-rgb: 10, 88, 202; 100 | --bs-code-color: #d63384; 101 | --bs-highlight-bg: #fff3cd; 102 | --bs-border-width: 1px; 103 | --bs-border-style: solid; 104 | --bs-border-color: #dee2e6; 105 | --bs-border-color-translucent: rgba(0, 0, 0, 0.175); 106 | --bs-border-radius: 0.375rem; 107 | --bs-border-radius-sm: 0.25rem; 108 | --bs-border-radius-lg: 0.5rem; 109 | --bs-border-radius-xl: 1rem; 110 | --bs-border-radius-xxl: 2rem; 111 | --bs-border-radius-2xl: var(--bs-border-radius-xxl); 112 | --bs-border-radius-pill: 50rem; 113 | --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); 114 | --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); 115 | --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); 116 | --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); 117 | --bs-focus-ring-width: 0.25rem; 118 | --bs-focus-ring-opacity: 0.25; 119 | --bs-focus-ring-color: rgba(13, 110, 253, 0.25); 120 | --bs-form-valid-color: #198754; 121 | --bs-form-valid-border-color: #198754; 122 | --bs-form-invalid-color: #dc3545; 123 | --bs-form-invalid-border-color: #dc3545; 124 | } 125 | 126 | [data-bs-theme=dark] { 127 | color-scheme: dark; 128 | --bs-body-color: #dee2e6; 129 | --bs-body-color-rgb: 222, 226, 230; 130 | --bs-body-bg: #212529; 131 | --bs-body-bg-rgb: 33, 37, 41; 132 | --bs-emphasis-color: #fff; 133 | --bs-emphasis-color-rgb: 255, 255, 255; 134 | --bs-secondary-color: rgba(222, 226, 230, 0.75); 135 | --bs-secondary-color-rgb: 222, 226, 230; 136 | --bs-secondary-bg: #343a40; 137 | --bs-secondary-bg-rgb: 52, 58, 64; 138 | --bs-tertiary-color: rgba(222, 226, 230, 0.5); 139 | --bs-tertiary-color-rgb: 222, 226, 230; 140 | --bs-tertiary-bg: #2b3035; 141 | --bs-tertiary-bg-rgb: 43, 48, 53; 142 | --bs-primary-text-emphasis: #6ea8fe; 143 | --bs-secondary-text-emphasis: #a7acb1; 144 | --bs-success-text-emphasis: #75b798; 145 | --bs-info-text-emphasis: #6edff6; 146 | --bs-warning-text-emphasis: #ffda6a; 147 | --bs-danger-text-emphasis: #ea868f; 148 | --bs-light-text-emphasis: #f8f9fa; 149 | --bs-dark-text-emphasis: #dee2e6; 150 | --bs-primary-bg-subtle: #031633; 151 | --bs-secondary-bg-subtle: #161719; 152 | --bs-success-bg-subtle: #051b11; 153 | --bs-info-bg-subtle: #032830; 154 | --bs-warning-bg-subtle: #332701; 155 | --bs-danger-bg-subtle: #2c0b0e; 156 | --bs-light-bg-subtle: #343a40; 157 | --bs-dark-bg-subtle: #1a1d20; 158 | --bs-primary-border-subtle: #084298; 159 | --bs-secondary-border-subtle: #41464b; 160 | --bs-success-border-subtle: #0f5132; 161 | --bs-info-border-subtle: #087990; 162 | --bs-warning-border-subtle: #997404; 163 | --bs-danger-border-subtle: #842029; 164 | --bs-light-border-subtle: #495057; 165 | --bs-dark-border-subtle: #343a40; 166 | --bs-heading-color: inherit; 167 | --bs-link-color: #6ea8fe; 168 | --bs-link-hover-color: #8bb9fe; 169 | --bs-link-color-rgb: 110, 168, 254; 170 | --bs-link-hover-color-rgb: 139, 185, 254; 171 | --bs-code-color: #e685b5; 172 | --bs-border-color: #495057; 173 | --bs-border-color-translucent: rgba(255, 255, 255, 0.15); 174 | --bs-form-valid-color: #75b798; 175 | --bs-form-valid-border-color: #75b798; 176 | --bs-form-invalid-color: #ea868f; 177 | --bs-form-invalid-border-color: #ea868f; 178 | } 179 | 180 | *, 181 | *::before, 182 | *::after { 183 | box-sizing: border-box; 184 | } 185 | 186 | @media (prefers-reduced-motion: no-preference) { 187 | :root { 188 | scroll-behavior: smooth; 189 | } 190 | } 191 | 192 | body { 193 | margin: 0; 194 | font-family: var(--bs-body-font-family); 195 | font-size: var(--bs-body-font-size); 196 | font-weight: var(--bs-body-font-weight); 197 | line-height: var(--bs-body-line-height); 198 | color: var(--bs-body-color); 199 | text-align: var(--bs-body-text-align); 200 | background-color: var(--bs-body-bg); 201 | -webkit-text-size-adjust: 100%; 202 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 203 | } 204 | 205 | hr { 206 | margin: 1rem 0; 207 | color: inherit; 208 | border: 0; 209 | border-top: var(--bs-border-width) solid; 210 | opacity: 0.25; 211 | } 212 | 213 | h6, h5, h4, h3, h2, h1 { 214 | margin-top: 0; 215 | margin-bottom: 0.5rem; 216 | font-weight: 500; 217 | line-height: 1.2; 218 | color: var(--bs-heading-color); 219 | } 220 | 221 | h1 { 222 | font-size: calc(1.375rem + 1.5vw); 223 | } 224 | @media (min-width: 1200px) { 225 | h1 { 226 | font-size: 2.5rem; 227 | } 228 | } 229 | 230 | h2 { 231 | font-size: calc(1.325rem + 0.9vw); 232 | } 233 | @media (min-width: 1200px) { 234 | h2 { 235 | font-size: 2rem; 236 | } 237 | } 238 | 239 | h3 { 240 | font-size: calc(1.3rem + 0.6vw); 241 | } 242 | @media (min-width: 1200px) { 243 | h3 { 244 | font-size: 1.75rem; 245 | } 246 | } 247 | 248 | h4 { 249 | font-size: calc(1.275rem + 0.3vw); 250 | } 251 | @media (min-width: 1200px) { 252 | h4 { 253 | font-size: 1.5rem; 254 | } 255 | } 256 | 257 | h5 { 258 | font-size: 1.25rem; 259 | } 260 | 261 | h6 { 262 | font-size: 1rem; 263 | } 264 | 265 | p { 266 | margin-top: 0; 267 | margin-bottom: 1rem; 268 | } 269 | 270 | abbr[title] { 271 | -webkit-text-decoration: underline dotted; 272 | text-decoration: underline dotted; 273 | cursor: help; 274 | -webkit-text-decoration-skip-ink: none; 275 | text-decoration-skip-ink: none; 276 | } 277 | 278 | address { 279 | margin-bottom: 1rem; 280 | font-style: normal; 281 | line-height: inherit; 282 | } 283 | 284 | ol, 285 | ul { 286 | padding-left: 2rem; 287 | } 288 | 289 | ol, 290 | ul, 291 | dl { 292 | margin-top: 0; 293 | margin-bottom: 1rem; 294 | } 295 | 296 | ol ol, 297 | ul ul, 298 | ol ul, 299 | ul ol { 300 | margin-bottom: 0; 301 | } 302 | 303 | dt { 304 | font-weight: 700; 305 | } 306 | 307 | dd { 308 | margin-bottom: 0.5rem; 309 | margin-left: 0; 310 | } 311 | 312 | blockquote { 313 | margin: 0 0 1rem; 314 | } 315 | 316 | b, 317 | strong { 318 | font-weight: bolder; 319 | } 320 | 321 | small { 322 | font-size: 0.875em; 323 | } 324 | 325 | mark { 326 | padding: 0.1875em; 327 | background-color: var(--bs-highlight-bg); 328 | } 329 | 330 | sub, 331 | sup { 332 | position: relative; 333 | font-size: 0.75em; 334 | line-height: 0; 335 | vertical-align: baseline; 336 | } 337 | 338 | sub { 339 | bottom: -0.25em; 340 | } 341 | 342 | sup { 343 | top: -0.5em; 344 | } 345 | 346 | a { 347 | color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); 348 | text-decoration: underline; 349 | } 350 | a:hover { 351 | --bs-link-color-rgb: var(--bs-link-hover-color-rgb); 352 | } 353 | 354 | a:not([href]):not([class]), a:not([href]):not([class]):hover { 355 | color: inherit; 356 | text-decoration: none; 357 | } 358 | 359 | pre, 360 | code, 361 | kbd, 362 | samp { 363 | font-family: var(--bs-font-monospace); 364 | font-size: 1em; 365 | } 366 | 367 | pre { 368 | display: block; 369 | margin-top: 0; 370 | margin-bottom: 1rem; 371 | overflow: auto; 372 | font-size: 0.875em; 373 | } 374 | pre code { 375 | font-size: inherit; 376 | color: inherit; 377 | word-break: normal; 378 | } 379 | 380 | code { 381 | font-size: 0.875em; 382 | color: var(--bs-code-color); 383 | word-wrap: break-word; 384 | } 385 | a > code { 386 | color: inherit; 387 | } 388 | 389 | kbd { 390 | padding: 0.1875rem 0.375rem; 391 | font-size: 0.875em; 392 | color: var(--bs-body-bg); 393 | background-color: var(--bs-body-color); 394 | border-radius: 0.25rem; 395 | } 396 | kbd kbd { 397 | padding: 0; 398 | font-size: 1em; 399 | } 400 | 401 | figure { 402 | margin: 0 0 1rem; 403 | } 404 | 405 | img, 406 | svg { 407 | vertical-align: middle; 408 | } 409 | 410 | table { 411 | caption-side: bottom; 412 | border-collapse: collapse; 413 | } 414 | 415 | caption { 416 | padding-top: 0.5rem; 417 | padding-bottom: 0.5rem; 418 | color: var(--bs-secondary-color); 419 | text-align: left; 420 | } 421 | 422 | th { 423 | text-align: inherit; 424 | text-align: -webkit-match-parent; 425 | } 426 | 427 | thead, 428 | tbody, 429 | tfoot, 430 | tr, 431 | td, 432 | th { 433 | border-color: inherit; 434 | border-style: solid; 435 | border-width: 0; 436 | } 437 | 438 | label { 439 | display: inline-block; 440 | } 441 | 442 | button { 443 | border-radius: 0; 444 | } 445 | 446 | button:focus:not(:focus-visible) { 447 | outline: 0; 448 | } 449 | 450 | input, 451 | button, 452 | select, 453 | optgroup, 454 | textarea { 455 | margin: 0; 456 | font-family: inherit; 457 | font-size: inherit; 458 | line-height: inherit; 459 | } 460 | 461 | button, 462 | select { 463 | text-transform: none; 464 | } 465 | 466 | [role=button] { 467 | cursor: pointer; 468 | } 469 | 470 | select { 471 | word-wrap: normal; 472 | } 473 | select:disabled { 474 | opacity: 1; 475 | } 476 | 477 | [list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { 478 | display: none !important; 479 | } 480 | 481 | button, 482 | [type=button], 483 | [type=reset], 484 | [type=submit] { 485 | -webkit-appearance: button; 486 | } 487 | button:not(:disabled), 488 | [type=button]:not(:disabled), 489 | [type=reset]:not(:disabled), 490 | [type=submit]:not(:disabled) { 491 | cursor: pointer; 492 | } 493 | 494 | ::-moz-focus-inner { 495 | padding: 0; 496 | border-style: none; 497 | } 498 | 499 | textarea { 500 | resize: vertical; 501 | } 502 | 503 | fieldset { 504 | min-width: 0; 505 | padding: 0; 506 | margin: 0; 507 | border: 0; 508 | } 509 | 510 | legend { 511 | float: left; 512 | width: 100%; 513 | padding: 0; 514 | margin-bottom: 0.5rem; 515 | font-size: calc(1.275rem + 0.3vw); 516 | line-height: inherit; 517 | } 518 | @media (min-width: 1200px) { 519 | legend { 520 | font-size: 1.5rem; 521 | } 522 | } 523 | legend + * { 524 | clear: left; 525 | } 526 | 527 | ::-webkit-datetime-edit-fields-wrapper, 528 | ::-webkit-datetime-edit-text, 529 | ::-webkit-datetime-edit-minute, 530 | ::-webkit-datetime-edit-hour-field, 531 | ::-webkit-datetime-edit-day-field, 532 | ::-webkit-datetime-edit-month-field, 533 | ::-webkit-datetime-edit-year-field { 534 | padding: 0; 535 | } 536 | 537 | ::-webkit-inner-spin-button { 538 | height: auto; 539 | } 540 | 541 | [type=search] { 542 | -webkit-appearance: textfield; 543 | outline-offset: -2px; 544 | } 545 | 546 | /* rtl:raw: 547 | [type="tel"], 548 | [type="url"], 549 | [type="email"], 550 | [type="number"] { 551 | direction: ltr; 552 | } 553 | */ 554 | ::-webkit-search-decoration { 555 | -webkit-appearance: none; 556 | } 557 | 558 | ::-webkit-color-swatch-wrapper { 559 | padding: 0; 560 | } 561 | 562 | ::-webkit-file-upload-button { 563 | font: inherit; 564 | -webkit-appearance: button; 565 | } 566 | 567 | ::file-selector-button { 568 | font: inherit; 569 | -webkit-appearance: button; 570 | } 571 | 572 | output { 573 | display: inline-block; 574 | } 575 | 576 | iframe { 577 | border: 0; 578 | } 579 | 580 | summary { 581 | display: list-item; 582 | cursor: pointer; 583 | } 584 | 585 | progress { 586 | vertical-align: baseline; 587 | } 588 | 589 | [hidden] { 590 | display: none !important; 591 | } 592 | 593 | /*# sourceMappingURL=bootstrap-reboot.css.map */ -------------------------------------------------------------------------------- /core/public/static/assets/vendor/bootstrap/css/bootstrap-reboot.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v5.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2023 The Bootstrap Authors 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5 | */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important} 6 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */ -------------------------------------------------------------------------------- /core/public/static/assets/vendor/bootstrap/css/bootstrap-reboot.rtl.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v5.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2023 The Bootstrap Authors 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5 | */ 6 | :root, 7 | [data-bs-theme=light] { 8 | --bs-blue: #0d6efd; 9 | --bs-indigo: #6610f2; 10 | --bs-purple: #6f42c1; 11 | --bs-pink: #d63384; 12 | --bs-red: #dc3545; 13 | --bs-orange: #fd7e14; 14 | --bs-yellow: #ffc107; 15 | --bs-green: #198754; 16 | --bs-teal: #20c997; 17 | --bs-cyan: #0dcaf0; 18 | --bs-black: #000; 19 | --bs-white: #fff; 20 | --bs-gray: #6c757d; 21 | --bs-gray-dark: #343a40; 22 | --bs-gray-100: #f8f9fa; 23 | --bs-gray-200: #e9ecef; 24 | --bs-gray-300: #dee2e6; 25 | --bs-gray-400: #ced4da; 26 | --bs-gray-500: #adb5bd; 27 | --bs-gray-600: #6c757d; 28 | --bs-gray-700: #495057; 29 | --bs-gray-800: #343a40; 30 | --bs-gray-900: #212529; 31 | --bs-primary: #0d6efd; 32 | --bs-secondary: #6c757d; 33 | --bs-success: #198754; 34 | --bs-info: #0dcaf0; 35 | --bs-warning: #ffc107; 36 | --bs-danger: #dc3545; 37 | --bs-light: #f8f9fa; 38 | --bs-dark: #212529; 39 | --bs-primary-rgb: 13, 110, 253; 40 | --bs-secondary-rgb: 108, 117, 125; 41 | --bs-success-rgb: 25, 135, 84; 42 | --bs-info-rgb: 13, 202, 240; 43 | --bs-warning-rgb: 255, 193, 7; 44 | --bs-danger-rgb: 220, 53, 69; 45 | --bs-light-rgb: 248, 249, 250; 46 | --bs-dark-rgb: 33, 37, 41; 47 | --bs-primary-text-emphasis: #052c65; 48 | --bs-secondary-text-emphasis: #2b2f32; 49 | --bs-success-text-emphasis: #0a3622; 50 | --bs-info-text-emphasis: #055160; 51 | --bs-warning-text-emphasis: #664d03; 52 | --bs-danger-text-emphasis: #58151c; 53 | --bs-light-text-emphasis: #495057; 54 | --bs-dark-text-emphasis: #495057; 55 | --bs-primary-bg-subtle: #cfe2ff; 56 | --bs-secondary-bg-subtle: #e2e3e5; 57 | --bs-success-bg-subtle: #d1e7dd; 58 | --bs-info-bg-subtle: #cff4fc; 59 | --bs-warning-bg-subtle: #fff3cd; 60 | --bs-danger-bg-subtle: #f8d7da; 61 | --bs-light-bg-subtle: #fcfcfd; 62 | --bs-dark-bg-subtle: #ced4da; 63 | --bs-primary-border-subtle: #9ec5fe; 64 | --bs-secondary-border-subtle: #c4c8cb; 65 | --bs-success-border-subtle: #a3cfbb; 66 | --bs-info-border-subtle: #9eeaf9; 67 | --bs-warning-border-subtle: #ffe69c; 68 | --bs-danger-border-subtle: #f1aeb5; 69 | --bs-light-border-subtle: #e9ecef; 70 | --bs-dark-border-subtle: #adb5bd; 71 | --bs-white-rgb: 255, 255, 255; 72 | --bs-black-rgb: 0, 0, 0; 73 | --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 74 | --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 75 | --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); 76 | --bs-body-font-family: var(--bs-font-sans-serif); 77 | --bs-body-font-size: 1rem; 78 | --bs-body-font-weight: 400; 79 | --bs-body-line-height: 1.5; 80 | --bs-body-color: #212529; 81 | --bs-body-color-rgb: 33, 37, 41; 82 | --bs-body-bg: #fff; 83 | --bs-body-bg-rgb: 255, 255, 255; 84 | --bs-emphasis-color: #000; 85 | --bs-emphasis-color-rgb: 0, 0, 0; 86 | --bs-secondary-color: rgba(33, 37, 41, 0.75); 87 | --bs-secondary-color-rgb: 33, 37, 41; 88 | --bs-secondary-bg: #e9ecef; 89 | --bs-secondary-bg-rgb: 233, 236, 239; 90 | --bs-tertiary-color: rgba(33, 37, 41, 0.5); 91 | --bs-tertiary-color-rgb: 33, 37, 41; 92 | --bs-tertiary-bg: #f8f9fa; 93 | --bs-tertiary-bg-rgb: 248, 249, 250; 94 | --bs-heading-color: inherit; 95 | --bs-link-color: #0d6efd; 96 | --bs-link-color-rgb: 13, 110, 253; 97 | --bs-link-decoration: underline; 98 | --bs-link-hover-color: #0a58ca; 99 | --bs-link-hover-color-rgb: 10, 88, 202; 100 | --bs-code-color: #d63384; 101 | --bs-highlight-bg: #fff3cd; 102 | --bs-border-width: 1px; 103 | --bs-border-style: solid; 104 | --bs-border-color: #dee2e6; 105 | --bs-border-color-translucent: rgba(0, 0, 0, 0.175); 106 | --bs-border-radius: 0.375rem; 107 | --bs-border-radius-sm: 0.25rem; 108 | --bs-border-radius-lg: 0.5rem; 109 | --bs-border-radius-xl: 1rem; 110 | --bs-border-radius-xxl: 2rem; 111 | --bs-border-radius-2xl: var(--bs-border-radius-xxl); 112 | --bs-border-radius-pill: 50rem; 113 | --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); 114 | --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); 115 | --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); 116 | --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); 117 | --bs-focus-ring-width: 0.25rem; 118 | --bs-focus-ring-opacity: 0.25; 119 | --bs-focus-ring-color: rgba(13, 110, 253, 0.25); 120 | --bs-form-valid-color: #198754; 121 | --bs-form-valid-border-color: #198754; 122 | --bs-form-invalid-color: #dc3545; 123 | --bs-form-invalid-border-color: #dc3545; 124 | } 125 | 126 | [data-bs-theme=dark] { 127 | color-scheme: dark; 128 | --bs-body-color: #dee2e6; 129 | --bs-body-color-rgb: 222, 226, 230; 130 | --bs-body-bg: #212529; 131 | --bs-body-bg-rgb: 33, 37, 41; 132 | --bs-emphasis-color: #fff; 133 | --bs-emphasis-color-rgb: 255, 255, 255; 134 | --bs-secondary-color: rgba(222, 226, 230, 0.75); 135 | --bs-secondary-color-rgb: 222, 226, 230; 136 | --bs-secondary-bg: #343a40; 137 | --bs-secondary-bg-rgb: 52, 58, 64; 138 | --bs-tertiary-color: rgba(222, 226, 230, 0.5); 139 | --bs-tertiary-color-rgb: 222, 226, 230; 140 | --bs-tertiary-bg: #2b3035; 141 | --bs-tertiary-bg-rgb: 43, 48, 53; 142 | --bs-primary-text-emphasis: #6ea8fe; 143 | --bs-secondary-text-emphasis: #a7acb1; 144 | --bs-success-text-emphasis: #75b798; 145 | --bs-info-text-emphasis: #6edff6; 146 | --bs-warning-text-emphasis: #ffda6a; 147 | --bs-danger-text-emphasis: #ea868f; 148 | --bs-light-text-emphasis: #f8f9fa; 149 | --bs-dark-text-emphasis: #dee2e6; 150 | --bs-primary-bg-subtle: #031633; 151 | --bs-secondary-bg-subtle: #161719; 152 | --bs-success-bg-subtle: #051b11; 153 | --bs-info-bg-subtle: #032830; 154 | --bs-warning-bg-subtle: #332701; 155 | --bs-danger-bg-subtle: #2c0b0e; 156 | --bs-light-bg-subtle: #343a40; 157 | --bs-dark-bg-subtle: #1a1d20; 158 | --bs-primary-border-subtle: #084298; 159 | --bs-secondary-border-subtle: #41464b; 160 | --bs-success-border-subtle: #0f5132; 161 | --bs-info-border-subtle: #087990; 162 | --bs-warning-border-subtle: #997404; 163 | --bs-danger-border-subtle: #842029; 164 | --bs-light-border-subtle: #495057; 165 | --bs-dark-border-subtle: #343a40; 166 | --bs-heading-color: inherit; 167 | --bs-link-color: #6ea8fe; 168 | --bs-link-hover-color: #8bb9fe; 169 | --bs-link-color-rgb: 110, 168, 254; 170 | --bs-link-hover-color-rgb: 139, 185, 254; 171 | --bs-code-color: #e685b5; 172 | --bs-border-color: #495057; 173 | --bs-border-color-translucent: rgba(255, 255, 255, 0.15); 174 | --bs-form-valid-color: #75b798; 175 | --bs-form-valid-border-color: #75b798; 176 | --bs-form-invalid-color: #ea868f; 177 | --bs-form-invalid-border-color: #ea868f; 178 | } 179 | 180 | *, 181 | *::before, 182 | *::after { 183 | box-sizing: border-box; 184 | } 185 | 186 | @media (prefers-reduced-motion: no-preference) { 187 | :root { 188 | scroll-behavior: smooth; 189 | } 190 | } 191 | 192 | body { 193 | margin: 0; 194 | font-family: var(--bs-body-font-family); 195 | font-size: var(--bs-body-font-size); 196 | font-weight: var(--bs-body-font-weight); 197 | line-height: var(--bs-body-line-height); 198 | color: var(--bs-body-color); 199 | text-align: var(--bs-body-text-align); 200 | background-color: var(--bs-body-bg); 201 | -webkit-text-size-adjust: 100%; 202 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 203 | } 204 | 205 | hr { 206 | margin: 1rem 0; 207 | color: inherit; 208 | border: 0; 209 | border-top: var(--bs-border-width) solid; 210 | opacity: 0.25; 211 | } 212 | 213 | h6, h5, h4, h3, h2, h1 { 214 | margin-top: 0; 215 | margin-bottom: 0.5rem; 216 | font-weight: 500; 217 | line-height: 1.2; 218 | color: var(--bs-heading-color); 219 | } 220 | 221 | h1 { 222 | font-size: calc(1.375rem + 1.5vw); 223 | } 224 | @media (min-width: 1200px) { 225 | h1 { 226 | font-size: 2.5rem; 227 | } 228 | } 229 | 230 | h2 { 231 | font-size: calc(1.325rem + 0.9vw); 232 | } 233 | @media (min-width: 1200px) { 234 | h2 { 235 | font-size: 2rem; 236 | } 237 | } 238 | 239 | h3 { 240 | font-size: calc(1.3rem + 0.6vw); 241 | } 242 | @media (min-width: 1200px) { 243 | h3 { 244 | font-size: 1.75rem; 245 | } 246 | } 247 | 248 | h4 { 249 | font-size: calc(1.275rem + 0.3vw); 250 | } 251 | @media (min-width: 1200px) { 252 | h4 { 253 | font-size: 1.5rem; 254 | } 255 | } 256 | 257 | h5 { 258 | font-size: 1.25rem; 259 | } 260 | 261 | h6 { 262 | font-size: 1rem; 263 | } 264 | 265 | p { 266 | margin-top: 0; 267 | margin-bottom: 1rem; 268 | } 269 | 270 | abbr[title] { 271 | -webkit-text-decoration: underline dotted; 272 | text-decoration: underline dotted; 273 | cursor: help; 274 | -webkit-text-decoration-skip-ink: none; 275 | text-decoration-skip-ink: none; 276 | } 277 | 278 | address { 279 | margin-bottom: 1rem; 280 | font-style: normal; 281 | line-height: inherit; 282 | } 283 | 284 | ol, 285 | ul { 286 | padding-right: 2rem; 287 | } 288 | 289 | ol, 290 | ul, 291 | dl { 292 | margin-top: 0; 293 | margin-bottom: 1rem; 294 | } 295 | 296 | ol ol, 297 | ul ul, 298 | ol ul, 299 | ul ol { 300 | margin-bottom: 0; 301 | } 302 | 303 | dt { 304 | font-weight: 700; 305 | } 306 | 307 | dd { 308 | margin-bottom: 0.5rem; 309 | margin-right: 0; 310 | } 311 | 312 | blockquote { 313 | margin: 0 0 1rem; 314 | } 315 | 316 | b, 317 | strong { 318 | font-weight: bolder; 319 | } 320 | 321 | small { 322 | font-size: 0.875em; 323 | } 324 | 325 | mark { 326 | padding: 0.1875em; 327 | background-color: var(--bs-highlight-bg); 328 | } 329 | 330 | sub, 331 | sup { 332 | position: relative; 333 | font-size: 0.75em; 334 | line-height: 0; 335 | vertical-align: baseline; 336 | } 337 | 338 | sub { 339 | bottom: -0.25em; 340 | } 341 | 342 | sup { 343 | top: -0.5em; 344 | } 345 | 346 | a { 347 | color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); 348 | text-decoration: underline; 349 | } 350 | a:hover { 351 | --bs-link-color-rgb: var(--bs-link-hover-color-rgb); 352 | } 353 | 354 | a:not([href]):not([class]), a:not([href]):not([class]):hover { 355 | color: inherit; 356 | text-decoration: none; 357 | } 358 | 359 | pre, 360 | code, 361 | kbd, 362 | samp { 363 | font-family: var(--bs-font-monospace); 364 | font-size: 1em; 365 | } 366 | 367 | pre { 368 | display: block; 369 | margin-top: 0; 370 | margin-bottom: 1rem; 371 | overflow: auto; 372 | font-size: 0.875em; 373 | } 374 | pre code { 375 | font-size: inherit; 376 | color: inherit; 377 | word-break: normal; 378 | } 379 | 380 | code { 381 | font-size: 0.875em; 382 | color: var(--bs-code-color); 383 | word-wrap: break-word; 384 | } 385 | a > code { 386 | color: inherit; 387 | } 388 | 389 | kbd { 390 | padding: 0.1875rem 0.375rem; 391 | font-size: 0.875em; 392 | color: var(--bs-body-bg); 393 | background-color: var(--bs-body-color); 394 | border-radius: 0.25rem; 395 | } 396 | kbd kbd { 397 | padding: 0; 398 | font-size: 1em; 399 | } 400 | 401 | figure { 402 | margin: 0 0 1rem; 403 | } 404 | 405 | img, 406 | svg { 407 | vertical-align: middle; 408 | } 409 | 410 | table { 411 | caption-side: bottom; 412 | border-collapse: collapse; 413 | } 414 | 415 | caption { 416 | padding-top: 0.5rem; 417 | padding-bottom: 0.5rem; 418 | color: var(--bs-secondary-color); 419 | text-align: right; 420 | } 421 | 422 | th { 423 | text-align: inherit; 424 | text-align: -webkit-match-parent; 425 | } 426 | 427 | thead, 428 | tbody, 429 | tfoot, 430 | tr, 431 | td, 432 | th { 433 | border-color: inherit; 434 | border-style: solid; 435 | border-width: 0; 436 | } 437 | 438 | label { 439 | display: inline-block; 440 | } 441 | 442 | button { 443 | border-radius: 0; 444 | } 445 | 446 | button:focus:not(:focus-visible) { 447 | outline: 0; 448 | } 449 | 450 | input, 451 | button, 452 | select, 453 | optgroup, 454 | textarea { 455 | margin: 0; 456 | font-family: inherit; 457 | font-size: inherit; 458 | line-height: inherit; 459 | } 460 | 461 | button, 462 | select { 463 | text-transform: none; 464 | } 465 | 466 | [role=button] { 467 | cursor: pointer; 468 | } 469 | 470 | select { 471 | word-wrap: normal; 472 | } 473 | select:disabled { 474 | opacity: 1; 475 | } 476 | 477 | [list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { 478 | display: none !important; 479 | } 480 | 481 | button, 482 | [type=button], 483 | [type=reset], 484 | [type=submit] { 485 | -webkit-appearance: button; 486 | } 487 | button:not(:disabled), 488 | [type=button]:not(:disabled), 489 | [type=reset]:not(:disabled), 490 | [type=submit]:not(:disabled) { 491 | cursor: pointer; 492 | } 493 | 494 | ::-moz-focus-inner { 495 | padding: 0; 496 | border-style: none; 497 | } 498 | 499 | textarea { 500 | resize: vertical; 501 | } 502 | 503 | fieldset { 504 | min-width: 0; 505 | padding: 0; 506 | margin: 0; 507 | border: 0; 508 | } 509 | 510 | legend { 511 | float: right; 512 | width: 100%; 513 | padding: 0; 514 | margin-bottom: 0.5rem; 515 | font-size: calc(1.275rem + 0.3vw); 516 | line-height: inherit; 517 | } 518 | @media (min-width: 1200px) { 519 | legend { 520 | font-size: 1.5rem; 521 | } 522 | } 523 | legend + * { 524 | clear: right; 525 | } 526 | 527 | ::-webkit-datetime-edit-fields-wrapper, 528 | ::-webkit-datetime-edit-text, 529 | ::-webkit-datetime-edit-minute, 530 | ::-webkit-datetime-edit-hour-field, 531 | ::-webkit-datetime-edit-day-field, 532 | ::-webkit-datetime-edit-month-field, 533 | ::-webkit-datetime-edit-year-field { 534 | padding: 0; 535 | } 536 | 537 | ::-webkit-inner-spin-button { 538 | height: auto; 539 | } 540 | 541 | [type=search] { 542 | -webkit-appearance: textfield; 543 | outline-offset: -2px; 544 | } 545 | 546 | [type="tel"], 547 | [type="url"], 548 | [type="email"], 549 | [type="number"] { 550 | direction: ltr; 551 | } 552 | ::-webkit-search-decoration { 553 | -webkit-appearance: none; 554 | } 555 | 556 | ::-webkit-color-swatch-wrapper { 557 | padding: 0; 558 | } 559 | 560 | ::-webkit-file-upload-button { 561 | font: inherit; 562 | -webkit-appearance: button; 563 | } 564 | 565 | ::file-selector-button { 566 | font: inherit; 567 | -webkit-appearance: button; 568 | } 569 | 570 | output { 571 | display: inline-block; 572 | } 573 | 574 | iframe { 575 | border: 0; 576 | } 577 | 578 | summary { 579 | display: list-item; 580 | cursor: pointer; 581 | } 582 | 583 | progress { 584 | vertical-align: baseline; 585 | } 586 | 587 | [hidden] { 588 | display: none !important; 589 | } 590 | /*# sourceMappingURL=bootstrap-reboot.rtl.css.map */ -------------------------------------------------------------------------------- /core/public/static/assets/vendor/bootstrap/css/bootstrap-reboot.rtl.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v5.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2023 The Bootstrap Authors 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5 | */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important} 6 | /*# sourceMappingURL=bootstrap-reboot.rtl.min.css.map */ -------------------------------------------------------------------------------- /core/public/static/assets/vendor/boxicons/css/animations.css: -------------------------------------------------------------------------------- 1 | @-webkit-keyframes spin 2 | { 3 | 0% 4 | { 5 | -webkit-transform: rotate(0); 6 | transform: rotate(0); 7 | } 8 | 100% 9 | { 10 | -webkit-transform: rotate(359deg); 11 | transform: rotate(359deg); 12 | } 13 | } 14 | @keyframes spin 15 | { 16 | 0% 17 | { 18 | -webkit-transform: rotate(0); 19 | transform: rotate(0); 20 | } 21 | 100% 22 | { 23 | -webkit-transform: rotate(359deg); 24 | transform: rotate(359deg); 25 | } 26 | } 27 | @-webkit-keyframes burst 28 | { 29 | 0% 30 | { 31 | -webkit-transform: scale(1); 32 | transform: scale(1); 33 | 34 | opacity: 1; 35 | } 36 | 90% 37 | { 38 | -webkit-transform: scale(1.5); 39 | transform: scale(1.5); 40 | 41 | opacity: 0; 42 | } 43 | } 44 | @keyframes burst 45 | { 46 | 0% 47 | { 48 | -webkit-transform: scale(1); 49 | transform: scale(1); 50 | 51 | opacity: 1; 52 | } 53 | 90% 54 | { 55 | -webkit-transform: scale(1.5); 56 | transform: scale(1.5); 57 | 58 | opacity: 0; 59 | } 60 | } 61 | @-webkit-keyframes flashing 62 | { 63 | 0% 64 | { 65 | opacity: 1; 66 | } 67 | 45% 68 | { 69 | opacity: 0; 70 | } 71 | 90% 72 | { 73 | opacity: 1; 74 | } 75 | } 76 | @keyframes flashing 77 | { 78 | 0% 79 | { 80 | opacity: 1; 81 | } 82 | 45% 83 | { 84 | opacity: 0; 85 | } 86 | 90% 87 | { 88 | opacity: 1; 89 | } 90 | } 91 | @-webkit-keyframes fade-left 92 | { 93 | 0% 94 | { 95 | -webkit-transform: translateX(0); 96 | transform: translateX(0); 97 | 98 | opacity: 1; 99 | } 100 | 75% 101 | { 102 | -webkit-transform: translateX(-20px); 103 | transform: translateX(-20px); 104 | 105 | opacity: 0; 106 | } 107 | } 108 | @keyframes fade-left 109 | { 110 | 0% 111 | { 112 | -webkit-transform: translateX(0); 113 | transform: translateX(0); 114 | 115 | opacity: 1; 116 | } 117 | 75% 118 | { 119 | -webkit-transform: translateX(-20px); 120 | transform: translateX(-20px); 121 | 122 | opacity: 0; 123 | } 124 | } 125 | @-webkit-keyframes fade-right 126 | { 127 | 0% 128 | { 129 | -webkit-transform: translateX(0); 130 | transform: translateX(0); 131 | 132 | opacity: 1; 133 | } 134 | 75% 135 | { 136 | -webkit-transform: translateX(20px); 137 | transform: translateX(20px); 138 | 139 | opacity: 0; 140 | } 141 | } 142 | @keyframes fade-right 143 | { 144 | 0% 145 | { 146 | -webkit-transform: translateX(0); 147 | transform: translateX(0); 148 | 149 | opacity: 1; 150 | } 151 | 75% 152 | { 153 | -webkit-transform: translateX(20px); 154 | transform: translateX(20px); 155 | 156 | opacity: 0; 157 | } 158 | } 159 | @-webkit-keyframes fade-up 160 | { 161 | 0% 162 | { 163 | -webkit-transform: translateY(0); 164 | transform: translateY(0); 165 | 166 | opacity: 1; 167 | } 168 | 75% 169 | { 170 | -webkit-transform: translateY(-20px); 171 | transform: translateY(-20px); 172 | 173 | opacity: 0; 174 | } 175 | } 176 | @keyframes fade-up 177 | { 178 | 0% 179 | { 180 | -webkit-transform: translateY(0); 181 | transform: translateY(0); 182 | 183 | opacity: 1; 184 | } 185 | 75% 186 | { 187 | -webkit-transform: translateY(-20px); 188 | transform: translateY(-20px); 189 | 190 | opacity: 0; 191 | } 192 | } 193 | @-webkit-keyframes fade-down 194 | { 195 | 0% 196 | { 197 | -webkit-transform: translateY(0); 198 | transform: translateY(0); 199 | 200 | opacity: 1; 201 | } 202 | 75% 203 | { 204 | -webkit-transform: translateY(20px); 205 | transform: translateY(20px); 206 | 207 | opacity: 0; 208 | } 209 | } 210 | @keyframes fade-down 211 | { 212 | 0% 213 | { 214 | -webkit-transform: translateY(0); 215 | transform: translateY(0); 216 | 217 | opacity: 1; 218 | } 219 | 75% 220 | { 221 | -webkit-transform: translateY(20px); 222 | transform: translateY(20px); 223 | 224 | opacity: 0; 225 | } 226 | } 227 | @-webkit-keyframes tada 228 | { 229 | from 230 | { 231 | -webkit-transform: scale3d(1, 1, 1); 232 | transform: scale3d(1, 1, 1); 233 | } 234 | 235 | 10%, 236 | 20% 237 | { 238 | -webkit-transform: scale3d(.95, .95, .95) rotate3d(0, 0, 1, -10deg); 239 | transform: scale3d(.95, .95, .95) rotate3d(0, 0, 1, -10deg); 240 | } 241 | 242 | 30%, 243 | 50%, 244 | 70%, 245 | 90% 246 | { 247 | -webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg); 248 | transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg); 249 | } 250 | 251 | 40%, 252 | 60%, 253 | 80% 254 | { 255 | -webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, -10deg); 256 | transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, -10deg); 257 | } 258 | 259 | to 260 | { 261 | -webkit-transform: scale3d(1, 1, 1); 262 | transform: scale3d(1, 1, 1); 263 | } 264 | } 265 | 266 | @keyframes tada 267 | { 268 | from 269 | { 270 | -webkit-transform: scale3d(1, 1, 1); 271 | transform: scale3d(1, 1, 1); 272 | } 273 | 274 | 10%, 275 | 20% 276 | { 277 | -webkit-transform: scale3d(.95, .95, .95) rotate3d(0, 0, 1, -10deg); 278 | transform: scale3d(.95, .95, .95) rotate3d(0, 0, 1, -10deg); 279 | } 280 | 281 | 30%, 282 | 50%, 283 | 70%, 284 | 90% 285 | { 286 | -webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg); 287 | transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg); 288 | } 289 | 290 | 40%, 291 | 60%, 292 | 80% 293 | { 294 | -webkit-transform: rotate3d(0, 0, 1, -10deg); 295 | transform: rotate3d(0, 0, 1, -10deg); 296 | } 297 | 298 | to 299 | { 300 | -webkit-transform: scale3d(1, 1, 1); 301 | transform: scale3d(1, 1, 1); 302 | } 303 | } 304 | .bx-spin 305 | { 306 | -webkit-animation: spin 2s linear infinite; 307 | animation: spin 2s linear infinite; 308 | } 309 | .bx-spin-hover:hover 310 | { 311 | -webkit-animation: spin 2s linear infinite; 312 | animation: spin 2s linear infinite; 313 | } 314 | 315 | .bx-tada 316 | { 317 | -webkit-animation: tada 1.5s ease infinite; 318 | animation: tada 1.5s ease infinite; 319 | } 320 | .bx-tada-hover:hover 321 | { 322 | -webkit-animation: tada 1.5s ease infinite; 323 | animation: tada 1.5s ease infinite; 324 | } 325 | 326 | .bx-flashing 327 | { 328 | -webkit-animation: flashing 1.5s infinite linear; 329 | animation: flashing 1.5s infinite linear; 330 | } 331 | .bx-flashing-hover:hover 332 | { 333 | -webkit-animation: flashing 1.5s infinite linear; 334 | animation: flashing 1.5s infinite linear; 335 | } 336 | 337 | .bx-burst 338 | { 339 | -webkit-animation: burst 1.5s infinite linear; 340 | animation: burst 1.5s infinite linear; 341 | } 342 | .bx-burst-hover:hover 343 | { 344 | -webkit-animation: burst 1.5s infinite linear; 345 | animation: burst 1.5s infinite linear; 346 | } 347 | .bx-fade-up 348 | { 349 | -webkit-animation: fade-up 1.5s infinite linear; 350 | animation: fade-up 1.5s infinite linear; 351 | } 352 | .bx-fade-up-hover:hover 353 | { 354 | -webkit-animation: fade-up 1.5s infinite linear; 355 | animation: fade-up 1.5s infinite linear; 356 | } 357 | .bx-fade-down 358 | { 359 | -webkit-animation: fade-down 1.5s infinite linear; 360 | animation: fade-down 1.5s infinite linear; 361 | } 362 | .bx-fade-down-hover:hover 363 | { 364 | -webkit-animation: fade-down 1.5s infinite linear; 365 | animation: fade-down 1.5s infinite linear; 366 | } 367 | .bx-fade-left 368 | { 369 | -webkit-animation: fade-left 1.5s infinite linear; 370 | animation: fade-left 1.5s infinite linear; 371 | } 372 | .bx-fade-left-hover:hover 373 | { 374 | -webkit-animation: fade-left 1.5s infinite linear; 375 | animation: fade-left 1.5s infinite linear; 376 | } 377 | .bx-fade-right 378 | { 379 | -webkit-animation: fade-right 1.5s infinite linear; 380 | animation: fade-right 1.5s infinite linear; 381 | } 382 | .bx-fade-right-hover:hover 383 | { 384 | -webkit-animation: fade-right 1.5s infinite linear; 385 | animation: fade-right 1.5s infinite linear; 386 | } -------------------------------------------------------------------------------- /core/public/static/assets/vendor/boxicons/css/transformations.css: -------------------------------------------------------------------------------- 1 | .bx-rotate-90 2 | { 3 | transform: rotate(90deg); 4 | 5 | -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)'; 6 | } 7 | .bx-rotate-180 8 | { 9 | transform: rotate(180deg); 10 | 11 | -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2)'; 12 | } 13 | .bx-rotate-270 14 | { 15 | transform: rotate(270deg); 16 | 17 | -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)'; 18 | } 19 | .bx-flip-horizontal 20 | { 21 | transform: scaleX(-1); 22 | 23 | -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)'; 24 | } 25 | .bx-flip-vertical 26 | { 27 | transform: scaleY(-1); 28 | 29 | -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)'; 30 | } 31 | -------------------------------------------------------------------------------- /core/public/static/assets/vendor/boxicons/fonts/boxicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/assets/vendor/boxicons/fonts/boxicons.eot -------------------------------------------------------------------------------- /core/public/static/assets/vendor/boxicons/fonts/boxicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/assets/vendor/boxicons/fonts/boxicons.ttf -------------------------------------------------------------------------------- /core/public/static/assets/vendor/boxicons/fonts/boxicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/assets/vendor/boxicons/fonts/boxicons.woff -------------------------------------------------------------------------------- /core/public/static/assets/vendor/boxicons/fonts/boxicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/assets/vendor/boxicons/fonts/boxicons.woff2 -------------------------------------------------------------------------------- /core/public/static/assets/vendor/glightbox/css/glightbox.css: -------------------------------------------------------------------------------- 1 | .glightbox-container { 2 | width: 100%; 3 | height: 100%; 4 | position: fixed; 5 | top: 0; 6 | left: 0; 7 | z-index: 999999 !important; 8 | overflow: hidden; 9 | -ms-touch-action: none; 10 | touch-action: none; 11 | -webkit-text-size-adjust: 100%; 12 | -moz-text-size-adjust: 100%; 13 | -ms-text-size-adjust: 100%; 14 | text-size-adjust: 100%; 15 | -webkit-backface-visibility: hidden; 16 | backface-visibility: hidden; 17 | outline: none; 18 | } 19 | 20 | .glightbox-container.inactive { 21 | display: none; 22 | } 23 | 24 | .glightbox-container .gcontainer { 25 | position: relative; 26 | width: 100%; 27 | height: 100%; 28 | z-index: 9999; 29 | overflow: hidden; 30 | } 31 | 32 | .glightbox-container .gslider { 33 | -webkit-transition: -webkit-transform 0.4s ease; 34 | transition: -webkit-transform 0.4s ease; 35 | transition: transform 0.4s ease; 36 | transition: transform 0.4s ease, -webkit-transform 0.4s ease; 37 | height: 100%; 38 | left: 0; 39 | top: 0; 40 | width: 100%; 41 | position: relative; 42 | overflow: hidden; 43 | display: -webkit-box !important; 44 | display: -ms-flexbox !important; 45 | display: flex !important; 46 | -webkit-box-pack: center; 47 | -ms-flex-pack: center; 48 | justify-content: center; 49 | -webkit-box-align: center; 50 | -ms-flex-align: center; 51 | align-items: center; 52 | -webkit-transform: translate3d(0, 0, 0); 53 | transform: translate3d(0, 0, 0); 54 | } 55 | 56 | .glightbox-container .gslide { 57 | width: 100%; 58 | position: absolute; 59 | -webkit-user-select: none; 60 | -moz-user-select: none; 61 | -ms-user-select: none; 62 | user-select: none; 63 | display: -webkit-box; 64 | display: -ms-flexbox; 65 | display: flex; 66 | -webkit-box-align: center; 67 | -ms-flex-align: center; 68 | align-items: center; 69 | -webkit-box-pack: center; 70 | -ms-flex-pack: center; 71 | justify-content: center; 72 | opacity: 0; 73 | } 74 | 75 | .glightbox-container .gslide.current { 76 | opacity: 1; 77 | z-index: 99999; 78 | position: relative; 79 | } 80 | 81 | .glightbox-container .gslide.prev { 82 | opacity: 1; 83 | z-index: 9999; 84 | } 85 | 86 | .glightbox-container .gslide-inner-content { 87 | width: 100%; 88 | } 89 | 90 | .glightbox-container .ginner-container { 91 | position: relative; 92 | width: 100%; 93 | display: -webkit-box; 94 | display: -ms-flexbox; 95 | display: flex; 96 | -webkit-box-pack: center; 97 | -ms-flex-pack: center; 98 | justify-content: center; 99 | -webkit-box-orient: vertical; 100 | -webkit-box-direction: normal; 101 | -ms-flex-direction: column; 102 | flex-direction: column; 103 | max-width: 100%; 104 | margin: auto; 105 | height: 100vh; 106 | } 107 | 108 | .glightbox-container .ginner-container.gvideo-container { 109 | width: 100%; 110 | } 111 | 112 | .glightbox-container .ginner-container.desc-bottom, 113 | .glightbox-container .ginner-container.desc-top { 114 | -webkit-box-orient: vertical; 115 | -webkit-box-direction: normal; 116 | -ms-flex-direction: column; 117 | flex-direction: column; 118 | } 119 | 120 | .glightbox-container .ginner-container.desc-left, 121 | .glightbox-container .ginner-container.desc-right { 122 | max-width: 100% !important; 123 | } 124 | 125 | .gslide iframe, 126 | .gslide video { 127 | outline: none !important; 128 | border: none; 129 | min-height: 165px; 130 | -webkit-overflow-scrolling: touch; 131 | -ms-touch-action: auto; 132 | touch-action: auto; 133 | } 134 | 135 | .gslide:not(.current) { 136 | pointer-events: none; 137 | } 138 | 139 | .gslide-image { 140 | -webkit-box-align: center; 141 | -ms-flex-align: center; 142 | align-items: center; 143 | } 144 | 145 | .gslide-image img { 146 | max-height: 100vh; 147 | display: block; 148 | padding: 0; 149 | float: none; 150 | outline: none; 151 | border: none; 152 | -webkit-user-select: none; 153 | -moz-user-select: none; 154 | -ms-user-select: none; 155 | user-select: none; 156 | max-width: 100vw; 157 | width: auto; 158 | height: auto; 159 | -o-object-fit: cover; 160 | object-fit: cover; 161 | -ms-touch-action: none; 162 | touch-action: none; 163 | margin: auto; 164 | min-width: 200px; 165 | } 166 | 167 | .desc-top .gslide-image img, 168 | .desc-bottom .gslide-image img { 169 | width: auto; 170 | } 171 | 172 | .desc-left .gslide-image img, 173 | .desc-right .gslide-image img { 174 | width: auto; 175 | max-width: 100%; 176 | } 177 | 178 | .gslide-image img.zoomable { 179 | position: relative; 180 | } 181 | 182 | .gslide-image img.dragging { 183 | cursor: -webkit-grabbing !important; 184 | cursor: grabbing !important; 185 | -webkit-transition: none; 186 | transition: none; 187 | } 188 | 189 | .gslide-video { 190 | position: relative; 191 | max-width: 100vh; 192 | width: 100% !important; 193 | } 194 | 195 | .gslide-video .plyr__poster-enabled.plyr--loading .plyr__poster { 196 | display: none; 197 | } 198 | 199 | .gslide-video .gvideo-wrapper { 200 | width: 100%; 201 | /* max-width: 160vmin; */ 202 | margin: auto; 203 | } 204 | 205 | .gslide-video::before { 206 | content: ''; 207 | position: absolute; 208 | width: 100%; 209 | height: 100%; 210 | background: rgba(255, 0, 0, 0.34); 211 | display: none; 212 | } 213 | 214 | .gslide-video.playing::before { 215 | display: none; 216 | } 217 | 218 | .gslide-video.fullscreen { 219 | max-width: 100% !important; 220 | min-width: 100%; 221 | height: 75vh; 222 | } 223 | 224 | .gslide-video.fullscreen video { 225 | max-width: 100% !important; 226 | width: 100% !important; 227 | } 228 | 229 | .gslide-inline { 230 | background: #fff; 231 | text-align: left; 232 | max-height: calc(100vh - 40px); 233 | overflow: auto; 234 | max-width: 100%; 235 | margin: auto; 236 | } 237 | 238 | .gslide-inline .ginlined-content { 239 | padding: 20px; 240 | width: 100%; 241 | } 242 | 243 | .gslide-inline .dragging { 244 | cursor: -webkit-grabbing !important; 245 | cursor: grabbing !important; 246 | -webkit-transition: none; 247 | transition: none; 248 | } 249 | 250 | .ginlined-content { 251 | overflow: auto; 252 | display: block !important; 253 | opacity: 1; 254 | } 255 | 256 | .gslide-external { 257 | display: -webkit-box; 258 | display: -ms-flexbox; 259 | display: flex; 260 | width: 100%; 261 | min-width: 100%; 262 | background: #fff; 263 | padding: 0; 264 | overflow: auto; 265 | max-height: 75vh; 266 | height: 100%; 267 | } 268 | 269 | .gslide-media { 270 | display: -webkit-box; 271 | display: -ms-flexbox; 272 | display: flex; 273 | width: auto; 274 | } 275 | 276 | .zoomed .gslide-media { 277 | -webkit-box-shadow: none !important; 278 | box-shadow: none !important; 279 | } 280 | 281 | .desc-top .gslide-media, 282 | .desc-bottom .gslide-media { 283 | margin: 0 auto; 284 | -webkit-box-orient: vertical; 285 | -webkit-box-direction: normal; 286 | -ms-flex-direction: column; 287 | flex-direction: column; 288 | } 289 | 290 | .gslide-description { 291 | position: relative; 292 | -webkit-box-flex: 1; 293 | -ms-flex: 1 0 100%; 294 | flex: 1 0 100%; 295 | } 296 | 297 | .gslide-description.description-left, 298 | .gslide-description.description-right { 299 | max-width: 100%; 300 | } 301 | 302 | .gslide-description.description-bottom, 303 | .gslide-description.description-top { 304 | margin: 0 auto; 305 | width: 100%; 306 | } 307 | 308 | .gslide-description p { 309 | margin-bottom: 12px; 310 | } 311 | 312 | .gslide-description p:last-child { 313 | margin-bottom: 0; 314 | } 315 | 316 | .zoomed .gslide-description { 317 | display: none; 318 | } 319 | 320 | .glightbox-button-hidden { 321 | display: none; 322 | } 323 | 324 | 325 | /* 326 | * Description for mobiles 327 | * something like facebook does the description 328 | * for the photos 329 | */ 330 | 331 | .glightbox-mobile .glightbox-container .gslide-description { 332 | height: auto !important; 333 | width: 100%; 334 | position: absolute; 335 | bottom: 0; 336 | padding: 19px 11px; 337 | max-width: 100vw !important; 338 | -webkit-box-ordinal-group: 3 !important; 339 | -ms-flex-order: 2 !important; 340 | order: 2 !important; 341 | max-height: 78vh; 342 | overflow: auto !important; 343 | background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.75))); 344 | background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 100%); 345 | -webkit-transition: opacity 0.3s linear; 346 | transition: opacity 0.3s linear; 347 | padding-bottom: 50px; 348 | } 349 | 350 | .glightbox-mobile .glightbox-container .gslide-title { 351 | color: #fff; 352 | font-size: 1em; 353 | } 354 | 355 | .glightbox-mobile .glightbox-container .gslide-desc { 356 | color: #a1a1a1; 357 | } 358 | 359 | .glightbox-mobile .glightbox-container .gslide-desc a { 360 | color: #fff; 361 | font-weight: bold; 362 | } 363 | 364 | .glightbox-mobile .glightbox-container .gslide-desc * { 365 | color: inherit; 366 | } 367 | 368 | .glightbox-mobile .glightbox-container .gslide-desc .desc-more { 369 | color: #fff; 370 | opacity: 0.4; 371 | } 372 | 373 | .gdesc-open .gslide-media { 374 | -webkit-transition: opacity 0.5s ease; 375 | transition: opacity 0.5s ease; 376 | opacity: 0.4; 377 | } 378 | 379 | .gdesc-open .gdesc-inner { 380 | padding-bottom: 30px; 381 | } 382 | 383 | .gdesc-closed .gslide-media { 384 | -webkit-transition: opacity 0.5s ease; 385 | transition: opacity 0.5s ease; 386 | opacity: 1; 387 | } 388 | 389 | .greset { 390 | -webkit-transition: all 0.3s ease; 391 | transition: all 0.3s ease; 392 | } 393 | 394 | .gabsolute { 395 | position: absolute; 396 | } 397 | 398 | .grelative { 399 | position: relative; 400 | } 401 | 402 | .glightbox-desc { 403 | display: none !important; 404 | } 405 | 406 | .glightbox-open { 407 | overflow: hidden; 408 | } 409 | 410 | .gloader { 411 | height: 25px; 412 | width: 25px; 413 | -webkit-animation: lightboxLoader 0.8s infinite linear; 414 | animation: lightboxLoader 0.8s infinite linear; 415 | border: 2px solid #fff; 416 | border-right-color: transparent; 417 | border-radius: 50%; 418 | position: absolute; 419 | display: block; 420 | z-index: 9999; 421 | left: 0; 422 | right: 0; 423 | margin: 0 auto; 424 | top: 47%; 425 | } 426 | 427 | .goverlay { 428 | width: 100%; 429 | height: calc(100vh + 1px); 430 | position: fixed; 431 | top: -1px; 432 | left: 0; 433 | background: #000; 434 | will-change: opacity; 435 | } 436 | 437 | .glightbox-mobile .goverlay { 438 | background: #000; 439 | } 440 | 441 | .gprev, 442 | .gnext, 443 | .gclose { 444 | z-index: 99999; 445 | cursor: pointer; 446 | width: 26px; 447 | height: 44px; 448 | border: none; 449 | display: -webkit-box; 450 | display: -ms-flexbox; 451 | display: flex; 452 | -webkit-box-pack: center; 453 | -ms-flex-pack: center; 454 | justify-content: center; 455 | -webkit-box-align: center; 456 | -ms-flex-align: center; 457 | align-items: center; 458 | -webkit-box-orient: vertical; 459 | -webkit-box-direction: normal; 460 | -ms-flex-direction: column; 461 | flex-direction: column; 462 | } 463 | 464 | .gprev svg, 465 | .gnext svg, 466 | .gclose svg { 467 | display: block; 468 | width: 25px; 469 | height: auto; 470 | margin: 0; 471 | padding: 0; 472 | } 473 | 474 | .gprev.disabled, 475 | .gnext.disabled, 476 | .gclose.disabled { 477 | opacity: 0.1; 478 | } 479 | 480 | .gprev .garrow, 481 | .gnext .garrow, 482 | .gclose .garrow { 483 | stroke: #fff; 484 | } 485 | 486 | .gbtn.focused { 487 | outline: 2px solid #0f3d81; 488 | } 489 | 490 | iframe.wait-autoplay { 491 | opacity: 0; 492 | } 493 | 494 | .glightbox-closing .gnext, 495 | .glightbox-closing .gprev, 496 | .glightbox-closing .gclose { 497 | opacity: 0 !important; 498 | } 499 | 500 | 501 | /*Skin */ 502 | 503 | .glightbox-clean .gslide-description { 504 | background: #fff; 505 | } 506 | 507 | .glightbox-clean .gdesc-inner { 508 | padding: 22px 20px; 509 | } 510 | 511 | .glightbox-clean .gslide-title { 512 | font-size: 1em; 513 | font-weight: normal; 514 | font-family: arial; 515 | color: #000; 516 | margin-bottom: 19px; 517 | line-height: 1.4em; 518 | } 519 | 520 | .glightbox-clean .gslide-desc { 521 | font-size: 0.86em; 522 | margin-bottom: 0; 523 | font-family: arial; 524 | line-height: 1.4em; 525 | } 526 | 527 | .glightbox-clean .gslide-video { 528 | background: #000; 529 | } 530 | 531 | .glightbox-clean .gprev, 532 | .glightbox-clean .gnext, 533 | .glightbox-clean .gclose { 534 | background-color: rgba(0, 0, 0, 0.75); 535 | border-radius: 4px; 536 | } 537 | 538 | .glightbox-clean .gprev path, 539 | .glightbox-clean .gnext path, 540 | .glightbox-clean .gclose path { 541 | fill: #fff; 542 | } 543 | 544 | .glightbox-clean .gprev { 545 | position: absolute; 546 | top: -100%; 547 | left: 30px; 548 | width: 40px; 549 | height: 50px; 550 | } 551 | 552 | .glightbox-clean .gnext { 553 | position: absolute; 554 | top: -100%; 555 | right: 30px; 556 | width: 40px; 557 | height: 50px; 558 | } 559 | 560 | .glightbox-clean .gclose { 561 | width: 35px; 562 | height: 35px; 563 | top: 15px; 564 | right: 10px; 565 | position: absolute; 566 | } 567 | 568 | .glightbox-clean .gclose svg { 569 | width: 18px; 570 | height: auto; 571 | } 572 | 573 | .glightbox-clean .gclose:hover { 574 | opacity: 1; 575 | } 576 | 577 | 578 | /*CSS Animations*/ 579 | 580 | .gfadeIn { 581 | -webkit-animation: gfadeIn 0.5s ease; 582 | animation: gfadeIn 0.5s ease; 583 | } 584 | 585 | .gfadeOut { 586 | -webkit-animation: gfadeOut 0.5s ease; 587 | animation: gfadeOut 0.5s ease; 588 | } 589 | 590 | .gslideOutLeft { 591 | -webkit-animation: gslideOutLeft 0.3s ease; 592 | animation: gslideOutLeft 0.3s ease; 593 | } 594 | 595 | .gslideInLeft { 596 | -webkit-animation: gslideInLeft 0.3s ease; 597 | animation: gslideInLeft 0.3s ease; 598 | } 599 | 600 | .gslideOutRight { 601 | -webkit-animation: gslideOutRight 0.3s ease; 602 | animation: gslideOutRight 0.3s ease; 603 | } 604 | 605 | .gslideInRight { 606 | -webkit-animation: gslideInRight 0.3s ease; 607 | animation: gslideInRight 0.3s ease; 608 | } 609 | 610 | .gzoomIn { 611 | -webkit-animation: gzoomIn 0.5s ease; 612 | animation: gzoomIn 0.5s ease; 613 | } 614 | 615 | .gzoomOut { 616 | -webkit-animation: gzoomOut 0.5s ease; 617 | animation: gzoomOut 0.5s ease; 618 | } 619 | 620 | @-webkit-keyframes lightboxLoader { 621 | 0% { 622 | -webkit-transform: rotate(0deg); 623 | transform: rotate(0deg); 624 | } 625 | 100% { 626 | -webkit-transform: rotate(360deg); 627 | transform: rotate(360deg); 628 | } 629 | } 630 | 631 | @keyframes lightboxLoader { 632 | 0% { 633 | -webkit-transform: rotate(0deg); 634 | transform: rotate(0deg); 635 | } 636 | 100% { 637 | -webkit-transform: rotate(360deg); 638 | transform: rotate(360deg); 639 | } 640 | } 641 | 642 | @-webkit-keyframes gfadeIn { 643 | from { 644 | opacity: 0; 645 | } 646 | to { 647 | opacity: 1; 648 | } 649 | } 650 | 651 | @keyframes gfadeIn { 652 | from { 653 | opacity: 0; 654 | } 655 | to { 656 | opacity: 1; 657 | } 658 | } 659 | 660 | @-webkit-keyframes gfadeOut { 661 | from { 662 | opacity: 1; 663 | } 664 | to { 665 | opacity: 0; 666 | } 667 | } 668 | 669 | @keyframes gfadeOut { 670 | from { 671 | opacity: 1; 672 | } 673 | to { 674 | opacity: 0; 675 | } 676 | } 677 | 678 | @-webkit-keyframes gslideInLeft { 679 | from { 680 | opacity: 0; 681 | -webkit-transform: translate3d(-60%, 0, 0); 682 | transform: translate3d(-60%, 0, 0); 683 | } 684 | to { 685 | visibility: visible; 686 | -webkit-transform: translate3d(0, 0, 0); 687 | transform: translate3d(0, 0, 0); 688 | opacity: 1; 689 | } 690 | } 691 | 692 | @keyframes gslideInLeft { 693 | from { 694 | opacity: 0; 695 | -webkit-transform: translate3d(-60%, 0, 0); 696 | transform: translate3d(-60%, 0, 0); 697 | } 698 | to { 699 | visibility: visible; 700 | -webkit-transform: translate3d(0, 0, 0); 701 | transform: translate3d(0, 0, 0); 702 | opacity: 1; 703 | } 704 | } 705 | 706 | @-webkit-keyframes gslideOutLeft { 707 | from { 708 | opacity: 1; 709 | visibility: visible; 710 | -webkit-transform: translate3d(0, 0, 0); 711 | transform: translate3d(0, 0, 0); 712 | } 713 | to { 714 | -webkit-transform: translate3d(-60%, 0, 0); 715 | transform: translate3d(-60%, 0, 0); 716 | opacity: 0; 717 | visibility: hidden; 718 | } 719 | } 720 | 721 | @keyframes gslideOutLeft { 722 | from { 723 | opacity: 1; 724 | visibility: visible; 725 | -webkit-transform: translate3d(0, 0, 0); 726 | transform: translate3d(0, 0, 0); 727 | } 728 | to { 729 | -webkit-transform: translate3d(-60%, 0, 0); 730 | transform: translate3d(-60%, 0, 0); 731 | opacity: 0; 732 | visibility: hidden; 733 | } 734 | } 735 | 736 | @-webkit-keyframes gslideInRight { 737 | from { 738 | opacity: 0; 739 | visibility: visible; 740 | -webkit-transform: translate3d(60%, 0, 0); 741 | transform: translate3d(60%, 0, 0); 742 | } 743 | to { 744 | -webkit-transform: translate3d(0, 0, 0); 745 | transform: translate3d(0, 0, 0); 746 | opacity: 1; 747 | } 748 | } 749 | 750 | @keyframes gslideInRight { 751 | from { 752 | opacity: 0; 753 | visibility: visible; 754 | -webkit-transform: translate3d(60%, 0, 0); 755 | transform: translate3d(60%, 0, 0); 756 | } 757 | to { 758 | -webkit-transform: translate3d(0, 0, 0); 759 | transform: translate3d(0, 0, 0); 760 | opacity: 1; 761 | } 762 | } 763 | 764 | @-webkit-keyframes gslideOutRight { 765 | from { 766 | opacity: 1; 767 | visibility: visible; 768 | -webkit-transform: translate3d(0, 0, 0); 769 | transform: translate3d(0, 0, 0); 770 | } 771 | to { 772 | -webkit-transform: translate3d(60%, 0, 0); 773 | transform: translate3d(60%, 0, 0); 774 | opacity: 0; 775 | } 776 | } 777 | 778 | @keyframes gslideOutRight { 779 | from { 780 | opacity: 1; 781 | visibility: visible; 782 | -webkit-transform: translate3d(0, 0, 0); 783 | transform: translate3d(0, 0, 0); 784 | } 785 | to { 786 | -webkit-transform: translate3d(60%, 0, 0); 787 | transform: translate3d(60%, 0, 0); 788 | opacity: 0; 789 | } 790 | } 791 | 792 | @-webkit-keyframes gzoomIn { 793 | from { 794 | opacity: 0; 795 | -webkit-transform: scale3d(0.3, 0.3, 0.3); 796 | transform: scale3d(0.3, 0.3, 0.3); 797 | } 798 | to { 799 | opacity: 1; 800 | } 801 | } 802 | 803 | @keyframes gzoomIn { 804 | from { 805 | opacity: 0; 806 | -webkit-transform: scale3d(0.3, 0.3, 0.3); 807 | transform: scale3d(0.3, 0.3, 0.3); 808 | } 809 | to { 810 | opacity: 1; 811 | } 812 | } 813 | 814 | @-webkit-keyframes gzoomOut { 815 | from { 816 | opacity: 1; 817 | } 818 | 50% { 819 | opacity: 0; 820 | -webkit-transform: scale3d(0.3, 0.3, 0.3); 821 | transform: scale3d(0.3, 0.3, 0.3); 822 | } 823 | to { 824 | opacity: 0; 825 | } 826 | } 827 | 828 | @keyframes gzoomOut { 829 | from { 830 | opacity: 1; 831 | } 832 | 50% { 833 | opacity: 0; 834 | -webkit-transform: scale3d(0.3, 0.3, 0.3); 835 | transform: scale3d(0.3, 0.3, 0.3); 836 | } 837 | to { 838 | opacity: 0; 839 | } 840 | } 841 | 842 | @media (min-width: 769px) { 843 | .glightbox-container .ginner-container { 844 | width: auto; 845 | height: auto; 846 | -webkit-box-orient: horizontal; 847 | -webkit-box-direction: normal; 848 | -ms-flex-direction: row; 849 | flex-direction: row; 850 | } 851 | .glightbox-container .ginner-container.desc-top .gslide-description { 852 | -webkit-box-ordinal-group: 1; 853 | -ms-flex-order: 0; 854 | order: 0; 855 | } 856 | .glightbox-container .ginner-container.desc-top .gslide-image, 857 | .glightbox-container .ginner-container.desc-top .gslide-image img { 858 | -webkit-box-ordinal-group: 2; 859 | -ms-flex-order: 1; 860 | order: 1; 861 | } 862 | .glightbox-container .ginner-container.desc-left .gslide-description { 863 | -webkit-box-ordinal-group: 1; 864 | -ms-flex-order: 0; 865 | order: 0; 866 | } 867 | .glightbox-container .ginner-container.desc-left .gslide-image { 868 | -webkit-box-ordinal-group: 2; 869 | -ms-flex-order: 1; 870 | order: 1; 871 | } 872 | .gslide-image img { 873 | max-height: 97vh; 874 | max-width: 100%; 875 | } 876 | .gslide-image img.zoomable { 877 | cursor: -webkit-zoom-in; 878 | cursor: zoom-in; 879 | } 880 | .zoomed .gslide-image img.zoomable { 881 | cursor: -webkit-grab; 882 | cursor: grab; 883 | } 884 | .gslide-inline { 885 | max-height: 95vh; 886 | } 887 | .gslide-external { 888 | max-height: 100vh; 889 | } 890 | .gslide-description.description-left, 891 | .gslide-description.description-right { 892 | max-width: 275px; 893 | } 894 | .glightbox-open { 895 | height: auto; 896 | } 897 | .goverlay { 898 | background: rgba(0, 0, 0, 0.92); 899 | } 900 | .glightbox-clean .gslide-media { 901 | -webkit-box-shadow: 1px 2px 9px 0px rgba(0, 0, 0, 0.65); 902 | box-shadow: 1px 2px 9px 0px rgba(0, 0, 0, 0.65); 903 | } 904 | .glightbox-clean .description-left .gdesc-inner, 905 | .glightbox-clean .description-right .gdesc-inner { 906 | position: absolute; 907 | height: 100%; 908 | overflow-y: auto; 909 | } 910 | .glightbox-clean .gprev, 911 | .glightbox-clean .gnext, 912 | .glightbox-clean .gclose { 913 | background-color: rgba(0, 0, 0, 0.32); 914 | } 915 | .glightbox-clean .gprev:hover, 916 | .glightbox-clean .gnext:hover, 917 | .glightbox-clean .gclose:hover { 918 | background-color: rgba(0, 0, 0, 0.7); 919 | } 920 | .glightbox-clean .gprev { 921 | top: 45%; 922 | } 923 | .glightbox-clean .gnext { 924 | top: 45%; 925 | } 926 | } 927 | 928 | @media (min-width: 992px) { 929 | .glightbox-clean .gclose { 930 | opacity: 0.7; 931 | right: 20px; 932 | } 933 | } 934 | 935 | @media screen and (max-height: 420px) { 936 | .goverlay { 937 | background: #000; 938 | } 939 | } 940 | -------------------------------------------------------------------------------- /core/public/static/assets/vendor/glightbox/css/glightbox.min.css: -------------------------------------------------------------------------------- 1 | .glightbox-container{width:100%;height:100%;position:fixed;top:0;left:0;z-index:999999!important;overflow:hidden;-ms-touch-action:none;touch-action:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:0}.glightbox-container.inactive{display:none}.glightbox-container .gcontainer{position:relative;width:100%;height:100%;z-index:9999;overflow:hidden}.glightbox-container .gslider{-webkit-transition:-webkit-transform .4s ease;transition:-webkit-transform .4s ease;transition:transform .4s ease;transition:transform .4s ease,-webkit-transform .4s ease;height:100%;left:0;top:0;width:100%;position:relative;overflow:hidden;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.glightbox-container .gslide{width:100%;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;opacity:0}.glightbox-container .gslide.current{opacity:1;z-index:99999;position:relative}.glightbox-container .gslide.prev{opacity:1;z-index:9999}.glightbox-container .gslide-inner-content{width:100%}.glightbox-container .ginner-container{position:relative;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;margin:auto;height:100vh}.glightbox-container .ginner-container.gvideo-container{width:100%}.glightbox-container .ginner-container.desc-bottom,.glightbox-container .ginner-container.desc-top{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.glightbox-container .ginner-container.desc-left,.glightbox-container .ginner-container.desc-right{max-width:100%!important}.gslide iframe,.gslide video{outline:0!important;border:none;min-height:165px;-webkit-overflow-scrolling:touch;-ms-touch-action:auto;touch-action:auto}.gslide:not(.current){pointer-events:none}.gslide-image{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.gslide-image img{max-height:100vh;display:block;padding:0;float:none;outline:0;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:100vw;width:auto;height:auto;-o-object-fit:cover;object-fit:cover;-ms-touch-action:none;touch-action:none;margin:auto;min-width:200px}.desc-bottom .gslide-image img,.desc-top .gslide-image img{width:auto}.desc-left .gslide-image img,.desc-right .gslide-image img{width:auto;max-width:100%}.gslide-image img.zoomable{position:relative}.gslide-image img.dragging{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-transition:none;transition:none}.gslide-video{position:relative;max-width:100vh;width:100%!important}.gslide-video .plyr__poster-enabled.plyr--loading .plyr__poster{display:none}.gslide-video .gvideo-wrapper{width:100%;margin:auto}.gslide-video::before{content:'';position:absolute;width:100%;height:100%;background:rgba(255,0,0,.34);display:none}.gslide-video.playing::before{display:none}.gslide-video.fullscreen{max-width:100%!important;min-width:100%;height:75vh}.gslide-video.fullscreen video{max-width:100%!important;width:100%!important}.gslide-inline{background:#fff;text-align:left;max-height:calc(100vh - 40px);overflow:auto;max-width:100%;margin:auto}.gslide-inline .ginlined-content{padding:20px;width:100%}.gslide-inline .dragging{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-transition:none;transition:none}.ginlined-content{overflow:auto;display:block!important;opacity:1}.gslide-external{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;min-width:100%;background:#fff;padding:0;overflow:auto;max-height:75vh;height:100%}.gslide-media{display:-webkit-box;display:-ms-flexbox;display:flex;width:auto}.zoomed .gslide-media{-webkit-box-shadow:none!important;box-shadow:none!important}.desc-bottom .gslide-media,.desc-top .gslide-media{margin:0 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.gslide-description{position:relative;-webkit-box-flex:1;-ms-flex:1 0 100%;flex:1 0 100%}.gslide-description.description-left,.gslide-description.description-right{max-width:100%}.gslide-description.description-bottom,.gslide-description.description-top{margin:0 auto;width:100%}.gslide-description p{margin-bottom:12px}.gslide-description p:last-child{margin-bottom:0}.zoomed .gslide-description{display:none}.glightbox-button-hidden{display:none}.glightbox-mobile .glightbox-container .gslide-description{height:auto!important;width:100%;position:absolute;bottom:0;padding:19px 11px;max-width:100vw!important;-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important;max-height:78vh;overflow:auto!important;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.75)));background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.75) 100%);-webkit-transition:opacity .3s linear;transition:opacity .3s linear;padding-bottom:50px}.glightbox-mobile .glightbox-container .gslide-title{color:#fff;font-size:1em}.glightbox-mobile .glightbox-container .gslide-desc{color:#a1a1a1}.glightbox-mobile .glightbox-container .gslide-desc a{color:#fff;font-weight:700}.glightbox-mobile .glightbox-container .gslide-desc *{color:inherit}.glightbox-mobile .glightbox-container .gslide-desc .desc-more{color:#fff;opacity:.4}.gdesc-open .gslide-media{-webkit-transition:opacity .5s ease;transition:opacity .5s ease;opacity:.4}.gdesc-open .gdesc-inner{padding-bottom:30px}.gdesc-closed .gslide-media{-webkit-transition:opacity .5s ease;transition:opacity .5s ease;opacity:1}.greset{-webkit-transition:all .3s ease;transition:all .3s ease}.gabsolute{position:absolute}.grelative{position:relative}.glightbox-desc{display:none!important}.glightbox-open{overflow:hidden}.gloader{height:25px;width:25px;-webkit-animation:lightboxLoader .8s infinite linear;animation:lightboxLoader .8s infinite linear;border:2px solid #fff;border-right-color:transparent;border-radius:50%;position:absolute;display:block;z-index:9999;left:0;right:0;margin:0 auto;top:47%}.goverlay{width:100%;height:calc(100vh + 1px);position:fixed;top:-1px;left:0;background:#000;will-change:opacity}.glightbox-mobile .goverlay{background:#000}.gclose,.gnext,.gprev{z-index:99999;cursor:pointer;width:26px;height:44px;border:none;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;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.gclose svg,.gnext svg,.gprev svg{display:block;width:25px;height:auto;margin:0;padding:0}.gclose.disabled,.gnext.disabled,.gprev.disabled{opacity:.1}.gclose .garrow,.gnext .garrow,.gprev .garrow{stroke:#fff}.gbtn.focused{outline:2px solid #0f3d81}iframe.wait-autoplay{opacity:0}.glightbox-closing .gclose,.glightbox-closing .gnext,.glightbox-closing .gprev{opacity:0!important}.glightbox-clean .gslide-description{background:#fff}.glightbox-clean .gdesc-inner{padding:22px 20px}.glightbox-clean .gslide-title{font-size:1em;font-weight:400;font-family:arial;color:#000;margin-bottom:19px;line-height:1.4em}.glightbox-clean .gslide-desc{font-size:.86em;margin-bottom:0;font-family:arial;line-height:1.4em}.glightbox-clean .gslide-video{background:#000}.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgba(0,0,0,.75);border-radius:4px}.glightbox-clean .gclose path,.glightbox-clean .gnext path,.glightbox-clean .gprev path{fill:#fff}.glightbox-clean .gprev{position:absolute;top:-100%;left:30px;width:40px;height:50px}.glightbox-clean .gnext{position:absolute;top:-100%;right:30px;width:40px;height:50px}.glightbox-clean .gclose{width:35px;height:35px;top:15px;right:10px;position:absolute}.glightbox-clean .gclose svg{width:18px;height:auto}.glightbox-clean .gclose:hover{opacity:1}.gfadeIn{-webkit-animation:gfadeIn .5s ease;animation:gfadeIn .5s ease}.gfadeOut{-webkit-animation:gfadeOut .5s ease;animation:gfadeOut .5s ease}.gslideOutLeft{-webkit-animation:gslideOutLeft .3s ease;animation:gslideOutLeft .3s ease}.gslideInLeft{-webkit-animation:gslideInLeft .3s ease;animation:gslideInLeft .3s ease}.gslideOutRight{-webkit-animation:gslideOutRight .3s ease;animation:gslideOutRight .3s ease}.gslideInRight{-webkit-animation:gslideInRight .3s ease;animation:gslideInRight .3s ease}.gzoomIn{-webkit-animation:gzoomIn .5s ease;animation:gzoomIn .5s ease}.gzoomOut{-webkit-animation:gzoomOut .5s ease;animation:gzoomOut .5s ease}@-webkit-keyframes lightboxLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lightboxLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes gfadeIn{from{opacity:0}to{opacity:1}}@keyframes gfadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes gfadeOut{from{opacity:1}to{opacity:0}}@keyframes gfadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes gslideInLeft{from{opacity:0;-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0)}to{visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes gslideInLeft{from{opacity:0;-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0)}to{visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes gslideOutLeft{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0);opacity:0;visibility:hidden}}@keyframes gslideOutLeft{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0);opacity:0;visibility:hidden}}@-webkit-keyframes gslideInRight{from{opacity:0;visibility:visible;-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes gslideInRight{from{opacity:0;visibility:visible;-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes gslideOutRight{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0);opacity:0}}@keyframes gslideOutRight{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0);opacity:0}}@-webkit-keyframes gzoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:1}}@keyframes gzoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:1}}@-webkit-keyframes gzoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes gzoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@media (min-width:769px){.glightbox-container .ginner-container{width:auto;height:auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.glightbox-container .ginner-container.desc-top .gslide-description{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.glightbox-container .ginner-container.desc-top .gslide-image,.glightbox-container .ginner-container.desc-top .gslide-image img{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.glightbox-container .ginner-container.desc-left .gslide-description{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.glightbox-container .ginner-container.desc-left .gslide-image{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.gslide-image img{max-height:97vh;max-width:100%}.gslide-image img.zoomable{cursor:-webkit-zoom-in;cursor:zoom-in}.zoomed .gslide-image img.zoomable{cursor:-webkit-grab;cursor:grab}.gslide-inline{max-height:95vh}.gslide-external{max-height:100vh}.gslide-description.description-left,.gslide-description.description-right{max-width:275px}.glightbox-open{height:auto}.goverlay{background:rgba(0,0,0,.92)}.glightbox-clean .gslide-media{-webkit-box-shadow:1px 2px 9px 0 rgba(0,0,0,.65);box-shadow:1px 2px 9px 0 rgba(0,0,0,.65)}.glightbox-clean .description-left .gdesc-inner,.glightbox-clean .description-right .gdesc-inner{position:absolute;height:100%;overflow-y:auto}.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgba(0,0,0,.32)}.glightbox-clean .gclose:hover,.glightbox-clean .gnext:hover,.glightbox-clean .gprev:hover{background-color:rgba(0,0,0,.7)}.glightbox-clean .gprev{top:45%}.glightbox-clean .gnext{top:45%}}@media (min-width:992px){.glightbox-clean .gclose{opacity:.7;right:20px}}@media screen and (max-height:420px){.goverlay{background:#000}} -------------------------------------------------------------------------------- /core/public/static/assets/vendor/php-email-form/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * PHP Email Form Validation - v3.6 3 | * URL: https://bootstrapmade.com/php-email-form/ 4 | * Author: BootstrapMade.com 5 | */ 6 | (function () { 7 | "use strict"; 8 | 9 | let forms = document.querySelectorAll('.php-email-form'); 10 | 11 | forms.forEach( function(e) { 12 | e.addEventListener('submit', function(event) { 13 | event.preventDefault(); 14 | 15 | let thisForm = this; 16 | 17 | let action = thisForm.getAttribute('action'); 18 | let recaptcha = thisForm.getAttribute('data-recaptcha-site-key'); 19 | 20 | if( ! action ) { 21 | displayError(thisForm, 'The form action property is not set!'); 22 | return; 23 | } 24 | thisForm.querySelector('.loading').classList.add('d-block'); 25 | thisForm.querySelector('.error-message').classList.remove('d-block'); 26 | thisForm.querySelector('.sent-message').classList.remove('d-block'); 27 | 28 | let formData = new FormData( thisForm ); 29 | 30 | if ( recaptcha ) { 31 | if(typeof grecaptcha !== "undefined" ) { 32 | grecaptcha.ready(function() { 33 | try { 34 | grecaptcha.execute(recaptcha, {action: 'php_email_form_submit'}) 35 | .then(token => { 36 | formData.set('recaptcha-response', token); 37 | php_email_form_submit(thisForm, action, formData); 38 | }) 39 | } catch(error) { 40 | displayError(thisForm, error); 41 | } 42 | }); 43 | } else { 44 | displayError(thisForm, 'The reCaptcha javascript API url is not loaded!') 45 | } 46 | } else { 47 | php_email_form_submit(thisForm, action, formData); 48 | } 49 | }); 50 | }); 51 | 52 | function php_email_form_submit(thisForm, action, formData) { 53 | fetch(action, { 54 | method: 'POST', 55 | body: formData, 56 | headers: {'X-Requested-With': 'XMLHttpRequest'} 57 | }) 58 | .then(response => { 59 | if( response.ok ) { 60 | return response.text(); 61 | } else { 62 | throw new Error(`${response.status} ${response.statusText} ${response.url}`); 63 | } 64 | }) 65 | .then(data => { 66 | thisForm.querySelector('.loading').classList.remove('d-block'); 67 | if (data.trim() == 'OK') { 68 | thisForm.querySelector('.sent-message').classList.add('d-block'); 69 | thisForm.reset(); 70 | } else { 71 | throw new Error(data ? data : 'Form submission failed and no error message returned from: ' + action); 72 | } 73 | }) 74 | .catch((error) => { 75 | displayError(thisForm, error); 76 | }); 77 | } 78 | 79 | function displayError(thisForm, error) { 80 | thisForm.querySelector('.loading').classList.remove('d-block'); 81 | thisForm.querySelector('.error-message').innerHTML = error; 82 | thisForm.querySelector('.error-message').classList.add('d-block'); 83 | } 84 | 85 | })(); 86 | -------------------------------------------------------------------------------- /core/public/static/assets/vendor/remixicon/remixicon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/assets/vendor/remixicon/remixicon.eot -------------------------------------------------------------------------------- /core/public/static/assets/vendor/remixicon/remixicon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/assets/vendor/remixicon/remixicon.ttf -------------------------------------------------------------------------------- /core/public/static/assets/vendor/remixicon/remixicon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/assets/vendor/remixicon/remixicon.woff -------------------------------------------------------------------------------- /core/public/static/assets/vendor/remixicon/remixicon.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/assets/vendor/remixicon/remixicon.woff2 -------------------------------------------------------------------------------- /core/public/static/assets/vendor/swiper/swiper-bundle.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Swiper 8.4.7 3 | * Most modern mobile touch slider and framework with hardware accelerated transitions 4 | * https://swiperjs.com 5 | * 6 | * Copyright 2014-2023 Vladimir Kharlampidi 7 | * 8 | * Released under the MIT License 9 | * 10 | * Released on: January 30, 2023 11 | */ 12 | 13 | @font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} -------------------------------------------------------------------------------- /core/public/static/img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/apple-touch-icon.png -------------------------------------------------------------------------------- /core/public/static/img/clients/client-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/clients/client-1.png -------------------------------------------------------------------------------- /core/public/static/img/clients/client-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/clients/client-2.png -------------------------------------------------------------------------------- /core/public/static/img/clients/client-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/clients/client-3.png -------------------------------------------------------------------------------- /core/public/static/img/clients/client-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/clients/client-4.png -------------------------------------------------------------------------------- /core/public/static/img/clients/client-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/clients/client-5.png -------------------------------------------------------------------------------- /core/public/static/img/clients/client-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/clients/client-6.png -------------------------------------------------------------------------------- /core/public/static/img/cta-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/cta-bg.jpg -------------------------------------------------------------------------------- /core/public/static/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/favicon.png -------------------------------------------------------------------------------- /core/public/static/img/hero-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/hero-img.png -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-1.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-2.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-3.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-4.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-5.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-6.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-7.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-8.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-9.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-details-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-details-1.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-details-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-details-2.jpg -------------------------------------------------------------------------------- /core/public/static/img/portfolio/portfolio-details-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/portfolio/portfolio-details-3.jpg -------------------------------------------------------------------------------- /core/public/static/img/skills.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/skills.png -------------------------------------------------------------------------------- /core/public/static/img/team/team-2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/team/team-2.JPG -------------------------------------------------------------------------------- /core/public/static/img/team/team-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/team/team-3.jpg -------------------------------------------------------------------------------- /core/public/static/img/team/team-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/team/team-4.jpg -------------------------------------------------------------------------------- /core/public/static/img/why-us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/public/static/img/why-us.png -------------------------------------------------------------------------------- /core/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thegeek36/Missing-Person-Detection-System/3d0b6e60b97db0e69077cc92dff1443685ce0ea3/core/requirements.txt --------------------------------------------------------------------------------