@authrim/setup 0.1.64 → 0.1.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/web/ui.d.ts.map +1 -1
- package/dist/web/ui.js +103 -78
- package/dist/web/ui.js.map +1 -1
- package/package.json +1 -1
package/dist/web/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAi/InF"}
|
package/dist/web/ui.js
CHANGED
|
@@ -146,51 +146,32 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
146
146
|
animation-delay: 200ms;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
.splash-logo {
|
|
150
|
-
display: flex;
|
|
151
|
-
align-items: center;
|
|
152
|
-
justify-content: center;
|
|
153
|
-
gap: 1rem;
|
|
154
|
-
margin-bottom: 1.5rem;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
.splash-icon {
|
|
158
|
-
width: 56px;
|
|
159
|
-
height: 56px;
|
|
160
|
-
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
|
|
161
|
-
border-radius: 14px;
|
|
162
|
-
display: flex;
|
|
163
|
-
align-items: center;
|
|
164
|
-
justify-content: center;
|
|
165
|
-
font-size: 1.75rem;
|
|
166
|
-
box-shadow: 0 8px 24px rgba(37, 99, 235, 0.3);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
149
|
.splash-title {
|
|
170
150
|
font-family: var(--font-serif);
|
|
171
|
-
font-size: clamp(
|
|
151
|
+
font-size: clamp(3.5rem, 10vw, 5.5rem);
|
|
172
152
|
font-weight: 600;
|
|
173
153
|
color: var(--splash-text);
|
|
174
154
|
letter-spacing: -0.03em;
|
|
175
155
|
line-height: 1;
|
|
156
|
+
margin-bottom: 1rem;
|
|
176
157
|
}
|
|
177
158
|
|
|
178
159
|
.splash-tagline {
|
|
179
160
|
font-family: var(--font-sans);
|
|
180
|
-
font-size: 0.
|
|
161
|
+
font-size: 0.85rem;
|
|
181
162
|
font-weight: 500;
|
|
182
163
|
color: var(--text-subtle);
|
|
183
|
-
letter-spacing: 0.
|
|
164
|
+
letter-spacing: 0.2em;
|
|
184
165
|
text-transform: uppercase;
|
|
185
166
|
margin-bottom: 3rem;
|
|
186
167
|
}
|
|
187
168
|
|
|
188
169
|
.splash-loader {
|
|
189
|
-
width:
|
|
190
|
-
height:
|
|
170
|
+
width: 32px;
|
|
171
|
+
height: 32px;
|
|
191
172
|
margin: 0 auto;
|
|
192
173
|
border: 2px solid var(--border);
|
|
193
|
-
border-top-color: var(--
|
|
174
|
+
border-top-color: var(--splash-text);
|
|
194
175
|
border-radius: 50%;
|
|
195
176
|
animation: spin 1s linear infinite;
|
|
196
177
|
}
|
|
@@ -202,6 +183,28 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
202
183
|
}
|
|
203
184
|
}
|
|
204
185
|
|
|
186
|
+
/* ========================================
|
|
187
|
+
BACKGROUND TYPOGRAPHY
|
|
188
|
+
======================================== */
|
|
189
|
+
.bg-typography {
|
|
190
|
+
position: fixed;
|
|
191
|
+
top: -16%;
|
|
192
|
+
left: -5%;
|
|
193
|
+
font-family: var(--font-serif);
|
|
194
|
+
font-size: clamp(26rem, 25vw, 28rem);
|
|
195
|
+
font-weight: 700;
|
|
196
|
+
color: rgba(209, 201, 173, 0.18);
|
|
197
|
+
letter-spacing: -0.04em;
|
|
198
|
+
white-space: nowrap;
|
|
199
|
+
pointer-events: none;
|
|
200
|
+
z-index: 0;
|
|
201
|
+
user-select: none;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
[data-theme="dark"] .bg-typography {
|
|
205
|
+
color: rgba(255, 255, 255, 0.025);
|
|
206
|
+
}
|
|
207
|
+
|
|
205
208
|
/* ========================================
|
|
206
209
|
THEME TOGGLE
|
|
207
210
|
======================================== */
|
|
@@ -238,6 +241,8 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
238
241
|
LAYOUT
|
|
239
242
|
======================================== */
|
|
240
243
|
.container {
|
|
244
|
+
position: relative;
|
|
245
|
+
z-index: 1;
|
|
241
246
|
max-width: 820px;
|
|
242
247
|
margin: 0 auto;
|
|
243
248
|
padding: 2.5rem 2rem;
|
|
@@ -245,59 +250,42 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
245
250
|
|
|
246
251
|
header {
|
|
247
252
|
text-align: center;
|
|
248
|
-
margin-bottom:
|
|
253
|
+
margin-bottom: 2rem;
|
|
249
254
|
padding-top: 0.5rem;
|
|
250
255
|
}
|
|
251
256
|
|
|
252
|
-
.header-brand {
|
|
253
|
-
display: flex;
|
|
254
|
-
align-items: center;
|
|
255
|
-
justify-content: center;
|
|
256
|
-
gap: 0.75rem;
|
|
257
|
-
margin-bottom: 0.75rem;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
.header-icon {
|
|
261
|
-
width: 48px;
|
|
262
|
-
height: 48px;
|
|
263
|
-
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
|
|
264
|
-
border-radius: 12px;
|
|
265
|
-
display: flex;
|
|
266
|
-
align-items: center;
|
|
267
|
-
justify-content: center;
|
|
268
|
-
font-size: 1.5rem;
|
|
269
|
-
box-shadow: 0 4px 12px rgba(37, 99, 235, 0.25);
|
|
270
|
-
}
|
|
271
|
-
|
|
272
257
|
h1 {
|
|
273
258
|
font-family: var(--font-serif);
|
|
274
|
-
font-size: clamp(
|
|
259
|
+
font-size: clamp(2.25rem, 6vw, 3rem);
|
|
275
260
|
font-weight: 600;
|
|
276
261
|
color: var(--text);
|
|
277
|
-
letter-spacing: -0.
|
|
278
|
-
line-height: 1
|
|
262
|
+
letter-spacing: -0.03em;
|
|
263
|
+
line-height: 1;
|
|
264
|
+
margin-bottom: 0.5rem;
|
|
279
265
|
}
|
|
280
266
|
|
|
281
267
|
.header-wizard {
|
|
282
268
|
font-family: var(--font-serif);
|
|
283
|
-
font-size: 1.
|
|
269
|
+
font-size: 1.15rem;
|
|
284
270
|
font-weight: 400;
|
|
285
271
|
font-style: italic;
|
|
286
272
|
color: var(--primary);
|
|
287
|
-
margin-bottom: 0.
|
|
273
|
+
margin-bottom: 0.375rem;
|
|
288
274
|
}
|
|
289
275
|
|
|
290
276
|
.subtitle {
|
|
291
277
|
font-family: var(--font-sans);
|
|
292
|
-
font-size: 0.
|
|
278
|
+
font-size: 0.85rem;
|
|
293
279
|
color: var(--text-muted);
|
|
294
|
-
letter-spacing: 0.
|
|
280
|
+
letter-spacing: 0.03em;
|
|
295
281
|
}
|
|
296
282
|
|
|
297
283
|
/* ========================================
|
|
298
284
|
CARDS
|
|
299
285
|
======================================== */
|
|
300
286
|
.card {
|
|
287
|
+
position: relative;
|
|
288
|
+
z-index: 1;
|
|
301
289
|
background: var(--card-bg);
|
|
302
290
|
border-radius: 16px;
|
|
303
291
|
border: 1px solid var(--border-light);
|
|
@@ -824,49 +812,89 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
824
812
|
}
|
|
825
813
|
|
|
826
814
|
/* ========================================
|
|
827
|
-
STEP INDICATOR
|
|
815
|
+
STEP INDICATOR - Refined Minimal Design
|
|
828
816
|
======================================== */
|
|
829
817
|
.step-indicator {
|
|
818
|
+
position: relative;
|
|
830
819
|
display: flex;
|
|
831
820
|
justify-content: center;
|
|
832
|
-
|
|
821
|
+
align-items: center;
|
|
822
|
+
gap: 0;
|
|
833
823
|
margin-bottom: 2.5rem;
|
|
824
|
+
padding: 0.75rem 0;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
/* The connecting line */
|
|
828
|
+
.step-indicator::before {
|
|
829
|
+
content: '';
|
|
830
|
+
position: absolute;
|
|
831
|
+
top: 50%;
|
|
832
|
+
left: 50%;
|
|
833
|
+
transform: translate(-50%, -50%);
|
|
834
|
+
width: calc(100% - 80px);
|
|
835
|
+
max-width: 500px;
|
|
836
|
+
height: 1px;
|
|
837
|
+
background: var(--border);
|
|
834
838
|
}
|
|
835
839
|
|
|
836
840
|
.step {
|
|
837
|
-
|
|
838
|
-
|
|
841
|
+
position: relative;
|
|
842
|
+
z-index: 1;
|
|
843
|
+
width: 28px;
|
|
844
|
+
height: 28px;
|
|
839
845
|
border-radius: 50%;
|
|
840
846
|
display: flex;
|
|
841
847
|
align-items: center;
|
|
842
848
|
justify-content: center;
|
|
843
849
|
font-family: var(--font-sans);
|
|
844
|
-
font-weight:
|
|
845
|
-
font-size: 0.
|
|
850
|
+
font-weight: 500;
|
|
851
|
+
font-size: 0.7rem;
|
|
852
|
+
background: var(--bg);
|
|
846
853
|
transition: all var(--transition-base);
|
|
847
854
|
}
|
|
848
855
|
|
|
849
856
|
.step-active {
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
857
|
+
width: 32px;
|
|
858
|
+
height: 32px;
|
|
859
|
+
background: var(--text);
|
|
860
|
+
color: var(--bg);
|
|
861
|
+
font-weight: 600;
|
|
862
|
+
font-size: 0.75rem;
|
|
863
|
+
box-shadow: 0 0 0 4px var(--bg), 0 0 0 5px var(--text);
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
[data-theme="dark"] .step-active {
|
|
867
|
+
background: var(--splash-text);
|
|
868
|
+
color: var(--bg);
|
|
869
|
+
box-shadow: 0 0 0 4px var(--bg), 0 0 0 5px var(--splash-text);
|
|
853
870
|
}
|
|
854
871
|
|
|
855
872
|
.step-complete {
|
|
856
|
-
background: var(--
|
|
857
|
-
color:
|
|
873
|
+
background: var(--text);
|
|
874
|
+
color: var(--bg);
|
|
875
|
+
font-size: 0;
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
.step-complete::after {
|
|
879
|
+
content: '✓';
|
|
880
|
+
font-size: 0.7rem;
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
[data-theme="dark"] .step-complete {
|
|
884
|
+
background: var(--splash-text);
|
|
885
|
+
color: var(--bg);
|
|
858
886
|
}
|
|
859
887
|
|
|
860
888
|
.step-pending {
|
|
861
|
-
background: var(--bg
|
|
889
|
+
background: var(--bg);
|
|
862
890
|
color: var(--text-subtle);
|
|
863
|
-
border: 1px solid var(--border
|
|
891
|
+
border: 1px solid var(--border);
|
|
864
892
|
}
|
|
865
893
|
|
|
866
894
|
.step-connector {
|
|
867
|
-
width:
|
|
868
|
-
height:
|
|
869
|
-
background:
|
|
895
|
+
width: 40px;
|
|
896
|
+
height: 1px;
|
|
897
|
+
background: transparent;
|
|
870
898
|
align-self: center;
|
|
871
899
|
}
|
|
872
900
|
|
|
@@ -1436,13 +1464,13 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
1436
1464
|
</style>
|
|
1437
1465
|
</head>
|
|
1438
1466
|
<body>
|
|
1467
|
+
<!-- Background Typography -->
|
|
1468
|
+
<div class="bg-typography" aria-hidden="true">Authrim</div>
|
|
1469
|
+
|
|
1439
1470
|
<!-- Splash Screen -->
|
|
1440
1471
|
<div id="splash" class="splash">
|
|
1441
1472
|
<div class="splash-content">
|
|
1442
|
-
<
|
|
1443
|
-
<div class="splash-icon">🔐</div>
|
|
1444
|
-
<span class="splash-title">Authrim</span>
|
|
1445
|
-
</div>
|
|
1473
|
+
<h1 class="splash-title">Authrim</h1>
|
|
1446
1474
|
<p class="splash-tagline">Identity & Access Platform</p>
|
|
1447
1475
|
<div class="splash-loader"></div>
|
|
1448
1476
|
</div>
|
|
@@ -1453,10 +1481,7 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
1453
1481
|
|
|
1454
1482
|
<div class="container">
|
|
1455
1483
|
<header>
|
|
1456
|
-
<
|
|
1457
|
-
<div class="header-icon">🔐</div>
|
|
1458
|
-
<h1>Authrim</h1>
|
|
1459
|
-
</div>
|
|
1484
|
+
<h1>Authrim</h1>
|
|
1460
1485
|
<p class="header-wizard">Setup Wizard</p>
|
|
1461
1486
|
<p class="subtitle">OIDC Provider on Cloudflare Workers</p>
|
|
1462
1487
|
</header>
|
package/dist/web/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,eAAe,CAAC,YAAqB,EAAE,UAAoB;IACzE,gDAAgD;IAChD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAErD,OAAO
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,eAAe,CAAC,YAAqB,EAAE,UAAoB;IACzE,gDAAgD;IAChD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAErD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA81EoB,SAAS;0BACZ,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4oEhC,CAAC;AACT,CAAC"}
|