Daniel Gil-U Fuhge commited on
Commit
e93b96b
1 Parent(s): cd6cd36

add pipeline and models

Browse files
animationPipeline.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from src.preprocessing.preprocessing import compute_embedding
2
+ from src.postprocessing.postprocessing import animate_logo
3
+ from AnimationTransformer import AnimationTransformer
4
+ from AnimationTransformer import predict
5
+ import torch.nn as torch
6
+ import torch
7
+ import pandas as pd
8
+
9
+ def animateLogo(path : str):
10
+ #transformer
11
+ NUM_HEADS = 6 # Dividers of 282: {1, 2, 3, 6, 47, 94, 141, 282}
12
+ NUM_ENCODER_LAYERS = 2
13
+ NUM_DECODER_LAYERS = 8
14
+ DROPOUT=0.1
15
+ # CONSTANTS
16
+ FEATURE_DIM = 282
17
+
18
+ device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
19
+ print(device)
20
+
21
+ model = AnimationTransformer(
22
+ dim_model=FEATURE_DIM,
23
+ num_heads=NUM_HEADS,
24
+ num_encoder_layers=NUM_ENCODER_LAYERS,
25
+ num_decoder_layers=NUM_DECODER_LAYERS,
26
+ dropout_p=DROPOUT,
27
+ use_positional_encoder=True
28
+ ).to(device)
29
+
30
+ model.load_state_dict(torch.load("data/models/animation_transformer.pth"))
31
+
32
+ df = compute_embedding(path, "src/preprocessing/deepsvg/deepsvg_models/deepSVG_hierarchical_ordered.pth.tar")
33
+ df = df.drop("animation_id", axis=1)
34
+
35
+ df = pd.concat([df, pd.DataFrame(0, index=df.index, columns=range(df.shape[1], df.shape[1] + 26))], axis=1, ignore_index=True).astype(float)
36
+ inp = torch.tensor(df.values)
37
+ print(inp, inp.shape)
38
+
39
+
40
+ sos_token = torch.zeros(282)
41
+ sos_token[256] = 1
42
+ result = predict(model, inp, sos_token=sos_token, device=device, max_length=inp.shape[0], eos_scaling=1)
43
+ result = pd.DataFrame(result[1:, -26:].cpu().detach().numpy())
44
+ result = pd.DataFrame({"model_output" : [row.tolist() for index, row in result.iterrows()]})
45
+ result["animation_id"] = range(len(result))
46
+ print(result, path)
47
+ animate_logo(result, path)
48
+
49
+ logo = "data/examples/logo_181.svg"
50
+ animateLogo(logo)
index.html ADDED
@@ -0,0 +1,675 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8"/>
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
6
+ <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
7
+ <title>
8
+ Automatically animate your SVG logo
9
+ </title>
10
+ <meta name="description" content="Simple landind page"/>
11
+ <meta name="keywords" content=""/>
12
+ <meta name="author" content=""/>
13
+ <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/tailwind.min.css"/>
14
+ <!--Replace with your tailwind.css once created-->
15
+ <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700" rel="stylesheet"/>
16
+ <!-- Define your gradient here - use online tools to find a gradient matching your branding-->
17
+ <style>
18
+ .gradient {
19
+ background: linear-gradient(90deg, #d53369 0%, #daae51 100%);
20
+ }
21
+ </style>
22
+ </head>
23
+ <body class="leading-normal tracking-normal text-white gradient" style="font-family: 'Source Sans Pro', sans-serif;">
24
+ <!--Nav-->
25
+ <nav id="header" class="fixed w-full z-30 top-0 text-white">
26
+ <div class="w-full container mx-auto flex flex-wrap items-center justify-between mt-0 py-2">
27
+ <div class="pl-4 flex items-center">
28
+ <a class="toggleColour text-white no-underline hover:no-underline font-bold text-2xl lg:text-4xl" href="#">
29
+ <!-- Icon from: http://www.potlabicons.com/ -->
30
+ <!-- <svg class="h-8 fill-current inline" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512.005 512.005">
31
+ <rect fill="#2a2a31" x="16.539" y="425.626" width="479.767" height="50.502" transform="matrix(1,0,0,1,0,0)" />
32
+ <path
33
+ class="plane-take-off"
34
+ d=" M 510.7 189.151 C 505.271 168.95 484.565 156.956 464.365 162.385 L 330.156 198.367 L 155.924 35.878 L 107.19 49.008 L 211.729 230.183 L 86.232 263.767 L 36.614 224.754 L 0 234.603 L 45.957 314.27 L 65.274 347.727 L 105.802 336.869 L 240.011 300.886 L 349.726 271.469 L 483.935 235.486 C 504.134 230.057 516.129 209.352 510.7 189.151 Z "
35
+ />
36
+ </svg> -->
37
+ SVG Logo Animation
38
+ </a>
39
+ </div>
40
+ <div class="block lg:hidden pr-4">
41
+ <button id="nav-toggle"
42
+ class="flex items-center p-1 text-pink-800 hover:text-gray-900 focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out">
43
+ <svg class="fill-current h-6 w-6" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
44
+ <title>Menu</title>
45
+ <path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z"/>
46
+ </svg>
47
+ </button>
48
+ </div>
49
+ <div class="w-full flex-grow lg:flex lg:items-center lg:w-auto hidden mt-2 lg:mt-0 bg-white lg:bg-transparent text-black p-4 lg:p-0 z-20"
50
+ id="nav-content">
51
+ <ul class="list-reset lg:flex justify-end flex-1 items-center">
52
+ <li class="mr-3">
53
+ <!-- <a class="inline-block py-2 px-4 text-black font-bold no-underline" href="#">Active</a>
54
+ </li>
55
+ <li class="mr-3">
56
+ <!-- <a class="inline-block text-black no-underline hover:text-gray-800 hover:text-underline py-2 px-4" href="#">link</a> -->
57
+ </li>
58
+ <li class="mr-3">
59
+ <!-- <a class="inline-block text-black no-underline hover:text-gray-800 hover:text-underline py-2 px-4" href="#">link</a> -->
60
+ </li>
61
+ </ul>
62
+ <button
63
+ id="navAction"
64
+ class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full mt-4 lg:mt-0 py-4 px-8 shadow opacity-75 focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
65
+ onclick="location.href = '{{ url_for('redirect_button') }}';"
66
+ >
67
+ Animate your logo
68
+ </button>
69
+ </div>
70
+ </div>
71
+ <hr class="border-b border-gray-100 opacity-25 my-0 py-0"/>
72
+ </nav>
73
+ <!--Hero-->
74
+ <div class="pt-24">
75
+ <div class="container px-3 mx-auto flex flex-wrap flex-col md:flex-row items-center">
76
+ <!--Left Col-->
77
+ <div class="flex flex-col w-full md:w-2/5 justify-center items-start text-center md:text-left">
78
+ <h1 class="my-4 text-5xl font-bold leading-tight">
79
+ Animate your logo automatically using the power of Artificial Intelligence
80
+ </h1>
81
+ <p class="leading-normal text-2xl mb-8">
82
+ Upload your SVG logo and watch it coming to life.
83
+ </p>
84
+ </div>
85
+ <!--Right Col-->
86
+ <div class="w-full md:w-3/5 py-6 text-center">
87
+ <svg data-name="Layer 1" id="b6aa0626-c548-43ac-b721-fcff4f949bc4" viewBox="0 0 868.9803 474.6702"
88
+ xmlns="http://www.w3.org/2000/svg">
89
+ <path d="M212.96892,644.94753c-18.51744,15.78973-22.36087,41.687-22.36087,41.687s26.17921.29707,44.69665-15.49269,22.36087-41.687,22.36087-41.687S231.48637,629.15783,212.96892,644.94753Z"
90
+ fill="#f2f2f2" transform="translate(-165.50985 -212.6649)"/>
91
+ <path d="M221.52563,651.22973c-7.88774,23.02161-30.565,36.10537-30.565,36.10537s-9.88865-24.24161-2.00091-47.26322,30.56494-36.10536,30.56494-36.10536S229.41338,628.20813,221.52563,651.22973Z"
92
+ fill="#f2f2f2" transform="translate(-165.50985 -212.6649)"/>
93
+ <path d="M414.81075,310.62528c-4.18994-5.429-10.11133-10.45227-10.48633-17.15155-.34375-6.14447,4.2378-12.245,2.30567-18.12342-1.48584-4.51983-6.38721-7.24707-11.17676-8.69128a43.43919,43.43919,0,0,0-27.91553,1.07471l.48486-.34192c-5.45214-1.94214-11.82519.0628-16.11474,3.7763-4.29,3.71344-6.83936,8.86072-8.81738,14.01886-1.97852,5.15815-3.51123,10.505-6.25977,15.34076-2.749,4.83582-6.95752,9.23358-12.51025,10.90485,1.85888,3.70795,7.66992,4.98,11.07812,2.425a14.01368,14.01368,0,0,0,2.33106-2.40985q3.40943-4.146,6.81933-8.29194c2.33887,4.15979-1.15527,9.90113,1.71973,13.7522,1.48242,1.986,4.18994,2.74017,6.70459,3.28113a121.27714,121.27714,0,0,0,59.33105-2.20068c1.5503-.45685,3.26075-1.086,3.90381-2.4892C416.95089,313.8793,415.91231,312.05289,414.81075,310.62528Z"
94
+ fill="#2f2e41" transform="translate(-165.50985 -212.6649)"/>
95
+ <path d="M470.53815,331.812a10.52739,10.52739,0,0,0-.2393,1.64013l-42.95744,24.782L416.9,352.22322,405.76883,366.7955,423.21917,379.233a8,8,0,0,0,9.59819-.23384l44.29652-34.94583a10.4971,10.4971,0,1,0-6.57573-12.24133Z"
96
+ fill="#ffb7b7" transform="translate(-165.50985 -212.6649)"/>
97
+ <path d="M425.90529,359.40791l-13.88374,17.994a4.5,4.5,0,0,1-6.80392.37268l-15.71732-16.32121A12.49742,12.49742,0,0,1,404.827,341.7092l19.713,11.02278a4.5,4.5,0,0,1,1.36538,6.67593Z"
98
+ fill="#ed6d52" transform="translate(-165.50985 -212.6649)"/>
99
+ <polygon fill="#ffb7b7"
100
+ points="241.288 460.267 253.548 460.266 259.38 412.978 241.286 412.979 241.288 460.267"/>
101
+ <path d="M403.67036,668.92892l24.144-.001h.001a15.3873,15.3873,0,0,1,15.38647,15.38623v.5l-39.53076.00147Z"
102
+ fill="#2f2e41" transform="translate(-165.50985 -212.6649)"/>
103
+ <polygon fill="#ffb7b7"
104
+ points="157.288 460.267 169.548 460.266 175.38 412.978 157.286 412.979 157.288 460.267"/>
105
+ <path d="M319.67036,668.92892l24.144-.001h.001a15.3873,15.3873,0,0,1,15.38647,15.38623v.5l-39.53076.00147Z"
106
+ fill="#2f2e41" transform="translate(-165.50985 -212.6649)"/>
107
+ <circle cx="378.3738" cy="301.62837" fill="#ffb7b7"
108
+ r="21.18784" transform="translate(-128.2503 432.16527) rotate(-83.7356)"/>
109
+ <path d="M390.77111,333.39136l12.48227,6.18372s13.94651,24.237,5.94651,47.237c-3.8841,11.16678,7.05349,46.763,7.05349,46.763s16.94651,161.237,17,211c-21.05349,3.237-41.05349,7.237-42.05349-2.763s-11.94651-128.237-11.94651-128.237-15.05349,131.237-27.05349,133.237-36-1-36-1,19.05349-192.237,32.05349-204.237l2-10-.05349-89.763,14.97759-7.14766Z"
110
+ fill="#2f2e41" transform="translate(-165.50985 -212.6649)"/>
111
+ <path d="M346.11823,469.66164a10.74266,10.74266,0,0,0,3.29112-16.1405l14.51672-96.76189-18.96578-.91048-11.31613,96.36138a10.80091,10.80091,0,0,0,12.47407,17.45149Z"
112
+ fill="#ffb7b7" transform="translate(-165.50985 -212.6649)"/>
113
+ <path d="M363.514,381.00414l-22.68238-1.432a4.5,4.5,0,0,1-4.11751-5.42941l4.72623-22.1603a12.49741,12.49741,0,0,1,24.94035,1.648l1.901,22.50531a4.5,4.5,0,0,1-4.76764,4.86845Z"
114
+ fill="#ed6d52" transform="translate(-165.50985 -212.6649)"/>
115
+ <path d="M990.39582,289.249H488.80218a13.806,13.806,0,0,0-13.806,13.806V582.53364a13.806,13.806,0,0,0,13.806,13.806H990.39582a13.806,13.806,0,0,0,13.806-13.806V303.055a13.806,13.806,0,0,0-13.806-13.806Z"
116
+ fill="#3f3d56" transform="translate(-165.50985 -212.6649)"/>
117
+ <rect fill="#fff" height="277.64361" width="492.18639" x="327.99594" y="100.98308"/>
118
+ <circle cx="573.66845" cy="88.36291" fill="#fff" r="5.04805"/>
119
+ <polygon fill="#f2f2f2" points="679.425 378.627 327.996 378.627 327.996 100.983 679.425 378.627"
120
+ style="isolation:isolate"/>
121
+ <path d="M1018.02127,586.24353H969.987v-3.46086a.68617.68617,0,0,0-.68614-.68619h-16.469a.68618.68618,0,0,0-.68624.68614v3.46091H941.85279v-3.46086a.68618.68618,0,0,0-.68619-.68619H924.69772a.68618.68618,0,0,0-.6862.68619h0v3.46086h-10.293v-3.46086a.68618.68618,0,0,0-.6862-.68619H896.56338a.68618.68618,0,0,0-.6862.68619h0v3.46086h-10.293v-3.46086a.68618.68618,0,0,0-.68619-.68619H868.42909a.68617.68617,0,0,0-.6862.68614v3.46091h-10.293v-3.46086a.68618.68618,0,0,0-.6862-.68619H840.2948a.68618.68618,0,0,0-.6862.68619h0v3.46086H829.31553v-3.46086a.68618.68618,0,0,0-.68619-.68619H812.16046a.68618.68618,0,0,0-.6862.68619h0v3.46086h-10.293v-3.46086a.68618.68618,0,0,0-.6862-.68619H671.48891a.68618.68618,0,0,0-.6862.68619h0v3.46086H660.50964v-3.46086a.68618.68618,0,0,0-.6862-.68619H643.35462a.68618.68618,0,0,0-.6862.68619h0v3.46086H632.37535v-3.46086a.68617.68617,0,0,0-.68615-.68619H615.22028a.68618.68618,0,0,0-.6862.68619h0v3.46086H604.241v-3.46086a.68618.68618,0,0,0-.6862-.68619H587.08594a.68618.68618,0,0,0-.6862.68619h0v3.46086h-10.293v-3.46086a.68618.68618,0,0,0-.6862-.68619H558.95165a.68618.68618,0,0,0-.6862.68619h0v3.46086H547.97238v-3.46086a.68618.68618,0,0,0-.6862-.68619H530.81731a.68619.68619,0,0,0-.6862.68614v3.46091h-10.293v-3.46086a.68618.68618,0,0,0-.68617-.68619H502.683a.6862.6862,0,0,0-.6862.68619h0v3.46086H470.43146a16.46886,16.46886,0,0,0-16.46885,16.46887v7.44683a16.46885,16.46885,0,0,0,16.46885,16.46883h547.58981a16.46888,16.46888,0,0,0,16.46888-16.46883V602.7124A16.46885,16.46885,0,0,0,1018.02127,586.24353Z"
122
+ fill="#3f3d56" transform="translate(-165.50985 -212.6649)"/>
123
+ <path d="M749.06641,554.88582a12.08948,12.08948,0,0,1-.55394,1.14324,14.6271,14.6271,0,0,1-4.433,4.987,14.56389,14.56389,0,0,1-22.94594-11.9105V546.755h1.99475A50.94173,50.94173,0,0,0,749.06641,554.88582Z"
124
+ fill="#3f3d56" transform="translate(-165.50985 -212.6649)"/>
125
+ <path d="M777.5304,547.44323v1.66232a14.55908,14.55908,0,0,1-27.34415,6.97014,12.16026,12.16026,0,0,1-.57729-1.17239c.42578.01168.84557.01752,1.27164.01752A51.01779,51.01779,0,0,0,777.5304,547.44323Z"
126
+ fill="#3f3d56" transform="translate(-165.50985 -212.6649)"/>
127
+ <path d="M797.15156,371.65583c-.43746-.06415-.88061-.105-1.32405-.13414a48.98222,48.98222,0,0,1,.97431,36.57714c.44315-.05247.88061-.12246,1.31807-.20413a18.37443,18.37443,0,0,0-.96833-36.23887Z"
128
+ fill="#3f3d56" transform="translate(-165.50985 -212.6649)"/>
129
+ <path d="M705.9334,371.52169c-.44344.02915-.88659.07-1.32405.13414a18.37448,18.37448,0,0,0-.96832,36.23887c.43745.08167.87491.15166,1.31806.20413a48.98583,48.98583,0,0,1,.97431-36.57714Z"
130
+ fill="#3f3d56" transform="translate(-165.50985 -212.6649)"/>
131
+ <path d="M797.15156,371.65583a50.15582,50.15582,0,1,0,3.89068,19.36473A50.22821,50.22821,0,0,0,797.15156,371.65583Zm-.34974,36.443a48.98222,48.98222,0,1,1,3.07387-17.07827A49.06652,49.06652,0,0,1,796.80182,408.09883Z"
132
+ fill="#3f3d56" transform="translate(-165.50985 -212.6649)"/>
133
+ <path d="M776.5447,379.6467H725.2165a10.20731,10.20731,0,0,0,0,20.41462h51.3282a10.20731,10.20731,0,0,0,0-20.41462Z"
134
+ fill="#3f3d56" transform="translate(-165.50985 -212.6649)"/>
135
+ <path d="M796.80182,478.18517q-.28025-.51623-.57758-1.01489c-.00569-.01168-.01167-.01752-.01737-.02916a52.4736,52.4736,0,1,0-47.6944,78.88794c.55394.02915,1.11386.04663,1.67378.04663.23354.01168.46081.01168.69435.01168a52.10841,52.10841,0,0,0,26.6498-7.2851A52.84318,52.84318,0,0,0,797.91,526.9003c.00569-.01167.01168-.01751.01737-.02919.17515-.35.34433-.70574.5135-1.06737a52.41937,52.41937,0,0,0-1.639-47.61857Zm.50154,47.29774q-.25376.54251-.52489,1.06741a51.68613,51.68613,0,0,1-19.24807,20.89291,51.01779,51.01779,0,0,1-26.6498,7.47759c-.42607,0-.84586-.00584-1.27164-.01752q-.27128,0-.54255-.01748a51.32636,51.32636,0,1,1,45.97391-77.41807c.0057.01164.01168.01748.01737.02916.20421.33247.40243.67074.58926,1.00905a51.263,51.263,0,0,1,1.65641,46.97695Z"
136
+ fill="#3f3d56" transform="translate(-165.50985 -212.6649)"/>
137
+ <path d="M791.22568,479.73667A6.06692,6.06692,0,0,0,787.726,478.611H764.78578a6.02524,6.02524,0,1,0,0,12.05048H787.726a5.95878,5.95878,0,0,0,1.21895-.1225,6.61944,6.61944,0,0,0,1.16655-.36747,6.02282,6.02282,0,0,0,1.11415-10.43479Z"
138
+ fill="#3f3d56" transform="translate(-165.50985 -212.6649)"/>
139
+ <circle cx="600.80328" cy="271.97097" fill="#f1f1f1" r="3.05895"/>
140
+ <circle cx="610.74487" cy="271.97097" fill="#f1f1f1" r="3.05895"/>
141
+ <circle cx="620.68647" cy="271.97097" fill="#ed6d52" r="3.05895"/>
142
+ <path d="M901.40674,383.8181c-7.955,4.7708-22.128,10.74873-36.61127,4.60532l-9.36232-3.9713,18.76142-21.03134a89.60221,89.60221,0,1,1,27.21217,20.39732Z"
143
+ fill="#fff" transform="translate(-165.50985 -212.6649)"/>
144
+ <path d="M901.45553,384.95169c-7.64392,4.4878-22.20508,10.68994-37.05054,4.39209l-10.647-4.51611,19.09448-21.4043a90.60242,90.60242,0,1,1,128.58,6.91406h0a90.19848,90.19848,0,0,1-99.97692,14.61426Zm104.74011-141.24951A88.60227,88.60227,0,1,0,874.93526,362.74906l.60425.6665-18.43115,20.66113L865.186,387.503c14.33753,6.082,28.52527-.23584,35.70643-4.54248l.46423-.27881.48706.23682a88.6021,88.6021,0,0,0,104.35193-139.21631Z"
145
+ fill="#ed6d52" transform="translate(-165.50985 -212.6649)"/>
146
+ <path d="M1016.20873,302.66717a82.46016,82.46016,0,0,0-75.16848-82.13206c2.40185-.2104,4.83137-.32424,7.28779-.32424a82.4563,82.4563,0,0,1,0,164.91257c-2.45272,0-4.87807-.11531-7.27628-.32526A82.4602,82.4602,0,0,0,1016.20873,302.66717Z"
147
+ opacity="0.1" style="isolation:isolate" transform="translate(-165.50985 -212.6649)"/>
148
+ <rect fill="#ed6d52" height="5.47153" width="58.91966" x="727.77166" y="73.55937"/>
149
+ <rect fill="#ed6d52" height="5.47153" width="102.69201" x="727.77166" y="92.48718"/>
150
+ <rect fill="#ed6d52" height="5.47153" width="102.59147" x="727.77166" y="111.41497"/>
151
+ <path d="M547.50985,685.85892h-381a1,1,0,0,1,0-2h381a1,1,0,0,1,0,2Z"
152
+ fill="#cbcbcb" transform="translate(-165.50985 -212.6649)"/>
153
+ <path d="M400.58028,287.85538c-.82568-3.74536-3.50732-6.84851-6.59668-9.12116a27.0167,27.0167,0,0,0-34.53711,2.10022,17.64907,17.64907,0,0,0-5.334,8.5492,10.48615,10.48615,0,0,0,2.23486,9.54809l.42334.26514c-.38379-1.628.88086-3.25476,2.3916-3.973a19.10971,19.10971,0,0,1,4.87842-1.09381,17.935,17.935,0,0,0,12.15674-8.57837,20.25436,20.25436,0,0,0,11.60742,12.09656c2.80029,1.09509,10.4917,2.601,13.15772,1.21063C404.36348,297.08554,401.406,291.6008,400.58028,287.85538Z"
154
+ fill="#2f2e41" transform="translate(-165.50985 -212.6649)"/>
155
+ </svg>
156
+ </div>
157
+ </div>
158
+ </div>
159
+
160
+ <!-- First wave below body from above -->
161
+ <div class="relative -mt-12 lg:-mt-24">
162
+ <svg viewBox="0 0 1428 174" version="1.1" xmlns="http://www.w3.org/2000/svg"
163
+ xmlns:xlink="http://www.w3.org/1999/xlink">
164
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
165
+ <g transform="translate(-2.000000, 44.000000)" fill="#FFFFFF" fill-rule="nonzero">
166
+ <path d="M0,0 C90.7283404,0.927527913 147.912752,27.187927 291.910178,59.9119003 C387.908462,81.7278826 543.605069,89.334785 759,82.7326078 C469.336065,156.254352 216.336065,153.6679 0,74.9732496"
167
+ opacity="0.100000001"></path>
168
+ <path
169
+ d="M100,104.708498 C277.413333,72.2345949 426.147877,52.5246657 546.203633,45.5787101 C666.259389,38.6327546 810.524845,41.7979068 979,55.0741668 C931.069965,56.122511 810.303266,74.8455141 616.699903,111.243176 C423.096539,147.640838 250.863238,145.462612 100,104.708498 Z"
170
+ opacity="0.100000001"
171
+ ></path>
172
+ <path d="M1046,51.6521276 C1130.83045,29.328812 1279.08318,17.607883 1439,40.1656806 L1439,120 C1271.17211,77.9435312 1140.17211,55.1609071 1046,51.6521276 Z"
173
+ id="Path-4" opacity="0.200000003"></path>
174
+ </g>
175
+ <g transform="translate(-4.000000, 76.000000)" fill="#FFFFFF" fill-rule="nonzero">
176
+ <path
177
+ d="M0.457,34.035 C57.086,53.198 98.208,65.809 123.822,71.865 C181.454,85.495 234.295,90.29 272.033,93.459 C311.355,96.759 396.635,95.801 461.025,91.663 C486.76,90.01 518.727,86.372 556.926,80.752 C595.747,74.596 622.372,70.008 636.799,66.991 C663.913,61.324 712.501,49.503 727.605,46.128 C780.47,34.317 818.839,22.532 856.324,15.904 C922.689,4.169 955.676,2.522 1011.185,0.432 C1060.705,1.477 1097.39,3.129 1121.236,5.387 C1161.703,9.219 1208.621,17.821 1235.4,22.304 C1285.855,30.748 1354.351,47.432 1440.886,72.354 L1441.191,104.352 L1.121,104.031 L0.457,34.035 Z"
178
+ ></path>
179
+ </g>
180
+ </g>
181
+ </svg>
182
+ </div>
183
+
184
+ <!-- Explanation -->
185
+ <section class="bg-white border-b py-8">
186
+ <div class="container max-w-5xl mx-auto m-8">
187
+ <h1 class="w-full my-2 text-5xl font-bold leading-tight text-center text-gray-800">
188
+ How does it work?
189
+ </h1>
190
+ <div class="w-full mb-4">
191
+ <div class="h-1 mx-auto gradient w-64 opacity-25 my-0 py-0 rounded-t"></div>
192
+ </div>
193
+ <div class="flex flex-wrap">
194
+ <div class="w-5/6 sm:w-1/2 p-6">
195
+ <h3 class="text-3xl text-gray-800 font-bold leading-none mb-3">
196
+ Upload your logo
197
+ </h3>
198
+ <p class="text-gray-600 mb-8">
199
+ You can upload the logo in SVG format. Our service transforms it into a language that our AI
200
+ algorithms can understand.
201
+ <br/>
202
+ <br/>
203
+ </p>
204
+ </div>
205
+ <div class="w-full sm:w-1/2 p-6">
206
+ <svg data-name="Layer 1" id="b340c189-66f3-4f05-9055-65c54b2ae483" viewBox="0 0 777.69685 613.28514"
207
+ xmlns="http://www.w3.org/2000/svg">
208
+ <path d="M352.94583,215.69156a10.05577,10.05577,0,0,0-8.543,12.83638l-29.07453,20.7762,17.33071,6.66935,24.95268-20.75192a10.11027,10.11027,0,0,0-4.66584-19.53Z"
209
+ fill="#ffb8b8" transform="translate(-211.15157 -143.35743)"/>
210
+ <path d="M350.24195,246.986l-36.06422,36.28719a29.89622,29.89622,0,0,1-18.41948,8.62953l-44.5634,4.066a12.27993,12.27993,0,0,1-9.11541-2.8646,11.99558,11.99558,0,0,1,5.29328-20.95052l45.52648-9.69376,41.44849-30.5531a3.79287,3.79287,0,0,1,3.76933.0281l11.27183,9.23372a3.70275,3.70275,0,0,1,1.86773,3.88642A3.618,3.618,0,0,1,350.24195,246.986Z"
211
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
212
+ <path d="M782.628,266.48724a12.13173,12.13173,0,0,0-6.71771-12.199L551.46863,144.59115a12.0995,12.0995,0,0,0-16.18578,5.55125l-.00411.00842L451.09862,322.3844a12.12136,12.12136,0,0,0,5.55968,16.18989L681.09991,448.27138a12.12137,12.12137,0,0,0,16.1899-5.55968l84.18011-172.23357A12.01171,12.01171,0,0,0,782.628,266.48724Z"
213
+ fill="#f2f2f2" transform="translate(-211.15157 -143.35743)"/>
214
+ <path d="M651.14179,648.76059H359.91726a13.84469,13.84469,0,0,1-13.8291-13.8291V239.582a13.84469,13.84469,0,0,1,13.8291-13.8291H651.14179a13.84469,13.84469,0,0,1,13.8291,13.8291v395.3495A13.84469,13.84469,0,0,1,651.14179,648.76059Z"
215
+ fill="#fff" transform="translate(-211.15157 -143.35743)"/>
216
+ <circle cx="226.0083" cy="181.28514" fill="#e6e6e6" r="19"/>
217
+ <path d="M408.20138,376.57177a54.43119,54.43119,0,0,0,8.39893,3.8706l.51318.17774A54.76653,54.76653,0,0,0,435.32,383.71239c1.24756,0,2.44922-.04345,3.572-.12842a54.13483,54.13483,0,0,0,8.12305-1.12011c1.46826-.3208,2.93188-.70459,4.34814-1.13916.34253-.10108.65967-.2002,1.00684-.30908a55.18285,55.18285,0,0,0,16.052-8.31788,24.80532,24.80532,0,0,0-1.279-2.14892,27.42455,27.42455,0,0,0-22.98315-12.40625h-10a27.516,27.516,0,0,0-25.0254,16.08789A24.98384,24.98384,0,0,0,408.20138,376.57177Z"
218
+ fill="#e6e6e6" transform="translate(-211.15157 -143.35743)"/>
219
+ <path d="M443.60748,381.99078a3.61841,3.61841,0,0,0-1.7801.6245,53.17031,53.17031,0,0,0,7.97082-1.10638Z"
220
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
221
+ <path d="M438.31173,273.08257a55.56576,55.56576,0,0,0-27.72021,103.72,54.6388,54.6388,0,0,0,8.83007,4.11005l.52.18a55.25847,55.25847,0,0,0,18.37012,3.12c1.21,0,2.41992-.04,3.60986-.13a54.65,54.65,0,0,0,8.19-1.13c1.51025-.33,2.99023-.72,4.39013-1.15.33985-.1.65967-.2,1.00977-.31a55.57115,55.57115,0,0,0-17.19971-108.41Zm32.23975,97.19a52.68148,52.68148,0,0,1-15.94971,8.41c-.31006.1-.63037.2-.9502.3-1.33007.41-2.73.76995-4.16992,1.07995a51.23077,51.23077,0,0,1-7.75,1.08c-1.12988.08-2.28027.12-3.41992.12a52.5441,52.5441,0,0,1-17.39014-2.95l-.48974-.17a51.23572,51.23572,0,0,1-8.76026-4.12,52.57628,52.57628,0,1,1,58.87989-3.75Z"
222
+ fill="#ccc" transform="translate(-211.15157 -143.35743)"/>
223
+ <path d="M364.67642,494.92223" fill="#f2f2f2" transform="translate(-211.15157 -143.35743)"/>
224
+ <path d="M651.14179,648.76059H359.91726a13.84469,13.84469,0,0,1-13.8291-13.8291V239.582a13.84469,13.84469,0,0,1,13.8291-13.8291H651.14179a13.84469,13.84469,0,0,1,13.8291,13.8291v395.3495A13.84469,13.84469,0,0,1,651.14179,648.76059ZM359.91726,227.37984A12.216,12.216,0,0,0,347.71512,239.582v395.3495a12.216,12.216,0,0,0,12.20214,12.20215H651.14179a12.216,12.216,0,0,0,12.20215-12.20215V239.582a12.216,12.216,0,0,0-12.20215-12.20215Z"
225
+ fill="#ccc" transform="translate(-211.15157 -143.35743)"/>
226
+ <path d="M594.7642,328.43312H512.35768a6.51929,6.51929,0,1,1,0-13.03858H594.7642a6.51929,6.51929,0,1,1,0,13.03858Z"
227
+ fill="#e6e6e6" transform="translate(-211.15157 -143.35743)"/>
228
+ <path d="M621.65628,350.43573H512.35768a6.51929,6.51929,0,1,1,0-13.03858h109.2986a6.51929,6.51929,0,0,1,0,13.03858Z"
229
+ fill="#e6e6e6" transform="translate(-211.15157 -143.35743)"/>
230
+ <path d="M594.64422,434.82487H389.40277a6.51929,6.51929,0,1,1,0-13.03858H594.64422a6.51929,6.51929,0,1,1,0,13.03858Z"
231
+ fill="#e6e6e6" transform="translate(-211.15157 -143.35743)"/>
232
+ <path d="M621.5363,456.82748H389.40277a6.51929,6.51929,0,1,1,0-13.03858H621.5363a6.51929,6.51929,0,0,1,0,13.03858Z"
233
+ fill="#e6e6e6" transform="translate(-211.15157 -143.35743)"/>
234
+ <path d="M594.64422,507.39792H389.40277a6.51929,6.51929,0,1,1,0-13.03858H594.64422a6.51929,6.51929,0,1,1,0,13.03858Z"
235
+ fill="#e6e6e6" transform="translate(-211.15157 -143.35743)"/>
236
+ <path d="M621.5363,529.40053H389.40277a6.51929,6.51929,0,0,1,0-13.03858H621.5363a6.51929,6.51929,0,1,1,0,13.03858Z"
237
+ fill="#e6e6e6" transform="translate(-211.15157 -143.35743)"/>
238
+ <path d="M594.64422,579.971H389.40277a6.51929,6.51929,0,0,1,0-13.03859H594.64422a6.51929,6.51929,0,1,1,0,13.03859Z"
239
+ fill="#e6e6e6" transform="translate(-211.15157 -143.35743)"/>
240
+ <path d="M621.5363,601.97358H389.40277a6.51929,6.51929,0,0,1,0-13.03859H621.5363a6.5193,6.5193,0,0,1,0,13.03859Z"
241
+ fill="#e6e6e6" transform="translate(-211.15157 -143.35743)"/>
242
+ <path d="M772.628,379.48724a12.13173,12.13173,0,0,0-6.71771-12.199L541.46863,257.59115a12.0995,12.0995,0,0,0-16.18578,5.55125l-.00411.00842L441.09862,435.3844a12.12136,12.12136,0,0,0,5.55968,16.18989L671.09991,561.27138a12.12137,12.12137,0,0,0,16.1899-5.55968l84.18011-172.23357A12.01171,12.01171,0,0,0,772.628,379.48724Z"
243
+ fill="#fff" transform="translate(-211.15157 -143.35743)"/>
244
+ <path d="M772.628,379.48724a12.13173,12.13173,0,0,0-6.71771-12.199L541.46863,257.59115a12.0995,12.0995,0,0,0-16.18578,5.55125l-.00411.00842L441.09862,435.3844a12.12136,12.12136,0,0,0,5.55968,16.18989L671.09991,561.27138a12.12137,12.12137,0,0,0,16.1899-5.55968l84.18011-172.23357A12.01171,12.01171,0,0,0,772.628,379.48724ZM686.01043,555.0864a10.69317,10.69317,0,0,1-14.28521,4.9056L447.2836,450.29492a10.69321,10.69321,0,0,1-4.90557-14.28521l84.18011-172.23357a10.69317,10.69317,0,0,1,14.28518-4.90559L765.28494,368.56764a10.69321,10.69321,0,0,1,4.90561,14.28519Z"
245
+ fill="#3f3d56" transform="translate(-211.15157 -143.35743)"/>
246
+ <path d="M748.14785,387.3187,689.36749,507.58406a3.369,3.369,0,0,1-4.50563,1.549l-.00011,0-204.16-99.78435a2.83892,2.83892,0,0,1-.41747-.24582,3.367,3.367,0,0,1-1.13054-4.26189l58.78038-120.26542a3.369,3.369,0,0,1,4.50569-1.54893h0L746.59984,382.811a3.369,3.369,0,0,1,1.549,4.50565l0,.00009Z"
247
+ fill="#e6e6e6" transform="translate(-211.15157 -143.35743)"/>
248
+ <circle cx="357.75864" cy="208.28689" fill="#ed6d52" r="29.56668"/>
249
+ <path d="M612.20158,474.21733,481.88833,410.526a2.95392,2.95392,0,0,1-.46807-.2766l113.80964-76.6327a4.80317,4.80317,0,0,1,7.51178,3.67142l6.34775,91.85777.30612,4.39658Z"
250
+ fill="#3f3d56" transform="translate(-211.15157 -143.35743)"/>
251
+ <polygon
252
+ opacity="0.2"
253
+ points="401.05 330.86 356.558 309.114 393.905 288.064 396.594 286.548 397.938 285.789 398.244 290.185 401.05 330.86"
254
+ style="isolation:isolate"/>
255
+ <path d="M684.75906,509.6802,572.0488,454.59244l37.34677-21.05,2.68877-1.51719L660.75207,404.592c3.19024-1.7977,7.76143.22749,8.79816,3.667a5.71792,5.71792,0,0,1,.16006.71138Z"
256
+ fill="#3f3d56" transform="translate(-211.15157 -143.35743)"/>
257
+ <polygon fill="#ffb8b8"
258
+ points="125.844 376.82 138.103 376.819 143.936 329.531 125.841 329.532 125.844 376.82"/>
259
+ <path d="M333.86788,516.1748l24.1438-.001h.001a15.38605,15.38605,0,0,1,15.38647,15.38623v.5l-39.53051.00146Z"
260
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
261
+ <polygon fill="#ffb8b8"
262
+ points="30.551 369.014 43.253 371.498 58.881 323.688 40.135 320.021 30.551 369.014"/>
263
+ <path d="M239.27428,507.59042l25.01436,4.89306.001.0002a16.24294,16.24294,0,0,1,12.82227,19.05981l-.10135.518L236.05472,524.05Z"
264
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
265
+ <path d="M354.8316,357.05617a10.05575,10.05575,0,0,0-14.13593-6.15884l-25.5542-24.97923L311.61562,344.15l24.80726,20.92555a10.11027,10.11027,0,0,0,18.40872-8.01938Z"
266
+ fill="#ffb8b8" transform="translate(-211.15157 -143.35743)"/>
267
+ <circle cx="48.87092" cy="60.56582" fill="#ffb8b8" r="24.56103"/>
268
+ <path d="M254.865,228.86026c1.30495.571,3.97731-9.82732,2.78024-11.90707-1.78024-3.09293-1.675-3.07071-2.85681-5.117s-1.44623-4.84712.08417-6.64761,5.072-1.56163,5.77042.69581c-.4493-4.2878,3.79189-7.73454,7.993-8.70313s8.63244-.36723,12.85668-1.22917c4.90243-1.00032,10.00316-5.10972,8.04719-10.5007a7.5932,7.5932,0,0,0-1.48106-2.43408c-2.25992-2.54094-5.42117-3.62594-8.512-4.675-6.43006-2.18246-13.036-4.39233-19.82212-4.15141a28.7977,28.7977,0,0,0-25.44625,18.60924,26.156,26.156,0,0,0-1.08344,4.02534c-2.32924,12.52423,4.94368,24.87794,16.75623,29.64715Z"
269
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
270
+ <path d="M248.83468,363.78417a3.75449,3.75449,0,0,1-1.77783-3.7168l-11.083-54.90136-11.23437-42.13477h.00024A21.07382,21.07382,0,0,1,235.291,238.94042l7.427-7.02734,16.20239,6.98047,7.699,7.82812a44.02687,44.02687,0,0,1,22.99316,27.26074L301.9609,316.2373,330.47823,358.664a3.77282,3.77282,0,0,1-.36938,4.67969C326.14157,367.61132,248.83468,363.78417,248.83468,363.78417Z"
271
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
272
+ <path d="M323.54806,359.88378l-42.05078-29.13965A29.89622,29.89622,0,0,1,269.77047,314.124L257.9504,270.96483a12.28,12.28,0,0,1,1.22119-9.47656,11.99558,11.99558,0,0,1,21.5542,1.53613l17.52954,43.12012,37.3501,35.44629a3.79288,3.79288,0,0,1,.63355,3.71582l-7.11328,12.7168a3.70279,3.70279,0,0,1-3.49854,2.52051A3.618,3.618,0,0,1,323.54806,359.88378Z"
273
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
274
+ <path d="M236.188,505.05272a3.74374,3.74374,0,0,1-.44751-3.42285l19.45362-70.71972,1.438-69.29493,65.48633-4.49121.31787-.02148,19.72412,35.749a91.97727,91.97727,0,0,1,11.10035,36.23535l6.5,71.2295a3.71631,3.71631,0,0,1-3.25074,4.06445l-19.7456,1.87793a3.67409,3.67409,0,0,1-4.07886-3.11133l-8.01807-72.38281-28.84961-48.74512-9.68408,51.31836L266.071,504.207a3.7189,3.7189,0,0,1-3.45825,2.42578l-23.40015.00977A3.63923,3.63923,0,0,1,236.188,505.05272Z"
275
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
276
+ <path d="M737.61617,737.64257H244.15157a33.03734,33.03734,0,0,1-33-33v-271a33.03734,33.03734,0,0,1,33-33h60.50269a32.92486,32.92486,0,0,1,22.19507,8.57959l65.61157,46.85107a23.18228,23.18228,0,0,0,15.65869,6.06934H740.68014A33.00029,33.00029,0,0,1,773.67672,495.625l-3.064,209.5A33.13847,33.13847,0,0,1,737.61617,737.64257Z"
277
+ fill="#fff" transform="translate(-211.15157 -143.35743)"/>
278
+ <path d="M733.23214,721.64257H247.071a15.93751,15.93751,0,0,1-15.91944-15.9195V430.292A15.93754,15.93754,0,0,1,247.071,414.37252a14.09636,14.09636,0,0,1,14.08056,14.08056v258.27A14.9364,14.9364,0,0,0,276.071,701.64251H731.5903a10.12538,10.12538,0,0,1,9.91528,7.5874,9.72,9.72,0,0,1-4.30689,11.18457A7.59512,7.59512,0,0,1,733.23214,721.64257Z"
279
+ fill="#f2f2f2" transform="translate(-211.15157 -143.35743)"/>
280
+ <path d="M494.57588,589.36994l-1.28-1.28a1.37,1.37,0,0,1-.06356-1.9364q.0307-.03286.06356-.0636l11.23-11.24a1.37,1.37,0,0,1,1.93644-.0636q.03282.03076.06356.0636l11.23,11.23a1.39,1.39,0,0,1,.03454,1.96546l-.03454.03454-1.28,1.28a1.39,1.39,0,0,1-1.96546.03455l-.03454-.03455-6.64-7v16.61a1.37994,1.37994,0,0,1-1.36993,1.38995l-.01007.00006h-1.85a1.39,1.39,0,0,1-1.39-1.39h0V582.38l-6.64,7a1.39,1.39,0,0,1-1.9656.02472Z"
281
+ fill="#ed6d52" transform="translate(-211.15157 -143.35743)"/>
282
+ <path d="M505.50591,564.64a22.79,22.79,0,1,1-22.79,22.79h0a22.81,22.81,0,0,1,22.79-22.79m0-3a25.79,25.79,0,1,0,25.79,25.79h0A25.79,25.79,0,0,0,505.50591,561.64Z"
283
+ fill="#3f3d56" transform="translate(-211.15157 -143.35743)"/>
284
+ <path d="M737.61617,737.64257H244.15157a33.03734,33.03734,0,0,1-33-33v-271a33.03734,33.03734,0,0,1,33-33h60.50269a32.92486,32.92486,0,0,1,22.19507,8.57959l65.61157,46.85107a23.18228,23.18228,0,0,0,15.65869,6.06934H740.68014A33.00029,33.00029,0,0,1,773.67672,495.625l-3.064,209.5A33.13847,33.13847,0,0,1,737.61617,737.64257Zm-493.4646-335a31.03529,31.03529,0,0,0-31,31v271a31.03529,31.03529,0,0,0,31,31h493.4646a31.12957,31.12957,0,0,0,30.99659-30.54688l3.06421-209.5a31,31,0,0,0-30.99683-31.45312H408.11959a25.17915,25.17915,0,0,1-16.96216-6.55127l-65.61132-46.85108a30.93108,30.93108,0,0,0-20.89185-8.09765Z"
285
+ fill="#3f3d56" transform="translate(-211.15157 -143.35743)"/>
286
+ <polygon fill="#ffb8b8"
287
+ points="568.285 599.561 556.025 599.561 552.193 552.273 568.287 552.274 568.285 599.561"/>
288
+ <path d="M782.56291,754.803l-39.53051-.00147v-.5a15.38605,15.38605,0,0,1,15.38647-15.38623h.001l24.1438.001Z"
289
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
290
+ <polygon fill="#ffb8b8"
291
+ points="705.285 599.561 693.025 599.561 687.193 552.273 705.287 552.274 705.285 599.561"/>
292
+ <path d="M919.56291,754.803l-39.53051-.00147v-.5a15.38605,15.38605,0,0,1,15.38647-15.38623h.001l24.1438.001Z"
293
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
294
+ <path d="M876.1253,596.73307a11.29143,11.29143,0,0,0,.29141-14.3014,9.29926,9.29926,0,0,0-1.071-1.09138l9.234-34.09151-15.39037,5.10584-6.4092,31.5911a11.37213,11.37213,0,0,0,1.01721,12.44942A7.89882,7.89882,0,0,0,876.1253,596.73307Z"
295
+ fill="#ffb8b8" transform="translate(-211.15157 -143.35743)"/>
296
+ <path d="M875.53292,575.76171a3.90859,3.90859,0,0,1-.57641-.043l-8.01953-1.20947a4.34336,4.34336,0,0,1-3.0127-2.0874,5.60344,5.60344,0,0,1-.70313-3.87256l10.00538-55.88184-6.78565-35.90137c-1.30835-6.90918,2.06665-13.8872,7.85108-16.23193a10.72756,10.72756,0,0,1,10.49316,1.34424,14.31655,14.31655,0,0,1,5.62134,10.20849l4.80249,45.77637-.05738.19922L879.69479,572.311A4.47572,4.47572,0,0,1,875.53292,575.76171Z"
297
+ fill="#ed6d52" transform="translate(-211.15157 -143.35743)"/>
298
+ <circle cx="662.01317" cy="272.83111" fill="#ffb8b8" r="24.56103"/>
299
+ <path d="M860.58956,530.35888a4.97146,4.97146,0,0,1-1.78906-.333l-38.82056-14.93164a4.98327,4.98327,0,0,1-3.16137-5.32764l1.55908-11.69287a26.50127,26.50127,0,0,1,6.24975-23.59033l.94532-1.04,11.48535-20.94385a12.25972,12.25972,0,0,1,16.73071-4.80761l20.28223,11.334a12.238,12.238,0,0,1,5.65014,6.82519,37.406,37.406,0,0,1-.5725,25.19629L865.26193,527.1538A5.03505,5.03505,0,0,1,860.58956,530.35888Z"
300
+ fill="#ed6d52" transform="translate(-211.15157 -143.35743)"/>
301
+ <path d="M758.85177,731.3081l-.05273-.01026a5.0008,5.0008,0,0,1-3.92164-6.05957l29.74854-130.03955a350.67931,350.67931,0,0,1,20.102-60.146l12.65625-28.85644,47.22608,21.56006,6.74291,12.33252a120.69737,120.69737,0,0,1,7.97632,43.02246l47.98658,140.63183a4.99969,4.99969,0,0,1-3.90967,6.54639l-26.269-.29687a4.04456,4.04456,0,0,1-.751.06347,4.96678,4.96678,0,0,1-4.62134-3.13476l-54.85425-142.186a1.0056,1.0056,0,0,0-.96191-.61963.97054.97054,0,0,0-.90283.65674l-52.04761,142.894a4.97557,4.97557,0,0,1-5.58789,3.21Z"
302
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
303
+ <path d="M794.76536,571.39216a10.05576,10.05576,0,0,0,5.36511-14.45584l23.523-26.90067-18.39942-2.50893-19.517,25.93a10.11027,10.11027,0,0,0,9.02832,17.93546Z"
304
+ fill="#ffb8b8" transform="translate(-211.15157 -143.35743)"/>
305
+ <path d="M805.854,552.44189a5.00894,5.00894,0,0,1-2.34766-.58594l-8.27783-4.415a5.00071,5.00071,0,0,1-1.86865-7.09131l30.57422-48.17725,5.30151-36.35644a14.03461,14.03461,0,1,1,27.52148,5.356l-10.946,44.811-36.06323,44.60449A4.98359,4.98359,0,0,1,805.854,552.44189Z"
306
+ fill="#ed6d52" transform="translate(-211.15157 -143.35743)"/>
307
+ <path d="M851.0572,395.92355c2.841-9.31634,19.25481-13.47286,32.89789-9.60742s23.44419,14.0001,25.72575,23.90877c5.05239,21.9422-21.30043,39.75058-16.525,61.69533,3.15948,14.51885,21.43586,28.24626,42.02041,31.56157-22.68517,4.74615-50.37341.57437-71.41-10.75935-13.09259-7.05379-24.07717-17.69856-23.91119-28.43533.10049-6.501,4.23589-12.24949,9.29313-17.21585s11.11108-9.38126,15.75221-14.56516,7.85664-11.391,6.50229-17.97171-8.23545-13.4434-17.4938-15.35808Z"
308
+ fill="#2f2e41" transform="translate(-211.15157 -143.35743)"/>
309
+ <path d="M987.84843,756.64257h-381a1,1,0,0,1,0-2h381a1,1,0,0,1,0,2Z"
310
+ fill="#ccc" transform="translate(-211.15157 -143.35743)"/>
311
+ </svg>
312
+ </div>
313
+ </div>
314
+ <div class="flex flex-wrap flex-col-reverse sm:flex-row">
315
+ <div class="w-full sm:w-1/2 p-6 mt-6">
316
+ <svg data-name="Layer 1" id="a5a6e2e0-10cc-4ff4-a9a1-60a047953d16" viewBox="0 0 979.99997 594.38459"
317
+ xmlns="http://www.w3.org/2000/svg">
318
+ <path d="M1020.10614,152.80771h-885a7.50272,7.50272,0,0,0-7.5,7.5v457a7.50272,7.50272,0,0,0,7.5,7.5h885a7.53035,7.53035,0,0,0,6.03-3.06,6.567,6.567,0,0,0,.94995-1.72,7.23422,7.23422,0,0,0,.52-2.72v-457A7.50271,7.50271,0,0,0,1020.10614,152.80771Zm4.5,464.5a4.50681,4.50681,0,0,1-4.5,4.5h-885a4.50681,4.50681,0,0,1-4.5-4.5v-457a4.50677,4.50677,0,0,1,4.5-4.5h885a4.50677,4.50677,0,0,1,4.5,4.5Z"
319
+ fill="#e6e6e6" transform="translate(-110.00002 -152.80771)"/>
320
+ <path d="M317.16365,298.37839a3.625,3.625,0,0,0,0,7.249h170.878a3.625,3.625,0,0,0,.119-7.249q-.05951-.001-.119,0Z"
321
+ data-name="Path 40"
322
+ fill="#e6e6e6"
323
+ id="a7fa35fd-6343-4c7d-bffa-edf3207f3b92" transform="translate(-110.00002 -152.80771)"/>
324
+ <path d="M317.16365,265.37839a3.625,3.625,0,0,0,0,7.249h48.878a3.625,3.625,0,0,0,.119-7.249q-.05951-.001-.119,0Z"
325
+ data-name="Path 40"
326
+ fill="#e6e6e6"
327
+ id="ab6fdd8c-2729-46a7-820c-8bc436468813" transform="translate(-110.00002 -152.80771)"/>
328
+ <path d="M317.16365,332.37839a3.625,3.625,0,0,0,0,7.249h170.878a3.625,3.625,0,0,0,.119-7.249q-.05951-.001-.119,0Z"
329
+ data-name="Path 40"
330
+ fill="#e6e6e6"
331
+ id="a01fe1c8-ee6f-45d9-a685-f0d827ea9125" transform="translate(-110.00002 -152.80771)"/>
332
+ <path d="M835.04864,298.37839a3.625,3.625,0,0,1,0,7.249h-170.878a3.625,3.625,0,1,1-.119-7.249q.0595-.001.119,0Z"
333
+ data-name="Path 40"
334
+ fill="#e6e6e6"
335
+ id="a656137b-e162-470a-b235-9e9e70a6b83f" transform="translate(-110.00002 -152.80771)"/>
336
+ <path d="M835.04864,265.37839a3.625,3.625,0,0,1,0,7.249h-48.878a3.625,3.625,0,0,1-.119-7.249q.0595-.001.119,0Z"
337
+ data-name="Path 40"
338
+ fill="#e6e6e6"
339
+ id="ab51dad3-2e04-4951-ae1a-30de5d5a2f94" transform="translate(-110.00002 -152.80771)"/>
340
+ <path d="M835.04864,332.37839a3.625,3.625,0,0,1,0,7.249h-170.878a3.625,3.625,0,1,1-.119-7.249q.0595-.001.119,0Z"
341
+ data-name="Path 40"
342
+ fill="#e6e6e6"
343
+ id="bf1d7626-f896-438d-a0f7-98819d5cb6e1" transform="translate(-110.00002 -152.80771)"/>
344
+ <path d="M546.43249,472.34033h-234.838c-4.578,0-8.288-2.643-8.293-5.9v-51.042c.005-3.257,3.715-5.9,8.293-5.9h234.838c4.578,0,8.288,2.643,8.293,5.9v51.041C554.72149,469.69634,551.0105,472.33633,546.43249,472.34033Z"
345
+ data-name="Path 78"
346
+ fill="#e6e6e6"
347
+ id="b3e0347c-1fde-42d2-8504-0cab7eeb999a" transform="translate(-110.00002 -152.80771)"/>
348
+ <path d="M272.43372,348.76767a42.83073,42.83073,0,0,1-4.43,19.04c-.33.68-.68,1.34-1.05,2h-75.17c-.37-.66-.72-1.32-1.05-2a43.07126,43.07126,0,1,1,81.7-19.04Z"
349
+ fill="#2f2e41" transform="translate(-110.00002 -152.80771)"/>
350
+ <circle cx="120.45996" cy="185.05228" fill="#fff" r="14.71922"/>
351
+ <circle cx="120.45996" cy="185.05228" fill="#3f3d56" r="4.90642"/>
352
+ <path d="M187.59285,308.71174c-3.47748-15.5738,7.63867-31.31043,24.82861-35.14881s33.94422,5.67511,37.42169,21.2489-7.91491,21.31769-25.10486,25.156S191.07039,324.28559,187.59285,308.71174Z"
353
+ fill="#ed6d52" transform="translate(-110.00002 -152.80771)"/>
354
+ <path d="M286.60614,235.80771h-124a5.00181,5.00181,0,0,0-5,5v124a5.00181,5.00181,0,0,0,5,5h124a5.00181,5.00181,0,0,0,5-5v-124A5.00181,5.00181,0,0,0,286.60614,235.80771Zm3,129a3.00883,3.00883,0,0,1-3,3h-124a3.00883,3.00883,0,0,1-3-3v-124a3.00879,3.00879,0,0,1,3-3h124a3.00878,3.00878,0,0,1,3,3Z"
355
+ fill="#3f3d56" transform="translate(-110.00002 -152.80771)"/>
356
+ <path d="M993.60614,235.80771h-124a5.00181,5.00181,0,0,0-5,5v124a5.00181,5.00181,0,0,0,5,5h124a5.00181,5.00181,0,0,0,5-5v-124A5.00181,5.00181,0,0,0,993.60614,235.80771Zm3,129a3.00883,3.00883,0,0,1-3,3h-124a3.00883,3.00883,0,0,1-3-3v-124a3.00879,3.00879,0,0,1,3-3h124a3.00878,3.00878,0,0,1,3,3Z"
357
+ fill="#3f3d56" transform="translate(-110.00002 -152.80771)"/>
358
+ <rect fill="#e6e6e6" height="2" width="897" x="20.60613" y="38.33008"/>
359
+ <circle cx="42.60613" cy="22" fill="#e6e6e6" r="9"/>
360
+ <circle cx="71.60613" cy="22" fill="#e6e6e6" r="9"/>
361
+ <circle cx="100.60613" cy="22" fill="#e6e6e6" r="9"/>
362
+ <ellipse cx="272.03922" cy="372.65023" fill="#2f2e41" rx="6.59448"
363
+ ry="21.00616" transform="translate(-298.74778 196.41424) rotate(-50.95946)"/>
364
+ <ellipse cx="183.03922" cy="335.65023" fill="#2f2e41" rx="6.59448"
365
+ ry="21.00616" transform="translate(-302.95142 113.5931) rotate(-50.95946)"/>
366
+ <path d="M511.59,440.45835H276.752c-4.578,0-8.288-2.643-8.293-5.9v-51.042c.005-3.257,3.715-5.9,8.293-5.9H511.59c4.578,0,8.288,2.643,8.293,5.9v51.041C519.879,437.81436,516.168,440.45435,511.59,440.45835Zm-234.838-60.484c-2.747,0-4.973,1.586-4.976,3.54v51.041c0,1.954,2.229,3.538,4.976,3.54H511.59c2.747,0,4.973-1.586,4.976-3.54v-51.039c0-1.954-2.229-3.538-4.976-3.54Z"
367
+ data-name="Path 78"
368
+ fill="#3f3d56"
369
+ id="b7f0d0fe-5878-4d7b-9169-ef767dd243e7" transform="translate(-110.00002 -152.80771)"/>
370
+ <circle cx="201.12371" cy="255.8202" fill="#ed6d52" r="19"/>
371
+ <path d="M352.16365,395.0034a3.625,3.625,0,0,0,0,7.249h135.878a3.625,3.625,0,0,0,.119-7.249q-.05951-.001-.119,0Z"
372
+ data-name="Path 40"
373
+ fill="#3f3d56"
374
+ id="b9068c95-bea0-463e-9980-b1b2ab5c3777" transform="translate(-110.00002 -152.80771)"/>
375
+ <path d="M352.16365,415.0034a3.625,3.625,0,0,0,0,7.249h135.878a3.625,3.625,0,0,0,.119-7.249q-.05951-.001-.119,0Z"
376
+ data-name="Path 40"
377
+ fill="#3f3d56"
378
+ id="b4ef2f28-17ab-4899-adbe-de2d22554602" transform="translate(-110.00002 -152.80771)"/>
379
+ <path d="M606.5,388.19229a4.50493,4.50493,0,0,0-4.5,4.5v94a4.50492,4.50492,0,0,0,4.5,4.5h365a4.50491,4.50491,0,0,0,4.5-4.5v-94a4.50492,4.50492,0,0,0-4.5-4.5Z"
380
+ fill="#ed6d52" transform="translate(-110.00002 -152.80771)"/>
381
+ <path d="M971.5,747.19229h-365a7.5082,7.5082,0,0,1-7.5-7.5v-346a7.5082,7.5082,0,0,1,7.5-7.5h365a7.5082,7.5082,0,0,1,7.5,7.5v346A7.50819,7.50819,0,0,1,971.5,747.19229Zm-365-358a4.50493,4.50493,0,0,0-4.5,4.5v346a4.50492,4.50492,0,0,0,4.5,4.5h365a4.50491,4.50491,0,0,0,4.5-4.5v-346a4.50492,4.50492,0,0,0-4.5-4.5Z"
382
+ fill="#3f3d56" transform="translate(-110.00002 -152.80771)"/>
383
+ <path d="M871.84544,530.50788h-109.499v2h109.499a20.32666,20.32666,0,0,1,0,40.65332H706.15452a20.32666,20.32666,0,0,1,0-40.65332h6.1919v-2h-6.1919a22.32666,22.32666,0,0,0,0,44.65332H871.84544a22.32666,22.32666,0,0,0,0-44.65332Z"
384
+ fill="#e6e6e6" transform="translate(-110.00002 -152.80771)"/>
385
+ <path d="M871.84544,599.50788h-109.499v2h109.499a20.32666,20.32666,0,0,1,0,40.65332H706.15452a20.32666,20.32666,0,0,1,0-40.65332h6.1919v-2h-6.1919a22.32666,22.32666,0,0,0,0,44.65332H871.84544a22.32666,22.32666,0,0,0,0-44.65332Z"
386
+ fill="#e6e6e6" transform="translate(-110.00002 -152.80771)"/>
387
+ <path d="M871.84544,668.50788h-109.499v2h109.499a20.32666,20.32666,0,0,1,0,40.65332H706.15452a20.32666,20.32666,0,1,1,0-40.65332h6.1919v-2h-6.1919a22.32666,22.32666,0,1,0,0,44.65332H871.84544a22.32666,22.32666,0,0,0,0-44.65332Z"
388
+ fill="#e6e6e6" transform="translate(-110.00002 -152.80771)"/>
389
+ <path d="M724.70593,525.22421a5.94683,5.94683,0,0,0,0,11.89205h26.08573a5.94683,5.94683,0,0,0,.19525-11.89205q-.09763-.00165-.19525,0Z"
390
+ data-name="Path 40"
391
+ fill="#3f3d56"
392
+ id="a8b0d479-597c-4010-af9e-a52c1cd74b0b" transform="translate(-110.00002 -152.80771)"/>
393
+ <path d="M724.70593,595.22421a5.94683,5.94683,0,0,0,0,11.89205h26.08573a5.94683,5.94683,0,0,0,.19525-11.89205q-.09763-.00165-.19525,0Z"
394
+ data-name="Path 40"
395
+ fill="#3f3d56"
396
+ id="a7546b0b-85a8-4a20-88fc-d2fe18f994f7" transform="translate(-110.00002 -152.80771)"/>
397
+ <path d="M724.70593,663.22421a5.94683,5.94683,0,0,0,0,11.89205h26.08573a5.94683,5.94683,0,1,0,.19525-11.89205q-.09763-.00165-.19525,0Z"
398
+ data-name="Path 40"
399
+ fill="#3f3d56"
400
+ id="bacde4d6-97e6-4618-95f8-28bf875e16b4" transform="translate(-110.00002 -152.80771)"/>
401
+ <path d="M714.3595,546.88852a5.94683,5.94683,0,0,0,0,11.89205H863.44522a5.94683,5.94683,0,0,0,.19525-11.89205q-.09762-.00165-.19525,0Z"
402
+ data-name="Path 40"
403
+ fill="#e6e6e6"
404
+ id="fd9dd827-52d7-4fa1-83f4-c293a523bb58" transform="translate(-110.00002 -152.80771)"/>
405
+ <path d="M714.3595,615.88852a5.94683,5.94683,0,0,0,0,11.89205H863.44522a5.94683,5.94683,0,0,0,.19525-11.89205q-.09762-.00165-.19525,0Z"
406
+ data-name="Path 40"
407
+ fill="#e6e6e6"
408
+ id="bfc71887-2ccd-4bb6-bfbb-8f0c239a6e0a" transform="translate(-110.00002 -152.80771)"/>
409
+ <path d="M714.3595,684.88852a5.94683,5.94683,0,0,0,0,11.89205H863.44522a5.94683,5.94683,0,0,0,.19525-11.89205q-.09762-.00165-.19525,0Z"
410
+ data-name="Path 40"
411
+ fill="#e6e6e6"
412
+ id="e6544ee3-e65e-4949-b2cc-84e2c4255103" transform="translate(-110.00002 -152.80771)"/>
413
+ <path d="M677.91614,439.68771a24,24,0,1,1-24-24A23.898,23.898,0,0,1,677.91614,439.68771Z"
414
+ fill="#fff" transform="translate(-110.00002 -152.80771)"/>
415
+ <path d="M696.95718,420.74627a5.94683,5.94683,0,0,0,0,11.89205H846.0429a5.94683,5.94683,0,1,0,.19525-11.89205q-.09762-.00165-.19525,0Z"
416
+ data-name="Path 40"
417
+ fill="#fff"
418
+ id="af09933a-d45c-4314-8237-a939141c4532" transform="translate(-110.00002 -152.80771)"/>
419
+ <path d="M696.95718,446.74627a5.94683,5.94683,0,0,0,0,11.89205H942.0429a5.94683,5.94683,0,1,0,.19525-11.89205q-.09762-.00165-.19525,0Z"
420
+ data-name="Path 40"
421
+ fill="#fff"
422
+ id="b4790680-994e-4faf-b8ff-fb3e3aecf554" transform="translate(-110.00002 -152.80771)"/>
423
+ <path d="M1060.48615,556.19772a239.37381,239.37381,0,0,1-11.18,66.13c-.14991.49-.32.98-.48,1.48h-41.69995c.04-.44.09-.94.13-1.48.00989-.17.02991-.34.03992-.52h12.81a4.50681,4.50681,0,0,0,4.5-4.5v-220.94c.98,2.14,1.99,4.36,3,6.67C1043.49616,439.13766,1062.4162,495.49771,1060.48615,556.19772Z"
424
+ fill="#e6e6e6" transform="translate(-110.00002 -152.80771)"/>
425
+ <path d="M1057.354,622.32464c-.34854.49682-.71188.99363-1.08265,1.48307H1024.9861c.2373-.42268.51166-.9195.83052-1.48307,5.1685-9.3285,20.46629-37.21754,34.66666-66.1299,15.26076-31.07025,29.26091-63.31951,28.08185-74.99123C1088.92847,483.83594,1099.48789,564.08462,1057.354,622.32464Z"
426
+ fill="#e6e6e6" transform="translate(-110.00002 -152.80771)"/>
427
+ <path d="M124.98223,590.48843a121.42747,121.42747,0,0,0,5.67221,33.5665c.079.25217.16184.50058.24464.75278H152.0673c-.02259-.22585-.04519-.478-.06777-.75278-1.41147-16.22621-9.549-114.98352.18068-131.87218C151.32956,493.55281,123.34117,538.93045,124.98223,590.48843Z"
428
+ fill="#e6e6e6" transform="translate(-110.00002 -152.80771)"/>
429
+ <path d="M126.57059,624.05493c.17691.25217.36134.50435.54954.75278H143c-.12045-.21455-.25971-.46672-.42156-.75278-2.62345-4.735-10.38836-18.891-17.59625-33.5665-7.74612-15.77077-14.85238-32.14-14.2539-38.06437C110.5439,553.76024,105.1841,594.4932,126.57059,624.05493Z"
430
+ fill="#e6e6e6" transform="translate(-110.00002 -152.80771)"/>
431
+ <ellipse cx="978.64551" cy="310.2329" fill="#2f2e41" rx="21.00616"
432
+ ry="6.59448" transform="translate(-156.48675 101.78905) rotate(-14.48222)"/>
433
+ <ellipse cx="890.64551" cy="314.2329" fill="#2f2e41" rx="21.00616"
434
+ ry="6.59448" transform="translate(148.68917 863.29623) rotate(-67.4341)"/>
435
+ <circle cx="826.53169" cy="151.49126" fill="#2f2e41" r="42.01233"/>
436
+ <path d="M930.40973,360.16717l-12.76312.05933c-9.34253-9.197-7.96014-16.57959-.10626-22.86725l12.76306-.05932C924.41913,344.54489,922.85071,352.06509,930.40973,360.16717Z"
437
+ fill="#2f2e41" transform="translate(-110.00002 -152.80771)"/>
438
+ <ellipse cx="921.38031" cy="362.60236" fill="#2f2e41" rx="10.63602"
439
+ ry="3.98853" transform="translate(-167.16729 361.0123) rotate(-30.26634)"/>
440
+ <path d="M953.40973,360.16717l-12.76312.05933c-9.34253-9.197-7.96014-16.57959-.10626-22.86725l12.76306-.05932C947.41913,344.54489,945.85071,352.06509,953.40973,360.16717Z"
441
+ fill="#2f2e41" transform="translate(-110.00002 -152.80771)"/>
442
+ <ellipse cx="944.38031" cy="362.60236" fill="#2f2e41" rx="10.63602"
443
+ ry="3.98853" transform="translate(-164.0322 372.60476) rotate(-30.26634)"/>
444
+ <circle cx="825.41866" cy="140.86029" fill="#fff" r="14.35864"/>
445
+ <circle cx="825.50012" cy="147.76738" fill="#3f3d56" r="4.78622"/>
446
+ <path d="M977.103,265.03968c3.32163-15.20789-7.5934-30.50849-24.37949-34.17481s-33.08659,5.68993-36.40825,20.89782,7.81762,20.75932,24.60368,24.4257S973.78139,280.24758,977.103,265.03968Z"
447
+ fill="#ed6d52" transform="translate(-110.00002 -152.80771)"/>
448
+ <path d="M945.02178,322.60687a9.57243,9.57243,0,1,1-19.14455.10779l-.0001-.01879c-.02457-5.28665,4.256-6.40152,9.54268-6.42606S944.99723,317.32023,945.02178,322.60687Z"
449
+ fill="#fff" transform="translate(-110.00002 -152.80771)"/>
450
+ <path d="M670.60614,456.87771v.05a23.97793,23.97793,0,0,1-32.44.86c-.02-.3-.03-.61-.03-.91a16.235,16.235,0,1,1,32.47,0Z"
451
+ fill="#2f2e41" transform="translate(-110.00002 -152.80771)"/>
452
+ <circle cx="544.78015" cy="299.95429" fill="#fff" r="5.5498"/>
453
+ <circle cx="544.78015" cy="299.95429" fill="#3f3d56" r="1.84994"/>
454
+ <path d="M638.61735,441.7718c-1.31116-5.872,2.88012-11.80542,9.3615-13.25266s12.79848,2.13977,14.10964,8.01178-2.98427,8.03772-9.46565,9.48494S639.92854,447.64384,638.61735,441.7718Z"
455
+ fill="#ed6d52" transform="translate(-110.00002 -152.80771)"/>
456
+ <path d="M785.78856,386.63612c-2.30449-10.06463,2.94217-21.10222,11.77583-26.25067,4.05692-2.36446,9.14962-3.59805,13.59336-1.48868a5.49863,5.49863,0,0,1,3.415,4.01926,4.58077,4.58077,0,0,1-2.85573,4.62611,6.26518,6.26518,0,0,1-5.82556-.00614,7.33361,7.33361,0,0,1-3.22331-5.81727c-.432-5.74316,3.96989-9.94565,9.04856-11.74214,6.507-2.30172,13.521-1.22514,20.25778-1.06908a89.86763,89.86763,0,0,0,19.24093-1.671,91.53518,91.53518,0,0,0,38.64991-17.64415c1.52117-1.18545-.61547-3.29482-2.12132-2.12132a88.49622,88.49622,0,0,1-38.98231,17.17928,98.91644,98.91644,0,0,1-22.04277,1.03458c-7.033-.34085-14.66288-.35062-20.696,3.8351-4.91139,3.40746-7.83141,9.56448-5.70873,15.45325a9.3664,9.3664,0,0,0,5.43768,5.78709,9.59539,9.59539,0,0,0,7.35246-.56654,7.41017,7.41017,0,0,0,2.06294-12.18459c-3.88847-3.6221-10.14291-3.86754-14.91964-2.15723-11.00255,3.93945-18.65776,15.65161-17.9703,27.31328a26.011,26.011,0,0,0,.61838,4.26834c.43073,1.88118,3.32387,1.085,2.89284-.79752Z"
457
+ fill="#3f3d56" transform="translate(-110.00002 -152.80771)"/>
458
+ </svg>
459
+
460
+ </div>
461
+ <div class="w-full sm:w-1/2 p-6 mt-6">
462
+ <div class="align-middle">
463
+ <h3 class="text-3xl text-gray-800 font-bold leading-none mb-3">
464
+ Let the AI do the job
465
+ </h3>
466
+ <p class="text-gray-600 mb-8">
467
+ Our powerful algorithms create aesthetic animations of your logo.
468
+ <br/>
469
+ <br/>
470
+ </p>
471
+ </div>
472
+ </div>
473
+ </div>
474
+ <div class="flex flex-wrap">
475
+ <div class="w-5/6 sm:w-1/2 p-6">
476
+ <h3 class="text-3xl text-gray-800 font-bold leading-none mb-3">
477
+ Download your favourite animation
478
+ </h3>
479
+ <p class="text-gray-600 mb-8">
480
+ You will be presented two different animated versions of your logo. Download your preferred one and
481
+ embed it into your digital content!
482
+ <br/>
483
+ <br/>
484
+ </p>
485
+ </div>
486
+ <div class="w-full sm:w-1/2 p-6">
487
+ <svg data-name="Layer 1" id="a1dcc6ba-40dd-4863-b6e0-e0077a18cf8c" viewBox="0 0 729 658"
488
+ xmlns="http://www.w3.org/2000/svg">
489
+ <rect fill="#ed6d52" height="168" width="298" y="93"/>
490
+ <path d="M535.31443,392.74227h-300v-170h300Zm-298-2h296v-166h-296Z"
491
+ fill="#3f3d56" transform="translate(-215.31443 -146.74227)"/>
492
+ <rect fill="#f2f2f2" height="168" width="298" x="409" y="17"/>
493
+ <path d="M944.31443,316.74227h-300v-170h300Zm-298-2h296v-166h-296Z"
494
+ fill="#3f3d56" transform="translate(-215.31443 -146.74227)"/>
495
+ <path d="M727.42861,804.74227h-381a1,1,0,1,1,0-2h381a1,1,0,1,1,0,2Z"
496
+ fill="#ccc" transform="translate(-215.31443 -146.74227)"/>
497
+ <path d="M584.94579,568.47455A12.38034,12.38034,0,0,1,600.06091,556.989l16.372-23.07272,16.44782,6.5295-23.57812,32.25841a12.44744,12.44744,0,0,1-24.35686-4.22968Z"
498
+ fill="#a0616a" transform="translate(-215.31443 -146.74227)"/>
499
+ <path d="M602.90561,548.632l29.109-48.95706L620.155,468.04947l16.15228-43.07395.59568.25555c.39058.16734,9.56836,4.26281,10.92858,18.92951l18.56189,58.33693-49.53915,64.26717Z"
500
+ fill="#3f3d56" transform="translate(-215.31443 -146.74227)"/>
501
+ <path d="M444.813,368.65055a12.3803,12.3803,0,0,1,10.28248,15.9579l21.73782,18.10693-7.78163,15.89375-30.33887-26.00164a12.44745,12.44745,0,0,1,6.1002-23.95694Z"
502
+ fill="#a0616a" transform="translate(-215.31443 -146.74227)"/>
503
+ <path d="M463.2075,388.09077l46.55991,32.807,32.44778-9.37889,41.69617,19.43425-.30084.57414c-.197.37647-4.98984,9.21014-19.7178,9.43231l-59.59745,13.99592-60.2446-54.35977Z"
504
+ fill="#3f3d56" transform="translate(-215.31443 -146.74227)"/>
505
+ <polygon fill="#a0616a"
506
+ points="333.089 640.297 316.903 640.297 309.202 577.863 333.092 577.864 333.089 640.297"/>
507
+ <path d="M300.57258,635.67157h35.985a0,0,0,0,1,0,0v19.655a0,0,0,0,1,0,0H285.68572a0,0,0,0,1,0,0v-4.76818A14.88686,14.88686,0,0,1,300.57258,635.67157Z"
508
+ fill="#2f2e41"/>
509
+ <polygon fill="#a0616a"
510
+ points="397.784 640.297 381.597 640.297 373.897 577.863 397.786 577.864 397.784 640.297"/>
511
+ <path d="M365.26694,635.67157h35.985a0,0,0,0,1,0,0v19.655a0,0,0,0,1,0,0H350.38008a0,0,0,0,1,0,0v-4.76818A14.88686,14.88686,0,0,1,365.26694,635.67157Z"
512
+ fill="#2f2e41"/>
513
+ <polygon
514
+ fill="#2f2e41"
515
+ points="403.54 412.407 402.22 504.828 400.9 626.295 371.853 623.654 357.33 455.977 338.846 623.654 308.859 623.654 305.839 454.657 316.401 417.688 403.54 412.407"/>
516
+ <path d="M528.82027,564.99455l-4.425-.19151L544.949,451.57579l-8.41566-34.22331a7.48958,7.48958,0,0,1,4.6419-8.79869l15.14186-5.6777,5.34935-14.71141,42.20641,4.548L604.91075,404.21c4.57364,1.46685,42.23691,14.01,39.63821,28.30213-2.56488,14.10666-17.70915,58.48857-18.47822,60.73778l-2.65217,63.64914-.32624.16311c-.39269.19635-29.48413,14.50056-61.08849,14.49815C550.87438,571.55973,539.42684,569.78477,528.82027,564.99455Z"
517
+ fill="#3f3d56" transform="translate(-215.31443 -146.74227)"/>
518
+ <circle cx="581.11565" cy="350.49552" fill="#a0616a"
519
+ r="30.38881" transform="translate(-220.48051 545.53717) rotate(-61.33681)"/>
520
+ <path d="M605.73047,379.91276c-5.79138,6.16906-16.54677,2.85737-17.30139-5.57045a10.18165,10.18165,0,0,1,.01281-1.96632c.38963-3.73316,2.54637-7.12242,2.02975-11.06411a5.80213,5.80213,0,0,0-1.06186-2.71612c-4.615-6.17988-15.44834,2.7641-19.80382-2.83036-2.67068-3.43039.46868-8.83137-1.58076-12.66542-2.70493-5.06032-10.71679-2.56405-15.74108-5.33533-5.59013-3.08338-5.25578-11.66024-1.576-16.87713,4.48768-6.36221,12.356-9.75708,20.12633-10.24635s15.48707,1.61122,22.74136,4.4383c8.24232,3.21213,16.41577,7.65133,21.488,14.89884,6.16835,8.81374,6.762,20.663,3.67705,30.969C616.86429,367.21654,610.45975,374.87506,605.73047,379.91276Z"
521
+ fill="#2f2e41" transform="translate(-215.31443 -146.74227)"/>
522
+ </svg>
523
+ </div>
524
+ </div>
525
+ <h3 class="text-2xl text-gray-800 font-bold leading-none mb-3 text-center">
526
+ Don't forget to give feedback to our AI and tell us how you like the animations!
527
+ </h3>
528
+ </div>
529
+ </section>
530
+
531
+ <!-- Bottom wave -->
532
+ <!-- Change the colour #f8fafc to match the previous section colour -->
533
+ <svg class="wave-top" viewBox="0 0 1439 147" version="1.1" xmlns="http://www.w3.org/2000/svg"
534
+ xmlns:xlink="http://www.w3.org/1999/xlink">
535
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
536
+ <g transform="translate(-1.000000, -14.000000)" fill-rule="nonzero">
537
+ <g class="wave" fill="#f8fafc">
538
+ <path
539
+ d="M1440,84 C1383.555,64.3 1342.555,51.3 1317,45 C1259.5,30.824 1206.707,25.526 1169,22 C1129.711,18.326 1044.426,18.475 980,22 C954.25,23.409 922.25,26.742 884,32 C845.122,37.787 818.455,42.121 804,45 C776.833,50.41 728.136,61.77 713,65 C660.023,76.309 621.544,87.729 584,94 C517.525,105.104 484.525,106.438 429,108 C379.49,106.484 342.823,104.484 319,102 C278.571,97.783 231.737,88.736 205,84 C154.629,75.076 86.296,57.743 0,32 L0,0 L1440,0 L1440,84 Z"
540
+ ></path>
541
+ </g>
542
+ <g transform="translate(1.000000, 15.000000)" fill="#FFFFFF">
543
+ <g transform="translate(719.500000, 68.500000) rotate(-180.000000) translate(-719.500000, -68.500000) ">
544
+ <path d="M0,0 C90.7283404,0.927527913 147.912752,27.187927 291.910178,59.9119003 C387.908462,81.7278826 543.605069,89.334785 759,82.7326078 C469.336065,156.254352 216.336065,153.6679 0,74.9732496"
545
+ opacity="0.100000001"></path>
546
+ <path
547
+ d="M100,104.708498 C277.413333,72.2345949 426.147877,52.5246657 546.203633,45.5787101 C666.259389,38.6327546 810.524845,41.7979068 979,55.0741668 C931.069965,56.122511 810.303266,74.8455141 616.699903,111.243176 C423.096539,147.640838 250.863238,145.462612 100,104.708498 Z"
548
+ opacity="0.100000001"
549
+ ></path>
550
+ <path d="M1046,51.6521276 C1130.83045,29.328812 1279.08318,17.607883 1439,40.1656806 L1439,120 C1271.17211,77.9435312 1140.17211,55.1609071 1046,51.6521276 Z"
551
+ opacity="0.200000003"></path>
552
+ </g>
553
+ </g>
554
+ </g>
555
+ </g>
556
+ </svg>
557
+
558
+ <!-- Upload section -->
559
+ <!-- To do: Still in German -->
560
+ <section class="container mx-auto text-center py-6 mb-12" id="upload">
561
+ <h1 class="w-full my-2 text-5xl font-bold leading-tight text-center text-white">
562
+ Upload your logo here!
563
+ </h1>
564
+ <div class="w-full mb-4">
565
+ <div class="h-1 mx-auto bg-white w-1/6 opacity-25 my-0 py-0 rounded-t"></div>
566
+ </div>
567
+ <h3 class="my-4 text-3xl leading-tight">
568
+ Upload an SVG logo and get two animated versions for free!
569
+ </h3>
570
+ <form enctype=multipart/form-data method=post>
571
+ <input class="mx-auto lg:mx-0 bg-transparent text-gray-800 font-bold rounded-full my-6 py-4 px-8 transform transition "
572
+ name=file
573
+ type=file>
574
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
575
+ type=submit
576
+ value="Animate this logo">
577
+ </form>
578
+ </section>
579
+
580
+ <!-- Upper title -->
581
+
582
+ <!-- Lower title -->
583
+
584
+ <!-- Pricing -->
585
+
586
+ <!--Call to Action-->
587
+ <!--Footer-->
588
+ <!-- jQuery if you need it
589
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
590
+ -->
591
+ <script>
592
+ var scrollpos = window.scrollY;
593
+ var header = document.getElementById("header");
594
+ var navcontent = document.getElementById("nav-content");
595
+ var navaction = document.getElementById("navAction");
596
+ var brandname = document.getElementById("brandname");
597
+ var toToggle = document.querySelectorAll(".toggleColour");
598
+
599
+ document.addEventListener("scroll", function () {
600
+ /*Apply classes for slide in bar*/
601
+ scrollpos = window.scrollY;
602
+
603
+ if (scrollpos > 10) {
604
+ header.classList.add("bg-white");
605
+ navaction.classList.remove("bg-white");
606
+ navaction.classList.add("gradient");
607
+ navaction.classList.remove("text-gray-800");
608
+ navaction.classList.add("text-white");
609
+ //Use to switch toggleColour colours
610
+ for (var i = 0; i < toToggle.length; i++) {
611
+ toToggle[i].classList.add("text-gray-800");
612
+ toToggle[i].classList.remove("text-white");
613
+ }
614
+ header.classList.add("shadow");
615
+ navcontent.classList.remove("bg-gray-100");
616
+ navcontent.classList.add("bg-white");
617
+ } else {
618
+ header.classList.remove("bg-white");
619
+ navaction.classList.remove("gradient");
620
+ navaction.classList.add("bg-white");
621
+ navaction.classList.remove("text-white");
622
+ navaction.classList.add("text-gray-800");
623
+ //Use to switch toggleColour colours
624
+ for (var i = 0; i < toToggle.length; i++) {
625
+ toToggle[i].classList.add("text-white");
626
+ toToggle[i].classList.remove("text-gray-800");
627
+ }
628
+
629
+ header.classList.remove("shadow");
630
+ navcontent.classList.remove("bg-white");
631
+ navcontent.classList.add("bg-gray-100");
632
+ }
633
+ });
634
+ </script>
635
+ <script>
636
+ /*Toggle dropdown list*/
637
+ /*https://gist.github.com/slavapas/593e8e50cf4cc16ac972afcbad4f70c8*/
638
+
639
+ var navMenuDiv = document.getElementById("nav-content");
640
+ var navMenu = document.getElementById("nav-toggle");
641
+
642
+ document.onclick = check;
643
+
644
+ function check(e) {
645
+ var target = (e && e.target) || (event && event.srcElement);
646
+
647
+ //Nav Menu
648
+ if (!checkParent(target, navMenuDiv)) {
649
+ // click NOT on the menu
650
+ if (checkParent(target, navMenu)) {
651
+ // click on the link
652
+ if (navMenuDiv.classList.contains("hidden")) {
653
+ navMenuDiv.classList.remove("hidden");
654
+ } else {
655
+ navMenuDiv.classList.add("hidden");
656
+ }
657
+ } else {
658
+ // click both outside link and outside menu, hide menu
659
+ navMenuDiv.classList.add("hidden");
660
+ }
661
+ }
662
+ }
663
+
664
+ function checkParent(t, elm) {
665
+ while (t.parentNode) {
666
+ if (t == elm) {
667
+ return true;
668
+ }
669
+ t = t.parentNode;
670
+ }
671
+ return false;
672
+ }
673
+ </script>
674
+ </body>
675
+ </html>
models/deepSVG_hierarchical_ordered.pth.tar ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b44e93095426b18ef2dfaf5ebbced8b7d29dcd6ce79325681d976acb1366a22
3
+ size 41280531
show.html ADDED
@@ -0,0 +1,334 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8"/>
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
6
+ <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
7
+ <title>
8
+ Automatically animate your SVG logo
9
+ </title>
10
+ <meta name="description" content="Simple landind page"/>
11
+ <meta name="keywords" content=""/>
12
+ <meta name="author" content=""/>
13
+ <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/tailwind.min.css"/>
14
+ <!--Replace with your tailwind.css once created-->
15
+ <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700" rel="stylesheet"/>
16
+ <!-- Define your gradient here - use online tools to find a gradient matching your branding-->
17
+ <style>
18
+ .gradient {
19
+ background: linear-gradient(90deg, #d53369 0%, #daae51 100%);
20
+ }
21
+ </style>
22
+ </head>
23
+ <body class="leading-normal tracking-normal text-white gradient" style="font-family: 'Source Sans Pro', sans-serif;">
24
+
25
+ <!-- Nav -->
26
+ <nav class="fixed w-full z-30 top-0 text-white" id="header">
27
+ <div class="w-full container mx-auto flex flex-wrap items-center justify-between mt-0 py-2">
28
+ <div class="pl-4 flex items-center">
29
+ <a class="toggleColour no-underline hover:no-underline font-bold text-2xl text-gray-800 lg:text-4xl"
30
+ href="/">
31
+ SVG Logo Animation
32
+ </a>
33
+ </div>
34
+ <div class="block lg:hidden pr-4">
35
+ <button class="flex items-center p-1 text-pink-800 hover:text-gray-900 focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
36
+ id="nav-toggle">
37
+ <svg class="fill-current h-6 w-6" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
38
+ <title>Menu</title>
39
+ <path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z"/>
40
+ </svg>
41
+ </button>
42
+ </div>
43
+ <div class="w-full flex-grow lg:flex lg:items-center lg:w-auto hidden mt-2 lg:mt-0 bg-white lg:bg-transparent text-black p-4 lg:p-0 z-20"
44
+ id="nav-content">
45
+ <ul class="list-reset lg:flex justify-end flex-1 items-center">
46
+ <li class="mr-3">
47
+ </li>
48
+ <li class="mr-3">
49
+ </li>
50
+ <li class="mr-3">
51
+ </li>
52
+ </ul>
53
+ <button
54
+ class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full mt-4 lg:mt-0 py-4 px-8 shadow opacity-75 focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
55
+ id="navAction"
56
+ method="POST"
57
+ onclick="location.href = '{{ url_for('redirect_button') }}';"
58
+ >
59
+ Animate another logo
60
+ </button>
61
+
62
+ </div>
63
+ </div>
64
+ <hr class="border-b border-gray-100 opacity-25 my-0 py-0"/>
65
+ </nav>
66
+
67
+ <!-- Animated Logos -->
68
+ <section class="bg-white border-b py-8">
69
+ <div class="container max-w-5xl mx-auto m-8">
70
+ <h1 class="w-full my-2 text-5xl font-bold leading-tight text-center text-gray-800">
71
+ Animated logos
72
+ </h1>
73
+ <p class="text-xl text-gray-800 leading-none mb-3 text-center">
74
+ (Please note: Animation models are temporarily disabled. Try again later.)
75
+ </p>
76
+ <div class="w-full mb-4">
77
+ <div class="h-1 mx-auto gradient w-64 opacity-25 my-0 py-0 rounded-t"></div>
78
+ </div>
79
+
80
+ <div class="flex flex-wrap">
81
+ <div class="w-5/6 sm:w-1/2 p-6">
82
+ <h3 class="text-3xl text-gray-800 font-bold leading-none mb-3">
83
+ Animation 1
84
+ </h3>
85
+ <p class="text-xl text-gray-800 leading-none mb-3">
86
+ Please rate this animation using the buttons below.
87
+ </p>
88
+ <button class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
89
+ onclick="repeat_animated_entmoot()"
90
+ >
91
+ (Re)play animation
92
+ </button>
93
+ <a download="animation_optimizer.svg"
94
+ href="{{ url_for('animated_svg_entmoot', animation_filename_entmoot=animation_filename_entmoot) }}"
95
+ target="blank">
96
+ <button class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out">
97
+ Download animation
98
+ </button>
99
+ </a>
100
+ </div>
101
+ </div>
102
+
103
+ <div class="flex flex-wrap">
104
+ <div class="w-full sm:w-1/2 p-6">
105
+ <object data="{{ url_for('animated_svg_entmoot', animation_filename_entmoot=animation_filename_entmoot) }}"
106
+ id="animated_entmoot"
107
+ type="image/svg+xml"></object>
108
+ </div>
109
+ </div>
110
+ <form enctype=multipart/form-data method=post>
111
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
112
+ type=submit
113
+ style="background-color:#ff0000"
114
+ name="optimizer"
115
+ value="Very bad">
116
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
117
+ type=submit
118
+ style="background-color:#ff6600"
119
+ name="optimizer"
120
+ value="Bad">
121
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
122
+ type=submit
123
+ style="background-color:#FFFF00"
124
+ name="optimizer"
125
+ value="Okay">
126
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
127
+ type=submit
128
+ style="background-color:#80ff00"
129
+ name="optimizer"
130
+ value="Good">
131
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
132
+ type=submit
133
+ style="background-color:#15ff00"
134
+ name="optimizer"
135
+ value="Very good">
136
+ </form>
137
+
138
+ <div class="flex flex-wrap">
139
+ <div class="w-5/6 sm:w-1/2 p-6">
140
+ <h3 class="text-3xl text-gray-800 font-bold leading-none mb-3">
141
+ Animation 2
142
+ </h3>
143
+ <p class="text-xl text-gray-800 leading-none mb-3">
144
+ Please rate this animation using the buttons below.
145
+ </p>
146
+ <button class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
147
+ onclick="repeat_animated_genetic()"
148
+ >
149
+ (Re)play animation
150
+ </button>
151
+ <a download="animation_generator.svg"
152
+ href="{{ url_for('animated_svg_genetic', animation_filename_genetic=animation_filename_genetic) }}"
153
+ target="blank">
154
+ <button class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out">
155
+ Download animation
156
+ </button>
157
+ </a>
158
+ </div>
159
+ </div>
160
+
161
+ <div class="flex flex-wrap">
162
+ <div class="w-full sm:w-1/2 p-6">
163
+ <object data="{{ url_for('animated_svg_genetic', animation_filename_genetic=animation_filename_genetic) }}"
164
+ id="animated_genetic"
165
+ type="image/svg+xml"></object>
166
+ </div>
167
+ </div>
168
+
169
+ <form enctype=multipart/form-data method=post>
170
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
171
+ type=submit
172
+ style="background-color:#ff0000"
173
+ name="generator"
174
+ value="Very bad">
175
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
176
+ type=submit
177
+ style="background-color:#ff6600"
178
+ name="generator"
179
+ value="Bad">
180
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
181
+ type=submit
182
+ style="background-color:#FFFF00"
183
+ name="generator"
184
+ value="Okay">
185
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
186
+ type=submit
187
+ style="background-color:#80ff00"
188
+ name="generator"
189
+ value="Good">
190
+ <input class="mx-auto lg:mx-0 hover:underline bg-white text-gray-800 font-bold rounded-full my-6 py-4 px-8 shadow-lg focus:outline-none focus:shadow-outline transform transition hover:scale-105 duration-300 ease-in-out"
191
+ type=submit
192
+ style="background-color:#15ff00"
193
+ name="generator"
194
+ value="Very good">
195
+ </form>
196
+
197
+ </div>
198
+ </section>
199
+
200
+ <!-- Change the colour #f8fafc to match the previous section colour -->
201
+ <svg class="wave-top" viewBox="0 0 1439 147" version="1.1" xmlns="http://www.w3.org/2000/svg"
202
+ xmlns:xlink="http://www.w3.org/1999/xlink">
203
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
204
+ <g transform="translate(-1.000000, -14.000000)" fill-rule="nonzero">
205
+ <g class="wave" fill="#f8fafc">
206
+ <path
207
+ d="M1440,84 C1383.555,64.3 1342.555,51.3 1317,45 C1259.5,30.824 1206.707,25.526 1169,22 C1129.711,18.326 1044.426,18.475 980,22 C954.25,23.409 922.25,26.742 884,32 C845.122,37.787 818.455,42.121 804,45 C776.833,50.41 728.136,61.77 713,65 C660.023,76.309 621.544,87.729 584,94 C517.525,105.104 484.525,106.438 429,108 C379.49,106.484 342.823,104.484 319,102 C278.571,97.783 231.737,88.736 205,84 C154.629,75.076 86.296,57.743 0,32 L0,0 L1440,0 L1440,84 Z"
208
+ ></path>
209
+ </g>
210
+ <g transform="translate(1.000000, 15.000000)" fill="#FFFFFF">
211
+ <g transform="translate(719.500000, 68.500000) rotate(-180.000000) translate(-719.500000, -68.500000) ">
212
+ <path d="M0,0 C90.7283404,0.927527913 147.912752,27.187927 291.910178,59.9119003 C387.908462,81.7278826 543.605069,89.334785 759,82.7326078 C469.336065,156.254352 216.336065,153.6679 0,74.9732496"
213
+ opacity="0.100000001"></path>
214
+ <path
215
+ d="M100,104.708498 C277.413333,72.2345949 426.147877,52.5246657 546.203633,45.5787101 C666.259389,38.6327546 810.524845,41.7979068 979,55.0741668 C931.069965,56.122511 810.303266,74.8455141 616.699903,111.243176 C423.096539,147.640838 250.863238,145.462612 100,104.708498 Z"
216
+ opacity="0.100000001"
217
+ ></path>
218
+ <path d="M1046,51.6521276 C1130.83045,29.328812 1279.08318,17.607883 1439,40.1656806 L1439,120 C1271.17211,77.9435312 1140.17211,55.1609071 1046,51.6521276 Z"
219
+ opacity="0.200000003"></path>
220
+ </g>
221
+ </g>
222
+ </g>
223
+ </g>
224
+ </svg>
225
+
226
+ <!-- Upper title -->
227
+
228
+ <!-- Lower title -->
229
+
230
+ <!-- Pricing -->
231
+
232
+ <!--Call to Action-->
233
+ <!--Footer-->
234
+ <!-- jQuery if you need it
235
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
236
+ -->
237
+ <script>
238
+ var scrollpos = window.scrollY;
239
+ var header = document.getElementById("header");
240
+ var navcontent = document.getElementById("nav-content");
241
+ var navaction = document.getElementById("navAction");
242
+ var brandname = document.getElementById("brandname");
243
+ var toToggle = document.querySelectorAll(".toggleColour");
244
+
245
+ document.addEventListener("scroll", function () {
246
+ /*Apply classes for slide in bar*/
247
+ scrollpos = window.scrollY;
248
+
249
+ if (scrollpos > 10) {
250
+ header.classList.add("bg-white");
251
+ navaction.classList.remove("bg-white");
252
+ navaction.classList.add("gradient");
253
+ navaction.classList.remove("text-gray-800");
254
+ navaction.classList.add("text-white");
255
+ //Use to switch toggleColour colours
256
+ for (var i = 0; i < toToggle.length; i++) {
257
+ toToggle[i].classList.add("text-gray-800");
258
+ toToggle[i].classList.remove("text-white");
259
+ }
260
+ header.classList.add("shadow");
261
+ navcontent.classList.remove("bg-gray-100");
262
+ navcontent.classList.add("bg-white");
263
+ } else {
264
+ header.classList.remove("bg-white");
265
+ navaction.classList.remove("gradient");
266
+ navaction.classList.add("bg-white");
267
+ navaction.classList.remove("text-white");
268
+ navaction.classList.add("text-gray-800");
269
+ //Use to switch toggleColour colours
270
+ for (var i = 0; i < toToggle.length; i++) {
271
+ toToggle[i].classList.add("text-white");
272
+ toToggle[i].classList.remove("text-gray-800");
273
+ }
274
+
275
+ header.classList.remove("shadow");
276
+ navcontent.classList.remove("bg-white");
277
+ navcontent.classList.add("bg-gray-100");
278
+ }
279
+ });
280
+ </script>
281
+
282
+ <script>
283
+ function repeat_animated_genetic() {
284
+ let found_url_genetic = "{{ url_for('animated_svg_genetic', animation_filename_genetic=animation_filename_genetic) }}";
285
+ document.getElementById("animated_genetic").data = found_url_genetic;
286
+ }
287
+
288
+ function repeat_animated_entmoot() {
289
+ let found_url_entmoot = "{{ url_for('animated_svg_entmoot', animation_filename_entmoot=animation_filename_entmoot) }}";
290
+ document.getElementById("animated_entmoot").data = found_url_entmoot;
291
+ }
292
+ </script>
293
+
294
+ <script>
295
+ /*Toggle dropdown list*/
296
+ /*https://gist.github.com/slavapas/593e8e50cf4cc16ac972afcbad4f70c8*/
297
+
298
+ var navMenuDiv = document.getElementById("nav-content");
299
+ var navMenu = document.getElementById("nav-toggle");
300
+
301
+ document.onclick = check;
302
+
303
+ function check(e) {
304
+ var target = (e && e.target) || (event && event.srcElement);
305
+
306
+ //Nav Menu
307
+ if (!checkParent(target, navMenuDiv)) {
308
+ // click NOT on the menu
309
+ if (checkParent(target, navMenu)) {
310
+ // click on the link
311
+ if (navMenuDiv.classList.contains("hidden")) {
312
+ navMenuDiv.classList.remove("hidden");
313
+ } else {
314
+ navMenuDiv.classList.add("hidden");
315
+ }
316
+ } else {
317
+ // click both outside link and outside menu, hide menu
318
+ navMenuDiv.classList.add("hidden");
319
+ }
320
+ }
321
+ }
322
+
323
+ function checkParent(t, elm) {
324
+ while (t.parentNode) {
325
+ if (t == elm) {
326
+ return true;
327
+ }
328
+ t = t.parentNode;
329
+ }
330
+ return false;
331
+ }
332
+ </script>
333
+ </body>
334
+ </html>