Better UI
This commit is contained in:
+115
-1
@@ -3,12 +3,50 @@
|
||||
'use client';
|
||||
|
||||
import { useActionState, useEffect, useState } from 'react';
|
||||
import { FaPlus, FaTrash, FaArrowUp, FaArrowDown } from 'react-icons/fa'; // Importera pilarna
|
||||
import { saveConfigAction } from './actions';
|
||||
|
||||
export default function AdminForm({ initialConfig }: { initialConfig: any }) {
|
||||
const [state, formAction, isPending] = useActionState(saveConfigAction, null);
|
||||
const [showToast, setShowToast] = useState(false);
|
||||
|
||||
const [classes, setClasses] = useState<Array<{ name: string, color: string, desc: string }>>(
|
||||
Array.isArray(initialConfig.beachPage.classes)
|
||||
? initialConfig.beachPage.classes
|
||||
: [
|
||||
{ name: 'Grön', color: '#16a34a', desc: 'Nybörjare' },
|
||||
{ name: 'Blå', color: '#2563eb', desc: 'Spelat lite' },
|
||||
{ name: 'Svart', color: '#111827', desc: 'Spelat mycket' }
|
||||
]
|
||||
);
|
||||
|
||||
const addClass = () => setClasses([...classes, { name: '', color: '#406185', desc: '' }]);
|
||||
|
||||
const removeClass = (index: number) => {
|
||||
setClasses(classes.filter((_, i) => i !== index));
|
||||
};
|
||||
|
||||
const updateClass = (index: number, field: keyof typeof classes[0], value: string) => {
|
||||
const newClasses = [...classes];
|
||||
newClasses[index][field] = value;
|
||||
setClasses(newClasses);
|
||||
};
|
||||
|
||||
// Funktioner för att byta plats på klasserna
|
||||
const moveUp = (index: number) => {
|
||||
if (index === 0) return;
|
||||
const newClasses = [...classes];
|
||||
[newClasses[index - 1], newClasses[index]] = [newClasses[index], newClasses[index - 1]];
|
||||
setClasses(newClasses);
|
||||
};
|
||||
|
||||
const moveDown = (index: number) => {
|
||||
if (index === classes.length - 1) return;
|
||||
const newClasses = [...classes];
|
||||
[newClasses[index + 1], newClasses[index]] = [newClasses[index], newClasses[index + 1]];
|
||||
setClasses(newClasses);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (state?.success) {
|
||||
setShowToast(true);
|
||||
@@ -70,7 +108,83 @@ export default function AdminForm({ initialConfig }: { initialConfig: any }) {
|
||||
</label>
|
||||
</section>
|
||||
|
||||
<button type="submit" disabled={isPending} className="bg-[#406185] text-white py-4 rounded-lg font-bold text-lg hover:bg-black transition-all active:scale-95 disabled:bg-gray-400">
|
||||
{/* SPELKLASSER - Moderniserad för att matcha */}
|
||||
<section className="flex flex-col gap-4">
|
||||
<div className="flex justify-between items-center mb-2">
|
||||
<h2 className="text-xl font-bold border-l-4 border-[#fdb84b] pl-2 text-[#406185]">Spelklasser</h2>
|
||||
<button
|
||||
type="button"
|
||||
onClick={addClass}
|
||||
className="flex items-center gap-2 text-sm font-bold text-white bg-[#406185] px-4 py-2 rounded hover:brightness-110 transition-all active:scale-95"
|
||||
>
|
||||
<FaPlus size={12} /> Lägg till
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="space-y-3">
|
||||
{classes.map((c, index) => (
|
||||
<div key={index} className="flex flex-col md:flex-row gap-3 items-center w-full">
|
||||
|
||||
{/* Sorteringspilar */}
|
||||
<div className="flex md:flex-col gap-1 text-gray-400">
|
||||
<button type="button" onClick={() => moveUp(index)} disabled={index === 0} className="hover:text-[#406185] disabled:opacity-30 disabled:hover:text-gray-400 p-1">
|
||||
<FaArrowUp size={14} />
|
||||
</button>
|
||||
<button type="button" onClick={() => moveDown(index)} disabled={index === classes.length - 1} className="hover:text-[#406185] disabled:opacity-30 disabled:hover:text-gray-400 p-1">
|
||||
<FaArrowDown size={14} />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="flex-1 flex gap-2 w-full">
|
||||
{/* Färgplockare som ser ut som ett vanligt inputfält */}
|
||||
<div className="w-12 h-10 border rounded overflow-hidden shrink-0 focus-within:ring-2 focus-within:ring-[#406185]">
|
||||
<input
|
||||
type="color"
|
||||
value={c.color}
|
||||
onChange={(e) => updateClass(index, 'color', e.target.value)}
|
||||
className="w-16 h-16 -m-2 cursor-pointer outline-none"
|
||||
title="Välj färg"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
value={c.name}
|
||||
onChange={(e) => updateClass(index, 'name', e.target.value)}
|
||||
placeholder="Lagnamn (t.ex. Grön)"
|
||||
required
|
||||
className="w-1/3 border p-2 rounded focus:ring-2 focus:ring-[#406185] outline-none min-w-25"
|
||||
/>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
value={c.desc}
|
||||
onChange={(e) => updateClass(index, 'desc', e.target.value)}
|
||||
placeholder="Beskrivning (t.ex. Nybörjare)"
|
||||
className="flex-1 border p-2 rounded focus:ring-2 focus:ring-[#406185] outline-none min-w-30"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => removeClass(index)}
|
||||
className="text-gray-400 hover:text-red-500 p-2 rounded transition-colors self-end md:self-auto shrink-0"
|
||||
title="Ta bort klass"
|
||||
>
|
||||
<FaTrash />
|
||||
</button>
|
||||
</div>
|
||||
))}
|
||||
{classes.length === 0 && (
|
||||
<p className="text-gray-500 italic text-sm">Inga klasser inlagda. Besökarna kommer inte kunna välja nivå.</p>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Dold JSON-sträng för Server Action */}
|
||||
<input type="hidden" name="classesJSON" value={JSON.stringify(classes)} />
|
||||
</section>
|
||||
|
||||
<button type="submit" disabled={isPending} className="bg-[#406185] text-white py-4 mt-4 rounded-lg font-bold text-lg hover:bg-black transition-all active:scale-95 disabled:bg-gray-400 shadow-lg">
|
||||
{isPending ? 'Sparar...' : 'Spara inställningar'}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
@@ -8,6 +8,14 @@ import { revalidatePath } from 'next/cache';
|
||||
export async function saveConfigAction(prevState: any, formData: FormData) {
|
||||
const config = await getConfig();
|
||||
|
||||
let parsedClasses = [];
|
||||
try {
|
||||
const classesJSON = formData.get('classesJSON') as string;
|
||||
if (classesJSON) parsedClasses = JSON.parse(classesJSON);
|
||||
} catch (e) {
|
||||
console.error("Kunde inte parsa klasser", e);
|
||||
}
|
||||
|
||||
const newConfig = {
|
||||
...config,
|
||||
showBeachPromo: formData.get('showBeachPromo') === 'on',
|
||||
@@ -19,6 +27,7 @@ export async function saveConfigAction(prevState: any, formData: FormData) {
|
||||
otherInfo: formData.get('otherInfo') as string,
|
||||
prizesText: formData.get('prizesText') as string,
|
||||
isClosedOverride: formData.get('isClosedOverride') === 'on',
|
||||
classes: parsedClasses,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
// app/api/submit/route.js
|
||||
|
||||
import nodemailer from 'nodemailer';
|
||||
|
||||
export async function POST(request) {
|
||||
try {
|
||||
const formData = await request.formData();
|
||||
|
||||
// 1. Extract form data (Matching your PHP POST variables)
|
||||
const turnstileToken = formData.get('cf-turnstile-response');
|
||||
const email = formData.get('email');
|
||||
const name = formData.get('name');
|
||||
const team = formData.get('team');
|
||||
const tel = formData.get('tel');
|
||||
const count = formData.get('count');
|
||||
const level = formData.get('level');
|
||||
const message = formData.get('message');
|
||||
const honeypot = formData.get('website');
|
||||
|
||||
// 2. Security Checks (Honeypot & Turnstile)
|
||||
if (honeypot) {
|
||||
return Response.json({ success: false, message: 'Spam detekterat.' }, { status: 400 });
|
||||
}
|
||||
|
||||
// Verify Turnstile
|
||||
const turnstileRes = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
||||
body: new URLSearchParams({
|
||||
secret: process.env.TURNSTILE_SECRET || '', // Pulls from .env.local
|
||||
response: turnstileToken?.toString() || '',
|
||||
}),
|
||||
});
|
||||
|
||||
const turnstileData = await turnstileRes.json();
|
||||
|
||||
if (!turnstileData.success) {
|
||||
return Response.json({ success: false, message: 'Säkerhetsverifiering misslyckades (Turnstile).' }, { status: 400 });
|
||||
}
|
||||
|
||||
let formattedTel = tel.replace(/\D/g, '');
|
||||
if (formattedTel.startsWith('46')) formattedTel = formattedTel.substring(2);
|
||||
else if (formattedTel.startsWith('0')) formattedTel = formattedTel.substring(1);
|
||||
|
||||
if (formattedTel.length === 9) {
|
||||
formattedTel = `+46 (0)${formattedTel.substring(0, 2)}-${formattedTel.substring(2, 5)} ${formattedTel.substring(5, 7)} ${formattedTel.substring(7, 9)}`;
|
||||
} else {
|
||||
formattedTel = tel;
|
||||
}
|
||||
|
||||
// 4. Send Email via Nodemailer (Replicating PHPMailer)
|
||||
const transporter = nodemailer.createTransport({
|
||||
host: '10.10.0.113', // Your internal SMTP Host
|
||||
port: 25,
|
||||
secure: false,
|
||||
tls: {
|
||||
rejectUnauthorized: false
|
||||
}
|
||||
});
|
||||
|
||||
const cleanMessage = message ? message.replace(/[\r\n;]/g, " ") : "";
|
||||
const dateStr = new Date().toISOString().replace('T', ' ').substring(0, 19);
|
||||
|
||||
const emailHtml = `
|
||||
<html>
|
||||
<body style='font-family: Arial, sans-serif; line-height: 1.6; color: #333;'>
|
||||
<h2 style='color: #cc8124;'>Beach-anmälan</h2>
|
||||
<table style='width: 100%; max-width: 600px; border-collapse: collapse;'>
|
||||
<tr><td style='padding: 5px; font-weight: bold; width: 150px;'>Lagnamn:</td><td>${team}</td></tr>
|
||||
<tr><td style='padding: 5px; font-weight: bold;'>Kontakt:</td><td>${name}</td></tr>
|
||||
<tr><td style='padding: 5px; font-weight: bold;'>E-post:</td><td>${email}</td></tr>
|
||||
<tr><td style='padding: 5px; font-weight: bold;'>Telefon:</td><td>${formattedTel}</td></tr>
|
||||
<tr><td style='padding: 5px; font-weight: bold;'>Spelare:</td><td>${count}</td></tr>
|
||||
<tr><td style='padding: 5px; font-weight: bold;'>Nivå:</td><td>${level}</td></tr>
|
||||
</table>
|
||||
<p><strong>Meddelande:</strong><br>${message ? message.replace(/\n/g, '<br>') : ''}</p>
|
||||
<hr style='border: none; border-top: 1px solid #ddd; margin: 30px 0;'>
|
||||
<table border='1' style='border-collapse: collapse; font-family: Calibri, sans-serif; font-size: 11pt; width: 100%;'>
|
||||
<tr>
|
||||
<td style='padding: 8px; border: 1px solid #ccc;'>${team}</td>
|
||||
<td style='padding: 8px; border: 1px solid #ccc;'>${count}</td>
|
||||
<td style='padding: 8px; border: 1px solid #ccc;'>${level}</td>
|
||||
<td style='padding: 8px; border: 1px solid #ccc;'>${name}</td>
|
||||
<td style='padding: 8px; border: 1px solid #ccc;'>${formattedTel}</td>
|
||||
<td style='padding: 8px; border: 1px solid #ccc;'>${email}</td>
|
||||
<td style='padding: 8px; border: 1px solid #ccc;'>${dateStr}</td>
|
||||
<td style='padding: 8px; border: 1px solid #ccc;'>${cleanMessage}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
`;
|
||||
|
||||
// 1. Send the data to the Club
|
||||
await transporter.sendMail({
|
||||
from: `"Anmälan: ${name}" <no-reply@lerbergetsvolleyboll.se>`,
|
||||
to: 'beach@lerbergetsvolleyboll.se',
|
||||
replyTo: email?.toString(),
|
||||
subject: `Beach turnering: ${team}`,
|
||||
html: emailHtml,
|
||||
});
|
||||
|
||||
// 2. Send the friendly auto-reply to the Applicant
|
||||
await transporter.sendMail({
|
||||
from: `"Lerbergets Volleybollsällskap" <no-reply@lerbergetsvolleyboll.se>`,
|
||||
to: email?.toString(),
|
||||
subject: `Bekräftelse på anmälan: ${team}`,
|
||||
html: `
|
||||
<div style="font-family: Arial, sans-serif; color: #333; padding: 20px;">
|
||||
<h2 style="color: #406185;">Hej ${name}!</h2>
|
||||
<p style="font-size: 16px;">Tack för din anmälan vi återkommer så fort vi kan.</p>
|
||||
<br>
|
||||
<p style="font-size: 14px; color: #666;">
|
||||
Med vänliga hälsningar,<br>
|
||||
Lerbergets Volleybollsällskap
|
||||
</p>
|
||||
</div>
|
||||
`,
|
||||
});
|
||||
|
||||
return Response.json({ success: true, message: 'Tack så mycket för anmälan! Vi svarar med en bekräftelse så fort vi kan.' });
|
||||
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return Response.json({ success: false, message: 'Ett tekniskt fel uppstod. Försök igen senare.' }, { status: 500 });
|
||||
}
|
||||
}
|
||||
+170
-50
@@ -3,6 +3,7 @@
|
||||
'use client';
|
||||
|
||||
import { useEffect, useState } from 'react';
|
||||
import { FaClipboardList, FaClock, FaInfoCircle, FaLock, FaMapMarkerAlt, FaTicketAlt, FaTrophy, FaUsers } from "react-icons/fa";
|
||||
import { IoIosMail } from "react-icons/io";
|
||||
import Footer from '../components/Footer';
|
||||
import Header from '../components/Header';
|
||||
@@ -16,6 +17,14 @@ export default function BeachClientPage({ config }: { config: any }) {
|
||||
isClosed: false,
|
||||
});
|
||||
|
||||
const classesData = Array.isArray(config.beachPage?.classes)
|
||||
? config.beachPage.classes
|
||||
: [
|
||||
{ name: 'Grön', color: '#16a34a', desc: 'Nybörjare' },
|
||||
{ name: 'Blå', color: '#2563eb', desc: 'Spelat lite' },
|
||||
{ name: 'Svart', color: '#111827', desc: 'Spelat mycket' }
|
||||
];
|
||||
|
||||
useEffect(() => {
|
||||
const updateTournamentInfo = () => {
|
||||
const matchStart = new Date(config.beachPage.matchStart);
|
||||
@@ -39,73 +48,184 @@ export default function BeachClientPage({ config }: { config: any }) {
|
||||
<div className="min-h-screen flex flex-col font-sans bg-white text-black">
|
||||
<Header />
|
||||
|
||||
<main className="grow flex flex-col items-center bg-[#c8e9f2] bg-[url('/images/volleyball-net.webp')] bg-cover bg-center bg-no-repeat w-full pb-20">
|
||||
<section className="flex flex-col items-center text-center w-full px-1.25">
|
||||
<h2 className="mt-12.5"><img className="max-w-62.5" src="/images/hk-mosf.webp" alt="Mat- & Sommarfesten" /></h2>
|
||||
<h1 className="font-beachday text-[clamp(45px,9vw,80px)] text-[#fdb84b] uppercase leading-none m-[20px_0_10px_0]">Beachturnering</h1>
|
||||
<p className="font-bold italic text-[25px] mb-5 text-black">Samla ihop ett kompisgäng och anmäl er!</p>
|
||||
<main className="grow flex flex-col items-center bg-[#c8e9f2] bg-[url('/images/volleyball-net.svg')] bg-cover bg-center bg-no-repeat w-full pb-20">
|
||||
|
||||
<section className="flex flex-col items-center text-center w-full px-4 pt-16">
|
||||
{/* Logotyp med subtil hover-effekt */}
|
||||
<div className="relative group cursor-default">
|
||||
<div className="absolute -inset-4 bg-white/20 blur-2xl rounded-full opacity-0 group-hover:opacity-100 transition-opacity duration-700" />
|
||||
<img
|
||||
className="w-full max-w-62.5 md:max-w-75 relative drop-shadow-2xl transform hover:scale-105 transition-transform duration-500"
|
||||
src="/images/hk-mosf.webp"
|
||||
alt="Mat- & Sommarfesten"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Huvudrubrik med 3D-känsla */}
|
||||
<h1 className="font-beachday text-[clamp(45px,9vw,80px)] text-[#fdb84b] uppercase leading-[0.9] mt-8 mb-4 drop-shadow-[0_4px_4px_rgba(64,97,133,0.3)] tracking-wide wrap-break-word w-full max-w-full">
|
||||
Beach­turnering
|
||||
</h1>
|
||||
<p className="text-xl md:text-2xl font-bold text-[#39979f] bg-white/60 px-6 py-2 rounded-full backdrop-blur-sm shadow-sm">
|
||||
Samla ihop ett kompisgäng och anmäl er!
|
||||
</p>
|
||||
|
||||
{/* Moderniserad "Stängd"-box */}
|
||||
{timeInfo.isClosed && (
|
||||
<div className="bg-black p-5 rounded-[20px] my-5 mx-1.25 w-full max-w-150 shadow-xl border-l-8 border-red-600">
|
||||
<h3 className="text-red-500 text-[clamp(1.5rem,6.5vw,2rem)] font-bold pb-2.5 text-center">Anmälan är stängd!</h3>
|
||||
<p className="text-white text-center whitespace-pre-wrap">{config.beachPage.closeReason}</p>
|
||||
<div className="bg-white/95 backdrop-blur-md p-8 md:p-10 rounded-[30px] w-full max-w-2xl my-10 shadow-2xl border border-red-100 relative overflow-hidden flex flex-col items-center animate-fade-in">
|
||||
{/* Röd dekorationslist i toppen */}
|
||||
<div className="absolute top-0 left-0 w-full h-2 bg-linear-to-r from-red-500 to-orange-400" />
|
||||
|
||||
<div className="bg-red-50 p-4 rounded-full mb-4 shadow-inner">
|
||||
<FaLock className="text-red-500" size={32} />
|
||||
</div>
|
||||
|
||||
<h3 className="text-red-600 text-[clamp(1.5rem,5vw,2.2rem)] font-black uppercase tracking-widest mb-3">
|
||||
Anmälan är stängd
|
||||
</h3>
|
||||
<p className="text-gray-700 text-lg font-medium leading-relaxed max-w-md">
|
||||
{config.beachPage.closeReason}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
</section>
|
||||
|
||||
<div className="bg-[#b1e0e8] p-[0_20px_20px_20px] rounded-[20px] my-7.5 mx-1.25 flex flex-col items-center text-center w-full max-w-200 shadow-lg">
|
||||
{/* INFORMATION TEXT (Var, När, Regler, etc.) */}
|
||||
<h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Var:</h4>
|
||||
<p className="text-black text-[18px] m-[4px_10px]"><a target="_blank" rel="noreferrer" className="font-medium text-[#cc8124] hover:underline" href="https://maps.app.goo.gl/vJcdSDCbvdGYXPNY6">Kvickbadet</a> i Höganäs</p>
|
||||
<section className="flex flex-col items-center text-center w-full px-1.25">
|
||||
<div className="bg-white/90 backdrop-blur-sm p-8 md:p-12 rounded-[30px] my-10 mx-2 flex flex-col items-center w-full max-w-4xl shadow-2xl border border-white/50">
|
||||
|
||||
<h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">När:</h4>
|
||||
<p className="text-black text-[18px] m-[4px_10px]">{timeInfo.dateStr}</p>
|
||||
<p className="text-black text-[18px] m-[4px_10px]">{timeInfo.matchStr}</p>
|
||||
<p className="text-black text-[18px] m-[4px_10px]">
|
||||
Samtidigt som <a target="_blank" rel="noreferrer" className="font-medium text-[#cc8124] hover:underline" href={config.beachPage.festivalLink}>Höganäs Mat- & Sommarfest</a>
|
||||
</p>
|
||||
{/* Större och tydligare badge för Turneringsinfo */}
|
||||
<div className="bg-[#39979f] text-white px-8 py-2.5 rounded-full font-beachday tracking-widest text-3xl font-bold uppercase mb-10 shadow-lg">
|
||||
Turneringsinfo
|
||||
</div>
|
||||
|
||||
<h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Regler:</h4>
|
||||
<p className="text-black text-[18px] m-[4px_10px] max-w-150">Matcherna spelas 4v4 med <a target="_blank" rel="noreferrer" className="font-medium text-[#cc8124] hover:underline" href="https://www.volleyboll.se/forbundet/valkommen-till-volleyboll/grenar-och-spelformer/volleyboll">inomhusregler</a>, förutom poängräkningen som följer reglerna för <a target="_blank" rel="noreferrer" className="font-medium text-[#cc8124] hover:underline" href="https://www.volleyboll.se/forbundet/valkommen-till-volleyboll/grenar-och-spelformer/beachvolley">beachvolleyboll</a>.</p>
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-x-12 gap-y-12 w-full text-left">
|
||||
|
||||
<h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Klasser:</h4>
|
||||
<p className="text-black text-[18px] m-[4px_10px] max-w-150">
|
||||
Turneringen kan komma att delas upp i tre olika klasser beroende på antal anmälda lag och baserat på nivå:<br />
|
||||
<strong className="text-green-700">Grön</strong> (Nybörjare),{' '}
|
||||
<strong className="text-[#0f65bf]">Blå</strong> (Amatör),{' '}
|
||||
<strong className="text-black">Svart</strong> (Proffs)
|
||||
</p>
|
||||
<p className="text-black text-[18px] m-[4px_10px] max-w-150 italic">Gör en gissning i vilken nivå ni tror att ert lag skulle passa och skriv gärna något i anmälan om ni är osäkra.</p>
|
||||
{/* VAR & NÄR - Logistik */}
|
||||
<div className="space-y-4">
|
||||
<div className="flex items-center gap-3 text-[#cc8124]">
|
||||
<FaMapMarkerAlt size={24} />
|
||||
<h4 className="font-beachday text-2xl uppercase tracking-[0.05em] text-black">Var</h4>
|
||||
</div>
|
||||
<p className="text-gray-700 text-lg leading-relaxed">
|
||||
<a target="_blank" rel="noreferrer" className="font-bold text-[#39979f] hover:underline decoration-2" href="https://maps.app.goo.gl/vJcdSDCbvdGYXPNY6">
|
||||
Kvickbadet
|
||||
</a> i Höganäs
|
||||
</p>
|
||||
|
||||
<h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Kostnad:</h4>
|
||||
<p className="text-black text-[18px] m-[4px_10px]">Gratis!!!</p>
|
||||
<div className="flex items-center gap-3 text-[#cc8124] mt-6">
|
||||
<FaClock size={24} />
|
||||
<h4 className="font-beachday text-2xl uppercase tracking-[0.05em] text-black">När</h4>
|
||||
</div>
|
||||
<div className="text-gray-700 text-lg space-y-1">
|
||||
<p className="font-bold">{timeInfo.dateStr}</p>
|
||||
<p>{timeInfo.matchStr}</p>
|
||||
<p className="text-sm italic pt-3 border-t border-blue-100 mt-2">
|
||||
Samtidigt som <a target="_blank" rel="noreferrer" className="text-[#39979f] hover:underline" href={config.beachPage.festivalLink}>Höganäs Mat- & Sommarfest</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Anmälan:</h4>
|
||||
<p className="text-black text-[18px] m-[4px_10px] max-w-150">Anmälan görs genom anmälningsformuläret nedan. Du får ett bekräftelsemejl när vi kollat igenom er anmälan.</p>
|
||||
<p className="text-black text-[18px] m-[4px_10px] italic">{timeInfo.deadlineText}</p>
|
||||
{/* REGLER & KLASSER - Spelet */}
|
||||
<div className="space-y-4">
|
||||
<div className="flex items-center gap-3 text-[#cc8124]">
|
||||
<FaClipboardList size={24} />
|
||||
<h4 className="font-beachday text-2xl uppercase tracking-[0.05em] text-black">Regler</h4>
|
||||
</div>
|
||||
<p className="text-gray-700 text-base leading-relaxed">
|
||||
Matcherna spelas 4v4 med <a target="_blank" rel="noreferrer" className="text-[#39979f] font-bold hover:underline" href="https://www.volleyboll.se/forbundet/valkommen-till-volleyboll/grenar-och-spelformer/volleyboll">inomhusregler</a>,
|
||||
förutom poängräkningen som följer reglerna för <a target="_blank" rel="noreferrer" className="text-[#39979f] font-bold hover:underline" href="https://www.volleyboll.se/forbundet/valkommen-till-volleyboll/grenar-och-spelformer/beachvolley">beachvolley</a>.
|
||||
</p>
|
||||
|
||||
{/* Övrig info sektionen */}
|
||||
<h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Övrig info:</h4>
|
||||
{(config.beachPage?.otherInfo || "").split('\n').map((line: string, i: number) => (
|
||||
line.trim() && <p key={i} className="text-black text-[18px] m-[4px_10px]">{line}</p>
|
||||
))}
|
||||
<div className="flex items-center gap-3 text-[#cc8124] mt-6">
|
||||
<FaUsers size={24} />
|
||||
<h4 className="font-beachday text-2xl uppercase tracking-[0.05em] text-black">Klasser</h4>
|
||||
</div>
|
||||
<div className="text-gray-700 text-sm space-y-3">
|
||||
<p className="leading-snug">Turneringen kan delas upp i tre klasser beroende på antal anmälda lag och nivå:</p>
|
||||
<div className="flex gap-2 flex-wrap">
|
||||
{classesData.map((c: any, i: number) => (
|
||||
<span
|
||||
key={i}
|
||||
className="px-2.5 py-1 rounded-md font-bold border text-xs tracking-wider"
|
||||
style={{ backgroundColor: `${c.color}15`, color: c.color, borderColor: `${c.color}40` }}
|
||||
>
|
||||
{c.name.toUpperCase()} {c.desc && <span className="font-normal opacity-80">({c.desc})</span>}
|
||||
</span>
|
||||
))}
|
||||
</div>
|
||||
<p className="italic text-xs text-gray-500">Gör en gissning på er nivå i anmälan – skriv gärna om ni är osäkra.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Pris sektionen */}
|
||||
<h4 className="font-beachday uppercase text-[30px] font-medium p-2.5 mt-5 text-black">
|
||||
{config.beachPage?.prizesText || "Fina priser till alla pallplatser! 🏆"}
|
||||
</h4>
|
||||
{/* KOSTNAD & ANMÄLAN */}
|
||||
<div className="space-y-4 md:col-span-2 bg-[#fdb84b]/10 p-6 md:p-8 rounded-2xl border border-[#fdb84b]/20">
|
||||
<div className="flex flex-col md:flex-row gap-8">
|
||||
<div className="flex-1 space-y-3">
|
||||
<div className="flex items-center gap-3 text-[#cc8124]">
|
||||
<FaTicketAlt size={24} />
|
||||
<h4 className="font-beachday text-2xl uppercase tracking-[0.05em] text-black">Anmälan & Kostnad</h4>
|
||||
</div>
|
||||
<p className="text-2xl font-black text-green-700 uppercase tracking-wider">Kostnad: Gratis!</p>
|
||||
<div className="text-gray-700 text-sm space-y-2">
|
||||
<p>Anmälan görs via formuläret nedan. Du får ett bekräftelsemejl när vi granskat er anmälan.</p>
|
||||
<p className="font-bold italic text-[#39979f]">{timeInfo.deadlineText}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-start gap-4 bg-white/60 p-5 rounded-xl shadow-inner border border-white flex-1">
|
||||
<FaInfoCircle className="text-[#39979f] shrink-0 mt-1" size={20} />
|
||||
<div className="text-sm text-gray-700">
|
||||
<p className="font-bold text-black mb-2 uppercase tracking-wide text-xs">Övrig info:</p>
|
||||
<div className="space-y-1.5">
|
||||
{(config.beachPage?.otherInfo || "").split('\n').map((line: string, i: number) => (
|
||||
line.trim() && <p key={i} className="leading-tight flex gap-2"><span>•</span> {line}</p>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Kompaktare PRIS-BANNER */}
|
||||
<div className="mt-10 w-full max-w-2xl bg-linear-to-r from-[#39979f] to-[#62b8bc] py-4 px-8 rounded-2xl shadow-xl border-b-4 border-black/20">
|
||||
<div className="flex items-center justify-center gap-4">
|
||||
<FaTrophy className="text-[#fdb84b] shrink-0" size={28} />
|
||||
<h4 className="font-beachday uppercase text-[clamp(1.1rem,4vw,1.8rem)] tracking-[0.05em] font-medium text-white text-center leading-none">
|
||||
{config.beachPage?.prizesText || "Fina priser till alla pallplatser! 🏆"}
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Rendera formuläret endast om anmälan är öppen */}
|
||||
{!timeInfo.isClosed && <BeachRegistrationForm />}
|
||||
{!timeInfo.isClosed && <BeachRegistrationForm config={config} />}
|
||||
|
||||
<section className="w-full flex justify-center px-1.25 mt-5">
|
||||
<div className="bg-[#FAAC4F] flex flex-col justify-center items-center py-2.5 rounded-[20px] m-[10px_5px] w-full max-w-100 shadow-md">
|
||||
<h3 className="text-white text-[clamp(1.5rem,6.5vw,2rem)] text-center font-bold">Kontakta oss</h3>
|
||||
<a href="mailto:beach@lerbergetsvolleyboll.se?subject=Beach%20turnering" className="group flex justify-center items-center text-black font-bold text-[1.1rem] mt-2 relative pb-1">
|
||||
<IoIosMail className="h-7 w-7 mr-2" size={24} />
|
||||
<span>beach@lerbergetsvolleyboll.se</span>
|
||||
<span className="absolute bottom-0 left-0 w-full h-0.5 bg-black transform scale-x-0 transition-transform duration-300 origin-left group-hover:scale-x-100" />
|
||||
<section className="w-full flex justify-center px-4 mt-10 mb-20">
|
||||
<div className="bg-linear-to-br from-[#39979f] to-[#62b8bc] p-10 md:p-12 rounded-[40px] shadow-2xl w-full max-w-2xl text-center transform transition-transform duration-500 border border-blue-400/20 relative overflow-hidden group">
|
||||
|
||||
{/* Dekorativ bakgrundscirkel */}
|
||||
<div className="absolute -right-10 -top-10 w-40 h-40 bg-white/5 rounded-full blur-2xl group-hover:bg-white/10 transition-colors duration-700" />
|
||||
|
||||
{/* Ikon-badge */}
|
||||
<div className="bg-linear-to-br from-[#fdb84b] to-[#e69c24] w-20 h-20 rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg border-4 border-[#62b8bc] relative z-10">
|
||||
<IoIosMail className="text-white" size={40} />
|
||||
</div>
|
||||
|
||||
<h3 className="font-beachday text-white text-[clamp(2rem,5vw,3rem)] uppercase tracking-widest mb-3 relative z-10">
|
||||
Kontakta oss
|
||||
</h3>
|
||||
|
||||
<p className="text-white mb-8 font-medium max-w-md mx-auto relative z-10">
|
||||
Har du frågor om turneringen, regler eller vill ändra något i er anmälan? Tveka inte att höra av dig!
|
||||
</p>
|
||||
|
||||
<a
|
||||
href="mailto:beach@lerbergetsvolleyboll.se?subject=Beach%20turnering"
|
||||
className="inline-flex items-center gap-3 bg-white text-[#39979f] font-black text-lg px-8 py-4 rounded-2xl hover:bg-[#fdf5e6] hover:scale-105 transition-all shadow-[0_10px_20px_rgba(0,0,0,0.2)] relative z-10"
|
||||
>
|
||||
<IoIosMail className="text-[#fdb84b]" size={28} />
|
||||
<span>Skicka ett mejl</span>
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
+163
-128
@@ -3,157 +3,192 @@
|
||||
'use client';
|
||||
|
||||
import { Turnstile, TurnstileInstance } from '@marsidev/react-turnstile';
|
||||
import React, { useRef, useState } from 'react';
|
||||
import { PiCheckCircle, PiWarningCircle } from "react-icons/pi";
|
||||
|
||||
interface AlertState {
|
||||
show: boolean;
|
||||
type: 'success' | 'danger' | '';
|
||||
message: string;
|
||||
}
|
||||
|
||||
interface SubmitResponse {
|
||||
success: boolean;
|
||||
message: string;
|
||||
detail?: string;
|
||||
}
|
||||
|
||||
export default function BeachRegistrationForm() {
|
||||
const [isSubmitting, setIsSubmitting] = useState<boolean>(false);
|
||||
const [wasValidated, setWasValidated] = useState<boolean>(false);
|
||||
const [alert, setAlert] = useState<AlertState>({ show: false, type: '', message: '' });
|
||||
import React, { useRef, useActionState, useEffect } from 'react';
|
||||
import { FaUser, FaEnvelope, FaPhone, FaUsers, FaTrophy, FaCheckCircle, FaExclamationTriangle } from "react-icons/fa";
|
||||
import { submitRegistration } from './actions';
|
||||
|
||||
export default function BeachRegistrationForm({ config }: { config: any }) {
|
||||
const [state, formAction, isPending] = useActionState(submitRegistration, null);
|
||||
const formRef = useRef<HTMLFormElement>(null);
|
||||
const turnstileRef = useRef<TurnstileInstance>(null);
|
||||
|
||||
const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (e) => {
|
||||
e.preventDefault();
|
||||
const form = formRef.current;
|
||||
if (!form) return;
|
||||
const classesData = Array.isArray(config.beachPage?.classes)
|
||||
? config.beachPage.classes
|
||||
: [
|
||||
{ name: 'Grön', color: '#16a34a', desc: 'Nybörjare' },
|
||||
{ name: 'Blå', color: '#2563eb', desc: 'Spelat lite' },
|
||||
{ name: 'Svart', color: '#111827', desc: 'Spelat mycket' }
|
||||
];
|
||||
|
||||
setWasValidated(true);
|
||||
if (!form.checkValidity()) return;
|
||||
|
||||
setIsSubmitting(true);
|
||||
setAlert({ show: false, type: '', message: '' });
|
||||
const formData = new FormData(form);
|
||||
|
||||
try {
|
||||
const response = await fetch('/api/submit', {
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
});
|
||||
|
||||
if (!response.ok) throw new Error(`Network error: ${response.status}`);
|
||||
|
||||
const result = (await response.json()) as SubmitResponse;
|
||||
const message = result.detail ? `${result.message} ${result.detail}` : result.message;
|
||||
|
||||
setAlert({
|
||||
show: true,
|
||||
type: result.success ? 'success' : 'danger',
|
||||
message: message,
|
||||
});
|
||||
|
||||
if (result.success) {
|
||||
form.reset();
|
||||
setWasValidated(false);
|
||||
if (turnstileRef.current) turnstileRef.current.reset();
|
||||
}
|
||||
} catch (error) {
|
||||
setAlert({
|
||||
show: true,
|
||||
type: 'danger',
|
||||
message: 'Ett tekniskt fel uppstod. Försök igen senare.',
|
||||
});
|
||||
} finally {
|
||||
setIsSubmitting(false);
|
||||
useEffect(() => {
|
||||
// Rensa endast vid lyckad inskickning
|
||||
if (state?.success) {
|
||||
formRef.current?.reset();
|
||||
turnstileRef.current?.reset();
|
||||
} else if (state?.success === false) {
|
||||
// Återställ Turnstile så de kan försöka igen vid fel
|
||||
turnstileRef.current?.reset();
|
||||
}
|
||||
};
|
||||
}, [state]);
|
||||
|
||||
return (
|
||||
<section className="w-full flex justify-center px-1.25">
|
||||
<div className="bg-black p-5 rounded-[20px] my-7.5 mx-1.25 w-full max-w-180 shadow-2xl">
|
||||
<h2 className="font-beachday text-[clamp(1.875rem,5.2vw,50px)] text-white text-center m-[5px_0] uppercase tracking-wide">
|
||||
Anmälningsformulär
|
||||
</h2>
|
||||
<section className="w-full flex justify-center px-4 mb-20">
|
||||
<div className="bg-[#fdf5e6] p-8 md:p-12 rounded-[40px] w-full max-w-3xl shadow-2xl border-b-8 border-[#e6be8a]">
|
||||
|
||||
<form
|
||||
ref={formRef}
|
||||
onSubmit={handleSubmit}
|
||||
className={`group/form flex flex-col items-center w-full mt-5 ${wasValidated ? 'was-validated' : ''}`}
|
||||
noValidate
|
||||
autoComplete="off"
|
||||
>
|
||||
{/* INPUT FÄLT (Namn, Email, Tel, Lagnamn, Antal) */}
|
||||
{[
|
||||
{ name: 'name', type: 'text', placeholder: 'Ditt namn', auto: 'name', error: 'Glöm inte ditt namn!' },
|
||||
{ name: 'email', type: 'email', placeholder: 'Email', auto: 'email', error: 'Emailadressen är inte giltig.' },
|
||||
{ name: 'tel', type: 'tel', placeholder: 'Telefonnummer', auto: 'tel', error: 'Glöm inte ett telefonnummer!' },
|
||||
{ name: 'team', type: 'text', placeholder: 'Lagnamn', auto: 'organization', error: 'Glöm inte ert lagnamn!' },
|
||||
].map((f) => (
|
||||
<div key={f.name} className="relative w-full mb-3.75">
|
||||
<div className="text-center mb-10 px-2">
|
||||
<h2 className="font-beachday text-[clamp(35px,8vw,60px)] text-[#39979f] uppercase tracking-wide leading-[0.9] wrap-break-word w-full max-w-full">
|
||||
Anmälnings­formulär
|
||||
</h2>
|
||||
<div className="h-1.5 w-24 bg-[#fdb84b] mx-auto mt-4 rounded-full" />
|
||||
</div>
|
||||
|
||||
<form action={formAction} ref={formRef} className="space-y-6">
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<InputGroup
|
||||
icon={<FaUser />}
|
||||
name="name"
|
||||
placeholder="Ditt namn"
|
||||
required
|
||||
minLength={2}
|
||||
defaultValue={state?.values?.name || ''}
|
||||
/>
|
||||
<InputGroup
|
||||
icon={<FaEnvelope />}
|
||||
name="email"
|
||||
type="email"
|
||||
placeholder="namn@domän.com"
|
||||
required
|
||||
defaultValue={state?.values?.email || ''}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<InputGroup
|
||||
icon={<FaPhone />}
|
||||
name="tel"
|
||||
type="tel"
|
||||
placeholder="Telefonnummer"
|
||||
required
|
||||
pattern="[0-9+ \-]{8,}"
|
||||
defaultValue={state?.values?.tel || ''}
|
||||
/>
|
||||
<InputGroup
|
||||
icon={<FaTrophy />}
|
||||
name="team"
|
||||
placeholder="Lagnamn"
|
||||
required
|
||||
minLength={2}
|
||||
defaultValue={state?.values?.team || ''}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="flex flex-col md:flex-row gap-8 bg-white/50 p-6 rounded-3xl border border-[#e6be8a]/30 shadow-inner">
|
||||
<div className="flex-1">
|
||||
<label className="flex items-center gap-2 font-bold text-[#39979f] mb-3 text-sm uppercase">
|
||||
<FaUsers /> Antal spelare
|
||||
</label>
|
||||
<input
|
||||
type={f.type} name={f.name} placeholder={f.placeholder} required autoComplete={f.auto}
|
||||
className="peer bg-transparent text-white border-0 border-b-[5px] border-white w-full h-12.5 outline-none text-[20px] pl-2.5 rounded-none focus:ring-0 group-[.was-validated]/form:invalid:border-[#e60b20] group-[.was-validated]/form:valid:border-[#07ba4c] transition-colors"
|
||||
type="text"
|
||||
inputMode="numeric"
|
||||
name="count"
|
||||
required
|
||||
pattern="^([2-9]|10)$"
|
||||
title="Ange ett antal mellan 2 och 10"
|
||||
onInput={(e) => {
|
||||
e.currentTarget.value = e.currentTarget.value.replace(/\D/g, '');
|
||||
}}
|
||||
className="w-full p-4 rounded-xl border-2 border-transparent bg-white focus:border-[#39979f] outline-none transition-all shadow-inner"
|
||||
placeholder="Minst 2"
|
||||
defaultValue={state?.values?.count || ''}
|
||||
/>
|
||||
<div className="hidden group-[.was-validated]/form:peer-invalid:block absolute right-2.5 top-2.25"><PiWarningCircle color='#dc3545' size={28} /></div>
|
||||
<div className="hidden group-[.was-validated]/form:peer-valid:block absolute right-2.5 top-2.25"><PiCheckCircle color='#198754' size={28} /></div>
|
||||
<div className="hidden group-[.was-validated]/form:peer-invalid:block text-[#e60b20] text-[14px] pl-2.5 mt-1 text-left w-full">{f.error}</div>
|
||||
</div>
|
||||
))}
|
||||
|
||||
<div className="relative w-full mb-3.75">
|
||||
<input type="number" name="count" placeholder="Antal spelare" min="2" required
|
||||
className="peer bg-transparent text-white border-0 border-b-[5px] border-white w-full h-12.5 outline-none text-[20px] pl-2.5 rounded-none focus:ring-0 group-[.was-validated]/form:invalid:border-[#e60b20] group-[.was-validated]/form:valid:border-[#07ba4c] transition-colors" />
|
||||
<div className="hidden group-[.was-validated]/form:peer-invalid:block text-[#e60b20] text-[14px] pl-2.5 mt-1 text-left w-full">Glöm inte ange antal lagmedlemmar!</div>
|
||||
<div className="flex-2">
|
||||
<label className="font-bold text-[#39979f] mb-3 block text-sm uppercase">Välj klass</label>
|
||||
<div className={`grid grid-cols-2 md:grid-cols-${Math.min(classesData.length, 3)} gap-3`}>
|
||||
{classesData.map((c: any) => (
|
||||
<LevelButton
|
||||
key={c.name}
|
||||
value={c.name}
|
||||
label={c.name}
|
||||
desc={c.desc}
|
||||
color={c.color}
|
||||
defaultChecked={state?.values?.level === c.name}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* RADIOS */}
|
||||
<div className="w-full mt-2.5 text-left group/radios">
|
||||
{[
|
||||
{ id: 'level-gron', val: 'Grön', label: 'Grön', color: 'text-green-700', accent: 'accent-green-600', desc: '(Nybörjare)' },
|
||||
{ id: 'level-bla', val: 'Blå', label: 'Blå', color: 'text-[#0f65bf]', accent: 'accent-[#0f65bf]', desc: '(Spelat lite)' },
|
||||
{ id: 'level-svart', val: 'Svart', label: 'Svart', color: 'text-black', accent: 'accent-black', desc: '(Spelat mycket)' },
|
||||
].map((l) => (
|
||||
<React.Fragment key={l.id}>
|
||||
<input type="radio" id={l.id} name="level" value={l.val} required className={`inline-block align-middle m-[6px_5px] w-4 h-4 ${l.accent} cursor-pointer`} />
|
||||
<label htmlFor={l.id} className="text-white inline-block align-middle cursor-pointer select-none">
|
||||
<strong className={`${l.color} bg-white px-0.75 rounded-sm font-bold`}>{l.label}</strong> {l.desc}
|
||||
</label>
|
||||
<br />
|
||||
</React.Fragment>
|
||||
))}
|
||||
<div className="hidden group-[.was-validated]/form:group-has-invalid/radios:block text-[#e60b20] text-[14px] pl-2.5 mt-2">Glöm inte ange spelarnivå!</div>
|
||||
<textarea
|
||||
name="message"
|
||||
placeholder="Övrig info till oss..."
|
||||
className="w-full h-32 p-4 rounded-2xl border-2 border-transparent bg-white focus:border-[#39979f] outline-none resize-none shadow-inner"
|
||||
defaultValue={state?.values?.message || ''}
|
||||
/>
|
||||
|
||||
<input type="text" name="website" className="hidden" tabIndex={-1} />
|
||||
|
||||
<div className="flex justify-center py-2">
|
||||
<Turnstile
|
||||
ref={turnstileRef}
|
||||
siteKey={process.env.NEXT_PUBLIC_TURNSTILE_SITE_KEY || ''}
|
||||
options={{ theme: 'light' }}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<textarea name="message" autoComplete="off" placeholder="Övrig info..." className="w-full min-h-37.5 p-[12px_16px] border-[5px] border-white rounded-[10px] bg-transparent text-white text-[15px] resize-y outline-none mt-5" />
|
||||
|
||||
<div className="hidden">
|
||||
<input type="text" name="website" tabIndex={-1} autoComplete="off" />
|
||||
</div>
|
||||
|
||||
{alert.show && (
|
||||
<div className={`w-full p-4 rounded-md text-center font-bold my-4 ${alert.type === 'success' ? 'bg-[#d1e7dd] text-[#0a3622] border-[#a3cfbb]' : 'bg-[#f8d7da] text-[#58151c] border-[#f1aeb5]'}`}>
|
||||
{alert.message}
|
||||
{state && (
|
||||
<div className={`flex items-center gap-3 p-5 rounded-2xl font-bold transition-all ${state.success ? 'bg-green-100 text-green-700' : 'bg-red-100 text-red-700'}`}>
|
||||
{state.success ? <FaCheckCircle size={24} className="shrink-0" /> : <FaExclamationTriangle size={24} className="shrink-0" />}
|
||||
{state.message}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="w-full flex justify-center mt-2.5">
|
||||
<Turnstile ref={turnstileRef} siteKey={process.env.NEXT_PUBLIC_TURNSTILE_SITE_KEY || ''} options={{ theme: 'dark' }} />
|
||||
</div>
|
||||
|
||||
<button type="submit" disabled={isSubmitting} className="bg-white text-black uppercase w-full max-w-75 h-12.5 text-[20px] font-bold rounded-[10px] my-5 flex justify-center items-center cursor-pointer hover:bg-gray-200 transition-all active:scale-95 disabled:opacity-70">
|
||||
{isSubmitting && (
|
||||
<svg className="animate-spin h-5 w-5 text-black mr-3" viewBox="0 0 24 24">
|
||||
<circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4" fill="none" />
|
||||
<path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" />
|
||||
</svg>
|
||||
)}
|
||||
<span>Skicka anmälan</span>
|
||||
<button
|
||||
type="submit"
|
||||
disabled={isPending}
|
||||
className="w-full py-5 bg-[#39979f] text-white rounded-2xl font-bold text-xl uppercase tracking-wide shadow-xl hover:bg-[#fdb84b] hover:text-[#39979f] transition-all active:scale-[0.98] disabled:bg-gray-300 disabled:text-gray-500"
|
||||
>
|
||||
{isPending ? 'Skickar...' : 'Skicka anmälan'}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
// Uppdaterad med defaultChecked support
|
||||
function LevelButton({ value, label, desc, color, defaultChecked }: any) {
|
||||
return (
|
||||
<label className="cursor-pointer flex-1 relative" style={{ '--class-color': color } as React.CSSProperties}>
|
||||
<input
|
||||
type="radio"
|
||||
name="level"
|
||||
value={value}
|
||||
required
|
||||
className="peer sr-only"
|
||||
defaultChecked={defaultChecked}
|
||||
/>
|
||||
|
||||
<div className="text-center p-3 rounded-xl border-2 border-white bg-white text-gray-400 font-black transition-all peer-checked:text-white peer-checked:bg-(--class-color) peer-checked:border-(--class-color) peer-checked:scale-[1.03] shadow-sm h-full flex flex-col justify-center items-center">
|
||||
<span className="uppercase tracking-tighter">{label}</span>
|
||||
{desc && <span className="text-[10px] font-medium opacity-80 mt-1 uppercase tracking-widest">{desc.replace(/[()]/g, '')}</span>}
|
||||
</div>
|
||||
</label>
|
||||
);
|
||||
}
|
||||
|
||||
function InputGroup({ icon, ...props }: any) {
|
||||
return (
|
||||
<div className="relative group">
|
||||
<div className="absolute left-4 top-1/2 -translate-y-1/2 text-[#e6be8a] group-focus-within:text-[#39979f] transition-colors">
|
||||
{icon}
|
||||
</div>
|
||||
<input
|
||||
{...props}
|
||||
className="w-full pl-12 pr-4 py-4 rounded-xl border-2 border-transparent bg-white focus:border-[#39979f] outline-none transition-all shadow-inner placeholder:text-gray-400"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
// app/beach/actions.ts
|
||||
|
||||
'use server';
|
||||
|
||||
import nodemailer from 'nodemailer';
|
||||
|
||||
export async function submitRegistration(prevState: any, formData: FormData) {
|
||||
// 1. Spara all rådata direkt för att kunna skicka tillbaka den vid fel
|
||||
const rawData = {
|
||||
name: formData.get('name') as string,
|
||||
email: formData.get('email') as string,
|
||||
tel: formData.get('tel') as string,
|
||||
team: formData.get('team') as string,
|
||||
count: formData.get('count') as string,
|
||||
level: formData.get('level') as string,
|
||||
message: formData.get('message') as string,
|
||||
};
|
||||
|
||||
const honeypot = formData.get('website');
|
||||
if (honeypot) {
|
||||
return { success: false, message: 'Spam detekterat.', values: rawData };
|
||||
}
|
||||
|
||||
// 2. Hämta Turnstile Token och Secret (MATCHING .env NAME)
|
||||
const turnstileToken = formData.get('cf-turnstile-response');
|
||||
const secretKey = process.env.TURNSTILE_SECRET; // Matchar din .env exakt
|
||||
|
||||
if (!secretKey) {
|
||||
console.error("Saknar TURNSTILE_SECRET i miljön.");
|
||||
return {
|
||||
success: false,
|
||||
message: 'Serverkonfiguration saknas. Kontakta administratör.',
|
||||
values: rawData
|
||||
};
|
||||
}
|
||||
|
||||
// 3. Verifiera mot Cloudflare
|
||||
try {
|
||||
const turnstileRes = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
||||
body: new URLSearchParams({
|
||||
secret: secretKey,
|
||||
response: turnstileToken?.toString() || '',
|
||||
}),
|
||||
});
|
||||
|
||||
const turnstileData = await turnstileRes.json();
|
||||
|
||||
if (!turnstileData.success) {
|
||||
console.error("Turnstile failed:", turnstileData);
|
||||
return {
|
||||
success: false,
|
||||
message: 'Säkerhetsverifieringen misslyckades. Ladda om sidan och försök igen.',
|
||||
values: rawData // Returnerar värdena så användaren slipper skriva om dem
|
||||
};
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Turnstile fetch error:", error);
|
||||
return {
|
||||
success: false,
|
||||
message: 'Kunde inte nå verifieringsservern.',
|
||||
values: rawData
|
||||
};
|
||||
}
|
||||
|
||||
// 4. Formatera telefonnummer
|
||||
let cleanTel = rawData.tel.replace(/\D/g, '');
|
||||
if (cleanTel.startsWith('46')) cleanTel = cleanTel.substring(2);
|
||||
else if (cleanTel.startsWith('0')) cleanTel = cleanTel.substring(1);
|
||||
|
||||
const formattedTel = cleanTel.length === 9
|
||||
? `+46 (0)${cleanTel.substring(0, 2)}-${cleanTel.substring(2, 5)} ${cleanTel.substring(5, 7)} ${cleanTel.substring(7, 9)}`
|
||||
: rawData.tel;
|
||||
|
||||
// 5. Nodemailer setup
|
||||
const transporter = nodemailer.createTransport({
|
||||
host: process.env.SMTP_HOST || '10.10.0.113', // Använder .env med fallback
|
||||
port: 25,
|
||||
secure: false,
|
||||
tls: { rejectUnauthorized: false }
|
||||
});
|
||||
|
||||
try {
|
||||
const dateStr = new Date().toLocaleString('sv-SE');
|
||||
|
||||
// Mail till klubben
|
||||
await transporter.sendMail({
|
||||
from: `"Beach-anmälan: ${rawData.name}" <no-reply@lerbergetsvolleyboll.se>`,
|
||||
to: 'beach@lerbergetsvolleyboll.se',
|
||||
replyTo: rawData.email,
|
||||
subject: `Anmälan: ${rawData.team}`,
|
||||
html: `
|
||||
<div style="font-family: sans-serif; max-width: 600px; border: 1px solid #eee; padding: 20px;">
|
||||
<h2 style="color: #406185;">Ny anmälan: ${rawData.team}</h2>
|
||||
<p><strong>Kontaktperson:</strong> ${rawData.name}</p>
|
||||
<p><strong>E-post:</strong> ${rawData.email}</p>
|
||||
<p><strong>Telefon:</strong> ${formattedTel}</p>
|
||||
<p><strong>Antal spelare:</strong> ${rawData.count}</p>
|
||||
<p><strong>Nivå:</strong> ${rawData.level}</p>
|
||||
<p><strong>Meddelande:</strong><br>${rawData.message || 'Inget meddelande'}</p>
|
||||
<hr>
|
||||
<p style="font-size: 10px; color: #999;">Skickat: ${dateStr}</p>
|
||||
</div>
|
||||
`
|
||||
});
|
||||
|
||||
// Bekräftelse till användaren
|
||||
await transporter.sendMail({
|
||||
from: `"LVS" <no-reply@lerbergetsvolleyboll.se>`,
|
||||
to: rawData.email,
|
||||
subject: `Vi har tagit emot din anmälan för ${rawData.team}`,
|
||||
html: `<div style="font-family: sans-serif; padding: 20px;">
|
||||
<h2>Hej ${rawData.name}!</h2>
|
||||
<p>Tack för din anmälan till beachturneringen. Vi återkommer så snart vi har granskat era uppgifter.</p>
|
||||
<p>Ses på stranden!<br><strong>Lerbergets Volleybollsällskap</strong></p>
|
||||
</div>`
|
||||
});
|
||||
|
||||
// Returnerar INGA värden här, vilket gör att formuläret kan rensas rent
|
||||
return { success: true, message: 'Tack! Din anmälan har skickats. Håll utkik i din inkorg efter bekräftelse.' };
|
||||
} catch (e) {
|
||||
console.error("Nodemailer error:", e);
|
||||
return {
|
||||
success: false,
|
||||
message: 'Kunde inte skicka mail. Kontakta oss manuellt istället.',
|
||||
values: rawData
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -27,7 +27,7 @@ export default function HomeClientContent() {
|
||||
</div>
|
||||
<h4 className="italic text-xl my-2.5 font-bold">Lerbergets Volleybollsällskap</h4>
|
||||
<p className="max-w-200 leading-[1.1]">
|
||||
Klubben startade den 1 mars 2018 och har i snabb takt utvecklats...
|
||||
Klubben startade den 1 mars 2018 och har i snabb takt utvecklats med både kidsvolley, 4-mannavolley och ett gott gäng killar och tjejer som tränar tillsammans minst två gånger i veckan och på sommaren spelas det beachvolley
|
||||
</p>
|
||||
<div className="flex flex-col gap-2.5 mt-10">
|
||||
<HeroButton onClick={() => setActiveModal('member')}>Bli Medlem</HeroButton>
|
||||
@@ -35,8 +35,8 @@ export default function HomeClientContent() {
|
||||
<HeroButton href="https://www.basesport.se/category/lerbergets-vbk">Klubbkollektion</HeroButton>
|
||||
</div>
|
||||
</div>
|
||||
<div className="hidden md:flex items-center p-2.5 justify-end">
|
||||
<img src="/images/player.webp" alt="Spelare" className="max-h-112.5 player-animation" />
|
||||
<div className="relative w-64 md:w-75 player-animation">
|
||||
<img src="/images/player.svg" alt="Spelare" className="w-full h-auto" />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"showBeachPromo": true,
|
||||
"beachPage": {
|
||||
"matchStart": "2026-06-13T10:00",
|
||||
"isClosedOverride": false,
|
||||
"closeReason": "Det är hela 26 lag anmälda och vi kan tyvärr inte ta emot fler anmälningar. Vi är glada över förväntan och bjuder in alla andra till att komma och kolla men vi har tyvärr inte kapaciteten till att ha med fler lag.",
|
||||
"festivalLink": "https://www.kullahalvon.com/upptacka--uppleva/kultur--noje/evenemang-pa-kullahalvon/mat---sommarfesten.html",
|
||||
"otherInfo": "Turneringen uppskattas hålla på till ca 17-18 tiden\r\nDet kommer finnas duschmöjligheter i anslutning till stranden.",
|
||||
"prizesText": "Det kommer att finnas fina priser till alla pallplatser!",
|
||||
"classes": [
|
||||
{
|
||||
"name": "Grön",
|
||||
"color": "#07be15",
|
||||
"desc": "Nybörjare"
|
||||
},
|
||||
{
|
||||
"name": "Blå",
|
||||
"color": "#2563eb",
|
||||
"desc": "Spelat lite"
|
||||
},
|
||||
{
|
||||
"name": "Svart",
|
||||
"color": "#111827",
|
||||
"desc": "Spelat mycket"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Generated
+11
@@ -19,6 +19,7 @@
|
||||
"devDependencies": {
|
||||
"@tailwindcss/postcss": "^4.2.1",
|
||||
"@types/node": "^20",
|
||||
"@types/nodemailer": "^7.0.11",
|
||||
"@types/react": "^19",
|
||||
"@types/react-dom": "^19",
|
||||
"eslint": "^9",
|
||||
@@ -1569,6 +1570,16 @@
|
||||
"undici-types": "~6.21.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/nodemailer": {
|
||||
"version": "7.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-7.0.11.tgz",
|
||||
"integrity": "sha512-E+U4RzR2dKrx+u3N4DlsmLaDC6mMZOM/TPROxA0UAPiTgI0y4CEFBmZE+coGWTjakDriRsXG368lNk1u9Q0a2g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/react": {
|
||||
"version": "19.2.14",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
"devDependencies": {
|
||||
"@tailwindcss/postcss": "^4.2.1",
|
||||
"@types/node": "^20",
|
||||
"@types/nodemailer": "^7.0.11",
|
||||
"@types/react": "^19",
|
||||
"@types/react-dom": "^19",
|
||||
"eslint": "^9",
|
||||
|
||||
@@ -0,0 +1,226 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Artboard" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1400.1 2000">
|
||||
<!-- Generator: Adobe Illustrator 30.1.0, SVG Export Plug-In . SVG Version: 2.1.1 Build 136) -->
|
||||
<defs>
|
||||
<style>
|
||||
.st0, .st1, .st2, .st3, .st4, .st5, .st6 {
|
||||
stroke-linecap: round;
|
||||
}
|
||||
|
||||
.st0, .st1, .st2, .st4, .st5, .st6, .st7, .st8 {
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
|
||||
.st0, .st1, .st2, .st6, .st7, .st8 {
|
||||
stroke: #000;
|
||||
}
|
||||
|
||||
.st0, .st2, .st3, .st4, .st5, .st7, .st8 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.st0, .st3, .st4, .st6 {
|
||||
stroke-width: 2px;
|
||||
}
|
||||
|
||||
.st2, .st7 {
|
||||
stroke-width: 4px;
|
||||
}
|
||||
|
||||
.st9 {
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.st3 {
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
|
||||
.st3, .st4, .st5 {
|
||||
stroke: #fff;
|
||||
}
|
||||
|
||||
.st10 {
|
||||
fill: #333;
|
||||
}
|
||||
|
||||
.st11 {
|
||||
fill: #999;
|
||||
}
|
||||
|
||||
.st12 {
|
||||
fill: #ffb48a;
|
||||
}
|
||||
|
||||
.st8 {
|
||||
stroke-width: 5px;
|
||||
}
|
||||
|
||||
.st13 {
|
||||
fill: #e6e6e6;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g id="Oikawa">
|
||||
<g id="Nyanser">
|
||||
<path class="st10" d="M1398.5,1173.5c-1.7-4.3-14-14.8-23.8-27.9-2.1-2.9,2.1-8.1,0-10.9-13.3-17.8,2.1-32.7,16.3-43.6,3.2-.2,1.5-25-1.8-27.5-3.2-2.4-55.7-9.3-58.3-13.2-2.6-3.9-1.1-35.7,2.2-49.8-1.2-10.3-2.8-34.3-5.2-36.3s-61.4,1.6-63,0-2.4-22.6-5.7-25c-3.2-2.4-38.6-5.7-44.4-8.9s-27.2-23.4-29.1-25c-1.9-1.6-3.2-27.1-6.5-29.9-3.2-2.8-38.4-.5-39.6-3-1.2-2.4,2.3-62.4.4-74.6-5.2-5.7-77.5-14.5-75.5-22.6,2-8.1,23.4-25.8,22.1-29.8s-34.2-33.2-34.2-33.2c22.9-9.3,38.6-.4,52.4,17.9,2.7-7.6,1.9-17.7-6.3-26.8,19.4,3.6,36.8,11.2,50.9,25,0,0-.9-39.7,0-43.8,3.4,2.6,11.7,15.5,17.8,17.1s14.5,2.4,23.4,0,14.5-11.3,14.5-11.3c0,0-19.8,0-22.6-7.3-2.8-7.3-4-21-2.4-22.6s19.1,10.9,21.8,12.1c-2.5-3.5-22.6-24.6-21.8-27.5.8-2.8,34.7-1.5,34.7-1.5-41.6-19.4-24.6-35.3-50.1-52,0,0,23.4-1,39.7-8.6,0,0-30.4-9-38.6-20.6-8.2-11.6-36-30.7-44.7-36.9,4,0,21,3.6,37.7,2.3-18.6-28.2-13-27-77.3-29.8-1.6-3.2-3.2-14.1,5.7-35.5,0,0-24.2,11.3-25,17.8s0,16.1,0,16.1c-29.1-4.9-27.1,9.3-31.2,11.3-4.2,2-36.6-.7-41.5,2.6s-4,23.3-12.9,25.7-49.9-.3-52.4,2.6,7.1,20.9,4.7,23.3c-2.4,2.4-13.3,6.5-13.7,9s8.1,13.6,5.7,15.2c-2.4,1.6-3.6-4-6.5-3.2s-22.7,23.4-24.2,28.3c1.2,7.3,27.8,20.5,30.7,22.6,2.9,2.2,2,10.1,0,11.3s-14.9,1.6-17.8,0c-2.8-1.6-6.5-10.5-6.5-10.5,0,0-32.3-47.7-40.4-50.9-42-4.4-88.4-29.9-91.3-33.9-2.8-4,.8-48.5-3.2-51.7s-9.7-4.4-31.5-16.1c-1.6-77.5-74.3-95.3-74.3-95.3,0,0-22.6-49.8-27.3-51.3-4.7-1.5-58.7,3.6-69.2-1.8-20.6-30.1-99.3-84.7-105.8-100.4s-3.9-27.5-9.6-38.8c-3-13.1-83.3-119.1-87-120.3-4.8-1.6-17.4,0-28.3-5.7-10.9-5.7-38.8-22.6-55.7-25-17.8,7.7-37,38.8-37,38.8,0,0-31.9-24.4-57.9-37.6C152.1,31.7,62.5,5.7,12.9,0c-2.4,10.9,17,27.1,37.1,29.9C23,40,.7,53.8,5.7,61.1c5,7.3,50.3-10.8,59-11.8-5.7,4.5-42.4,18.6-59,30.7-8.1,6.1-6.7,13.9,7,10.5,0,0,56-18.8,64.9-20.2-5.2,5.4-39.6,29.1-39.6,29.1-11.3,11.5-4.8,12.2,8.1,8.9,17.8-4.8,34.4-19.9,51.7-22.6,13.4,4.1,21.8,9.7,27.5,16.2,29.5,24.7,56.7,35.1,90.5,32.3,5.7,1.6,10.5,4,10.5,4,0,0,0,9.1,4,15.6s60.4,47.1,64.9,53.6,5.5,22.6,6.6,28.4c1.1,5.8,42.8,61.9,54,71.1,2,6.5,6.7,21.8,12,28.3s23.3,24.4,45.1,26c8.5,2.4,29.5,14.9,29.9,38,9.7,22.6,152.2,176.9,193,194.6,3.2,46,40.7,88.6,46,100.2,5.3,11.5.8,10.1-4.8,21-5.7,10.9-125.2,76-131.6,80-6.5,3.9-65.8,36.3-80.6,60.4-15.1,1.3-62.3,21.5-68.8,23.6-6.5,2.1-56.8,21.2-60.6,22.6s-66.9,25.8-66.9,25.8c-2.8,1-.4,22.7-.1,26.7s-15.5,5.5-16.7,10.8,26.1,63.7,31,68.9c4.8,5.2,19,18.6,21,23.8s1.5,8.8,3.5,15.2,23,45.6,93.7,122.6c.4,4-24.6,25.8-8.9,38.1s71.9,42,71.9,42c0,0-11.8,50.4-23.8,74.5-2.9,5.8-4.4,12.3-4.5,18.8-.3,26.3-1.4,48-1.6,55.2-.2,8.1-11.9,37.2-13.7,42.8-1.8,5.6-29.1,60.4-32.3,67-3.2,6.7-11.8,47.1-12.9,51.7-1.1,4.6-4,56.4,0,59.6s26.2-.7,29.1,1.8c-12.5,100.6,3,188.4,5.4,203.4,2.4,14.9,8.2,29.6,10,39.7,1.7,10.1,2.5,42.4,3.2,55.7.8,13.3,20.2,39.2,51.7,40.4s36.5,1.9,49-1.8,29.4-20.1,34.2-24.1,12.1-13.7,22.6-17c137.3-46.4,202.3-84.8,206-84,3.6.8,60.8,88.4,67.2,96,5.5,5.8,14.1,7.9,19.2,10.5,5.2,2.6,47.2,3.5,58.2-1.8s32.1-28.6,34.7-31.2c2.6-2.6,2.4-14.1,4.8-16.2,2.4-2,7.7-1.6,9.7,0,2,1.6-.3,25.6.8,31.5,0,13.4,67.6,112.4,99.3-4,3.6-31.1-3.7-98.5-5.2-106.7-1.1-6-1.7-8.7-2.8-15.2,25-38.4,73.9-69.9,80.8-73.1s16.7-1.6,21.1.4,11.2,14.1,15.6,16.2,17.5-1.2,19.9.8-.8,25.4,2.4,27.5,9.7-1.8,12.4-2.4,5.2,8.9,5.2,8.9c0,0,15.1,1.4,17,1.6s-1.6-6.1,1.6-8.1c3.2-2,10.5-.8,13.7,4-.4,12.9,16.6,61.4,40.4,85.6,8.9,8.5,52.1,63,74.3,0,25-56.1-39.6-159.9-39.6-159.9,0,0-32.3-47.7-35.5-83.2.8-11.2-25.6-88.2-44.2-94.2-18.6-6.1-26.2-6.8-40.7-4.3-12.1,5.2-46,46-48.5,51.7-2.4,5.7-6.9,32.3-21.8,36.3-1.6,8.1,0,17.5-2.4,22.8s-40.4,32.4-53.7,36.1-52.8,7.7-56,5.2-18.7-52.8-50.8-55.7c-17-.8-75.8,51.8-87.5,48.2-2.8-29.1-28.3-53.7-29.1-79.2,3.6-8.5,5.9-4,5.5-8.9-1.2-38.8-37-81.6-37-87.2s11.2-15.6,9.2-23.3c-2-7.7-25.4-26.9-26.2-31s15.1-77.4-20.1-128.3c1.2-4,6.9-6.1,6.5-9.7s-15.3-25-17-39.6c-1.6-14.5,13.7-68.5,14.5-72.7.8-4.2,1.6-18.6,1.6-18.6,0,0,11.3-2,12.9,0,1.6,2,3.9,10.8,10.4,12.8s40.7,0,49.5-4.8c8.9-4.8,63.8-66.8,75.1-74,11.3-7.3,59.2-17.1,100.8-75.2,28.3,4,76.3-41.6,82.4-42.8,40.4,26.6,88.4,19.8,76.7,38,1.2,14.1-21,30.3-21,35.5s34.7,19.4,34.7,19.4c0,0,26.2,6.7,35.9,17.6,1.2,6.5,14.5,9.4,11.3,15.5-4.3,8.2-10,20.9-10,24.6,0,6.5.3,14.2,2.6,19,2.2,4.8,11.9,20.4,13.7,23.4s.1,21.5,2.6,23.6,15.8,1.1,18.2-.9c2.4-2,2.8-22.2,5.7-22.6s17.6,23,21,27.5c5.3,2.1,20.8.7,22.9.8,2.1,0-.3,16.6,2.7,22.6,4,3.2,15.3-2.6,16.4-1.6,1.1,1-.4,3.8.8,4.8,1.2,1,14.3.7,15.9-1.8,1.6-2.4,1.8-21.7,1.8-24.9s9.4,3.2,11.8,0c2.4-3.2,2-45.6,0-50.9h0ZM738.9,1771.4c-2,2.4-55.6-2.7-66.9-3.5-46.4-10.5-107.4,14.5-109,12.5-.8-5.6-.6-21.8,1.8-26.9s23.2-44.8,25.6-54.7c2.4-9.8,3.8-27.9,3.8-27.9,0,0,9.3,1.2,19,.4,14.1.4,15.7-6.4,16.6-17s1.2-33.9,2.8-56.9c22.6,19.3,38,74.7,40.4,75.9,2.4,1.2,21.1-10.1,24-8.5,11.3,56.1,40.1,85.6,42.1,90.5s2,13.6,0,16h0Z"/>
|
||||
<path class="st9" d="M401.8,1196s36.7,22.3,37.4,22.7,49.6,23.5,49.6,23.5c0,0,52.4,8.4,53.3,8.5s59.7,3.9,59.7,3.9c0,0,47.9,7.7,49.1,8,1.2.3,40.8,11.1,40.8,11.1l76.4,4.6,20.3,9,14.2,27.3-3.6,12.1-12.2,6-55.5,3.1-55.8-4.7s-35.7-10.7-39-11.5c-3.3-.8-60.9-12.8-62.4-13.1-1.5-.3-57.7-12.6-57.7-12.6l-57.9-21.4s-49.6-27.9-51.8-29.3-19.8-17.3-19.8-17.3l2.6-12.9,12.4-17h0Z"/>
|
||||
<path class="st9" d="M504.8,1629.5l3.6-25.9,1.3-41.6v-18.6l-8.3-4.1-2.7-12.8,2-4.7,13.5-16.4,7.6-21.1,5.1-40.4v-20.4l-3.5-13-9.2-12-3.6-10.3-.8-20.6,2-26.1,4.5-15.5,9.9-15.2,7.7-12-26-5-36.7-13.5-7.6-4.7-9.2,47.7-1.4,24.4,2.4,38.5,6.5,26.2,8.8,16.8.6,9.5-5.6,11.8-11.6,12.7-14.1,10.6-5.6,6.4-4.5,8.5-4.1,14.7-9.8,12.3-10.5,12.6-4.2,7.1-2,27.7-2.7,66.2,13.3-2.5,14.7-34.7,5.5-5.9s1.2,18.8,1.7,19.7,7.4,19.2,7.4,19.2l9.7,6.1,56-1.9h0Z"/>
|
||||
<path class="st9" d="M491.6,1239.6l.5-29.4-.3-14.5,14.3-1.4-28-31.6,5.6-43.9,15-20.7,7.4-22,5.3-18.2,5.8-8.1,14-6.1,2.6-8.5,48.6-17.8,10.5-7.9,3.1-8.5,2.9-4.8,2-1.1,26.5-12.2,11.2-14.8,9.4-27,5.3-29.5,1.3-7.7,2.3-2.4,5.1,6.5,8.4,6.8,3.8-2.5,1-13.4,1.2-18.7,2.4-5.7,10.9-7.8,15.4-10.8,9.4-9.2,1.6-11.5,3.1-6.5,5.7-2.1,7.1,2.1,1.2,6.6,3.8,2,39.7-4.3,57.6-14.3,33.8-14.2,30.9-18.2,26.4-20.9,9.6-7,6.2.2,2.6,1.6,4.1-3,2.2-32,4.3-1,7.2,15,15.2,28.8,4.8,2.1,26.8.7,12.1-.5,18.2,20.3,15.6,20.8,1.5,33.3-1.3,29.2-3.7,36.6-6.4,40.1-8.1,41.8-12.6,43-19.6,37-18.1,27.8-4.4,11.1,39.7-28.8,29.6-32.6,19.5-4.8,12.2-5.2,2.1-29.2,5-45.6,1-32.4-3.3-41.3-4-46.6-3.6-35.3-3.9-12.8-8.4-7.3-11.7-6-4.3-13.8-8.3-13.8-2.8-6.6,6.1,1.9,6-.8-7.2-10.5-17.4-17.2-27-19.2-29.8-14.1-24.8-6.9-17.8-2.5-3.6-.3-.8,9.3,1.2,12.1,1.8,27.2-.9,13.9-9.1,4.6-25.3,8.7-33.9,9.1-41.7,6.4-27,1.6-20.3-1.6-23.6-12.4-33.9-1.1-16-4.8-8.1,10.1-11,8.2-1.9,8.7-10.4,17.4-14.7,13.7-10.3,10.5s-7.7,16.3-8.1,17.3-10.2,25.5-10.2,25.5l-9.4,15.7-13.1,16.2-12.1,20.8-13.8,23.3-16.7,13.7-17.2,10.1-13.7,5.8-13.2,12.5-14.9,30.5-15.6,6.8-22.8,20.1-13.7,9.5-1.5,16.4s-6.4,24.3-6.6,26.4-2.4,44.5-2.4,44.5l-5.3,28.4-9,20.5-12.6,14.5,32.1,19.5,52.4,20.4h0Z"/>
|
||||
<polygon class="st12" points="1024.5 691.2 1004.2 675.8 970 652.1 936.1 647.6 922.5 645.5 920.7 634 890.1 611.5 909.7 585.5 921.2 585.5 915.1 571.1 928.8 562.1 924.8 538.4 978.2 535.5 989.4 510.6 1068.8 505.5 1128.1 574.8 1122.4 661.8 1024.5 691.2"/>
|
||||
<path class="st12" d="M1273.6,1121.1l-6.6,20s-3.7,26.8-3.5,27.7,15.2,28.1,15.2,28.1l3.2,21.2,14.4,2.6,6.2-6.7,2.6-17.2,20.3,26.5,23.6,1.8,2.7,22.6,16.4-1.6,4.1,5.4,14.3-1.9v-25.2l12.5-1.9,1.1-43.4-16.6-22.7-8.9-19.7-17.5,9.1-23.9,9.1-15.3-1.6-44.2-32.2h0Z"/>
|
||||
<path class="st12" d="M12.9,0l93.1,20.1,64.5,21.3,57.1,34.9,7.7,7.3-10.3,24,1.1,31.8-13.4-5.1-36.9-1.6-31.8-14.2-22.4-20-27-14.2-56,26-4.9-6.1,22.6-17.8,15-14.9-29,9.2-33.6,10.5-9.7-4.8,18.8-14.9s50-26.9,48.8-25.7S11.8,62.8,11.8,62.8l-5.9-7,41.5-25-22.3-11.3L12.9,0h0Z"/>
|
||||
<path class="st12" d="M403.6,1648.9l-5.4,50.8v70l5.6,58.3s9.5,33.2,9.8,34.1,8.2,38.5,8.2,38.5c0,0,1.2,47.1,1.5,47.9s16.2,24.3,16.2,24.3l41,13.5h42.4l26.1-18.5,18.8-17.6,36.3-15.3,72.5-27.3,107.4-50.3,69-26.8,31.8-13.2s-2.7-23-3.9-24.8-10.9-58.4-10.9-58.4l-4.8-6.5s-36,22.9-36.9,23.2c-.9.3-56.3,17.9-56.3,17.9,0,0-33.3,3.6-34.5,3.6s-37-.7-37-.7l-37.5-5.1-36-.3-33.9,7.3-30.4,6.4s-.7-16.5,0-18.2,8.6-28.2,8.6-28.2c0,0,16.3-26.9,16.7-27.6s4.2-32.3,4.2-32.3l6.1-32.5-.9-7.1-15.9-10.4s-23-3.7-24-3.4-26.6,3.7-26.6,3.7c0,0-16.2,4.8-16.5,5.2s-26.6,1.1-26.6,1.1c0,0-29.7,1.6-32.9.8-3.2-.8-14.1-4.4-15.6-5.5s-7.4-19.2-7.4-19.2l-1.8-14.7-.5-6.5s-7.8,12.2-8,12.6-5.3,14.9-6.2,16.5-11.6,34.9-11.6,34.9h0Z"/>
|
||||
<path class="st12" d="M692.1,1660.9l9.7,23.9,15,36.5,18.2,28.4,5.4,14.5,56.6,109.2,47.2,69.2,24.9,21.9s37.6,7,40,4.9,30.4-12.5,32.1-13.9,20.8-18,20.8-18l8.1-21,8.9-4.8,97.5-96.3,29.7-34.8,21.5-15,17.9-16.2,23.9-1.9,18.2,6.3-18.2-38.8s-.5-26.3-1.6-28.7-4-22.6-4.4-25.4-13.3-15.6-13.3-15.6l-10.5,8.8-19.6,17.7-20.4,12.5-21.8,6.9s-22.8,3.8-24.9,2.7-19,.9-19,.9l-138.2-7.4s-5.3-21.2-5.4-21.7-12.6-25.5-13.6-27.6-8.4-20.5-8.8-22.2c-.4-1.6-.4-10.4-.4-10.4l6.5-8.1-11.8-3.6s-21.7-2.7-22.9-2.5-24.3.7-24.7,2.5-21.9,9.4-23.9,10.3c-2,.9-21.9,5-22.9,8.3s-27,19.1-28.8,19.1c-1.9,0-19.2,12-20.4,12.4-1.2.4-26.4,16.9-26.4,16.9h0Z"/>
|
||||
</g>
|
||||
<g id="Shoes_and_Knees">
|
||||
<path class="st11" d="M1240.8,1541.6l25.6,12.2s14.2,24.2,15,26.1,18.2,42.2,18.5,43.4,4.1,32.2,4.6,33.9,12.3,31.4,12.9,32.6,12.9,23.7,13.7,24.9,13.9,23.4,15,25.3,22.5,47,22.7,48.7,8.1,27.2,8.5,28.8,4.7,38.4,4.7,38.4c0,0-6.6,30-7.1,31.1-.5,1.2-10.4,17.9-10.4,17.9s-32.2-2.1-34-2.7-21.2-17-23-18.2c-1.8-1.2-17.3-29.7-18.2-32.1-.9-2.4-10.6-50.3-10.6-50.3,0,0,1.5-26.3,1.5-28.2s-9.7-24.1-10.6-26.1-14.5-17.1-14.8-17.9-2.1-19.3-2.7-23.2-2.1-27.9-3.6-31.2c-1.5-3.3-19.1-21.8-19.1-21.8,0,0-23-26.1-23.6-28.2s-11.5-30.6-11.8-32.1,1.9-28.2,3.5-29.4c1.6-1.2,17.5-22.9,19-21.9s24.4-.2,24.4-.2h0Z"/>
|
||||
<path class="st11" d="M990.7,1639.8l28,25.4,13.2,25.2s7,35.8,7.3,36.7c.3.9,0,25.5,0,25.5,0,0,4.3,23,4.8,24.2s15.8,20.2,15.8,20.2l11.3,19.4,8.8,74.7v40.4s-3.9,25.5-4.3,26.7-12.2,25.1-13.1,26.3-20.9,15.4-20.9,15.4c0,0-29-12.5-28.7-13.6.4-1.1-16.2-32.9-16.6-34.6s-2.4-54.1-2.4-54.1c0,0-6-67.6-6.2-68.8s-11.7-53.7-12.1-54.9-12.4-43.2-13.6-44.9-6.3-50.6-5.4-51.8c1-1.2,11.3-31.8,11.3-31.8l15.3-7.1,7.5,1.6h0Z"/>
|
||||
<path class="st1" d="M409.1,1854.7c13.7-10.9,32.3-63.9,123.8-62.6,4.7,0,24-9.3,24-9.3l-23,15.5s-27.9,21.6-32.3,44.3c-3.5,17.8-6.6,76.3-4.2,88.6,2.3,12.3,17.7,27.2,22,28.5,6.9,2.8,30.5,3.3,38,.4-10,10.1-21.4,18.2-34.2,24.1-16.3,3-32.6,3.5-49,1.8-29.2-3-44.7-17.9-51.7-40.4-1.2-20.9-2.3-39.4-3.2-55.7l-10.1-35.1h0Z"/>
|
||||
<path class="st1" d="M993.8,1897.6c1.4,28.1,2.6,102.3,59,96.7-27.3,20.4-62.5-20-72.3-46.3,1.5-12.6-.4-18.5-3.3-32-1.1-5.3-1-1.2-1.1-2.1-.5-7.2-7.4-34.8-11.5-41.9-9.4-8.8-18.4-16.1-26.7-20.6-5.7-4.1-10.5-6.9-11.5-3.6l-3.5,21.7c-3.4,2.8-6.8,3-10.1.7-1.6-7.2,0-22.8,0-34.8-9.6-9.9-19.6-15.2-30.1-16.4-8.2-3.9-15.3-13.9-16.2-19.5-.8-5.7,0-35.1,0-35.1,0,0-4,1.2-5.7-12.1-.7-6.1-.8-10.5-.7-13.5,0-.2-.3-4.6.7-5.2,2.5-1.8,10.6-13.1,12.6-20,2.9-9.7,11.7-18.1,22.1-27,19.3-6.4,40.6-19.8,63-37.2,9.1-6,17.6-10.4,24.5-10.9-40.1,19.7-16.3,106.7-12.8,118.2,9.4,29.1,22.7,82,23.5,141.1h0Z"/>
|
||||
<path class="st0" d="M1028.9,1749c-6.4-3.5-10.6-.6-13.9,2.7s-2.1,37.6,0,43.3,10,28.8,23.3,28.8,14.3-5.4,14.6-8.8c.3-3.9-3-4.5-7-11.2-3.2-5.5-2.9-7.3-7.7-12.8s-6.8-8.8-7.3-13.3c-.4-3.6,4-25.4-2.1-28.7h0Z"/>
|
||||
<path class="st0" d="M1010.2,1834.4c7.9-2.7,13,8.8,14.8,20.3,2.5,15.7,2.8,54.4,5.8,64.2,4.2,13.9,13.6,21,20.8,34.6s-3.5,26.9-10.8,28.1-14.1-3.8-21.3-13.8c-7.3-10-13.4-36.8-13.7-43.5-.3-6.7-7.6-57.5-6.4-64.8s1.2-21.8,10.9-25.1h0Z"/>
|
||||
<path class="st1" d="M967.9,1923s0,9.1-41.7,10.9c-30.5.9-39.1-7.3-53.7-27.6-7.5-10.6-11.9-21.3-12.3-34.2,0-17.3-2.4-37.1,7.2-46.9,9.7-9.9-81.3,33.4-81.3,33.4l66.9,96.7c7.1,5.4,13.4,8.8,19.2,10.5,21.9,3.4,41.1,2.5,58.2-1.8,28.8-21.7,36.7-33.1,37.5-40.9"/>
|
||||
<path class="st0" d="M1327.4,1745.6c-8.1,7.1-6.4,15.2-3.2,26.4,4.3,15.2,16.7,40.1,18.1,50.2,2,14.4-7.1,31.7-7.9,47.1-.8,15.4,9,27.9,16.3,28,11.5.2,19.9-19.8,22.4-31.9,2.4-12.1-1.5-35.5-4-41.7-2.5-6.2-17.1-55.5-21.2-61.6-4.1-6.1-12.7-23.3-20.4-16.5h0Z"/>
|
||||
<path class="st0" d="M1258.1,1646.1c5.8-.7,14.8-2.7,17.3,4.5s36,44.8,24.2,71.5c-11.8,26.7-18.5-26.1-22.7-34.8-4.2-8.8-15.1-19.4-20.6-23.3s-6.7-16.9,1.8-17.9h0Z"/>
|
||||
<path class="st6" d="M1233,1540.6s-30.3.4-32.7,40.7c-2.4,40.3,36.7,71.8,36.7,71.8,0,0,27.9,17,20.6,74.5,31.8,36.3,24.2,58.1,25.7,81.5-.6,11.7,13.4,110.2,85.5,90.4-12.2,18.1-21.1,14-21.1,14-19.1-2.3-35.9-16.7-51.6-36.5-.2,5.4-31.8-52-31.8-63.7,0-1.2-2.8-15.4-2.8-15.4-3.9-4.9-8.6-5.6-13.7-4l-1.6,8.1c-6.4,0-12.4-.9-17.5-3.3l-4.7-7.2c-5.1,2.6-9.1,3-12.4,2.4-3.5-5.7-.4-20.8-2.4-27.5-6.4,1-13.1,1-19.9-.8,0,1.9-8.1-5.6-13.9-16.2-1.5-6.7-16.8-16.3-16.7-35.7,0-19.4,3.4-47-1.8-54.3s-12.5-9.3-12.5-9.3l1.6-20.3c11.7-5.2,18.1-18.8,21.8-36.3,15.1-21.7,31.3-38.9,48.5-51.7,5.8-1.4,11.3-1.6,16.7-1.2"/>
|
||||
</g>
|
||||
<g id="Base_Lines">
|
||||
<path class="st8" d="M1398.5,1173.5c-1.7-4.3-14-14.8-23.8-27.9-2.1-2.9,2.1-8.1,0-10.9-13.3-17.8,2.1-32.7,16.3-43.6,3.2-.2,1.5-25-1.8-27.5-3.2-2.4-55.7-9.3-58.3-13.2-2.6-3.9-1.1-35.7,2.2-49.8-1.2-10.3-2.8-34.3-5.2-36.3s-61.4,1.6-63,0-2.4-22.6-5.7-25c-3.2-2.4-38.6-5.7-44.4-8.9s-27.2-23.4-29.1-25c-1.9-1.6-3.2-27.1-6.5-29.9-3.2-2.8-38.4-.5-39.6-3-1.2-2.4,2.3-62.4.4-74.6-5.2-5.7-77.5-14.5-75.5-22.6,2-8.1,23.4-25.8,22.1-29.8s-34.2-33.2-34.2-33.2c22.9-9.3,38.6-.4,52.4,17.9,2.7-7.6,1.9-17.7-6.3-26.8,19.4,3.6,36.8,11.2,50.9,25,0,0-.9-39.7,0-43.8,3.4,2.6,11.7,15.5,17.8,17.1s14.5,2.4,23.4,0,14.5-11.3,14.5-11.3c0,0-19.8,0-22.6-7.3-2.8-7.3-4-21-2.4-22.6s19.1,10.9,21.8,12.1c-2.5-3.5-22.6-24.6-21.8-27.5.8-2.8,34.7-1.5,34.7-1.5-41.6-19.4-24.6-35.3-50.1-52,0,0,23.4-1,39.7-8.6,0,0-30.4-9-38.6-20.6-8.2-11.6-36-30.7-44.7-36.9,4,0,21,3.6,37.7,2.3-18.6-28.2-13-27-77.3-29.8-1.6-3.2-3.2-14.1,5.7-35.5,0,0-24.2,11.3-25,17.8s0,16.1,0,16.1c-29.1-4.9-27.1,9.3-31.2,11.3-4.2,2-36.6-.7-41.5,2.6s-4,23.3-12.9,25.7-49.9-.3-52.4,2.6,7.1,20.9,4.7,23.3c-2.4,2.4-13.3,6.5-13.7,9s8.1,13.6,5.7,15.2c-2.4,1.6-3.6-4-6.5-3.2s-22.7,23.4-24.2,28.3c1.2,7.3,27.8,20.5,30.7,22.6,2.9,2.2,2,10.1,0,11.3s-14.9,1.6-17.8,0c-2.8-1.6-6.5-10.5-6.5-10.5,0,0-32.3-47.7-40.4-50.9-42-4.4-88.4-29.9-91.3-33.9-2.8-4,.8-48.5-3.2-51.7s-9.7-4.4-31.5-16.1c-1.6-77.5-74.3-95.3-74.3-95.3,0,0-22.6-49.8-27.3-51.3-4.7-1.5-58.7,3.6-69.2-1.8-20.6-30.1-99.3-84.7-105.8-100.4s-3.9-27.5-9.6-38.8c-3-13.1-83.3-119.1-87-120.3-4.8-1.6-17.4,0-28.3-5.7-10.9-5.7-38.8-22.6-55.7-25-17.8,7.7-37,38.8-37,38.8,0,0-31.9-24.4-57.9-37.6C152.1,31.7,62.5,5.7,12.9,0c-2.4,10.9,17,27.1,37.1,29.9C23,40,.7,53.8,5.7,61.1c5,7.3,50.3-10.8,59-11.8-5.7,4.5-42.4,18.6-59,30.7-8.1,6.1-6.7,13.9,7,10.5,0,0,56-18.8,64.9-20.2-5.2,5.4-39.6,29.1-39.6,29.1-11.3,11.5-4.8,12.2,8.1,8.9,17.8-4.8,34.4-19.9,51.7-22.6,13.4,4.1,21.8,9.7,27.5,16.2,29.5,24.7,56.7,35.1,90.5,32.3,5.7,1.6,10.5,4,10.5,4,0,0,0,9.1,4,15.6s60.4,47.1,64.9,53.6,5.5,22.6,6.6,28.4c1.1,5.8,42.8,61.9,54,71.1,2,6.5,6.7,21.8,12,28.3s23.3,24.4,45.1,26c8.5,2.4,29.5,14.9,29.9,38,9.7,22.6,152.2,176.9,193,194.6,3.2,46,40.7,88.6,46,100.2,5.3,11.5.8,10.1-4.8,21-5.7,10.9-125.2,76-131.6,80-6.5,3.9-65.8,36.3-80.6,60.4-15.1,1.3-62.3,21.5-68.8,23.6-6.5,2.1-56.8,21.2-60.6,22.6s-66.9,25.8-66.9,25.8c-2.8,1-.4,22.7-.1,26.7s-15.5,5.5-16.7,10.8,26.1,63.7,31,68.9c4.8,5.2,19,18.6,21,23.8s1.5,8.8,3.5,15.2,23,45.6,93.7,122.6c.4,4-24.6,25.8-8.9,38.1s71.9,42,71.9,42c0,0-11.8,50.4-23.8,74.5-2.9,5.8-4.4,12.3-4.5,18.8-.3,26.3-1.4,48-1.6,55.2-.2,8.1-11.9,37.2-13.7,42.8-1.8,5.6-29.1,60.4-32.3,67-3.2,6.7-11.8,47.1-12.9,51.7-1.1,4.6-4,56.4,0,59.6s26.2-.7,29.1,1.8c-12.5,100.6,3,188.4,5.4,203.4,2.4,14.9,8.2,29.6,10,39.7,1.7,10.1,2.5,42.4,3.2,55.7.8,13.3,20.2,39.2,51.7,40.4s36.5,1.9,49-1.8,29.4-20.1,34.2-24.1,12.1-13.7,22.6-17c137.3-46.4,202.3-84.8,206-84,3.6.8,60.8,88.4,67.2,96,5.5,5.8,14.1,7.9,19.2,10.5,5.2,2.6,47.2,3.5,58.2-1.8s32.1-28.6,34.7-31.2c2.6-2.6,2.4-14.1,4.8-16.2,2.4-2,7.7-1.6,9.7,0,2,1.6-.3,25.6.8,31.5,0,13.4,67.6,112.4,99.3-4,3.6-31.1-3.7-98.5-5.2-106.7-1.1-6-1.7-8.7-2.8-15.2,25-38.4,73.9-69.9,80.8-73.1s16.7-1.6,21.1.4,11.2,14.1,15.6,16.2,17.5-1.2,19.9.8-.8,25.4,2.4,27.5,9.7-1.8,12.4-2.4,5.2,8.9,5.2,8.9c0,0,15.1,1.4,17,1.6s-1.6-6.1,1.6-8.1c3.2-2,10.5-.8,13.7,4-.4,12.9,16.6,61.4,40.4,85.6,8.9,8.5,52.1,63,74.3,0,25-56.1-39.6-159.9-39.6-159.9,0,0-32.3-47.7-35.5-83.2.8-11.2-25.6-88.2-44.2-94.2-18.6-6.1-26.2-6.8-40.7-4.3-12.1,5.2-46,46-48.5,51.7-2.4,5.7-6.9,32.3-21.8,36.3-1.6,8.1,0,17.5-2.4,22.8s-40.4,32.4-53.7,36.1-52.8,7.7-56,5.2-18.7-52.8-50.8-55.7c-17-.8-75.8,51.8-87.5,48.2-2.8-29.1-28.3-53.7-29.1-79.2,3.6-8.5,5.9-4,5.5-8.9-1.2-38.8-37-81.6-37-87.2s11.2-15.6,9.2-23.3c-2-7.7-25.4-26.9-26.2-31s15.1-77.4-20.1-128.3c1.2-4,6.9-6.1,6.5-9.7s-15.3-25-17-39.6c-1.6-14.5,13.7-68.5,14.5-72.7.8-4.2,1.6-18.6,1.6-18.6,0,0,11.3-2,12.9,0,1.6,2,3.9,10.8,10.4,12.8s40.7,0,49.5-4.8c8.9-4.8,63.8-66.8,75.1-74,11.3-7.3,59.2-17.1,100.8-75.2,28.3,4,76.3-41.6,82.4-42.8,40.4,26.6,88.4,19.8,76.7,38,1.2,14.1-21,30.3-21,35.5s34.7,19.4,34.7,19.4c0,0,26.2,6.7,35.9,17.6,1.2,6.5,14.5,9.4,11.3,15.5-4.3,8.2-10,20.9-10,24.6,0,6.5.3,14.2,2.6,19,2.2,4.8,11.9,20.4,13.7,23.4s.1,21.5,2.6,23.6,15.8,1.1,18.2-.9c2.4-2,2.8-22.2,5.7-22.6s17.6,23,21,27.5c5.3,2.1,20.8.7,22.9.8,2.1,0-.3,16.6,2.7,22.6,4,3.2,15.3-2.6,16.4-1.6,1.1,1-.4,3.8.8,4.8,1.2,1,14.3.7,15.9-1.8,1.6-2.4,1.8-21.7,1.8-24.9s9.4,3.2,11.8,0c2.4-3.2,2-45.6,0-50.9h0ZM738.9,1771.4c-2,2.4-55.6-2.7-66.9-3.5-46.4-10.5-107.4,14.5-109,12.5-.8-5.6-.6-21.8,1.8-26.9s23.2-44.8,25.6-54.7c2.4-9.8,3.8-27.9,3.8-27.9,0,0,9.3,1.2,19,.4,14.1.4,15.7-6.4,16.6-17s1.2-33.9,2.8-56.9c22.6,19.3,38,74.7,40.4,75.9,2.4,1.2,21.1-10.1,24-8.5,11.3,56.1,40.1,85.6,42.1,90.5s2,13.6,0,16h0Z"/>
|
||||
<path class="st7" d="M403.8,1646.8c3.6-19.2,20-57.9,25.4-62.6,2.8,41.2,11.5,45.4,19.8,46.4,6.7.8,62.1-1,68.8-2s3.9-9.3,61.2-6.1c16,5.1,49.8,39.4,45,45s-28.8,4.5-30,3.5,2.2-28.7,3.2-38"/>
|
||||
<path class="st7" d="M672.8,1673.4c91.9-59.8,152.2-98.5,201.1-75.1"/>
|
||||
<path class="st7" d="M895.7,1686.3c-3.2,2.1-20.4,20.2-21.8,25.6-1.4,6.7-2.4,12.1-12.9,21.4-27.7,19.4-75.9,36.6-122.1,38"/>
|
||||
<path class="st7" d="M976.2,1914.8c-1.4-17.9-7-36.4-15-46.3-7.9-9.6-19-13.9-23.2-17.1s-10.6-7.3-11.5-3.6c-.9,3.6-1.7,18.7-3.5,21.7s-8.3,2.8-10.1.7,2.1-29.7,0-34.8c-2.1-5.2-21.8-18.2-32.7-14.8-33.9,11.9-65.9,24.6-94.3,38.7"/>
|
||||
<path class="st7" d="M1071.8,1822c-2.6-12.7-7.6-20-28.3-47.2-2.1-2.9-6.3-23.7-3.5-30.6,1.5-10.6-6.1-50.3-6.1-50.3"/>
|
||||
<path class="st7" d="M789.7,1288.4c-16.4-14.4-55.6-15.9-92.9-14.5-3.7.1-7.4-.3-10.9-1.3-24.5-7-49.8-15.6-82.2-17.8-55.3-2.2-96.9-6.8-112.7-12.5-29.1-10.6-59.2-25.8-90.5-47"/>
|
||||
<path class="st7" d="M798,1328.6c-8.2,9.7-105.8,8.5-121.5,2.8-51.7-19.4-154.3-32.3-174-39.6-19.8-7.3-38.8-16.6-38.8-16.6"/>
|
||||
<path class="st7" d="M920.7,645.3s44.5,3.6,46.7,5.1,47.7,31.5,47.7,34.7.1,4,1.8,6.9c1.6,2.8,32.9,18,35.5,20.3"/>
|
||||
<path class="st7" d="M236,82.4c-8.9,16.1-13.1,34.3-9.8,55.7"/>
|
||||
<path class="st7" d="M1374.6,1134.7c-25.4,19.5-37.2,20.9-54.1,19.9-11.4-5-44.2-35-59.4-40.2"/>
|
||||
<path class="st2" d="M374.8,1645s-.8-12.4,34.3-17"/>
|
||||
</g>
|
||||
<path id="hair" class="st1" d="M1030.8,508s-9.8,39,0,54.4,5.9,3.3,3.8,17.1c-2.1,13.8-14.8,36.5-14.8,36.5,0,0,21-18.8,32.6-16s25.2,17,26.4,27.9c1.2,10.9-29.6,29.7-49.8,30.9s8.6,7.9,5.9,17c-2.7,9.1-11.8,8.6-19.8,9.5-1,12,37.3,27.2,37.3,27.2,0,0,25.9-16.9,52.4,17.9,6.8-10-7.6-28.2-6.3-26.8s45.6,11.8,50.9,25,0-43.8,0-43.8l17.8,17.1c21.8,3.7,32.8-1.4,38-11.3-8.1.7-15.8-1.2-22.6-7.3-2.6-6.6-3.4-14.2-2.4-22.6l21.8,12.1-21.8-27.5c10.3-1.8,21.8-2.4,34.7-1.5-42.9-24.8-22.9-34.5-50.1-52,16.7-1.2,30-4.1,39.7-8.6-50.4-19.9-27.1-21.7-83.3-57.5l37.7,2.3c-17.3-29.8-22.9-28.9-77.3-29.8-2.4-11.3,0-23.2,5.7-35.5-10.5,4.4-19.2,10-25,17.8v16.1c-14.9-3.9-25.2,0-31.2,11.3h0Z"/>
|
||||
<g id="Details">
|
||||
<path class="st0" d="M319,86.4c12.9,34.7,1.6,74.3,6.5,105.8,4.8,31.5,48.5,110.6,48.5,110.6"/>
|
||||
<line class="st0" x1="378.8" y1="208.4" x2="437" y2="358.6"/>
|
||||
<path class="st0" d="M443.4,228.6c-5.7,14.5-8.9,38,0,60.6,8.9,22.6,12.9,41.2,40.4,42.8"/>
|
||||
<path class="st0" d="M596.1,382c0,25,0,34.7,4,46.8s17.8,54.1,19.4,71.9c1.6,17.8,16.2,92.9,16.2,92.9"/>
|
||||
<path class="st0" d="M683.9,700.2c3.4,12.9,10.7,37.1,11.5,50s89.7,5.7,89.7,5.7"/>
|
||||
<path class="st0" d="M695.4,750.3c-7.3,17-31.5,29.1-42.8,39.6s-36.3,38.8-46.8,42.8c-10.5,4-8.9-1.6-17.8,0-8.9,1.6-1.6,13.7-12.9,21-11.3,7.3-41.2,26.7-52.5,27.5"/>
|
||||
<path class="st0" d="M434.5,920.7c-21,6.5-150.2,64.6-150.2,64.6-5.7-4-12.9-22.6-16.2-31.5"/>
|
||||
<path class="st0" d="M903,645.3c3.2,7.3,21,25.8,21.8,33.5.8,7.7-2.4,10.9,0,14.1s19.4,13.7,23.4,19.4,24.2,51.7,29.1,55.7c4.8,4,50.1,1.6,59.8,0"/>
|
||||
<path class="st0" d="M1052.4,770.3s-10.5-15.9-11.3-20,8.9,3.2,11.3,0c2.4-3.2-46.8-66.2-127.6-71.5"/>
|
||||
<path class="st0" d="M1172.7,904.6c-5.7,8.1-50.1,62.2-55.7,80.8"/>
|
||||
<path class="st0" d="M1205.8,967.5c-18.6,8.9-64.6,26.9-101.8,32.5"/>
|
||||
<path class="st0" d="M1022.5,782.6c15.3,3.2,26.8,16.2,30,21s11,75.2-21.1,208.4c-9.7,40-53.2,98-53.2,98"/>
|
||||
<path class="st0" d="M1055.7,782.6c8,4.8,21,7.3,23.4,21.8s12.9,131.6,11.3,148.6c-1.6,17-2.4,63.8-10.5,63.8"/>
|
||||
<path class="st0" d="M924.8,693s4,48.5,0,50.1c-4,1.6-88.8,36.7-155.9,27.2"/>
|
||||
<path class="st0" d="M949.8,724.5s-1.6,29-4,33.4-4.8-2-12.1,0-58.2,69.8-195.4,78.7c-11.2.7.8-8.9-11.3-10.5-12.1-1.6-11.3,11.3-12.1,18.6-.8,7.3-32.9,25-37.8,30.7s2.3,42.8-6.6,38.8c-8.9-4-14.5-17.8-16.2-9.7s-6.5,68.7-31.5,80.8-25.2,6.5-27.5,19.4c-2.3,12.9-47.6,26.6-61.3,29.9"/>
|
||||
<path class="st0" d="M676.3,771.9s-5.1,23.6-26.9,38.2-17,46-43.6,75.9c-26.7,29.9-17.8,46.8-50.1,67-32.3,20.2-32.3,14.7-46,30.8"/>
|
||||
<path class="st0" d="M496.7,904.6c-4.8,17.8-13.7,28.3-12.9,45.2s4.8,46.8,12.9,62.2"/>
|
||||
<path class="st0" d="M446.6,1057.2c-12.1,22.6-12.1,54.1-12.1,67.8s36.3,78.9,70.3,70.1"/>
|
||||
<path class="st0" d="M434.5,1125s.8,53-27.9,74.2"/>
|
||||
<path class="st0" d="M789.7,1130.7c-26.5,0-91.1,9.6-116.9,24.2"/>
|
||||
<path class="st0" d="M695.4,1173.5c-46,10.5-99.3,12.9-99.3,12.9"/>
|
||||
<path class="st0" d="M463.6,1142.8c23.4,32.3,48.5,62.2,70.3,68.7"/>
|
||||
<path class="st0" d="M630.8,1591.4s-7.7-22.2-6.2-31c1.4-8.9,32.1-15.3,36.1-21"/>
|
||||
<path class="st0" d="M562.5,1431.1c23,28.3,64.2,68.7,80,68.7s43.2-3.2,48.8-8.1.8-8.1,4-8.9c3.2-.8,36.3-12.1,55.7-13.7"/>
|
||||
<path class="st0" d="M642.5,1499.8s18.2,8.9,18.2,24.2"/>
|
||||
<path class="st0" d="M756,1431.1c-29.1,9.7-53.3,22.6-60.6,31.5"/>
|
||||
<path class="st0" d="M540.3,1388.3c38.8,0,64.6-1.6,96.1,48.5"/>
|
||||
<path class="st0" d="M808.5,1484.4c2.4,25.8,2.4,37.2,12.1,48.5"/>
|
||||
<path class="st0" d="M533.9,1299c-16.2,28.8-23.4,20.7-24.2,74-.8,53.3,29.9,4,12.1,111.4-7.6,27.5-12.1,27.5-23,39.6-.4,25.8,10.9,12.9,10.9,23.4s1.2,57.7-4.8,80.6"/>
|
||||
<path class="st0" d="M457.5,1299s-6.8,49.8-3.5,74c3.2,24.2,4.8,38.8,15.8,53.3,10.9,14.5-16.6,39.6-24.6,44.4s-13.7,10.5-17,25.8c-3.2,15.3-25,28.3-27.5,42.8s-4,88.6-4,88.6"/>
|
||||
<path class="st0" d="M808.5,1094.3c23.4-.8,38.1,23.3,39.3,32.2"/>
|
||||
<path class="st0" d="M1011.2,1004.7c-19.4,24.2-36.3,39.6-41.2,55.7-4.8,16.2-16.4,48.5-22.4,64.6"/>
|
||||
<path class="st0" d="M1255.9,1069.3c21.8.8,63.9-17.1,70.5-25.2,6.6-8.1-28.8,42.1-68.8,39.7,9.3,21.9,26.8,23.4,66.2,21.8"/>
|
||||
<path class="st0" d="M700.4,964.3c40.2-6.5,104.8-19.2,136.3-18"/>
|
||||
<path class="st0" d="M428.9,1656.5c-.8,25,.4,67.4,2.4,80"/>
|
||||
<path class="st0" d="M440.2,1679.1c-.4,20.6-1.2,42.3,0,49.8"/>
|
||||
<path class="st0" d="M594.9,1854.7c27.1-4,75.9-28.3,90.5-37.6"/>
|
||||
<path class="st0" d="M506,1939.5c9.3-1.2,43.2-10.9,53.7-16.6"/>
|
||||
<path class="st0" d="M657.8,406.2c.8,13.3,10.5,45.2,32.7,55.3"/>
|
||||
<path class="st0" d="M697.8,483.8c6.1,20.6,15.3,68.3,13.3,135.3"/>
|
||||
<path class="st0" d="M516.1,446.7c20,.3,43,16.4,51.2,26.4"/>
|
||||
<path class="st0" d="M106,43.6c-15.8,0-32.5-.1-41.4,2.2"/>
|
||||
<path class="st0" d="M101.8,63.6c-12.1,1.8-16.4.2-24.2,6.7"/>
|
||||
<path class="st0" d="M126,58.2c18.2,1.8,23,5.5,23,5.5"/>
|
||||
<path class="st0" d="M57.6,29.1c32.9-.6,34.5-1.3,55.7,1.8"/>
|
||||
<path class="st0" d="M1337.5,1203c2.4,4.8,10.6,17.8,11.6,22.2"/>
|
||||
<path class="st0" d="M1360.5,1206.6c5.4,6.7,5.1,2.2,7.7,39.6"/>
|
||||
<path class="st0" d="M1380.5,1194.2c4.5.6,5,5.2,6.1,30.2"/>
|
||||
<path class="st0" d="M992.6,536.7c11.3,4.4,18.6,15.3,17.8,21.8"/>
|
||||
<path class="st0" d="M982.5,553.2c4.4-6.5,19-11.2,19-11.2"/>
|
||||
<path class="st0" d="M1016.9,544c1.2-18.6-10.1-25.8-28.3-31.5"/>
|
||||
<path class="st0" d="M1040.3,611.8c11.3-3.2,31.1-.5,28.3,16"/>
|
||||
<path class="st0" d="M999.9,636.5c8.5,15.3,14.3,22,29.1,22.3"/>
|
||||
<path class="st0" d="M1043.5,619.2c-3.2,7.5-1.2,9.9-10.5,10.3s-12.9-2-13.7,0,.8,10.1,3.6,11.7c2.8,1.6,26.2,2,29.4,0s4.9-8.6,3.3-10.3-.9-6.2-3.3-5.8"/>
|
||||
<path class="st0" d="M1140.6,1665.8c-.6,10.9-4.8,36.9,10.9,44.8"/>
|
||||
<path class="st0" d="M965,815.7c-17.6,26.2-81.1,111.7-136.8,145.6"/>
|
||||
<path class="st0" d="M954.6,724.5c1.9,30.8,4.3,70.8,3.1,82.9"/>
|
||||
<path class="st0" d="M720.2,1004.7c32.7-4,100.4-18,116.5-24"/>
|
||||
<path class="st0" d="M862,967.5c35.1-28.1,71.2-89,94.2-123.6"/>
|
||||
<path class="st0" d="M491.8,1195.2c.7,13.9.3,38.9-.7,47"/>
|
||||
<path class="st0" d="M531.2,1043.1c-15.8,4.8-17.8,7.9-21.6,18.8-3.8,10.9-6.2,38.8-25.9,56.3"/>
|
||||
<path class="st0" d="M472.2,1087.3c-.9,21.8-.3,40.2,0,43.4"/>
|
||||
<path class="st0" d="M483.7,1016.8c-17.3,12.9-22.8,22.6-40.3,32.3"/>
|
||||
<path class="st0" d="M289,996.4c0,15.1,1.3,38.8,2.8,46.6"/>
|
||||
<path class="st0" d="M420.6,951c-4.4,23-9.3,48.7-9.9,61"/>
|
||||
<path class="st0" d="M1305.5,1195.6c-10.6-1.8-35.3-16.3-37.1-19.3"/>
|
||||
</g>
|
||||
<g id="Invers_Details">
|
||||
<path class="st4" d="M445,1848.3c6.5-3.6,50.9-38,74.4-40.7"/>
|
||||
<path class="st4" d="M454.7,1857.2c14.5-1.6,17.8-4,20.6-5.7,2.8-1.6,28-21.1,28-21.1"/>
|
||||
<path class="st4" d="M467.2,1865.2c2.8-4,10.8-15.5,16-19.3"/>
|
||||
<path class="st4" d="M877.4,1750.2c7-13.3,11.2-18.5,17-21.4s19.4-1.3,21.2,2c1.8,3.3,16.3,24.8,16.7,27.1"/>
|
||||
<path class="st4" d="M961.9,1750.9c-6.7,6.7-31.5,53.9-33,58.4-1.5,4.5-14.2-25.6,12.1-61.9"/>
|
||||
<path class="st4" d="M856.2,1837.2c-5.2,6.1-7.3,10.7-7.6,28.1-.3,17.4-2.4,24.3,7.6,33.7"/>
|
||||
<path class="st4" d="M1215.5,1651.2c-4,61,10.1,92.8,8.1,96.2-10.2,0-27.1-21.9-17.8-91"/>
|
||||
<path class="st4" d="M1167.9,1651.2c6.1,1.6,23.7,11.7,29.5,27.9"/>
|
||||
<path class="st5" d="M1036.2,556.1c-1.5-29.7,11-35.7,24.3-45.4"/>
|
||||
<path class="st5" d="M1132.2,616.9c-21.2-7.9-37.2-11.2-48.8-44.2-.7,18.8-2.5,43.9,10.2,55.1-43.3-30.9-42.7-88.4-35.5-96.6"/>
|
||||
<path class="st5" d="M1177,636.4c-34.5.3-67.7.8-82.2-28.8"/>
|
||||
<path class="st5" d="M1156.4,674.2c8.5,12.7,13.9,18.8,24.8,21.2"/>
|
||||
</g>
|
||||
<g id="Text">
|
||||
<g id="V.2">
|
||||
<g id="Fill">
|
||||
<path class="st13" d="M888.9,812l-3.2,6.3-17.8,19.6-21.5,27-7.6,7.6,11.2,4.8,29,13.8,10.6,6.8,2.5,2.5,7.8,2,7.6-9.2v-4.8c-.1,0-13.2-7.5-13.2-7.5,0,0-16.7-6.1-17.3-6.7s-14.4-6.6-14.4-6.6l-1.7-2.8,10.5-14.4,12.3-15.5,11.5-12.7,6.3-7.3-12.4-3h0Z"/>
|
||||
<path class="st13" d="M938.1,832.3l5.3,2.2,8.3,6.3-2.3,6.3-8.8,25-6.6,24.5-4.9,22.8s9.9-3.9,10.2-4.6,33.1-20.6,33.1-20.6l23.3-13,5.5,5.7,3.1,4.1-77.4,41-12.3-9.3,8.6-42.2,14.8-48.2h0Z"/>
|
||||
<path class="st13" d="M1039.2,922.8s-3.1-10.7-3.1-11.3-7.3-15.7-7.7-16.3c-.4-.6-10.2-2.2-10.7-2.4s-10.7,5.7-11.6,6-9.6,11.7-9.9,13.1-1.3,13.5-1.2,14.5,4.6,16,4.7,16.6-1.7,9.4-2.1,10-6.2,2.7-6.2,2.7l-10-6.9-10.6-13.3-8.8,3.2,2.4,8.6,7.9,15.3,9.9,5.3,15.7,3.2,9.2-3.7,4.1-8.2s-1.5-15.7-1.6-16.2-1.8-17-1.8-17l1.1-11.9,5.9-8.2,8.1,1.6,6.2,9.3,1.4,10,1.6,5.5,7.2-9.8h0Z"/>
|
||||
<path class="st13" d="M832.6,886.8l-6.1,1.9.8,8.7,12.3-1.2,12,3.9s4.3,2.1,5.3,3.6-1.4,9.7-1.4,9.7l-13.7,5.4-13.7,1.3-21.6,3.1-13.3,5.5-5.9,5.8.3,3.3,11.3,5.5,21.8,13.3,12.1,7.4,4.1-.4,4.5-9-6.5-6-13.8-8.3-9.3-5.8s8.2-1.2,9.2-1.7,17.9-4.8,17.9-4.8l18.2-6.4s8-9.9,8.1-10.5.4-10-.3-11.2-9.2-9.1-9.2-9.1l-15.8-3.5-7.2-.6h0Z"/>
|
||||
<path class="st13" d="M904.1,925.7l-5.1-3.4-10.6-2.2-12.5,6.9-10.6,11.5s-10.2,16.5-10.7,16.8c-.5.2-6.2,16.8-6.2,16.8l7.2,10.1,13.4,3.9s13.9-3.6,15.2-4.6c1.2-1,14.6-12.2,14.6-12.2l9.9-15.6,2.2-17.8-6.7-10.3h0ZM899.2,951.1l-6.9,9.6-10.8,8.1s-10.3,4.3-11.1,4.1c-.8-.1-7.4-2.7-7.3-3.6s1.9-10.5,1.8-11.4,7-12.8,7-12.8l10.3-8.3,8.7-4.4,8.6,5.5-.5,13.2h0Z"/>
|
||||
<polygon class="st13" points="926.3 953.5 922.1 964.5 936.7 959.7 920.6 978 896.9 1008.2 907.2 1015.3 916.9 1006.3 953.6 961.9 953.3 958.8 939.5 949.8 926.3 953.5"/>
|
||||
<path class="st13" d="M992.6,980.2l-9.1-7.2-7.7-1.9h-6.3c0,0-11,7.8-11,7.8l-6.4,12.6,3.3,11-14.5,1.4s-12.2,4.8-13.4,5.1-7,8.6-6.7,8.8c.3.2,1.6,11,1.6,11l9.4,7.8,9.9,3.7,11.4-1.5,8-9.8s3-11.3,3.5-12.2-1.1-8.6-1.1-8.6l3.9-3,12.3-1.2,10.4-5.4,4.2-10.2-1.8-8.2h0ZM952.2,1022.3l-3.4,7-5.3,1.6-6.2-3.1-4.6-7.3s3.6-4,5.7-5,8.9-4,8.9-4l3.9,1,.9,9.8h0ZM978.1,989l-6.4,4s-5.4,0-5.4-.8c0-.7-.7-7.6-.7-7.6l3.4-6.1,4.8-.5,5.1,4.5-.7,6.4h0Z"/>
|
||||
</g>
|
||||
<g id="Lines">
|
||||
<path class="st3" d="M886.3,817.7c-17.2,16.9-30.4,37.7-47.7,54.5-.3.3-.2.7.2.8,19,6.1,37,15.2,53.2,26.7"/>
|
||||
<path class="st3" d="M899,817.8c-14.3,14.9-27.3,31.2-38.7,48.4-.2.3,0,.7.3.9l27,11.2c7.3,3,14.8,6.2,20.9,11.3"/>
|
||||
<path class="st3" d="M907.4,893.4c-2.5,3.1-5,6.1-7.6,9.2"/>
|
||||
<path class="st3" d="M888.7,811.9c4.2.8,8.4,1.9,12.5,3.1"/>
|
||||
<path class="st3" d="M938.1,832.3c-9.1,29.4-18.3,58.9-23.4,89.2-.2,1.1.3,2.1,1.3,2.7,3.3,1.9,6.5,4.2,9.3,6.9.4.4.9.8,1.5.8.3,0,.7-.2,1-.3,26.4-14,50.3-26.7,76.7-40.7"/>
|
||||
<path class="st3" d="M941.1,833.7c3.2,2.4,6.4,4.8,9.6,7.2.7.5,1.3,1,1.6,1.8"/>
|
||||
<path class="st3" d="M949,846.2c-8.4,23.7-15,48-19.9,72.7,1.2.7,2.7,0,3.8-.7,21.1-12.5,42.2-24.9,63.2-37.4"/>
|
||||
<path class="st3" d="M997.5,882.9c1.8,1.9,3.7,3.7,5.5,5.6"/>
|
||||
<path class="st3" d="M1037.5,918.3c-1.1-6.8-3.6-13.3-7.3-19-1.5-2.3-3.3-4.6-5.8-5.8-3.2-1.5-7-.9-10.3.3-12.8,4.7-21.2,19.2-19,32.6.8,4.9,2.8,9.5,3.9,14.4.7,3,1,6.3,0,9.3-1,3-3.6,5.6-6.7,5.8-3.6.2-6.6-2.6-9-5.3-4.4-4.8-8.7-9.8-12.8-15"/>
|
||||
<path class="st3" d="M1029.7,928.7c1.2-6.7-1-13.9-5.6-18.9-2.3-2.5-5.8-4.6-9.1-3.5-2.6.8-4.3,3.4-5.3,6-1.8,4.6-2,9.7-2,14.6,0,6.3.6,12.6,1.6,18.9.7,4.2,1.5,8.4,1.2,12.6s-2,8.6-5.5,11c-4.6,3.2-10.9,2.3-16.3.8-4.4-1.2-9-2.4-12.5-5.3-6.4-5.4-10.3-12.2-13.1-20.6-.8-2.4-1.3-2.5-2-5.5"/>
|
||||
<path class="st3" d="M1039,921.7c-2.8,4.2-5.6,5.3-8.3,9.4"/>
|
||||
<path class="st3" d="M831.9,886.8c8.2-.5,16.6,1.2,24,4.9,2.9,1.5,5.8,3.3,7.7,6,4,5.6,2.8,13.7-1.3,19.1-4.1,5.5-10.6,8.7-17.1,10.8-5.9,1.9-12.1,3-18.2,4.1-5.6,1-11.2,2-16.8,3,8.2,7,20.5,8.2,27.4,16.5"/>
|
||||
<path class="st3" d="M826.9,888.6c.3,2.9.5,5.9.8,8.8,9-2.4,18.9-.8,26.7,4.2,1.4.9,2.8,2,3.5,3.5.6,1.4.5,3,0,4.4-1.6,4.6-6.7,6.9-11.3,8.1-16.3,4.3-34.2,1.8-49.8,8.5-1.9.8-3.7,1.7-5.3,3.1-2.5,2.1-4.2,5.1-4.7,8.3,2.9,1.1,5.6,2.7,8.3,4.2,12.7,7.3,25.3,14.5,37.6,22.3"/>
|
||||
<path class="st3" d="M841.1,954.8c-1.1,3.5-2.7,6.8-4.7,9.9"/>
|
||||
<path class="st3" d="M883.5,922.5c-14.8,8.3-24.8,23.1-31.8,38.5-1.2,2.7-2.4,5.5-2.6,8.5-.4,7.8,6.4,14.6,14,16.1s15.5-1.2,22.2-5.2c9.3-5.6,17-13.9,21.8-23.7,3.1-6.2,5.1-13.3,3.8-20.2-1.3-6.8-5.5-10.1-10.9-13.7-5.8-3.9-10.2-4-16.6-.4h0Z"/>
|
||||
<path class="st3" d="M891.1,932.4c-13.4,4.9-24,16.7-27.6,30.5-.5,1.8-.8,3.8,0,5.6.7,1.8,2.4,3,4.3,3.6,6.6,2.3,13.6-1.7,19-6.1,4.3-3.5,8.3-7.5,10.8-12.4s3.6-10.8,1.6-16"/>
|
||||
<path class="st3" d="M926.3,953.5c3.9-1.4,7.9-2.6,12-3.5.3,0,.7-.2,1,0,.4,0,.8.4,1.1.8,3.7,3.6,8,6.3,12.8,8.2"/>
|
||||
<path class="st3" d="M952.7,962c-13.4,18.1-27.7,35.6-42.9,52.2"/>
|
||||
<path class="st3" d="M924.9,956.9c-.9,2.5-1.8,5-2.8,7.5,5.3-1.7,10.6-3.4,15.9-5.1-13.8,13.9-26.5,28.7-38.2,44.3"/>
|
||||
<path class="st3" d="M898,1007.5c3.2,2.6,6.3,5.2,9.5,7.8"/>
|
||||
<path class="st3" d="M968.2,979.5c2.2-1.9,5.7-1.2,8.1.4,2,1.4,3.7,3.6,3.4,6-.5,4.1-9,9.2-12.8,6.9-3.7-2.2-1.5-10.9,1.2-13.3h0Z"/>
|
||||
<path class="st3" d="M937.8,1016.8c-1.9.8-4,1.9-4.3,4,0,.7,0,1.4.3,2.1,1.5,4.3,5.6,7.6,10.2,8.1,1.3.1,2.7,0,3.8-.6,1-.6,1.7-1.6,2.3-2.6,1.8-3.4,4-11.7.9-15s-10,2.6-13.2,4h0Z"/>
|
||||
<path class="st3" d="M981.5,974.4c-3.1-3.4-8.4-4.3-12.8-2.9-4.4,1.3-8,4.6-10.9,8.2-2.5,3.3-4.6,7-5.2,11.1s.2,8.5,2.8,11.7"/>
|
||||
<path class="st3" d="M963.3,1006.7c2.5,9.2.6,19.6-5.1,27.3-1.5,2-3.2,3.8-5.4,5-5.4,2.9-12.1,1-17.7-1.3-6.5-2.7-13.5-6.9-14.7-13.8-.7-3.8.7-7.8,3-10.8s5.7-5.2,9.2-6.8c5.8-2.7,12.3-3.8,18.7-3.1"/>
|
||||
<path class="st3" d="M967.5,1006c2.9.6,5.9,0,8.7-.8,5.5-1.6,10.9-4.3,14.4-8.8,3.5-4.5,4.8-11.1,2.1-16.1-2.3-4.2-6.8-6.6-11.3-8.2"/>
|
||||
<path class="st9" d="M963,938.4c1.8-.5,3.5-1,5.2-1.5.6-.2,1-.8.8-1.4s-.8-1-1.4-.8c-1.8.5-3.5,1-5.2,1.5-.6.2-1,.8-.8,1.4s.8,1,1.4.8h0Z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 33 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 48 KiB |
@@ -0,0 +1,204 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 3840 2160">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: #fcb74a;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
fill: #b1e0e8;
|
||||
}
|
||||
|
||||
.cls-4, .cls-5, .cls-6 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.cls-7 {
|
||||
fill: #8cd3da;
|
||||
}
|
||||
|
||||
.cls-8 {
|
||||
fill: #37969d;
|
||||
}
|
||||
|
||||
.cls-9 {
|
||||
fill: #707173;
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
stroke: #005b8a;
|
||||
}
|
||||
|
||||
.cls-5, .cls-6, .cls-10 {
|
||||
stroke-linecap: round;
|
||||
stroke-miterlimit: 10;
|
||||
stroke-width: .46px;
|
||||
}
|
||||
|
||||
.cls-6 {
|
||||
stroke: #fff;
|
||||
}
|
||||
|
||||
.cls-11 {
|
||||
fill: #915423;
|
||||
}
|
||||
|
||||
.cls-12 {
|
||||
fill: #62b7bb;
|
||||
}
|
||||
|
||||
.cls-13 {
|
||||
fill: #f26d21;
|
||||
}
|
||||
|
||||
.cls-14 {
|
||||
fill: #fdc458;
|
||||
}
|
||||
|
||||
.cls-15 {
|
||||
fill: #56aeb5;
|
||||
}
|
||||
|
||||
.cls-16 {
|
||||
fill: #008c4e;
|
||||
}
|
||||
|
||||
.cls-17 {
|
||||
fill: #faac4f;
|
||||
}
|
||||
|
||||
.cls-18 {
|
||||
clip-path: url(#clippath);
|
||||
}
|
||||
|
||||
.cls-10 {
|
||||
fill: #f05d2b;
|
||||
stroke: #f05d2b;
|
||||
}
|
||||
</style>
|
||||
<clipPath id="clippath">
|
||||
<rect class="cls-4" width="3840" height="2160"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g class="cls-18">
|
||||
<g>
|
||||
<g>
|
||||
<path id="_Path_" data-name="&lt;Path&gt;" class="cls-3" d="M3577.55,652.97c-42.27,0-81.47,13.08-113.83,35.38,0-.47.04-.94.04-1.41,0-124.97-101.31-226.28-226.28-226.28-48.57,0-93.53,15.35-130.39,41.4-35.21-58.1-99.04-96.93-171.94-96.93-28.5,0-55.6,5.97-80.16,16.68-18.63-116.88-119.85-206.22-241.98-206.22-127.48,0-232.2,97.35-243.94,221.76-21.64-6.25-44.47-9.67-68.12-9.67-135.35,0-245.08,109.72-245.08,245.08,0,5.74.27,11.41.66,17.06-32.75-23.17-72.71-36.83-115.88-36.84-110.96,0-200.91,89.95-200.91,200.91s89.95,200.91,200.91,200.91h1636.9c110.96,0,200.91-89.95,200.91-200.91s-89.95-200.91-200.91-200.91Z"/>
|
||||
<path id="_Path_-2" data-name="&lt;Path&gt;" class="cls-3" d="M227.6,688.78c42.27,0,81.47,13.08,113.83,35.38,0-.47-.04-.94-.04-1.41,0-124.97,101.31-226.28,226.28-226.28,48.57,0,93.53,15.35,130.39,41.4,35.21-58.1,99.04-96.93,171.94-96.93,28.5,0,55.6,5.97,80.16,16.68,18.63-116.88,119.85-206.22,241.98-206.22,127.48,0,232.2,97.35,243.94,221.76,21.64-6.25,44.47-9.67,68.12-9.67,135.35,0,245.08,109.72,245.08,245.08,0,5.74-.27,11.41-.66,17.06,32.75-23.17,72.71-36.83,115.88-36.84,110.96,0,200.91,89.95,200.91,200.91s-89.95,200.91-200.91,200.91H227.6c-110.96,0-200.91-89.95-200.91-200.91s89.95-200.91,200.91-200.91Z"/>
|
||||
<path id="_Path_-3" data-name="&lt;Path&gt;" class="cls-7" d="M3641.3,819.59c-37.77,0-72.8,11.69-101.71,31.61,0-.42.03-.84.03-1.26,0-111.67-90.53-202.2-202.2-202.2-43.4,0-83.57,13.72-116.52,37-31.46-51.92-88.5-86.62-153.64-86.62-25.47,0-49.69,5.34-71.63,14.9-16.64-104.44-107.1-184.28-216.23-184.28-113.92,0-207.49,86.99-217.99,198.16-19.33-5.59-39.74-8.64-60.87-8.64-120.95,0-219,98.05-219,219,0,5.13.24,10.2.59,15.24-29.26-20.71-64.97-32.92-103.55-32.92-99.15,0-179.53,80.38-179.53,179.53s80.38,179.53,179.53,179.53h1462.73c99.15,0,179.53-80.38,179.53-179.53s-80.38-179.53-179.53-179.53Z"/>
|
||||
<path id="_Path_-4" data-name="&lt;Path&gt;" class="cls-7" d="M1967.55,949.49c-37.77,0-72.8,11.69-101.71,31.61,0-.42.03-.84.03-1.26,0-111.67-90.53-202.2-202.2-202.2-43.4,0-83.57,13.72-116.51,37-31.47-51.92-88.5-86.62-153.64-86.62-25.47,0-49.69,5.34-71.63,14.9-16.64-104.44-107.1-184.28-216.23-184.28-113.92,0-207.49,86.99-217.99,198.16-19.33-5.59-39.74-8.64-60.87-8.64-120.95,0-219,98.05-219,219,0,5.13.24,10.2.59,15.24-29.26-20.71-64.97-32.92-103.55-32.92-99.15,0-179.53,80.38-179.53,179.53s80.38,179.53,179.53,179.53h1462.73c99.15,0,179.53-80.38,179.53-179.53s-80.38-179.53-179.53-179.53Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<circle class="cls-1" cx="2073.97" cy="1000.7" r="290.82" transform="translate(-100.15 1759.62) rotate(-45)"/>
|
||||
<path class="cls-2" d="M3336.28,512.41c6.61-48.04-61.18-87.55-112.13-91.66-24.29-1.96-49.53,1.76-72.54-6.27-49.86-17.38-69.78-81.8-118.44-102.32-36.37-15.34-78.25-1.68-113.52,16.06-35.26,17.75-70.11,40.08-109.51,42.61-34.27,2.19-71.48-10.52-101.47,6.22-22.34,12.48-34.05,38.22-54.64,53.41-20.15,14.86-46.43,18.01-71.42,19.37-25,1.36-50.88,1.61-73.64,12.03-22.76,10.42-41.59,34.49-36.87,59.07l864.17-8.53Z"/>
|
||||
<path class="cls-2" d="M1297.82,860.79c6.61-48.04-61.18-87.55-112.12-91.66-24.29-1.96-49.53,1.76-72.54-6.27-49.86-17.38-69.78-81.8-118.44-102.32-36.37-15.34-78.25-1.68-113.52,16.06-35.26,17.75-70.11,40.08-109.51,42.6-34.27,2.19-71.48-10.52-101.47,6.23-22.34,12.48-34.05,38.22-54.64,53.41-20.15,14.86-46.43,18.01-71.42,19.37-25,1.36-50.88,1.61-73.64,12.03-22.76,10.42-41.59,34.49-36.87,59.07l864.17-8.53Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-9" d="M1254.7,301.74s6.56,13.47,22.53,22.31c15.97,8.84,36.45,16.93,38.26,32.17,1.81,15.24,10.77,15.55,18.56,11.62,7.79-3.94,19.72-11.59,43.62-2.68,23.9,8.91,41.38,2.21,41.38,2.21,0,0-20.32-2.64-43.53-17.53-23.21-14.88-46.62,1.61-46.62,1.61,0,0,.85-20.39-31.94-31.4-32.79-11.01-42.26-18.31-42.26-18.31Z"/>
|
||||
<path class="cls-9" d="M2291.9,850.51s11.57,9.53,29.77,10.93c18.2,1.4,40.19.26,48.17,13.37,7.98,13.11,16.26,9.67,21.71,2.85,5.45-6.82,13.12-18.73,38.56-20.56,25.44-1.83,38.55-15.19,38.55-15.19,0,0-19.59,6.04-46.88,2.15-27.29-3.89-41.73,20.83-41.73,20.83,0,0-7.7-18.9-42.1-15.29-34.4,3.61-46.05.91-46.05.91Z"/>
|
||||
<path class="cls-9" d="M1599.35,707.41s13.47,6.56,31.5,3.67c18.02-2.89,39.14-9.14,49.96,1.74,10.82,10.88,18.07,5.61,21.78-2.3,3.71-7.9,8.38-21.28,32.69-29,24.31-7.72,33.94-23.77,33.94-23.77,0,0-17.63,10.45-45.08,13.04s-35.71,30.01-35.71,30.01c0,0-11.9-16.58-44.51-5.03-32.61,11.55-44.56,11.64-44.56,11.64Z"/>
|
||||
<path class="cls-9" d="M2358.54,281.24s11.57,9.53,29.77,10.93c18.2,1.4,40.19.26,48.17,13.37,7.98,13.11,16.26,9.67,21.71,2.85,5.45-6.82,13.12-18.73,38.56-20.56,25.44-1.83,38.55-15.19,38.55-15.19,0,0-19.58,6.04-46.88,2.15s-41.73,20.83-41.73,20.83c0,0-7.7-18.9-42.1-15.29-34.4,3.61-46.05.91-46.05.91Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect class="cls-8" x="-109.46" y="1084.19" width="3975.44" height="665.26"/>
|
||||
<path class="cls-15" d="M455.1,1362.2s291.86-135.62,658.3-41.14c349.17,90.02,722.3-109.72,1129.16,27.43,406.86,137.15,1533.43-99.07,1597.44-39.64,64,59.43,0,776.89,0,776.89l-3407.75-110.95,22.86-612.58Z"/>
|
||||
<path class="cls-12" d="M505.83,1543.39s765.5,12.06,1175.66-76.5c625.65-135.08,1030.85,271.63,2068.67,78.73,348.44-64.76-102.41,560.65-102.41,560.65l-3123.63,40.56-18.29-603.44Z"/>
|
||||
</g>
|
||||
<path class="cls-14" d="M-110.85,1799s396.61-227.66,917.01-103.76c520.41,123.91,1024.29-140.43,1503.39-8.26,479.1,132.17,1406.54-65.79,1530.44,74.63,123.91,140.43-60.78,918.59-60.78,918.59l-3980.82-59.8,90.76-821.41Z"/>
|
||||
<g>
|
||||
<path class="cls-16" d="M3840,1015.31c-6.73-1.92-313.28-8.9-362.08-18.48-48.8-9.58-100.97-10.54-134.63-6.71-33.66,3.83-85.83,19.16-99.29,19.16s-205.31,2.87-215.41,8.62c-10.1,5.75-122.85,21.07-205.31,36.4-82.46,15.33-109.39,34.48-109.39,34.48h1126.12v-73.48Z"/>
|
||||
<path class="cls-16" d="M0,1000.7c21.98-38.95,366.16-42.05,379.31-4.99,4.49,12.66,204.08,5.77,215.09,13.06,8.42,5.57,20.41,12.36,30.1,17.65,10.47,5.72,22.3,8.76,34.39,8.86,42.44.34,145.81,1.23,176.17,1.23,37.4,0,163.98,36.75,204.26,40.83,40.28,4.08,90.62,13.61,90.62,13.61H0s-3.53-83.99,0-90.25Z"/>
|
||||
</g>
|
||||
<circle class="cls-17" cx="2117.73" cy="1685" r="5.89"/>
|
||||
<g>
|
||||
<path class="cls-17" d="M946.69,1949.91s372.6,69.86,710.27-5.82c337.67-75.68,523.91,28.43,523.91,28.43,0,0-465.69,23.96-582.13,76.36-116.44,52.4-652.05-98.97-652.05-98.97Z"/>
|
||||
<path class="cls-17" d="M3638.17,1894.92s-242.81-60.7-492.37,40.47c-249.56,101.17-540.24-4.93-665.28-103.17,0,0,245.61,116.11,500.15,44.66,254.54-71.45,479.92-84.48,657.5,18.05Z"/>
|
||||
<g>
|
||||
<path class="cls-2" d="M2126.41,2107c-8.16-30.1-24.27-88.19-24.27-88.19l-74.47-41.92-58.96-2.46c-3.33,10.58-5.13,21.84-5.13,33.52,0,61.6,49.94,111.54,111.54,111.54,18.5,0,35.93-4.53,51.29-12.5Z"/>
|
||||
<path class="cls-13" d="M2080.16,2119.34c16.62-.74,32.3-5.1,46.25-12.34-5.35-19.72-14.11-51.46-19.51-71l-121.56-39.17s8.01,92.21,94.82,122.51Z"/>
|
||||
<path class="cls-2" d="M2132.46,1912.27c-16.76-10.06-36.36-15.85-57.33-15.85-61.6,0-111.54,49.94-111.54,111.54,0,2.49.11,4.95.27,7.4,11.16-7.42,35.14-16.3,73.18,4.27,42.92,23.21,80.88-66.85,95.43-107.36Z"/>
|
||||
<path class="cls-13" d="M2106.62,1949.22s-3.26-26.05-52.9-32.15c-23.17-2.85-44.74,5.82-61.16,15.88-18,19.81-28.98,46.12-28.98,75,0,2.49.11,4.95.27,7.4,11.16-7.42,35.14-16.3,73.18,4.27,1.96,1.06,3.9,1.8,5.83,2.41l31.08-7.85c3.74-2.96,7.39-6.52,10.91-10.55l21.76-54.4Z"/>
|
||||
<path class="cls-2" d="M1966.83,1981.22c-2.11,8.57-3.25,17.52-3.25,26.73,0,2.49.11,4.95.27,7.4,11.16-7.42,35.14-16.3,73.18,4.27,4.77,2.58,9.47,3.69,14.1,3.7l41.25-48.46c-57.64-36.42-106.64-8.02-125.55,6.36Z"/>
|
||||
<path class="cls-2" d="M2186.67,2007.95c0-51.65-35.11-95.08-82.76-107.77,3.05,21.26,1.84,73-66.88,119.44,0,0,20.75,77.76,85.58,89.27,37.86-17.84,64.06-56.32,64.06-100.94Z"/>
|
||||
<path class="cls-13" d="M2095.61,2099.33c72.06-31.37,83.58-99.97,85.26-126.81-11.82-35.27-40.74-62.69-76.95-72.34,3.05,21.26,1.84,73-66.88,119.44,0,0,14.84,55.56,58.58,79.7Z"/>
|
||||
<path class="cls-2" d="M2149.74,1925.13c-12.91-11.64-28.52-20.34-45.82-24.95,3.05,21.26,1.84,73-66.88,119.44,0,0,7.64,28.51,28.04,53.57l.45.15c79.38-33.36,83.96-136.44,84.22-148.21Z"/>
|
||||
<path class="cls-5" d="M2046.98,2028.87c2.66,6.91,7.48,17.89,14.92,29.56"/>
|
||||
<path class="cls-5" d="M2082.16,1986.91c-6.97,8.56-15.62,17.25-26.3,25.9"/>
|
||||
<path class="cls-5" d="M2109.63,1919.06c-.61,15.7-5.24,36.5-20.66,58.8"/>
|
||||
<path class="cls-5" d="M1975.32,2019.36c-1.35-9.84-.55-15.13,1-24.43"/>
|
||||
<path class="cls-5" d="M2010.11,2084.87c-9.24-7.57-17.08-16.87-23-27.5-3.03-5.44-5.56-11.23-7.5-17.31"/>
|
||||
<path class="cls-5" d="M2038.93,2101.14c-6.42-2.28-12.54-5.22-18.29-8.77"/>
|
||||
</g>
|
||||
<path class="cls-14" d="M2169.26,2099.59s-18.34-39.72-67.53-8.35c-48.94,31.21-95.34,13.44-96.62,33.8-1.27,20.36,147.61,0,164.15-25.45Z"/>
|
||||
<path class="cls-17" d="M1445.93,1771.92c0,10.58-17.81,19.15-39.78,19.15s-39.78-8.57-39.78-19.15,17.81-19.15,39.78-19.15,39.78,8.57,39.78,19.15Z"/>
|
||||
<ellipse class="cls-17" cx="1497.49" cy="1792.54" rx="16.21" ry="10.31"/>
|
||||
<path class="cls-17" d="M1649.24,1732.14c0,6.51-12.53,11.79-27.99,11.79s-27.99-5.28-27.99-11.79,12.53-11.79,27.99-11.79,27.99,5.28,27.99,11.79Z"/>
|
||||
<path class="cls-17" d="M1758.26,1752.76c0,4.88-5.28,8.84-11.79,8.84s-11.79-3.96-11.79-8.84,5.28-8.84,11.79-8.84,11.79,3.96,11.79,8.84Z"/>
|
||||
<path class="cls-17" d="M1926.2,1739.5c0,8.95-13.85,16.21-30.94,16.21s-30.94-7.26-30.94-16.21,13.85-16.21,30.94-16.21,30.94,7.26,30.94,16.21Z"/>
|
||||
<path class="cls-17" d="M1976.29,1705.62c0,4.88-5.94,8.84-13.26,8.84s-13.26-3.96-13.26-8.84,5.94-8.84,13.26-8.84,13.26,3.96,13.26,8.84Z"/>
|
||||
<path class="cls-17" d="M1846.65,1699.73c0,4.88-3.96,8.84-8.84,8.84s-8.84-3.96-8.84-8.84,3.96-8.84,8.84-8.84,8.84,3.96,8.84,8.84Z"/>
|
||||
<path class="cls-17" d="M2188.44,1746.87c0,9.76-12.53,17.68-27.99,17.68s-27.99-7.92-27.99-17.68,12.53-17.68,27.99-17.68,27.99,7.92,27.99,17.68Z"/>
|
||||
<ellipse class="cls-17" cx="2301.88" cy="1738.03" rx="10.31" ry="8.84"/>
|
||||
<path class="cls-17" d="M2435.94,1782.23c0,8.14-8.57,14.73-19.15,14.73s-19.15-6.6-19.15-14.73,8.57-14.73,19.15-14.73,19.15,6.6,19.15,14.73Z"/>
|
||||
<path class="cls-17" d="M2577.37,1773.39c0,3.25-3.3,5.89-7.37,5.89s-7.37-2.64-7.37-5.89,3.3-5.89,7.37-5.89,7.37,2.64,7.37,5.89Z"/>
|
||||
<path class="cls-17" d="M1127.71,1786.65c0,10.58-10.55,19.15-23.57,19.15s-23.57-8.57-23.57-19.15,10.55-19.15,23.57-19.15,23.57,8.57,23.57,19.15Z"/>
|
||||
<path class="cls-17" d="M2804.25,1805.8c0,9.76-10.55,17.68-23.57,17.68s-23.57-7.92-23.57-17.68,10.55-17.68,23.57-17.68,23.57,7.92,23.57,17.68Z"/>
|
||||
<path class="cls-17" d="M2085.31,1788.12c0,4.88-5.28,8.84-11.79,8.84s-11.79-3.96-11.79-8.84,5.28-8.84,11.79-8.84,11.79,3.96,11.79,8.84Z"/>
|
||||
<path class="cls-17" d="M1805.4,1826.43c0,4.88-5.28,8.84-11.79,8.84s-11.79-3.96-11.79-8.84,5.28-8.84,11.79-8.84,11.79,3.96,11.79,8.84Z"/>
|
||||
<path class="cls-17" d="M1619.77,1817.59c0,4.88-5.94,8.84-13.26,8.84s-13.26-3.96-13.26-8.84,5.94-8.84,13.26-8.84,13.26,3.96,13.26,8.84Z"/>
|
||||
<path class="cls-17" d="M1264.66,1846.39c0,11.85-35.97,21.46-80.34,21.46s-80.34-9.61-80.34-21.46,35.97-21.46,80.34-21.46,80.34,9.61,80.34,21.46Z"/>
|
||||
<ellipse class="cls-17" cx="2658.37" cy="2139.87" rx="94.1" ry="27.18"/>
|
||||
<path class="cls-17" d="M2176.88,2096.65s-25.22-28.9-62.54-13.66c-37.31,15.24-48.87,34.68-104.58,29.43,0,0,27.85,11.04,64.11-5.26,36.26-16.29,73.05-32.58,103-10.51Z"/>
|
||||
<path class="cls-17" d="M1914.78,2124.26c0,4.29-8.7,7.78-19.44,7.78s-19.44-3.48-19.44-7.78,8.7-7.78,19.44-7.78,19.44,3.48,19.44,7.78Z"/>
|
||||
<path class="cls-17" d="M1950.33,2158.7c0,3.07-2.73,5.55-6.11,5.55s-6.11-2.49-6.11-5.55,2.74-5.55,6.11-5.55,6.11,2.49,6.11,5.55Z"/>
|
||||
<ellipse class="cls-17" cx="2008.64" cy="2155.37" rx="11.66" ry="7.78"/>
|
||||
<path class="cls-17" d="M2168.03,2142.59c0,5.21-4.48,9.44-10,9.44s-10-4.23-10-9.44,4.48-9.44,10-9.44,10,4.23,10,9.44Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-11" d="M1183.93,1852.07h0c-10.09,0-18.26-8.18-18.26-18.26v-747.7c0-10.09,8.18-18.26,18.26-18.26h0c10.09,0,18.26,8.18,18.26,18.26v747.7c0,10.09-8.18,18.26-18.26,18.26Z"/>
|
||||
<path class="cls-11" d="M2660.5,2147.05h0c-10.09,0-18.26-8.18-18.26-18.26V952.74c0-10.09,8.18-18.26,18.26-18.26h0c10.09,0,18.26,8.18,18.26,18.26v1176.04c0,10.09-8.18,18.26-18.26,18.26Z"/>
|
||||
<polyline class="cls-6" points="2594.46 1108.24 1241.84 1195.98 1241.84 1231.21 2593.7 1178.28 2591.86 1251.73 1237.44 1270.85 1241.84 1308.28 2593.7 1312.33 2593.83 1387.55 1239.64 1347.91 1245.9 1398.63 2599.21 1455.55"/>
|
||||
<line class="cls-6" x1="1299.7" y1="1140.15" x2="1299.7" y2="1471.88"/>
|
||||
<line class="cls-6" x1="1346.78" y1="1140.15" x2="1346.78" y2="1471.88"/>
|
||||
<line class="cls-6" x1="1393.86" y1="1140.15" x2="1393.86" y2="1471.88"/>
|
||||
<line class="cls-6" x1="1440.93" y1="1140.15" x2="1440.93" y2="1471.88"/>
|
||||
<line class="cls-6" x1="1491.15" y1="1115.96" x2="1491.15" y2="1476.84"/>
|
||||
<line class="cls-6" x1="1538.23" y1="1115.96" x2="1538.23" y2="1476.84"/>
|
||||
<line class="cls-6" x1="1585.3" y1="1115.96" x2="1585.3" y2="1476.84"/>
|
||||
<line class="cls-6" x1="1632.38" y1="1115.96" x2="1632.38" y2="1476.84"/>
|
||||
<line class="cls-6" x1="1682.59" y1="1094.26" x2="1682.59" y2="1488.66"/>
|
||||
<line class="cls-6" x1="1729.67" y1="1094.26" x2="1729.67" y2="1488.66"/>
|
||||
<line class="cls-6" x1="1776.75" y1="1094.26" x2="1776.75" y2="1488.66"/>
|
||||
<line class="cls-6" x1="1823.83" y1="1094.26" x2="1823.83" y2="1488.66"/>
|
||||
<line class="cls-6" x1="1873.26" y1="1077.31" x2="1873.26" y2="1496.01"/>
|
||||
<line class="cls-6" x1="1920.33" y1="1077.31" x2="1920.33" y2="1496.01"/>
|
||||
<line class="cls-6" x1="1967.41" y1="1077.31" x2="1967.41" y2="1496.01"/>
|
||||
<line class="cls-6" x1="2019.46" y1="1077.31" x2="2019.46" y2="1496.01"/>
|
||||
<line class="cls-6" x1="2076.05" y1="1066.25" x2="2076.05" y2="1503.72"/>
|
||||
<line class="cls-6" x1="2128.09" y1="1066.25" x2="2128.09" y2="1503.72"/>
|
||||
<line class="cls-6" x1="2185.1" y1="1066.25" x2="2185.1" y2="1503.72"/>
|
||||
<line class="cls-6" x1="2242.12" y1="1066.25" x2="2242.12" y2="1503.72"/>
|
||||
<line class="cls-6" x1="2306.06" y1="1044.12" x2="2306.06" y2="1516.77"/>
|
||||
<line class="cls-6" x1="2367.07" y1="1031.65" x2="2367.07" y2="1525.47"/>
|
||||
<line class="cls-6" x1="2428.5" y1="1038.69" x2="2428.5" y2="1532.51"/>
|
||||
<line class="cls-6" x1="2501.94" y1="1031.65" x2="2501.94" y2="1525.47"/>
|
||||
<path class="cls-2" d="M2586.11,1556.55c-.53,0-1.05-.01-1.58-.04l-1334.4-70.65c-17.63-.93-31.44-16.77-31.44-36.05v-297.89c0-18.64,13.32-34.44,30.32-35.97l1334.4-120.11c9.19-.84,18.32,2.61,25.09,9.42,6.77,6.81,10.66,16.49,10.66,26.55v488.65c0,9.83-3.74,19.35-10.25,26.13-6.13,6.38-14.37,9.96-22.81,9.96ZM1256.17,1445.19l1325.53,70.18v-478.32l-1325.53,119.32v288.82Z"/>
|
||||
<polyline class="cls-6" points="2594.75 1024.96 2642.6 995 2678.39 995"/>
|
||||
<line class="cls-6" x1="2597.9" y1="1527.4" x2="2642.23" y2="1562.23"/>
|
||||
<polyline class="cls-6" points="1243.3 1142.68 1202.88 1116.08 1165.54 1116.08"/>
|
||||
<line class="cls-6" x1="1235.28" y1="1460.67" x2="1200.37" y2="1511.91"/>
|
||||
<line class="cls-10" x1="2036.84" y1="1506.06" x2="2344.63" y2="1522.1"/>
|
||||
<line class="cls-10" x1="1585.01" y1="1482.51" x2="1952.64" y2="1501.67"/>
|
||||
<line class="cls-10" x1="1272.68" y1="1466.23" x2="1526.77" y2="1479.48"/>
|
||||
<line class="cls-10" x1="2098.67" y1="1061.47" x2="2536.46" y2="1022.49"/>
|
||||
<line class="cls-10" x1="1920.34" y1="1077.35" x2="2075.8" y2="1063.51"/>
|
||||
<line class="cls-10" x1="1766.06" y1="1091.09" x2="1843.62" y2="1084.19"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 17 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 95 KiB |
Reference in New Issue
Block a user