thejagstudio commited on
Commit
5e6c751
·
verified ·
1 Parent(s): 4735ade

Upload 25 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,13 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ static/images/demo1.jpg filter=lfs diff=lfs merge=lfs -text
37
+ static/images/demo10.jpg filter=lfs diff=lfs merge=lfs -text
38
+ static/images/demo2.jpg filter=lfs diff=lfs merge=lfs -text
39
+ static/images/demo3.jpg filter=lfs diff=lfs merge=lfs -text
40
+ static/images/demo4.jpg filter=lfs diff=lfs merge=lfs -text
41
+ static/images/demo5.jpg filter=lfs diff=lfs merge=lfs -text
42
+ static/images/demo6.jpg filter=lfs diff=lfs merge=lfs -text
43
+ static/images/demo7.jpg filter=lfs diff=lfs merge=lfs -text
44
+ static/images/demo8.jpg filter=lfs diff=lfs merge=lfs -text
45
+ static/images/demo9.jpg filter=lfs diff=lfs merge=lfs -text
Dockerfile ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ FROM python:3
2
+ WORKDIR /usr/src/app
3
+ COPY requirements.txt ./
4
+ RUN pip install -r requirements.txt
5
+ COPY . .
6
+ EXPOSE 7860
7
+ CMD ["python","main.py"]
main.py ADDED
@@ -0,0 +1,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask,jsonify,request,send_file, render_template
2
+ from flask_cors import CORS, cross_origin
3
+ import requests
4
+ import json
5
+ from io import BytesIO
6
+ import base64
7
+
8
+ from transformers import SegformerImageProcessor, TFSegformerForSemanticSegmentation
9
+ from PIL import Image,ImageFilter,ImageEnhance
10
+ import matplotlib.pyplot as plt
11
+ import tensorflow as tf
12
+ import numpy as np
13
+
14
+ processor = SegformerImageProcessor.from_pretrained("mattmdjaga/segformer_b2_clothes")
15
+ model = TFSegformerForSemanticSegmentation.from_pretrained("mattmdjaga/segformer_b2_clothes")
16
+
17
+
18
+ app = Flask(__name__)
19
+ cors = CORS(app)
20
+ app.config['CORS_HEADERS'] = 'Content-Type'
21
+
22
+ def ade_palette():
23
+ return [[0,0,0],[0,0,0],[0,0,0],[0,0,0],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[255,255,255]]
24
+
25
+ colormap = np.asarray(ade_palette())
26
+
27
+ @app.route('/api/v1/sdxl/generate', methods=['post'])
28
+ def generator():
29
+ try:
30
+ data = request.get_json()
31
+ cameraAngle = data["cameraAngle"]
32
+ age = data["age"]
33
+ base = data["base"]
34
+ expression = data["expression"]
35
+ bodyType = data["bodyType"]
36
+ style = data["style"]
37
+ action = data["action"]
38
+ boobs = data["boobs"]
39
+ ass = data["ass"]
40
+ clothing = data["clothing"]
41
+ hairStyle = data["hairStyle"]
42
+ quality = data["quality"]
43
+ clothingColor = data["clothingColor"]
44
+ clothingType = data["clothingType"]
45
+ clothingMaterial = data["clothingMaterial"]
46
+ clothingPattern = data["clothingPattern"]
47
+ lighting = data["lighting"]
48
+ setting = data["setting"]
49
+ background = data["background"]
50
+ seed = int(data["seed"])
51
+
52
+ url = "https://api.prodia.com/v1/sdxl/generate"
53
+
54
+ prompt ="A "+cameraAngle+" portrait of a "+age+" "+base+" with a "+expression+" and "+bodyType+" body, "+action+", "+boobs+" boobs, "+ass+" ass, "+clothing+", "+hairStyle+" hair, "+quality+" quality, "+clothingColor+" "+clothingType+", "+clothingMaterial+" with "+clothingPattern+", "+lighting+" in "+setting+" with "+background+" in background"
55
+ model = "dreamshaperXL10_alpha2.safetensors [c8afe2ef]"
56
+ if style == "photographic":
57
+ model = "juggernautXL_v45.safetensors [e75f5471]"
58
+ # model = "sd_xl_base_1.0.safetensors [be9edd61]"
59
+
60
+ payload = json.dumps({
61
+ "model": model,
62
+ "prompt": prompt,
63
+ "style_preset": style,
64
+ "seed": seed,
65
+ })
66
+ headers = {
67
+ 'X-Prodia-Key': 'f2c81250-a5d8-461e-9caa-9fdb5abb5b60',
68
+ 'accept': 'application/json',
69
+ 'content-type': 'application/json'
70
+ }
71
+
72
+ response = requests.request("POST", url, headers=headers, data=payload)
73
+ try:
74
+ job = response.json()
75
+ return jsonify(job)
76
+ except Exception as e:
77
+ return jsonify(error=response.text,source="generator")
78
+ except Exception as e:
79
+ return jsonify(error=str(e),source="server")
80
+
81
+ @app.route('/api/v1/image/<jobId>', methods=['get'])
82
+ def image(jobId):
83
+ try:
84
+ url = "https://api.prodia.com/v1/job/"+ jobId.split(".")[0]
85
+
86
+ headers = {
87
+ 'X-Prodia-Key': 'f2c81250-a5d8-461e-9caa-9fdb5abb5b60',
88
+ 'accept': 'application/json'
89
+ }
90
+
91
+ responseImg = requests.request("GET", url, headers=headers)
92
+ if responseImg.json()["status"] == "succeeded":
93
+
94
+ url = "https://images.prodia.xyz/"+jobId
95
+ headers = {
96
+ 'accept': 'image/png'
97
+ }
98
+ response = requests.request("GET", url, headers=headers)
99
+ responseMain = app.response_class(
100
+ response=response.content,
101
+ status=200,
102
+ mimetype='image/png'
103
+ )
104
+ return responseMain
105
+ elif responseImg.json()["status"] == "failed":
106
+ url = "https://www.elegantthemes.com/blog/wp-content/uploads/2020/08/000-http-error-codes.png"
107
+ headers = {
108
+ 'accept': 'image/png'
109
+ }
110
+ response = requests.request("GET", url, headers=headers)
111
+ responseMain = app.response_class(
112
+ response=response.content,
113
+ status=200,
114
+ mimetype='image/png'
115
+ )
116
+ return responseMain
117
+ else:
118
+ return jsonify(responseImg.json())
119
+ except Exception as e:
120
+ return jsonify(error=str(e),source="server")
121
+
122
+ @app.route('/api/v1/nudify', methods=['post'])
123
+ def nudify():
124
+ global model,processor
125
+ try:
126
+ data = request.get_json()
127
+ if "/" not in data["image"]:
128
+ url = "https://images.prodia.xyz/"+ data["image"]
129
+ else:
130
+ url = data["image"]
131
+ cameraAngle = data["cameraAngle"]
132
+ age = data["age"]
133
+ base = data["base"]
134
+ expression = data["expression"]
135
+ bodyType = data["bodyType"]
136
+ style = data["style"]
137
+ action = data["action"]
138
+ boobs = data["boobs"]
139
+ ass = data["ass"]
140
+ clothing = data["clothing"]
141
+ hairStyle = data["hairStyle"]
142
+ quality = data["quality"]
143
+ clothingColor = data["clothingColor"]
144
+ clothingType = data["clothingType"]
145
+ clothingMaterial = data["clothingMaterial"]
146
+ clothingPattern = data["clothingPattern"]
147
+ lighting = data["lighting"]
148
+ setting = data["setting"]
149
+ background = data["background"]
150
+ seed = int(data["seed"])
151
+
152
+ prompt ="A "+cameraAngle+" angle portrait of a "+age+" naked "+base+" with a "+bodyType+" body, "+action+", "+boobs+" boobs, "+ass+" ass, nsfw, nude, naked"
153
+ modelGen = "sd_xl_base_1.0_inpainting_0.1.safetensors [5679a81a]"
154
+
155
+ input_img = Image.open(requests.get(url,stream=True).raw)
156
+ # input_img.save("input.png")
157
+ inputs = processor(images=input_img,return_tensors="tf")
158
+ outputs = model(**inputs)
159
+ logits = outputs.logits
160
+
161
+ # upsampled_logits = nn.functional.interpolate(
162
+ # logits,
163
+ # size=input_img.size[::-1],
164
+ # mode="bilinear",
165
+ # align_corners=False,
166
+ # )
167
+
168
+ # seg = upsampled_logits.argmax(dim=1)[0]
169
+ logits = tf.transpose(logits, [0, 2, 3, 1])
170
+ logits = tf.image.resize(
171
+ logits, input_img.size[::-1]
172
+ ) # We reverse the shape of `image` because `image.size` returns width and height.
173
+ seg = tf.math.argmax(logits, axis=-1)[0]
174
+
175
+ color_seg = np.zeros(
176
+ (seg.shape[0], seg.shape[1], 3), dtype=np.uint8
177
+ ) # height, width, 3
178
+ for label, color in enumerate(colormap):
179
+ color_seg[seg.numpy() == label, :] = color
180
+
181
+ # Show image + mask
182
+ pred_img = color_seg * 1
183
+ pred_img = pred_img.astype(np.uint8)
184
+
185
+ imgOut = Image.fromarray(pred_img)
186
+ # blur the mask
187
+ imgOut = imgOut.filter(ImageFilter.GaussianBlur(16))
188
+ imgOut = imgOut.convert("L")
189
+ # Apply thresholding to sharpen the image
190
+ threshold = 20
191
+ imgOut = imgOut.point(lambda p: p > threshold and 255)
192
+
193
+ # Enhance the sharpness of the image
194
+ enhancer = ImageEnhance.Sharpness(imgOut)
195
+ imgOut = enhancer.enhance(2.0)
196
+ imgOut = imgOut.filter(ImageFilter.GaussianBlur(8))
197
+ imgOut = imgOut.convert("RGB")
198
+
199
+ # imgOut.save("mask.png")
200
+ buffered = BytesIO()
201
+ imgOut.save(buffered, format="png")
202
+ base64_str = base64.b64encode(buffered.getvalue()).decode("utf-8")
203
+
204
+ url2 = "https://api.prodia.com/v1/sdxl/inpainting"
205
+
206
+ payload = json.dumps({
207
+ "inpainting_full_res": False,
208
+ "imageUrl": url,
209
+ "maskData": base64_str,
210
+ "model": modelGen,
211
+ "prompt": prompt,
212
+ "negative_prompt": "bad anatomy, bad hands, three hands, three legs, bad arms, missing legs, missing arms, poorly drawn face, bad face, fused face, cloned face, worst face, three crus, extra crus, fused crus, worst feet, three feet, fused feet, fused thigh, three thigh, fused thigh, extra thigh, worst thigh, missing fingers, extra fingers, ugly fingers, long fingers, horn, extra eyes, huge eyes, 2girl, amputation, disconnected limbs, cartoon, cg, 3d, unreal, animate",
213
+ "denoising_strength": 0.9,
214
+ "cfg_scale": 7,
215
+ "mask_blur": 4,
216
+ "inpainting_fill": 2,
217
+ "inpainting_mask_invert": 0,
218
+ "seed": seed,
219
+ "style_preset" : style
220
+ })
221
+ headers = {
222
+ 'X-Prodia-Key': 'f2c81250-a5d8-461e-9caa-9fdb5abb5b60',
223
+ 'accept': 'application/json',
224
+ 'content-type': 'application/json'
225
+ }
226
+
227
+ response = requests.request("POST", url2, headers=headers, data=payload)
228
+
229
+ try:
230
+ job = response.json()
231
+ return jsonify(job)
232
+ except Exception as e:
233
+ return jsonify(error=response.text,source="generator")
234
+ except Exception as e:
235
+ return jsonify(error=str(e),source="server")
236
+
237
+ @app.route('/', methods=['get'])
238
+ def home():
239
+ return render_template("index.html")
240
+
241
+
242
+ app.run(debug=True, host="0.0.0.0",port=7860)
requirements.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ flask
2
+ transformers
3
+ pillow
4
+ requests
5
+ flask_cors
6
+ matplotlib
7
+ tensorflow
8
+ numpy
9
+ Image
static/asset-manifest.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "files": {
3
+ "main.css": "/static/css/main.a31b487b.css",
4
+ "main.js": "/static/js/main.a221d807.js",
5
+ "index.html": "/index.html",
6
+ "main.a31b487b.css.map": "/static/css/main.a31b487b.css.map",
7
+ "main.a221d807.js.map": "/static/js/main.a221d807.js.map"
8
+ },
9
+ "entrypoints": [
10
+ "static/css/main.a31b487b.css",
11
+ "static/js/main.a221d807.js"
12
+ ]
13
+ }
static/css/main.a31b487b.css ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ .customShadow{background:#2d2d2d;border-radius:30px;box-shadow:inset 1px 1px 5px #434343,inset -1px -1px 5px #171717}.customSlider{-webkit-appearance:none;background:#0000;height:25px;outline:none;width:100%}.customSlider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;border-radius:15px;cursor:pointer;height:15px;width:15px}.customSlider::-moz-range-thumb{background:#fff;border-radius:15px;cursor:pointer;height:15px;opacity:0;width:15px}::-webkit-scrollbar{height:5px;width:5px}::-webkit-scrollbar-track{background:#181818}::-webkit-scrollbar-thumb{background:#606060}
2
+
3
+ /*
4
+ ! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com
5
+ */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.absolute{position:absolute}.relative{position:relative}.bottom-3{bottom:.75rem}.bottom-\[120\%\]{bottom:120%}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:.75rem}.top-4{top:1rem}.top-\[120\%\]{top:120%}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.row-span-5{grid-row:span 5/span 5}.my-1{margin-bottom:.25rem;margin-top:.25rem}.flex{display:flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1{height:.25rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-3{height:.75rem}.h-\[20\%\]{height:20%}.h-\[90\%\]{height:90%}.h-auto{height:auto}.h-fit{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.h-full{height:100%}.max-h-48{max-height:12rem}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-3{width:.75rem}.w-\[80\%\]{width:80%}.w-\[95\%\]{width:95%}.w-full{width:100%}.origin-bottom{transform-origin:bottom}.origin-top{transform-origin:top}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.scale-y-0{--tw-scale-y:0}.scale-y-0,.scale-y-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-y-100{--tw-scale-y:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-white\/25{border-color:#ffffff40}.bg-\[\#424242\]{--tw-bg-opacity:1;background-color:rgb(66 66 66/var(--tw-bg-opacity))}.bg-primary-950{--tw-bg-opacity:1;background-color:rgb(20 20 20/var(--tw-bg-opacity))}.bg-primary-950\/50{background-color:#14141480}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/25{background-color:#ffffff40}.bg-white\/30{background-color:#ffffff4d}.object-contain{object-fit:contain}.p-2{padding:.5rem}.p-5{padding:1.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.text-center{text-align:center}.font-bold{font-weight:700}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-white\/60{color:#fff9}.text-white\/75{color:#ffffffbf}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-inner{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 #0000000d;--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid #0000;outline-offset:2px}.drop-shadow-2xl{--tw-drop-shadow:drop-shadow(0 25px 25px #00000026);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.group:hover .group-hover\:scale-105,.group:hover .group-hover\:scale-y-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-y-100{--tw-scale-y:1}.group:hover .group-hover\:opacity-100{opacity:1}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:aspect-auto{aspect-ratio:auto}.md\:h-14{height:3.5rem}.md\:h-full{height:100%}.md\:w-\[90\%\]{width:90%}.md\:\!scale-y-0{--tw-scale-y:0!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}.md\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.md\:\!opacity-0{opacity:0!important}}@font-face{font-family:swiper-icons;font-style:normal;font-weight:400;src:url("data:application/font-woff;charset=utf-8;base64, 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")}:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:ease;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{-ms-overflow-style:none;overflow:auto;scrollbar-width:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,#00000080,#0000)}.swiper-lazy-preloader{border:4px solid #007aff;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid #0000;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
6
+ /*# sourceMappingURL=main.a31b487b.css.map*/
static/css/main.a31b487b.css.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"static/css/main.a31b487b.css","mappings":"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F,CACA,kDACE,qBACF,CACA,gEACE,sBACF,CACA,wDACE,UAAW,CACX,aAAc,CACd,UACF,CACA,+DACE,+BAAgC,CAChC,uBACF,CACA,6FACE,wDACF,CACA,0EACE,WAAY,CACZ,cAAe,CACf,yCACF,CACA,2FACE,uDACF,CACA,wEAGE,0CAA2C,CAD3C,aAAc,CADd,UAGF,CAGA,sLAcE,WAAY,CAHZ,MAAO,CAIP,mBAAoB,CALpB,iBAAkB,CAElB,KAAM,CACN,UAAW,CAGX,UACF,CACA,gCACE,oBACF,CACA,qCACE,wDACF,CACA,sCACE,uDACF,CACA,oCACE,sDACF,CACA,uCACE,wDACF,CACA,uBAWE,wBAA0E,CAE1E,wEAA6B,CAD7B,iBAAkB,CAClB,0BAA6B,CAH7B,qBAAsB,CARtB,WAAY,CAEZ,QAAS,CAET,iBAAkB,CAClB,gBAAiB,CAJjB,iBAAkB,CAElB,OAAQ,CAIR,oBAAqB,CARrB,UAAW,CAOX,UAMF,CACA,+HAEE,kDACF,CACA,6BACE,6BACF,CACA,6BACE,6BACF,CACA,iCACE,GACE,sBACF,CACA,GACE,uBACF,CACF","sources":["index.css","../node_modules/swiper/swiper.css"],"sourcesContent":[".customShadow {\n border-radius: 30px;\n background: #2d2d2d;\n box-shadow: inset 1px 1px 5px #434343, inset -1px -1px 5px #171717;\n}\n\n.customSlider {\n -webkit-appearance: none;\n width: 100%;\n height: 25px;\n outline: none;\n background: transparent;\n}\n\n.customSlider::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 15px;\n height: 15px;\n border-radius: 15px;\n background: white;\n cursor: pointer;\n}\n\n.customSlider::-moz-range-thumb {\n width: 15px;\n height: 15px;\n border-radius: 15px;\n background: white;\n cursor: pointer;\n opacity: 0;\n}\n\n::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n}\n\n::-webkit-scrollbar-track {\n background: #181818;\n}\n\n::-webkit-scrollbar-thumb {\n background: #606060;\n}\n\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n","/**\n * Swiper 11.0.5\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: November 22, 2023\n */\n\n/* FONT_START */\n@font-face {\n font-family: 'swiper-icons';\n src: url('data:application/font-woff;charset=utf-8;base64, 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');\n font-weight: 400;\n font-style: normal;\n}\n/* FONT_END */\n:root {\n --swiper-theme-color: #007aff;\n /*\n --swiper-preloader-color: var(--swiper-theme-color);\n --swiper-wrapper-transition-timing-function: initial;\n */\n}\n:host {\n position: relative;\n display: block;\n margin-left: auto;\n margin-right: auto;\n z-index: 1;\n}\n.swiper {\n margin-left: auto;\n margin-right: auto;\n position: relative;\n overflow: hidden;\n list-style: none;\n padding: 0;\n /* Fix of Webkit flickering */\n z-index: 1;\n display: block;\n}\n.swiper-vertical > .swiper-wrapper {\n flex-direction: column;\n}\n.swiper-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1;\n display: flex;\n transition-property: transform;\n transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);\n box-sizing: content-box;\n}\n.swiper-android .swiper-slide,\n.swiper-ios .swiper-slide,\n.swiper-wrapper {\n transform: translate3d(0px, 0, 0);\n}\n.swiper-horizontal {\n touch-action: pan-y;\n}\n.swiper-vertical {\n touch-action: pan-x;\n}\n.swiper-slide {\n flex-shrink: 0;\n width: 100%;\n height: 100%;\n position: relative;\n transition-property: transform;\n display: block;\n}\n.swiper-slide-invisible-blank {\n visibility: hidden;\n}\n/* Auto Height */\n.swiper-autoheight,\n.swiper-autoheight .swiper-slide {\n height: auto;\n}\n.swiper-autoheight .swiper-wrapper {\n align-items: flex-start;\n transition-property: transform, height;\n}\n.swiper-backface-hidden .swiper-slide {\n transform: translateZ(0);\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n}\n/* 3D Effects */\n.swiper-3d.swiper-css-mode .swiper-wrapper {\n perspective: 1200px;\n}\n.swiper-3d .swiper-wrapper {\n transform-style: preserve-3d;\n}\n.swiper-3d {\n perspective: 1200px;\n}\n.swiper-3d .swiper-slide,\n.swiper-3d .swiper-cube-shadow {\n transform-style: preserve-3d;\n}\n/* CSS Mode */\n.swiper-css-mode > .swiper-wrapper {\n overflow: auto;\n scrollbar-width: none;\n /* For Firefox */\n -ms-overflow-style: none;\n /* For Internet Explorer and Edge */\n}\n.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {\n display: none;\n}\n.swiper-css-mode > .swiper-wrapper > .swiper-slide {\n scroll-snap-align: start start;\n}\n.swiper-css-mode.swiper-horizontal > .swiper-wrapper {\n scroll-snap-type: x mandatory;\n}\n.swiper-css-mode.swiper-vertical > .swiper-wrapper {\n scroll-snap-type: y mandatory;\n}\n.swiper-css-mode.swiper-free-mode > .swiper-wrapper {\n scroll-snap-type: none;\n}\n.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {\n scroll-snap-align: none;\n}\n.swiper-css-mode.swiper-centered > .swiper-wrapper::before {\n content: '';\n flex-shrink: 0;\n order: 9999;\n}\n.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide {\n scroll-snap-align: center center;\n scroll-snap-stop: always;\n}\n.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {\n margin-inline-start: var(--swiper-centered-offset-before);\n}\n.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before {\n height: 100%;\n min-height: 1px;\n width: var(--swiper-centered-offset-after);\n}\n.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {\n margin-block-start: var(--swiper-centered-offset-before);\n}\n.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before {\n width: 100%;\n min-width: 1px;\n height: var(--swiper-centered-offset-after);\n}\n/* Slide styles start */\n/* 3D Shadows */\n.swiper-3d .swiper-slide-shadow,\n.swiper-3d .swiper-slide-shadow-left,\n.swiper-3d .swiper-slide-shadow-right,\n.swiper-3d .swiper-slide-shadow-top,\n.swiper-3d .swiper-slide-shadow-bottom,\n.swiper-3d .swiper-slide-shadow,\n.swiper-3d .swiper-slide-shadow-left,\n.swiper-3d .swiper-slide-shadow-right,\n.swiper-3d .swiper-slide-shadow-top,\n.swiper-3d .swiper-slide-shadow-bottom {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 10;\n}\n.swiper-3d .swiper-slide-shadow {\n background: rgba(0, 0, 0, 0.15);\n}\n.swiper-3d .swiper-slide-shadow-left {\n background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-right {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-top {\n background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-bottom {\n background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-lazy-preloader {\n width: 42px;\n height: 42px;\n position: absolute;\n left: 50%;\n top: 50%;\n margin-left: -21px;\n margin-top: -21px;\n z-index: 10;\n transform-origin: 50%;\n box-sizing: border-box;\n border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));\n border-radius: 50%;\n border-top-color: transparent;\n}\n.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,\n.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {\n animation: swiper-preloader-spin 1s infinite linear;\n}\n.swiper-lazy-preloader-white {\n --swiper-preloader-color: #fff;\n}\n.swiper-lazy-preloader-black {\n --swiper-preloader-color: #000;\n}\n@keyframes swiper-preloader-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n/* Slide styles end */\n"],"names":[],"sourceRoot":""}
static/favicon.ico ADDED
static/images/demo1.jpg ADDED

Git LFS Details

  • SHA256: 390a372a6ddeda6ff2e949373423dee07b218f23585075b913337e602eae8096
  • Pointer size: 132 Bytes
  • Size of remote file: 1.15 MB
static/images/demo10.jpg ADDED

Git LFS Details

  • SHA256: 54bdde9e763b6783b947c742fd287045ef24625be828cc33bef26f36d286b5c0
  • Pointer size: 132 Bytes
  • Size of remote file: 1.24 MB
static/images/demo2.jpg ADDED

Git LFS Details

  • SHA256: a8d9043478b2a503141e0534aa4abe1425d0a99df46dc4072190c584629d76a5
  • Pointer size: 132 Bytes
  • Size of remote file: 1.13 MB
static/images/demo3.jpg ADDED

Git LFS Details

  • SHA256: f338355548acaf334777fc5aa624656535df881e512b9e176d124410044270c0
  • Pointer size: 132 Bytes
  • Size of remote file: 1.2 MB
static/images/demo4.jpg ADDED

Git LFS Details

  • SHA256: 8a7fe30bb28346a516bca6b300ee32048be883e7c0b45295c4176825892154c1
  • Pointer size: 132 Bytes
  • Size of remote file: 1.06 MB
static/images/demo5.jpg ADDED

Git LFS Details

  • SHA256: f5ceecfa69d1c04e3a1c5bdb625d6231fd22ce209b62cbec3ae7fed3ab8b58fb
  • Pointer size: 132 Bytes
  • Size of remote file: 1.15 MB
static/images/demo6.jpg ADDED

Git LFS Details

  • SHA256: dc8dd3a5056f3f8ce169cb12dd5d937cda7c9df525204488abad892353a8b8f9
  • Pointer size: 132 Bytes
  • Size of remote file: 1.2 MB
static/images/demo7.jpg ADDED

Git LFS Details

  • SHA256: cee5f0216109ff2a8d4cf4ba69c8cae372fbd72162cd4f0e8e6638f4fbac4d83
  • Pointer size: 132 Bytes
  • Size of remote file: 1.17 MB
static/images/demo8.jpg ADDED

Git LFS Details

  • SHA256: 0566d6715f54c0e73119104003977e53ab5866fb1e619529a97a76442289a16b
  • Pointer size: 132 Bytes
  • Size of remote file: 1.19 MB
static/images/demo9.jpg ADDED

Git LFS Details

  • SHA256: 22560b319d83d636fad670ed43361a8c50a2df958532a2152e201bbd0afd53c3
  • Pointer size: 132 Bytes
  • Size of remote file: 1.22 MB
static/js/main.a221d807.js ADDED
The diff for this file is too large to render. See raw diff
 
static/js/main.a221d807.js.LICENSE.txt ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @license React
3
+ * react-dom.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+
11
+ /**
12
+ * @license React
13
+ * react-jsx-runtime.production.min.js
14
+ *
15
+ * Copyright (c) Facebook, Inc. and its affiliates.
16
+ *
17
+ * This source code is licensed under the MIT license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ */
20
+
21
+ /**
22
+ * @license React
23
+ * react.production.min.js
24
+ *
25
+ * Copyright (c) Facebook, Inc. and its affiliates.
26
+ *
27
+ * This source code is licensed under the MIT license found in the
28
+ * LICENSE file in the root directory of this source tree.
29
+ */
30
+
31
+ /**
32
+ * @license React
33
+ * scheduler.production.min.js
34
+ *
35
+ * Copyright (c) Facebook, Inc. and its affiliates.
36
+ *
37
+ * This source code is licensed under the MIT license found in the
38
+ * LICENSE file in the root directory of this source tree.
39
+ */
static/js/main.a221d807.js.map ADDED
The diff for this file is too large to render. See raw diff
 
static/logo192.png ADDED
static/logo512.png ADDED
static/manifest.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "short_name": "React App",
3
+ "name": "Create React App Sample",
4
+ "icons": [
5
+ {
6
+ "src": "favicon.ico",
7
+ "sizes": "64x64 32x32 24x24 16x16",
8
+ "type": "image/x-icon"
9
+ },
10
+ {
11
+ "src": "logo192.png",
12
+ "type": "image/png",
13
+ "sizes": "192x192"
14
+ },
15
+ {
16
+ "src": "logo512.png",
17
+ "type": "image/png",
18
+ "sizes": "512x512"
19
+ }
20
+ ],
21
+ "start_url": ".",
22
+ "display": "standalone",
23
+ "theme_color": "#000000",
24
+ "background_color": "#ffffff"
25
+ }
static/robots.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ # https://www.robotstxt.org/robotstxt.html
2
+ User-agent: *
3
+ Disallow:
templates/index.html ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <link rel="icon" href="/static/favicon.ico">
6
+ <meta name="viewport" content="width=device-width,initial-scale=1">
7
+ <meta name="theme-color" content="#000000">
8
+ <meta name="description" content="Web site created using create-react-app">
9
+ <link rel="apple-touch-icon" href="/static/logo192.png">
10
+ <link rel="manifest" href="/static/manifest.json">
11
+ <title>MesyAI</title>
12
+ <script defer="defer" src="/static/js/main.a221d807.js"></script>
13
+ <link href="/static/css/main.a31b487b.css" rel="stylesheet">
14
+ </head>
15
+ <body>
16
+ <div id="root"></div>
17
+ </body>
18
+ </html>