Initial commit

This commit is contained in:
vitalijmulika
2025-12-29 13:58:15 +02:00
commit e0801b0982
89 changed files with 2556 additions and 0 deletions

1
.env.production Normal file
View File

@@ -0,0 +1 @@
DISABLE_ESLINT_PLUGIN=true

View File

@@ -0,0 +1,83 @@
name: Build
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch to build'
required: true
default: 'main'
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout branch
uses: actions/checkout@v3
with:
ref: ${{ gitea.event.inputs.branch }}
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 24
- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@v3
continue-on-error: true
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-modules-
- name: Install dependencies
run: |
set -euo pipefail
if [ -d node_modules ] && [ "${{ steps.cache-node-modules.outputs.cache-hit }}" == "true" ]; then
echo "Cache hit, verifying dependencies..."
npm ci --prefer-offline --no-audit --silent 2>&1 | tee install.log || npm install --no-audit --silent 2>&1 | tee install.log
else
echo "Cache miss, installing dependencies..."
npm ci --prefer-offline --no-audit --silent 2>&1 | tee install.log
fi
- name: Build (react-scripts build)
env:
CI: 'false'
run: |
set -euo pipefail
npm run build 2>&1 | tee build.log
timeout-minutes: 5
- name: Save node_modules cache
if: always()
uses: actions/cache@v3
continue-on-error: true
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('package-lock.json') }}
- name: Verify build folder exists
run: test -d build || (echo "No build folder. Check build logs above."; exit 1)
- name: Upload logs (always)
if: always()
uses: actions/upload-artifact@v3
with:
name: build-logs
path: |
install.log
build.log
npm-debug.log*
if-no-files-found: ignore
- name: Build completed
if: success()
run: echo "Build completed successfully"

41
package.json Normal file
View File

@@ -0,0 +1,41 @@
{
"name": "sargas-website",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-scripts": "^5.0.1",
"framer-motion": "^11.0.0",
"lucide-react": "^0.400.0"
},
"devDependencies": {
"tailwindcss": "^3.4.0",
"postcss": "^8.4.0",
"autoprefixer": "^10.4.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

6
postcss.config.js Normal file
View File

@@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNSAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik0wLjQyODcxMSA0LjM1MTE1TDEyLjQ1NDUgMC4wNjY0MDYyTDI0LjgwNDEgNC4yNzQ5NkwyMi44MDQ1IDIwLjE4NTZMMTIuNDU0NSAyNS45MTc3TDIuMjY2MzkgMjAuMjYxOEwwLjQyODcxMSA0LjM1MTE1WiIgZmlsbD0icmVkIi8+CjxwYXRoIGQ9Ik0yNC44MDQyIDQuMjc0OTZMMTIuNDU0NiAwLjA2NjQwNjJWMjUuOTE3N0wyMi44MDQ2IDIwLjE5NTJMMjQuODA0MiA0LjI3NDk2WiIgZmlsbD0icmVkIi8+CjxwYXRoIGQ9Ik0xMi40NzM0IDMuMDg0OTZMNC45Nzk5OCAxOS43NTc0TDcuNzc5MjggMTkuNzA5OEw5LjI4Mzc1IDE1Ljk0ODdIMTYuMDA2TDE3LjY1MzMgMTkuNzU3NEwyMC4zMjg4IDE5LjgwNUwxMi40NzM0IDMuMDg0OTZaTTEyLjQ5MjUgOC40MjY2MkwxNS4wMjUzIDEzLjcyMDZIMTAuMjY0NEwxMi40OTI1IDguNDI2NjJaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwIj4KPHJlY3Qgd2lkdGg9IjI0LjQ3MTIiIGhlaWdodD0iMjYiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjQxODk0NSkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iOTMzIiBoZWlnaHQ9IjExNzkiIHZpZXdCb3g9IjAgMCA5MzMgMTE3OSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUzMS40MzYgMzAyLjA5NlYxMDgzLjRDNTMxLjQzNiAxMTA0LjU3IDUxNi4wNzcgMTEyMi42MiA0OTUuMTc4IDExMjZMMTgxLjQ3NyAxMTc2Ljc2QzE1NS4yMzYgMTE4MS4wMSAxMzEuNDM0IDExNjAuNzUgMTMxLjQzNCAxMTM0LjE2VjcxNi4xNTVMLTIxOC41MjMgNzcyLjc2MUMtMjQ0Ljc2MyA3NzcuMDA1IC0yNjguNTYzIDc1Ni43NDUgLTI2OC41NjQgNzMwLjE2NEwtMjY4LjU2NiA0MTcuNTgyQy0yNjguNTY3IDM5Ni40MTEgLTI1My4yMDggMzc4LjM2NyAtMjMyLjMwOCAzNzQuOTg1TDQ4MS4zOTMgMjU5LjVNNTMxLjQzNiAzMDIuMDk2QzUzMS40MzYgMjc1LjUxNCA1MDcuNjMzIDI1NS4yNTQgNDgxLjM5MyAyNTkuNU01MzEuNDM2IDMwMi4wOTZMNTMxLjQzOCA0NTguOTM4TDE4MS40NzkgNTE1LjU1OE00ODEuMzkzIDI1OS41TDEzMS40MzYgMzE2LjY1NkwxMzEuNDM2IDQ3Mi45NjFNMTMxLjQzNiA0NzIuOTYxTDEzMS40MzYgMTYwLjMzNEMxMzEuNDM2IDEzOS4xNjIgMTQ2Ljc5NiAxMjEuMTE4IDE2Ny42OTYgMTE3LjczN0w4ODEuMzkgMi4yOTc2NUM5MDcuNjMgLTEuOTQ2NjEgOTMxLjQzMSAxOC4zMTM1IDkzMS40MzEgNDQuODk0Mkw5MzEuNDM0IDM1Ny40NzZDOTMxLjQzNCAzNzguNjQ3IDkxNi4wNzUgMzk2LjY5MSA4OTUuMTc2IDQwMC4wNzNMMTgxLjQ3OSA1MTUuNTU4TTEzMS40MzYgNDcyLjk2MUMxMzEuNDM2IDQ5OS41NDMgMTU1LjIzOSA1MTkuODA0IDE4MS40NzkgNTE1LjU1OCIgc3Ryb2tlPSIjMUUyNTMyIiBzdHJva2Utb3BhY2l0eT0iMC4wNSIgc3Ryb2tlLXdpZHRoPSIyIi8+Cjwvc3ZnPgo=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxNCAxOSIgZmlsbD0id2hpdGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8cGF0aCBkPSJNNi45OTk4OCAwLjcxMDkzOEMzLjQwNTMyIDAuNzEwOTM4IDAuNDgwOTU3IDMuNjM1MyAwLjQ4MDk1NyA3LjIyOTgyQzAuNDgwOTU3IDExLjY5MDcgNi4zMTQ3NSAxOC4yMzk2IDYuNTYzMTMgMTguNTE2MkM2Ljc5NjQzIDE4Ljc3NiA3LjIwMzc1IDE4Ljc3NTYgNy40MzY2MiAxOC41MTYyQzcuNjg1IDE4LjIzOTYgMTMuNTE4OCAxMS42OTA3IDEzLjUxODggNy4yMjk4MkMxMy41MTg3IDMuNjM1MyAxMC41OTQ0IDAuNzEwOTM4IDYuOTk5ODggMC43MTA5MzhaTTYuOTk5ODggMTAuNTA5N0M1LjE5MTM3IDEwLjUwOTcgMy43MjAwOCA5LjAzODMzIDMuNzIwMDggNy4yMjk4MkMzLjcyMDA4IDUuNDIxMzEgNS4xOTE0IDMuOTUwMDIgNi45OTk4OCAzLjk1MDAyQzguODA4MzUgMy45NTAwMiAxMC4yNzk2IDUuNDIxMzUgMTAuMjc5NiA3LjIyOTg2QzEwLjI3OTYgOS4wMzgzNiA4LjgwODM1IDEwLjUwOTcgNi45OTk4OCAxMC41MDk3WiIvPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0id2hpdGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8cGF0aCBkPSJNMTEuMjUgNS41ODU5NEMxMC44MzYgNS41ODU5NCAxMC41IDUuMjQ5OTQgMTAuNSA0LjgzNTk0VjMuNzEwOTRINy41VjQuODM1OTRDNy41IDUuMjQ5OTQgNy4xNjQgNS41ODU5NCA2Ljc1IDUuNTg1OTRDNi4zMzYgNS41ODU5NCA2IDUuMjQ5OTQgNiA0LjgzNTk0VjMuNzEwOTRDNiAyLjg4MzY5IDYuNjcyNzUgMi4yMTA5NCA3LjUgMi4yMTA5NEgxMC41QzExLjMyNzIgMi4yMTA5NCAxMiAyLjg4MzY5IDEyIDMuNzEwOTRWNC44MzU5NEMxMiA1LjI0OTk0IDExLjY2NCA1LjU4NTk0IDExLjI1IDUuNTg1OTRaIi8+Cgk8cGF0aCBkPSJNOS41MzI1IDEyLjI0NThDOS4zOTc1IDEyLjI5ODMgOS4yMDI1IDEyLjMzNTggOSAxMi4zMzU4QzguNzk3NSAxMi4zMzU4IDguNjAyNSAxMi4yOTgzIDguNDIyNSAxMi4yMzA4TDAgOS40MjU3OFYxNS4xNDgzQzAgMTYuMjg4MyAwLjkyMjUgMTcuMjEwOCAyLjA2MjUgMTcuMjEwOEgxNS45Mzc1QzE3LjA3NzUgMTcuMjEwOCAxOCAxNi4yODgzIDE4IDE1LjE0ODNWOS40MjU3OEw5LjUzMjUgMTIuMjQ1OFoiLz4KCTxwYXRoIGQ9Ik0xOCA2LjUyMzQ0VjguMjQwOTRMOS4xOCAxMS4xODA5QzkuMTIgMTEuMjAzNCA5LjA2IDExLjIxMDkgOSAxMS4yMTA5QzguOTQgMTEuMjEwOSA4Ljg4IDExLjIwMzQgOC44MiAxMS4xODA5TDAgOC4yNDA5NFY2LjUyMzQ0QzAgNS4zODM0NCAwLjkyMjUgNC40NjA5NCAyLjA2MjUgNC40NjA5NEgxNS45Mzc1QzE3LjA3NzUgNC40NjA5NCAxOCA1LjM4MzQ0IDE4IDYuNTIzNDRaIi8+Cjwvc3ZnPg==

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAyNCAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuNjgzNTk0IDAuNjY4OTQ1TDIuNzU1NDcgMjQuMDY4OUwxMi4wNTg2IDI2LjY2ODlMMjEuMzU4NSAyNC4wNzA2TDIzLjQzMzYgMC42Njg5NDVIMC42ODM1OTRaIiBmaWxsPSIjMDA3MGI3Ii8+CjxwYXRoIGQ9Ik0xOS4wMDQyIDguMzIwMjdMMTguNzQyNiAxMS4yNTk5TDE3Ljk1MjggMjAuMDcyM0wxMi4wNTg5IDIxLjcwMjJMMTIuMDU0MSAyMS43MDM4TDYuMTYzNDMgMjAuMDcyM0w1Ljc1MjMxIDE1LjQ2MzhIOC42MzgzMUw4Ljg1MjgxIDE3Ljg1NDFMMTIuMDU1NyAxOC43MTg2TDEyLjA1NzMgMTguNzE3TDE1LjI2NTEgMTcuODUyNUwxNS43MDIyIDEzLjg2OTZMNS42MTQxOCAxMy44OTczTDUuMzI4MTggMTEuMTczOEwxNS45NDQzIDExLjA0ODZMMTYuMTU4OCA4LjEzMzRMNS4wNDM4MSA4LjE2NDI3TDQuODU2OTMgNS40NTIxNUgxMi4wNTg5SDE5LjI2MDlMMTkuMDA0MiA4LjMyMDI3WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjciIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNyAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxnIG9wYWNpdHk9IjAuMiI+CjxwYXRoIGQ9Ik0yMC42NjQ4IDE5LjMxOThDMTkuMDAwOSAxOS4zMTk4IDE3LjYyODkgMjAuNjYyNiAxNy42Mjg5IDIyLjM1NTdDMTcuNjI4OSAyNC4wMTk2IDE4Ljk3MTcgMjUuMzkxNiAyMC42NjQ4IDI1LjM5MTZDMjIuMzI4NyAyNS4zOTE2IDIzLjcwMDcgMjQuMDQ4OCAyMy43MDA3IDIyLjM1NTdDMjMuNjcxNSAyMC42OTE4IDIyLjMyODcgMTkuMzE5OCAyMC42NjQ4IDE5LjMxOThaIiBmaWxsPSIjZjg3YjAwIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC40Ij4KPHBhdGggZD0iTTI2LjAwNjkgNC44NDExMUMyNS45NDg1IDQuODQxMTEgMjUuODYxIDQuODExOTIgMjUuNzczNCA0LjgxMTkySDcuMzgyOTlMNy4wOTEwNyAyLjg1NjEyQzYuOTE1OTMgMS41NzE3MSA1LjgwNjY2IDAuNjA4Mzk4IDQuNDkzMDYgMC42MDgzOThIMi4xMjg1OEMxLjQ4NjM4IDAuNjA4Mzk4IDAuOTYwOTM4IDEuMTMzODQgMC45NjA5MzggMS43NzYwNEMwLjk2MDkzOCAyLjQxODI1IDEuNDg2MzggMi45NDM2OSAyLjEyODU4IDIuOTQzNjlINC40OTMwNkM0LjYzOTAyIDIuOTQzNjkgNC43NTU3OCAzLjA2MDQ1IDQuNzg0OTcgMy4yMDY0MUw2LjU5NDgyIDE1LjUyNTFDNi44MjgzNSAxNy4wNzIyIDguMTcxMTUgMTguMjM5OCA5Ljc0NzQ3IDE4LjIzOThIMjEuODkxQzIzLjQwODkgMTguMjM5OCAyNC43MjI1IDE3LjE1OTggMjUuMDQzNiAxNS42NzFMMjYuOTQxIDYuMTgzOUMyNy4wNTc4IDUuNTcwODkgMjYuNjQ5MSA0Ljk1Nzg4IDI2LjAwNjkgNC44NDExMVoiIGZpbGw9IiNmODdiMDAiLz4KPC9nPgo8ZyBvcGFjaXR5PSIwLjIiPgo8cGF0aCBkPSJNMTMuMjIxNyAyMi4yMDk3QzEzLjE2MzMgMjAuNjA0MiAxMS44MjA1IDE5LjMxOTggMTAuMjE1IDE5LjMxOThDOC41MjE4OSAxOS40MDc0IDcuMjM3NDggMjAuODA4NiA3LjI5NTg2IDIyLjQ3MjVDNy4zNTQyNCAyNC4wNzggOC42Njc4NCAyNS4zNjI0IDEwLjI3MzQgMjUuMzYyNEgxMC4zMzE3QzExLjk5NTYgMjUuMjc0OCAxMy4zMDkyIDIzLjg3MzYgMTMuMjIxNyAyMi4yMDk3WiIgZmlsbD0iI2Y4N2IwMCIvPgo8L2c+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjk2MDkzOCkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9Ii0zMC41IDAgMzE3IDMxNyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjMuOTUxNzA4OCUiIHkxPSIyNi45OTMwMjg3JSIgeDI9Ijc1Ljg5NzA3MzQlIiB5Mj0iNTIuOTE5MjY1NyUiIGlkPSJsaW5lYXJHcmFkaWVudC0xIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzAwMDAwMCIgb2Zmc2V0PSIwJSI+Cg08L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIxMDAlIj4KDTwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgoJCTxnPgoJCQkJPHBvbHlnb24gZmlsbD0iIzQ3QzVGQiIgcG9pbnRzPSIxNTcuNjY1Nzg1IDAuMDAwNTQ5MzU2MjIzIDAuMDAwNTQ5MzU2MjIzIDE1Ny42NjU3ODUgNDguODAwOTYxNCAyMDYuNDY2MTk3IDI1NS4yNjc3MDggMC4wMDA1NDkzNTYyMjMiPgoNPC9wb2x5Z29uPgoJCQkJPHBvbHlnb24gZmlsbD0iIzQ3QzVGQiIgcG9pbnRzPSIxNTYuNTY3MTgzIDE0NS4zOTY3OTMgNzIuMTQ4NzEwNyAyMjkuODE1MjY1IDEyMS4xMzI2MDggMjc5LjUzMDkwNSAxNjkuODQyOTI1IDIzMC44MjA1ODcgMjU1LjI2NzgxOCAxNDUuMzk2NzkzIj4KDTwvcG9seWdvbj4KCQkJCTxwb2x5Z29uIGZpbGw9IiMwMDU2OUUiIHBvaW50cz0iMTIxLjEzMzA0NyAyNzkuNTMxMTI0IDE1OC4yMTQ1OTIgMzE2LjYxMjY3IDI1NS4yNjcxNTkgMzE2LjYxMjY3IDE2OS44NDIyNjYgMjMwLjgyMDgwNyI+Cg08L3BvbHlnb24+CgkJCQk8cG9seWdvbiBmaWxsPSIjMDBCNUY4IiBwb2ludHM9IjcxLjU5OTU3NDIgMjMwLjM2NDA3MiAxMjAuNDAxMDg1IDE4MS41NjI1NjEgMTY5Ljg0MjA0NiAyMzAuODIxMTM2IDEyMS4xMzI4MjcgMjc5LjUzMTQ1NCI+Cg08L3BvbHlnb24+CgkJCQk8cG9seWdvbiBmaWxsLW9wYWNpdHk9IjAuOCIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSIgcG9pbnRzPSIxMjEuMTMyODI3IDI3OS41MzE0NTQgMTYxLjY5Mjg5NiAyNjYuMDcyMjI3IDE2NS43MjE4NzUgMjM0Ljk0MTMwOCI+Cg08L3BvbHlnb24+CgkJPC9nPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iNjQyIiBoZWlnaHQ9IjcxOCIgdmlld0JveD0iMCAwIDY0MiA3MTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik02MTEuNDEyIDAuNjk0MzM2SDMxLjQxODdDMTQuODY2NCAwLjY5NDMzNiAxLjQ0MTc2IDE0LjEwMDMgMS40MTg2OCAzMC42NTI1TDAuNTAyMzMzIDY4Ny45MjFDMC40NzkyMTEgNzA0LjUwNiAxMy45MTc0IDcxNy45NjMgMzAuNTAyMyA3MTcuOTYzSDUxOS41NjZDNTI2LjU2MyA3MTcuOTYzIDUzMy4zNCA3MTUuNTE3IDUzOC43MjUgNzExLjA0OUw2MjkuNjQxIDYzNS42QzYzNi40OTYgNjI5LjkxMSA2NDAuNDY5IDYyMS40NyA2NDAuNDgzIDYxMi41NjJMNjQxLjQxMiAzMC43NDIzQzY0MS40MzkgMTQuMTU1IDYyOCAwLjY5NDMzNiA2MTEuNDEyIDAuNjk0MzM2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjciIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAyNyAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik0yLjYyNTU0IDAuNTM1MTU2QzIuMzg2NTYgMC41MzUxNTYgMi4yMDg1MiAwLjcyOTkwMyAyLjIyOTc0IDAuOTY3ODY2TDQuMjQ0MyAyMy41NjQ1QzQuMjY1NTMgMjMuODAyNSA0LjQ3MTE5IDI0LjA0OTYgNC43MDE1NCAyNC4xMTM1TDEzLjI1MDMgMjYuNDg3MkMxMy40ODA2IDI2LjU1MTEgMTMuODU3MyAyNi41NTExIDE0LjA4NzcgMjYuNDg3M0wyMi42NjI1IDI0LjEwOThDMjIuODkyOCAyNC4wNDU5IDIzLjA5ODcgMjMuNzk4OSAyMy4xMTk4IDIzLjU2MDlMMjUuMTM3OCAwLjk2Nzg2NkMyNS4xNTkxIDAuNzI5OTAzIDI0Ljk4MDkgMC41MzUxNTYgMjQuNzQxOSAwLjUzNTE1NkgyLjYyNTU0Wk0yMC44NDc1IDUuNzE3NjJDMjAuODI4NCA1LjkyOTg4IDIwLjc5NTUgNi4yOTg0MSAyMC43NzQzIDYuNTM2NDJMMjAuNzIxMiA3LjEyOTI5QzIwLjY5OTkgNy4zNjcyIDIwLjY2OTQgNy43MDc0OSAyMC42NTM0IDcuODg1MzhDMjAuNjM3NCA4LjA2MzMyIDIwLjYyMjIgOC4yMDg5MSAyMC42MTk0IDguMjA4OTFDMjAuNjE2NyA4LjIwODkxIDIwLjQxODkgOC4yMDg5MSAyMC4xOCA4LjIwODkxSDE0LjExODJDMTMuODc5MiA4LjIwODkxIDEzLjY4MTcgOC4yMDg5MSAxMy42NzkyIDguMjA4OTFDMTMuNjc2NiA4LjIwODkxIDEzLjQ3ODkgOC4yMDg5MSAxMy4yMzk5IDguMjA4OTFIMTAuMDQ3NEM5LjgwODM4IDguMjA4OTEgOS42MzAzNCA4LjQwMzY2IDkuNjUxNTcgOC42NDE2Mkw5LjgzNzc4IDEwLjcyMzJDOS44NTkwMSAxMC45NjExIDEwLjA3MiAxMS4xNTU5IDEwLjMxMDkgMTEuMTU1OUgxMy4yMzk5QzEzLjQ3ODkgMTEuMTU1OSAxMy42NzY2IDExLjE1NTkgMTMuNjc5MiAxMS4xNTU5QzEzLjY4MTggMTEuMTU1OSAxMy44NzkzIDExLjE1NTkgMTQuMTE4MyAxMS4xNTU5SDE5LjE1MjhDMTkuMzkxOCAxMS4xNTU5IDE5Ljc2MTYgMTEuMTU1OSAxOS45NzQ2IDExLjE1NTlDMjAuMTg3NCAxMS4xNTU5IDIwLjM0NTkgMTEuMzI5NiAyMC4zMjY2IDExLjU0MTlDMjAuMzA3MiAxMS43NTQxIDIwLjI3NDEgMTIuMTIyNyAyMC4yNTI5IDEyLjM2MDdMMTkuNjU0MiAxOS4wNzE0QzE5LjYzMjggMTkuMzA5NSAxOS42MDU4IDE5LjYxMzUgMTkuNTk0MSAxOS43NDcxQzE5LjU4MjMgMTkuODgwNyAxOS4zODQyIDIwLjA0MjIgMTkuMTUzOSAyMC4xMDYxTDE0LjEwMjUgMjEuNTA2OEMxMy44NzIyIDIxLjU3MDUgMTMuNjgwOSAyMS42MjM0IDEzLjY3NzMgMjEuNjI0MkMxMy42NzM3IDIxLjYyNDkgMTMuNDgyNSAyMS41NzMyIDEzLjI1MjEgMjEuNTA5NEw4LjE5NTI2IDIwLjEwNjJDNy45NjQ5NiAyMC4wNDIzIDcuNzU5MTkgMTkuNzk1MyA3LjczODAyIDE5LjU1NzNMNy40MTI1MSAxNS45MDM4QzcuMzkxMjggMTUuNjY1OCA3LjU2OTUzIDE1LjQ3MTEgNy44MDg1IDE1LjQ3MTFIOC4yNzAwMUM4LjUwODk4IDE1LjQ3MTEgOC45IDE1LjQ3MTEgOS4xMzg5MyAxNS40NzExSDkuODI3MTJDMTAuMDY2MSAxNS40NzExIDEwLjI3ODkgMTUuNjY1OCAxMC4zMDAzIDE1LjkwMzhMMTAuNDI3OSAxNy4zMzRDMTAuNDQ5MSAxNy41NzIxIDEwLjY1NTIgMTcuODE3NyAxMC44ODU5IDE3Ljg4TDEzLjI1MTMgMTguNTE4OEMxMy40ODE5IDE4LjU4MTEgMTMuNjcxNSAxOC42MzIxIDEzLjY3MjYgMTguNjMyMUMxMy42NzM2IDE4LjYzMjEgMTMuODYzMSAxOC41ODEgMTQuMDkzOCAxOC41MTg3TDE2LjQ2MzUgMTcuODc4NEMxNi42OTQxIDE3LjgxNjEgMTYuOTAwMyAxNy41NzAzIDE2LjkyMTcgMTcuMzMyNEwxNy4xNzg2IDE0LjQ2N0MxNy4yIDE0LjIyOSAxNy4wMjE5IDE0LjAzNDIgMTYuNzgzIDE0LjAzNDJIMTQuMTE4M0MxMy44NzkzIDE0LjAzNDIgMTMuNjgxOCAxNC4wMzQyIDEzLjY3OTIgMTQuMDM0MkMxMy42NzY2IDE0LjAzNDIgMTMuNDc4OSAxNC4wMzQyIDEzLjIzOTkgMTQuMDM0Mkg3LjY3OTY3QzcuNDQwNjkgMTQuMDM0MiA3LjIyNzkyIDEzLjgzOTQgNy4yMDY2OSAxMy42MDE1TDYuNTc2MTkgNi41MzY0N0M2LjU1NDk2IDYuMjk4NDYgNi41MjIwNSA1LjkzMDA0IDYuNTAzMDEgNS43MTc2N0M2LjQ4NDE3IDUuNTA1NCA2LjY2NDA5IDUuMzMxNjggNi45MDMwNyA1LjMzMTY4SDEzLjIzOTlDMTMuNDc4OSA1LjMzMTY4IDEzLjY3NjYgNS4zMzE2OCAxMy42NzkyIDUuMzMxNjhDMTMuNjgxOCA1LjMzMTY4IDEzLjg3OTMgNS4zMzE2OCAxNC4xMTgzIDUuMzMxNjhIMjAuNDQ3NUMyMC42ODY0IDUuMzMxNTcgMjAuODY2NCA1LjUwNTI1IDIwLjg0NzUgNS43MTc2MloiIGZpbGw9IiNkYzRhMjUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMCI+CjxyZWN0IHdpZHRoPSIyNiIgaGVpZ2h0PSIyNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuNjgzNTk0IDAuNTM1MTU2KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAyNCAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIuODA3MTQgMjQuMDQ1N0wwLjY4MzU5NCAwLjY2ODk0NUwyMy41NjA3IDAuNjc3ODY4TDIxLjQ1NSAyNC4wMjc5TDEyLjEwNDMgMjYuNjY4OUwyLjgwNzE0IDI0LjA0NTdaTTE5LjczMyAyMi43Njk4TDIxLjUwODYgMi43NDc4N0gxMi4xNEwxMi4yMTE0IDI0LjgzMDlMMTkuNzMzIDIyLjc2OThaTTExLjI2NTYgNS42ODMzNkg4Ljk5MDM5TDguOTYzNjIgMTcuNjY2Mkw0LjU0NzAxIDE2LjQ2MTdMNC41NTU5MyAxOS4yMDA5TDExLjI2NTYgMjEuMDEyMVY1LjY4MzM2WiIgZmlsbD0iI2QzYjMyYyIvPgo8cGF0aCBvcGFjaXR5PSIwLjk4NiIgZD0iTTEwLjUxNjIgMjAuNzg4M0MxMC4yMjE3IDIwLjY5OTEgOC43NjczNyAyMC4zMDY1IDcuMjg2MjQgMTkuOTA1TDQuNjAwNTkgMTkuMTgyM1YxNy44MzVDNC42MDA1OSAxNi41MTQ1IDQuNjAwNTkgMTYuNDg3NyA0LjczNDQyIDE2LjUzMjNDNC44MDU4IDE2LjU1OTEgNS43ODcyNyAxNi44MjY3IDYuOTExNSAxNy4xMzlMOC45NTQ3NCAxNy43MDExTDguOTcyNTggMTEuNzIzMUw4Ljk5MDQzIDUuNzQ1MTJIMTEuMjIxVjEzLjM0N0MxMS4yMjEgMTkuMzg3NSAxMS4yMDMyIDIwLjk0ODkgMTEuMTQwNyAyMC45NDg5QzExLjA5NjEgMjAuOTQgMTAuODEwNiAyMC44Njg2IDEwLjUxNjIgMjAuNzg4M1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTIuMTQwMSAyLjczOTI2SDIxLjUwODdMMTkuNzMzMSAyMi43NjEyTDEyLjE0MDEgMjQuODIyM1YyLjczOTI2Wk0xOS44NjcgMTEuOTIwNUwxOS4yNTEzIDE5LjQwNjRMMTMuMDg1OSAyMS4wMTI0TDEzLjA0MTMgMTguM0wxNy41MDI1IDE3LjExMzNMMTcuNTY1IDE0LjkwMDVMMTMuMTM5NSAxNS42NTlMMTMuMDQxMyA1LjcxOTM1TDIwLjM2NjYgNS42ODM2NkwyMC4xNzAzIDguNDEzOTNMMTUuMzE2NSA4LjQzMTc4VjEyLjQyOUwxOS44NjcgMTEuOTIwNVoiIGZpbGw9IiNmN2QxMzgiLz4KPHBhdGggZD0iTTE5LjI1MTMgMTkuNDA2NEwxOS44NjcgMTEuOTIwNUwxNS4zMTY1IDEyLjQyOVY4LjQzMTc4TDIwLjE3MDMgOC40MTM5M0wyMC4zNjY2IDUuNjgzNjZMMTMuMDQxMyA1LjcxOTM1TDEzLjEzOTUgMTUuNjU5TDE3LjU2NSAxNC45MDA1TDE3LjUwMjUgMTcuMTEzM0wxMy4wNDEzIDE4LjNMMTMuMDg1OSAyMS4wMTI0TDE5LjI1MTMgMTkuNDA2NFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjMiIGhlaWdodD0iMjMiIHZpZXdCb3g9IjAgMCAyMyAyMyIgZmlsbD0iIzFFMjUzMiIgZmlsbC1vcGFjaXR5PSIuMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik0xMC4xMzk2IDExLjU5OTVMMy4xMTQ2NCA3Ljc4MTY1QzIuODAyMTYgNy42MTE5MiAyLjQzMzE2IDcuNjE4OTMgMi4xMjczOSA3LjgwMDY5QzEuODIxNjIgNy45ODI0MiAxLjYzOTE2IDguMzAzMjggMS42MzkxNiA4LjY1OVYxNy41MTU1QzEuNjM5MTYgMTcuODczOCAxLjgzMjY2IDE4LjIwNjQgMi4xNDQxOSAxOC4zODM2TDkuMTY5MjUgMjIuMzc3M0M5LjMyNDExIDIyLjQ2NTMgOS40OTM0NiAyMi41MDkzIDkuNjYyODUgMjIuNTA5M0M5LjgzNTQ3IDIyLjUwOTMgMTAuMDA4IDIyLjQ2MzYgMTAuMTY1IDIyLjM3MjNDMTAuNDc1OCAyMi4xOTE0IDEwLjY2MTMgMjEuODY4OCAxMC42NjEzIDIxLjUwOTFWMTIuNDc2OEMxMC42NjEzIDEyLjExMDYgMTAuNDYxNSAxMS43NzQ0IDEwLjEzOTYgMTEuNTk5NVoiLz4KCTxwYXRoIGQ9Ik0xOS45OTQ1IDUuNDc3NDhDMTkuOTk0MSA1LjEwMzU0IDE5Ljc4NzUgNC43NjQzNyAxOS40NTU2IDQuNTkyMzJMMTEuNzk1MSAwLjYyMDg1MkMxMS41MDUxIDAuNDcwNDE3IDExLjE1OTQgMC40NzE1MzQgMTAuODcwNCAwLjYyMzY0NkwzLjMyMjU5IDQuNTk1MTFDMi45OTM5NiA0Ljc2ODExIDIuNzg5NTQgNS4xMDYyNSAyLjc4OTA2IDUuNDc3NjVDMi43ODg2MyA1Ljg0ODk3IDIuOTkyMjQgNi4xODc1OCAzLjMyMDQgNi4zNjEzMUwxMC44NjgyIDEwLjM1NzZDMTEuMDE0NCAxMC40MzQ5IDExLjE3NDggMTAuNDczNiAxMS4zMzU0IDEwLjQ3MzZDMTEuNDkzOSAxMC40NzM2IDExLjY1MjUgMTAuNDM1OCAxMS43OTcyIDEwLjM2MDNMMTkuNDU3OCA2LjM2NDE1QzE5Ljc4OTQgNi4xOTExOSAxOS45OTUxIDUuODUxNDIgMTkuOTk0NSA1LjQ3NzQ4WiIvPgoJPHBhdGggZD0iTTIwLjc4MSA3Ljc5OTc5QzIwLjQ3NTQgNy42MTgwMiAyMC4xMDYyIDcuNjEwODQgMTkuNzkzOSA3Ljc4MDcxTDEyLjc2ODcgMTEuNTk4NkMxMi40NDY5IDExLjc3MzUgMTIuMjQ3MSAxMi4xMDk2IDEyLjI0NzEgMTIuNDc1OVYyMS41MDgyQzEyLjI0NzEgMjEuODY3OCAxMi40MzI2IDIyLjE5MDUgMTIuNzQzNCAyMi4zNzEzQzEyLjkwMDQgMjIuNDYyNiAxMy4wNzI5IDIyLjUwODMgMTMuMjQ1NSAyMi41MDgzQzEzLjQxNDkgMjIuNTA4MyAxMy41ODQzIDIyLjQ2NDMgMTMuNzM5MSAyMi4zNzYzTDIwLjc2NDIgMTguMzgyNkMyMS4wNzU4IDE4LjIwNTUgMjEuMjY5MiAxNy44NzI4IDIxLjI2OTIgMTcuNTE0NVY4LjY1ODA5QzIxLjI2OTIgOC4zMDIzOCAyMS4wODY4IDcuOTgxNTIgMjAuNzgxIDcuNzk5NzlaIi8+Cjwvc3ZnPg==

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNSAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTguMDE2NiAwQzQuMTcxOCAwIDAuOTg5MjU4IDMuMTI3ODUgMC45ODkyNTggNi45NzI2NkMwLjk4OTI1OCAxMC44MTc1IDQuMTcxOCAxNCA4LjAxNjYgMTRDMTEuODYxNCAxNCAxNC45ODkzIDEwLjgxNzUgMTQuOTg5MyA2Ljk3MjY2QzE0Ljk4OTMgMy4xMjc4NSAxMS44NjE0IDAgOC4wMTY2IDBaTTguODM2OTEgMTAuNzE4OEM4LjgzNjkxIDExLjE3MSA4LjQ2ODU5IDExLjUzOTEgOC4wMTY2IDExLjUzOTFDNy41NjQzNCAxMS41MzkxIDcuMTk2MjkgMTEuMTcxIDcuMTk2MjkgMTAuNzE4OFY2LjU2MjVDNy4xOTYyOSA2LjExMDIzIDcuNTY0MzQgNS43NDIxOSA4LjAxNjYgNS43NDIxOUM4LjQ2ODU5IDUuNzQyMTkgOC44MzY5MSA2LjExMDIzIDguODM2OTEgNi41NjI1VjEwLjcxODhaTTguMDE2NiA0LjEwMTU2QzcuNTY0MzQgNC4xMDE1NiA3LjE5NjI5IDMuNzMzNTIgNy4xOTYyOSAzLjI4MTI1QzcuMTk2MjkgMi44Mjg5OCA3LjU2NDM0IDIuNDYwOTQgOC4wMTY2IDIuNDYwOTRDOC40Njg1OSAyLjQ2MDk0IDguODM2OTEgMi44Mjg5OCA4LjgzNjkxIDMuMjgxMjVDOC44MzY5MSAzLjczMzUyIDguNDY4NTkgNC4xMDE1NiA4LjAxNjYgNC4xMDE1NloiIGZpbGw9IiMxRTI1MzIiLz4KPC9zdmc+Cg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNSAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik02LjE4NzczIDAuNDM3OTg4QzMuMDUxODIgMC40Mzc5ODggMC41MDAzOSAyLjU5NjU1IDAuNTAwMzkgNS4yNTAzNkMwLjUwMDM5IDYuMzM4ODMgMC45MjkxMjggNy4zODA5MiAxLjcxNjYxIDguMjI3OUwwLjYyODEzNiA5LjMxNjM3QzAuNTAzMDE0IDkuNDQxNDkgMC40NjUzOSA5LjYyOTYxIDAuNTMzNjM5IDkuNzkzMjNDMC42MDEwMTIgOS45NTU5OCAwLjc2MTEzMiAxMC4wNjI3IDAuOTM3ODc4IDEwLjA2MjdINi4xODc3M0M5LjMyMzY1IDEwLjA2MjcgMTEuODc1MSA3LjkwNDE2IDExLjg3NTEgNS4yNTAzNkMxMS44NzUxIDIuNTk2NTUgOS4zMjM2NSAwLjQzNzk4OCA2LjE4NzczIDAuNDM3OTg4WiIgZmlsbD0iIzFFMjUzMiIvPgo8cGF0aCBkPSJNMTMuMjgzMiAxMS43Mjc1QzE0LjA3MDYgMTAuODgxNCAxNC40OTk0IDkuODM4NDMgMTQuNDk5NCA4Ljc0OTk2QzE0LjQ5OTQgNy4zODg1IDEzLjgyNDggNi4xNjAwMyAxMi43NDc3IDUuMjg0MThDMTIuNzI1OCA4LjQwNDM0IDkuNzkyODkgMTAuOTM3NCA2LjE4NzExIDEwLjkzNzRIMy43NTI5M0M0LjY5NjE1IDEyLjQ5MzEgNi42MDc5OCAxMy41NjIzIDguODEyMDQgMTMuNTYyM0gxNC4wNjE5QzE0LjIzODYgMTMuNTYyMyAxNC4zOTg4IDEzLjQ1NTYgMTQuNDY2MSAxMy4yOTJDMTQuNTMzNSAxMy4xMjgzIDE0LjQ5NTkgMTIuOTQwMiAxNC4zNzE2IDEyLjgxNTFMMTMuMjgzMiAxMS43Mjc1WiIgZmlsbD0iIzFFMjUzMiIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwIj4KPHJlY3Qgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC41KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9IjguNzM4IC0uMDM2IDE0LjUxNyAzMi4wMzgiIHdpZHRoPSIyNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im0xNS45LjA4Ny44NTQgMS42MDRjLjE5Mi4yOTYuNC41NTguNjQ1LjgwMmEyMi40MDYgMjIuNDA2IDAgMCAxIDIuMDA0IDIuMjY2YzEuNDQ3IDEuOSAyLjQyMyA0LjAxIDMuMTIgNi4yOTIuNDE4IDEuMzk0LjY0NSAyLjgyNC42NjIgNC4yNy4wNyA0LjMyMy0xLjQxMiA4LjAzNS00LjQgMTEuMTJhMTIuNyAxMi43IDAgMCAxIC0xLjU3IDEuMzQyYy0uMjk2IDAtLjQzNi0uMjI3LS41NTgtLjQzNmEzLjU4OSAzLjU4OSAwIDAgMSAtLjQzNi0xLjI1NWMtLjEwNS0uNTIzLS4xNzQtMS4wNDYtLjE0LTEuNTg2di0uMjQ0Yy0uMDI0LS4wNTItLjI4NS0yNC4wNTItLjE4MS0yNC4xNzV6IiBmaWxsPSIjNTk5NjM2Ii8+PHBhdGggZD0ibTE1LjkuMDM0Yy0uMDM1LS4wNy0uMDctLjAxNy0uMTA1LjAxNy4wMTcuMzUtLjEwNS42NjItLjI5Ni45Ni0uMjEuMjk2LS40ODguNTIzLS43NjcuNzY3LTEuNTUgMS4zNDItMi43NyAyLjk2My0zLjc0NyA0Ljc3Ni0xLjMgMi40NC0xLjk3IDUuMDU1LTIuMTYgNy44MDgtLjA4Ny45OTMuMzE0IDQuNDk3LjYyNyA1LjUwOC44NTQgMi42ODQgMi4zODggNC45MzMgNC4zNzUgNi44ODUuNDg4LjQ3IDEuMDEuOTA2IDEuNTUgMS4zMjUuMTU3IDAgLjE3NC0uMTQuMjEtLjI0NGE0Ljc4IDQuNzggMCAwIDAgLjE1Ny0uNjhsLjM1LTIuNjE0eiIgZmlsbD0iIzZjYWM0OCIvPjxwYXRoIGQ9Im0xNi43NTQgMjguODQ1Yy4wMzUtLjQuMjI3LS43MzIuNDM2LTEuMDYzLS4yMS0uMDg3LS4zNjYtLjI2LS40ODgtLjQ1M2EzLjIzNSAzLjIzNSAwIDAgMSAtLjI2LS41NzVjLS4yNDQtLjczMi0uMjk2LTEuNS0uMzY2LTIuMjQ4di0uNDUzYy0uMDg3LjA3LS4xMDUuNjYyLS4xMDUuNzVhMTcuMzcgMTcuMzcgMCAwIDEgLS4zMTQgMi4zNTNjLS4wNTIuMzE0LS4wODcuNjI3LS4yOC45MDYgMCAuMDM1IDAgLjA3LjAxNy4xMjIuMzE0LjkyNC40IDEuODY1LjQ1MyAyLjgyNHYuMzVjMCAuNDE4LS4wMTcuMzMuMzMuNDcuMTQuMDUyLjI5Ni4wNy40MzYuMTc0LjEwNSAwIC4xMjItLjA4Ny4xMjItLjE1N2wtLjA1Mi0uNTc1di0xLjYwNGMtLjAxNy0uMjguMDM1LS41NTguMDctLjgyeiIgZmlsbD0iI2MyYmZiZiIvPjwvc3ZnPg==

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIxNS45OTciIHkxPSI5OTMiIHgyPSIxNS45OTciIHkyPSIxMDIxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAxMDIzKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmYjE5OSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmMDg0NCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbmVzdF9taWRkbGV3YXJlX3RzPC90aXRsZT48cGF0aCBkPSJNMTguNDg4LDJhMS43NTMsMS43NTMsMCwwLDAtLjU2NC4xYzEuNjExLDEuMDU4LS4yOCwyLjU5NC42LDMuOUEyLjIzNCwyLjIzNCwwLDAsMSwxOS42LDMuNzY1Yy4yODUtLjIzNy40NjctLjMyMi40MDYtLjcxNEMxOS45MSwyLjQwOSwxOS4wNTQsMiwxOC40ODgsMlptMi4zLjQxNGMtLjIyMiwxLjEyMy0uNSwxLjE2NC0xLjMyMywxLjg4N2ExLjgyLDEuODIsMCwwLDAtLjUyOCwyLjE5MWMtMy40LTEuMzItNy43NTgtMi4xMTgtMTAuOTUzLjE2Ni0xLjE0OS44MjEtMS44NTEsMi0zLjI2OCwyLjQ4MUMzLjgsOS40NTIsMi45LDkuMzYsMi4zMjgsMTAuMjY4QTEuNDEzLDEuNDEzLDAsMCwwLDIuMzg0LDEyLjFjLjE3LjE3NS41LjI4Ny42MzYuNDY1LjA3OS4xLjA3Ny4yLjE1Mi4zMzNhMi41ODYsMi41ODYsMCwwLDAsLjU2NC44MjhjLjE0Ni4xMjEuNjUyLjIzOS43MzguMzY4LjEwNy4xNjEtLjE3My44LjA2Mi45LjE1OS4wNzMuNjIyLS43NDQuNjY3LS44MTYtLjA5Mi42NDMtLjIxMywxLjc4NC41MS44MzQuMzQzLS40NTEuMzY0LS42Ljk0MS0uN2E4LjM2LDguMzYsMCwwLDEsOS43MzksNy41MDZjLS4xMDgtLjUtLjc2MS0xLjMtMS4zNjktMS4xMS0uMjU5LjA4LS4zNTUuNTI3LS41MjUuNzg2YTMuNzUsMy43NSwwLDAsMS0uNzg1Ljg2OCw0LjY1Nyw0LjY1NywwLDAsMC0uMDcyLTEuNDUyYy0uMTgyLjc0OC0uNTQ3LDEuOTg5LTEuNDY2LDEuNzg4YTEuNjUyLDEuNjUyLDAsMCwxLTEuMzI4LTEuMTQyYy0uMTE5LS43Ni42ODQtMS42NTEtLjYwNy0xLjcxNC0yLjU5LS4xMjctMS45OTEsMy42ODItLjQ2Miw0LjY3NWEzLjI3MiwzLjI3MiwwLDAsMC0xLjAxNS4yODNBNi44OTMsNi44OTMsMCwwLDAsMTkuMDQsMTkuODg5YTcuMDQ2LDcuMDQ2LDAsMCwxLS42NDYsNC43OSw2LjksNi45LDAsMCwxLTEuMjMsMS42NjhjLS4zLjMtLjg5NC42My0xLjA4OS45NDFBMTMuNDI3LDEzLjQyNywwLDAsMCwxOS42LDI2LjMyLDExLjY0NywxMS42NDcsMCwwLDEsMTUuMSwzMGExMS41OSwxMS41OSwwLDAsMCw5LjMtNS45MDksMTEuNjU3LDExLjY1NywwLDAsMS0xLjk0NSw0LjY2OCwxMS41MzEsMTEuNTMxLDAsMCwwLDQuOTc1LTcuNzgzLDExLjY1NSwxMS42NTUsMCwwLDEsLjIwOSwzLjVBMTIuNDE4LDEyLjQxOCwwLDAsMCwyOS41MywxMy45MWExNS43NTUsMTUuNzU1LDAsMCwwLTEuNjg5LTMuOTYyQTE0LjgzOCwxNC44MzgsMCwwLDAsMjYuOSw4LjU1NGMtLjEzMy0uMTczLS44NDQtLjgwNi0uODQ0LTFxLS4wMDkuMDI5LS4wMTUsMGMwLDMuMjY2LTMuNSw1LjMxMS02LjQzMSw0LjQ2M2E1LDUsMCwwLDAsNC41Ni00LjI4OEE0Ljk4OCw0Ljk4OCwwLDAsMCwyMC43ODksMi40MTRaIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI2EpIi8+PHBhdGggZD0iTTI2LjQsMTguNmEyLjgyLDIuODIsMCwwLDEsMS40MS44MSwzLjgsMy44LDAsMCwxLC41NC43MnMtMSwuNjktMS41NywxLjA2YS40OS40OSwwLDAsMS0uMi0uMjIsMS4yODMsMS4yODMsMCwwLDAtMS4wNi0uNjQuOTIuOTIsMCwwLDAtMS4xLjcuODkzLjg5MywwLDAsMC0uMDIyLjIxMi44MTguODE4LDAsMCwwLC4xLjQyLDIuMjE4LDIuMjE4LDAsMCwwLDEuMzEuODhjMS42Mi43LDIuMzEsMS4xNiwyLjc0LDEuODFhMy4yODMsMy4yODMsMCwwLDEsLjI2LDIuNzYsMywzLDAsMCwxLTIuNTEsMS44NCw2Ljg3NSw2Ljg3NSwwLDAsMS0xLjcyLDAsNC4xNDIsNC4xNDIsMCwwLDEtMi4zLTEuMiwzLjk1OCwzLjk1OCwwLDAsMS0uNTktLjg3bC4yMS0uMTMuODQtLjQ4LjY1LS4zOC4xNC4yYTIuOTg3LDIuOTg3LDAsMCwwLC44Ni44MiwyLjEsMi4xLDAsMCwwLDIuMi0uMTEsMSwxLDAsMCwwLC4xMy0xLjI1LDMuNzQyLDMuNzQyLDAsMCwwLTEuNTUtLjksNS41ODQsNS41ODQsMCwwLDEtMi4xOC0xLjM4LDIuOTg4LDIuOTg4LDAsMCwxLS42Mi0xLjEzLDQuNTE3LDQuNTE3LDAsMCwxLDAtMS40NCwyLjc2MSwyLjc2MSwwLDAsMSwyLjMyLTIuMTVBNS43MzUsNS43MzUsMCwwLDEsMjYuNCwxOC42Wm0tNS4zMS45NHYuOTNIMTguMTV2OC4zNkgxNi4wN3YtOC4zNkgxMy4xM3YtLjkxYTguNDg2LDguNDg2LDAsMCwxLDAtLjkzaDh2LjkyWiIgc3R5bGU9ImZpbGw6IzAwN2FjYyIvPjwvc3ZnPg==

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9Ii0xNy41IDAgMjkxIDI5MSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+CiAgICA8Zz4KCQkJCTxwYXRoIGQ9Ik0yLjA1Mzg2ODE5LDIxOC4xODY4MTkgQzMuMzc0MjEyMDMsMjIwLjUzNDA5NyA1LjI4MTM3NTM2LDIyMi4yOTQ1NTYgNy42Mjg2NTMzLDIyMy42MTQ5IEwxMjAuNTkxNDA0LDI4OC43NTE4NjIgTDEyMC41OTE0MDQsMjg4Ljc1MTg2MiBDMTI1LjI4NTk2LDI5MS41MzkyNTUgMTMxLjAwNzQ1LDI5MS41MzkyNTUgMTM1LjU1NTMwMSwyODguNzUxODYyIEwyNDguNTE4MDUyLDIyMy42MTQ5IEMyNTMuMjEyNjA3LDIyMC45NzQyMTIgMjU2LDIxNS45ODYyNDYgMjU2LDIxMC41NTgxNjYgTDI1Niw4MC4yODQyNDA3IEwyNTYsODAuMjg0MjQwNyBDMjU2LDc0Ljg1NjE2MDUgMjUzLjIxMjYwNyw2OS44NjgxOTQ4IDI0OC41MTgwNTIsNjcuMjI3NTA3MiBMMTM1LjU1NTMwMSwyLjA5MDU0NDQxIEwxMzUuNTU1MzAxLDIuMDkwNTQ0NDEgQzEzMC44NjA3NDUsLTAuNjk2ODQ4MTM4IDEyNS4xMzkyNTUsLTAuNjk2ODQ4MTM4IDEyMC41OTE0MDQsMi4wOTA1NDQ0MSBMMTIwLjU5MTQwNCwyLjA5MDU0NDQxIEw3LjYyODY1MzMsNjcuMjI3NTA3MiBDMi43ODczOTI1NSw2OS44NjgxOTQ4IDAsNzQuODU2MTYwNSAwLDgwLjI4NDI0MDcgTDAsODAuMjg0MjQwNyBMMCwyMTAuNzA0ODcxIEMwLDIxMy4zNDU1NTkgMC41ODY4MTk0ODQsMjE1LjgzOTU0MiAyLjA1Mzg2ODE5LDIxOC4xODY4MTkiIGZpbGw9IiMwMDk2MzkiPgoNPC9wYXRoPgoJCQkJPHBhdGggZD0iTTkxLjgzNzI0OTMsMTk1LjE1NDE1NSBDOTEuODM3MjQ5MywyMDMuMjIyOTIzIDg1LjM4MjIzNSwyMDkuNjc3OTM3IDc3LjMxMzQ2NywyMDkuNjc3OTM3IEM2OS4yNDQ2OTkxLDIwOS42Nzc5MzcgNjIuNzg5Njg0OCwyMDMuMjIyOTIzIDYyLjc4OTY4NDgsMTk1LjE1NDE1NSBMNjIuNzg5Njg0OCwxOTUuMTU0MTU1IEw2Mi43ODk2ODQ4LDk1LjU0MTU0NzMgQzYyLjc4OTY4NDgsODcuNzY2MTg5MSA2OS42ODQ4MTM4LDgxLjQ1Nzg3OTcgNzkuMjIwNjMwNCw4MS40NTc4Nzk3IEM4Ni4xMTU3NTkzLDgxLjQ1Nzg3OTcgOTQuMTg0NTI3Miw4NC4yNDUyNzIyIDk5LjAyNTc4OCw5MC4yNjAxNzE5IEwxMDMuNDI2OTM0LDk1LjU0MTU0NzMgTDE2NC4xNjI3NTEsMTY4LjE2MDQ1OCBMMTY0LjE2Mjc1MSw5NS44MzQ5NTcgTDE2NC4xNjI3NTEsOTUuODM0OTU3IEMxNjQuMTYyNzUxLDg3Ljc2NjE4OTEgMTcwLjYxNzc2NSw4MS4zMTExNzQ4IDE3OC42ODY1MzMsODEuMzExMTc0OCBDMTg2Ljc1NTMwMSw4MS4zMTExNzQ4IDE5My4yMTAzMTUsODcuNzY2MTg5MSAxOTMuMjEwMzE1LDk1LjgzNDk1NyBMMTkzLjIxMDMxNSw5NS44MzQ5NTcgTDE5My4yMTAzMTUsMTk1LjQ0NzU2NCBDMTkzLjIxMDMxNSwyMDMuMjIyOTIzIDE4Ni4zMTUxODYsMjA5LjUzMTIzMiAxNzYuNzc5MzcsMjA5LjUzMTIzMiBDMTY5Ljg4NDI0MSwyMDkuNTMxMjMyIDE2MS44MTU0NzMsMjA2Ljc0Mzg0IDE1Ni45NzQyMTIsMjAwLjcyODk0IEw5MS44MzcyNDkzLDEyMi45NzUzNTggTDkxLjgzNzI0OTMsMTk1LjE1NDE1NSBMOTEuODM3MjQ5MywxOTUuMTU0MTU1IFoiIGZpbGw9IiNGRkZGRkYiPgoNPC9wYXRoPgogICAgPC9nPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNCAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik0xMC44NTU4IDAuMzI5ODkyQzExLjQ5NzcgLTAuMDM3NTE5MiAxMi4zMzM4IC0wLjAzOTE3ODggMTIuOTc1MSAwLjMyOTg5MkMxNi4yMDE2IDIuMTUzMDMgMTkuNDI5MSAzLjk3MzMgMjIuNjU1IDUuNzk3NTRDMjMuMjYxOCA2LjEzOTMyIDIzLjY2NzYgNi44MTQ1OSAyMy42NjE1IDcuNTEzNzNWMTguNDgyNEMyMy42NjYgMTkuMjEwNSAyMy4yMiAxOS45MDE5IDIyLjU3OTkgMjAuMjM1OUMxOS4zNjQgMjIuMDQ5IDE2LjE0OTggMjMuODY0MyAxMi45MzQ0IDI1LjY3NzRDMTIuMjc5MyAyNi4wNTIgMTEuNDI2NCAyNi4wMjMxIDEwLjc5MTcgMjUuNjE3OEM5LjgyNzYyIDI1LjA1ODkgOC44NjE4NCAyNC41MDI4IDcuODk3NjIgMjMuOTQ0NEM3LjcwMDYgMjMuODI3IDcuNDc4NDkgMjMuNzMzNSA3LjMzOTM2IDIzLjU0MjVDNy40NjIzNiAyMy4zNzY3IDcuNjgyMjUgMjMuMzU2IDcuODYwOTMgMjMuMjgzNkM4LjI2MzM4IDIzLjE1NTcgOC42MzMgMjIuOTUwMyA5LjAwMjcyIDIyLjc1MDlDOS4wOTYyMSAyMi42ODY5IDkuMjEwMzUgMjIuNzExNSA5LjI5OTk2IDIyLjc2ODdDMTAuMTI0NCAyMy4yNDE0IDEwLjk0MTYgMjMuNzI3OSAxMS43Njg4IDI0LjE5NkMxMS45NDUyIDI0LjI5NzkgMTIuMTIzOSAyNC4xNjI3IDEyLjI3NDggMjQuMDc4NkMxNS40MzA1IDIyLjI5NSAxOC41OTAyIDIwLjUxODIgMjEuNzQ1NCAxOC43MzRDMjEuODYyMyAxOC42Nzc4IDIxLjkyNjkgMTguNTUzNyAyMS45MTc0IDE4LjQyNTZDMjEuOTE5NiAxNC44MDczIDIxLjkxOCAxMS4xODgzIDIxLjkxODUgNy41Njk5N0MyMS45MzE5IDcuNDI0NjcgMjEuODQ3OCA3LjI5MTA3IDIxLjcxNjQgNy4yMzE2QzE4LjUxMTcgNS40MjY4MSAxNS4zMDg2IDMuNjE5MjYgMTIuMTA0NSAxLjgxNDAxQzEyLjA0ODkgMS43NzU4NSAxMS45ODMyIDEuNzU1MzcgMTEuOTE1OCAxLjc1NTI3QzExLjg0ODQgMS43NTUxNyAxMS43ODI2IDEuNzc1NDYgMTEuNzI3IDEuODEzNDZDOC41MjI4MiAzLjYxOTI2IDUuMzIwMzEgNS40Mjg0NyAyLjExNjEzIDcuMjMzMTdDMS45ODUyMSA3LjI5MjczIDEuODk3MzQgNy40MjQxMSAxLjkxMjkyIDcuNTY5OTdDMS45MTM0OCAxMS4xODgzIDEuOTEyOTIgMTQuODA3MyAxLjkxMjkyIDE4LjQyNjJDMS45MDczNyAxOC40ODg3IDEuOTIxMDkgMTguNTUxMyAxLjk1MjI1IDE4LjYwNThDMS45ODM0IDE4LjY2MDIgMi4wMzA0OSAxOC43MDM4IDIuMDg3MTggMTguNzMwN0MyLjk0MjIzIDE5LjIxNTYgMy43OTgzOCAxOS42OTcgNC42NTM5OSAyMC4xODAyQzUuMTM2IDIwLjQzOTcgNS43Mjc4MiAyMC41OTM4IDYuMjU4ODkgMjAuMzk1MUM2LjcyNzUzIDIwLjIyNyA3LjA1NjA0IDE5Ljc0ODggNy4wNDcwOSAxOS4yNTEyQzcuMDUxNTIgMTUuNjUzOSA3LjA0NDg4IDEyLjA1NjIgNy4wNTA0MSA4LjQ1OTVDNy4wMzg3IDguMjk5ODEgNy4xOTAxOSA4LjE2Nzg4IDcuMzQ1NDUgOC4xODI5MUM3Ljc1NjI4IDguMTgwMTQgOC4xNjc2NyA4LjE3NzM3IDguNTc4NTEgOC4xODQwMUM4Ljc1IDguMTgwMTQgOC44NjgwMSA4LjM1MjA5IDguODQ2ODEgOC41MTI5OEM4Ljg0NTE1IDEyLjEzMyA4Ljg1MTIzIDE1Ljc1MzEgOC44NDQwNCAxOS4zNzNDOC44NDUxNSAyMC4zMzc4IDguNDQ4NzkgMjEuMzg3NiA3LjU1NjQgMjEuODU5NkM2LjQ1NzAyIDIyLjQyOTIgNS4wOTgyIDIyLjMwODQgNC4wMTIxIDIxLjc2MjNDMy4wNzE4NiAyMS4yOTMgMi4xNzQ1OCAyMC43MzkyIDEuMjUxMDMgMjAuMjM2NEMwLjYwOTIzNSAxOS45MDQyIDAuMTY1NDgzIDE5LjIxIDAuMTcwMDAxIDE4LjQ4MjVWNy41MTM3M0MwLjE2MzI3MSA2LjgwMDExIDAuNTg1MjY0IDYuMTEyNTkgMS4yMTA5MiA1Ljc3NTc5QzQuNDI2MjYgMy45NjEyMyA3LjY0MTA0IDIuMTQ1MjggMTAuODU1OCAwLjMyOTg5MloiIGZpbGw9IiM2NDlhNjAiLz4KPHBhdGggZD0iTTEzLjY2MSA3LjkyODMzQzE1LjA2MzQgNy44MzgwNyAxNi41NjQ2IDcuODc0ODYgMTcuODI2NiA4LjU2NTcxQzE4LjgwMzYgOS4wOTUxMiAxOS4zNDUzIDEwLjIwNjIgMTkuMzYyNSAxMS4yOTE3QzE5LjMzNTIgMTEuNDM4MSAxOS4xODIyIDExLjUxODkgMTkuMDQyNCAxMS41MDg4QzE4LjYzNTUgMTEuNTA4MyAxOC4yMjg2IDExLjUxNDMgMTcuODIxNyAxMS41MDZDMTcuNjQ5MSAxMS41MTI3IDE3LjU0ODggMTEuMzUzNSAxNy41MjcxIDExLjIwMUMxNy40MTAyIDEwLjY4MTYgMTcuMTI3IDEwLjE2NzIgMTYuNjM4MSA5LjkxNjcxQzE1Ljg4NzcgOS41NDEgMTUuMDE3NiA5LjU1OTkgMTQuMTk5NCA5LjU2NzczQzEzLjYwMiA5LjU5OTQ1IDEyLjk1OTcgOS42NTExNyAxMi40NTM2IDEwLjAwMjVDMTIuMDY1IDEwLjI2ODUgMTEuOTQ3IDEwLjgwNTcgMTIuMDg1NyAxMS4yMzgzQzEyLjIxNjQgMTEuNTQ4OSAxMi41NzUgMTEuNjQ5MSAxMi44Njg0IDExLjc0MTVDMTQuNTU4NCAxMi4xODM1IDE2LjM0OTMgMTIuMTM5NSAxOC4wMDcgMTIuNzIxMkMxOC42OTMzIDEyLjk1ODQgMTkuMzY0NyAxMy40MTk0IDE5LjU5OTcgMTQuMTM4QzE5LjkwNyAxNS4xMDExIDE5Ljc3MjMgMTYuMjUyMyAxOS4wODcgMTcuMDI1NUMxOC41MzEzIDE3LjY2MTggMTcuNzIyIDE4LjAwODEgMTYuOTE0OCAxOC4xOTYxQzE1Ljg0MSAxOC40MzU2IDE0LjcyNjYgMTguNDQxNyAxMy42MzYgMTguMzM1NEMxMi42MTA2IDE4LjIxODUgMTEuNTQzNSAxNy45NDkgMTAuNzUxOSAxNy4yNTA0QzEwLjA3NDkgMTYuNjYyNiA5Ljc0NDMgMTUuNzQ2OCA5Ljc3NzEzIDE0Ljg2MjlDOS43ODQ5NiAxNC43MTM2IDkuOTMzNTkgMTQuNjA5NSAxMC4wNzY2IDE0LjYyMTdDMTAuNDg2MyAxNC42MTg0IDEwLjg5NjEgMTQuNjE3MyAxMS4zMDU4IDE0LjYyMjNDMTEuNDY5NCAxNC42MTA2IDExLjU5MDggMTQuNzUyIDExLjU5OTIgMTQuOTA2M0MxMS42NzQ4IDE1LjQwMTEgMTEuODYwNyAxNS45MjA1IDEyLjI5MjIgMTYuMjEzOUMxMy4xMjUgMTYuNzUxMSAxNC4xNjk5IDE2LjcxNDMgMTUuMTIzNCAxNi43MjkzQzE1LjkxMzMgMTYuNjk0MyAxNi44MDAxIDE2LjY4MzcgMTcuNDQ0OCAxNi4xNjE2QzE3Ljc4NDkgMTUuODYzOCAxNy44ODU3IDE1LjM2NTUgMTcuNzkzNyAxNC45MzY5QzE3LjY5NDIgMTQuNTc1IDE3LjMxNTYgMTQuNDA2NCAxNi45OTA1IDE0LjI5NjFDMTUuMzIyMiAxMy43NjgzIDEzLjUxMTMgMTMuOTU5OCAxMS44NTkxIDEzLjM2M0MxMS4xODgzIDEzLjEyNiAxMC41Mzk3IDEyLjY3NzggMTAuMjgyIDExLjk4ODdDOS45MjI0MyAxMS4wMTM0IDEwLjA4NzIgOS44MDcwOCAxMC44NDQyIDkuMDU5OTlDMTEuNTgyNCA4LjMxNjg2IDEyLjY0NzkgOC4wMzA2NyAxMy42NjEgNy45MjgyNFY3LjkyODMzWiIgZmlsbD0iIzY0OWE2MCIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwIj4KPHJlY3Qgd2lkdGg9IjIzLjYwOCIgaGVpZ2h0PSIyNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMTE0MjU4KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDMyIDMyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTQiIGZpbGw9IiM4ODkyQkYiLz4NCjxwYXRoIGQ9Ik0xNC40MzkyIDEwSDE2LjExOTJMMTUuNjQ0NCAxMi41MjQySDE3LjE1NEMxNy45ODE5IDEyLjU0MTkgMTguNTk4NiAxMi43MjY5IDE5LjAwNDUgMTMuMDc5M0MxOS40MTg0IDEzLjQzMTYgMTkuNTQwMiAxNC4xMDE0IDE5LjM2OTggMTUuMDg4MUwxOC41NTQxIDE5LjQ4ODlIMTYuODQ5N0wxNy42Mjg4IDE1LjI4NjNDMTcuNzA5OSAxNC44NDU3IDE3LjY4NTYgMTQuNTMzIDE3LjU1NTggMTQuMzQ4QzE3LjQyNiAxNC4xNjMgMTcuMTQ2IDE0LjA3MDUgMTYuNzE1OCAxNC4wNzA1TDE1LjM2NDQgMTQuMDU3M0wxNC4zNjYxIDE5LjQ4ODlIMTIuNjg2MUwxNC40MzkyIDEwWiIgZmlsbD0id2hpdGUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNi43NDA5MiAxMi41MjQzSDEwLjAwMzZDMTAuOTYxMiAxMi41MzMgMTEuNjU1MiAxMi44MzI3IDEyLjA4NTQgMTMuNDIyOUMxMi41MTU2IDE0LjAxMzIgMTIuNjU3NiAxNC44MTkzIDEyLjUxMTUgMTUuODQxNEMxMi40NTQ4IDE2LjMwODUgMTIuMzI4OSAxNi43NjY1IDEyLjEzNDEgMTcuMjE1OUMxMS45NDc0IDE3LjY2NTIgMTEuNjg3OCAxOC4wNzA0IDExLjM1NSAxOC40MzE3QzEwLjk0OTEgMTguODg5OCAxMC41MTQ5IDE5LjE4MDUgMTAuMDUyMyAxOS4zMDRDOS41ODk2OSAxOS40Mjc0IDkuMTEwNzYgMTkuNDg5IDguNjE1NzUgMTkuNDg5SDcuMTU0ODRMNi42OTIyMiAyMkg1TDYuNzQwOTIgMTIuNTI0M1pNNy40MzQ4NSAxNy45OTU2TDguMTYyODcgMTQuMDQ0MUg4LjQwODc5QzguNDk4MTUgMTQuMDQ0MSA4LjU5MTQgMTQuMDM5NiA4LjY4ODggMTQuMDMwOUM5LjMzODE3IDE0LjAyMjEgOS44Nzc3NCAxNC4wODgyIDEwLjMwOCAxNC4yMjkxQzEwLjc0NjIgMTQuMzcgMTAuODkyMyAxNC45MDMxIDEwLjc0NjIgMTUuODI4MkMxMC41Njc4IDE2LjkyOTYgMTAuMjE4NiAxNy41NzI3IDkuNjk5MjYgMTcuNzU3N0M5LjE3OTkgMTcuOTM0IDguNTMwNTMgMTguMDE3NiA3Ljc1MTM4IDE4LjAwODhINy41ODA5NEM3LjUzMjI0IDE4LjAwODggNy40ODM1NSAxOC4wMDQzIDcuNDM0ODUgMTcuOTk1NloiIGZpbGw9IndoaXRlIi8+DQo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI0LjQzNjUgMTIuNTI0M0gyMS4xNzM4TDE5LjQzMjkgMjJIMjEuMTI1MUwyMS41ODc4IDE5LjQ4OUgyMy4wNDg3QzIzLjU0MzcgMTkuNDg5IDI0LjAyMjYgMTkuNDI3NCAyNC40ODUyIDE5LjMwNEMyNC45NDc5IDE5LjE4MDUgMjUuMzgyIDE4Ljg4OTggMjUuNzg3OSAxOC40MzE3QzI2LjEyMDcgMTguMDcwNCAyNi4zODAzIDE3LjY2NTIgMjYuNTY3IDE3LjIxNTlDMjYuNzYxOCAxNi43NjY1IDI2Ljg4NzcgMTYuMzA4NSAyNi45NDQ0IDE1Ljg0MTRDMjcuMDkwNSAxNC44MTkzIDI2Ljk0ODYgMTQuMDEzMiAyNi41MTgzIDEzLjQyMjlDMjYuMDg4MSAxMi44MzI3IDI1LjM5NDIgMTIuNTMzIDI0LjQzNjUgMTIuNTI0M1pNMjIuNTk1OCAxNC4wNDQxTDIxLjg2NzggMTcuOTk1NkMyMS45MTY1IDE4LjAwNDMgMjEuOTY1MiAxOC4wMDg4IDIyLjAxMzkgMTguMDA4OEgyMi4xODQzQzIyLjk2MzUgMTguMDE3NiAyMy42MTI4IDE3LjkzNCAyNC4xMzIyIDE3Ljc1NzdDMjQuNjUxNSAxNy41NzI3IDI1LjAwMDcgMTYuOTI5NiAyNS4xNzkyIDE1LjgyODJDMjUuMzI1MyAxNC45MDMxIDI1LjE3OTIgMTQuMzcgMjQuNzQwOSAxNC4yMjkxQzI0LjMxMDcgMTQuMDg4MiAyMy43NzExIDE0LjAyMjEgMjMuMTIxNyAxNC4wMzA5QzIzLjAyNDMgMTQuMDM5NiAyMi45MzExIDE0LjA0NDEgMjIuODQxNyAxNC4wNDQxSDIyLjU5NThaIiBmaWxsPSJ3aGl0ZSIvPg0KPC9zdmc+

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtMTggMjU2IDI1NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij48cGF0aCBkPSJNMjQ1Ljk3IDE2OC45NDNjLTEzLjY2MiA3LjEyMS04NC40MzQgMzYuMjItOTkuNTAxIDQ0LjA3NS0xNS4wNjcgNy44NTYtMjMuNDM3IDcuNzgtMzUuMzQgMi4wOS0xMS45MDItNS42OS04Ny4yMTYtMzYuMTEyLTEwMC43ODMtNDIuNTk3QzMuNTY2IDE2OS4yNzEgMCAxNjYuNTM1IDAgMTYzLjk1MXYtMjUuODc2czk4LjA1LTIxLjM0NSAxMTMuODc5LTI3LjAyNGMxNS44MjgtNS42NzkgMjEuMzItNS44ODQgMzQuNzktLjk1IDEzLjQ3MiA0LjkzNiA5NC4wMTggMTkuNDY4IDEwNy4zMzEgMjQuMzQ0bC0uMDA2IDI1LjUxYy4wMDIgMi41NTgtMy4wNyA1LjM2NC0xMC4wMjQgOC45ODgiIGZpbGw9IiM5MTI2MjYiLz48cGF0aCBkPSJNMjQ1Ljk2NSAxNDMuMjJjLTEzLjY2MSA3LjExOC04NC40MzEgMzYuMjE4LTk5LjQ5OCA0NC4wNzItMTUuMDY2IDcuODU3LTIzLjQzNiA3Ljc4LTM1LjMzOCAyLjA5LTExLjkwMy01LjY4Ni04Ny4yMTQtMzYuMTEzLTEwMC43OC00Mi41OTQtMTMuNTY2LTYuNDg1LTEzLjg1LTEwLjk0OC0uNTI0LTE2LjE2NiAxMy4zMjYtNS4yMiA4OC4yMjQtMzQuNjA1IDEwNC4wNTUtNDAuMjg0IDE1LjgyOC01LjY3NyAyMS4zMTktNS44ODQgMzQuNzg5LS45NDggMTMuNDcxIDQuOTM0IDgzLjgxOSAzMi45MzUgOTcuMTMgMzcuODEgMTMuMzE2IDQuODgxIDEzLjgyNyA4LjkuMTY2IDE2LjAyIiBmaWxsPSIjQzYzMDJCIi8+PHBhdGggZD0iTTI0NS45NyAxMjcuMDc0Yy0xMy42NjIgNy4xMjItODQuNDM0IDM2LjIyLTk5LjUwMSA0NC4wNzgtMTUuMDY3IDcuODUzLTIzLjQzNyA3Ljc3Ny0zNS4zNCAyLjA4Ny0xMS45MDMtNS42ODctODcuMjE2LTM2LjExMi0xMDAuNzgzLTQyLjU5N0MzLjU2NiAxMjcuNDAyIDAgMTI0LjY3IDAgMTIyLjA4NVY5Ni4yMDZzOTguMDUtMjEuMzQ0IDExMy44NzktMjcuMDIzYzE1LjgyOC01LjY3OSAyMS4zMi01Ljg4NSAzNC43OS0uOTVDMTYyLjE0MiA3My4xNjggMjQyLjY4OCA4Ny42OTcgMjU2IDkyLjU3NGwtLjAwNiAyNS41MTNjLjAwMiAyLjU1Ny0zLjA3IDUuMzYzLTEwLjAyNCA4Ljk4NyIgZmlsbD0iIzkxMjYyNiIvPjxwYXRoIGQ9Ik0yNDUuOTY1IDEwMS4zNTFjLTEzLjY2MSA3LjEyLTg0LjQzMSAzNi4yMTgtOTkuNDk4IDQ0LjA3NS0xNS4wNjYgNy44NTQtMjMuNDM2IDcuNzc3LTM1LjMzOCAyLjA4Ny0xMS45MDMtNS42ODYtODcuMjE0LTM2LjExMi0xMDAuNzgtNDIuNTk0LTEzLjU2Ni02LjQ4My0xMy44NS0xMC45NDctLjUyNC0xNi4xNjdDMjMuMTUxIDgzLjUzNSA5OC4wNSA1NC4xNDggMTEzLjg4IDQ4LjQ3YzE1LjgyOC01LjY3OCAyMS4zMTktNS44ODQgMzQuNzg5LS45NDkgMTMuNDcxIDQuOTM0IDgzLjgxOSAzMi45MzMgOTcuMTMgMzcuODEgMTMuMzE2IDQuODggMTMuODI3IDguOS4xNjYgMTYuMDIiIGZpbGw9IiNDNjMwMkIiLz48cGF0aCBkPSJNMjQ1Ljk3IDgzLjY1M2MtMTMuNjYyIDcuMTItODQuNDM0IDM2LjIyLTk5LjUwMSA0NC4wNzgtMTUuMDY3IDcuODU0LTIzLjQzNyA3Ljc3Ny0zNS4zNCAyLjA4Ny0xMS45MDMtNS42ODctODcuMjE2LTM2LjExMy0xMDAuNzgzLTQyLjU5NUMzLjU2NiA4My45OCAwIDgxLjI0NyAwIDc4LjY2NXYtMjUuODhzOTguMDUtMjEuMzQzIDExMy44NzktMjcuMDIxYzE1LjgyOC01LjY4IDIxLjMyLTUuODg0IDM0Ljc5LS45NUMxNjIuMTQyIDI5Ljc0OSAyNDIuNjg4IDQ0LjI3OCAyNTYgNDkuMTU1bC0uMDA2IDI1LjUxMmMuMDAyIDIuNTU1LTMuMDcgNS4zNjEtMTAuMDI0IDguOTg2IiBmaWxsPSIjOTEyNjI2Ii8+PHBhdGggZD0iTTI0NS45NjUgNTcuOTNjLTEzLjY2MSA3LjEyLTg0LjQzMSAzNi4yMi05OS40OTggNDQuMDc0LTE1LjA2NiA3Ljg1NC0yMy40MzYgNy43NzctMzUuMzM4IDIuMDlDOTkuMjI3IDk4LjQwNCAyMy45MTUgNjcuOTggMTAuMzUgNjEuNDk3LTMuMjE3IDU1LjAxNS0zLjUgNTAuNTUgOS44MjUgNDUuMzMxIDIzLjE1MSA0MC4xMTMgOTguMDUgMTAuNzMgMTEzLjg4IDUuMDVjMTUuODI4LTUuNjc5IDIxLjMxOS01Ljg4MyAzNC43ODktLjk0OCAxMy40NzEgNC45MzUgODMuODE5IDMyLjkzNCA5Ny4xMyAzNy44MTEgMTMuMzE2IDQuODc2IDEzLjgyNyA4Ljg5Ny4xNjYgMTYuMDE3IiBmaWxsPSIjQzYzMDJCIi8+PHBhdGggZD0iTTE1OS4yODMgMzIuNzU3bC0yMi4wMSAyLjI4NS00LjkyNyAxMS44NTYtNy45NTgtMTMuMjMtMjUuNDE1LTIuMjg0IDE4Ljk2NC02LjgzOS01LjY5LTEwLjQ5OCAxNy43NTUgNi45NDQgMTYuNzM4LTUuNDgtNC41MjQgMTAuODU1IDE3LjA2NyA2LjM5MU0xMzEuMDMyIDkwLjI3NUw4OS45NTUgNzMuMjM4bDU4Ljg2LTkuMDM1LTE3Ljc4MyAyNi4wNzJNNzQuMDgyIDM5LjM0N2MxNy4zNzUgMCAzMS40NiA1LjQ2IDMxLjQ2IDEyLjE5NCAwIDYuNzM2LTE0LjA4NSAxMi4xOTUtMzEuNDYgMTIuMTk1cy0zMS40Ni01LjQ2LTMxLjQ2LTEyLjE5NWMwLTYuNzM0IDE0LjA4NS0xMi4xOTQgMzEuNDYtMTIuMTk0IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTE4NS4yOTUgMzUuOTk4bDM0LjgzNiAxMy43NjYtMzQuODA2IDEzLjc1My0uMDMtMjcuNTIiIGZpbGw9IiM2MjFCMUMiLz48cGF0aCBkPSJNMTQ2Ljc1NSA1MS4yNDNsMzguNTQtMTUuMjQ1LjAzIDI3LjUxOS0zLjc3OSAxLjQ3OC0zNC43OTEtMTMuNzUyIiBmaWxsPSIjOUEyOTI4Ii8+PC9zdmc+

View File

@@ -0,0 +1 @@
PHN2ZyBoZWlnaHQ9IjI1MDAiIHdpZHRoPSIyNDkwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2Ij48ZyBmaWxsPSJub25lIj48cGF0aCBkPSJNMCAxOC4zMzhDMCA4LjIxNiA4LjQ3NCAwIDE4LjkyIDBoMjE4LjE2QzI0Ny41MyAwIDI1NiA4LjIxNiAyNTYgMTguMzM4djIxOS4zMjdDMjU2IDI0Ny43OSAyNDcuNTMgMjU2IDIzNy4wOCAyNTZIMTguOTJDOC40NzUgMjU2IDAgMjQ3Ljc5MSAwIDIzNy42NjhWMTguMzM1eiIgZmlsbD0iIzA2OSIvPjxwYXRoIGQ9Ik03Ny43OTYgMjE0LjIzOFY5OC45ODZIMzkuNDg4djExNS4yNTJINzcuOHpNNTguNjUgODMuMjUzYzEzLjM1NiAwIDIxLjY3MS04Ljg1IDIxLjY3MS0xOS45MS0uMjUtMTEuMzEyLTguMzE1LTE5LjkxNS0yMS40MTctMTkuOTE1LTEzLjExMSAwLTIxLjY3NCA4LjYwMy0yMS42NzQgMTkuOTE0IDAgMTEuMDYgOC4zMTIgMTkuOTEgMjEuMTY5IDE5LjkxaC4yNDh6TTk5IDIxNC4yMzhoMzguMzA1di02NC4zNTVjMC0zLjQ0LjI1LTYuODg5IDEuMjYyLTkuMzQ2IDIuNzY4LTYuODg1IDkuMDcxLTE0LjAxMiAxOS42NTYtMTQuMDEyIDEzLjg1OCAwIDE5LjQwNSAxMC41NjggMTkuNDA1IDI2LjA2M3Y2MS42NWgzOC4zMDR2LTY2LjA4MmMwLTM1LjM5OS0xOC44OTYtNTEuODcyLTQ0LjA5OS01MS44NzItMjAuNjYzIDAtMjkuNzM4IDExLjU0OS0zNC43OCAxOS40MTVoLjI1NVY5OC45OUg5OS4wMDJjLjUgMTAuODEyLS4wMDMgMTE1LjI1Mi0uMDAzIDExNS4yNTJ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNiAxNyIgZmlsbD0iI0ZGQ0E0OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik04LjM3ODQ1IDAuNzkyMzM3TDEwLjQxMzcgNS42MDkzNEwxNS42MjQxIDYuMDU2OTVDMTUuOTg1NCA2LjA4ODE2IDE2LjEzMjUgNi41MzkwNiAxNS44NTgxIDYuNzc2NDJMMTEuOTA2IDEwLjIwMDVMMTMuMDkwMyAxNS4yOTQzQzEzLjE3MjQgMTUuNjQ4MiAxMi43ODg5IDE1LjkyNjcgMTIuNDc4NCAxNS43Mzg2TDguMDAwNjQgMTMuMDM4MUwzLjUyMjg0IDE1LjczODZDMy4yMTE1NyAxNS45MjU5IDIuODI4ODMgMTUuNjQ3NCAyLjkxMDk2IDE1LjI5NDNMNC4wOTUzIDEwLjIwMDVMMC4xNDIzMTkgNi43NzU2Qy0wLjEzMiA2LjUzODI0IDAuMDE0MTkzNyA2LjA4NzM0IDAuMzc2MzkzIDYuMDU2MTNMNS41ODY4IDUuNjA4NTJMNy42MjIwMiAwLjc5MjMzN0M3Ljc2MzI4IDAuNDU3MjQyIDguMjM3MTggMC40NTcyNDIgOC4zNzg0NSAwLjc5MjMzN1oiLz4KPC9zdmc+

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAyOCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIxLjY1MiAxNi42NDgyQzIwLjM2MzggMTYuNjQ4MiAxOS4xNTggMTYuMTAyMyAxOC4wNjEgMTUuMjEzM0wxOC4zMjggMTMuOTU5MkwxOC4zMzk4IDEzLjkxMzRDMTguNTc4MSAxMi41NzggMTkuMzMyMiAxMC4zMzU1IDIxLjY1MiAxMC4zMzU1QzIzLjM5MTggMTAuMzM1NSAyNC44MDcgMTEuNzUzMyAyNC44MDcgMTMuNDk0NEMyNC44MDE4IDE1LjIzMDQgMjMuMzg2NiAxNi42NDgyIDIxLjY1MiAxNi42NDgyWk0yMS42NTIgNy4xMzQ2MkMxOC42ODgxIDcuMTM0NjIgMTYuMzkwNSA5LjA2Mjk5IDE1LjQ1NzEgMTIuMjMzN0MxNC4wMzAxIDEwLjA5MDcgMTIuOTUxNCA3LjUxODIgMTIuMzE5MSA1LjM1MTU2SDkuMTNWMTMuNjYyQzkuMTMgMTUuMjk5NyA3Ljc5NTk5IDE2LjYzNTEgNi4xNTk1NiAxNi42MzUxQzQuNTIzMTMgMTYuNjM1MSAzLjE5MDQyIDE1LjI5OTcgMy4xOTA0MiAxMy42NjJWNS4zNTE1NkgzLjc0ODE4ZS0wNVYxMy42NjJDLTAuMDExNzQ0OCAxNy4wNjU4IDIuNzU1NzggMTkuODU5NSA2LjE1NDMyIDE5Ljg1OTVDOS41NTI4NiAxOS44NTk1IDEyLjMyMDQgMTcuMDY1OCAxMi4zMjA0IDEzLjY2MlYxMi4yNjc4QzEyLjk0MDkgMTMuNTYyNSAxMy43MDAyIDE0Ljg2OSAxNC42MjMyIDE2LjAzMTZMMTIuNjY4NiAyNS4yMzA5SDE1LjkzNDlMMTcuMzUwMSAxOC41NTgyQzE4LjU5MTIgMTkuMzU0MiAyMC4wMTgyIDE5Ljg1MyAyMS42NTQ2IDE5Ljg1M0MyNS4xNTI2IDE5Ljg1MyAyOCAxNi45ODMzIDI4IDEzLjQ4MTNDMjcuOTk3NCA5Ljk4NTkzIDI1LjE1IDcuMTM0NjIgMjEuNjUyIDcuMTM0NjJaIiBmaWxsPSIjNkZEQTQ0Ii8+Cjwvc3ZnPgo=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI3IiB2aWV3Qm94PSIwIDAgOCA3IiBvcGFjaXR5PSIwLjQiIGZpbGw9IiMxRTI1MzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8cGF0aCBkPSJNNS4wMzI5NSA2LjAzMTY1QzQuNDY0MiA2LjYwNjMgMy41MzU4IDYuNjA2MyAyLjk2NzA1IDYuMDMxNjVMMC40MjMzMDEgMy40NjE1NEMtMC40ODQ5ODQgMi41NDM4NSAwLjE2NTA3IDAuOTg1ODQgMS40NTYyNSAwLjk4NTg0TDYuNTQzNzUgMC45ODU4NEM3LjgzNDkzIDAuOTg1ODQgOC40ODQ5OSAyLjU0Mzg1IDcuNTc2NyAzLjQ2MTU0TDUuMDMyOTUgNi4wMzE2NVoiLz4KPC9zdmc+

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcikiIGQ9Ik0xMC4zMjkxIDAuNUg1LjA3OTFDMi42NjMyMyAwLjUgMC43MDQxMDIgMi40NTkxMyAwLjcwNDEwMiA0Ljg3NVYxMC4xMjVDMC43MDQxMDIgMTIuNTQwOSAyLjY2MzIzIDE0LjUgNS4wNzkxIDE0LjVIMTAuMzI5MUMxMi43NDUgMTQuNSAxNC43MDQxIDEyLjU0MDkgMTQuNzA0MSAxMC4xMjVWNC44NzVDMTQuNzA0MSAyLjQ1OTEzIDEyLjc0NSAwLjUgMTAuMzI5MSAwLjVaTTEzLjM5MTYgMTAuMTI1QzEzLjM5MTYgMTEuODEzOCAxMi4wMTc5IDEzLjE4NzUgMTAuMzI5MSAxMy4xODc1SDUuMDc5MUMzLjM5MDM1IDEzLjE4NzUgMi4wMTY2IDExLjgxMzggMi4wMTY2IDEwLjEyNVY0Ljg3NUMyLjAxNjYgMy4xODYyNSAzLjM5MDM1IDEuODEyNSA1LjA3OTEgMS44MTI1SDEwLjMyOTFDMTIuMDE3OSAxLjgxMjUgMTMuMzkxNiAzLjE4NjI1IDEzLjM5MTYgNC44NzVWMTAuMTI1WiIvPgoJPHBhdGggZmlsbD0idXJsKCNwYWludDFfbGluZWFyKSIgZD0iTTcuNzA0MSA0QzUuNzcxMjMgNCA0LjIwNDEgNS41NjcxMiA0LjIwNDEgNy41QzQuMjA0MSA5LjQzMjg3IDUuNzcxMjMgMTEgNy43MDQxIDExQzkuNjM2OTggMTEgMTEuMjA0MSA5LjQzMjg3IDExLjIwNDEgNy41QzExLjIwNDEgNS41NjcxMiA5LjYzNjk4IDQgNy43MDQxIDRaTTcuNzA0MSA5LjY4NzVDNi40OTgzNSA5LjY4NzUgNS41MTY2IDguNzA1NzUgNS41MTY2IDcuNUM1LjUxNjYgNi4yOTMzOCA2LjQ5ODM1IDUuMzEyNSA3LjcwNDEgNS4zMTI1QzguOTA5ODUgNS4zMTI1IDkuODkxNiA2LjI5MzM4IDkuODkxNiA3LjVDOS44OTE2IDguNzA1NzUgOC45MDk4NSA5LjY4NzUgNy43MDQxIDkuNjg3NVoiLz4KCTxwYXRoIGZpbGw9InVybCgjcGFpbnQyX2xpbmVhcikiIGQ9Ik0xMS40NjY3IDQuMjAzNTdDMTEuNzI0MiA0LjIwMzU3IDExLjkzMyAzLjk5NDc3IDExLjkzMyAzLjczNzJDMTEuOTMzIDMuNDc5NjMgMTEuNzI0MiAzLjI3MDgzIDExLjQ2NjcgMy4yNzA4M0MxMS4yMDkxIDMuMjcwODMgMTEuMDAwMyAzLjQ3OTYzIDExLjAwMDMgMy43MzcyQzExLjAwMDMgMy45OTQ3NyAxMS4yMDkxIDQuMjAzNTcgMTEuNDY2NyA0LjIwMzU3WiIvPgoJPGRlZnM+CgkJPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyIiB4MT0iMS42NDQwOSIgeTE9IjEzLjU4NzkiIHgyPSIxNC42MTYiIHkyPSIyLjM1ODYyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNGRkRENTUiLz4KCQkJPHN0b3Agb2Zmc2V0PSIwLjUiIHN0b3AtY29sb3I9IiNGRjU0M0UiLz4KCQkJPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQzgzN0FCIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXIiIHgxPSIxLjY0NDA5IiB5MT0iMTMuNTg3OSIgeDI9IjE0LjYxNiIgeTI9IjIuMzU4NjIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI0ZGREQ1NSIvPgoJCQk8c3RvcCBvZmZzZXQ9IjAuNSIgc3RvcC1jb2xvcj0iI0ZGNTQzRSIvPgoJCQk8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNDODM3QUIiLz4KCQk8L2xpbmVhckdyYWRpZW50PgoJCTxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQyX2xpbmVhciIgeDE9IjEuNjQ0MDkiIHkxPSIxMy41ODc5IiB4Mj0iMTQuNjE2IiB5Mj0iMi4zNTg2MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjRkZERDU1Ii8+CgkJCTxzdG9wIG9mZnNldD0iMC41IiBzdG9wLWNvbG9yPSIjRkY1NDNFIi8+CgkJCTxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0M4MzdBQiIvPgoJCTwvbGluZWFyR3JhZGllbnQ+Cgk8L2RlZnM+Cjwvc3ZnPg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuNSwtLjIpIj4KCQk8cGF0aCBkPSJNMTkuNDI4NiAxOS45NjgyQzE4IDIxLjExMSAxNiAyMS45NjgyIDE0IDIxLjk2ODJDOS40Mjg1OCAyMS45NjgyIDYuMjg1NzEgMTguNTM5NiA2LjI4NTcxIDEzLjk2ODJDNi4yODU3MSA5LjM5Njc2IDkuNDI4NTggNi4yNTM5IDE0IDYuMjUzOUMxNiA2LjI1MzkgMTggNi44MjUzMyAxOS40Mjg2IDguMjUzOUwyMC4yODU3IDkuMTExMDVMMjQuODU3MSA0LjgyNTMzTDIzLjcxNDMgMy45NjgxOUMyMS4xNDI5IDEuNjgyNDcgMTcuNzE0MyAwLjI1MzkwNiAxNCAwLjI1MzkwNkM2LjAwMDAxIDAuMjUzOTA2IDAgNi4yNTM5IDAgMTQuMjUzOUMwIDIyLjI1MzkgNi4wMDAwMSAyOC4yNTM5IDE0IDI4LjI1MzlDMTcuNzE0MyAyOC4yNTM5IDIxLjE0MjkgMjYuODI1MyAyMy43MTQzIDI0LjUzOTZMMjQuODU3MSAyMy42ODI1TDIwLjI4NTcgMTkuMTExTDE5LjQyODYgMTkuOTY4MloiLz4KCQk8cGF0aCBkPSJNMTMuNzE0IDE4LjgyNDVDMTYuMjM4NyAxOC44MjQ1IDE4LjI4NTQgMTYuNzc3OCAxOC4yODU0IDE0LjI1MzFDMTguMjg1NCAxMS43MjgzIDE2LjIzODcgOS42ODE2NCAxMy43MTQgOS42ODE2NEMxMS4xODkzIDkuNjgxNjQgOS4xNDI1OCAxMS43MjgzIDkuMTQyNTggMTQuMjUzMUM5LjE0MjU4IDE2Ljc3NzggMTEuMTg5MyAxOC44MjQ1IDEzLjcxNCAxOC44MjQ1WiIvPgoJPC9nPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik0xNC4wMDE2IDAuNjI1MDAxQzYuMjY1NjcgMC42MjE4NzMgMCA2Ljg4NDQxIDAgMTQuNjE0MUMwIDIwLjcyNjQgMy45MTk1NiAyNS45MjIzIDkuMzc4MTcgMjcuODMwNUMxMC4xMTMzIDI4LjAxNSAxMC4wMDA3IDI3LjQ5MjYgMTAuMDAwNyAyNy4xMzZWMjQuNzExN0M1Ljc1NTc4IDI1LjIwOTEgNS41ODM3MyAyMi40IDUuMjk5MDcgMjEuOTMwOEM0LjcyMzQ5IDIwLjk0ODUgMy4zNjI3NSAyMC42OTgzIDMuNzY5NDEgMjAuMjI5MUM0LjczNjAxIDE5LjczMTcgNS43MjEzNyAyMC4zNTQyIDYuODYzMTQgMjIuMDQwM0M3LjY4ODk3IDIzLjI2MzQgOS4yOTk5NyAyMy4wNTY5IDEwLjExNjQgMjIuODUzNkMxMC4yOTQ3IDIyLjExODUgMTAuNjc2MyAyMS40NjE2IDExLjIwMTkgMjAuOTUxN0M2LjgwMzcxIDIwLjE2MzQgNC45NzA2MiAxNy40Nzk0IDQuOTcwNjIgMTQuMjg4N0M0Ljk3MDYyIDEyLjc0MDMgNS40ODA1MSAxMS4zMTcgNi40ODE1MSAxMC4xNjlDNS44NDMzNyA4LjI3NjQ0IDYuNTQwOTUgNi42NTYwNiA2LjYzNDc5IDYuNDE1MTlDOC40NTIyNCA2LjI1MjUzIDEwLjM0MTYgNy43MTY1IDEwLjQ4ODcgNy44MzIyNEMxMS41MjA5IDcuNTUzODQgMTIuNzAwMyA3LjQwNjgxIDE0LjAyMDMgNy40MDY4MUMxNS4zNDY3IDcuNDA2ODEgMTYuNTI5MSA3LjU2MDA5IDE3LjU3MDggNy44NDE2MkMxNy45MjQzIDcuNTcyNiAxOS42NzYgNi4zMTUwOSAyMS4zNjUyIDYuNDY4MzdDMjEuNDU1OSA2LjcwOTI0IDIyLjEzNzkgOC4yOTIwOCAyMS41MzczIDEwLjE1OTZDMjIuNTUwOCAxMS4zMTA3IDIzLjA2NjkgMTIuNzQ2NiAyMy4wNjY5IDE0LjI5ODFDMjMuMDY2OSAxNy40OTUxIDIxLjIyMTMgMjAuMTgyMSAxNi44MTA2IDIwLjk1NzlDMTcuMTg4NCAyMS4zMjk1IDE3LjQ4ODQgMjEuNzcyNSAxNy42OTMgMjIuMjYxM0MxNy44OTc3IDIyLjc1IDE4LjAwMjggMjMuMjc0NyAxOC4wMDI1IDIzLjgwNDVWMjcuMzIzN0MxOC4wMjc1IDI3LjYwNTIgMTguMDAyNSAyNy44ODM2IDE4LjQ3MTcgMjcuODgzNkMyNC4wMTE2IDI2LjAxNjEgMjggMjAuNzgyNyAyOCAxNC42MTcyQzI4IDYuODg0NDEgMjEuNzMxMiAwLjYyNTAwMSAxNC4wMDE2IDAuNjI1MDAxWiIvPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLS4yKSI+CgkJPHBhdGggZD0iTTI3Ljk5MzUgMjguMjUzNVYyOC4yNTIzSDI4LjAwMDVWMTcuOTgzM0MyOC4wMDA1IDEyLjk1OTcgMjYuOTE5IDkuMDg5ODQgMjEuMDQ2IDkuMDg5ODRDMTguMjIyNiA5LjA4OTg0IDE2LjMyOCAxMC42MzkyIDE1LjU1NDUgMTIuMTA4SDE1LjQ3MjhWOS41NTg4NEg5LjkwNDNWMjguMjUyM0gxNS43MDI2VjE4Ljk5NkMxNS43MDI2IDE2LjU1ODggMTYuMTY0NiAxNC4yMDIyIDE5LjE4MjggMTQuMjAyMkMyMi4xNTY3IDE0LjIwMjIgMjIuMjAxIDE2Ljk4MzUgMjIuMjAxIDE5LjE1MjNWMjguMjUzNUgyNy45OTM1WiIvPgoJCTxwYXRoIGQ9Ik0wLjQ2MTkxNCA5LjU2MDU1SDYuMjY3MjVWMjguMjU0SDAuNDYxOTE0VjkuNTYwNTVaIi8+CgkJPHBhdGggZD0iTTMuMzYyMzMgMC4yNTM5MDZDMS41MDYxNyAwLjI1MzkwNiAwIDEuNzYwMDcgMCAzLjYxNjI0QzAgNS40NzI0MSAxLjUwNjE3IDcuMDEwMDcgMy4zNjIzMyA3LjAxMDA3QzUuMjE4NSA3LjAxMDA3IDYuNzI0NjcgNS40NzI0MSA2LjcyNDY3IDMuNjE2MjRDNi43MjM1IDEuNzYwMDcgNS4yMTczMyAwLjI1MzkwNiAzLjM2MjMzIDAuMjUzOTA2VjAuMjUzOTA2WiIvPgoJPC9nPgo8L3N2Zz4K

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyMSAyMSIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik04LjI4OTA1IDEyLjkwNDRMNy45NTgyMiAxNy41NTc4QzguNDMxNTYgMTcuNTU3OCA4LjYzNjU1IDE3LjM1NDQgOC44ODIzOSAxNy4xMTAzTDExLjEwMTYgMTQuOTg5NEwxNS42OTk5IDE4LjM1NjlDMTYuNTQzMiAxOC44MjY5IDE3LjEzNzQgMTguNTc5NCAxNy4zNjQ5IDE3LjU4MTFMMjAuMzgzMiAzLjQzNzc2TDIwLjM4NDEgMy40MzY5M0MyMC42NTE2IDIuMTkwMjYgMTkuOTMzMiAxLjcwMjc2IDE5LjExMTYgMi4wMDg1OUwxLjM2OTg5IDguODAxMDlDMC4xNTkwNTQgOS4yNzEwOSAwLjE3NzM4OCA5Ljk0NjA5IDEuMTY0MDUgMTAuMjUxOUw1LjY5OTg5IDExLjY2MjhMMTYuMjM1NyA1LjA3MDI2QzE2LjczMTYgNC43NDE5MyAxNy4xODI0IDQuOTIzNTkgMTYuODExNiA1LjI1MTkzTDguMjg5MDUgMTIuOTA0NFoiLz4KPC9zdmc+

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0uNywwKSIgZD0iTTIyLjUwOTQgMTYuNzMyMkMyMS4yMjEyIDE2LjczMjIgMjAuMDE1NSAxNi4xODYyIDE4LjkxODQgMTUuMjk3M0wxOS4xODU1IDE0LjA0MzJMMTkuMTk3MyAxMy45OTc0QzE5LjQzNTUgMTIuNjYyIDIwLjE4OTYgMTAuNDE5NSAyMi41MDk0IDEwLjQxOTVDMjQuMjQ5MiAxMC40MTk1IDI1LjY2NDQgMTEuODM3MyAyNS42NjQ0IDEzLjU3ODRDMjUuNjU5MiAxNS4zMTQ0IDI0LjI0NCAxNi43MzIyIDIyLjUwOTQgMTYuNzMyMlpNMjIuNTA5NCA3LjIxODZDMTkuNTQ1NSA3LjIxODYgMTcuMjQ3OSA5LjE0Njk3IDE2LjMxNDUgMTIuMzE3N0MxNC44ODc2IDEwLjE3NDYgMTMuODA4OCA3LjYwMjE4IDEzLjE3NjUgNS40MzU1NUg5Ljk4NzQzVjEzLjc0NkM5Ljk4NzQzIDE1LjM4MzcgOC42NTM0MSAxNi43MTkxIDcuMDE2OTggMTYuNzE5MUM1LjM4MDU1IDE2LjcxOTEgNC4wNDc4NCAxNS4zODM3IDQuMDQ3ODQgMTMuNzQ2VjUuNDM1NTVIMC44NTc0NTlWMTMuNzQ2QzAuODQ1Njc3IDE3LjE0OTggMy42MTMyMSAxOS45NDM1IDcuMDExNzQgMTkuOTQzNUMxMC40MTAzIDE5Ljk0MzUgMTMuMTc3OCAxNy4xNDk4IDEzLjE3NzggMTMuNzQ2VjEyLjM1MThDMTMuNzk4MyAxMy42NDY1IDE0LjU1NzYgMTQuOTUzIDE1LjQ4MDYgMTYuMTE1NUwxMy41MjYgMjUuMzE0OUgxNi43OTI0TDE4LjIwNzUgMTguNjQyMkMxOS40NDg2IDE5LjQzODIgMjAuODc1NiAxOS45MzY5IDIyLjUxMiAxOS45MzY5QzI2LjAxIDE5LjkzNjkgMjguODU3NCAxNy4wNjczIDI4Ljg1NzQgMTMuNTY1M0MyOC44NTQ4IDEwLjA2OTkgMjYuMDA3NCA3LjIxODYgMjIuNTA5NCA3LjIxODZaIi8+Cjwvc3ZnPg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyMSAyMSIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik0xMC40NDM5IDAuMjUzOTA2SDEwLjQzODlDNC45MjUxNiAwLjI1MzkwNiAwLjQ0MTQwNiA0LjczODkxIDAuNDQxNDA2IDEwLjI1MzlDMC40NDE0MDYgMTIuNDQxNCAxLjE0NjQxIDE0LjQ2ODkgMi4zNDUxNiAxNi4xMTUyTDEuMDk4OTEgMTkuODMwMkw0Ljk0MjY2IDE4LjYwMTRDNi41MjM5MSAxOS42NDg5IDguNDEwMTYgMjAuMjUzOSAxMC40NDM5IDIwLjI1MzlDMTUuOTU3NyAyMC4yNTM5IDIwLjQ0MTQgMTUuNzY3NyAyMC40NDE0IDEwLjI1MzlDMjAuNDQxNCA0Ljc0MDE2IDE1Ljk1NzcgMC4yNTM5MDYgMTAuNDQzOSAwLjI1MzkwNlpNMTYuMjYyNyAxNC4zNzUyQzE2LjAyMTQgMTUuMDU2NCAxNS4wNjM5IDE1LjYyMTQgMTQuMzAwMiAxNS43ODY0QzEzLjc3NzcgMTUuODk3NyAxMy4wOTUyIDE1Ljk4NjQgMTAuNzk3NyAxNS4wMzM5QzcuODU4OTEgMTMuODE2NCA1Ljk2NjQxIDEwLjgzMDIgNS44MTg5MSAxMC42MzY0QzUuNjc3NjYgMTAuNDQyNyA0LjYzMTQxIDkuMDU1MTYgNC42MzE0MSA3LjYyMDE2QzQuNjMxNDEgNi4xODUxNiA1LjM2MDE2IDUuNDg2NDEgNS42NTM5MSA1LjE4NjQxQzUuODk1MTYgNC45NDAxNiA2LjI5MzkxIDQuODI3NjYgNi42NzY0MSA0LjgyNzY2QzYuODAwMTYgNC44Mjc2NiA2LjkxMTQxIDQuODMzOTEgNy4wMTE0MSA0LjgzODkxQzcuMzA1MTYgNC44NTE0MSA3LjQ1MjY2IDQuODY4OTEgNy42NDY0MSA1LjMzMjY2QzcuODg3NjYgNS45MTM5MSA4LjQ3NTE2IDcuMzQ4OTEgOC41NDUxNiA3LjQ5NjQxQzguNjE2NDEgNy42NDM5MSA4LjY4NzY2IDcuODQzOTEgOC41ODc2NiA4LjAzNzY2QzguNDkzOTEgOC4yMzc2NiA4LjQxMTQxIDguMzI2NDEgOC4yNjM5MSA4LjQ5NjQxQzguMTE2NDEgOC42NjY0MSA3Ljk3NjQxIDguNzk2NDEgNy44Mjg5MSA4Ljk3ODkxQzcuNjkzOTEgOS4xMzc2NiA3LjU0MTQxIDkuMzA3NjYgNy43MTE0MSA5LjYwMTQxQzcuODgxNDEgOS44ODg5MSA4LjQ2ODkxIDEwLjg0NzcgOS4zMzM5MSAxMS42MTc3QzEwLjQ1MDIgMTIuNjExNCAxMS4zNTUyIDEyLjkyODkgMTEuNjc4OSAxMy4wNjM5QzExLjkyMDIgMTMuMTYzOSAxMi4yMDc3IDEzLjE0MDIgMTIuMzgzOSAxMi45NTI3QzEyLjYwNzcgMTIuNzExNCAxMi44ODM5IDEyLjMxMTQgMTMuMTY1MiAxMS45MTc3QzEzLjM2NTIgMTEuNjM1MiAxMy42MTc3IDExLjYwMDIgMTMuODgyNyAxMS43MDAyQzE0LjE1MjcgMTEuNzkzOSAxNS41ODE0IDEyLjUwMDIgMTUuODc1MiAxMi42NDY0QzE2LjE2ODkgMTIuNzkzOSAxNi4zNjI3IDEyLjg2MzkgMTYuNDMzOSAxMi45ODc3QzE2LjUwMzkgMTMuMTExNCAxNi41MDM5IDEzLjY5MjcgMTYuMjYyNyAxNC4zNzUyWiIvPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5maWxlX3R5cGVfdHlwZXNjcmlwdDwvdGl0bGU+PHBhdGggZD0iTTIzLjgyNyw4LjI0M0E0LjQyNCw0LjQyNCwwLDAsMSwyNi4wNSw5LjUyNGE1Ljg1Myw1Ljg1MywwLDAsMSwuODUyLDEuMTQzYy4wMTEuMDQ1LTEuNTM0LDEuMDgzLTIuNDcxLDEuNjYyLS4wMzQuMDIzLS4xNjktLjEyNC0uMzIyLS4zNWEyLjAxNCwyLjAxNCwwLDAsMC0xLjY3LTFjLTEuMDc3LS4wNzQtMS43NzEuNDktMS43NjYsMS40MzNhMS4zLDEuMywwLDAsMCwuMTUzLjY2NmMuMjM3LjQ5LjY3Ny43ODQsMi4wNTksMS4zODMsMi41NDQsMS4wOTUsMy42MzYsMS44MTcsNC4zMSwyLjg0M2E1LjE1OCw1LjE1OCwwLDAsMSwuNDE2LDQuMzMzLDQuNzY0LDQuNzY0LDAsMCwxLTMuOTMyLDIuODE1LDEwLjksMTAuOSwwLDAsMS0yLjcwOC0uMDI4LDYuNTMxLDYuNTMxLDAsMCwxLTMuNjE2LTEuODg0LDYuMjc4LDYuMjc4LDAsMCwxLS45MjYtMS4zNzEsMi42NTUsMi42NTUsMCwwLDEsLjMyNy0uMjA4Yy4xNTgtLjA5Ljc1Ni0uNDM0LDEuMzItLjc2MUwxOS4xLDE5LjZsLjIxNC4zMTJhNC43NzEsNC43NzEsMCwwLDAsMS4zNSwxLjI5MiwzLjMsMy4zLDAsMCwwLDMuNDU4LS4xNzUsMS41NDUsMS41NDUsMCwwLDAsLjItMS45NzRjLS4yNzYtLjM5NS0uODQtLjcyNy0yLjQ0My0xLjQyMmE4LjgsOC44LDAsMCwxLTMuMzQ5LTIuMDU1LDQuNjg3LDQuNjg3LDAsMCwxLS45NzYtMS43NzcsNy4xMTYsNy4xMTYsMCwwLDEtLjA2Mi0yLjI2OCw0LjMzMiw0LjMzMiwwLDAsMSwzLjY0NC0zLjM3NEE5LDksMCwwLDEsMjMuODI3LDguMjQzWk0xNS40ODQsOS43MjZsLjAxMSwxLjQ1NGgtNC42M1YyNC4zMjhINy42VjExLjE4M0gyLjk3VjkuNzU1QTEzLjk4NiwxMy45ODYsMCwwLDEsMy4wMSw4LjI4OWMuMDE3LS4wMjMsMi44MzItLjAzNCw2LjI0NS0uMDI4bDYuMjExLjAxN1oiIHN0eWxlPSJmaWxsOiMwMDdhY2MiLz48L3N2Zz4=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNyAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik0yMS42ODgyIDAuNzc4MzJIMjYuODg3N0wxMy44ODg5IDIzLjIwMTJMMC44OTAxMzcgMC43NzgzMkgxMC44MzQyTDEzLjg4ODkgNS45Nzc4M0wxNi44Nzg2IDAuNzc4MzJIMjEuNjg4MloiIGZpbGw9IiMzZWIyN2YiLz4KPHBhdGggZD0iTTAuODkwMTM3IDAuNzc4MzJMMTMuODg4OSAyMy4yMDEyTDI2Ljg4NzcgMC43NzgzMkgyMS42ODgyTDEzLjg4ODkgMTQuMjMyMUw2LjAyNDY1IDAuNzc4MzJIMC44OTAxMzdaIiBmaWxsPSIjM2ViMjdmIi8+CjxwYXRoIGQ9Ik02LjAyNDQxIDAuNzc4MzJMMTMuODg4NyAxNC4yOTdMMjEuNjg4IDAuNzc4MzJIMTYuODc4NUwxMy44ODg3IDUuOTc3ODNMMTAuODM0IDAuNzc4MzJINi4wMjQ0MVoiIGZpbGw9IiMzMjQ3NWIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMCI+CjxyZWN0IHdpZHRoPSIyNiIgaGVpZ2h0PSIyMi40NDMyIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC44OTAxMzcgMC43NzgzMikiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIGZpbGw9IiMwMDAwMDAiIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgDQoJIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDk2LjI0IDk2LjI0IiB4bWw6c3BhY2U9InByZXNlcnZlIg0KCT4NCjxnPg0KCTxwYXRoIGQ9Ik00OC4xMjIsMEMyMS41ODcsMCwwLjAwMSwyMS41ODUsMC4wMDEsNDguMTE4YzAsMjYuNTM1LDIxLjU4Nyw0OC4xMjIsNDguMTIsNDguMTIyYzI2LjUzMiwwLDQ4LjExNy0yMS41ODcsNDguMTE3LTQ4LjEyMg0KCQlDOTYuMjM5LDIxLjU4Niw3NC42NTQsMCw0OC4xMjIsMHogTTQuODU3LDQ4LjExOGMwLTYuMjcxLDEuMzQ1LTEyLjIyNywzLjc0Ni0xNy42MDZsMjAuNjM4LDU2LjU0NA0KCQlDMTQuODEsODAuMDQyLDQuODU3LDY1LjI0Myw0Ljg1Nyw0OC4xMTh6IE00OC4xMjIsOTEuMzg1Yy00LjI0NywwLTguMzQ2LTAuNjIzLTEyLjIyMi0xLjc2M0w0OC44OCw1MS45MDNsMTMuMzAxLDM2LjQzMw0KCQljMC4wODYsMC4yMTUsMC4xOTEsMC40MTEsMC4zMDgsMC41OTZDNTcuOTkyLDkwLjUxNCw1My4xNiw5MS4zODUsNDguMTIyLDkxLjM4NXogTTU0LjA4MywyNy44MzQNCgkJYzIuNjA0LTAuMTM3LDQuOTUzLTAuNDEyLDQuOTUzLTAuNDEyYzIuMzMtMC4yNzYsMi4wNTctMy43MDEtMC4yNzctMy41NjRjMCwwLTcuMDA3LDAuNTQ5LTExLjUzMiwwLjU0OQ0KCQljLTQuMjUsMC0xMS4zOTYtMC41NDktMTEuMzk2LTAuNTQ5Yy0yLjMzMi0wLjEzNy0yLjYwNCwzLjQyNy0wLjI3MywzLjU2NGMwLDAsMi4yMDgsMC4yNzUsNC41MzcsMC40MTJsNi43NCwxOC40NjlsLTkuNDY4LDI4LjM5NQ0KCQlMMjEuNjE1LDI3LjgzNWMyLjYwOC0wLjEzNiw0Ljk1Mi0wLjQxMiw0Ljk1Mi0wLjQxMmMyLjMzLTAuMjc1LDIuMDU1LTMuNzAyLTAuMjc4LTMuNTYyYzAsMC03LjAwNCwwLjU0OS0xMS41MywwLjU0OQ0KCQljLTAuODEzLDAtMS43Ny0wLjAyMS0yLjc4NC0wLjA1MkMxOS43MDksMTIuNjExLDMzLjAwOCw0Ljg1Niw0OC4xMjIsNC44NTZjMTEuMjY1LDAsMjEuNTE5LDQuMzA2LDI5LjIxNSwxMS4zNTcNCgkJYy0wLjE4Ny0wLjAxLTAuMzY4LTAuMDM1LTAuNTYyLTAuMDM1Yy00LjI0OCwwLTcuMjY0LDMuNzAyLTcuMjY0LDcuNjc5YzAsMy41NjQsMi4wNTUsNi41ODIsNC4yNDgsMTAuMTQ2DQoJCWMxLjY0NywyLjg4MiwzLjU2Nyw2LjU4NSwzLjU2NywxMS45MzJjMCwzLjcwNC0xLjQyMiw4LTMuMjkzLDEzLjk4NmwtNC4zMTUsMTQuNDIxTDU0LjA4MywyNy44MzR6IE02OS44NzEsODUuNTE2bDEzLjIxNS0zOC4yMDgNCgkJYzIuNDcxLTYuMTcxLDMuMjktMTEuMTA2LDMuMjktMTUuNDk3YzAtMS41OTEtMC4xMDQtMy4wNy0wLjI5Mi00LjQ0OWMzLjM4LDYuMTYzLDUuMzAzLDEzLjIzNiw1LjMwMSwyMC43NTgNCgkJQzkxLjM4NCw2NC4wOCw4Mi43MzIsNzguMDE2LDY5Ljg3MSw4NS41MTZ6Ii8+DQo8L2c+DQo8L3N2Zz4=

File diff suppressed because one or more lines are too long

1232
public/index.html Normal file

File diff suppressed because it is too large Load Diff

32
src/App.js Normal file
View File

@@ -0,0 +1,32 @@
import React from 'react';
import Header from './components/Header';
import Hero from './components/Hero';
import Stats from './components/Stats';
import Services from './components/Services';
import CaseStudies from './components/CaseStudies';
import Testimonials from './components/Testimonials';
import Team from './components/Team';
import Contact from './components/Contact';
import Footer from './components/Footer';
import CookieConsent from './components/CookieConsent';
function App() {
return (
<div className="App">
<Header />
<main>
<Hero />
<Stats />
<Services />
<CaseStudies />
<Testimonials />
<Team />
<Contact />
</main>
<Footer />
<CookieConsent />
</div>
);
}
export default App;

View File

@@ -0,0 +1,116 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const CaseStudies = () => {
const shouldReduceMotion = useReducedMotion();
if (shouldReduceMotion) {
return (
<section className="section-padding bg-white">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
Case Studies
</h2>
</div>
<div className="bg-gradient-to-br from-blue-400 to-blue-600 rounded-3xl p-8 md:p-12 text-white">
<div className="grid md:grid-cols-2 gap-8 items-center">
<div>
<h3 className="text-3xl font-bold mb-4">Dios</h3>
<p className="text-blue-100 mb-6">
A comprehensive platform that revolutionized how businesses
manage their digital presence and customer relationships.
</p>
<div className="flex flex-wrap gap-4 mb-6">
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">React</span>
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">Node.js</span>
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">MongoDB</span>
</div>
<div className="flex items-center space-x-4">
<div>
<div className="text-2xl font-bold">$2,500</div>
<div className="text-blue-100 text-sm">Project value</div>
</div>
<div>
<div className="text-2xl font-bold">12w</div>
<div className="text-blue-100 text-sm">Timeline</div>
</div>
</div>
</div>
<div className="bg-white/10 rounded-2xl p-6 backdrop-blur-sm">
<div className="w-full h-48 bg-white/20 rounded-lg flex items-center justify-center">
<div className="text-4xl">📊</div>
</div>
</div>
</div>
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-white"
>
<div className="container-custom">
<motion.div
{...fadeUpPreset(0.2, 0.6)}
className="text-center mb-16"
>
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
Case Studies
</h2>
</motion.div>
<motion.div
{...fadeUpPreset(0.3, 0.8)}
className="bg-gradient-to-br from-blue-400 to-blue-600 rounded-3xl p-8 md:p-12 text-white"
>
<div className="grid md:grid-cols-2 gap-8 items-center">
<div>
<h3 className="text-3xl font-bold mb-4">Dios</h3>
<p className="text-blue-100 mb-6">
A comprehensive platform that revolutionized how businesses
manage their digital presence and customer relationships.
</p>
<div className="flex flex-wrap gap-4 mb-6">
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">React</span>
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">Node.js</span>
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">MongoDB</span>
</div>
<div className="flex items-center space-x-4">
<div>
<div className="text-2xl font-bold">$2,500</div>
<div className="text-blue-100 text-sm">Project value</div>
</div>
<div>
<div className="text-2xl font-bold">12w</div>
<div className="text-blue-100 text-sm">Timeline</div>
</div>
</div>
</div>
<div className="bg-white/10 rounded-2xl p-6 backdrop-blur-sm">
<div className="w-full h-48 bg-white/20 rounded-lg flex items-center justify-center">
<div className="text-4xl">📊</div>
</div>
</div>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default CaseStudies;

130
src/components/Contact.js Normal file
View File

@@ -0,0 +1,130 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Contact = () => {
const shouldReduceMotion = useReducedMotion();
if (shouldReduceMotion) {
return (
<section className="section-padding bg-gray-50">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
How can we help? Let's talk
</h2>
</div>
<div className="max-w-2xl mx-auto">
<div className="bg-white rounded-2xl p-8 shadow-lg">
<form className="space-y-6">
<div>
<label className="block text-sm font-medium text-gray-700 mb-2">
Name
</label>
<input
type="text"
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
placeholder="Your name"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 mb-2">
Email
</label>
<input
type="email"
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
placeholder="your@email.com"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 mb-2">
Message
</label>
<textarea
rows={4}
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
placeholder="Tell us about your project..."
></textarea>
</div>
<button type="submit" className="btn-primary w-full">
Send Message
</button>
</form>
</div>
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-gray-50"
>
<div className="container-custom">
<motion.div
{...fadeUpPreset(0.2, 0.6)}
className="text-center mb-16"
>
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
How can we help? Let's talk
</h2>
</motion.div>
<motion.div
{...fadeUpPreset(0.3, 0.8)}
className="max-w-2xl mx-auto"
>
<div className="bg-white rounded-2xl p-8 shadow-lg">
<form className="space-y-6">
<div>
<label className="block text-sm font-medium text-gray-700 mb-2">
Name
</label>
<input
type="text"
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
placeholder="Your name"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 mb-2">
Email
</label>
<input
type="email"
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
placeholder="your@email.com"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 mb-2">
Message
</label>
<textarea
rows={4}
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
placeholder="Tell us about your project..."
></textarea>
</div>
<button type="submit" className="btn-primary w-full">
Send Message
</button>
</form>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default Contact;

View File

@@ -0,0 +1,49 @@
import React, { useState } from 'react';
import { X } from 'lucide-react';
const CookieConsent = () => {
const [isVisible, setIsVisible] = useState(true);
if (!isVisible) return null;
return (
<div className="fixed bottom-4 left-4 right-4 md:left-8 md:right-auto md:max-w-md bg-white rounded-2xl shadow-2xl border border-gray-200 p-6 z-50">
<button
onClick={() => setIsVisible(false)}
className="absolute top-4 right-4 text-gray-400 hover:text-gray-600"
>
<X className="w-5 h-5" />
</button>
<h3 className="font-semibold text-gray-900 mb-3">This site uses cookies</h3>
<p className="text-sm text-gray-600 mb-4">
We and selected third parties use cookies (or similar technologies) for
technical purposes, to enhance and analyze site usage, to support our
marketing efforts, and for other purposes described below.
</p>
<p className="text-sm text-gray-600 mb-6">
By clicking "Accept all", you agree to the storing of cookies on your
device for these purposes.
</p>
<div className="flex space-x-3">
<button
onClick={() => setIsVisible(false)}
className="flex-1 px-4 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"
>
Deny
</button>
<button
onClick={() => setIsVisible(false)}
className="flex-1 px-4 py-2 bg-gray-900 text-white rounded-lg hover:bg-gray-800 transition-colors"
>
Accept all
</button>
</div>
</div>
);
};
export default CookieConsent;

75
src/components/Footer.js Normal file
View File

@@ -0,0 +1,75 @@
import React from 'react';
import { Github, Linkedin, Mail } from 'lucide-react';
const Footer = () => {
return (
<footer className="bg-gray-900 text-white py-12">
<div className="container-custom">
<div className="grid md:grid-cols-4 gap-8">
{/* Logo and Description */}
<div className="md:col-span-2">
<div className="flex items-center space-x-2 mb-4">
<div className="w-8 h-8 bg-gradient-to-br from-blue-500 to-purple-600 rounded-lg flex items-center justify-center">
<span className="text-white font-bold text-sm">S</span>
</div>
<span className="text-xl font-bold">Sargas</span>
</div>
<p className="text-gray-400 mb-6">
AI-powered web and mobile development solutions.
We help businesses transform their digital presence with cutting-edge technology.
</p>
<div className="flex items-center space-x-2 text-sm text-gray-400">
<span>Feel free to drop us a note:</span>
<a href="mailto:contact@sargas.io" className="text-blue-400 hover:text-blue-300">
contact@sargas.io
</a>
</div>
</div>
{/* Menu */}
<div>
<h4 className="font-semibold mb-4">Menu</h4>
<ul className="space-y-2 text-gray-400">
<li><a href="#case-studies" className="hover:text-white transition-colors">Case Studies</a></li>
<li><a href="#blog" className="hover:text-white transition-colors">Blog</a></li>
<li><a href="#contacts" className="hover:text-white transition-colors">Contacts</a></li>
<li><a href="#about" className="hover:text-white transition-colors">About Us</a></li>
<li><a href="#faq" className="hover:text-white transition-colors">FAQ</a></li>
</ul>
</div>
{/* Services */}
<div>
<h4 className="font-semibold mb-4">Services</h4>
<ul className="space-y-2 text-gray-400">
<li><a href="#web-dev" className="hover:text-white transition-colors">Web Development</a></li>
<li><a href="#mobile-dev" className="hover:text-white transition-colors">Mobile Development</a></li>
<li><a href="#support" className="hover:text-white transition-colors">Support and Maintenance</a></li>
</ul>
</div>
</div>
{/* Social Links */}
<div className="flex justify-center space-x-6 mt-8 pt-8 border-t border-gray-800">
<a href="#" className="text-gray-400 hover:text-white transition-colors">
<Github className="w-6 h-6" />
</a>
<a href="#" className="text-gray-400 hover:text-white transition-colors">
<Linkedin className="w-6 h-6" />
</a>
<a href="mailto:contact@sargas.io" className="text-gray-400 hover:text-white transition-colors">
<Mail className="w-6 h-6" />
</a>
</div>
{/* Bottom Links */}
<div className="flex justify-center space-x-8 mt-8 text-sm text-gray-400">
<a href="#privacy" className="hover:text-white transition-colors">Privacy Policy</a>
<a href="#terms" className="hover:text-white transition-colors">Terms of Use</a>
</div>
</div>
</footer>
);
};
export default Footer;

95
src/components/Header.js Normal file
View File

@@ -0,0 +1,95 @@
import React, { useState } from 'react';
import { Menu, X, ChevronDown } from 'lucide-react';
const Header = () => {
const [isMenuOpen, setIsMenuOpen] = useState(false);
const [isServicesOpen, setIsServicesOpen] = useState(false);
return (
<header className="fixed top-0 left-0 right-0 bg-white/95 backdrop-blur-sm border-b border-gray-100 z-50">
<div className="container-custom">
<div className="flex items-center justify-between h-16">
{/* Logo */}
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-gradient-to-br from-blue-500 to-purple-600 rounded-lg flex items-center justify-center">
<span className="text-white font-bold text-sm">S</span>
</div>
<span className="text-xl font-bold text-gray-900">Sargas</span>
</div>
{/* Desktop Navigation */}
<nav className="hidden md:flex items-center space-x-8">
<div className="relative">
<button
className="flex items-center space-x-1 text-gray-700 hover:text-blue-600 transition-colors"
onMouseEnter={() => setIsServicesOpen(true)}
onMouseLeave={() => setIsServicesOpen(false)}
>
<span>Services</span>
<ChevronDown className="w-4 h-4" />
</button>
{isServicesOpen && (
<div
className="absolute top-full left-0 mt-2 w-64 bg-white rounded-lg shadow-lg border border-gray-100 py-2"
onMouseEnter={() => setIsServicesOpen(true)}
onMouseLeave={() => setIsServicesOpen(false)}
>
<a href="#web-dev" className="block px-4 py-2 text-gray-700 hover:bg-gray-50">Web Development</a>
<a href="#mobile-dev" className="block px-4 py-2 text-gray-700 hover:bg-gray-50">Mobile Development</a>
<a href="#support" className="block px-4 py-2 text-gray-700 hover:bg-gray-50">Support and Maintenance</a>
</div>
)}
</div>
<a href="#portfolio" className="text-gray-700 hover:text-blue-600 transition-colors">Portfolio</a>
<a href="#about" className="text-gray-700 hover:text-blue-600 transition-colors">About</a>
<a href="#contacts" className="text-gray-700 hover:text-blue-600 transition-colors">Contacts</a>
</nav>
{/* Clutch Rating */}
<div className="hidden md:flex items-center space-x-3">
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-gray-800 rounded-full flex items-center justify-center">
<span className="text-white font-bold text-xs">C</span>
</div>
<div>
<div className="flex items-center space-x-1">
<span className="font-semibold text-gray-900">4.9</span>
<div className="flex text-orange-400">
{[...Array(5)].map((_, i) => (
<span key={i} className="text-xs"></span>
))}
</div>
</div>
<p className="text-xs text-gray-600">Based on 6 Clutch reviews</p>
</div>
</div>
<button className="btn-secondary">Book a Call</button>
</div>
{/* Mobile Menu Button */}
<button
className="md:hidden p-2"
onClick={() => setIsMenuOpen(!isMenuOpen)}
>
{isMenuOpen ? <X className="w-6 h-6" /> : <Menu className="w-6 h-6" />}
</button>
</div>
{/* Mobile Menu */}
{isMenuOpen && (
<div className="md:hidden border-t border-gray-100 py-4">
<nav className="flex flex-col space-y-4">
<a href="#services" className="text-gray-700 hover:text-blue-600 transition-colors">Services</a>
<a href="#portfolio" className="text-gray-700 hover:text-blue-600 transition-colors">Portfolio</a>
<a href="#about" className="text-gray-700 hover:text-blue-600 transition-colors">About</a>
<a href="#contacts" className="text-gray-700 hover:text-blue-600 transition-colors">Contacts</a>
<button className="btn-secondary w-full mt-4">Book a Call</button>
</nav>
</div>
)}
</div>
</header>
);
};
export default Header;

166
src/components/Hero.js Normal file
View File

@@ -0,0 +1,166 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Hero = () => {
const shouldReduceMotion = useReducedMotion();
if (shouldReduceMotion) {
return (
<section className="pt-24 pb-16 bg-gradient-to-br from-gray-50 to-white">
<div className="container-custom">
<div className="max-w-4xl mx-auto text-center">
<h1 className="text-5xl md:text-7xl font-bold text-gray-900 mb-8">
<span className="text-blue-600">AI-powered</span>
<br />
web and mobile
<br />
<span className="text-blue-600">in 12 weeks</span>
</h1>
<div className="flex items-center justify-center space-x-2 mb-8">
<span className="text-gray-600">Powered by</span>
<div className="flex items-center space-x-1">
<div className="w-6 h-6 bg-red-500 rounded-full"></div>
<div className="w-6 h-6 bg-red-400 rounded-full"></div>
<span className="font-semibold text-gray-900">n8n</span>
</div>
</div>
<div className="flex flex-col sm:flex-row gap-4 justify-center mb-16">
<button className="btn-primary">Start Discovery</button>
<button className="btn-secondary flex items-center space-x-2">
<span>📁</span>
<span>Portfolio Showcase</span>
</button>
</div>
<div className="bg-white rounded-2xl p-8 shadow-lg">
<p className="text-gray-600 mb-6">We use only modern technologies</p>
<div className="flex flex-wrap justify-center items-center gap-8">
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-blue-600 rounded"></div>
<span className="text-gray-700">#react</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-red-500 rounded"></div>
<span className="text-gray-700">#nestjs</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-blue-400 rounded"></div>
<span className="text-gray-700">#mysql</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-green-600 rounded"></div>
<span className="text-gray-700">#mongodb</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-green-500 rounded"></div>
<span className="text-gray-700">#nginx</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-red-600 rounded"></div>
<span className="text-gray-700">#redis</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-blue-700 rounded"></div>
<span className="text-gray-700">#typescript</span>
</div>
</div>
</div>
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="pt-24 pb-16 bg-gradient-to-br from-gray-50 to-white"
>
<div className="container-custom">
<div className="max-w-4xl mx-auto text-center">
<motion.h1
{...fadeUpPreset(0.2, 0.8)}
className="text-5xl md:text-7xl font-bold text-gray-900 mb-8"
>
<span className="text-blue-600">AI-powered</span>
<br />
web and mobile
<br />
<span className="text-blue-600">in 12 weeks</span>
</motion.h1>
<motion.div
{...fadeUpPreset(0.3, 0.6)}
className="flex items-center justify-center space-x-2 mb-8"
>
<span className="text-gray-600">Powered by</span>
<div className="flex items-center space-x-1">
<div className="w-6 h-6 bg-red-500 rounded-full"></div>
<div className="w-6 h-6 bg-red-400 rounded-full"></div>
<span className="font-semibold text-gray-900">n8n</span>
</div>
</motion.div>
<motion.div
{...fadeUpPreset(0.4, 0.6)}
className="flex flex-col sm:flex-row gap-4 justify-center mb-16"
>
<button className="btn-primary">Start Discovery</button>
<button className="btn-secondary flex items-center space-x-2">
<span>📁</span>
<span>Portfolio Showcase</span>
</button>
</motion.div>
<motion.div
{...fadeUpPreset(0.5, 0.8)}
className="bg-white rounded-2xl p-8 shadow-lg"
>
<p className="text-gray-600 mb-6">We use only modern technologies</p>
<div className="flex flex-wrap justify-center items-center gap-8">
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-blue-600 rounded"></div>
<span className="text-gray-700">#react</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-red-500 rounded"></div>
<span className="text-gray-700">#nestjs</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-blue-400 rounded"></div>
<span className="text-gray-700">#mysql</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-green-600 rounded"></div>
<span className="text-gray-700">#mongodb</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-green-500 rounded"></div>
<span className="text-gray-700">#nginx</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-red-600 rounded"></div>
<span className="text-gray-700">#redis</span>
</div>
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-blue-700 rounded"></div>
<span className="text-gray-700">#typescript</span>
</div>
</div>
</motion.div>
</div>
</div>
</motion.section>
);
};
export default Hero;

126
src/components/Services.js Normal file
View File

@@ -0,0 +1,126 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Services = () => {
const shouldReduceMotion = useReducedMotion();
if (shouldReduceMotion) {
return (
<section className="section-padding bg-gray-50">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
Explore our services
</h2>
</div>
<div className="grid md:grid-cols-2 gap-16 items-center">
{/* Web Development */}
<div>
<h3 className="text-2xl font-bold text-gray-900 mb-4">Web Development</h3>
<p className="text-gray-600 mb-6">
Modern, responsive websites built with cutting-edge technologies.
From simple landing pages to complex web applications.
</p>
<div className="w-full h-64 bg-gradient-to-br from-blue-100 to-purple-100 rounded-2xl flex items-center justify-center">
<div className="text-6xl">🌐</div>
</div>
</div>
{/* Mobile Development */}
<div>
<h3 className="text-2xl font-bold text-gray-900 mb-4">Mobile Development</h3>
<p className="text-gray-600 mb-6">
Native and cross-platform mobile applications that deliver
exceptional user experiences on iOS and Android.
</p>
<div className="w-full h-64 bg-gradient-to-br from-green-100 to-blue-100 rounded-2xl flex items-center justify-center">
<div className="text-6xl">📱</div>
</div>
</div>
</div>
<div className="mt-16 text-center">
<div className="bg-white rounded-2xl p-8 shadow-lg max-w-2xl mx-auto">
<h3 className="text-xl font-semibold text-gray-900 mb-4">
Get the same high-quality service for a smaller task
</h3>
<p className="text-gray-600">
Whether you need a quick fix or a complete overhaul,
we bring the same level of expertise to every project.
</p>
</div>
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-gray-50"
>
<div className="container-custom">
<motion.div
{...fadeUpPreset(0.2, 0.6)}
className="text-center mb-16"
>
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
Explore our services
</h2>
</motion.div>
<div className="grid md:grid-cols-2 gap-16 items-center">
{/* Web Development */}
<motion.div {...fadeUpPreset(0.3, 0.8)}>
<h3 className="text-2xl font-bold text-gray-900 mb-4">Web Development</h3>
<p className="text-gray-600 mb-6">
Modern, responsive websites built with cutting-edge technologies.
From simple landing pages to complex web applications.
</p>
<div className="w-full h-64 bg-gradient-to-br from-blue-100 to-purple-100 rounded-2xl flex items-center justify-center">
<div className="text-6xl">🌐</div>
</div>
</motion.div>
{/* Mobile Development */}
<motion.div {...fadeUpPreset(0.4, 0.8)}>
<h3 className="text-2xl font-bold text-gray-900 mb-4">Mobile Development</h3>
<p className="text-gray-600 mb-6">
Native and cross-platform mobile applications that deliver
exceptional user experiences on iOS and Android.
</p>
<div className="w-full h-64 bg-gradient-to-br from-green-100 to-blue-100 rounded-2xl flex items-center justify-center">
<div className="text-6xl">📱</div>
</div>
</motion.div>
</div>
<motion.div
{...fadeUpPreset(0.5, 0.8)}
className="mt-16 text-center"
>
<div className="bg-white rounded-2xl p-8 shadow-lg max-w-2xl mx-auto">
<h3 className="text-xl font-semibold text-gray-900 mb-4">
Get the same high-quality service for a smaller task
</h3>
<p className="text-gray-600">
Whether you need a quick fix or a complete overhaul,
we bring the same level of expertise to every project.
</p>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default Services;

65
src/components/Stats.js Normal file
View File

@@ -0,0 +1,65 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Stats = () => {
const shouldReduceMotion = useReducedMotion();
const stats = [
{ value: '92%', label: 'Client satisfaction rate' },
{ value: '50+', label: 'Completed projects' },
{ value: '30k+', label: 'Lines of code written' },
{ value: '100%', label: 'On-time delivery' }
];
if (shouldReduceMotion) {
return (
<section className="section-padding bg-white">
<div className="container-custom">
<div className="grid grid-cols-2 md:grid-cols-4 gap-8">
{stats.map((stat, index) => (
<div key={index} className="text-center">
<div className="text-4xl md:text-5xl font-bold text-gray-900 mb-2">
{stat.value}
</div>
<p className="text-gray-600">{stat.label}</p>
</div>
))}
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-white"
>
<div className="container-custom">
<div className="grid grid-cols-2 md:grid-cols-4 gap-8">
{stats.map((stat, index) => (
<motion.div
key={index}
{...fadeUpPreset(index * 0.1, 0.6)}
className="text-center"
>
<div className="text-4xl md:text-5xl font-bold text-gray-900 mb-2">
{stat.value}
</div>
<p className="text-gray-600">{stat.label}</p>
</motion.div>
))}
</div>
</div>
</motion.section>
);
};
export default Stats;

94
src/components/Team.js Normal file
View File

@@ -0,0 +1,94 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Team = () => {
const shouldReduceMotion = useReducedMotion();
if (shouldReduceMotion) {
return (
<section className="section-padding bg-white">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
Sargas Team
</h2>
</div>
<div className="max-w-4xl mx-auto">
<div className="bg-gray-50 rounded-2xl p-8">
<div className="grid md:grid-cols-3 gap-8">
<div className="text-center">
<div className="w-24 h-24 bg-gray-300 rounded-full mx-auto mb-4"></div>
<h4 className="font-semibold text-gray-900">Alex Johnson</h4>
<p className="text-gray-600">Lead Developer</p>
</div>
<div className="text-center">
<div className="w-24 h-24 bg-gray-300 rounded-full mx-auto mb-4"></div>
<h4 className="font-semibold text-gray-900">Sarah Wilson</h4>
<p className="text-gray-600">UI/UX Designer</p>
</div>
<div className="text-center">
<div className="w-24 h-24 bg-gray-300 rounded-full mx-auto mb-4"></div>
<h4 className="font-semibold text-gray-900">Mike Chen</h4>
<p className="text-gray-600">Project Manager</p>
</div>
</div>
</div>
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-white"
>
<div className="container-custom">
<motion.div
{...fadeUpPreset(0.2, 0.6)}
className="text-center mb-16"
>
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
Sargas Team
</h2>
</motion.div>
<motion.div
{...fadeUpPreset(0.3, 0.8)}
className="max-w-4xl mx-auto"
>
<div className="bg-gray-50 rounded-2xl p-8">
<div className="grid md:grid-cols-3 gap-8">
<div className="text-center">
<div className="w-24 h-24 bg-gray-300 rounded-full mx-auto mb-4"></div>
<h4 className="font-semibold text-gray-900">Alex Johnson</h4>
<p className="text-gray-600">Lead Developer</p>
</div>
<div className="text-center">
<div className="w-24 h-24 bg-gray-300 rounded-full mx-auto mb-4"></div>
<h4 className="font-semibold text-gray-900">Sarah Wilson</h4>
<p className="text-gray-600">UI/UX Designer</p>
</div>
<div className="text-center">
<div className="w-24 h-24 bg-gray-300 rounded-full mx-auto mb-4"></div>
<h4 className="font-semibold text-gray-900">Mike Chen</h4>
<p className="text-gray-600">Project Manager</p>
</div>
</div>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default Team;

View File

@@ -0,0 +1,94 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Testimonials = () => {
const shouldReduceMotion = useReducedMotion();
if (shouldReduceMotion) {
return (
<section className="section-padding bg-gray-50">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
Testimonials
</h2>
</div>
<div className="max-w-4xl mx-auto">
<div className="bg-white rounded-2xl p-8 shadow-lg">
<div className="flex items-center space-x-4 mb-6">
<div className="w-12 h-12 bg-gray-300 rounded-full"></div>
<div>
<h4 className="font-semibold text-gray-900">John Smith</h4>
<p className="text-gray-600">CEO, TechCorp</p>
</div>
</div>
<p className="text-gray-700 text-lg leading-relaxed">
"Working with Sargas was an exceptional experience. They delivered
our project on time and exceeded our expectations in every way.
The AI-powered approach really made a difference."
</p>
<div className="flex text-yellow-400 mt-4">
{[...Array(5)].map((_, i) => (
<span key={i} className="text-xl"></span>
))}
</div>
</div>
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-gray-50"
>
<div className="container-custom">
<motion.div
{...fadeUpPreset(0.2, 0.6)}
className="text-center mb-16"
>
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
Testimonials
</h2>
</motion.div>
<motion.div
{...fadeUpPreset(0.3, 0.8)}
className="max-w-4xl mx-auto"
>
<div className="bg-white rounded-2xl p-8 shadow-lg">
<div className="flex items-center space-x-4 mb-6">
<div className="w-12 h-12 bg-gray-300 rounded-full"></div>
<div>
<h4 className="font-semibold text-gray-900">John Smith</h4>
<p className="text-gray-600">CEO, TechCorp</p>
</div>
</div>
<p className="text-gray-700 text-lg leading-relaxed">
"Working with Sargas was an exceptional experience. They delivered
our project on time and exceeded our expectations in every way.
The AI-powered approach really made a difference."
</p>
<div className="flex text-yellow-400 mt-4">
{[...Array(5)].map((_, i) => (
<span key={i} className="text-xl"></span>
))}
</div>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default Testimonials;

27
src/index.css Normal file
View File

@@ -0,0 +1,27 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
body {
@apply font-sans antialiased;
}
}
@layer components {
.btn-primary {
@apply bg-blue-600 hover:bg-blue-700 text-white px-6 py-3 rounded-lg font-medium transition-colors duration-200;
}
.btn-secondary {
@apply bg-gray-800 hover:bg-gray-900 text-white px-6 py-3 rounded-lg font-medium transition-colors duration-200;
}
.section-padding {
@apply py-16 md:py-24;
}
.container-custom {
@apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8;
}
}

8
src/index.js Normal file
View File

@@ -0,0 +1,8 @@
import React from 'react';
import { createRoot } from 'react-dom/client';
import './index.css';
import App from './App';
const container = document.getElementById('root');
const root = createRoot(container);
root.render(<App />);

42
tailwind.config.js Normal file
View File

@@ -0,0 +1,42 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.{js,jsx,ts,tsx}",
],
theme: {
extend: {
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif'],
},
colors: {
primary: {
50: '#eff6ff',
100: '#dbeafe',
200: '#bfdbfe',
300: '#93c5fd',
400: '#60a5fa',
500: '#3b82f6',
600: '#2563eb',
700: '#1d4ed8',
800: '#1e40af',
900: '#1e3a8a',
},
},
animation: {
'fade-in': 'fadeIn 0.5s ease-in-out',
'slide-up': 'slideUp 0.5s ease-out',
},
keyframes: {
fadeIn: {
'0%': { opacity: '0' },
'100%': { opacity: '1' },
},
slideUp: {
'0%': { transform: 'translateY(20px)', opacity: '0' },
'100%': { transform: 'translateY(0)', opacity: '1' },
},
},
},
},
plugins: [],
}

5
vercel.json Normal file
View File

@@ -0,0 +1,5 @@
{
"installCommand": "npm install",
"buildCommand": "CI=false npm run build",
"outputDirectory": "build"
}