Mythus commited on
Commit
e37b01a
·
verified ·
1 Parent(s): 86f7ec6

Upload index.html

Browse files
Files changed (1) hide show
  1. templates/index.html +560 -0
templates/index.html ADDED
@@ -0,0 +1,560 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html class="sl-theme-dark">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
6
+ <meta content="Comet" property="og:title" />
7
+ <meta content="Stremio's fastest torrent/debrid search add-on." property="og:description" />
8
+ <meta content="https://comet.fast" property="og:url" />
9
+ <meta content="https://i.imgur.com/jmVoVMu.jpeg" property="og:image" />
10
+ <meta content="#6b6ef8" data-react-helmet="true" name="theme-color" />
11
+
12
+ <title>Comet - Stremio's fastest torrent/debrid search add-on.</title>
13
+ <link id="favicon" rel="icon" type="image/x-icon" href="https://i.imgur.com/jmVoVMu.jpeg">
14
+
15
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.15.1/cdn/themes/dark.css" />
16
+ <script type="module" src="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.15.1/cdn/shoelace-autoloader.js"></script>
17
+
18
+ <style>
19
+ :not(:defined) {
20
+ visibility: hidden;
21
+ }
22
+
23
+ body {
24
+ display: flex;
25
+ flex-direction: column;
26
+ justify-content: center;
27
+ align-items: center;
28
+ min-height: 100vh;
29
+ margin: 0;
30
+ background: radial-gradient(ellipse at bottom, #25292c 0%, #0c0d13 100%);
31
+ font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
32
+ font-size: 1rem;
33
+ font-weight: 400;
34
+ }
35
+
36
+ ::-webkit-scrollbar {
37
+ overflow: hidden;
38
+ }
39
+
40
+ .header {
41
+ text-align: center;
42
+ width: 40%;
43
+ margin-bottom: 20px;
44
+ }
45
+
46
+ .comet-text {
47
+ font-size: calc(1.375rem + 1.5vw);
48
+ font-weight: 500;
49
+ margin-bottom: 0;
50
+ }
51
+
52
+ .form-container {
53
+ background-color: #1a1d20;
54
+ padding: 2rem;
55
+ border-radius: 0.375rem;
56
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
57
+ width: 50%;
58
+ margin-bottom: 50px;
59
+ }
60
+
61
+ .form-item {
62
+ margin-bottom: 0.75rem;
63
+ }
64
+
65
+ .centered-item {
66
+ display: flex;
67
+ justify-content: center;
68
+ }
69
+
70
+ .stars {
71
+ position: fixed;
72
+ top: 0;
73
+ left: 0;
74
+ width: 100%;
75
+ height: 120%;
76
+ transform: rotate(-45deg);
77
+ z-index: -1;
78
+ }
79
+ .star {
80
+ --star-color: var(--primary-color);
81
+ --star-tail-length: 6em;
82
+ --star-tail-height: 2px;
83
+ --star-width: calc(var(--star-tail-length) / 6);
84
+ --fall-duration: 9s;
85
+ --tail-fade-duration: var(--fall-duration);
86
+ position: absolute;
87
+ top: var(--top-offset);
88
+ left: 0;
89
+ width: var(--star-tail-length);
90
+ height: var(--star-tail-height);
91
+ color: var(--star-color);
92
+ background: linear-gradient(45deg, currentColor, transparent);
93
+ border-radius: 50%;
94
+ filter: drop-shadow(0 0 6px currentColor);
95
+ transform: translate3d(104em, 0, 0);
96
+ animation: fall var(--fall-duration) var(--fall-delay) linear infinite, tail-fade var(--tail-fade-duration) var(--fall-delay) ease-out infinite;
97
+ }
98
+ @media screen and (max-width: 750px) {
99
+ .star {
100
+ animation: fall var(--fall-duration) var(--fall-delay) linear infinite;
101
+ }
102
+ }
103
+ .star:nth-child(1) {
104
+ --star-tail-length: 6.14em;
105
+ --top-offset: 3.64vh;
106
+ --fall-duration: 10.878s;
107
+ --fall-delay: 0.034s;
108
+ }
109
+ .star:nth-child(2) {
110
+ --star-tail-length: 5.08em;
111
+ --top-offset: 69.69vh;
112
+ --fall-duration: 11.372s;
113
+ --fall-delay: 1.679s;
114
+ }
115
+ .star:nth-child(3) {
116
+ --star-tail-length: 6.1em;
117
+ --top-offset: 64.3vh;
118
+ --fall-duration: 7.088s;
119
+ --fall-delay: 3.382s;
120
+ }
121
+ .star:nth-child(4) {
122
+ --star-tail-length: 6.66em;
123
+ --top-offset: 34.91vh;
124
+ --fall-duration: 6.184s;
125
+ --fall-delay: 9.61s;
126
+ }
127
+ .star:nth-child(5) {
128
+ --star-tail-length: 6.89em;
129
+ --top-offset: 24.92vh;
130
+ --fall-duration: 9.465s;
131
+ --fall-delay: 9.12s;
132
+ }
133
+ .star:nth-child(6) {
134
+ --star-tail-length: 6.5em;
135
+ --top-offset: 51.9vh;
136
+ --fall-duration: 10.52s;
137
+ --fall-delay: 0.214s;
138
+ }
139
+ .star:nth-child(7) {
140
+ --star-tail-length: 5.58em;
141
+ --top-offset: 24.15vh;
142
+ --fall-duration: 8.9s;
143
+ --fall-delay: 0.499s;
144
+ }
145
+ .star:nth-child(8) {
146
+ --star-tail-length: 6.26em;
147
+ --top-offset: 59.4vh;
148
+ --fall-duration: 7.671s;
149
+ --fall-delay: 1.694s;
150
+ }
151
+ .star:nth-child(9) {
152
+ --star-tail-length: 6.46em;
153
+ --top-offset: 54.52vh;
154
+ --fall-duration: 6.484s;
155
+ --fall-delay: 4.616s;
156
+ }
157
+ .star:nth-child(10) {
158
+ --star-tail-length: 5.34em;
159
+ --top-offset: 74.03vh;
160
+ --fall-duration: 8.565s;
161
+ --fall-delay: 1.159s;
162
+ }
163
+ .star:nth-child(11) {
164
+ --star-tail-length: 6.84em;
165
+ --top-offset: 90.94vh;
166
+ --fall-duration: 10.133s;
167
+ --fall-delay: 6.108s;
168
+ }
169
+ .star:nth-child(12) {
170
+ --star-tail-length: 5.48em;
171
+ --top-offset: 97.27vh;
172
+ --fall-duration: 10.248s;
173
+ --fall-delay: 4.186s;
174
+ }
175
+ .star:nth-child(13) {
176
+ --star-tail-length: 7.21em;
177
+ --top-offset: 17.75vh;
178
+ --fall-duration: 10.549s;
179
+ --fall-delay: 1.868s;
180
+ }
181
+ .star:nth-child(14) {
182
+ --star-tail-length: 6.35em;
183
+ --top-offset: 94.98vh;
184
+ --fall-duration: 9.682s;
185
+ --fall-delay: 9.327s;
186
+ }
187
+ .star:nth-child(15) {
188
+ --star-tail-length: 5.18em;
189
+ --top-offset: 52.87vh;
190
+ --fall-duration: 9.934s;
191
+ --fall-delay: 8.919s;
192
+ }
193
+ .star:nth-child(16) {
194
+ --star-tail-length: 5.07em;
195
+ --top-offset: 50.26vh;
196
+ --fall-duration: 11.826s;
197
+ --fall-delay: 8.478s;
198
+ }
199
+ .star:nth-child(17) {
200
+ --star-tail-length: 7.01em;
201
+ --top-offset: 85.73vh;
202
+ --fall-duration: 9.87s;
203
+ --fall-delay: 1.206s;
204
+ }
205
+ .star:nth-child(18) {
206
+ --star-tail-length: 6.39em;
207
+ --top-offset: 2.81vh;
208
+ --fall-duration: 10.292s;
209
+ --fall-delay: 4.394s;
210
+ }
211
+ .star:nth-child(19) {
212
+ --star-tail-length: 5.27em;
213
+ --top-offset: 56.83vh;
214
+ --fall-duration: 8.944s;
215
+ --fall-delay: 8.779s;
216
+ }
217
+ .star:nth-child(20) {
218
+ --star-tail-length: 6.07em;
219
+ --top-offset: 54.55vh;
220
+ --fall-duration: 9.324s;
221
+ --fall-delay: 7.375s;
222
+ }
223
+ .star:nth-child(21) {
224
+ --star-tail-length: 6.1em;
225
+ --top-offset: 87.67vh;
226
+ --fall-duration: 11.943s;
227
+ --fall-delay: 6.919s;
228
+ }
229
+ .star:nth-child(22) {
230
+ --star-tail-length: 5.98em;
231
+ --top-offset: 70.04vh;
232
+ --fall-duration: 9.995s;
233
+ --fall-delay: 4.472s;
234
+ }
235
+ .star:nth-child(23) {
236
+ --star-tail-length: 6.34em;
237
+ --top-offset: 77.19vh;
238
+ --fall-duration: 10.073s;
239
+ --fall-delay: 8.354s;
240
+ }
241
+ .star:nth-child(24) {
242
+ --star-tail-length: 6.95em;
243
+ --top-offset: 14.48vh;
244
+ --fall-duration: 9.028s;
245
+ --fall-delay: 7.638s;
246
+ }
247
+ .star:nth-child(25) {
248
+ --star-tail-length: 6.23em;
249
+ --top-offset: 8.48vh;
250
+ --fall-duration: 7.427s;
251
+ --fall-delay: 0.915s;
252
+ }
253
+ .star:nth-child(26) {
254
+ --star-tail-length: 5.09em;
255
+ --top-offset: 6.56vh;
256
+ --fall-duration: 7.706s;
257
+ --fall-delay: 2.841s;
258
+ }
259
+ .star:nth-child(27) {
260
+ --star-tail-length: 7.01em;
261
+ --top-offset: 92.85vh;
262
+ --fall-duration: 7.359s;
263
+ --fall-delay: 7.229s;
264
+ }
265
+ .star:nth-child(28) {
266
+ --star-tail-length: 5.49em;
267
+ --top-offset: 27.89vh;
268
+ --fall-duration: 10.344s;
269
+ --fall-delay: 2.346s;
270
+ }
271
+ .star:nth-child(29) {
272
+ --star-tail-length: 5.82em;
273
+ --top-offset: 56.08vh;
274
+ --fall-duration: 10.911s;
275
+ --fall-delay: 4.231s;
276
+ }
277
+ .star:nth-child(30) {
278
+ --star-tail-length: 7.24em;
279
+ --top-offset: 22.54vh;
280
+ --fall-duration: 9.344s;
281
+ --fall-delay: 2.112s;
282
+ }
283
+ .star:nth-child(31) {
284
+ --star-tail-length: 6.8em;
285
+ --top-offset: 59.49vh;
286
+ --fall-duration: 7.059s;
287
+ --fall-delay: 0.924s;
288
+ }
289
+ .star:nth-child(32) {
290
+ --star-tail-length: 5.22em;
291
+ --top-offset: 44.01vh;
292
+ --fall-duration: 10.121s;
293
+ --fall-delay: 0.591s;
294
+ }
295
+ .star:nth-child(33) {
296
+ --star-tail-length: 6.1em;
297
+ --top-offset: 78.61vh;
298
+ --fall-duration: 8.306s;
299
+ --fall-delay: 4.403s;
300
+ }
301
+ .star:nth-child(34) {
302
+ --star-tail-length: 7.26em;
303
+ --top-offset: 85.76vh;
304
+ --fall-duration: 7.058s;
305
+ --fall-delay: 6.772s;
306
+ }
307
+ .star:nth-child(35) {
308
+ --star-tail-length: 7.01em;
309
+ --top-offset: 77.17vh;
310
+ --fall-duration: 6.29s;
311
+ --fall-delay: 1.468s;
312
+ }
313
+ .star:nth-child(36) {
314
+ --star-tail-length: 5.17em;
315
+ --top-offset: 13.63vh;
316
+ --fall-duration: 6.739s;
317
+ --fall-delay: 0.019s;
318
+ }
319
+ .star:nth-child(37) {
320
+ --star-tail-length: 6.41em;
321
+ --top-offset: 70.18vh;
322
+ --fall-duration: 6.177s;
323
+ --fall-delay: 8.148s;
324
+ }
325
+ .star:nth-child(38) {
326
+ --star-tail-length: 5.32em;
327
+ --top-offset: 62.65vh;
328
+ --fall-duration: 10.476s;
329
+ --fall-delay: 0.98s;
330
+ }
331
+ .star:nth-child(39) {
332
+ --star-tail-length: 7.24em;
333
+ --top-offset: 66.12vh;
334
+ --fall-duration: 8.449s;
335
+ --fall-delay: 4.255s;
336
+ }
337
+ .star:nth-child(40) {
338
+ --star-tail-length: 6.73em;
339
+ --top-offset: 14.73vh;
340
+ --fall-duration: 9.857s;
341
+ --fall-delay: 6.867s;
342
+ }
343
+ .star:nth-child(41) {
344
+ --star-tail-length: 5.25em;
345
+ --top-offset: 45.23vh;
346
+ --fall-duration: 7.898s;
347
+ --fall-delay: 4.966s;
348
+ }
349
+ .star:nth-child(42) {
350
+ --star-tail-length: 6.73em;
351
+ --top-offset: 36.17vh;
352
+ --fall-duration: 7.32s;
353
+ --fall-delay: 3.93s;
354
+ }
355
+ .star:nth-child(43) {
356
+ --star-tail-length: 7.38em;
357
+ --top-offset: 83.09vh;
358
+ --fall-duration: 7.394s;
359
+ --fall-delay: 5.388s;
360
+ }
361
+ .star:nth-child(44) {
362
+ --star-tail-length: 5.18em;
363
+ --top-offset: 98.36vh;
364
+ --fall-duration: 6.905s;
365
+ --fall-delay: 2.771s;
366
+ }
367
+ .star:nth-child(45) {
368
+ --star-tail-length: 6.66em;
369
+ --top-offset: 27.99vh;
370
+ --fall-duration: 7.62s;
371
+ --fall-delay: 3.624s;
372
+ }
373
+ .star:nth-child(46) {
374
+ --star-tail-length: 5.19em;
375
+ --top-offset: 92vh;
376
+ --fall-duration: 9.158s;
377
+ --fall-delay: 1.984s;
378
+ }
379
+ .star:nth-child(47) {
380
+ --star-tail-length: 6.16em;
381
+ --top-offset: 2.87vh;
382
+ --fall-duration: 9.266s;
383
+ --fall-delay: 4.04s;
384
+ }
385
+ .star:nth-child(48) {
386
+ --star-tail-length: 6.34em;
387
+ --top-offset: 19.39vh;
388
+ --fall-duration: 7.503s;
389
+ --fall-delay: 0.045s;
390
+ }
391
+ .star:nth-child(49) {
392
+ --star-tail-length: 6.85em;
393
+ --top-offset: 79.92vh;
394
+ --fall-duration: 7.472s;
395
+ --fall-delay: 1.514s;
396
+ }
397
+ .star:nth-child(50) {
398
+ --star-tail-length: 7.35em;
399
+ --top-offset: 63.71vh;
400
+ --fall-duration: 8.117s;
401
+ --fall-delay: 4.46s;
402
+ }
403
+ .star::before, .star::after {
404
+ position: absolute;
405
+ content: "";
406
+ top: 0;
407
+ left: calc(var(--star-width) / -2);
408
+ width: var(--star-width);
409
+ height: 100%;
410
+ background: linear-gradient(45deg, transparent, currentColor, transparent);
411
+ border-radius: inherit;
412
+ animation: blink 2s linear infinite;
413
+ }
414
+ .star::before {
415
+ transform: rotate(45deg);
416
+ }
417
+ .star::after {
418
+ transform: rotate(-45deg);
419
+ }
420
+
421
+ @keyframes fall {
422
+ to {
423
+ transform: translate3d(-30em, 0, 0);
424
+ }
425
+ }
426
+ @keyframes tail-fade {
427
+ 0%, 50% {
428
+ width: var(--star-tail-length);
429
+ opacity: 1;
430
+ }
431
+ 70%, 80% {
432
+ width: 0;
433
+ opacity: 0.4;
434
+ }
435
+ 100% {
436
+ width: 0;
437
+ opacity: 0;
438
+ }
439
+ }
440
+ @keyframes blink {
441
+ 50% {
442
+ opacity: 0.6;
443
+ }
444
+ }
445
+ </style>
446
+ </head>
447
+
448
+ <body>
449
+ <div class="stars"></div>
450
+
451
+ <script>
452
+ document.addEventListener("DOMContentLoaded", function() {
453
+ const starsContainer = document.querySelector('.stars');
454
+ const isMobile = window.innerWidth <= 750;
455
+ const starCount = isMobile ? 30 : 30; // Reduce the number of stars on mobile because of performance issues (currently disabled because we need to find a better workarround)
456
+
457
+ for (let i = 0; i < starCount; i++) {
458
+ const star = document.createElement("div");
459
+ star.classList.add("star");
460
+ starsContainer.appendChild(star);
461
+ }
462
+ });
463
+ </script>
464
+
465
+ <div class="header">
466
+ <p class="comet-text">🚀 Comet - <a href="https://github.com/g0ldyy/comet">GitHub</a></p>
467
+ {{CUSTOM_HEADER_HTML|safe}}
468
+ </div>
469
+
470
+ <div class="form-container">
471
+ <div class="form-item">
472
+ <sl-select id="indexers" multiple clearable label="Indexers" placeholder="Select indexers"></sl-select>
473
+ </div>
474
+
475
+ <div class="form-item">
476
+ <sl-select id="languages" multiple clearable label="Languages" placeholder="Select languages"></sl-select>
477
+ </div>
478
+
479
+ <div class="form-item">
480
+ <sl-select id="resolutions" multiple clearable label="Resolutions" placeholder="Select resolutions"></sl-select>
481
+ </div>
482
+
483
+ <div class="form-item">
484
+ <sl-input id="maxResults" type="number" min=0 value=0 label="Max Results" placeholder="Enter max results"></sl-input>
485
+ </div>
486
+
487
+ <div class="form-item">
488
+ <sl-select id="debridService" value="realdebrid" label="Debrid Service" placeholder="Select debrid service">
489
+ <sl-option value="realdebrid">Real-Debrid</sl-option>
490
+ </sl-select>
491
+ </div>
492
+
493
+ <div class="form-item">
494
+ <sl-input id="debridApiKey" label="Debrid API Key" placeholder="Enter API key"></sl-input>
495
+ </div>
496
+
497
+ <div class="centered-item">
498
+ <sl-button id="install" variant="neutral">Install</sl-button>
499
+
500
+ <sl-alert variant="neutral" duration="3000" closable>
501
+ <sl-icon slot="icon" name="clipboard2-check"></sl-icon>
502
+ <strong>The Stremio addon link has been automatically copied.</strong>
503
+ </sl-alert>
504
+
505
+ <script type="module">
506
+ let defaultLanguages = [];
507
+ let defaultResolutions = [];
508
+
509
+ document.addEventListener("DOMContentLoaded", function() {
510
+ const webConfig = {{webConfig|tojson}};
511
+ populateSelect("indexers", webConfig.indexers);
512
+ populateSelect("languages", webConfig.languages);
513
+ populateSelect("resolutions", webConfig.resolutions);
514
+
515
+ defaultLanguages = webConfig.languages;
516
+ defaultResolutions = webConfig.resolutions;
517
+ });
518
+
519
+ function populateSelect(selectId, options) {
520
+ const selectElement = document.getElementById(selectId);
521
+ options.forEach(option => {
522
+ const optionElement = document.createElement("sl-option");
523
+ optionElement.value = option;
524
+ optionElement.textContent = option;
525
+ selectElement.appendChild(optionElement);
526
+ });
527
+ selectElement.value = options;
528
+ }
529
+
530
+ const button = document.querySelector("sl-button");
531
+ const alert = document.querySelector('sl-alert[variant="neutral"]');
532
+ button.addEventListener("click", () => {
533
+ const debridService = document.getElementById("debridService").value;
534
+ const debridApiKey = document.getElementById("debridApiKey").value;
535
+ const indexers = Array.from(document.getElementById("indexers").selectedOptions).map(option => option.value);
536
+ const languages = Array.from(document.getElementById("languages").selectedOptions).map(option => option.value);
537
+ const resolutions = Array.from(document.getElementById("resolutions").selectedOptions).map(option => option.value);
538
+ const maxResults = document.getElementById("maxResults").value;
539
+
540
+ const selectedLanguages = languages.length === defaultLanguages.length && languages.every((val, index) => val === defaultLanguages[index]) ? ["All"] : languages;
541
+ const selectedResolutions = resolutions.length === defaultResolutions.length && resolutions.every((val, index) => val === defaultResolutions[index]) ? ["All"] : resolutions;
542
+
543
+ const settings = {
544
+ debridService: debridService,
545
+ debridApiKey: debridApiKey,
546
+ indexers: indexers,
547
+ maxResults: parseInt(maxResults),
548
+ resolutions: selectedResolutions,
549
+ languages: selectedLanguages
550
+ };
551
+
552
+ navigator.clipboard.writeText(`${window.location.origin}/${btoa(JSON.stringify(settings))}/manifest.json`).then(() => {
553
+ alert.toast();
554
+ });
555
+ });
556
+ </script>
557
+ </div>
558
+ </div>
559
+ </body>
560
+ </html>