PageSourceSearch

https://elm-widgets.netlify.app/main.js

js elm-widgets.netlify.app collected 2026-10-03 10:41:34 UTC 1,214,182 bytes, 37,224 lines download raw bytes

1(function(scope){
2'use strict';
3
4function F(arity, fun, wrapper) {
5  wrapper.a = arity;
6  wrapper.f = fun;
7  return wrapper;
8}
9
10function F2(fun) {
11  return F(2, fun, function(a) { return function(b) { return fun(a,b); }; })
12}
13function F3(fun) {
14  return F(3, fun, function(a) {
15    return function(b) { return function(c) { return fun(a, b, c); }; };
16  });
17}
18function F4(fun) {
19  return F(4, fun, function(a) { return function(b) { return function(c) {
20    return function(d) { return fun(a, b, c, d); }; }; };
21  });
22}
23function F5(fun) {
24  return F(5, fun, function(a) { return function(b) { return function(c) {
25    return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; };
26  });
27}
28function F6(fun) {
29  return F(6, fun, function(a) { return function(b) { return function(c) {
30    return function(d) { return function(e) { return function(f) {
31    return fun(a, b, c, d, e, f); }; }; }; }; };
32  });
33}
34function F7(fun) {
35  return F(7, fun, function(a) { return function(b) { return function(c) {
36    return function(d) { return function(e) { return function(f) {
37    return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; };
38  });
39}
40function F8(fun) {
41  return F(8, fun, function(a) { return function(b) { return function(c) {
42    return function(d) { return function(e) { return function(f) {
43    return function(g) { return function(h) {
44    return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; };
45  });
46}
47function F9(fun) {
48  return F(9, fun, function(a) { return function(b) { return function(c) {
49    return function(d) { return function(e) { return function(f) {
50    return function(g) { return function(h) { return function(i) {
51    return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; };
52  });
53}
54
55function A2(fun, a, b) {
56  return fun.a === 2 ? fun.f(a, b) : fun(a)(b);
57}
58function A3(fun, a, b, c) {
59  return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c);
60}
61function A4(fun, a, b, c, d) {
62  return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d);
63}
64function A5(fun, a, b, c, d, e) {
65  return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e);
66}
67function A6(fun, a, b, c, d, e, f) {
68  return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f);
69}
70function A7(fun, a, b, c, d, e, f, g) {
71  return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g);
72}
73function A8(fun, a, b, c, d, e, f, g, h) {
74  return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h);
75}
76function A9(fun, a, b, c, d, e, f, g, h, i) {
77  return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i);
78}
79
80
81
82
83var _JsArray_empty = [];
84
85function _JsArray_singleton(value)
86{
87    return [value];
88}
89
90function _JsArray_length(array)
91{
92    return array.length;
93}
94
95var _JsArray_initialize = F3(function(size, offset, func)
96{
97    var result = new Array(size);
98
99    for (var i = 0; i < size; i++)
100    {
101        result[i] = func(offset + i);
102    }
103
104    return result;
105});
106
107var _JsArray_initializeFromList = F2(function (max, ls)
108{
109    var result = new Array(max);
110
111    for (var i = 0; i < max && ls.b; i++)
112    {
113        result[i] = ls.a;
114        ls = ls.b;
115    }
116
117    result.length = i;
118    return _Utils_Tuple2(result, ls);
119});
120
121var _JsArray_unsafeGet = F2(function(index, array)
122{
123    return array[index];
124});
125
126var _JsArray_unsafeSet = F3(function(index, value, array)
127{
128    var length = array.length;
129    var result = new Array(length);
130
131    for (var i = 0; i < length; i++)
132    {
133        result[i] = array[i];
134    }
135
136    result[index] = value;
137    return result;
138});
139
140var _JsArray_push = F2(function(value, array)
141{
142    var length = array.length;
143    var result = new Array(length + 1);
144
145    for (var i = 0; i < length; i++)
146    {
147        result[i] = array[i];
148    }
149
150    result[length] = value;
151    return result;
152});
153
154var _JsArray_foldl = F3(function(func, acc, array)
155{
156    var length = array.length;
157
158    for (var i = 0; i < length; i++)
159    {
160        acc = A2(func, array[i], acc);
161    }
162
163    return acc;
164});
165
166var _JsArray_foldr = F3(function(func, acc, array)
167{
168    for (var i = array.length - 1; i >= 0; i--)
169    {
170        acc = A2(func, array[i], acc);
171    }
172
173    return acc;
174});
175
176var _JsArray_map = F2(function(func, array)
177{
178    var length = array.length;
179    var result = new Array(length);
180
181    for (var i = 0; i < length; i++)
182    {
183        result[i] = func(array[i]);
184    }
185
186    return result;
187});
188
189var _JsArray_indexedMap = F3(function(func, offset, array)
190{
191    var length = array.length;
192    var result = new Array(length);
193
194    for (var i = 0; i < length; i++)
195    {
196        result[i] = A2(func, offset + i, array[i]);
197    }
198
199    return result;
200});
201
202var _JsArray_slice = F3(function(from, to, array)
203{
204    return array.slice(from, to);
205});
206
207var _JsArray_appendN = F3(function(n, dest, source)
208{
209    var destLen = dest.length;
210    var itemsToCopy = n - destLen;
211
212    if (itemsToCopy > source.length)
213    {
214        itemsToCopy = source.length;
215    }
216
217    var size = destLen + itemsToCopy;
218    var result = new Array(size);
219
220    for (var i = 0; i < destLen; i++)
221    {
222        result[i] = dest[i];
223    }
224
225    for (var i = 0; i < itemsToCopy; i++)
226    {
227        result[i + destLen] = source[i];
228    }
229
230    return result;
231});
232
233
234
235// LOG
236
237var _Debug_log = F2(function(tag, value)
238{
239	return value;
240});
241
242var _Debug_log_UNUSED = F2(function(tag, value)
243{
244	console.log(tag + ': ' + _Debug_toString(value));
245	return value;
246});
247
248
249// TODOS
250
251function _Debug_todo(moduleName, region)
252{
253	return function(message) {
254		_Debug_crash(8, moduleName, region, message);
255	};
256}
257
258function _Debug_todoCase(moduleName, region, value)
259{
260	return function(message) {
261		_Debug_crash(9, moduleName, region, value, message);
262	};
263}
264
265
266// TO STRING
267
268function _Debug_toString(value)
269{
270	return '<internals>';
271}
272
273function _Debug_toString_UNUSED(value)
274{
275	return _Debug_toAnsiString(false, value);
276}
277
278function _Debug_toAnsiString(ansi, value)
279{
280	if (typeof value === 'function')
281	{
282		return _Debug_internalColor(ansi, '<function>');
283	}
284
285	if (typeof value === 'boolean')
286	{
287		return _Debug_ctorColor(ansi, value ? 'True' : 'False');
288	}
289
290	if (typeof value === 'number')
291	{
292		return _Debug_numberColor(ansi, value + '');
293	}
294
295	if (value instanceof String)
296	{
297		return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'");
298	}
299
300	if (typeof value === 'string')
301	{
302		return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"');
303	}
304
305	if (typeof value === 'object' && '$' in value)
306	{
307		var tag = value.$;
308
309		if (typeof tag === 'number')
310		{
311			return _Debug_internalColor(ansi, '<internals>');
312		}
313
314		if (tag[0] === '#')
315		{
316			var output = [];
317			for (var k in value)
318			{
319				if (k === '$') continue;
320				output.push(_Debug_toAnsiString(ansi, value[k]));
321			}
322			return '(' + output.join(',') + ')';
323		}
324
325		if (tag === 'Set_elm_builtin')
326		{
327			return _Debug_ctorColor(ansi, 'Set')
328				+ _Debug_fadeColor(ansi, '.fromList') + ' '
329				+ _Debug_toAnsiString(ansi, $elm$core$Set$toList(value));
330		}
331
332		if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')
333		{
334			return _Debug_ctorColor(ansi, 'Dict')
335				+ _Debug_fadeColor(ansi, '.fromList') + ' '
336				+ _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value));
337		}
338
339		if (tag === 'Array_elm_builtin')
340		{
341			return _Debug_ctorColor(ansi, 'Array')
342				+ _Debug_fadeColor(ansi, '.fromList') + ' '
343				+ _Debug_toAnsiString(ansi, $elm$core$Array$toList(value));
344		}
345
346		if (tag === '::' || tag === '[]')
347		{
348			var output = '[';
349
350			value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)
351
352			for (; value.b; value = value.b) // WHILE_CONS
353			{
354				output += ',' + _Debug_toAnsiString(ansi, value.a);
355			}
356			return output + ']';
357		}
358
359		var output = '';
360		for (var i in value)
361		{
362			if (i === '$') continue;
363			var str = _Debug_toAnsiString(ansi, value[i]);
364			var c0 = str[0];
365			var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0;
366			output += ' ' + (parenless ? str : '(' + str + ')');
367		}
368		return _Debug_ctorColor(ansi, tag) + output;
369	}
370
371	if (typeof DataView === 'function' && value instanceof DataView)
372	{
373		return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>');
374	}
375
376	if (typeof File !== 'undefined' && value instanceof File)
377	{
378		return _Debug_internalColor(ansi, '<' + value.name + '>');
379	}
380
381	if (typeof value === 'object')
382	{
383		var output = [];
384		for (var key in value)
385		{
386			var field = key[0] === '_' ? key.slice(1) : key;
387			output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));
388		}
389		if (output.length === 0)
390		{
391			return '{}';
392		}
393		return '{ ' + output.join(', ') + ' }';
394	}
395
396	return _Debug_internalColor(ansi, '<internals>');
397}
398
399function _Debug_addSlashes(str, isChar)
400{
401	var s = str
402		.replace(/\\/g, '\\\\')
403		.replace(/\n/g, '\\n')
404		.replace(/\t/g, '\\t')
405		.replace(/\r/g, '\\r')
406		.replace(/\v/g, '\\v')
407		.replace(/\0/g, '\\0');
408
409	if (isChar)
410	{
411		return s.replace(/\'/g, '\\\'');
412	}
413	else
414	{
415		return s.replace(/\"/g, '\\"');
416	}
417}
418
419function _Debug_ctorColor(ansi, string)
420{
421	return ansi ? '\x1b[96m' + string + '\x1b[0m' : string;
422}
423
424function _Debug_numberColor(ansi, string)
425{
426	return ansi ? '\x1b[95m' + string + '\x1b[0m' : string;
427}
428
429function _Debug_stringColor(ansi, string)
430{
431	return ansi ? '\x1b[93m' + string + '\x1b[0m' : string;
432}
433
434function _Debug_charColor(ansi, string)
435{
436	return ansi ? '\x1b[92m' + string + '\x1b[0m' : string;
437}
438
439function _Debug_fadeColor(ansi, string)
440{
441	return ansi ? '\x1b[37m' + string + '\x1b[0m' : string;
442}
443
444function _Debug_internalColor(ansi, string)
445{
446	return ansi ? '\x1b[36m' + string + '\x1b[0m' : string;
447}
448
449function _Debug_toHexDigit(n)
450{
451	return String.fromCharCode(n < 10 ? 48 + n : 55 + n);
452}
453
454
455// CRASH
456
457
458function _Debug_crash(identifier)
459{
460	throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md');
461}
462
463
464function _Debug_crash_UNUSED(identifier, fact1, fact2, fact3, fact4)
465{
466	switch(identifier)
467	{
468		case 0:
469			throw new Error('What node should I take over? In JavaScript I need something like:\n\n    Elm.Main.init({\n        node: document.getElementById("elm-node")\n    })\n\nYou need to do this with any Browser.sandbox or Browser.element program.');
470
471		case 1:
472			throw new Error('Browser.application programs cannot handle URLs like this:\n\n    ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.');
473
474		case 2:
475			var jsonErrorString = fact1;
476			throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString);
477
478		case 3:
479			var portName = fact1;
480			throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.');
481
482		case 4:
483			var portName = fact1;
484			var problem = fact2;
485			throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem);
486
487		case 5:
488			throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');
489
490		case 6:
491			var moduleName = fact1;
492			throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!');
493
494		case 8:
495			var moduleName = fact1;
496			var region = fact2;
497			var message = fact3;
498			throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message);
499
500		case 9:
501			var moduleName = fact1;
502			var region = fact2;
503			var value = fact3;
504			var message = fact4;
505			throw new Error(
506				'TODO in module `' + moduleName + '` from the `case` expression '
507				+ _Debug_regionToString(region) + '\n\nIt received the following value:\n\n    '
508				+ _Debug_toString(value).replace('\n', '\n    ')
509				+ '\n\nBut the branch that handles it says:\n\n    ' + message.replace('\n', '\n    ')
510			);
511
512		case 10:
513			throw new Error('Bug in https://github.com/elm/virtual-dom/issues');
514
515		case 11:
516			throw new Error('Cannot perform mod 0. Division by zero error.');
517	}
518}
519
520function _Debug_regionToString(region)
521{
522	if (region.i.be === region.g.be)
523	{
524		return 'on line ' + region.i.be;
525	}
526	return 'on lines ' + region.i.be + ' through ' + region.g.be;
527}
528
529
530
531// EQUALITY
532
533function _Utils_eq(x, y)
534{
535	for (
536		var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack);
537		isEqual && (pair = stack.pop());
538		isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack)
539		)
540	{}
541
542	return isEqual;
543}
544
545function _Utils_eqHelp(x, y, depth, stack)
546{
547	if (x === y)
548	{
549		return true;
550	}
551
552	if (typeof x !== 'object' || x === null || y === null)
553	{
554		typeof x === 'function' && _Debug_crash(5);
555		return false;
556	}
557
558	if (depth > 100)
559	{
560		stack.push(_Utils_Tuple2(x,y));
561		return true;
562	}
563
564	/**_UNUSED/
565	if (x.$ === 'Set_elm_builtin')
566	{
567		x = $elm$core$Set$toList(x);
568		y = $elm$core$Set$toList(y);
569	}
570	if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')
571	{
572		x = $elm$core$Dict$toList(x);
573		y = $elm$core$Dict$toList(y);
574	}
575	//*/
576
577	/**/
578	if (x.$ < 0)
579	{
580		x = $elm$core$Dict$toList(x);
581		y = $elm$core$Dict$toList(y);
582	}
583	//*/
584
585	for (var key in x)
586	{
587		if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))
588		{
589			return false;
590		}
591	}
592	return true;
593}
594
595var _Utils_equal = F2(_Utils_eq);
596var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });
597
598
599
600// COMPARISONS
601
602// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on
603// the particular integer values assigned to LT, EQ, and GT.
604
605function _Utils_cmp(x, y, ord)
606{
607	if (typeof x !== 'object')
608	{
609		return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;
610	}
611
612	/**_UNUSED/
613	if (x instanceof String)
614	{
615		var a = x.valueOf();
616		var b = y.valueOf();
617		return a === b ? 0 : a < b ? -1 : 1;
618	}
619	//*/
620
621	/**/
622	if (typeof x.$ === 'undefined')
623	//*/
624	/**_UNUSED/
625	if (x.$[0] === '#')
626	//*/
627	{
628		return (ord = _Utils_cmp(x.a, y.a))
629			? ord
630			: (ord = _Utils_cmp(x.b, y.b))
631				? ord
632				: _Utils_cmp(x.c, y.c);
633	}
634
635	// traverse conses until end of a list or a mismatch
636	for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES
637	return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);
638}
639
640var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });
641var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });
642var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });
643var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });
644
645var _Utils_compare = F2(function(x, y)
646{
647	var n = _Utils_cmp(x, y);
648	return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ;
649});
650
651
652// COMMON VALUES
653
654var _Utils_Tuple0 = 0;
655var _Utils_Tuple0_UNUSED = { $: '#0' };
656
657function _Utils_Tuple2(a, b) { return { a: a, b: b }; }
658function _Utils_Tuple2_UNUSED(a, b) { return { $: '#2', a: a, b: b }; }
659
660function _Utils_Tuple3(a, b, c) { return { a: a, b: b, c: c }; }
661function _Utils_Tuple3_UNUSED(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }
662
663function _Utils_chr(c) { return c; }
664function _Utils_chr_UNUSED(c) { return new String(c); }
665
666
667// RECORDS
668
669function _Utils_update(oldRecord, updatedFields)
670{
671	var newRecord = {};
672
673	for (var key in oldRecord)
674	{
675		newRecord[key] = oldRecord[key];
676	}
677
678	for (var key in updatedFields)
679	{
680		newRecord[key] = updatedFields[key];
681	}
682
683	return newRecord;
684}
685
686
687// APPEND
688
689var _Utils_append = F2(_Utils_ap);
690
691function _Utils_ap(xs, ys)
692{
693	// append Strings
694	if (typeof xs === 'string')
695	{
696		return xs + ys;
697	}
698
699	// append Lists
700	if (!xs.b)
701	{
702		return ys;
703	}
704	var root = _List_Cons(xs.a, ys);
705	xs = xs.b
706	for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS
707	{
708		curr = curr.b = _List_Cons(xs.a, ys);
709	}
710	return root;
711}
712
713
714
715var _List_Nil = { $: 0 };
716var _List_Nil_UNUSED = { $: '[]' };
717
718function _List_Cons(hd, tl) { return { $: 1, a: hd, b: tl }; }
719function _List_Cons_UNUSED(hd, tl) { return { $: '::', a: hd, b: tl }; }
720
721
722var _List_cons = F2(_List_Cons);
723
724function _List_fromArray(arr)
725{
726	var out = _List_Nil;
727	for (var i = arr.length; i--; )
728	{
729		out = _List_Cons(arr[i], out);
730	}
731	return out;
732}
733
734function _List_toArray(xs)
735{
736	for (var out = []; xs.b; xs = xs.b) // WHILE_CONS
737	{
738		out.push(xs.a);
739	}
740	return out;
741}
742
743var _List_map2 = F3(function(f, xs, ys)
744{
745	for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES
746	{
747		arr.push(A2(f, xs.a, ys.a));
748	}
749	return _List_fromArray(arr);
750});
751
752var _List_map3 = F4(function(f, xs, ys, zs)
753{
754	for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
755	{
756		arr.push(A3(f, xs.a, ys.a, zs.a));
757	}
758	return _List_fromArray(arr);
759});
760
761var _List_map4 = F5(function(f, ws, xs, ys, zs)
762{
763	for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
764	{
765		arr.push(A4(f, ws.a, xs.a, ys.a, zs.a));
766	}
767	return _List_fromArray(arr);
768});
769
770var _List_map5 = F6(function(f, vs, ws, xs, ys, zs)
771{
772	for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
773	{
774		arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));
775	}
776	return _List_fromArray(arr);
777});
778
779var _List_sortBy = F2(function(f, xs)
780{
781	return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
782		return _Utils_cmp(f(a), f(b));
783	}));
784});
785
786var _List_sortWith = F2(function(f, xs)
787{
788	return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
789		var ord = A2(f, a, b);
790		return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1;
791	}));
792});
793
794
795
796var _String_cons = F2(function(chr, str)
797{
798	return chr + str;
799});
800
801function _String_uncons(string)
802{
803	var word = string.charCodeAt(0);
804	return !isNaN(word)
805		? $elm$core$Maybe$Just(
806			0xD800 <= word && word <= 0xDBFF
807				? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))
808				: _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))
809		)
810		: $elm$core$Maybe$Nothing;
811}
812
813var _String_append = F2(function(a, b)
814{
815	return a + b;
816});
817
818function _String_length(str)
819{
820	return str.length;
821}
822
823var _String_map = F2(function(func, string)
824{
825	var len = string.length;
826	var array = new Array(len);
827	var i = 0;
828	while (i < len)
829	{
830		var word = string.charCodeAt(i);
831		if (0xD800 <= word && word <= 0xDBFF)
832		{
833			array[i] = func(_Utils_chr(string[i] + string[i+1]));
834			i += 2;
835			continue;
836		}
837		array[i] = func(_Utils_chr(string[i]));
838		i++;
839	}
840	return array.join('');
841});
842
843var _String_filter = F2(function(isGood, str)
844{
845	var arr = [];
846	var len = str.length;
847	var i = 0;
848	while (i < len)
849	{
850		var char = str[i];
851		var word = str.charCodeAt(i);
852		i++;
853		if (0xD800 <= word && word <= 0xDBFF)
854		{
855			char += str[i];
856			i++;
857		}
858
859		if (isGood(_Utils_chr(char)))
860		{
861			arr.push(char);
862		}
863	}
864	return arr.join('');
865});
866
867function _String_reverse(str)
868{
869	var len = str.length;
870	var arr = new Array(len);
871	var i = 0;
872	while (i < len)
873	{
874		var word = str.charCodeAt(i);
875		if (0xD800 <= word && word <= 0xDBFF)
876		{
877			arr[len - i] = str[i + 1];
878			i++;
879			arr[len - i] = str[i - 1];
880			i++;
881		}
882		else
883		{
884			arr[len - i] = str[i];
885			i++;
886		}
887	}
888	return arr.join('');
889}
890
891var _String_foldl = F3(function(func, state, string)
892{
893	var len = string.length;
894	var i = 0;
895	while (i < len)
896	{
897		var char = string[i];
898		var word = string.charCodeAt(i);
899		i++;
900		if (0xD800 <= word && word <= 0xDBFF)
901		{
902			char += string[i];
903			i++;
904		}
905		state = A2(func, _Utils_chr(char), state);
906	}
907	return state;
908});
909
910var _String_foldr = F3(function(func, state, string)
911{
912	var i = string.length;
913	while (i--)
914	{
915		var char = string[i];
916		var word = string.charCodeAt(i);
917		if (0xDC00 <= word && word <= 0xDFFF)
918		{
919			i--;
920			char = string[i] + char;
921		}
922		state = A2(func, _Utils_chr(char), state);
923	}
924	return state;
925});
926
927var _String_split = F2(function(sep, str)
928{
929	return str.split(sep);
930});
931
932var _String_join = F2(function(sep, strs)
933{
934	return strs.join(sep);
935});
936
937var _String_slice = F3(function(start, end, str) {
938	return str.slice(start, end);
939});
940
941function _String_trim(str)
942{
943	return str.trim();
944}
945
946function _String_trimLeft(str)
947{
948	return str.replace(/^\s+/, '');
949}
950
951function _String_trimRight(str)
952{
953	return str.replace(/\s+$/, '');
954}
955
956function _String_words(str)
957{
958	return _List_fromArray(str.trim().split(/\s+/g));
959}
960
961function _String_lines(str)
962{
963	return _List_fromArray(str.split(/\r\n|\r|\n/g));
964}
965
966function _String_toUpper(str)
967{
968	return str.toUpperCase();
969}
970
971function _String_toLower(str)
972{
973	return str.toLowerCase();
974}
975
976var _String_any = F2(function(isGood, string)
977{
978	var i = string.length;
979	while (i--)
980	{
981		var char = string[i];
982		var word = string.charCodeAt(i);
983		if (0xDC00 <= word && word <= 0xDFFF)
984		{
985			i--;
986			char = string[i] + char;
987		}
988		if (isGood(_Utils_chr(char)))
989		{
990			return true;
991		}
992	}
993	return false;
994});
995
996var _String_all = F2(function(isGood, string)
997{
998	var i = string.length;
999	while (i--)
1000	{
1001		var char = string[i];
1002		var word = string.charCodeAt(i);
1003		if (0xDC00 <= word && word <= 0xDFFF)
1004		{
1005			i--;
1006			char = string[i] + char;
1007		}
1008		if (!isGood(_Utils_chr(char)))
1009		{
1010			return false;
1011		}
1012	}
1013	return true;
1014});
1015
1016var _String_contains = F2(function(sub, str)
1017{
1018	return str.indexOf(sub) > -1;
1019});
1020
1021var _String_startsWith = F2(function(sub, str)
1022{
1023	return str.indexOf(sub) === 0;
1024});
1025
1026var _String_endsWith = F2(function(sub, str)
1027{
1028	return str.length >= sub.length &&
1029		str.lastIndexOf(sub) === str.length - sub.length;
1030});
1031
1032var _String_indexes = F2(function(sub, str)
1033{
1034	var subLen = sub.length;
1035
1036	if (subLen < 1)
1037	{
1038		return _List_Nil;
1039	}
1040
1041	var i = 0;
1042	var is = [];
1043
1044	while ((i = str.indexOf(sub, i)) > -1)
1045	{
1046		is.push(i);
1047		i = i + subLen;
1048	}
1049
1050	return _List_fromArray(is);
1051});
1052
1053
1054// TO STRING
1055
1056function _String_fromNumber(number)
1057{
1058	return number + '';
1059}
1060
1061
1062// INT CONVERSIONS
1063
1064function _String_toInt(str)
1065{
1066	var total = 0;
1067	var code0 = str.charCodeAt(0);
1068	var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;
1069
1070	for (var i = start; i < str.length; ++i)
1071	{
1072		var code = str.charCodeAt(i);
1073		if (code < 0x30 || 0x39 < code)
1074		{
1075			return $elm$core$Maybe$Nothing;
1076		}
1077		total = 10 * total + code - 0x30;
1078	}
1079
1080	return i == start
1081		? $elm$core$Maybe$Nothing
1082		: $elm$core$Maybe$Just(code0 == 0x2D ? -total : total);
1083}
1084
1085
1086// FLOAT CONVERSIONS
1087
1088function _String_toFloat(s)
1089{
1090	// check if it is a hex, octal, or binary number
1091	if (s.length === 0 || /[\sxbo]/.test(s))
1092	{
1093		return $elm$core$Maybe$Nothing;
1094	}
1095	var n = +s;
1096	// faster isNaN check
1097	return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing;
1098}
1099
1100function _String_fromList(chars)
1101{
1102	return _List_toArray(chars).join('');
1103}
1104
1105
1106
1107
1108// MATH
1109
1110var _Basics_add = F2(function(a, b) { return a + b; });
1111var _Basics_sub = F2(function(a, b) { return a - b; });
1112var _Basics_mul = F2(function(a, b) { return a * b; });
1113var _Basics_fdiv = F2(function(a, b) { return a / b; });
1114var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });
1115var _Basics_pow = F2(Math.pow);
1116
1117var _Basics_remainderBy = F2(function(b, a) { return a % b; });
1118
1119// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf
1120var _Basics_modBy = F2(function(modulus, x)
1121{
1122	var answer = x % modulus;
1123	return modulus === 0
1124		? _Debug_crash(11)
1125		:
1126	((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))
1127		? answer + modulus
1128		: answer;
1129});
1130
1131
1132// TRIGONOMETRY
1133
1134var _Basics_pi = Math.PI;
1135var _Basics_e = Math.E;
1136var _Basics_cos = Math.cos;
1137var _Basics_sin = Math.sin;
1138var _Basics_tan = Math.tan;
1139var _Basics_acos = Math.acos;
1140var _Basics_asin = Math.asin;
1141var _Basics_atan = Math.atan;
1142var _Basics_atan2 = F2(Math.atan2);
1143
1144
1145// MORE MATH
1146
1147function _Basics_toFloat(x) { return x; }
1148function _Basics_truncate(n) { return n | 0; }
1149function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }
1150
1151var _Basics_ceiling = Math.ceil;
1152var _Basics_floor = Math.floor;
1153var _Basics_round = Math.round;
1154var _Basics_sqrt = Math.sqrt;
1155var _Basics_log = Math.log;
1156var _Basics_isNaN = isNaN;
1157
1158
1159// BOOLEANS
1160
1161function _Basics_not(bool) { return !bool; }
1162var _Basics_and = F2(function(a, b) { return a && b; });
1163var _Basics_or  = F2(function(a, b) { return a || b; });
1164var _Basics_xor = F2(function(a, b) { return a !== b; });
1165
1166
1167
1168function _Char_toCode(char)
1169{
1170	var code = char.charCodeAt(0);
1171	if (0xD800 <= code && code <= 0xDBFF)
1172	{
1173		return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000
1174	}
1175	return code;
1176}
1177
1178function _Char_fromCode(code)
1179{
1180	return _Utils_chr(
1181		(code < 0 || 0x10FFFF < code)
1182			? '\uFFFD'
1183			:
1184		(code <= 0xFFFF)
1185			? String.fromCharCode(code)
1186			:
1187		(code -= 0x10000,
1188			String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00)
1189		)
1190	);
1191}
1192
1193function _Char_toUpper(char)
1194{
1195	return _Utils_chr(char.toUpperCase());
1196}
1197
1198function _Char_toLower(char)
1199{
1200	return _Utils_chr(char.toLowerCase());
1201}
1202
1203function _Char_toLocaleUpper(char)
1204{
1205	return _Utils_chr(char.toLocaleUpperCase());
1206}
1207
1208function _Char_toLocaleLower(char)
1209{
1210	return _Utils_chr(char.toLocaleLowerCase());
1211}
1212
1213
1214
1215/**_UNUSED/
1216function _Json_errorToString(error)
1217{
1218	return $elm$json$Json$Decode$errorToString(error);
1219}
1220//*/
1221
1222
1223// CORE DECODERS
1224
1225function _Json_succeed(msg)
1226{
1227	return {
1228		$: 0,
1229		a: msg
1230	};
1231}
1232
1233function _Json_fail(msg)
1234{
1235	return {
1236		$: 1,
1237		a: msg
1238	};
1239}
1240
1241function _Json_decodePrim(decoder)
1242{
1243	return { $: 2, b: decoder };
1244}
1245
1246var _Json_decodeInt = _Json_decodePrim(function(value) {
1247	return (typeof value !== 'number')
1248		? _Json_expecting('an INT', value)
1249		:
1250	(-2147483647 < value && value < 2147483647 && (value | 0) === value)
1251		? $elm$core$Result$Ok(value)
1252		:
1253	(isFinite(value) && !(value % 1))
1254		? $elm$core$Result$Ok(value)
1255		: _Json_expecting('an INT', value);
1256});
1257
1258var _Json_decodeBool = _Json_decodePrim(function(value) {
1259	return (typeof value === 'boolean')
1260		? $elm$core$Result$Ok(value)
1261		: _Json_expecting('a BOOL', value);
1262});
1263
1264var _Json_decodeFloat = _Json_decodePrim(function(value) {
1265	return (typeof value === 'number')
1266		? $elm$core$Result$Ok(value)
1267		: _Json_expecting('a FLOAT', value);
1268});
1269
1270var _Json_decodeValue = _Json_decodePrim(function(value) {
1271	return $elm$core$Result$Ok(_Json_wrap(value));
1272});
1273
1274var _Json_decodeString = _Json_decodePrim(function(value) {
1275	return (typeof value === 'string')
1276		? $elm$core$Result$Ok(value)
1277		: (value instanceof String)
1278			? $elm$core$Result$Ok(value + '')
1279			: _Json_expecting('a STRING', value);
1280});
1281
1282function _Json_decodeList(decoder) { return { $: 3, b: decoder }; }
1283function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; }
1284
1285function _Json_decodeNull(value) { return { $: 5, c: value }; }
1286
1287var _Json_decodeField = F2(function(field, decoder)
1288{
1289	return {
1290		$: 6,
1291		d: field,
1292		b: decoder
1293	};
1294});
1295
1296var _Json_decodeIndex = F2(function(index, decoder)
1297{
1298	return {
1299		$: 7,
1300		e: index,
1301		b: decoder
1302	};
1303});
1304
1305function _Json_decodeKeyValuePairs(decoder)
1306{
1307	return {
1308		$: 8,
1309		b: decoder
1310	};
1311}
1312
1313function _Json_mapMany(f, decoders)
1314{
1315	return {
1316		$: 9,
1317		f: f,
1318		g: decoders
1319	};
1320}
1321
1322var _Json_andThen = F2(function(callback, decoder)
1323{
1324	return {
1325		$: 10,
1326		b: decoder,
1327		h: callback
1328	};
1329});
1330
1331function _Json_oneOf(decoders)
1332{
1333	return {
1334		$: 11,
1335		g: decoders
1336	};
1337}
1338
1339
1340// DECODING OBJECTS
1341
1342var _Json_map1 = F2(function(f, d1)
1343{
1344	return _Json_mapMany(f, [d1]);
1345});
1346
1347var _Json_map2 = F3(function(f, d1, d2)
1348{
1349	return _Json_mapMany(f, [d1, d2]);
1350});
1351
1352var _Json_map3 = F4(function(f, d1, d2, d3)
1353{
1354	return _Json_mapMany(f, [d1, d2, d3]);
1355});
1356
1357var _Json_map4 = F5(function(f, d1, d2, d3, d4)
1358{
1359	return _Json_mapMany(f, [d1, d2, d3, d4]);
1360});
1361
1362var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)
1363{
1364	return _Json_mapMany(f, [d1, d2, d3, d4, d5]);
1365});
1366
1367var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)
1368{
1369	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);
1370});
1371
1372var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)
1373{
1374	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);
1375});
1376
1377var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)
1378{
1379	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);
1380});
1381
1382
1383// DECODE
1384
1385var _Json_runOnString = F2(function(decoder, string)
1386{
1387	try
1388	{
1389		var value = JSON.parse(string);
1390		return _Json_runHelp(decoder, value);
1391	}
1392	catch (e)
1393	{
1394		return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not val
1394id JSON! ' + e.message, _Json_wrap(string)));
1395	}
1396});
1397
1398var _Json_run = F2(function(decoder, value)
1399{
1400	return _Json_runHelp(decoder, _Json_unwrap(value));
1401});
1402
1403function _Json_runHelp(decoder, value)
1404{
1405	switch (decoder.$)
1406	{
1407		case 2:
1408			return decoder.b(value);
1409
1410		case 5:
1411			return (value === null)
1412				? $elm$core$Result$Ok(decoder.c)
1413				: _Json_expecting('null', value);
1414
1415		case 3:
1416			if (!_Json_isArray(value))
1417			{
1418				return _Json_expecting('a LIST', value);
1419			}
1420			return _Json_runArrayDecoder(decoder.b, value, _List_fromArray);
1421
1422		case 4:
1423			if (!_Json_isArray(value))
1424			{
1425				return _Json_expecting('an ARRAY', value);
1426			}
1427			return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);
1428
1429		case 6:
1430			var field = decoder.d;
1431			if (typeof value !== 'object' || value === null || !(field in value))
1432			{
1433				return _Json_expecting('an OBJECT with a field named `' + field + '`', value);
1434			}
1435			var result = _Json_runHelp(decoder.b, value[field]);
1436			return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a));
1437
1438		case 7:
1439			var index = decoder.e;
1440			if (!_Json_isArray(value))
1441			{
1442				return _Json_expecting('an ARRAY', value);
1443			}
1444			if (index >= value.length)
1445			{
1446				return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);
1447			}
1448			var result = _Json_runHelp(decoder.b, value[index]);
1449			return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a));
1450
1451		case 8:
1452			if (typeof value !== 'object' || value === null || _Json_isArray(value))
1453			{
1454				return _Json_expecting('an OBJECT', value);
1455			}
1456
1457			var keyValuePairs = _List_Nil;
1458			// TODO test perf of Object.keys and switch when support is good enough
1459			for (var key in value)
1460			{
1461				if (value.hasOwnProperty(key))
1462				{
1463					var result = _Json_runHelp(decoder.b, value[key]);
1464					if (!$elm$core$Result$isOk(result))
1465					{
1466						return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a));
1467					}
1468					keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);
1469				}
1470			}
1471			return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs));
1472
1473		case 9:
1474			var answer = decoder.f;
1475			var decoders = decoder.g;
1476			for (var i = 0; i < decoders.length; i++)
1477			{
1478				var result = _Json_runHelp(decoders[i], value);
1479				if (!$elm$core$Result$isOk(result))
1480				{
1481					return result;
1482				}
1483				answer = answer(result.a);
1484			}
1485			return $elm$core$Result$Ok(answer);
1486
1487		case 10:
1488			var result = _Json_runHelp(decoder.b, value);
1489			return (!$elm$core$Result$isOk(result))
1490				? result
1491				: _Json_runHelp(decoder.h(result.a), value);
1492
1493		case 11:
1494			var errors = _List_Nil;
1495			for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS
1496			{
1497				var result = _Json_runHelp(temp.a, value);
1498				if ($elm$core$Result$isOk(result))
1499				{
1500					return result;
1501				}
1502				errors = _List_Cons(result.a, errors);
1503			}
1504			return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors)));
1505
1506		case 1:
1507			return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));
1508
1509		case 0:
1510			return $elm$core$Result$Ok(decoder.a);
1511	}
1512}
1513
1514function _Json_runArrayDecoder(decoder, value, toElmValue)
1515{
1516	var len = value.length;
1517	var array = new Array(len);
1518	for (var i = 0; i < len; i++)
1519	{
1520		var result = _Json_runHelp(decoder, value[i]);
1521		if (!$elm$core$Result$isOk(result))
1522		{
1523			return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a));
1524		}
1525		array[i] = result.a;
1526	}
1527	return $elm$core$Result$Ok(toElmValue(array));
1528}
1529
1530function _Json_isArray(value)
1531{
1532	return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);
1533}
1534
1535function _Json_toElmArray(array)
1536{
1537	return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; });
1538}
1539
1540function _Json_expecting(type, value)
1541{
1542	return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));
1543}
1544
1545
1546// EQUALITY
1547
1548function _Json_equality(x, y)
1549{
1550	if (x === y)
1551	{
1552		return true;
1553	}
1554
1555	if (x.$ !== y.$)
1556	{
1557		return false;
1558	}
1559
1560	switch (x.$)
1561	{
1562		case 0:
1563		case 1:
1564			return x.a === y.a;
1565
1566		case 2:
1567			return x.b === y.b;
1568
1569		case 5:
1570			return x.c === y.c;
1571
1572		case 3:
1573		case 4:
1574		case 8:
1575			return _Json_equality(x.b, y.b);
1576
1577		case 6:
1578			return x.d === y.d && _Json_equality(x.b, y.b);
1579
1580		case 7:
1581			return x.e === y.e && _Json_equality(x.b, y.b);
1582
1583		case 9:
1584			return x.f === y.f && _Json_listEquality(x.g, y.g);
1585
1586		case 10:
1587			return x.h === y.h && _Json_equality(x.b, y.b);
1588
1589		case 11:
1590			return _Json_listEquality(x.g, y.g);
1591	}
1592}
1593
1594function _Json_listEquality(aDecoders, bDecoders)
1595{
1596	var len = aDecoders.length;
1597	if (len !== bDecoders.length)
1598	{
1599		return false;
1600	}
1601	for (var i = 0; i < len; i++)
1602	{
1603		if (!_Json_equality(aDecoders[i], bDecoders[i]))
1604		{
1605			return false;
1606		}
1607	}
1608	return true;
1609}
1610
1611
1612// ENCODE
1613
1614var _Json_encode = F2(function(indentLevel, value)
1615{
1616	return JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';
1617});
1618
1619function _Json_wrap_UNUSED(value) { return { $: 0, a: value }; }
1620function _Json_unwrap_UNUSED(value) { return value.a; }
1621
1622function _Json_wrap(value) { return value; }
1623function _Json_unwrap(value) { return value; }
1624
1625function _Json_emptyArray() { return []; }
1626function _Json_emptyObject() { return {}; }
1627
1628var _Json_addField = F3(function(key, value, object)
1629{
1630	object[key] = _Json_unwrap(value);
1631	return object;
1632});
1633
1634function _Json_addEntry(func)
1635{
1636	return F2(function(entry, array)
1637	{
1638		array.push(_Json_unwrap(func(entry)));
1639		return array;
1640	});
1641}
1642
1643var _Json_encodeNull = _Json_wrap(null);
1644
1645
1646
1647// TASKS
1648
1649function _Scheduler_succeed(value)
1650{
1651	return {
1652		$: 0,
1653		a: value
1654	};
1655}
1656
1657function _Scheduler_fail(error)
1658{
1659	return {
1660		$: 1,
1661		a: error
1662	};
1663}
1664
1665function _Scheduler_binding(callback)
1666{
1667	return {
1668		$: 2,
1669		b: callback,
1670		c: null
1671	};
1672}
1673
1674var _Scheduler_andThen = F2(function(callback, task)
1675{
1676	return {
1677		$: 3,
1678		b: callback,
1679		d: task
1680	};
1681});
1682
1683var _Scheduler_onError = F2(function(callback, task)
1684{
1685	return {
1686		$: 4,
1687		b: callback,
1688		d: task
1689	};
1690});
1691
1692function _Scheduler_receive(callback)
1693{
1694	return {
1695		$: 5,
1696		b: callback
1697	};
1698}
1699
1700
1701// PROCESSES
1702
1703var _Scheduler_guid = 0;
1704
1705function _Scheduler_rawSpawn(task)
1706{
1707	var proc = {
1708		$: 0,
1709		e: _Scheduler_guid++,
1710		f: task,
1711		g: null,
1712		h: []
1713	};
1714
1715	_Scheduler_enqueue(proc);
1716
1717	return proc;
1718}
1719
1720function _Scheduler_spawn(task)
1721{
1722	return _Scheduler_binding(function(callback) {
1723		callback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));
1724	});
1725}
1726
1727function _Scheduler_rawSend(proc, msg)
1728{
1729	proc.h.push(msg);
1730	_Scheduler_enqueue(proc);
1731}
1732
1733var _Scheduler_send = F2(function(proc, msg)
1734{
1735	return _Scheduler_binding(function(callback) {
1736		_Scheduler_rawSend(proc, msg);
1737		callback(_Scheduler_succeed(_Utils_Tuple0));
1738	});
1739});
1740
1741function _Scheduler_kill(proc)
1742{
1743	return _Scheduler_binding(function(callback) {
1744		var task = proc.f;
1745		if (task.$ === 2 && task.c)
1746		{
1747			task.c();
1748		}
1749
1750		proc.f = null;
1751
1752		callback(_Scheduler_succeed(_Utils_Tuple0));
1753	});
1754}
1755
1756
1757/* STEP PROCESSES
1758
1759type alias Process =
1760  { $ : tag
1761  , id : unique_id
1762  , root : Task
1763  , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }
1764  , mailbox : [msg]
1765  }
1766
1767*/
1768
1769
1770var _Scheduler_working = false;
1771var _Scheduler_queue = [];
1772
1773
1774function _Scheduler_enqueue(proc)
1775{
1776	_Scheduler_queue.push(proc);
1777	if (_Scheduler_working)
1778	{
1779		return;
1780	}
1781	_Scheduler_working = true;
1782	while (proc = _Scheduler_queue.shift())
1783	{
1784		_Scheduler_step(proc);
1785	}
1786	_Scheduler_working = false;
1787}
1788
1789
1790function _Scheduler_step(proc)
1791{
1792	while (proc.f)
1793	{
1794		var rootTag = proc.f.$;
1795		if (rootTag === 0 || rootTag === 1)
1796		{
1797			while (proc.g && proc.g.$ !== rootTag)
1798			{
1799				proc.g = proc.g.i;
1800			}
1801			if (!proc.g)
1802			{
1803				return;
1804			}
1805			proc.f = proc.g.b(proc.f.a);
1806			proc.g = proc.g.i;
1807		}
1808		else if (rootTag === 2)
1809		{
1810			proc.f.c = proc.f.b(function(newRoot) {
1811				proc.f = newRoot;
1812				_Scheduler_enqueue(proc);
1813			});
1814			return;
1815		}
1816		else if (rootTag === 5)
1817		{
1818			if (proc.h.length === 0)
1819			{
1820				return;
1821			}
1822			proc.f = proc.f.b(proc.h.shift());
1823		}
1824		else // if (rootTag === 3 || rootTag === 4)
1825		{
1826			proc.g = {
1827				$: rootTag === 3 ? 0 : 1,
1828				b: proc.f.b,
1829				i: proc.g
1830			};
1831			proc.f = proc.f.d;
1832		}
1833	}
1834}
1835
1836
1837
1838function _Process_sleep(time)
1839{
1840	return _Scheduler_binding(function(callback) {
1841		var id = setTimeout(function() {
1842			callback(_Scheduler_succeed(_Utils_Tuple0));
1843		}, time);
1844
1845		return function() { clearTimeout(id); };
1846	});
1847}
1848
1849
1850
1851
1852// PROGRAMS
1853
1854
1855var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)
1856{
1857	return _Platform_initialize(
1858		flagDecoder,
1859		args,
1860		impl.di,
1861		impl.gx,
1862		impl.e_,
1863		function() { return function() {} }
1864	);
1865});
1866
1867
1868
1869// INITIALIZE A PROGRAM
1870
1871
1872function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
1873{
1874	var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));
1875	$elm$core$Result$isOk(result) || _Debug_crash(2 /**_UNUSED/, _Json_errorToString(result.a) /**/);
1876	var managers = {};
1877	var initPair = init(result.a);
1878	var model = initPair.a;
1879	var stepper = stepperBuilder(sendToApp, model);
1880	var ports = _Platform_setupEffects(managers, sendToApp);
1881
1882	function sendToApp(msg, viewMetadata)
1883	{
1884		var pair = A2(update, msg, model);
1885		stepper(model = pair.a, viewMetadata);
1886		_Platform_enqueueEffects(managers, pair.b, subscriptions(model));
1887	}
1888
1889	_Platform_enqueueEffects(managers, initPair.b, subscriptions(model));
1890
1891	return ports ? { ports: ports } : {};
1892}
1893
1894
1895
1896// TRACK PRELOADS
1897//
1898// This is used by code in elm/browser and elm/http
1899// to register any HTTP requests that are triggered by init.
1900//
1901
1902
1903var _Platform_preload;
1904
1905
1906function _Platform_registerPreload(url)
1907{
1908	_Platform_preload.add(url);
1909}
1910
1911
1912
1913// EFFECT MANAGERS
1914
1915
1916var _Platform_effectManagers = {};
1917
1918
1919function _Platform_setupEffects(managers, sendToApp)
1920{
1921	var ports;
1922
1923	// setup all necessary effect managers
1924	for (var key in _Platform_effectManagers)
1925	{
1926		var manager = _Platform_effectManagers[key];
1927
1928		if (manager.a)
1929		{
1930			ports = ports || {};
1931			ports[key] = manager.a(key, sendToApp);
1932		}
1933
1934		managers[key] = _Platform_instantiateManager(manager, sendToApp);
1935	}
1936
1937	return ports;
1938}
1939
1940
1941function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)
1942{
1943	return {
1944		b: init,
1945		c: onEffects,
1946		d: onSelfMsg,
1947		e: cmdMap,
1948		f: subMap
1949	};
1950}
1951
1952
1953function _Platform_instantiateManager(info, sendToApp)
1954{
1955	var router = {
1956		g: sendToApp,
1957		h: undefined
1958	};
1959
1960	var onEffects = info.c;
1961	var onSelfMsg = info.d;
1962	var cmdMap = info.e;
1963	var subMap = info.f;
1964
1965	function loop(state)
1966	{
1967		return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)
1968		{
1969			var value = msg.a;
1970
1971			if (msg.$ === 0)
1972			{
1973				return A3(onSelfMsg, router, value, state);
1974			}
1975
1976			return cmdMap && subMap
1977				? A4(onEffects, router, value.i, value.j, state)
1978				: A3(onEffects, router, cmdMap ? value.i : value.j, state);
1979		}));
1980	}
1981
1982	return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));
1983}
1984
1985
1986
1987// ROUTING
1988
1989
1990var _Platform_sendToApp = F2(function(router, msg)
1991{
1992	return _Scheduler_binding(function(callback)
1993	{
1994		router.g(msg);
1995		callback(_Scheduler_succeed(_Utils_Tuple0));
1996	});
1997});
1998
1999
2000var _Platform_sendToSelf = F2(function(router, msg)
2001{
2002	return A2(_Scheduler_send, router.h, {
2003		$: 0,
2004		a: msg
2005	});
2006});
2007
2008
2009
2010// BAGS
2011
2012
2013function _Platform_leaf(home)
2014{
2015	return function(value)
2016	{
2017		return {
2018			$: 1,
2019			k: home,
2020			l: value
2021		};
2022	};
2023}
2024
2025
2026function _Platform_batch(list)
2027{
2028	return {
2029		$: 2,
2030		m: list
2031	};
2032}
2033
2034
2035var _Platform_map = F2(function(tagger, bag)
2036{
2037	return {
2038		$: 3,
2039		n: tagger,
2040		o: bag
2041	}
2042});
2043
2044
2045
2046// PIPE BAGS INTO EFFECT MANAGERS
2047//
2048// Effects must be queued!
2049//
2050// Say your init contains a synchronous command, like Time.now or Time.here
2051//
2052//   - This will produce a batch of effects (FX_1)
2053//   - The synchronous task triggers the subsequent `update` call
2054//   - This will produce a batch of effects (FX_2)
2055//
2056// If we just start dispatching FX_2, subscriptions from FX_2 can be processed
2057// before subscriptions from FX_1. No good! Earlier versions of this code had
2058// this problem, leading to these reports:
2059//
2060//   https://github.com/elm/core/issues/980
2061//   https://github.com/elm/core/pull/981
2062//   https://github.com/elm/compiler/issues/1776
2063//
2064// The queue is necessary to avoid ordering issues for synchronous commands.
2065
2066
2067// Why use true/false here? Why not just check the length of the queue?
2068// The goal is to detect "are we currently dispatching effects?" If we
2069// are, we need to bail and let the ongoing while loop handle things.
2070//
2071// Now say the queue has 1 element. When we dequeue the final element,
2072// the queue will be empty, but we are still actively dispatching effects.
2073// So you could get queue jumping in a really tricky category of cases.
2074//
2075var _Platform_effectsQueue = [];
2076var _Platform_effectsActive = false;
2077
2078
2079function _Platform_enqueueEffects(managers, cmdBag, subBag)
2080{
2081	_Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag });
2082
2083	if (_Platform_effectsActive) return;
2084
2085	_Platform_effectsActive = true;
2086	for (var fx; fx = _Platform_effectsQueue.shift(); )
2087	{
2088		_Platform_dispatchEffects(fx.p, fx.q, fx.r);
2089	}
2090	_Platform_effectsActive = false;
2091}
2092
2093
2094function _Platform_dispatchEffects(managers, cmdBag, subBag)
2095{
2096	var effectsDict = {};
2097	_Platform_gatherEffects(true, cmdBag, effectsDict, null);
2098	_Platform_gatherEffects(false, subBag, effectsDict, null);
2099
2100	for (var home in managers)
2101	{
2102		_Scheduler_rawSend(managers[home], {
2103			$: 'fx',
2104			a: effectsDict[home] || { i: _List_Nil, j: _List_Nil }
2105		});
2106	}
2107}
2108
2109
2110function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)
2111{
2112	switch (bag.$)
2113	{
2114		case 1:
2115			var home = bag.k;
2116			var effect = _Platform_toEffect(isCmd, home, taggers, bag.l);
2117			effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);
2118			return;
2119
2120		case 2:
2121			for (var list = bag.m; list.b; list = list.b) // WHILE_CONS
2122			{
2123				_Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);
2124			}
2125			return;
2126
2127		case 3:
2128			_Platform_gatherEffects(isCmd, bag.o, effectsDict, {
2129				s: bag.n,
2130				t: taggers
2131			});
2132			return;
2133	}
2134}
2135
2136
2137function _Platform_toEffect(isCmd, home, taggers, value)
2138{
2139	function applyTaggers(x)
2140	{
2141		for (var temp = taggers; temp; temp = temp.t)
2142		{
2143			x = temp.s(x);
2144		}
2145		return x;
2146	}
2147
2148	var map = isCmd
2149		? _Platform_effectManagers[home].e
2150		: _Platform_effectManagers[home].f;
2151
2152	return A2(map, applyTaggers, value)
2153}
2154
2155
2156function _Platform_insert(isCmd, newEffect, effects)
2157{
2158	effects = effects || { i: _List_Nil, j: _List_Nil };
2159
2160	isCmd
2161		? (effects.i = _List_Cons(newEffect, effects.i))
2162		: (effects.j = _List_Cons(newEffect, effects.j));
2163
2164	return effects;
2165}
2166
2167
2168
2169// PORTS
2170
2171
2172function _Platform_checkPortName(name)
2173{
2174	if (_Platform_effectManagers[name])
2175	{
2176		_Debug_crash(3, name)
2177	}
2178}
2179
2180
2181
2182// OUTGOING PORTS
2183
2184
2185function _Platform_outgoingPort(name, converter)
2186{
2187	_Platform_checkPortName(name);
2188	_Platform_effectManagers[name] = {
2189		e: _Platform_outgoingPortMap,
2190		u: converter,
2191		a: _Platform_setupOutgoingPort
2192	};
2193	return _Platform_leaf(name);
2194}
2195
2196
2197var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });
2198
2199
2200function _Platform_setupOutgoingPort(name)
2201{
2202	var subs = [];
2203	var converter = _Platform_effectManagers[name].u;
2204
2205	// CREATE MANAGER
2206
2207	var init = _Process_sleep(0);
2208
2209	_Platform_effectManagers[name].b = init;
2210	_Platform_effectManagers[name].c = F3(function(router, cmdList, state)
2211	{
2212		for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS
2213		{
2214			// grab a separate reference to subs in case unsubscribe is called
2215			var currentSubs = subs;
2216			var value = _Json_unwrap(converter(cmdList.a));
2217			for (var i = 0; i < currentSubs.length; i++)
2218			{
2219				currentSubs[i](value);
2220			}
2221		}
2222		return init;
2223	});
2224
2225	// PUBLIC API
2226
2227	function subscribe(callback)
2228	{
2229		subs.push(callback);
2230	}
2231
2232	function unsubscribe(callback)
2233	{
2234		// copy subs into a new array in case unsubscribe is called within a
2235		// subscribed callback
2236		subs = subs.slice();
2237		var index = subs.indexOf(callback);
2238		if (index >= 0)
2239		{
2240			subs.splice(index, 1);
2241		}
2242	}
2243
2244	return {
2245		subscribe: subscribe,
2246		unsubscribe: unsubscribe
2247	};
2248}
2249
2250
2251
2252// INCOMING PORTS
2253
2254
2255function _Platform_incomingPort(name, converter)
2256{
2257	_Platform_checkPortName(name);
2258	_Platform_effectManagers[name] = {
2259		f: _Platform_incomingPortMap,
2260		u: converter,
2261		a: _Platform_setupIncomingPort
2262	};
2263	return _Platform_leaf(name);
2264}
2265
2266
2267var _Platform_incomingPortMap = F2(function(tagger, finalTagger)
2268{
2269	return function(value)
2270	{
2271		return tagger(finalTagger(value));
2272	};
2273});
2274
2275
2276function _Platform_setupIncomingPort(name, sendToApp)
2277{
2278	var subs = _List_Nil;
2279	var converter = _Platform_effectManagers[name].u;
2280
2281	// CREATE MANAGER
2282
2283	var init = _Scheduler_succeed(null);
2284
2285	_Platform_effectManagers[name].b = init;
2286	_Platform_effectManagers[name].c = F3(function(router, subList, state)
2287	{
2288		subs = subList;
2289		return init;
2290	});
2291
2292	// PUBLIC API
2293
2294	function send(incomingValue)
2295	{
2296		var result = A2(_Json_run, converter, _Json_wrap(incomingValue));
2297
2298		$elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);
2299
2300		var value = result.a;
2301		for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS
2302		{
2303			sendToApp(temp.a(value));
2304		}
2305	}
2306
2307	return { send: send };
2308}
2309
2310
2311
2312// EXPORT ELM MODULES
2313//
2314// Have DEBUG and PROD versions so that we can (1) give nicer errors in
2315// debug mode and (2) not pay for the bits needed for that in prod mode.
2316//
2317
2318
2319function _Platform_export(exports)
2320{
2321	scope['Elm']
2322		? _Platform_mergeExportsProd(scope['Elm'], exports)
2323		: scope['Elm'] = exports;
2324}
2325
2326
2327function _Platform_mergeExportsProd(obj, exports)
2328{
2329	for (var name in exports)
2330	{
2331		(name in obj)
2332			? (name == 'init')
2333				? _Debug_crash(6)
2334				: _Platform_mergeExportsProd(obj[name], exports[name])
2335			: (obj[name] = exports[name]);
2336	}
2337}
2338
2339
2340function _Platform_export_UNUSED(exports)
2341{
2342	scope['Elm']
2343		? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)
2344		: scope['Elm'] = exports;
2345}
2346
2347
2348function _Platform_mergeExportsDebug(moduleName, obj, exports)
2349{
2350	for (var name in exports)
2351	{
2352		(name in obj)
2353			? (name == 'init')
2354				? _Debug_crash(6, moduleName)
2355				: _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])
2356			: (obj[name] = exports[name]);
2357	}
2358}
2359
2360
2361
2362
2363// HELPERS
2364
2365
2366var _VirtualDom_divertHrefToApp;
2367
2368var _VirtualDom_doc = typeof document !== 'undefined' ? document : {};
2369
2370
2371function _VirtualDom_appendChild(parent, child)
2372{
2373	parent.appendChild(child);
2374}
2375
2376var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)
2377{
2378	// NOTE: this function needs _Platform_export available to work
2379
2380	/**/
2381	var node = args['node'];
2382	//*/
2383	/**_UNUSED/
2384	var node = args && args['node'] ? args['node'] : _Debug_crash(0);
2385	//*/
2386
2387	node.parentNode.replaceChild(
2388		_VirtualDom_render(virtualNode, function() {}),
2389		node
2390	);
2391
2392	return {};
2393});
2394
2395
2396
2397// TEXT
2398
2399
2400function _VirtualDom_text(string)
2401{
2402	return {
2403		$: 0,
2404		a: string
2405	};
2406}
2407
2408
2409
2410// NODE
2411
2412
2413var _VirtualDom_nodeNS = F2(function(namespace, tag)
2414{
2415	return F2(function(factList, kidList)
2416	{
2417		for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
2418		{
2419			var kid = kidList.a;
2420			descendantsCount += (kid.b || 0);
2421			kids.push(kid);
2422		}
2423		descendantsCount += kids.length;
2424
2425		return {
2426			$: 1,
2427			c: tag,
2428			d: _VirtualDom_organizeFacts(factList),
2429			e: kids,
2430			f: namespace,
2431			b: descendantsCount
2432		};
2433	});
2434});
2435
2436
2437var _VirtualDom_node = _VirtualDom_nodeNS(undefined);
2438
2439
2440
2441// KEYED NODE
2442
2443
2444var _VirtualDom_keyedNodeNS = F2(function(namespace, tag)
2445{
2446	return F2(function(factList, kidList)
2447	{
2448		for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
2449		{
2450			var kid = kidList.a;
2451			descendantsCount += (kid.b.b || 0);
2452			kids.push(kid);
2453		}
2454		descendantsCount += kids.length;
2455
2456		return {
2457			$: 2,
2458			c: tag,
2459			d: _VirtualDom_organizeFacts(factList),
2460			e: kids,
2461			f: namespace,
2462			b: descendantsCount
2463		};
2464	});
2465});
2466
2467
2468var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);
2469
2470
2471
2472// CUSTOM
2473
2474
2475function _VirtualDom_custom(factList, model, render, diff)
2476{
2477	return {
2478		$: 3,
2479		d: _VirtualDom_organizeFacts(factList),
2480		g: model,
2481		h: render,
2482		i: diff
2483	};
2484}
2485
2486
2487
2488// MAP
2489
2490
2491var _VirtualDom_map = F2(function(tagger, node)
2492{
2493	return {
2494		$: 4,
2495		j: tagger,
2496		k: node,
2497		b: 1 + (node.b || 0)
2498	};
2499});
2500
2501
2502
2503// LAZY
2504
2505
2506function _VirtualDom_thunk(refs, thunk)
2507{
2508	return {
2509		$: 5,
2510		l: refs,
2511		m: thunk,
2512		k: undefined
2513	};
2514}
2515
2516var _VirtualDom_lazy = F2(function(func, a)
2517{
2518	return _VirtualDom_thunk([func, a], function() {
2519		return func(a);
2520	});
2521});
2522
2523var _VirtualDom_lazy2 = F3(function(func, a, b)
2524{
2525	return _VirtualDom_thunk([func, a, b], function() {
2526		return A2(func, a, b);
2527	});
2528});
2529
2530var _VirtualDom_lazy3 = F4(function(func, a, b, c)
2531{
2532	return _VirtualDom_thunk([func, a, b, c], function() {
2533		return A3(func, a, b, c);
2534	});
2535});
2536
2537var _VirtualDom_lazy4 = F5(function(func, a, b, c, d)
2538{
2539	return _VirtualDom_thunk([func, a, b, c, d], function() {
2540		return A4(func, a, b, c, d);
2541	});
2542});
2543
2544var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)
2545{
2546	return _VirtualDom_thunk([func, a, b, c, d, e], function() {
2547		return A5(func, a, b, c, d, e);
2548	});
2549});
2550
2551var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)
2552{
2553	return _VirtualDom_thunk([func, a, b, c, d, e, f], function() {
2554		return A6(func, a, b, c, d, e, f);
2555	});
2556});
2557
2558var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)
2559{
2560	return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {
2561		return A7(func, a, b, c, d, e, f, g);
2562	});
2563});
2564
2565var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)
2566{
2567	return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {
2568		return A8(func, a, b, c, d, e, f, g, h);
2569	});
2570});
2571
2572
2573
2574// FACTS
2575
2576
2577var _VirtualDom_on = F2(function(key, handler)
2578{
2579	return {
2580		$: 'a0',
2581		n: key,
2582		o: handler
2583	};
2584});
2585var _VirtualDom_style = F2(function(key, value)
2586{
2587	return {
2588		$: 'a1',
2589		n: key,
2590		o: value
2591	};
2592});
2593var _VirtualDom_property = F2(function(key, value)
2594{
2595	return {
2596		$: 'a2',
2597		n: key,
2598		o: value
2599	};
2600});
2601var _VirtualDom_attribute = F2(function(key, value)
2602{
2603	return {
2604		$: 'a3',
2605		n: key,
2606		o: value
2607	};
2608});
2609var _VirtualDom_attributeNS = F3(function(namespace, key, value)
2610{
2611	return {
2612		$: 'a4',
2613		n: key,
2614		o: { f: namespace, o: value }
2615	};
2616});
2617
2618
2619
2620// XSS ATTACK VECTOR CHECKS
2621//
2622// For some reason, tabs can appear in href protocols and it still works.
2623// So '\tjava\tSCRIPT:alert("!!!")' and 'javascript:alert("!!!")' are the same
2624// in practice. That is why _VirtualDom_RE_js and _VirtualDom_RE_js_html look
2625// so freaky.
2626//
2627// Pulling the regular expressions out to the top level gives a slight speed
2628// boost in small benchmarks (4-10%) but hoisting values to reduce allocation
2629// can be unpredictable in large programs where JIT may have a harder time with
2630// functions are not fully self-contained. The benefit is more that the js and
2631// js_html ones are so weird that I prefer to see them near each other.
2632
2633
2634var _VirtualDom_RE_script = /^script$/i;
2635var _VirtualDom_RE_on_formAction = /^(on|formAction$)/i;
2636var _VirtualDom_RE_js = /^\s*j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:/i;
2637var _VirtualDom_RE_js_html = /^\s*(j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:|d\s*a\s*t\s*a\s*:\s*t\s*e\s*x\s*t\s*\/\s*h\s*t\s*m\s*l\s*(,|;))/i;
2638
2639
2640function _VirtualDom_noScript(tag)
2641{
2642	return _VirtualDom_RE_script.test(tag) ? 'p' : tag;
2643}
2644
2645function _VirtualDom_noOnOrFormAction(key)
2646{
2647	return _VirtualDom_RE_on_formAction.test(key) ? 'data-' + key : key;
2648}
2649
2650function _VirtualDom_noInnerHtmlOrFormAction(key)
2651{
2652	return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key;
2653}
2654
2655function _VirtualDom_noJavaScriptUri(value)
2656{
2657	return _VirtualDom_RE_js.test(value)
2658		? /**/''//*//**_UNUSED/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/
2659		: value;
2660}
2661
2662function _VirtualDom_noJavaScriptOrHtmlUri(value)
2663{
2664	return _VirtualDom_RE_js_html.test(value)
2665		? /**/''//*//**_UNUSED/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/
2666		: value;
2667}
2668
2669function _VirtualDom_noJavaScriptOrHtmlJson(value)
2670{
2671	return (typeof _Json_unwrap(value) === 'string' && _VirtualDom_RE_js_html.test(_Json_unwrap(value)))
2672		? _Json_wrap(
2673			/**/''//*//**_UNUSED/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/
2674		) : value;
2675}
2676
2677
2678
2679// MAP FACTS
2680
2681
2682var _VirtualDom_mapAttribute = F2(function(func, attr)
2683{
2684	return (attr.$ === 'a0')
2685		? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))
2686		: attr;
2687});
2688
2689function _VirtualDom_mapHandler(func, handler)
2690{
2691	var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);
2692
2693	// 0 = Normal
2694	// 1 = MayStopPropagation
2695	// 2 = MayPreventDefault
2696	// 3 = Custom
2697
2698	return {
2699		$: handler.$,
2700		a:
2701			!tag
2702				? A2($elm$json$Json$Decode$map, func, handler.a)
2703				:
2704			A3($elm$json$Json$Decode$map2,
2705				tag < 3
2706					? _VirtualDom_mapEventTuple
2707					: _VirtualDom_mapEventRecord,
2708				$elm$json$Json$Decode$succeed(func),
2709				handler.a
2710			)
2711	};
2712}
2713
2714var _VirtualDom_mapEventTuple = F2(function(func, tuple)
2715{
2716	return _Utils_Tuple2(func(tuple.a), tuple.b);
2717});
2718
2719var _VirtualDom_mapEventRecord = F2(function(func, record)
2720{
2721	return {
2722		ae: func(record.ae),
2723		dF: record.dF,
2724		dy: record.dy
2725	}
2726});
2727
2728
2729
2730// ORGANIZE FACTS
2731
2732
2733function _VirtualDom_organizeFacts(factList)
2734{
2735	for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS
2736	{
2737		var entry = factList.a;
2738
2739		var tag = entry.$;
2740		var key = entry.n;
2741		var value = entry.o;
2742
2743		if (tag === 'a2')
2744		{
2745			(key === 'className')
2746				? _VirtualDom_addClass(facts, key, _Json_unwrap(value))
2747				: facts[key] = _Json_unwrap(value);
2748
2749			continue;
2750		}
2751
2752		var subFacts = facts[tag] || (facts[tag] = {});
2753		(tag === 'a3' && key === 'class')
2754			? _VirtualDom_addClass(subFacts, key, value)
2755			: subFacts[key] = value;
2756	}
2757
2758	return facts;
2759}
2760
2761function _VirtualDom_addClass(object, key, newClass)
2762{
2763	var classes = object[key];
2764	object[key] = classes ? classes + ' ' + newClass : newClass;
2765}
2766
2767
2768
2769// RENDER
2770
2771
2772function _VirtualDom_render(vNode, eventNode)
2773{
2774	var tag = vNode.$;
2775
2776	if (tag === 5)
2777	{
2778		return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);
2779	}
2780
2781	if (tag === 0)
2782	{
2783		return _VirtualDom_doc.createTextNode(vNode.a);
2784	}
2785
2786	if (tag === 4)
2787	{
2788		var subNode = vNode.k;
2789		var tagger = vNode.j;
2790
2791		while (subNode.$ === 4)
2792		{
2793			typeof tagger !== 'object'
2794				? tagger = [tagger, subNode.j]
2795				: tagger.push(subNode.j);
2796
2797			subNode = subNode.k;
2798		}
2799
2800		var subEventRoot = { j: tagger, p: eventNode };
2801		var domNode = _VirtualDom_render(subNode, subEventRoot);
2802		domNode.elm_event_node_ref = subEventRoot;
2803		return domNode;
2804	}
2805
2806	if (tag === 3)
2807	{
2808		var domNode = vNode.h(vNode.g);
2809		_VirtualDom_applyFacts(domNode, eventNode, vNode.d);
2810		return domNode;
2811	}
2812
2813	// at this point `tag` must be 1 or 2
2814
2815	var domNode = vNode.f
2816		? _VirtualDom_doc.createElementNS(vNode.f, vNode.c)
2817		: _VirtualDom_doc.createElement(vNode.c);
2818
2819	if (_VirtualDom_divertHrefToApp && vNode.c == 'a')
2820	{
2821		domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode));
2822	}
2823
2824	_VirtualDom_applyFacts(domNode, eventNode, vNode.d);
2825
2826	for (var kids = vNode.e, i = 0; i < kids.length; i++)
2827	{
2828		_VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode));
2829	}
2830
2831	return domNode;
2832}
2833
2834
2835
2836// APPLY FACTS
2837
2838
2839function _VirtualDom_applyFacts(domNode, eventNode, facts)
2840{
2841	for (var key in facts)
2842	{
2843		var value = facts[key];
2844
2845		key === 'a1'
2846			? _VirtualDom_applyStyles(domNode, value)
2847			:
2848		key === 'a0'
2849			? _VirtualDom_applyEvents(domNode, eventNode, value)
2850			:
2851		key === 'a3'
2852			? _VirtualDom_applyAttrs(domNode, value)
2853			:
2854		key === 'a4'
2855			? _VirtualDom_applyAttrsNS(domNode, value)
2856			:
2857		((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value);
2858	}
2859}
2860
2861
2862
2863// APPLY STYLES
2864
2865
2866function _VirtualDom_applyStyles(domNode, styles)
2867{
2868	var domNodeStyle = domNode.style;
2869
2870	for (var key in styles)
2871	{
2872		domNodeStyle[key] = styles[key];
2873	}
2874}
2875
2876
2877
2878// APPLY ATTRS
2879
2880
2881function _VirtualDom_applyAttrs(domNode, attrs)
2882{
2883	for (var key in attrs)
2884	{
2885		var value = attrs[key];
2886		typeof value !== 'undefined'
2887			? domNode.setAttribute(key, value)
2888			: domNode.removeAttribute(key);
2889	}
2890}
2891
2892
2893
2894// APPLY NAMESPACED ATTRS
2895
2896
2897function _VirtualDom_applyAttrsNS(domNode, nsAttrs)
2898{
2899	for (var key in nsAttrs)
2900	{
2901		var pair = nsAttrs[key];
2902		var namespace = pair.f;
2903		var value = pair.o;
2904
2905		typeof value !== 'undefined'
2906			? domNode.setAttributeNS(namespace, key, value)
2907			: domNode.removeAttributeNS(namespace, key);
2908	}
2909}
2910
2911
2912
2913// APPLY EVENTS
2914
2915
2916function _VirtualDom_applyEvents(domNode, eventNode, events)
2917{
2918	var allCallbacks = domNode.elmFs || (domNode.elmFs = {});
2919
2920	for (var key in events)
2921	{
2922		var newHandler = events[key];
2923		var oldCallback = allCallbacks[key];
2924
2925		if (!newHandler)
2926		{
2927			domNode.removeEventListener(key, oldCallback);
2928			allCallbacks[key] = undefined;
2929			continue;
2930		}
2931
2932		if (oldCallback)
2933		{
2934			var oldHandler = oldCallback.q;
2935			if (oldHandler.$ === newHandler.$)
2936			{
2937				oldCallback.q = newHandler;
2938				continue;
2939			}
2940			domNode.removeEventListener(key, oldCallback);
2941		}
2942
2943		oldCallback = _VirtualDom_makeCallback(eventNode, newHandler);
2944		domNode.addEventListener(key, oldCallback,
2945			_VirtualDom_passiveSupported
2946			&& { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 }
2947		);
2948		allCallbacks[key] = oldCallback;
2949	}
2950}
2951
2952
2953
2954// PASSIVE EVENTS
2955
2956
2957var _VirtualDom_passiveSupported;
2958
2959try
2960{
2961	window.addEventListener('t', null, Object.defineProperty({}, 'passive', {
2962		get: function() { _VirtualDom_passiveSupported = true; }
2963	}));
2964}
2965catch(e) {}
2966
2967
2968
2969// EVENT HANDLERS
2970
2971
2972function _VirtualDom_makeCallback(eventNode, initialHandler)
2973{
2974	function callback(event)
2975	{
2976		var handler = callback.q;
2977		var result = _Json_runHelp(handler.a, event);
2978
2979		if (!$elm$core$Result$isOk(result))
2980		{
2981			return;
2982		}
2983
2984		var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);
2985
2986		// 0 = Normal
2987		// 1 = MayStopPropagation
2988		// 2 = MayPreventDefault
2989		// 3 = Custom
2990
2991		var value = result.a;
2992		var message = !tag ? value : tag < 3 ? value.a : value.ae;
2993		var stopPropagation = tag == 1 ? value.b : tag == 3 && value.dF;
2994		var currentEventNode = (
2995			stopPropagation && event.stopPropagation(),
2996			(tag == 2 ? value.b : tag == 3 && value.dy) && event.preventDefault(),
2997			eventNode
2998		);
2999		var tagger;
3000		var i;
3001		while (tagger = currentEventNode.j)
3002		{
3003			if (typeof tagger == 'function')
3004			{
3005				message = tagger(message);
3006			}
3007			else
3008			{
3009				for (var i = tagger.length; i--; )
3010				{
3011					message = tagger[i](message);
3012				}
3013			}
3014			currentEventNode = currentEventNode.p;
3015		}
3016		currentEventNode(message, stopPropagation); // stopPropagation implies isSync
3017	}
3018
3019	callback.q = initialHandler;
3020
3021	return callback;
3022}
3023
3024function _VirtualDom_equalEvents(x, y)
3025{
3026	return x.$ == y.$ && _Json_equality(x.a, y.a);
3027}
3028
3029
3030
3031// DIFF
3032
3033
3034// TODO: Should we do patches like in iOS?
3035//
3036// type Patch
3037//   = At Int Patch
3038//   | Batch (List Patch)
3039//   | Change ...
3040//
3041// How could it not be better?
3042//
3043function _VirtualDom_diff(x, y)
3044{
3045	var patches = [];
3046	_VirtualDom_diffHelp(x, y, patches, 0);
3047	return patches;
3048}
3049
3050
3051function _VirtualDom_pushPatch(patches, type, index, data)
3052{
3053	var patch = {
3054		$: type,
3055		r: index,
3056		s: data,
3057		t: undefined,
3058		u: undefined
3059	};
3060	patches.push(patch);
3061	return patch;
3062}
3063
3064
3065function _VirtualDom_diffHelp(x, y, patches, index)
3066{
3067	if (x === y)
3068	{
3069		return;
3070	}
3071
3072	var xType = x.$;
3073	var yType = y.$;
3074
3075	// Bail if you run into different types of nodes. Implies that the
3076	// structure has changed significantly and it's not worth a diff.
3077	if (xType !== yType)
3078	{
3079		if (xType === 1 && yType === 2)
3080		{
3081			y = _VirtualDom_dekey(y);
3082			yType = 1;
3083		}
3084		else
3085		{
3086			_VirtualDom_pushPatch(patches, 0, index, y);
3087			return;
3088		}
3089	}
3090
3091	// Now we know that both nodes are the same $.
3092	switch (yType)
3093	{
3094		case 5:
3095			var xRefs = x.l;
3096			var yRefs = y.l;
3097			var i = xRefs.length;
3098			var same = i === yRefs.length;
3099			while (same && i--)
3100			{
3101				same = xRefs[i] === yRefs[i];
3102			}
3103			if (same)
3104			{
3105				y.k = x.k;
3106				return;
3107			}
3108			y.k = y.m();
3109			var subPatches = [];
3110			_VirtualDom_diffHelp(x.k, y.k, subPatches, 0);
3111			subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);
3112			return;
3113
3114		case 4:
3115			// gather nested taggers
3116			var xTaggers = x.j;
3117			var yTaggers = y.j;
3118			var nesting = false;
3119
3120			var xSubNode = x.k;
3121			while (xSubNode.$ === 4)
3122			{
3123				nesting = true;
3124
3125				typeof xTaggers !== 'object'
3126					? xTaggers = [xTaggers, xSubNode.j]
3127					: xTaggers.push(xSubNode.j);
3128
3129				xSubNode = xSubNode.k;
3130			}
3131
3132			var ySubNode = y.k;
3133			while (ySubNode.$ === 4)
3134			{
3135				nesting = true;
3136
3137				typeof yTaggers !== 'object'
3138					? yTaggers = [yTaggers, ySubNode.j]
3139					: yTaggers.push(ySubNode.j);
3140
3141				ySubNode = ySubNode.k;
3142			}
3143
3144			// Just bail if different numbers of taggers. This implies the
3145			// structure of the virtual DOM has changed.
3146			if (nesting && xTaggers.length !== yTaggers.length)
3147			{
3148				_VirtualDom_pushPatch(patches, 0, index, y);
3149				return;
3150			}
3151
3152			// check if taggers are "the same"
3153			if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)
3154			{
3155				_VirtualDom_pushPatch(patches, 2, index, yTaggers);
3156			}
3157
3158			// diff everything below the taggers
3159			_VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);
3160			return;
3161
3162		case 0:
3163			if (x.a !== y.a)
3164			{
3165				_VirtualDom_pushPatch(patches, 3, index, y.a);
3166			}
3167			return;
3168
3169		case 1:
3170			_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);
3171			return;
3172
3173		case 2:
3174			_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);
3175			return;
3176
3177		case 3:
3178			if (x.h !== y.h)
3179			{
3180				_VirtualDom_pushPatch(patches, 0, index, y);
3181				return;
3182			}
3183
3184			var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
3185			factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
3186
3187			var patch = y.i(x.g, y.g);
3188			patch && _VirtualDom_pushPatch(patches, 5, index, patch);
3189
3190			return;
3191	}
3192}
3193
3194// assumes the incoming arrays are the same length
3195function _VirtualDom_pairwiseRefEqual(as, bs)
3196{
3197	for (var i = 0; i < as.length; i++)
3198	{
3199		if (as[i] !== bs[i])
3200		{
3201			return false;
3202		}
3203	}
3204
3205	return true;
3206}
3207
3208function _VirtualDom_diffNodes(x, y, patches, index, diffKids)
3209{
3210	// Bail if obvious indicators have changed. Implies more serious
3211	// structural changes such that it's not worth it to diff.
3212	if (x.c !== y.c || x.f !== y.f)
3213	{
3214		_VirtualDom_pushPatch(patches, 0, index, y);
3215		return;
3216	}
3217
3218	var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
3219	factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
3220
3221	diffKids(x, y, patches, index);
3222}
3223
3224
3225
3226// DIFF FACTS
3227
3228
3229// TODO Instead of creating a new diff object, it's possible to just test if
3230// there *is* a diff. During the actual patch, do the diff again and make the
3231// modifications directly. This way, there's no new allocations. Worth it?
3232function _VirtualDom_diffFacts(x, y, category)
3233{
3234	var diff;
3235
3236	// look for changes and removals
3237	for (var xKey in x)
3238	{
3239		if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')
3240		{
3241			var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);
3242			if (subDiff)
3243			{
3244				diff = diff || {};
3245				diff[xKey] = subDiff;
3246			}
3247			continue;
3248		}
3249
3250		// remove if not in the new facts
3251		if (!(xKey in y))
3252		{
3253			diff = diff || {};
3254			diff[xKey] =
3255				!category
3256					? (typeof x[xKey] === 'string' ? '' : null)
3257					:
3258				(category === 'a1')
3259					? ''
3260					:
3261				(category === 'a0' || category === 'a3')
3262					? undefined
3263					:
3264				{ f: x[xKey].f, o: undefined };
3265
3266			continue;
3267		}
3268
3269		var xValue = x[xKey];
3270		var yValue = y[xKey];
3271
3272		// reference equal, so don't worry about it
3273		if (xValue === yValue && xKey !== 'value' && xKey !== 'checked'
3274			|| category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))
3275		{
3276			continue;
3277		}
3278
3279		diff = diff || {};
3280		diff[xKey] = yValue;
3281	}
3282
3283	// add new stuff
3284	for (var yKey in y)
3285	{
3286		if (!(yKey in x))
3287		{
3288			diff = diff || {};
3289			diff[yKey] = y[yKey];
3290		}
3291	}
3292
3293	return diff;
3294}
3295
3296
3297
3298// DIFF KIDS
3299
3300
3301function _VirtualDom_diffKids(xParent, yParent, patches, index)
3302{
3303	var xKids = xParent.e;
3304	var yKids = yParent.e;
3305
3306	var xLen = xKids.length;
3307	var yLen = yKids.length;
3308
3309	// FIGURE OUT IF THERE ARE INSERTS OR REMOVALS
3310
3311	if (xLen > yLen)
3312	{
3313		_VirtualDom_pushPatch(patches, 6, index, {
3314			v: yLen,
3315			i: xLen - yLen
3316		});
3317	}
3318	else if (xLen < yLen)
3319	{
3320		_VirtualDom_pushPatch(patches, 7, index, {
3321			v: xLen,
3322			e: yKids
3323		});
3324	}
3325
3326	// PAIRWISE DIFF EVERYTHING ELSE
3327
3328	for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)
3329	{
3330		var xKid = xKids[i];
3331		_VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);
3332		index += xKid.b || 0;
3333	}
3334}
3335
3336
3337
3338// KEYED DIFF
3339
3340
3341function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)
3342{
3343	var localPatches = [];
3344
3345	var changes = {}; // Dict String Entry
3346	var inserts = []; // Array { index : Int, entry : Entry }
3347	// type Entry = { tag : String, vnode : VNode, index : Int, data : _ }
3348
3349	var xKids = xParent.e;
3350	var yKids = yParent.e;
3351	var xLen = xKids.length;
3352	var yLen = yKids.length;
3353	var xIndex = 0;
3354	var yIndex = 0;
3355
3356	var index = rootIndex;
3357
3358	while (xIndex < xLen && yIndex < yLen)
3359	{
3360		var x = xKids[xIndex];
3361		var y = yKids[yIndex];
3362
3363		var xKey = x.a;
3364		var yKey = y.a;
3365		var xNode = x.b;
3366		var yNode = y.b;
3367
3368		var newMatch = undefined;
3369		var oldMatch = undefined;
3370
3371		// check if keys match
3372
3373		if (xKey === yKey)
3374		{
3375			index++;
3376			_VirtualDom_diffHelp(xNode, yNode, localPatches, index);
3377			index += xNode.b || 0;
3378
3379			xIndex++;
3380			yIndex++;
3381			continue;
3382		}
3383
3384		// look ahead 1 to detect insertions and removals.
3385
3386		var xNext = xKids[xIndex + 1];
3387		var yNext = yKids[yIndex + 1];
3388
3389		if (xNext)
3390		{
3391			var xNextKey = xNext.a;
3392			var xNextNode = xNext.b;
3393			oldMatch = yKey === xNextKey;
3394		}
3395
3396		if (yNext)
3397		{
3398			var yNextKey = yNext.a;
3399			var yNextNode = yNext.b;
3400			newMatch = xKey === yNextKey;
3401		}
3402
3403
3404		// swap x and y
3405		if (newMatch && oldMatch)
3406		{
3407			index++;
3408			_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
3409			_VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);
3410			index += xNode.b || 0;
3411
3412			index++;
3413			_VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);
3414			index += xNextNode.b || 0;
3415
3416			xIndex += 2;
3417			yIndex += 2;
3418			continue;
3419		}
3420
3421		// insert y
3422		if (newMatch)
3423		{
3424			index++;
3425			_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
3426			_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
3427			index += xNode.b || 0;
3428
3429			xIndex += 1;
3430			yIndex += 2;
3431			continue;
3432		}
3433
3434		// remove x
3435		if (oldMatch)
3436		{
3437			index++;
3438			_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
3439			index += xNode.b || 0;
3440
3441			index++;
3442			_VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);
3443			index += xNextNode.b || 0;
3444
3445			xIndex += 2;
3446			yIndex += 1;
3447			continue;
3448		}
3449
3450		// remove x, insert y
3451		if (xNext && xNextKey === yNextKey)
3452		{
3453			index++;
3454			_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
3455			_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
3456			index += xNode.b || 0;
3457
3458			index++;
3459			_VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);
3460			index += xNextNode.b || 0;
3461
3462			xIndex += 2;
3463			yIndex += 2;
3464			continue;
3465		}
3466
3467		break;
3468	}
3469
3470	// eat up any remaining nodes with removeNode and insertNode
3471
3472	while (xIndex < xLen)
3473	{
3474		index++;
3475		var x = xKids[xIndex];
3476		var xNode = x.b;
3477		_VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);
3478		index += xNode.b || 0;
3479		xIndex++;
3480	}
3481
3482	while (yIndex < yLen)
3483	{
3484		var endInserts = endInserts || [];
3485		var y = yKids[yIndex];
3486		_VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);
3487		yIndex++;
3488	}
3489
3490	if (localPatches.length > 0 || inserts.length > 0 || endInserts)
3491	{
3492		_VirtualDom_pushPatch(patches, 8, rootIndex, {
3493			w: localPatches,
3494			x: inserts,
3495			y: endInserts
3496		});
3497	}
3498}
3499
3500
3501
3502// CHANGES FROM KEYED DIFF
3503
3504
3505var _VirtualDom_POSTFIX = '_elmW6BL';
3506
3507
3508function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)
3509{
3510	var entry = changes[key];
3511
3512	// never seen this key before
3513	if (!entry)
3514	{
3515		entry = {
3516			c: 0,
3517			z: vnode,
3518			r: yIndex,
3519			s: undefined
3520		};
3521
3522		inserts.push({ r: yIndex, A: entry });
3523		changes[key] = entry;
3524
3525		return;
3526	}
3527
3528	// this key was removed earlier, a match!
3529	if (entry.c === 1)
3530	{
3531		inserts.push({ r: yIndex, A: entry });
3532
3533		entry.c = 2;
3534		var subPatches = [];
3535		_VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);
3536		entry.r = yIndex;
3537		entry.s.s = {
3538			w: subPatches,
3539			A: entry
3540		};
3541
3542		return;
3543	}
3544
3545	// this key has already been inserted or moved, a duplicate!
3546	_VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);
3547}
3548
3549
3550function _VirtualDom_removeNode(changes, localPatches, key, vnode, index)
3551{
3552	var entry = changes[key];
3553
3554	// never seen this key before
3555	if (!entry)
3556	{
3557		var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);
3558
3559		changes[key] = {
3560			c: 1,
3561			z: vnode,
3562			r: index,
3563			s: patch
3564		};
3565
3566		return;
3567	}
3568
3569	// this key was inserted earlier, a match!
3570	if (entry.c === 0)
3571	{
3572		entry.c = 2;
3573		var subPatches = [];
3574		_VirtualDom_diffHelp(vnode, entry.z, subPatches, index);
3575
3576		_VirtualDom_pushPatch(localPatches, 9, index, {
3577			w: subPatches,
3578			A: entry
3579		});
3580
3581		return;
3582	}
3583
3584	// this key has already been removed or moved, a duplicate!
3585	_VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);
3586}
3587
3588
3589
3590// ADD DOM NODES
3591//
3592// Each DOM node has an "index" assigned in order of traversal. It is important
3593// to minimize our crawl over the actual DOM, so these indexes (along with the
3594// descendantsCount of virtual nodes) let us skip touching entire subtrees of
3595// the DOM if we know there are no patches there.
3596
3597
3598function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)
3599{
3600	_VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);
3601}
3602
3603
3604// assumes `patches` is non-empty and indexes increase monotonically.
3605function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)
3606{
3607	var patch = patches[i];
3608	var index = patch.r;
3609
3610	while (index === low)
3611	{
3612		var patchType = patch.$;
3613
3614		if (patchType === 1)
3615		{
3616			_VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);
3617		}
3618		else if (patchType === 8)
3619		{
3620			patch.t = domNode;
3621			patch.u = eventNode;
3622
3623			var subPatches = patch.s.w;
3624			if (subPatches.length > 0)
3625			{
3626				_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
3627			}
3628		}
3629		else if (patchType === 9)
3630		{
3631			patch.t = domNode;
3632			patch.u = eventNode;
3633
3634			var data = patch.s;
3635			if (data)
3636			{
3637				data.A.s = domNode;
3638				var subPatches = data.w;
3639				if (subPatches.length > 0)
3640				{
3641					_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
3642				}
3643			}
3644		}
3645		else
3646		{
3647			patch.t = domNode;
3648			patch.u = eventNode;
3649		}
3650
3651		i++;
3652
3653		if (!(patch = patches[i]) || (index = patch.r) > high)
3654		{
3655			return i;
3656		}
3657	}
3658
3659	var tag = vNode.$;
3660
3661	if (tag === 4)
3662	{
3663		var subNode = vNode.k;
3664
3665		while (subNode.$ === 4)
3666		{
3667			subNode = subNode.k;
3668		}
3669
3670		return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref);
3671	}
3672
3673	// tag must be 1 or 2 at this point
3674
3675	var vKids = vNode.e;
3676	var childNodes = domNode.childNodes;
3677	for (var j = 0; j < vKids.length; j++)
3678	{
3679		low++;
3680		var vKid = tag === 1 ? vKids[j] : vKids[j].b;
3681		var nextLow = low + (vKid.b || 0);
3682		if (low <= index && index <= nextLow)
3683		{
3684			i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);
3685			if (!(patch = patches[i]) || (index = patch.r) > high)
3686			{
3687				return i;
3688			}
3689		}
3690		low = nextLow;
3691	}
3692	return i;
3693}
3694
3695
3696
3697// APPLY PATCHES
3698
3699
3700function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)
3701{
3702	if (patches.length === 0)
3703	{
3704		return rootDomNode;
3705	}
3706
3707	_VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);
3708	return _VirtualDom_applyPatchesHelp(rootDomNode, patches);
3709}
3710
3711function _VirtualDom_applyPatchesHelp(rootDomNode, patches)
3712{
3713	for (var i = 0; i < patches.length; i++)
3714	{
3715		var patch = patches[i];
3716		var localDomNode = patch.t
3717		var newNode = _VirtualDom_applyPatch(localDomNode, patch);
3718		if (localDomNode === rootDomNode)
3719		{
3720			rootDomNode = newNode;
3721		}
3722	}
3723	return rootDomNode;
3724}
3725
3726function _VirtualDom_applyPatch(domNode, patch)
3727{
3728	switch (patch.$)
3729	{
3730		case 0:
3731			return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);
3732
3733		case 4:
3734			_VirtualDom_applyFacts(domNode, patch.u, patch.s);
3735			return domNode;
3736
3737		case 3:
3738			domNode.replaceData(0, domNode.length, patch.s);
3739			return domNode;
3740
3741		case 1:
3742			return _VirtualDom_applyPatchesHelp(domNode, patch.s);
3743
3744		case 2:
3745			if (domNode.elm_event_node_ref)
3746			{
3747				domNode.elm_event_node_ref.j = patch.s;
3748			}
3749			else
3750			{
3751				domNode.elm_event_node_ref = { j: patch.s, p: patch.u };
3752			}
3753			return domNode;
3754
3755		case 6:
3756			var data = patch.s;
3757			for (var i = 0; i < data.i; i++)
3758			{
3759				domNode.removeChild(domNode.childNodes[data.v]);
3760			}
3761			return domNode;
3762
3763		case 7:
3764			var data = patch.s;
3765			var kids = data.e;
3766			var i = data.v;
3767			var theEnd = domNode.childNodes[i];
3768			for (; i < kids.length; i++)
3769			{
3770				domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd);
3771			}
3772			return domNode;
3773
3774		case 9:
3775			var data = patch.s;
3776			if (!data)
3777			{
3778				domNode.parentNode.removeChild(domNode);
3779				return domNode;
3780			}
3781			var entry = data.A;
3782			if (typeof entry.r !== 'undefined')
3783			{
3784				domNode.parentNode.removeChild(domNode);
3785			}
3786			entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);
3787			return domNode;
3788
3789		case 8:
3790			return _VirtualDom_applyPatchReorder(domNode, patch);
3791
3792		case 5:
3793			return patch.s(domNode);
3794
3795		default:
3796			_Debug_crash(10); // 'Ran into an unknown patch!'
3797	}
3798}
3799
3800
3801function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)
3802{
3803	var parentNode = domNode.parentNode;
3804	var newNode = _VirtualDom_render(vNode, eventNode);
3805
3806	if (!newNode.elm_event_node_ref)
3807	{
3808		newNode.elm_event_node_ref = domNode.elm_event_node_ref;
3809	}
3810
3811	if (parentNode && newNode !== domNode)
3812	{
3813		parentNode.replaceChild(newNode, domNode);
3814	}
3815	return newNode;
3816}
3817
3818
3819function _VirtualDom_applyPatchReorder(domNode, patch)
3820{
3821	var data = patch.s;
3822
3823	// remove end inserts
3824	var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);
3825
3826	// removals
3827	domNode = _VirtualDom_applyPatchesHelp(domNode, data.w);
3828
3829	// inserts
3830	var inserts = data.x;
3831	for (var i = 0; i < inserts.length; i++)
3832	{
3833		var insert = inserts[i];
3834		var entry = insert.A;
3835		var node = entry.c === 2
3836			? entry.s
3837			: _VirtualDom_render(entry.z, patch.u);
3838		domNode.insertBefore(node, domNode.childNodes[insert.r]);
3839	}
3840
3841	// add end inserts
3842	if (frag)
3843	{
3844		_VirtualDom_appendChild(domNode, frag);
3845	}
3846
3847	return domNode;
3848}
3849
3850
3851function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)
3852{
3853	if (!endInserts)
3854	{
3855		return;
3856	}
3857
3858	var frag = _VirtualDom_doc.createDocumentFragment();
3859	for (var i = 0; i < endInserts.length; i++)
3860	{
3861		var insert = endInserts[i];
3862		var entry = insert.A;
3863		_VirtualDom_appendChild(frag, entry.c === 2
3864			? entry.s
3865			: _VirtualDom_render(entry.z, patch.u)
3866		);
3867	}
3868	return frag;
3869}
3870
3871
3872function _VirtualDom_virtualize(node)
3873{
3874	// TEXT NODES
3875
3876	if (node.nodeType === 3)
3877	{
3878		return _VirtualDom_text(node.textContent);
3879	}
3880
3881
3882	// WEIRD NODES
3883
3884	if (node.nodeType !== 1)
3885	{
3886		return _VirtualDom_text('');
3887	}
3888
3889
3890	// ELEMENT NODES
3891
3892	var attrList = _List_Nil;
3893	var attrs = node.attributes;
3894	for (var i = attrs.length; i--; )
3895	{
3896		var attr = attrs[i];
3897		var name = attr.name;
3898		var value = attr.value;
3899		attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList );
3900	}
3901
3902	var tag = node.tagName.toLowerCase();
3903	var kidList = _List_Nil;
3904	var kids = node.childNodes;
3905
3906	for (var i = kids.length; i--; )
3907	{
3908		kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList);
3909	}
3910	return A3(_VirtualDom_node, tag, attrList, kidList);
3911}
3912
3913function _VirtualDom_dekey(keyedNode)
3914{
3915	var keyedKids = keyedNode.e;
3916	var len = keyedKids.length;
3917	var kids = new Array(len);
3918	for (var i = 0; i < len; i++)
3919	{
3920		kids[i] = keyedKids[i].b;
3921	}
3922
3923	return {
3924		$: 1,
3925		c: keyedNode.c,
3926		d: keyedNode.d,
3927		e: kids,
3928		f: keyedNode.f,
3929		b: keyedNode.b
3930	};
3931}
3932
3933
3934
3935var _Bitwise_and = F2(function(a, b)
3936{
3937	return a & b;
3938});
3939
3940var _Bitwise_or = F2(function(a, b)
3941{
3942	return a | b;
3943});
3944
3945var _Bitwise_xor = F2(function(a, b)
3946{
3947	return a ^ b;
3948});
3949
3950function _Bitwise_complement(a)
3951{
3952	return ~a;
3953};
3954
3955var _Bitwise_shiftLeftBy = F2(function(offset, a)
3956{
3957	return a << offset;
3958});
3959
3960var _Bitwise_shiftRightBy = F2(function(offset, a)
3961{
3962	return a >> offset;
3963});
3964
3965var _Bitwise_shiftRightZfBy = F2(function(offset, a)
3966{
3967	return a >>> offset;
3968});
3969
3970
3971
3972function _Time_now(millisToPosix)
3973{
3974	return _Scheduler_binding(function(callback)
3975	{
3976		callback(_Scheduler_succeed(millisToPosix(Date.now())));
3977	});
3978}
3979
3980var _Time_setInterval = F2(function(interval, task)
3981{
3982	return _Scheduler_binding(function(callback)
3983	{
3984		var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval);
3985		return function() { clearInterval(id); };
3986	});
3987});
3988
3989function _Time_here()
3990{
3991	return _Scheduler_binding(function(callback)
3992	{
3993		callback(_Scheduler_succeed(
3994			A2($elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil)
3995		));
3996	});
3997}
3998
3999
4000function _Time_getZoneName()
4001{
4002	return _Scheduler_binding(function(callback)
4003	{
4004		try
4005		{
4006			var name = $elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone);
4007		}
4008		catch (e)
4009		{
4010			var name = $elm$time$Time$Offset(new Date().getTimezoneOffset());
4011		}
4012		callback(_Scheduler_succeed(name));
4013	});
4014}
4015
4016
4017
4018
4019// STRINGS
4020
4021
4022var _Parser_isSubString = F5(function(smallString, offset, row, col, bigString)
4023{
4024	var smallLength = smallString.length;
4025	var isGood = offset + smallLength <= bigString.length;
4026
4027	for (var i = 0; isGood && i < smallLength; )
4028	{
4029		var code = bigString.charCodeAt(offset);
4030		isGood =
4031			smallString[i++] === bigString[offset++]
4032			&& (
4033				code === 0x000A /* \n */
4034					? ( row++, col=1 )
4035					: ( col++, (code & 0xF800) === 0xD800 ? smallString[i++] === bigString[offset++] : 1 )
4036			)
4037	}
4038
4039	return _Utils_Tuple3(isGood ? offset : -1, row, col);
4040});
4041
4042
4043
4044// CHARS
4045
4046
4047var _Parser_isSubChar = F3(function(predicate, offset, string)
4048{
4049	return (
4050		string.length <= offset
4051			? -1
4052			:
4053		(string.charCodeAt(offset) & 0xF800) === 0xD800
4054			? (predicate(_Utils_chr(string.substr(offset, 2))) ? offset + 2 : -1)
4055			:
4056		(predicate(_Utils_chr(string[offset]))
4057			? ((string[offset] === '\n') ? -2 : (offset + 1))
4058			: -1
4059		)
4060	);
4061});
4062
4063
4064var _Parser_isAsciiCode = F3(function(code, offset, string)
4065{
4066	return string.charCodeAt(offset) === code;
4067});
4068
4069
4070
4071// NUMBERS
4072
4073
4074var _Parser_chompBase10 = F2(function(offset, string)
4075{
4076	for (; offset < string.length; offset++)
4077	{
4078		var code = string.charCodeAt(offset);
4079		if (code < 0x30 || 0x39 < code)
4080		{
4081			return offset;
4082		}
4083	}
4084	return offset;
4085});
4086
4087
4088var _Parser_consumeBase = F3(function(base, offset, string)
4089{
4090	for (var total = 0; offset < string.length; offset++)
4091	{
4092		var digit = string.charCodeAt(offset) - 0x30;
4093		if (digit < 0 || base <= digit) break;
4094		total = base * total + digit;
4095	}
4096	return _Utils_Tuple2(offset, total);
4097});
4098
4099
4100var _Parser_consumeBase16 = F2(function(offset, string)
4101{
4102	for (var total = 0; offset < string.length; offset++)
4103	{
4104		var code = string.charCodeAt(offset);
4105		if (0x30 <= code && code <= 0x39)
4106		{
4107			total = 16 * total + code - 0x30;
4108		}
4109		else if (0x41 <= code && code <= 0x46)
4110		{
4111			total = 16 * total + code - 55;
4112		}
4113		else if (0x61 <= code && code <= 0x66)
4114		{
4115			total = 16 * total + code - 87;
4116		}
4117		else
4118		{
4119			break;
4120		}
4121	}
4122	return _Utils_Tuple2(offset, total);
4123});
4124
4125
4126
4127// FIND STRING
4128
4129
4130var _Parser_findSubString = F5(function(smallString, offset, row, col, bigString)
4131{
4132	var newOffset = bigString.indexOf(smallString, offset);
4133	var target = newOffset < 0 ? bigString.length : newOffset + smallString.length;
4134
4135	while (offset < target)
4136	{
4137		var code = bigString.charCodeAt(offset++);
4138		code === 0x000A /* \n */
4139			? ( col=1, row++ )
4140			: ( col++, (code & 0xF800) === 0xD800 && offset++ )
4141	}
4142
4143	return _Utils_Tuple3(newOffset, row, col);
4144});
4145
4146
4147
4148
4149// ELEMENT
4150
4151
4152var _Debugger_element;
4153
4154var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args)
4155{
4156	return _Platform_initialize(
4157		flagDecoder,
4158		args,
4159		impl.di,
4160		impl.gx,
4161		impl.e_,
4162		function(sendToApp, initialModel) {
4163			var view = impl.cP;
4164			/**/
4165			var domNode = args['node'];
4166			//*/
4167			/**_UNUSED/
4168			var domNode = args && args['node'] ? args['node'] : _Debug_crash(0);
4169			//*/
4170			var currNode = _VirtualDom_virtualize(domNode);
4171
4172			return _Browser_makeAnimator(initialModel, function(model)
4173			{
4174				var nextNode = view(model);
4175				var patches = _VirtualDom_diff(currNode, nextNode);
4176				domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp);
4177				currNode = nextNode;
4178			});
4179		}
4180	);
4181});
4182
4183
4184
4185// DOCUMENT
4186
4187
4188var _Debugger_document;
4189
4190var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args)
4191{
4192	return _Platform_initialize(
4193		flagDecoder,
4194		args,
4195		impl.di,
4196		impl.gx,
4197		impl.e_,
4198		function(sendToApp, initialModel) {
4199			var divertHrefToApp = impl.dD && impl.dD(sendToApp)
4200			var view = impl.cP;
4201			var title = _VirtualDom_doc.title;
4202			var bodyNode = _VirtualDom_doc.body;
4203			var currNode = _VirtualDom_virtualize(bodyNode);
4204			return _Browser_makeAnimator(initialModel, function(model)
4205			{
4206				_VirtualDom_divertHrefToApp = divertHrefToApp;
4207				var doc = view(model);
4208				var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.fe);
4209				var patches = _VirtualDom_diff(currNode, nextNode);
4210				bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp);
4211				currNode = nextNode;
4212				_VirtualDom_divertHrefToApp = 0;
4213				(title !== doc.gt) && (_VirtualDom_doc.title = title = doc.gt);
4214			});
4215		}
4216	);
4217});
4218
4219
4220
4221// ANIMATION
4222
4223
4224var _Browser_cancelAnimationFrame =
4225	typeof cancelAnimationFrame !== 'undefined'
4226		? cancelAnimationFrame
4227		: function(id) { clearTimeout(id); };
4228
4229var _Browser_requestAnimationFrame =
4230	typeof requestAnimationFrame !== 'undefined'
4231		? requestAnimationFrame
4232		: function(callback) { return setTimeout(callback, 1000 / 60); };
4233
4234
4235function _Browser_makeAnimator(model, draw)
4236{
4237	draw(model);
4238
4239	var state = 0;
4240
4241	function updateIfNeeded()
4242	{
4243		state = state === 1
4244			? 0
4245			: ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 );
4246	}
4247
4248	return function(nextModel, isSync)
4249	{
4250		model = nextModel;
4251
4252		isSync
4253			? ( draw(model),
4254				state === 2 && (state = 1)
4255				)
4256			: ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded),
4257				state = 2
4258				);
4259	};
4260}
4261
4262
4263
4264// APPLICATION
4265
4266
4267function _Browser_application(impl)
4268{
4269	var onUrlChange = impl.f6;
4270	var onUrlRequest = impl.f7;
4271	var key = function() { key.a(onUrlChange(_Browser_getUrl())); };
4272
4273	return _Browser_document({
4274		dD: function(sendToApp)
4275		{
4276			key.a = sendToApp;
4277			_Browser_window.addEventListener('popstate', key);
4278			_Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key);
4279
4280			return F2(function(domNode, event)
4281			{
4282				if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download'))
4283				{
4284					event.preventDefault();
4285					var href = domNode.href;
4286					var curr = _Browser_getUrl();
4287					var next = $elm$url$Url$fromString(href).a;
4288					sendToApp(onUrlRequest(
4289						(next
4290							&& curr.eK === next.eK
4291							&& curr.eh === next.eh
4292							&& curr.eH.a === next.eH.a
4293						)
4294							? $elm$browser$Browser$Internal(next)
4295							: $elm$browser$Browser$External(href)
4296					));
4297				}
4298			});
4299		},
4300		di: function(flags)
4301		{
4302			return A3(impl.di, flags, _Browser_getUrl(), key);
4303		},
4304		cP: impl.cP,
4305		gx: impl.gx,
4306		e_: impl.e_
4307	});
4308}
4309
4310function _Browser_getUrl()
4311{
4312	return $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1);
4313}
4314
4315var _Browser_go = F2(function(key, n)
4316{
4317	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
4318		n && history.go(n);
4319		key();
4320	}));
4321});
4322
4323var _Browser_pushUrl = F2(function(key, url)
4324{
4325	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
4326		history.pushState({}, '', url);
4327		key();
4328	}));
4329});
4330
4331var _Browser_replaceUrl = F2(function(key, url)
4332{
4333	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
4334		history.replaceState({}, '', url);
4335		key();
4336	}));
4337});
4338
4339
4340
4341// GLOBAL EVENTS
4342
4343
4344var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} };
4345var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode;
4346var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode;
4347
4348var _Browser_on = F3(function(node, eventName, sendToSelf)
4349{
4350	return _Scheduler_spawn(_Scheduler_binding(function(callback)
4351	{
4352		function handler(event)	{ _Scheduler_rawSpawn(sendToSelf(event)); }
4353		node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true });
4354		return function() { node.removeEventListener(eventName, handler); };
4355	}));
4356});
4357
4358var _Browser_decodeEvent = F2(function(decoder, event)
4359{
4360	var result = _Json_runHelp(decoder, event);
4361	return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing;
4362});
4363
4364
4365
4366// PAGE VISIBILITY
4367
4368
4369function _Browser_visibilityInfo()
4370{
4371	return (typeof _VirtualDom_doc.hidden !== 'undefined')
4372		? { fB: 'hidden', fg: 'visibilitychange' }
4373		:
4374	(typeof _VirtualDom_doc.mozHidden !== 'undefined')
4375		? { fB: 'mozHidden', fg: 'mozvisibilitychange' }
4376		:
4377	(typeof _VirtualDom_doc.msHidden !== 'undefined')
4378		? { fB: 'msHidden', fg: 'msvisibilitychange' }
4379		:
4380	(typeof _VirtualDom_doc.webkitHidden !== 'undefined')
4381		? { fB: 'webkitHidden', fg: 'webkitvisibilitychange' }
4382		: { fB: 'hidden', fg: 'visibilitychange' };
4383}
4384
4385
4386
4387// ANIMATION FRAMES
4388
4389
4390function _Browser_rAF()
4391{
4392	return _Scheduler_binding(function(callback)
4393	{
4394		var id = _Browser_requestAnimationFrame(function() {
4395			callback(_Scheduler_succeed(Date.now()));
4396		});
4397
4398		return function() {
4399			_Browser_cancelAnimationFrame(id);
4400		};
4401	});
4402}
4403
4404
4405function _Browser_now()
4406{
4407	return _Scheduler_binding(function(callback)
4408	{
4409		callback(_Scheduler_succeed(Date.now()));
4410	});
4411}
4412
4413
4414
4415// DOM STUFF
4416
4417
4418function _Browser_withNode(id, doStuff)
4419{
4420	return _Scheduler_binding(function(callback)
4421	{
4422		_Browser_requestAnimationFrame(function() {
4423			var node = document.getElementById(id);
4424			callback(node
4425				? _Scheduler_succeed(doStuff(node))
4426				: _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id))
4427			);
4428		});
4429	});
4430}
4431
4432
4433function _Browser_withWindow(doStuff)
4434{
4435	return _Scheduler_binding(function(callback)
4436	{
4437		_Browser_requestAnimationFrame(function() {
4438			callback(_Scheduler_succeed(doStuff()));
4439		});
4440	});
4441}
4442
4443
4444// FOCUS and BLUR
4445
4446
4447var _Browser_call = F2(function(functionName, id)
4448{
4449	return _Browser_withNode(id, function(node) {
4450		node[functionName]();
4451		return _Utils_Tuple0;
4452	});
4453});
4454
4455
4456
4457// WINDOW VIEWPORT
4458
4459
4460function _Browser_getViewport()
4461{
4462	return {
4463		eU: _Browser_getScene(),
4464		e5: {
4465			dZ: _Browser_window.pageXOffset,
4466			d_: _Browser_window.pageYOffset,
4467			y: _Browser_doc.documentElement.clientWidth,
4468			aD: _Browser_doc.documentElement.clientHeight
4469		}
4470	};
4471}
4472
4473function _Browser_getScene()
4474{
4475	var body = _Browser_doc.body;
4476	var elem = _Browser_doc.documentElement;
4477	return {
4478		y: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth),
4479		aD: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight)
4480	};
4481}
4482
4483var _Browser_setViewport = F2(function(x, y)
4484{
4485	return _Browser_withWindow(function()
4486	{
4487		_Browser_window.scroll(x, y);
4488		return _Utils_Tuple0;
4489	});
4490});
4491
4492
4493
4494// ELEMENT VIEWPORT
4495
4496
4497function _Browser_getViewportOf(id)
4498{
4499	return _Browser_withNode(id, function(node)
4500	{
4501		return {
4502			eU: {
4503				y: node.scrollWidth,
4504				aD: node.scrollHeight
4505			},
4506			e5: {
4507				dZ: node.scrollLeft,
4508				d_: node.scrollTop,
4509				y: node.clientWidth,
4510				aD: node.clientHeight
4511			}
4512		};
4513	});
4514}
4515
4516
4517var _Browser_setViewportOf = F3(function(id, x, y)
4518{
4519	return _Browser_withNode(id, function(node)
4520	{
4521		node.scrollLeft = x;
4522		node.scrollTop = y;
4523		return _Utils_Tuple0;
4524	});
4525});
4526
4527
4528
4529// ELEMENT
4530
4531
4532function _Browser_getElement(id)
4533{
4534	return _Browser_withNode(id, function(node)
4535	{
4536		var rect = node.getBoundingClientRect();
4537		var x = _Browser_window.pageXOffset;
4538		var y = _Browser_window.pageYOffset;
4539		return {
4540			eU: _Browser_getScene(),
4541			e5: {
4542				dZ: x,
4543				d_: y,
4544				y: _Browser_doc.documentElement.clientWidth,
4545				aD: _Browser_doc.documentElement.clientHeight
4546			},
4547			ac: {
4548				dZ: x + rect.left,
4549				d_: y + rect.top,
4550				y: rect.width,
4551				aD: rect.height
4552			}
4553		};
4554	});
4555}
4556
4557
4558
4559// LOAD and RELOAD
4560
4561
4562function _Browser_reload(skipCache)
4563{
4564	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
4565	{
4566		_VirtualDom_doc.location.reload(skipCache);
4567	}));
4568}
4569
4570function _Browser_load(url)
4571{
4572	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
4573	{
4574		try
4575		{
4576			_Browser_window.location = url;
4577		}
4578		catch(err)
4579		{
4580			// Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here.
4581			// Other browsers reload the page, so let's be consistent about that.
4582			_VirtualDom_doc.location.reload(false);
4583		}
4584	}));
4585}
4586
4587
4588// CREATE
4589
4590var _Regex_never = /.^/;
4591
4592var _Regex_fromStringWith = F2(function(options, string)
4593{
4594	var flags = 'g';
4595	if (options.fZ) { flags += 'm'; }
4596	if (options.ff) { flags += 'i'; }
4597
4598	try
4599	{
4600		return $elm$core$Maybe$Just(new RegExp(string, flags));
4601	}
4602	catch(error)
4603	{
4604		return $elm$core$Maybe$Nothing;
4605	}
4606});
4607
4608
4609// USE
4610
4611var _Regex_contains = F2(function(re, string)
4612{
4613	return string.match(re) !== null;
4614});
4615
4616
4617var _Regex_findAtMost = F3(function(n, re, str)
4618{
4619	var out = [];
4620	var number = 0;
4621	var string = str;
4622	var lastIndex = re.lastIndex;
4623	var prevLastIndex = -1;
4624	var result;
4625	while (number++ < n && (result = re.exec(string)))
4626	{
4627		if (prevLastIndex == re.lastIndex) break;
4628		var i = result.length - 1;
4629		var subs = new Array(i);
4630		while (i > 0)
4631		{
4632			var submatch = result[i];
4633			subs[--i] = submatch
4634				? $elm$core$Maybe$Just(submatch)
4635				: $elm$core$Maybe$Nothing;
4636		}
4637		out.push(A4($elm$regex$Regex$Match, result[0], result.index, number, _List_fromArray(subs)));
4638		prevLastIndex = re.lastIndex;
4639	}
4640	re.lastIndex = lastIndex;
4641	return _List_fromArray(out);
4642});
4643
4644
4645var _Regex_replaceAtMost = F4(function(n, re, replacer, string)
4646{
4647	var count = 0;
4648	function jsReplacer(match)
4649	{
4650		if (count++ >= n)
4651		{
4652			return match;
4653		}
4654		var i = arguments.length - 3;
4655		var submatches = new Array(i);
4656		while (i > 0)
4657		{
4658			var submatch = arguments[i];
4659			submatches[--i] = submatch
4660				? $elm$core$Maybe$Just(submatch)
4661				: $elm$core$Maybe$Nothing;
4662		}
4663		return replacer(A4($elm$regex$Regex$Match, match, arguments[arguments.length - 2], count, _List_fromArray(submatches)));
4664	}
4665	return string.replace(re, jsReplacer);
4666});
4667
4668var _Regex_splitAtMost = F3(function(n, re, str)
4669{
4670	var string = str;
4671	var out = [];
4672	var start = re.lastIndex;
4673	var restoreLastIndex = re.lastIndex;
4674	while (n--)
4675	{
4676		var result = re.exec(string);
4677		if (!result) break;
4678		out.push(string.slice(start, result.index));
4679		start = re.lastIndex;
4680	}
4681	out.push(string.slice(start));
4682	re.lastIndex = restoreLastIndex;
4683	return _List_fromArray(out);
4684});
4685
4686var _Regex_infinity = Infinity;
4687
4688
4689function _Url_percentEncode(string)
4690{
4691	return encodeURIComponent(string);
4692}
4693
4694function _Url_percentDecode(string)
4695{
4696	try
4697	{
4698		return $elm$core$Maybe$Just(decodeURIComponent(string));
4699	}
4700	catch (e)
4701	{
4702		return $elm$core$Maybe$Nothing;
4703	}
4704}var $elm$core$List$cons = _List_cons;
4705var $elm$core$Elm$JsArray$foldr = _JsArray_foldr;
4706var $elm$core$Array$foldr = F3(
4707	function (func, baseCase, _v0) {
4708		var tree = _v0.c;
4709		var tail = _v0.d;
4710		var helper = F2(
4711			function (node, acc) {
4712				if (!node.$) {
4713					var subTree = node.a;
4714					return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree);
4715				} else {
4716					var values = node.a;
4717					return A3($elm$core$Elm$JsArray$foldr, func, acc, values);
4718				}
4719			});
4720		return A3(
4721			$elm$core$Elm$JsArray$foldr,
4722			helper,
4723			A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail),
4724			tree);
4725	});
4726var $elm$core$Array$toList = function (array) {
4727	return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array);
4728};
4729var $elm$core$Dict$foldr = F3(
4730	function (func, acc, t) {
4731		foldr:
4732		while (true) {
4733			if (t.$ === -2) {
4734				return acc;
4735			} else {
4736				var key = t.b;
4737				var value = t.c;
4738				var left = t.d;
4739				var right = t.e;
4740				var $temp$func = func,
4741					$temp$acc = A3(
4742					func,
4743					key,
4744					value,
4745					A3($elm$core$Dict$foldr, func, acc, right)),
4746					$temp$t = left;
4747				func = $temp$func;
4748				acc = $temp$acc;
4749				t = $temp$t;
4750				continue foldr;
4751			}
4752		}
4753	});
4754var $elm$core$Dict$toList = function (dict) {
4755	return A3(
4756		$elm$core$Dict$foldr,
4757		F3(
4758			function (key, value, list) {
4759				return A2(
4760					$elm$core$List$cons,
4761					_Utils_Tuple2(key, value),
4762					list);
4763			}),
4764		_List_Nil,
4765		dict);
4766};
4767var $elm$core$Dict$keys = function (dict) {
4768	return A3(
4769		$elm$core$Dict$foldr,
4770		F3(
4771			function (key, value, keyList) {
4772				return A2($elm$core$List$cons, key, keyList);
4773			}),
4774		_List_Nil,
4775		dict);
4776};
4777var $elm$core$Set$toList = function (_v0) {
4778	var dict = _v0;
4779	return $elm$core$Dict$keys(dict);
4780};
4781var $elm$core$Basics$EQ = 1;
4782var $elm$core$Basics$GT = 2;
4783var $elm$core$Basics$LT = 0;
4784var $elm$core$Basics$apR = F2(
4785	function (x, f) {
4786		return f(x);
4787	});
4788var $elm$core$Basics$append = _Utils_append;
4789var $dtwrks$elm_book$ElmBook$ThemeOptions$backgroundGradient = F3(
4790	function (startColor, endColor, theme) {
4791		return _Utils_update(
4792			theme,
4793			{bF: 'linear-gradient(150deg, ' + (startColor + (' 0%, ' + (endColor + ' 100%)')))});
4794	});
4795var $elm$core$Basics$identity = function (x) {
4796	return x;
4797};
4798var $dtwrks$elm_book$ElmBook$Internal$Book$BookBuilder = $elm$core$Basics$identity;
4799var $elm$core$Basics$False = 1;
4800var $dtwrks$elm_book$ElmBook$Internal$Chapter$defaultOptions = {fD: false};
4801var $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Card = 2;
4802var $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$defaultOptions = {bF: '', c2: 2, fw: false, fC: false};
4803var $elm$core$Maybe$Nothing = {$: 1};
4804var $dtwrks$elm_book$ElmBook$Internal$StatefulOptions$defaultOptions = {
4805	fG: $elm$core$Maybe$Nothing,
4806	eE: function (_v0) {
4807		return $elm$core$Basics$identity;
4808	},
4809	e_: _List_Nil
4810};
4811var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultAccent = '#ffffff';
4812var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultBackgroundEnd = '#56cfff';
4813var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultBackgroundStart = '#0087cf';
4814var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavAccent = '#bdecff';
4815var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavAccentHighlight = '#ffffff';
4816var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavBackground = '#ffffff';
4817var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultTheme = {e9: $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultAccent, bF: 'linear-gradient(150deg, ' + ($dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultBackgroundStart + (' 0%, ' + ($dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultBackgroundEnd + ' 100%)'))), c7: 'Fira Code', c8: 'IBM Plex Sans', c9: 'IBM Plex Serif', ee: $elm$core$Maybe$Nothing, fy: false, fz: $elm$core$Maybe$Nothing, dl: $elm$core$Maybe$Nothing, f_: $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavAccent, f$: $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavAccentHighlight, f0: $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavBackground, gd: false, gl: '', dJ: $elm$core$Maybe$Nothing};
4818var $dtwrks$elm_book$ElmBook$Custom$customBook = F2(
4819	function (toHtml, title) {
4820		return {d4: $dtwrks$elm_book$ElmBook$Internal$Chapter$defaultOptions, d6: $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$defaultOptions, eW: $dtwrks$elm_book$ElmBook$Internal$StatefulOptions$defaultOptions, dR: $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultTheme, gt: title, e0: toHtml};
4821	});
4822var $dtwrks$elm_book$ElmBook$book = $dtwrks$elm_book$ElmBook$Custom$customBook($elm$core$Basics$identity);
4823var $dtwrks$elm_book$ElmBook$Internal$Chapter$Chapter = $elm$core$Basics$identity;
4824var $dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterOptions = $elm$core$Basics$identity;
4825var $dtwrks$elm_book$ElmBook$Internal$Chapter$defaultOverrides = {fD: $elm$core$Maybe$Nothing};
4826var $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$ComponentOptions = $elm$core$Basics$identity;
4827var $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$defaultOverrides = {bF: $elm$core$Maybe$Nothing, c2: $elm$core$Maybe$Nothing, fw: $elm$core$Maybe$Nothing, fC: $elm$core$Maybe$Nothing};
4828var $dtwrks$elm_book$ElmBook$Chapter$chapterLink = function (props) {
4829	return {fe: '', d4: $dtwrks$elm_book$ElmBook$Internal$Chapter$defaultOverrides, m: _List_Nil, d6: $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$defaultOverrides, ef: $elm$core$Maybe$Nothing, di: $elm$core$Maybe$Nothing, er: false, gt: props.gt, gy: props.gy};
4830};
4831var $elm$core$Basics$True = 0;
4832var $dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterBuilder = $elm$core$Basics$identity;
4833var $elm$core$Basics$composeR = F3(
4834	function (f, g, x) {
4835		return g(
4836			f(x));
4837	});
4838var $elm$core$Maybe$Just = function (a) {
4839	return {$: 0, a: a};
4840};
4841var $elm$core$String$map = _String_map;
4842var $elm$core$Basics$and = _Basics_and;
4843var $elm$core$Basics$le = _Utils_le;
4844var $elm$core$Char$toCode = _Char_toCode;
4845var $elm$core$Char$isDigit = function (_char) {
4846	var code = $elm$core$Char$toCode(_char);
4847	return (code <= 57) && (48 <= code);
4848};
4849var $elm$core$Char$isLower = function (_char) {
4850	var code = $elm$core$Char$toCode(_char);
4851	return (97 <= code) && (code <= 122);
4852};
4853var $elm$core$Char$isUpper = function (_char) {
4854	var code = $elm$core$Char$toCode(_char);
4855	return (code <= 90) && (65 <= code);
4856};
4857var $elm$core$Basics$or = _Basics_or;
4858var $elm$core$Char$isAlphaNum = function (_char) {
4859	return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char));
4860};
4861var $elm$core$Char$toLower = _Char_toLower;
4862var $dtwrks$elm_book$ElmBook$Internal$Helpers$toUrlSafe = function (c) {
4863	return $elm$core$Char$isAlphaNum(c) ? $elm$core$Char$toLower(c) : '-';
4864};
4865var $elm$core$String$trim = _String_trim;
4866var $dtwrks$elm_book$ElmBook$Internal$Helpers$toSlug = A2(
4867	$elm$core$Basics$composeR,
4868	$elm$core$String$trim,
4869	$elm$core$String$map($dtwrks$elm_book$ElmBook$Internal$Helpers$toUrlSafe));
4870var $dtwrks$elm_book$ElmBook$Chapter$chapter = function (title) {
4871	return {
4872		fe: '',
4873		d4: $dtwrks$elm_book$ElmBook$Internal$Chapter$defaultOverrides,
4874		m: _List_Nil,
4875		d6: $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$defaultOverrides,
4876		ef: $elm$core$Maybe$Nothing,
4877		di: $elm$core$Maybe$Nothing,
4878		er: true,
4879		gt: title,
4880		gy: '/' + $dtwrks$elm_book$ElmBook$Internal$Helpers$toSlug(title)
4881	};
4882};
4883var $author$project$W$ButtonGroup$Attribute = $elm$core$Basics$identity;
4884var $elm$core$Basics$apL = F2(
4885	function (f, x) {
4886		return f(x);
4887	});
4888var $author$project$W$ButtonGroup$disabled = function (v) {
4889	return function (attrs) {
4890		return _Utils_update(
4891			attrs,
4892			{bV: v});
4893	};
4894};
4895var $elm$core$Basics$eq = _Utils_equal;
4896var $elm$core$String$fromInt = _String_fromNumber;
4897var $author$project$W$ButtonGroup$full = function (attrs) {
4898	return _Utils_update(
4899		attrs,
4900		{bW: true});
4901};
4902var $elm$core$Result$Err = function (a) {
4903	return {$: 1, a: a};
4904};
4905var $elm$json$Json$Decode$Failure = F2(
4906	function (a, b) {
4907		return {$: 3, a: a, b: b};
4908	});
4909var $elm$json$Json$Decode$Field = F2(
4910	function (a, b) {
4911		return {$: 0, a: a, b: b};
4912	});
4913var $elm$json$Json$Decode$Index = F2(
4914	function (a, b) {
4915		return {$: 1, a: a, b: b};
4916	});
4917var $elm$core$Result$Ok = function (a) {
4918	return {$: 0, a: a};
4919};
4920var $elm$json$Json$Decode$OneOf = function (a) {
4921	return {$: 2, a: a};
4922};
4923var $elm$core$Basics$add = _Basics_add;
4924var $elm$core$String$all = _String_all;
4925var $elm$json$Json$Encode$encode = _Json_encode;
4926var $elm$core$String$join = F2(
4927	function (sep, chunks) {
4928		return A2(
4929			_String_join,
4930			sep,
4931			_List_toArray(chunks));
4932	});
4933var $elm$core$String$split = F2(
4934	function (sep, string) {
4935		return _List_fromArray(
4936			A2(_String_split, sep, string));
4937	});
4938var $elm$json$Json$Decode$indent = function (str) {
4939	return A2(
4940		$elm$core$String$join,
4941		'\n    ',
4942		A2($elm$core$String$split, '\n', str));
4943};
4944var $elm$core$List$foldl = F3(
4945	function (func, acc, list) {
4946		foldl:
4947		while (true) {
4948			if (!list.b) {
4949				return acc;
4950			} else {
4951				var x = list.a;
4952				var xs = list.b;
4953				var $temp$func = func,
4954					$temp$acc = A2(func, x, acc),
4955					$temp$list = xs;
4956				func = $temp$func;
4957				acc = $temp$acc;
4958				list = $temp$list;
4959				continue foldl;
4960			}
4961		}
4962	});
4963var $elm$core$List$length = function (xs) {
4964	return A3(
4965		$elm$core$List$foldl,
4966		F2(
4967			function (_v0, i) {
4968				return i + 1;
4969			}),
4970		0,
4971		xs);
4972};
4973var $elm$core$List$map2 = _List_map2;
4974var $elm$core$Basics$sub = _Basics_sub;
4975var $elm$core$List$rangeHelp = F3(
4976	function (lo, hi, list) {
4977		rangeHelp:
4978		while (true) {
4979			if (_Utils_cmp(lo, hi) < 1) {
4980				var $temp$lo = lo,
4981					$temp$hi = hi - 1,
4982					$temp$list = A2($elm$core$List$cons, hi, list);
4983				lo = $temp$lo;
4984				hi = $temp$hi;
4985				list = $temp$list;
4986				continue rangeHelp;
4987			} else {
4988				return list;
4989			}
4990		}
4991	});
4992var $elm$core$List$range = F2(
4993	function (lo, hi) {
4994		return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil);
4995	});
4996var $elm$core$List$indexedMap = F2(
4997	function (f, xs) {
4998		return A3(
4999			$elm$core$List$map2,
5000			f,
5001			A2(
5002				$elm$core$List$range,
5003				0,
5004				$elm$core$List$length(xs) - 1),
5005			xs);
5006	});
5007var $elm$core$Char$isAlpha = function (_char) {
5008	return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char);
5009};
5010var $elm$core$List$reverse = function (list) {
5011	return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list);
5012};
5013var $elm$core$String$uncons = _String_uncons;
5014var $elm$json$Json$Decode$errorOneOf = F2(
5015	function (i, error) {
5016		return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent(
5017			$elm$json$Json$Decode$errorToString(error))));
5018	});
5019var $elm$json$Json$Decode$errorToString = function (error) {
5020	return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil);
5021};
5022var $elm$json$Json$Decode$errorToStringHelp = F2(
5023	function (error, context) {
5024		errorToStringHelp:
5025		while (true) {
5026			switch (error.$) {
5027				case 0:
5028					var f = error.a;
5029					var err = error.b;
5030					var isSimple = function () {
5031						var _v1 = $elm$core$String$uncons(f);
5032						if (_v1.$ === 1) {
5033							return false;
5034						} else {
5035							var _v2 = _v1.a;
5036							var _char = _v2.a;
5037							var rest = _v2.b;
5038							return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest);
5039						}
5040					}();
5041					var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']'));
5042					var $temp$error = err,
5043						$temp$context = A2($elm$core$List$cons, fieldName, context);
5044					error = $temp$error;
5045					context = $temp$context;
5046					continue errorToStringHelp;
5047				case 1:
5048					var i = error.a;
5049					var err = error.b;
5050					var indexName = '[' + ($elm$core$String$fromInt(i) + ']');
5051					var $temp$error = err,
5052						$temp$context = A2($elm$core$List$cons, indexName, context);
5053					error = $temp$error;
5054					context = $temp$context;
5055					continue errorToStringHelp;
5056				case 2:
5057					var errors = error.a;
5058					if (!errors.b) {
5059						return 'Ran into a Json.Decode.oneOf with no possibilities' + function () {
5060							if (!context.b) {
5061								return '!';
5062							} else {
5063								return ' at json' + A2(
5064									$elm$core$String$join,
5065									'',
5066									$elm$core$List$reverse(context));
5067							}
5068						}();
5069					} else {
5070						if (!errors.b.b) {
5071							var err = errors.a;
5072							var $temp$error = err,
5073								$temp$context = context;
5074							error = $temp$error;
5075							context = $temp$context;
5076							continue errorToStringHelp;
5077						} else {
5078							var starter = function () {
5079								if (!context.b) {
5080									return 'Json.Decode.oneOf';
5081								} else {
5082									return 'The Json.Decode.oneOf at json' + A2(
5083										$elm$core$String$join,
5084										'',
5085										$elm$core$List$reverse(context));
5086								}
5087							}();
5088							var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt(
5089								$elm$core$List$length(errors)) + ' ways:'));
5090							return A2(
5091								$elm$core$String$join,
5092								'\n\n',
5093								A2(
5094									$elm$core$List$cons,
5095									introduction,
5096									A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors)));
5097						}
5098					}
5099				default:
5100					var msg = error.a;
5101					var json = error.b;
5102					var introduction = function () {
5103						if (!context.b) {
5104							return 'Problem with the given value:\n\n';
5105						} else {
5106							return 'Problem with the value at json' + (A2(
5107								$elm$core$String$join,
5108								'',
5109								$elm$core$List$reverse(context)) + ':\n\n    ');
5110						}
5111					}();
5112					return introduction + ($elm$json$Json$Decode$indent(
5113						A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg));
5114			}
5115		}
5116	});
5117var $elm$core$Array$branchFactor = 32;
5118var $elm$core$Array$Array_elm_builtin = F4(
5119	function (a, b, c, d) {
5120		return {$: 0, a: a, b: b, c: c, d: d};
5121	});
5122var $elm$core$Elm$JsArray$empty = _JsArray_empty;
5123var $elm$core$Basics$ceiling = _Basics_ceiling;
5124var $elm$core$Basics$fdiv = _Basics_fdiv;
5125var $elm$core$Basics$logBase = F2(
5126	function (base, number) {
5127		return _Basics_log(number) / _Basics_log(base);
5128	});
5129var $elm$core$Basics$toFloat = _Basics_toFloat;
5130var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling(
5131	A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor));
5132var $elm$core$Array$empty = A4($elm$core$Array$Array_elm_builtin, 0, $elm$core$Array$shiftStep, $elm$core$Elm$JsArray$empty, $elm$core$Elm$JsArray$empty);
5133var $elm$core$Elm$JsArray$initialize = _JsArray_initialize;
5134var $elm$core$Array$Leaf = function (a) {
5135	return {$: 1, a: a};
5136};
5137var $elm$core$Basics$floor = _Basics_floor;
5138var $elm$core$Elm$JsArray$length = _JsArray_length;
5139var $elm$core$Basics$gt = _Utils_gt;
5140var $elm$core$Basics$max = F2(
5141	function (x, y) {
5142		return (_Utils_cmp(x, y) > 0) ? x : y;
5143	});
5144var $elm$core$Basics$mul = _Basics_mul;
5145var $elm$core$Array$SubTree = function (a) {
5146	return {$: 0, a: a};
5147};
5148var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList;
5149var $elm$core$Array$compressNodes = F2(
5150	function (nodes, acc) {
5151		compressNodes:
5152		while (true) {
5153			var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes);
5154			var node = _v0.a;
5155			var remainingNodes = _v0.b;
5156			var newAcc = A2(
5157				$elm$core$List$cons,
5158				$elm$core$Array$SubTree(node),
5159				acc);
5160			if (!remainingNodes.b) {
5161				return $elm$core$List$reverse(newAcc);
5162			} else {
5163				var $temp$nodes = remainingNodes,
5164					$temp$acc = newAcc;
5165				nodes = $temp$nodes;
5166				acc = $temp$acc;
5167				continue compressNodes;
5168			}
5169		}
5170	});
5171var $elm$core$Tuple$first = function (_v0) {
5172	var x = _v0.a;
5173	return x;
5174};
5175var $elm$core$Array$treeFromBuilder = F2(
5176	function (nodeList, nodeListSize) {
5177		treeFromBuilder:
5178		while (true) {
5179			var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor);
5180			if (newNodeSize === 1) {
5181				return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a;
5182			} else {
5183				var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil),
5184					$temp$nodeListSize = newNodeSize;
5185				nodeList = $temp$nodeList;
5186				nodeListSize = $temp$nodeListSize;
5187				continue treeFromBuilder;
5188			}
5189		}
5190	});
5191var $elm$core$Array$builderToArray = F2(
5192	function (reverseNodeList, builder) {
5193		if (!builder.l) {
5194			return A4(
5195				$elm$core$Array$Array_elm_builtin,
5196				$elm$core$Elm$JsArray$length(builder.o),
5197				$elm$core$Array$shiftStep,
5198				$elm$core$Elm$JsArray$empty,
5199				builder.o);
5200		} else {
5201			var treeLen = builder.l * $elm$core$Array$branchFactor;
5202			var depth = $elm$core$Basics$floor(
5203				A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1));
5204			var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.r) : builder.r;
5205			var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.l);
5206			return A4(
5207				$elm$core$Array$Array_elm_builtin,
5208				$elm$core$Elm$JsArray$length(builder.o) + treeLen,
5209				A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep),
5210				tree,
5211				builder.o);
5212		}
5213	});
5214var $elm$core$Basics$idiv = _Basics_idiv;
5215var $elm$core$Basics$lt = _Utils_lt;
5216var $elm$core$Array$initializeHelp = F5(
5217	function (fn, fromIndex, len, nodeList, tail) {
5218		initializeHelp:
5219		while (true) {
5220			if (fromIndex < 0) {
5221				return A2(
5222					$elm$core$Array$builderToArray,
5223					false,
5224					{r: nodeList, l: (len / $elm$core$Array$branchFactor) | 0, o: tail});
5225			} else {
5226				var leaf = $elm$core$Array$Leaf(
5227					A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn));
5228				var $temp$fn = fn,
5229					$temp$fromIndex = fromIndex - $elm$core$Array$branchFactor,
5230					$temp$len = len,
5231					$temp$nodeList = A2($elm$core$List$cons, leaf, nodeList),
5232					$temp$tail = tail;
5233				fn = $temp$fn;
5234				fromIndex = $temp$fromIndex;
5235				len = $temp$len;
5236				nodeList = $temp$nodeList;
5237				tail = $temp$tail;
5238				continue initializeHelp;
5239			}
5240		}
5241	});
5242var $elm$core$Basics$remainderBy = _Basics_remainderBy;
5243var $elm$core$Array$initialize = F2(
5244	function (len, fn) {
5245		if (len <= 0) {
5246			return $elm$core$Array$empty;
5247		} else {
5248			var tailLen = len % $elm$core$Array$branchFactor;
5249			var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tail
5249Len, fn);
5250			var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor;
5251			return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail);
5252		}
5253	});
5254var $elm$core$Result$isOk = function (result) {
5255	if (!result.$) {
5256		return true;
5257	} else {
5258		return false;
5259	}
5260};
5261var $elm$json$Json$Decode$map = _Json_map1;
5262var $elm$json$Json$Decode$map2 = _Json_map2;
5263var $elm$json$Json$Decode$succeed = _Json_succeed;
5264var $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) {
5265	switch (handler.$) {
5266		case 0:
5267			return 0;
5268		case 1:
5269			return 1;
5270		case 2:
5271			return 2;
5272		default:
5273			return 3;
5274	}
5275};
5276var $elm$html$Html$div = _VirtualDom_node('div');
5277var $elm$virtual_dom$VirtualDom$style = _VirtualDom_style;
5278var $elm$html$Html$Attributes$style = $elm$virtual_dom$VirtualDom$style;
5279var $author$project$UI$hSpacer = $elm$html$Html$div(
5280	_List_fromArray(
5281		[
5282			A2($elm$html$Html$Attributes$style, 'display', 'flex'),
5283			A2($elm$html$Html$Attributes$style, 'gap', '8px')
5284		]));
5285var $author$project$W$ButtonGroup$highlighted = function (v) {
5286	return function (attrs) {
5287		return _Utils_update(
5288			attrs,
5289			{am: v});
5290	};
5291};
5292var $dtwrks$elm_book$ElmBook$Internal$Msg$LogAction = F2(
5293	function (a, b) {
5294		return {$: 4, a: a, b: b};
5295	});
5296var $dtwrks$elm_book$ElmBook$Actions$logActionWith = F3(
5297	function (toString, action, value) {
5298		return A2(
5299			$dtwrks$elm_book$ElmBook$Internal$Msg$LogAction,
5300			'',
5301			action + (': ' + toString(value)));
5302	});
5303var $author$project$W$ButtonGroup$outlined = function (attrs) {
5304	return _Utils_update(
5305		attrs,
5306		{af: true});
5307};
5308var $dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList = F2(
5309	function (body, _v0) {
5310		var builder = _v0;
5311		return _Utils_update(
5312			builder,
5313			{fe: builder.fe + (body + '\n<component-list />')});
5314	});
5315var $author$project$W$ButtonGroup$rounded = function (attrs) {
5316	return _Utils_update(
5317		attrs,
5318		{cz: true});
5319};
5320var $author$project$W$ButtonGroup$small = function (attrs) {
5321	return _Utils_update(
5322		attrs,
5323		{aV: true});
5324};
5325var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;
5326var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text;
5327var $author$project$UI$vSpacer = $elm$html$Html$div(
5328	_List_fromArray(
5329		[
5330			A2($elm$html$Html$Attributes$style, 'display', 'flex'),
5331			A2($elm$html$Html$Attributes$style, 'flex-direction', 'column'),
5332			A2($elm$html$Html$Attributes$style, 'align-items', 'flex-start'),
5333			A2($elm$html$Html$Attributes$style, 'gap', '8px')
5334		]));
5335var $author$project$W$ButtonGroup$defaultAttrs = {
5336	bV: function (_v0) {
5337		return false;
5338	},
5339	bW: false,
5340	am: function (_v1) {
5341		return false;
5342	},
5343	b$: _List_Nil,
5344	af: false,
5345	cz: false,
5346	aV: false
5347};
5348var $author$project$W$ButtonGroup$applyAttrs = function (attrs) {
5349	return A3(
5350		$elm$core$List$foldl,
5351		F2(
5352			function (_v0, a) {
5353				var fn = _v0;
5354				return fn(a);
5355			}),
5356		$author$project$W$ButtonGroup$defaultAttrs,
5357		attrs);
5358};
5359var $elm$html$Html$button = _VirtualDom_node('button');
5360var $elm$json$Json$Encode$string = _Json_wrap;
5361var $elm$html$Html$Attributes$stringProperty = F2(
5362	function (key, string) {
5363		return A2(
5364			_VirtualDom_property,
5365			key,
5366			$elm$json$Json$Encode$string(string));
5367	});
5368var $elm$html$Html$Attributes$class = $elm$html$Html$Attributes$stringProperty('className');
5369var $elm$core$List$foldrHelper = F4(
5370	function (fn, acc, ctr, ls) {
5371		if (!ls.b) {
5372			return acc;
5373		} else {
5374			var a = ls.a;
5375			var r1 = ls.b;
5376			if (!r1.b) {
5377				return A2(fn, a, acc);
5378			} else {
5379				var b = r1.a;
5380				var r2 = r1.b;
5381				if (!r2.b) {
5382					return A2(
5383						fn,
5384						a,
5385						A2(fn, b, acc));
5386				} else {
5387					var c = r2.a;
5388					var r3 = r2.b;
5389					if (!r3.b) {
5390						return A2(
5391							fn,
5392							a,
5393							A2(
5394								fn,
5395								b,
5396								A2(fn, c, acc)));
5397					} else {
5398						var d = r3.a;
5399						var r4 = r3.b;
5400						var res = (ctr > 500) ? A3(
5401							$elm$core$List$foldl,
5402							fn,
5403							acc,
5404							$elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4);
5405						return A2(
5406							fn,
5407							a,
5408							A2(
5409								fn,
5410								b,
5411								A2(
5412									fn,
5413									c,
5414									A2(fn, d, res))));
5415					}
5416				}
5417			}
5418		}
5419	});
5420var $elm$core$List$foldr = F3(
5421	function (fn, acc, ls) {
5422		return A4($elm$core$List$foldrHelper, fn, acc, 0, ls);
5423	});
5424var $elm$core$List$filter = F2(
5425	function (isGood, list) {
5426		return A3(
5427			$elm$core$List$foldr,
5428			F2(
5429				function (x, xs) {
5430					return isGood(x) ? A2($elm$core$List$cons, x, xs) : xs;
5431				}),
5432			_List_Nil,
5433			list);
5434	});
5435var $elm$core$List$map = F2(
5436	function (f, xs) {
5437		return A3(
5438			$elm$core$List$foldr,
5439			F2(
5440				function (x, acc) {
5441					return A2(
5442						$elm$core$List$cons,
5443						f(x),
5444						acc);
5445				}),
5446			_List_Nil,
5447			xs);
5448	});
5449var $elm$core$Tuple$second = function (_v0) {
5450	var y = _v0.b;
5451	return y;
5452};
5453var $elm$html$Html$Attributes$classList = function (classes) {
5454	return $elm$html$Html$Attributes$class(
5455		A2(
5456			$elm$core$String$join,
5457			' ',
5458			A2(
5459				$elm$core$List$map,
5460				$elm$core$Tuple$first,
5461				A2($elm$core$List$filter, $elm$core$Tuple$second, classes))));
5462};
5463var $elm$json$Json$Encode$bool = _Json_wrap;
5464var $elm$html$Html$Attributes$boolProperty = F2(
5465	function (key, bool) {
5466		return A2(
5467			_VirtualDom_property,
5468			key,
5469			$elm$json$Json$Encode$bool(bool));
5470	});
5471var $elm$html$Html$Attributes$disabled = $elm$html$Html$Attributes$boolProperty('disabled');
5472var $elm$core$Basics$not = _Basics_not;
5473var $elm$virtual_dom$VirtualDom$Normal = function (a) {
5474	return {$: 0, a: a};
5475};
5476var $elm$virtual_dom$VirtualDom$on = _VirtualDom_on;
5477var $elm$html$Html$Events$on = F2(
5478	function (event, decoder) {
5479		return A2(
5480			$elm$virtual_dom$VirtualDom$on,
5481			event,
5482			$elm$virtual_dom$VirtualDom$Normal(decoder));
5483	});
5484var $elm$html$Html$Events$onClick = function (msg) {
5485	return A2(
5486		$elm$html$Html$Events$on,
5487		'click',
5488		$elm$json$Json$Decode$succeed(msg));
5489};
5490var $elm$html$Html$span = _VirtualDom_node('span');
5491var $author$project$W$ButtonGroup$viewInner = $elm$html$Html$span(
5492	_List_fromArray(
5493		[
5494			$elm$html$Html$Attributes$class('ew-relative ew-z-10 ew-flex-inline ew-items-center ew-justify-center')
5495		]));
5496var $author$project$W$ButtonGroup$view = F2(
5497	function (attrs_, props) {
5498		var attrs = $author$project$W$ButtonGroup$applyAttrs(attrs_);
5499		return A2(
5500			$elm$html$Html$div,
5501			_Utils_ap(
5502				attrs.b$,
5503				_List_fromArray(
5504					[
5505						$elm$html$Html$Attributes$class('ew-inline-flex ew-items-center'),
5506						$elm$html$Html$Attributes$classList(
5507						_List_fromArray(
5508							[
5509								_Utils_Tuple2('ew-w-full', attrs.bW)
5510							]))
5511					])),
5512			A2(
5513				$elm$core$List$map,
5514				function (item) {
5515					return A2(
5516						$elm$html$Html$button,
5517						_List_fromArray(
5518							[
5519								$elm$html$Html$Attributes$class('ew-grow ew-shrink-0 ew-box-border'),
5520								$elm$html$Html$Attributes$class('ew-focusable ew-inline-flex ew-items-center ew-justify-center'),
5521								$elm$html$Html$Attributes$class('ew-m-0 ew-py-0 ew-px-4 ew-border-solid'),
5522								$elm$html$Html$Attributes$class('ew-font-text ew-text-base ew-font-medium ew-leading-0'),
5523								$elm$html$Html$Attributes$class('ew-relative focus:ew-z-10'),
5524								$elm$html$Html$Attributes$class('disabled:ew-pointer-events-none disabled:ew-opacity-60'),
5525								$elm$html$Html$Attributes$class('before:ew-block before:ew-content-[\'\'] before:ew-absolute before:ew-inset-0 before:ew-pointer-events-none'),
5526								$elm$html$Html$Attributes$class('before:ew-z-0 before:ew-transition before:ew-duration-200 before:ew-opacity-0'),
5527								$elm$html$Html$Attributes$class('hover:before:ew-opacity-10 active:before:ew-opacity-20'),
5528								$elm$html$Html$Attributes$classList(
5529								_List_fromArray(
5530									[
5531										_Utils_Tuple2('ew-h-[32px]', attrs.aV),
5532										_Utils_Tuple2('ew-h-[40px]', !attrs.aV),
5533										_Utils_Tuple2('first:ew-rounded-l-lg last:ew-rounded-r-lg', !attrs.cz),
5534										_Utils_Tuple2('first:ew-rounded-l-[16px] last:ew-rounded-r-[16px]', attrs.cz && attrs.aV),
5535										_Utils_Tuple2('first:ew-rounded-l-[20px] last:ew-rounded-r-[20px]', attrs.cz && (!attrs.aV)),
5536										_Utils_Tuple2(
5537										'ew-border-0 ew-bg-primary-bg ew-text-primary-aux before:ew-bg-primary-aux',
5538										attrs.am(item) && (!attrs.af)),
5539										_Utils_Tuple2(
5540										'ew-border-0 ew-bg-neutral-bg ew-text-neutral-aux before:ew-bg-neutral-aux',
5541										(!attrs.am(item)) && (!attrs.af)),
5542										_Utils_Tuple2(
5543										'ew-border-primary-fg ew-text-primary-fg ew-bg-primary-fg/[0.1] before:ew-bg-primary-fg',
5544										attrs.am(item) && attrs.af),
5545										_Utils_Tuple2(
5546										'ew-border-neutral-fg ew-text-neutral-fg ew-bg-neutral-fg/[0.07] before:ew-bg-neutral-fg',
5547										(!attrs.am(item)) && attrs.af),
5548										_Utils_Tuple2('-ew-mx-px first:ew-ml-0 last:ew-mr-0', attrs.af)
5549									])),
5550								$elm$html$Html$Attributes$disabled(
5551								attrs.bV(item)),
5552								$elm$html$Html$Events$onClick(
5553								props.s(item))
5554							]),
5555						_List_fromArray(
5556							[
5557								$author$project$W$ButtonGroup$viewInner(
5558								props.u(item))
5559							]));
5560				},
5561				props.p));
5562	});
5563var $dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterComponentViewStateless = function (a) {
5564	return {$: 0, a: a};
5565};
5566var $dtwrks$elm_book$ElmBook$Chapter$fromTuple = function (_v0) {
5567	var label = _v0.a;
5568	var view_ = _v0.b;
5569	return {
5570		aK: label,
5571		cP: $dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterComponentViewStateless(view_)
5572	};
5573};
5574var $dtwrks$elm_book$ElmBook$Chapter$withComponentList = F2(
5575	function (componentList, _v0) {
5576		var builder = _v0;
5577		return _Utils_update(
5578			builder,
5579			{
5580				m: _Utils_ap(
5581					A2($elm$core$List$map, $dtwrks$elm_book$ElmBook$Chapter$fromTuple, componentList),
5582					builder.m)
5583			});
5584	});
5585var $author$project$Chapters$Core$ButtonGroup$chapter_ = A2(
5586	$dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList,
5587	'\n',
5588	A2(
5589		$dtwrks$elm_book$ElmBook$Chapter$withComponentList,
5590		_List_fromArray(
5591			[
5592				_Utils_Tuple2(
5593				'Default',
5594				$author$project$UI$vSpacer(
5595					_List_fromArray(
5596						[
5597							$author$project$UI$hSpacer(
5598							_List_fromArray(
5599								[
5600									A2(
5601									$author$project$W$ButtonGroup$view,
5602									_List_fromArray(
5603										[
5604											$author$project$W$ButtonGroup$highlighted(
5605											$elm$core$Basics$eq(2))
5606										]),
5607									{
5608										p: A2($elm$core$List$range, 0, 2),
5609										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5610										u: function (i) {
5611											return _List_fromArray(
5612												[
5613													$elm$html$Html$text(
5614													$elm$core$String$fromInt(i))
5615												]);
5616										}
5617									}),
5618									A2(
5619									$author$project$W$ButtonGroup$view,
5620									_List_Nil,
5621									{
5622										p: _List_fromArray(
5623											[0, 1]),
5624										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5625										u: function (i) {
5626											return _List_fromArray(
5627												[
5628													$elm$html$Html$text(
5629													$elm$core$String$fromInt(i))
5630												]);
5631										}
5632									}),
5633									A2(
5634									$author$project$W$ButtonGroup$view,
5635									_List_Nil,
5636									{
5637										p: _List_fromArray(
5638											[1]),
5639										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5640										u: function (i) {
5641											return _List_fromArray(
5642												[
5643													$elm$html$Html$text(
5644													$elm$core$String$fromInt(i))
5645												]);
5646										}
5647									})
5648								])),
5649							$author$project$UI$hSpacer(
5650							_List_fromArray(
5651								[
5652									A2(
5653									$author$project$W$ButtonGroup$view,
5654									_List_fromArray(
5655										[$author$project$W$ButtonGroup$outlined]),
5656									{
5657										p: A2($elm$core$List$range, 0, 2),
5658										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5659										u: function (i) {
5660											return _List_fromArray(
5661												[
5662													$elm$html$Html$text(
5663													$elm$core$String$fromInt(i))
5664												]);
5665										}
5666									}),
5667									A2(
5668									$author$project$W$ButtonGroup$view,
5669									_List_fromArray(
5670										[
5671											$author$project$W$ButtonGroup$outlined,
5672											$author$project$W$ButtonGroup$highlighted(
5673											$elm$core$Basics$eq(1))
5674										]),
5675									{
5676										p: _List_fromArray(
5677											[0, 1]),
5678										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5679										u: function (i) {
5680											return _List_fromArray(
5681												[
5682													$elm$html$Html$text(
5683													$elm$core$String$fromInt(i))
5684												]);
5685										}
5686									}),
5687									A2(
5688									$author$project$W$ButtonGroup$view,
5689									_List_fromArray(
5690										[$author$project$W$ButtonGroup$outlined]),
5691									{
5692										p: _List_fromArray(
5693											[1]),
5694										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5695										u: function (i) {
5696											return _List_fromArray(
5697												[
5698													$elm$html$Html$text(
5699													$elm$core$String$fromInt(i))
5700												]);
5701										}
5702									}),
5703									A2(
5704									$author$project$W$ButtonGroup$view,
5705									_List_fromArray(
5706										[
5707											$author$project$W$ButtonGroup$outlined,
5708											$author$project$W$ButtonGroup$disabled(
5709											function (_v0) {
5710												return true;
5711											})
5712										]),
5713									{
5714										p: A2($elm$core$List$range, 0, 2),
5715										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5716										u: function (i) {
5717											return _List_fromArray(
5718												[
5719													$elm$html$Html$text(
5720													$elm$core$String$fromInt(i))
5721												]);
5722										}
5723									})
5724								])),
5725							$author$project$UI$hSpacer(
5726							_List_fromArray(
5727								[
5728									A2(
5729									$author$project$W$ButtonGroup$view,
5730									_List_fromArray(
5731										[$author$project$W$ButtonGroup$small]),
5732									{
5733										p: A2($elm$core$List$range, 0, 2),
5734										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5735										u: function (i) {
5736											return _List_fromArray(
5737												[
5738													$elm$html$Html$text(
5739													$elm$core$String$fromInt(i))
5740												]);
5741										}
5742									}),
5743									A2(
5744									$author$project$W$ButtonGroup$view,
5745									_List_fromArray(
5746										[$author$project$W$ButtonGroup$small, $author$project$W$ButtonGroup$outlined]),
5747									{
5748										p: A2($elm$core$List$range, 0, 2),
5749										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5750										u: function (i) {
5751											return _List_fromArray(
5752												[
5753													$elm$html$Html$text(
5754													$elm$core$String$fromInt(i))
5755												]);
5756										}
5757									}),
5758									A2(
5759									$author$project$W$ButtonGroup$view,
5760									_List_fromArray(
5761										[
5762											$author$project$W$ButtonGroup$disabled(
5763											function (_v1) {
5764												return true;
5765											}),
5766											$author$project$W$ButtonGroup$small
5767										]),
5768									{
5769										p: A2($elm$core$List$range, 0, 2),
5770										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5771										u: function (i) {
5772											return _List_fromArray(
5773												[
5774													$elm$html$Html$text(
5775													$elm$core$String$fromInt(i))
5776												]);
5777										}
5778									})
5779								]))
5780						]))),
5781				_Utils_Tuple2(
5782				'Rounded',
5783				$author$project$UI$vSpacer(
5784					_List_fromArray(
5785						[
5786							$author$project$UI$hSpacer(
5787							_List_fromArray(
5788								[
5789									A2(
5790									$author$project$W$ButtonGroup$view,
5791									_List_fromArray(
5792										[$author$project$W$ButtonGroup$rounded]),
5793									{
5794										p: A2($elm$core$List$range, 0, 2),
5795										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5796										u: function (i) {
5797											return _List_fromArray(
5798												[
5799													$elm$html$Html$text(
5800													$elm$core$String$fromInt(i))
5801												]);
5802										}
5803									}),
5804									A2(
5805									$author$project$W$ButtonGroup$view,
5806									_List_fromArray(
5807										[$author$project$W$ButtonGroup$rounded, $author$project$W$ButtonGroup$outlined]),
5808									{
5809										p: A2($elm$core$List$range, 0, 2),
5810										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5811										u: function (i) {
5812											return _List_fromArray(
5813												[
5814													$elm$html$Html$text(
5815													$elm$core$String$fromInt(i))
5816												]);
5817										}
5818									}),
5819									A2(
5820									$author$project$W$ButtonGroup$view,
5821									_List_fromArray(
5822										[
5823											$author$project$W$ButtonGroup$disabled(
5824											function (_v2) {
5825												return true;
5826											}),
5827											$author$project$W$ButtonGroup$rounded
5828										]),
5829									{
5830										p: A2($elm$core$List$range, 0, 2),
5831										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5832										u: function (i) {
5833											return _List_fromArray(
5834												[
5835													$elm$html$Html$text(
5836													$elm$core$String$fromInt(i))
5837												]);
5838										}
5839									})
5840								])),
5841							$author$project$UI$hSpacer(
5842							_List_fromArray(
5843								[
5844									A2(
5845									$author$project$W$ButtonGroup$view,
5846									_List_fromArray(
5847										[$author$project$W$ButtonGroup$rounded, $author$project$W$ButtonGroup$small]),
5848									{
5849										p: A2($elm$core$List$range, 0, 2),
5850										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5851										u: function (i) {
5852											return _List_fromArray(
5853												[
5854													$elm$html$Html$text(
5855													$elm$core$String$fromInt(i))
5856												]);
5857										}
5858									}),
5859									A2(
5860									$author$project$W$ButtonGroup$view,
5861									_List_fromArray(
5862										[$author$project$W$ButtonGroup$rounded, $author$project$W$ButtonGroup$outlined, $author$project$W$ButtonGroup$small]),
5863									{
5864										p: A2($elm$core$List$range, 0, 2),
5865										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5866										u: function (i) {
5867											return _List_fromArray(
5868												[
5869													$elm$html$Html$text(
5870													$elm$core$String$fromInt(i))
5871												]);
5872										}
5873									}),
5874									A2(
5875									$author$project$W$ButtonGroup$view,
5876									_List_fromArray(
5877										[
5878											$author$project$W$ButtonGroup$disabled(
5879											function (_v3) {
5880												return true;
5881											}),
5882											$author$project$W$ButtonGroup$rounded,
5883											$author$project$W$ButtonGroup$small
5884										]),
5885									{
5886										p: A2($elm$core$List$range, 0, 2),
5887										s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5888										u: function (i) {
5889											return _List_fromArray(
5890												[
5891													$elm$html$Html$text(
5892													$elm$core$String$fromInt(i))
5893												]);
5894										}
5895									})
5896								]))
5897						]))),
5898				_Utils_Tuple2(
5899				'Full',
5900				A2(
5901					$author$project$W$ButtonGroup$view,
5902					_List_fromArray(
5903						[$author$project$W$ButtonGroup$full]),
5904					{
5905						p: A2($elm$core$List$range, 0, 2),
5906						s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
5907						u: function (i) {
5908							return _List_fromArray(
5909								[
5910									$elm$html$Html$text(
5911									$elm$core$String$fromInt(i))
5912								]);
5913						}
5914					}))
5915			]),
5916		$dtwrks$elm_book$ElmBook$Chapter$chapter('Button Groups')));
5917var $author$project$W$Button$Attribute = $elm$core$Basics$identity;
5918var $author$project$W$Button$alignLeft = function (attrs) {
5919	return _Utils_update(
5920		attrs,
5921		{a2: 'ew-justify-start'});
5922};
5923var $uncover_co$elm_theme$Theme$namespace = 'theme';
5924var $uncover_co$elm_theme$Theme$cssVar = function (v) {
5925	return 'var(--' + ($uncover_co$elm_theme$Theme$namespace + ('-' + (v + ')')));
5926};
5927var $uncover_co$elm_theme$Theme$dangerAux = $uncover_co$elm_theme$Theme$cssVar('danger-aux');
5928var $elm$core$String$fromFloat = _String_fromNumber;
5929var $uncover_co$elm_theme$Theme$cssVarWithAlpha = F2(
5930	function (v, alpha) {
5931		return 'rgb(var(--' + ($uncover_co$elm_theme$Theme$namespace + ('-' + (v + ('-ch) / ' + ($elm$core$String$fromFloat(alpha) + ')')))));
5932	});
5933var $uncover_co$elm_theme$Theme$dangerAuxWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('danger-aux');
5934var $uncover_co$elm_theme$Theme$dangerBackground = $uncover_co$elm_theme$Theme$cssVar('danger-bg');
5935var $uncover_co$elm_theme$Theme$dangerBackgroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('danger-bg');
5936var $uncover_co$elm_theme$Theme$dangerForeground = $uncover_co$elm_theme$Theme$cssVar('danger-fg');
5937var $uncover_co$elm_theme$Theme$dangerForegroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('danger-fg');
5938var $uncover_co$elm_theme$Theme$danger = {cV: $uncover_co$elm_theme$Theme$dangerAux, ab: $uncover_co$elm_theme$Theme$dangerAuxWithAlpha, bF: $uncover_co$elm_theme$Theme$dangerBackground, T: $uncover_co$elm_theme$Theme$dangerBackgroundWithAlpha, da: $uncover_co$elm_theme$Theme$dangerForeground, fs: $uncover_co$elm_theme$Theme$dangerForegroundWithAlpha};
5939var $author$project$W$Button$toButtonTheme = function (color) {
5940	return {cV: color.cV, bF: color.bF, da: color.da};
5941};
5942var $author$project$W$Button$danger = function (attrs) {
5943	return _Utils_update(
5944		attrs,
5945		{
5946			dQ: $author$project$W$Button$toButtonTheme($uncover_co$elm_theme$Theme$danger)
5947		});
5948};
5949var $author$project$W$Button$disabled = function (v) {
5950	return function (attrs) {
5951		return _Utils_update(
5952			attrs,
5953			{bV: v});
5954	};
5955};
5956var $author$project$W$Button$ExtraSmall = 0;
5957var $author$project$W$Button$extraSmall = function (attrs) {
5958	return _Utils_update(
5959		attrs,
5960		{n: 0});
5961};
5962var $elm$html$Html$form = _VirtualDom_node('form');
5963var $author$project$W$Button$Full = 0;
5964var $author$project$W$Button$full = function (attrs) {
5965	return _Utils_update(
5966		attrs,
5967		{y: 0});
5968};
5969var $author$project$W$Button$Icon = 1;
5970var $author$project$W$Button$icon = function (attrs) {
5971	return _Utils_update(
5972		attrs,
5973		{y: 1});
5974};
5975var $author$project$W$Button$Invisible = 2;
5976var $author$project$W$Button$invisible = function (attrs) {
5977	return _Utils_update(
5978		attrs,
5979		{x: 2});
5980};
5981var $author$project$W$Button$Large = 3;
5982var $author$project$W$Button$large = function (attrs) {
5983	return _Utils_update(
5984		attrs,
5985		{n: 3});
5986};
5987var $dtwrks$elm_book$ElmBook$Actions$logAction = function (action) {
5988	return A2($dtwrks$elm_book$ElmBook$Internal$Msg$LogAction, '', action);
5989};
5990var $author$project$W$Button$noAttr = $elm$core$Basics$identity;
5991var $elm$html$Html$Events$alwaysPreventDefault = function (msg) {
5992	return _Utils_Tuple2(msg, true);
5993};
5994var $elm$virtual_dom$VirtualDom$MayPreventDefault = function (a) {
5995	return {$: 2, a: a};
5996};
5997var $elm$html$Html$Events$preventDefaultOn = F2(
5998	function (event, decoder) {
5999		return A2(
6000			$elm$virtual_dom$VirtualDom$on,
6001			event,
6002			$elm$virtual_dom$VirtualDom$MayPreventDefault(decoder));
6003	});
6004var $elm$html$Html$Events$onSubmit = function (msg) {
6005	return A2(
6006		$elm$html$Html$Events$preventDefaultOn,
6007		'submit',
6008		A2(
6009			$elm$json$Json$Decode$map,
6010			$elm$html$Html$Events$alwaysPreventDefault,
6011			$elm$json$Json$Decode$succeed(msg)));
6012};
6013var $author$project$W$Button$Outlined = 1;
6014var $author$project$W$Button$outlined = function (attrs) {
6015	return _Utils_update(
6016		attrs,
6017		{x: 1});
6018};
6019var $uncover_co$elm_theme$Theme$primaryAux = $uncover_co$elm_theme$Theme$cssVar('primary-aux');
6020var $uncover_co$elm_theme$Theme$primaryAuxWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('primary-aux');
6021var $uncover_co$elm_theme$Theme$primaryBackground = $uncover_co$elm_theme$Theme$cssVar('primary-bg');
6022var $uncover_co$elm_theme$Theme$primaryBackgroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('primary-bg');
6023var $uncover_co$elm_theme$Theme$primaryForeground = $uncover_co$elm_theme$Theme$cssVar('primary-fg');
6024var $uncover_co$elm_theme$Theme$primaryForegroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('primary-fg');
6025var $uncover_co$elm_theme$Theme$primary = {cV: $uncover_co$elm_theme$Theme$primaryAux, ab: $uncover_co$elm_theme$Theme$primaryAuxWithAlpha, bF: $uncover_co$elm_theme$Theme$primaryBackgroun
6025d, T: $uncover_co$elm_theme$Theme$primaryBackgroundWithAlpha, da: $uncover_co$elm_theme$Theme$primaryForeground, fs: $uncover_co$elm_theme$Theme$primaryForegroundWithAlpha};
6026var $author$project$W$Button$primary = function (attrs) {
6027	return _Utils_update(
6028		attrs,
6029		{
6030			dQ: $author$project$W$Button$toButtonTheme($uncover_co$elm_theme$Theme$primary)
6031		});
6032};
6033var $author$project$W$Button$rounded = function (attrs) {
6034	return _Utils_update(
6035		attrs,
6036		{cz: true});
6037};
6038var $uncover_co$elm_theme$Theme$secondaryAux = $uncover_co$elm_theme$Theme$cssVar('secondary-aux');
6039var $uncover_co$elm_theme$Theme$secondaryAuxWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('secondary-aux');
6040var $uncover_co$elm_theme$Theme$secondaryBackground = $uncover_co$elm_theme$Theme$cssVar('secondary-bg');
6041var $uncover_co$elm_theme$Theme$secondaryBackgroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('secondary-bg');
6042var $uncover_co$elm_theme$Theme$secondaryForeground = $uncover_co$elm_theme$Theme$cssVar('secondary-fg');
6043var $uncover_co$elm_theme$Theme$secondaryForegroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('secondary-fg');
6044var $uncover_co$elm_theme$Theme$secondary = {cV: $uncover_co$elm_theme$Theme$secondaryAux, ab: $uncover_co$elm_theme$Theme$secondaryAuxWithAlpha, bF: $uncover_co$elm_theme$Theme$secondaryBackground, T: $uncover_co$elm_theme$Theme$secondaryBackgroundWithAlpha, da: $uncover_co$elm_theme$Theme$secondaryForeground, fs: $uncover_co$elm_theme$Theme$secondaryForegroundWithAlpha};
6045var $author$project$W$Button$secondary = function (attrs) {
6046	return _Utils_update(
6047		attrs,
6048		{
6049			dQ: $author$project$W$Button$toButtonTheme($uncover_co$elm_theme$Theme$secondary)
6050		});
6051};
6052var $author$project$W$Button$Small = 1;
6053var $author$project$W$Button$small = function (attrs) {
6054	return _Utils_update(
6055		attrs,
6056		{n: 1});
6057};
6058var $uncover_co$elm_theme$Theme$successAux = $uncover_co$elm_theme$Theme$cssVar('success-aux');
6059var $uncover_co$elm_theme$Theme$successAuxWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('success-aux');
6060var $uncover_co$elm_theme$Theme$successBackground = $uncover_co$elm_theme$Theme$cssVar('success-bg');
6061var $uncover_co$elm_theme$Theme$successBackgroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('success-bg');
6062var $uncover_co$elm_theme$Theme$successForeground = $uncover_co$elm_theme$Theme$cssVar('success-fg');
6063var $uncover_co$elm_theme$Theme$successForegroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('success-fg');
6064var $uncover_co$elm_theme$Theme$success = {cV: $uncover_co$elm_theme$Theme$successAux, ab: $uncover_co$elm_theme$Theme$successAuxWithAlpha, bF: $uncover_co$elm_theme$Theme$successBackground, T: $uncover_co$elm_theme$Theme$successBackgroundWithAlpha, da: $uncover_co$elm_theme$Theme$successForeground, fs: $uncover_co$elm_theme$Theme$successForegroundWithAlpha};
6065var $author$project$W$Button$success = function (attrs) {
6066	return _Utils_update(
6067		attrs,
6068		{
6069			dQ: $author$project$W$Button$toButtonTheme($uncover_co$elm_theme$Theme$success)
6070		});
6071};
6072var $author$project$W$Button$Base = 2;
6073var $author$project$W$Button$Basic = 0;
6074var $author$project$W$Button$Medium = 2;
6075var $uncover_co$elm_theme$Theme$neutralAux = $uncover_co$elm_theme$Theme$cssVar('neutral-aux');
6076var $uncover_co$elm_theme$Theme$neutralAuxWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('neutral-aux');
6077var $uncover_co$elm_theme$Theme$neutralBackground = $uncover_co$elm_theme$Theme$cssVar('neutral-bg');
6078var $uncover_co$elm_theme$Theme$neutralBackgroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('neutral-bg');
6079var $uncover_co$elm_theme$Theme$neutralForeground = $uncover_co$elm_theme$Theme$cssVar('neutral-fg');
6080var $uncover_co$elm_theme$Theme$neutralForegroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('neutral-fg');
6081var $uncover_co$elm_theme$Theme$neutral = {cV: $uncover_co$elm_theme$Theme$neutralAux, ab: $uncover_co$elm_theme$Theme$neutralAuxWithAlpha, bF: $uncover_co$elm_theme$Theme$neutralBackground, T: $uncover_co$elm_theme$Theme$neutralBackgroundWithAlpha, da: $uncover_co$elm_theme$Theme$neutralForeground, fs: $uncover_co$elm_theme$Theme$neutralForegroundWithAlpha};
6082var $author$project$W$Button$defaultAttrs = {
6083	a2: 'ew-justify-center',
6084	bV: false,
6085	b$: _List_Nil,
6086	cz: false,
6087	n: 2,
6088	x: 0,
6089	dQ: $author$project$W$Button$toButtonTheme($uncover_co$elm_theme$Theme$neutral),
6090	y: 2
6091};
6092var $author$project$W$Button$applyAttrs = function (attrs) {
6093	return A3(
6094		$elm$core$List$foldl,
6095		F2(
6096			function (_v0, a) {
6097				var fn = _v0;
6098				return fn(a);
6099			}),
6100		$author$project$W$Button$defaultAttrs,
6101		attrs);
6102};
6103var $elm$core$Basics$neq = _Utils_notEqual;
6104var $author$project$W$Button$roundedAttrs = function (attrs) {
6105	var _v0 = _Utils_Tuple2(attrs.cz, attrs.n);
6106	if (!_v0.a) {
6107		return $elm$html$Html$Attributes$classList(
6108			_List_fromArray(
6109				[
6110					_Utils_Tuple2('ew-rounded-lg', true),
6111					_Utils_Tuple2('before:ew-rounded-lg', attrs.x !== 1),
6112					_Utils_Tuple2('before:ew-rounded', attrs.x === 1)
6113				]));
6114	} else {
6115		switch (_v0.b) {
6116			case 3:
6117				var _v1 = _v0.b;
6118				return $elm$html$Html$Attributes$classList(
6119					_List_fromArray(
6120						[
6121							_Utils_Tuple2('ew-rounded-[20px]', true),
6122							_Utils_Tuple2('before:ew-rounded-[20px]', attrs.x !== 1),
6123							_Utils_Tuple2('before:ew-rounded-[18px]', attrs.x === 1)
6124						]));
6125			case 2:
6126				var _v2 = _v0.b;
6127				return $elm$html$Html$Attributes$classList(
6128					_List_fromArray(
6129						[
6130							_Utils_Tuple2('ew-rounded-[20px]', true),
6131							_Utils_Tuple2('before:ew-rounded-[20px]', attrs.x !== 1),
6132							_Utils_Tuple2('before:ew-rounded-[18px]', attrs.x === 1)
6133						]));
6134			case 1:
6135				var _v3 = _v0.b;
6136				return $elm$html$Html$Attributes$classList(
6137					_List_fromArray(
6138						[
6139							_Utils_Tuple2('ew-rounded-[16px]', true),
6140							_Utils_Tuple2('before:ew-rounded-[16px]', attrs.x !== 1),
6141							_Utils_Tuple2('before:ew-rounded-[14px]', attrs.x === 1)
6142						]));
6143			default:
6144				var _v4 = _v0.b;
6145				return $elm$html$Html$Attributes$classList(
6146					_List_fromArray(
6147						[
6148							_Utils_Tuple2('ew-rounded-[12px]', true),
6149							_Utils_Tuple2('before:ew-rounded-[12px]', attrs.x !== 1),
6150							_Utils_Tuple2('before:ew-rounded-[12px]', attrs.x === 1)
6151						]));
6152		}
6153	}
6154};
6155var $uncover_co$elm_theme$Theme$baseBackground = $uncover_co$elm_theme$Theme$cssVar('base-bg');
6156var $author$project$W$Button$styleAttrs = function (attrs) {
6157	var _v0 = attrs.x;
6158	switch (_v0) {
6159		case 0:
6160			return _List_fromArray(
6161				[
6162					A2($elm$html$Html$Attributes$style, 'color', attrs.dQ.cV),
6163					A2($elm$html$Html$Attributes$style, 'background', attrs.dQ.bF),
6164					$elm$html$Html$Attributes$class('ew-border-0'),
6165					$elm$html$Html$Attributes$class('before:ew-block before:ew-content-[\'\'] before:ew-absolute before:ew-inset-0 before:ew-pointer-events-none'),
6166					$elm$html$Html$Attributes$class('before:ew-z-0 before:ew-transition before:ew-duration-200 before:ew-bg-current before:ew-opacity-0'),
6167					$elm$html$Html$Attributes$class('hover:before:ew-opacity-[0.07] active:before:ew-opacity-[0.15]')
6168				]);
6169		case 1:
6170			return _List_fromArray(
6171				[
6172					A2($elm$html$Html$Attributes$style, 'color', attrs.dQ.da),
6173					A2($elm$html$Html$Attributes$style, 'border-color', attrs.dQ.da),
6174					A2($elm$html$Html$Attributes$style, 'background', $uncover_co$elm_theme$Theme$baseBackground),
6175					$elm$html$Html$Attributes$class('ew-border-solid ew-border-[3px]'),
6176					$elm$html$Html$Attributes$class('before:ew-content-[\'\'] before:ew-block before:ew-absolute before:ew-inset-0 before:ew-bg-current before:ew-opacity-0'),
6177					$elm$html$Html$Attributes$class('hover:before:ew-opacity-10 active:before:ew-opacity-20 before:ew-transition before:ew-duration-200')
6178				]);
6179		default:
6180			return _List_fromArray(
6181				[
6182					$elm$html$Html$Attributes$class('ew-relative ew-bg-transparent ew-border-0'),
6183					$elm$html$Html$Attributes$class('before:ew-content-[\'\'] before:ew-block before:ew-absolute before:ew-inset-0 before:ew-bg-current before:ew-opacity-0'),
6184					$elm$html$Html$Attributes$class('hover:before:ew-opacity-10 active:before:ew-opacity-20 before:ew-transition before:ew-duration-200'),
6185					A2($elm$html$Html$Attributes$style, 'color', attrs.dQ.da)
6186				]);
6187	}
6188};
6189var $author$project$W$Button$attributes = function (attrs) {
6190	return _Utils_ap(
6191		attrs.b$,
6192		_Utils_ap(
6193			$author$project$W$Button$styleAttrs(attrs),
6194			_List_fromArray(
6195				[
6196					$elm$html$Html$Attributes$disabled(attrs.bV),
6197					$author$project$W$Button$roundedAttrs(attrs),
6198					$elm$html$Html$Attributes$class(attrs.a2),
6199					$elm$html$Html$Attributes$class('ew-focusable ew-box-border ew-group/button'),
6200					$elm$html$Html$Attributes$class('ew-relative ew-inline-flex ew-items-center ew-m-0 ew-py-0'),
6201					$elm$html$Html$Attributes$class('ew-font-text ew-font-semibold ew-leading-none ew-tracking-wider ew-no-underline'),
6202					$elm$html$Html$Attributes$class('disabled:ew-pointer-events-none disabled:ew-opacity-60'),
6203					$elm$html$Html$Attributes$classList(
6204					_List_fromArray(
6205						[
6206							_Utils_Tuple2('ew-h-[24px] ew-text-xs', !attrs.n),
6207							_Utils_Tuple2('ew-h-[32px] ew-text-sm', attrs.n === 1),
6208							_Utils_Tuple2('ew-h-[40px] ew-text-base', attrs.n === 2),
6209							_Utils_Tuple2('ew-h-[48px] ew-text-base', attrs.n === 3),
6210							_Utils_Tuple2('ew-min-w-[24px]', (!attrs.n) && (attrs.y === 1)),
6211							_Utils_Tuple2('ew-min-w-[32px]', (attrs.n === 1) && (attrs.y === 1)),
6212							_Utils_Tuple2('ew-min-w-[40px]', (attrs.n === 2) && (attrs.y === 1)),
6213							_Utils_Tuple2('ew-min-w-[48px]', (attrs.n === 3) && (attrs.y === 1)),
6214							_Utils_Tuple2('ew-px-1', attrs.y === 1),
6215							_Utils_Tuple2('ew-px-2 ew-gap-2', (!attrs.n) && (attrs.y !== 1)),
6216							_Utils_Tuple2('ew-px-3 ew-gap-2', (attrs.n === 1) && (attrs.y !== 1)),
6217							_Utils_Tuple2('ew-px-5 ew-gap-3', (attrs.n === 2) && (attrs.y !== 1)),
6218							_Utils_Tuple2('ew-px-6 ew-gap-4', (attrs.n === 3) && (attrs.y !== 1)),
6219							_Utils_Tuple2('ew-w-full', !attrs.y)
6220						]))
6221				])));
6222};
6223var $author$project$W$Button$view = F2(
6224	function (attrs_, props) {
6225		var attrs = $author$project$W$Button$applyAttrs(attrs_);
6226		return A2(
6227			$elm$html$Html$button,
6228			A2(
6229				$elm$core$List$cons,
6230				$elm$html$Html$Events$onClick(props.s),
6231				$author$project$W$Button$attributes(attrs)),
6232			props.aK);
6233	});
6234var $author$project$UI$viewIcon = A2(
6235	$elm$html$Html$div,
6236	_List_fromArray(
6237		[
6238			A2($elm$html$Html$Attributes$style, 'display', 'inline-block'),
6239			A2($elm$html$Html$Attributes$style, 'width', '20px'),
6240			A2($elm$html$Html$Attributes$style, 'height', '20px'),
6241			A2($elm$html$Html$Attributes$style, 'border-radius', '100%'),
6242			A2($elm$html$Html$Attributes$style, 'border', '2px solid currentColor')
6243		]),
6244	_List_Nil);
6245var $elm$html$Html$Attributes$type_ = $elm$html$Html$Attributes$stringProperty('type');
6246var $author$project$W$Button$viewSubmit = F2(
6247	function (attrs_, label) {
6248		var attrs = $author$project$W$Button$applyAttrs(attrs_);
6249		return A2(
6250			$elm$html$Html$button,
6251			A2(
6252				$elm$core$List$cons,
6253				$elm$html$Html$Attributes$type_('submit'),
6254				$author$project$W$Button$attributes(attrs)),
6255			label);
6256	});
6257var $uncover_co$elm_theme$Theme$warningAux = $uncover_co$elm_theme$Theme$cssVar('warning-aux');
6258var $uncover_co$elm_theme$Theme$warningAuxWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('warning-aux');
6259var $uncover_co$elm_theme$Theme$warningBackground = $uncover_co$elm_theme$Theme$cssVar('warning-bg');
6260var $uncover_co$elm_theme$Theme$warningBackgroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('warning-bg');
6261var $uncover_co$elm_theme$Theme$warningForeground = $uncover_co$elm_theme$Theme$cssVar('warning-fg');
6262var $uncover_co$elm_theme$Theme$warningForegroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('warning-fg');
6263var $uncover_co$elm_theme$Theme$warning = {cV: $uncover_co$elm_theme$Theme$warningAux, ab: $uncover_co$elm_theme$Theme$warningAuxWithAlpha, bF: $uncover_co$elm_theme$Theme$warningBackground, T: $uncover_co$elm_theme$Theme$warningBackgroundWithAlpha, da: $uncover_co$elm_theme$Theme$warningForeground, fs: $uncover_co$elm_theme$Theme$warningForegroundWithAlpha};
6264var $author$project$W$Button$warning = function (attrs) {
6265	return _Utils_update(
6266		attrs,
6267		{
6268			dQ: $author$project$W$Button$toButtonTheme($uncover_co$elm_theme$Theme$warning)
6269		});
6270};
6271var $author$project$Chapters$Core$Buttons$chapter_ = A2(
6272	$dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList,
6273	'\nButtons, buttons... What can we say? You can press them and hope something happens! It usually does! 😁\n\n---\n\nIt\'s important to have different types and colors of buttons at our disposal so we can communicate the different semantic needs of our applications.\n',
6274	A2(
6275		$dtwrks$elm_book$ElmBook$Chapter$withComponentList,
6276		_List_fromArray(
6277			[
6278				_Utils_Tuple2(
6279				'Different Colors',
6280				$author$project$UI$hSpacer(
6281					A2(
6282						$elm$core$List$map,
6283						function (attr) {
6284							return A2(
6285								$author$project$W$Button$view,
6286								_List_fromArray(
6287									[attr]),
6288								{
6289									aK: _List_fromArray(
6290										[
6291											$elm$html$Html$text('Button')
6292										]),
6293									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
6294								});
6295						},
6296						_List_fromArray(
6297							[$author$project$W$Button$noAttr, $author$project$W$Button$primary, $author$project$W$Button$secondary, $author$project$W$Button$success, $author$project$W$Button$warning, $author$project$W$Button$danger])))),
6298				_Utils_Tuple2(
6299				'Different Sizes',
6300				$author$project$UI$hSpacer(
6301					A2(
6302						$elm$core$List$map,
6303						function (attr) {
6304							return A2(
6305								$author$project$W$Button$view,
6306								_List_fromArray(
6307									[attr]),
6308								{
6309									aK: _List_fromArray(
6310										[
6311											$elm$html$Html$text('Button')
6312										]),
6313									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
6314								});
6315						},
6316						_List_fromArray(
6317							[$author$project$W$Button$large, $author$project$W$Button$noAttr, $author$project$W$Button$small, $author$project$W$Button$extraSmall])))),
6318				_Utils_Tuple2(
6319				'Different Styles',
6320				$author$project$UI$hSpacer(
6321					A2(
6322						$elm$core$List$map,
6323						function (attr) {
6324							return A2(
6325								$author$project$W$Button$view,
6326								_List_fromArray(
6327									[attr]),
6328								{
6329									aK: _List_fromArray(
6330										[
6331											$elm$html$Html$text('Button')
6332										]),
6333									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
6334								});
6335						},
6336						_List_fromArray(
6337							[
6338								$author$project$W$Button$noAttr,
6339								$author$project$W$Button$outlined,
6340								$author$project$W$Button$invisible,
6341								$author$project$W$Button$disabled(true)
6342							])))),
6343				_Utils_Tuple2(
6344				'Different Aspect Ratios & Radius Sizes',
6345				$author$project$UI$hSpacer(
6346					A2(
6347						$elm$core$List$map,
6348						function (attrs) {
6349							return A2(
6350								$author$project$W$Button$view,
6351								attrs,
6352								{
6353									aK: _List_fromArray(
6354										[$author$project$UI$viewIcon]),
6355									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
6356								});
6357						},
6358						_List_fromArray(
6359							[
6360								_List_fromArray(
6361								[$author$project$W$Button$icon]),
6362								_List_Nil,
6363								_List_fromArray(
6364								[$author$project$W$Button$icon, $author$project$W$Button$rounded]),
6365								_List_fromArray(
6366								[$author$project$W$Button$rounded])
6367							])))),
6368				_Utils_Tuple2(
6369				'With icons + left alignment',
6370				$author$project$UI$hSpacer(
6371					A2(
6372						$elm$core$List$map,
6373						function (attrs) {
6374							return A2(
6375								$author$project$W$Button$view,
6376								attrs,
6377								{
6378									aK: _List_fromArray(
6379										[
6380											A2(
6381											$elm$html$Html$span,
6382											_List_fromArray(
6383												[
6384													$elm$html$Html$Attributes$class('ew-opacity-50')
6385												]),
6386											_List_fromArray(
6387												[$author$project$UI$viewIcon])),
6388											$elm$html$Html$text('Button')
6389										]),
6390									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
6391								});
6392						},
6393						_List_fromArray(
6394							[
6395								_List_fromArray(
6396								[$author$project$W$Button$full, $author$project$W$Button$large, $author$project$W$Button$alignLeft]),
6397								_List_fromArray(
6398								[$author$project$W$Button$full, $author$project$W$Button$alignLeft]),
6399								_List_fromArray(
6400								[$author$project$W$Button$full, $author$project$W$Button$small, $author$project$W$Button$alignLeft])
6401							])))),
6402				_Utils_Tuple2(
6403				'100% Width',
6404				$author$project$UI$hSpacer(
6405					A2(
6406						$elm$core$List$map,
6407						function (attr) {
6408							return A2(
6409								$author$project$W$Button$view,
6410								_List_fromArray(
6411									[attr]),
6412								{
6413									aK: _List_fromArray(
6414										[
6415											$elm$html$Html$text('Button')
6416										]),
6417									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
6418								});
6419						},
6420						_List_fromArray(
6421							[$author$project$W$Button$full])))),
6422				_Utils_Tuple2(
6423				'Submit button inside a form',
6424				A2(
6425					$elm$html$Html$form,
6426					_List_fromArray(
6427						[
6428							A2($elm$html$Html$Attributes$style, 'margin', '0'),
6429							$elm$html$Html$Events$onSubmit(
6430							$dtwrks$elm_book$ElmBook$Actions$logAction('Form submitted!'))
6431						]),
6432					_List_fromArray(
6433						[
6434							A2(
6435							$author$project$W$Button$viewSubmit,
6436							_List_Nil,
6437							_List_fromArray(
6438								[
6439									$elm$html$Html$text('Submit')
6440								]))
6441						])))
6442			]),
6443		$dtwrks$elm_book$ElmBook$Chapter$chapter('Buttons')));
6444var $author$project$W$Container$Attribute = $elm$core$Basics$identity;
6445var $author$project$W$Container$HorizontalCenter = 2;
6446var $author$project$W$Container$alignCenterX = function (attr) {
6447	return _Utils_update(
6448		attr,
6449		{
6450			L: $elm$core$Maybe$Just(2)
6451		});
6452};
6453var $author$project$W$Container$VerticalCenter = 1;
6454var $author$project$W$Container$alignCenterY = function (attr) {
6455	return _Utils_update(
6456		attr,
6457		{
6458			as: $elm$core$Maybe$Just(1)
6459		});
6460};
6461var $author$project$W$Container$Right = 1;
6462var $author$project$W$Container$alignRight = function (attr) {
6463	return _Utils_update(
6464		attr,
6465		{
6466			L: $elm$core$Maybe$Just(1)
6467		});
6468};
6469var $author$project$W$Container$background = function (v) {
6470	return function (attr) {
6471		return _Utils_update(
6472			attr,
6473			{
6474				bF: $elm$core$Maybe$Just(v)
6475			});
6476	};
6477};
6478var $uncover_co$elm_theme$Theme$baseAuxWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('base-aux');
6479var $author$project$W$Container$card = function (attr) {
6480	return _Utils_update(
6481		attr,
6482		{
6483			bF: $elm$core$Maybe$Just($uncover_co$elm_theme$Theme$baseBackground),
6484			F: attr.F + ' ew-shadow ew-rounded'
6485		});
6486};
6487var $author$project$W$Container$addClass = function (_class) {
6488	return function (attr) {
6489		return _Utils_update(
6490			attr,
6491			{F: attr.F + (' ' + _class)});
6492	};
6493};
6494var $author$project$W$Container$gap_2 = $author$project$W$Container$addClass('ew-gap-2');
6495var $author$project$W$Container$Horizontal = 1;
6496var $author$project$W$Container$horizontal = function (attr) {
6497	return _Utils_update(
6498		attr,
6499		{aN: 1});
6500};
6501var $elm$core$String$append = _String_append;
6502var $author$project$W$Container$Vertical = 0;
6503var $author$project$W$Container$defaultAttrs = {bF: $elm$core$Maybe$Nothing, F: '', L: $elm$core$Maybe$Nothing, b$: _List_Nil, b1: false, ce: 'div', aN: 0, bu: _List_Nil, as: $elm$core$Maybe$Nothing, cQ: true};
6504var $author$project$W$Container$applyAttrs = function (attrs) {
6505	return A3(
6506		$elm$core$List$foldl,
6507		F2(
6508			function (_v0, a) {
6509				var fn = _v0;
6510				return fn(a);
6511			}),
6512		$author$project$W$Container$defaultAttrs,
6513		attrs);
6514};
6515var $author$project$W$Container$applyAttrsTo = F2(
6516	function (attrs, _default) {
6517		return A3(
6518			$elm$core$List$foldl,
6519			F2(
6520				function (_v0, a) {
6521					var fn = _v0;
6522					return fn(a);
6523				}),
6524			_default,
6525			attrs);
6526	});
6527var $elm$core$String$isEmpty = function (string) {
6528	return string === '';
6529};
6530var $author$project$W$Container$layoutClass = function (attrs) {
6531	var _v0 = attrs.aN;
6532	if (!_v0) {
6533		var yAxis = function () {
6534			var _v8 = attrs.as;
6535			if (!_v8.$) {
6536				switch (_v8.a) {
6537					case 0:
6538						var _v9 = _v8.a;
6539						return 'ew-justify-start';
6540					case 1:
6541						var _v10 = _v8.a;
6542						return 'ew-justify-center';
6543					default:
6544						var _v11 = _v8.a;
6545						return 'ew-justify-end';
6546				}
6547			} else {
6548				return '';
6549			}
6550		}();
6551		var xAxis = function () {
6552			var _v1 = attrs.L;
6553			if (!_v1.$) {
6554				switch (_v1.a) {
6555					case 0:
6556						var _v2 = _v1.a;
6557						return 'ew-items-start';
6558					case 2:
6559						var _v3 = _v1.a;
6560						return 'ew-items-center';
6561					case 1:
6562						var _v4 = _v1.a;
6563						return 'ew-items-end';
6564					case 3:
6565						var _v5 = _v1.a;
6566						return '';
6567					case 4:
6568						var _v6 = _v1.a;
6569						return '';
6570					default:
6571						var _v7 = _v1.a;
6572						return '';
6573				}
6574			} else {
6575				return '';
6576			}
6577		}();
6578		return 'ew-flex-col ' + (yAxis + (' ' + xAxis));
6579	} else {
6580		var yAxis = function () {
6581			var _v19 = attrs.as;
6582			if (!_v19.$) {
6583				switch (_v19.a) {
6584					case 0:
6585						var _v20 = _v19.a;
6586						return 'ew-items-start';
6587					case 1:
6588						var _v21 = _v19.a;
6589						return 'ew-items-center';
6590					default:
6591						var _v22 = _v19.a;
6592						return 'ew-items-end';
6593				}
6594			} else {
6595				return 'ew-items-start';
6596			}
6597		}();
6598		var xAxis = function () {
6599			var _v12 = attrs.L;
6600			if (!_v12.$) {
6601				switch (_v12.a) {
6602					case 0:
6603						var _v13 = _v12.a;
6604						return 'ew-justify-start';
6605					case 2:
6606						var _v14 = _v12.a;
6607						return 'ew-justify-center';
6608					case 1:
6609						var _v15 = _v12.a;
6610						return 'ew-justify-end';
6611					case 3:
6612						var _v16 = _v12.a;
6613						return 'ew-justify-between';
6614					case 4:
6615						var _v17 = _v12.a;
6616						return 'ew-justify-around';
6617					default:
6618						var _v18 = _v12.a;
6619						return 'ew-justify-stretch';
6620				}
6621			} else {
6622				return 'ew-justify-start';
6623			}
6624		}();
6625		return 'ew-flex-row ' + (yAxis + (' ' + xAxis));
6626	}
6627};
6628var $elm$core$String$replace = F3(
6629	function (before, after, string) {
6630		return A2(
6631			$elm$core$String$join,
6632			after,
6633			A2($elm$core$String$split, before, string));
6634	});
6635var $author$project$W$Container$largeScreen = function (largeAttr_) {
6636	return function (attr) {
6637		var largeAttr = $author$project$W$Container$applyAttrs(largeAttr_);
6638		var padding = $elm$core$String$isEmpty(largeAttr.F) ? '' : A3(
6639			$elm$core$String$replace,
6640			' ',
6641			' lg:',
6642			A2(
6643				$elm$core$String$append,
6644				'lg:',
6645				$elm$core$String$trim(largeAttr.F)));
6646		var allAttr = A2($author$project$W$Container$applyAttrsTo, largeAttr_, attr);
6647		var layout = A3(
6648			$elm$core$String$replace,
6649			' ',
6650			' lg:',
6651			A2(
6652				$elm$core$String$append,
6653				'lg:',
6654				$elm$core$String$trim(
6655					$author$project$W$Container$layoutClass(allAttr))));
6656		return _Utils_update(
6657			attr,
6658			{F: attr.F + (' ' + (layout + (' ' + padding)))});
6659	};
6660};
6661var $author$project$W$Container$pad_8 = $author$project$W$Container$addClass('ew-p-8');
6662var $elm$core$List$repeatHelp = F3(
6663	function (result, n, value) {
6664		repeatHelp:
6665		while (true) {
6666			if (n <= 0) {
6667				return result;
6668			} else {
6669				var $temp$result = A2($elm$core$List$cons, value, result),
6670					$temp$n = n - 1,
6671					$temp$value = value;
6672				result = $temp$result;
6673				n = $temp$n;
6674				value = $temp$value;
6675				continue repeatHelp;
6676			}
6677		}
6678	});
6679var $elm$core$List$repeat = F2(
6680	function (n, value) {
6681		return A3($elm$core$List$repeatHelp, _List_Nil, n, value);
6682	});
6683var $author$project$W$Container$SpaceAround = 4;
6684var $author$project$W$Container$spaceAround = function (attr) {
6685	return _Utils_update(
6686		attr,
6687		{
6688			L: $elm$core$Maybe$Just(4)
6689		});
6690};
6691var $author$project$W$Container$SpaceBetween = 3;
6692var $author$project$W$Container$spaceBetween = function (attr) {
6693	return _Utils_update(
6694		attr,
6695		{
6696			L: $elm$core$Maybe$Just(3)
6697		});
6698};
6699var $uncover_co$elm_theme$Theme$baseAux = $uncover_co$elm_theme$Theme$cssVar('base-aux');
6700var $author$project$W$Container$extraRounded = $author$project$W$Container$addClass('ew-rounded-lg');
6701var $author$project$W$Container$pad_4 = $author$project$W$Container$addClass('ew-p-4');
6702var $elm$virtual_dom$VirtualDom$node = function (tag) {
6703	return _VirtualDom_node(
6704		_VirtualDom_noScript(tag));
6705};
6706var $elm$html$Html$node = $elm$virtual_dom$VirtualDom$node;
6707var $elm$virtual_dom$VirtualDom$attribute = F2(
6708	function (key, value) {
6709		return A2(
6710			_VirtualDom_attribute,
6711			_VirtualDom_noOnOrFormAction(key),
6712			_VirtualDom_noJavaScriptOrHtmlUri(value));
6713	});
6714var $elm$html$Html$Attributes$attribute = $elm$virtual_dom$VirtualDom$attribute;
6715var $uncover_co$elm_theme$Theme$styles = function (xs) {
6716	return A2(
6717		$elm$html$Html$Attributes$attribute,
6718		'style',
6719		A2(
6720			$elm$core$String$join,
6721			';',
6722			A2(
6723				$elm$core$List$map,
6724				function (_v0) {
6725					var k = _v0.a;
6726					var v = _v0.b;
6727					return k + (':' + v);
6728				},
6729				xs)));
6730};
6731var $author$project$W$Container$view = F2(
6732	function (attrs_, children) {
6733		var attrs = $author$project$W$Container$applyAttrs(attrs_);
6734		var displayClass = attrs.b1 ? 'ew-inline-flex' : 'ew-flex';
6735		var layoutClass_ = $author$project$W$Container$layoutClass(attrs);
6736		var styleAttrs_ = function () {
6737			var _v0 = attrs.bF;
6738			if (!_v0.$) {
6739				var background_ = _v0.a;
6740				return $uncover_co$elm_theme$Theme$styles(
6741					A2(
6742						$elm$core$List$cons,
6743						_Utils_Tuple2('background', background_),
6744						attrs.bu));
6745			} else {
6746				return $uncover_co$elm_theme$Theme$styles(attrs.bu);
6747			}
6748		}();
6749		var wrapClass = (attrs.cQ && (attrs.aN === 1)) ? 'ew-flex-wrap' : '';
6750		return A3(
6751			$elm$html$Html$node,
6752			attrs.ce,
6753			_Utils_ap(
6754				attrs.b$,
6755				_List_fromArray(
6756					[
6757						$elm$html$Html$Attributes$class(attrs.F),
6758						$elm$html$Html$Attributes$class(displayClass),
6759						$elm$html$Html$Attributes$class(wrapClass),
6760						$elm$html$Html$Attributes$class(layoutClass_),
6761						$elm$html$Html$Attributes$class('ew-box-border'),
6762						styleAttrs_
6763					])),
6764			children);
6765	});
6766var $author$project$Chapters$Core$Container$square = A2(
6767	$author$project$W$Container$view,
6768	_List_fromArray(
6769		[
6770			$author$project$W$Container$pad_4,
6771			$author$project$W$Container$background($uncover_co$elm_theme$Theme$baseAux),
6772			$author$project$W$Container$extraRounded
6773		]),
6774	_List_Nil);
6775var $author$project$Chapters$Core$Container$chapter_ = A2(
6776	$dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList,
6777	'\nContainers are flexible elements that can be used for responsive padding, spacing and layouting of child elements. They also accept a few styles like shadows, rounded borders and colored backgrounds.\n\n---\n\nIf you\'re using something like [Elm-UI](https://package.elm-lang.org/packages/mdgriffith/elm-ui/latest/) or [TailwindCSS](https://tailwindcss.com/) then you can probably skip this widget and use your preferred method directly!\n\nHowever, we wanted to give the opportunity for elm-widget users to reach farther in their app development without the need of using any other external packages.\n',
6778	A2(
6779		$dtwrks$elm_book$ElmBook$Chapter$withComponentList,
6780		_List_fromArray(
6781			[
6782				_Utils_Tuple2(
6783				'Horizontal + Default flow',
6784				A2(
6785					$author$project$W$Container$view,
6786					_List_fromArray(
6787						[
6788							$author$project$W$Container$pad_8,
6789							$author$project$W$Container$gap_2,
6790							$author$project$W$Container$horizontal,
6791							$author$project$W$Container$background(
6792							$uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.1))
6793						]),
6794					A2($elm$core$List$repeat, 3, $author$project$Chapters$Core$Container$square))),
6795				_Utils_Tuple2(
6796				'Horizontal + Space between elements',
6797				A2(
6798					$author$project$W$Container$view,
6799					_List_fromArray(
6800						[
6801							$author$project$W$Container$pad_8,
6802							$author$project$W$Container$gap_2,
6803							$author$project$W$Container$horizontal,
6804							$author$project$W$Container$spaceBetween,
6805							$author$project$W$Container$background(
6806							$uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.1))
6807						]),
6808					_List_fromArray(
6809						[$author$project$Chapters$Core$Container$square, $author$project$Chapters$Core$Container$square, $author$project$Chapters$Core$Container$square]))),
6810				_Utils_Tuple2(
6811				'Horizontal + Space around elements',
6812				A2(
6813					$author$project$W$Container$view,
6814					_List_fromArray(
6815						[
6816							$author$project$W$Container$pad_8,
6817							$author$project$W$Container$gap_2,
6818							$author$project$W$Container$horizontal,
6819							$author$project$W$Container$spaceAround,
6820							$author$project$W$Container$background(
6821							$uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.1))
6822						]),
6823					_List_fromArray(
6824						[$author$project$Chapters$Core$Container$square, $author$project$Chapters$Core$Container$square, $author$project$Chapters$Core$Container$square]))),
6825				_Utils_Tuple2(
6826				'Elements centered on both axis with some gap between them',
6827				A2(
6828					$author$project$W$Container$view,
6829					_List_fromArray(
6830						[
6831							$author$project$W$Container$pad_8,
6832							$author$project$W$Container$gap_2,
6833							$author$project$W$Container$background(
6834							$uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.1)),
6835							$author$project$W$Container$alignCenterX,
6836							$author$project$W$Container$alignCenterY
6837						]),
6838					_List_fromArray(
6839						[$author$project$Chapters$Core$Container$square, $author$project$Chapters$Core$Container$square, $author$project$Chapters$Core$Container$square]))),
6840				_Utils_Tuple2(
6841				'Elements centered on the Y axis and aligned right with some gap between them',
6842				A2(
6843					$author$project$W$Container$view,
6844					_List_fromArray(
6845						[
6846							$author$project$W$Container$pad_8,
6847							$author$project$W$Container$gap_2,
6848							$author$project$W$Container$background(
6849							$uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.1)),
6850							$author$project$W$Container$alignRight,
6851							$author$project$W$Container$alignCenterY
6852						]),
6853					_List_fromArray(
6854						[$author$project$Chapters$Core$Container$square, $author$project$Chapters$Core$Container$square, $author$project$Chapters$Core$Container$square]))),
6855				_Utils_Tuple2(
6856				'Horizontal only on large screens',
6857				A2(
6858					$author$project$W$Container$view,
6859					_List_fromArray(
6860						[
6861							$author$project$W$Container$pad_8,
6862							$author$project$W$Container$gap_2,
6863							$author$project$W$Container$background(
6864							$uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.1)),
6865							$author$project$W$Container$alignCenterX,
6866							$author$project$W$Container$alignCenterY,
6867							$author$project$W$Container$largeScreen(
6868							_List_fromArray(
6869								[$author$project$W$Container$horizontal]))
6870						]),
6871					_List_fromArray(
6872						[$author$project$Chapters$Core$Container$square, $author$project$Chapters$Core$Container$square, $author$project$Chapters$Core$Container$square]))),
6873				_Utils_Tuple2(
6874				'Using the card attribute to set background, borders and shadows at the same time',
6875				A2(
6876					$author$project$W$Container$view,
6877					_List_fromArray(
6878						[
6879							$author$project$W$Container$pad_8,
6880							$author$project$W$Container$background(
6881							$uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.1)),
6882							$author$project$W$Container$alignCenterX,
6883							$author$project$W$Container$alignCenterY
6884						]),
6885					_List_fromArray(
6886						[
6887							A2(
6888							$author$project$W$Container$view,
6889							_List_fromArray(
6890								[$author$project$W$Container$pad_8, $author$project$W$Container$card]),
6891							_List_Nil)
6892						])))
6893			]),
6894		$dtwrks$elm_book$ElmBook$Chapter$chapter('Containers')));
6895var $author$project$W$Divider$Attribute = $elm$core$Basics$identity;
6896var $author$project$W$Divider$color = function (v) {
6897	return function (attrs) {
6898		return _Utils_update(
6899			attrs,
6900			{U: v});
6901	};
6902};
6903var $author$project$W$Divider$margins = function (v) {
6904	return function (attrs) {
6905		return _Utils_update(
6906			attrs,
6907			{an: v});
6908	};
6909};
6910var $author$project$W$Divider$vertical = function (attrs) {
6911	return _Utils_update(
6912		attrs,
6913		{I: true});
6914};
6915var $author$project$W$Divider$defaultAttrs = {
6916	U: $uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.2),
6917	an: 0,
6918	I: false
6919};
6920var $author$project$W$Divider$applyAttrs = function (attrs) {
6921	return A3(
6922		$elm$core$List$foldl,
6923		F2(
6924			function (_v0, a) {
6925				var fn = _v0;
6926				return fn(a);
6927			}),
6928		$author$project$W$Divider$defaultAttrs,
6929		attrs);
6930};
6931var $elm$html$Html$hr = _VirtualDom_node('hr');
6932var $elm$core$List$isEmpty = function (xs) {
6933	if (!xs.b) {
6934		return true;
6935	} else {
6936		return false;
6937	}
6938};
6939var $elm$core$List$maybeCons = F3(
6940	function (f, mx, xs) {
6941		var _v0 = f(mx);
6942		if (!_v0.$) {
6943			var x = _v0.a;
6944			return A2($elm$core$List$cons, x, xs);
6945		} else {
6946			return xs;
6947		}
6948	});
6949var $elm$core$List$filterMap = F2(
6950	function (f, xs) {
6951		return A3(
6952			$elm$core$List$foldr,
6953			$elm$core$List$maybeCons(f),
6954			_List_Nil,
6955			xs);
6956	});
6957var $uncover_co$elm_theme$Theme$stylesIf = function (xs) {
6958	return A2(
6959		$elm$html$Html$Attributes$attribute,
6960		'style',
6961		A2(
6962			$elm$core$String$join,
6963			';',
6964			A2(
6965				$elm$core$List$filterMap,
6966				function (_v0) {
6967					var k = _v0.a;
6968					var v = _v0.b;
6969					var f = _v0.c;
6970					return f ? $elm$core$Maybe$Just(k + (':' + v)) : $elm$core$Maybe$Nothing;
6971				},
6972				xs)));
6973};
6974var $author$project$W$Divider$view = F2(
6975	function (attrs_, children) {
6976		var attrs = $author$project$W$Divider$applyAttrs(attrs_);
6977		return $elm$core$List$isEmpty(children) ? A2(
6978			$elm$html$Html$hr,
6979			_List_fromArray(
6980				[
6981					$elm$html$Html$Attributes$class('ew-self-stretch ew-border-solid ew-border-0 ew-m-0 ew-outline-0 ew-shadow-none ew-appearance-none'),
6982					$elm$html$Html$Attributes$classList(
6983					_List_fromArray(
6984						[
6985							_Utils_Tuple2('ew-border-t-2', !attrs.I),
6986							_Utils_Tuple2('ew-border-l-2', attrs.I)
6987						])),
6988					$uncover_co$elm_theme$Theme$stylesIf(
6989					_List_fromArray(
6990						[
6991							_Utils_Tuple3('border-color', attrs.U, true),
6992							_Utils_Tuple3(
6993							'margin',
6994							'0 ' + ($elm$core$String$fromInt(attrs.an) + 'px'),
6995							attrs.I),
6996							_Utils_Tuple3(
6997							'margin',
6998							$elm$core$String$fromInt(attrs.an) + 'px 0',
6999							!attrs.I)
7000						]))
7001				]),
7002			_List_Nil) : A2(
7003			$elm$html$Html$div,
7004			_List_fromArray(
7005				[
7006					$elm$html$Html$Attributes$class('ew-self-stretch ew-flex ew-items-center ew-justify-center ew-gap-1.5 ew-leading-none'),
7007					$elm$html$Html$Attributes$class('ew-font-text ew-text-sm'),
7008					$elm$html$Html$Attributes$class('before:ew-content-[\'\'] before:ew-block before:ew-grow'),
7009					$elm$html$Html$Attributes$class('after:ew-content-[\'\'] after:ew-block after:ew-grow'),
7010					$elm$html$Html$Attributes$class('before:ew-bg-current after:ew-bg-current'),
7011					$elm$html$Html$Attributes$classList(
7012					_List_fromArray(
7013						[
7014							_Utils_Tuple2('before:ew-h-0.5 after:ew-h-0.5', !attrs.I),
7015							_Utils_Tuple2('ew-flex-col before:ew-w-0.5 after:ew-w-0.5', attrs.I)
7016						])),
7017					$uncover_co$elm_theme$Theme$stylesIf(
7018					_List_fromArray(
7019						[
7020							_Utils_Tuple3('color', attrs.U, true),
7021							_Utils_Tuple3(
7022							'width',
7023							$elm$core$String$fromInt((attrs.an * 2) + 2) + 'px',
7024							attrs.I),
7025							_Utils_Tuple3(
7026							'height',
7027							$elm$core$String$fromInt((attrs.an * 2) + 2) + 'px',
7028							!attrs.I)
7029						]))
7030				]),
7031			_List_fromArray(
7032				[
7033					A2(
7034					$elm$html$Html$span,
7035					_List_fromArray(
7036						[
7037							$elm$html$Html$Attributes$class('ew-text-base-fg')
7038						]),
7039					children)
7040				]));
7041	});
7042var $author$project$Chapters$Core$Divider$chapter_ = A2(
7043	$dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList,
7044	'\nDividers can be used in a variety of ways to split sections of your content horizontally or vertically. You can also pass in a child element to be displayed as a label of your divider.\n',
7045	A2(
7046		$dtwrks$elm_book$ElmBook$Chapter$withComponentList,
7047		_List_fromArray(
7048			[
7049				_Utils_Tuple2(
7050				'Horizontal',
7051				A2(
7052					$elm$html$Html$div,
7053					_List_Nil,
7054					_List_fromArray(
7055						[
7056							A2(
7057							$author$project$W$Divider$view,
7058							_List_fromArray(
7059								[
7060									$author$project$W$Divider$margins(16)
7061								]),
7062							_List_Nil),
7063							A2(
7064							$author$project$W$Divider$view,
7065							_List_fromArray(
7066								[
7067									$author$project$W$Divider$margins(16)
7068								]),
7069							_List_fromArray(
7070								[
7071									$elm$html$Html$text('or')
7072								])),
7073							A2(
7074							$author$project$W$Divider$view,
7075							_List_fromArray(
7076								[
7077									$author$project$W$Divider$margins(16),
7078									$author$project$W$Divider$color(
7079									$uncover_co$elm_theme$Theme$primaryForegroundWithAlpha(0.1))
7080								]),
7081							_List_fromArray(
7082								[
7083									$elm$html$Html$text('or')
7084								]))
7085						]))),
7086				_Utils_Tuple2(
7087				'Vertical',
7088				A2(
7089					$elm$html$Html$div,
7090					_List_fromArray(
7091						[
7092							A2($elm$html$Html$Attributes$style, 'height', '40px'),
7093							A2($elm$html$Html$Attributes$style, 'display', 'flex'),
7094							A2($elm$html$Html$Attributes$style, 'justify-content', 'space-around')
7095						]),
7096					_List_fromArray(
7097						[
7098							A2(
7099							$author$project$W$Divider$view,
7100							_List_fromArray(
7101								[$author$project$W$Divider$vertical]),
7102							_List_Nil),
7103							A2(
7104							$author$project$W$Divider$view,
7105							_List_fromArray(
7106								[$author$project$W$Divider$vertical]),
7107							_List_Nil),
7108							A2(
7109							$author$project$W$Divider$view,
7110							_List_fromArray(
7111								[$author$project$W$Divider$vertical]),
7112							_List_fromArray(
7113								[
7114									$elm$html$Html$text('or')
7115								])),
7116							A2(
7117							$author$project$W$Divider$view,
7118							_List_fromArray(
7119								[
7120									$author$project$W$Divider$vertical,
7121									$author$project$W$Divider$color(
7122									$uncover_co$elm_theme$Theme$primaryForegroundWithAlpha(0.1))
7123								]),
7124							_List_Nil)
7125						])))
7126			]),
7127		$dtwrks$elm_book$ElmBook$Chapter$chapter('Divider')));
7128var $author$project$W$Text$Attribute = $elm$core$Basics$identity;
7129var $author$project$W$Text$aux = function (attrs) {
7130	return _Utils_update(
7131		attrs,
7132		{U: $uncover_co$elm_theme$Theme$baseAux});
7133};
7134var $author$project$W$Heading$Attribute = $elm$core$Basics$identity;
7135var $author$project$W$Heading$extraLarge = function (attrs) {
7136	return _Utils_update(
7137		attrs,
7138		{fp: 'ew-text-5xl'});
7139};
7140var $author$project$W$Text$extraLarge = function (attrs) {
7141	return _Utils_update(
7142		attrs,
7143		{fp: 'ew-text-2xl'});
7144};
7145var $author$project$W$Heading$h2 = function (attrs) {
7146	return _Utils_update(
7147		attrs,
7148		{ac: 'h2'});
7149};
7150var $author$project$W$Heading$large = function (attrs) {
7151	return _Utils_update(
7152		attrs,
7153		{fp: 'ew-text-4xl'});
7154};
7155var $author$project$W$Text$large = function (attrs) {
7156	return _Utils_update(
7157		attrs,
7158		{fp: 'ew-text-xl'});
7159};
7160var $dtwrks$elm_book$ElmBook$Chapter$renderComponentList = F2(
7161	function (componentList, _v0) {
7162		var builder = _v0;
7163		return _Utils_update(
7164			builder,
7165			{
7166				fe: builder.fe + '<component-list />',
7167				m: _Utils_ap(
7168					A2($elm$core$List$map, $dtwrks$elm_book$ElmBook$Chapter$fromTuple, componentList),
7169					builder.m)
7170			});
7171	});
7172var $author$project$W$Heading$small = function (attrs) {
7173	return _Utils_update(
7174		attrs,
7175		{fp: 'ew-text-xl'});
7176};
7177var $author$project$W$Text$small = function (attrs) {
7178	return _Utils_update(
7179		attrs,
7180		{fp: 'ew-text-sm'});
7181};
7182var $uncover_co$elm_theme$Theme$baseForeground = $uncover_co$elm_theme$Theme$cssVar('base-fg');
7183var $author$project$W$Heading$defaultAttrs = {U: $uncover_co$elm_theme$Theme$baseForeground, ac: 'h1', c6: 'ew-font-heading', fp: 'ew-text-2xl', b$: _List_Nil, aX: 'ew-text-left'};
7184var $author$project$W$Heading$applyAttrs = function (attrs) {
7185	return A3(
7186		$elm$core$List$foldl,
7187		F2(
7188			function (_v0, a) {
7189				var fn = _v0;
7190				return fn(a);
7191			}),
7192		$author$project$W$Heading$defaultAttrs,
7193		attrs);
7194};
7195var $author$project$W$Internal$Helpers$styles = function (xs) {
7196	return A2(
7197		$elm$html$Html$Attributes$attribute,
7198		'style',
7199		A2(
7200			$elm$core$String$join,
7201			';',
7202			A2(
7203				$elm$core$List$map,
7204				function (_v0) {
7205					var k = _v0.a;
7206					var v = _v0.b;
7207					return k + (':' + v);
7208				},
7209				xs)));
7210};
7211var $author$project$W$Heading$view = F2(
7212	function (attrs_, children) {
7213		var attrs = $author$project$W$Heading$applyAttrs(attrs_);
7214		return A3(
7215			$elm$html$Html$node,
7216			attrs.ac,
7217			_Utils_ap(
7218				attrs.b$,
7219				_List_fromArray(
7220					[
7221						$elm$html$Html$Attributes$class('ew-m-0'),
7222						$elm$html$Html$Attributes$class(attrs.fp),
7223						$elm$html$Html$Attributes$class(attrs.c6),
7224						$elm$html$Html$Attributes$class(attrs.aX),
7225						$author$project$W$Internal$Helpers$styles(
7226						_List_fromArray(
7227							[
7228								_Utils_Tuple2('color', attrs.U)
7229							]))
7230					])),
7231			children);
7232	});
7233var $author$project$W$Text$defaultAttrs = {F: '', U: $uncover_co$elm_theme$Theme$baseForeground, ac: 'p', fp: 'ew-text-base', b$: _List_Nil, aX: 'ew-text-left'};
7234var $author$project$W$Text$applyAttrs = function (attrs) {
7235	return A3(
7236		$elm$core$List$foldl,
7237		F2(
7238			function (_v0, a) {
7239				var fn = _v0;
7240				return fn(a);
7241			}),
7242		$author$project$W$Text$defaultAttrs,
7243		attrs);
7244};
7245var $author$project$W$Text$view = F2(
7246	function (attrs_, children) {
7247		var attrs = $author$project$W$Text$applyAttrs(attrs_);
7248		return A3(
7249			$elm$html$Html$node,
7250			attrs.ac,
7251			_Utils_ap(
7252				attrs.b$,
7253				_List_fromArray(
7254					[
7255						$elm$html$Html$Attributes$class('ew-font-text ew-m-0'),
7256						$elm$html$Html$Attributes$class(attrs.F),
7257						$elm$html$Html$Attributes$class(attrs.fp),
7258						$elm$html$Html$Attributes$class(attrs.aX),
7259						$author$project$W$Internal$Helpers$styles(
7260						_List_fromArray(
7261							[
7262								_Utils_Tuple2('color', attrs.U)
7263							]))
7264					])),
7265			children);
7266	});
7267var $author$project$Chapters$Core$Heading$chapter_ = A2(
7268	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
7269	_List_fromArray(
7270		[
7271			_Utils_Tuple2(
7272			'Font Sizes',
7273			A2(
7274				$elm$html$Html$div,
7275				_List_Nil,
7276				_List_fromArray(
7277					[
7278						A2(
7279						$author$project$W$Heading$view,
7280						_List_fromArray(
7281							[$author$project$W$Heading$extraLarge]),
7282						_List_fromArray(
7283							[
7284								$elm$html$Html$text('I\'m a really large title')
7285							])),
7286						A2(
7287						$author$project$W$Text$view,
7288						_List_fromArray(
7289							[$author$project$W$Text$extraLarge, $author$project$W$Text$aux]),
7290						_List_fromArray(
7291							[
7292								$elm$html$Html$text('I\'m a really large text')
7293							])),
7294						A2(
7295						$author$project$W$Heading$view,
7296						_List_fromArray(
7297							[$author$project$W$Heading$h2, $author$project$W$Heading$large]),
7298						_List_fromArray(
7299							[
7300								$elm$html$Html$text('I\'m a large title')
7301							])),
7302						A2(
7303						$author$project$W$Text$view,
7304						_List_fromArray(
7305							[$author$project$W$Text$large, $author$project$W$Text$aux]),
7306						_List_fromArray(
7307							[
7308								$elm$html$Html$text('I\'m a large text')
7309							])),
7310						A2(
7311						$author$project$W$Heading$view,
7312						_List_Nil,
7313						_List_fromArray(
7314							[
7315								$elm$html$Html$text('I\'m the base title')
7316							])),
7317						A2(
7318						$author$project$W$Text$view,
7319						_List_fromArray(
7320							[$author$project$W$Text$aux]),
7321						_List_fromArray(
7322							[
7323								$elm$html$Html$text('I\'m the base text')
7324							])),
7325						A2(
7326						$author$project$W$Heading$view,
7327						_List_fromArray(
7328							[$author$project$W$Heading$small]),
7329						_List_fromArray(
7330							[
7331								$elm$html$Html$text('I\'m a small title')
7332							])),
7333						A2(
7334						$author$project$W$Text$view,
7335						_List_fromArray(
7336							[$author$project$W$Text$small, $author$project$W$Text$aux]),
7337						_List_fromArray(
7338							[
7339								$elm$html$Html$text('I\'m a small text')
7340							]))
7341					]))),
7342			_Utils_Tuple2(
7343			'Font Sizes',
7344			A2(
7345				$elm$html$Html$div,
7346				_List_Nil,
7347				_List_fromArray(
7348					[
7349						A2(
7350						$author$project$W$Text$view,
7351						_List_fromArray(
7352							[$author$project$W$Text$extraLarge, $author$project$W$Text$aux]),
7353						_List_fromArray(
7354							[
7355								$elm$html$Html$text('I\'m a large text')
7356							])),
7357						A2(
7358						$author$project$W$Text$view,
7359						_List_fromArray(
7360							[$author$project$W$Text$large, $author$project$W$Text$aux]),
7361						_List_fromArray(
7362							[
7363								$elm$html$Html$text('I\'m a large text')
7364							])),
7365						A2(
7366						$author$project$W$Text$view,
7367						_List_fromArray(
7368							[$author$project$W$Text$aux]),
7369						_List_fromArray(
7370							[
7371								$elm$html$Html$text('I\'m the base text')
7372							])),
7373						A2(
7374						$author$project$W$Text$view,
7375						_List_fromArray(
7376							[$author$project$W$Text$small, $author$project$W$Text$aux]),
7377						_List_fromArray(
7378							[
7379								$elm$html$Html$text('I\'m a small text')
7380							]))
7381					]))),
7382			_Utils_Tuple2(
7383			'Large',
7384			A2(
7385				$author$project$W$Heading$view,
7386				_List_fromArray(
7387					[$author$project$W$Heading$large]),
7388				_List_fromArray(
7389					[
7390						$elm$html$Html$text('I\'m a title')
7391					]))),
7392			_Utils_Tuple2(
7393			'Small',
7394			A2(
7395				$author$project$W$Heading$view,
7396				_List_fromArray(
7397					[$author$project$W$Heading$small]),
7398				_List_fromArray(
7399					[
7400						$elm$html$Html$text('I\'m a title')
7401					])))
7402		]),
7403	$dtwrks$elm_book$ElmBook$Chapter$chapter('Typography'));
7404var $elm$svg$Svg$trustedNode = _VirtualDom_nodeNS('http://www.w3.org/2000/svg');
7405var $elm$svg$Svg$animateTransform = $elm$svg$Svg$trustedNode('animateTransform');
7406var $author$project$W$Loading$defaultAttrs = {U: $uncover_co$elm_theme$Theme$baseAux, b$: _List_Nil, n: 25};
7407var $author$project$W$Loading$applyAttrs = function (attrs) {
7408	return A3(
7409		$elm$core$List$foldl,
7410		F2(
7411			function (_v0, a) {
7412				var fn = _v0;
7413				return fn(a);
7414			}),
7415		$author$project$W$Loading$defaultAttrs,
7416		attrs);
7417};
7418var $elm$svg$Svg$Attributes$attributeName = _VirtualDom_attribute('attributeName');
7419var $elm$svg$Svg$Attributes$attributeType = _VirtualDom_attribute('attributeType');
7420var $elm$svg$Svg$Attributes$class = _VirtualDom_attribute('class');
7421var $elm$svg$Svg$Attributes$d = _VirtualDom_attribute('d');
7422var $elm$svg$Svg$Attributes$dur = _VirtualDom_attribute('dur');
7423var $elm$svg$Svg$Attributes$fill = _VirtualDom_attribute('fill');
7424var $elm$svg$Svg$Attributes$from = function (value) {
7425	return A2(
7426		_VirtualDom_attribute,
7427		'from',
7428		_VirtualDom_noJavaScriptUri(value));
7429};
7430var $elm$svg$Svg$Attributes$height = _VirtualDom_attribute('height');
7431var $elm$svg$Svg$Attributes$opacity = _VirtualDom_attribute('opacity');
7432var $elm$svg$Svg$path = $elm$svg$Svg$trustedNode('path');
7433var $elm$svg$Svg$Attributes$repeatCount = _VirtualDom_attribute('repeatCount');
7434var $elm$svg$Svg$Attributes$style = _VirtualDom_attribute('style');
7435var $elm$svg$Svg$svg = $elm$svg$Svg$trustedNode('svg');
7436var $elm$svg$Svg$Attributes$to = function (value) {
7437	return A2(
7438		_VirtualDom_attribute,
7439		'to',
7440		_VirtualDom_noJavaScriptUri(value));
7441};
7442var $elm$svg$Svg$Attributes$type_ = _VirtualDom_attribute('type');
7443var $elm$svg$Svg$Attributes$viewBox = _VirtualDom_attribute('viewBox');
7444var $elm$svg$Svg$Attributes$width = _VirtualDom_attribute('width');
7445var $elm$svg$Svg$Attributes$xmlSpace = A2(_VirtualDom_attributeNS, 'http://www.w3.org/XML/1998/namespace', 'xml:space');
7446var $author$project$W$Loading$circles = function (attrs_) {
7447	var attrs = $author$project$W$Loading$applyAttrs(attrs_);
7448	return A2(
7449		$elm$svg$Svg$svg,
7450		_Utils_ap(
7451			attrs.b$,
7452			_List_fromArray(
7453				[
7454					$elm$svg$Svg$Attributes$style('--color: ' + attrs.U),
7455					$elm$svg$Svg$Attributes$class('ew-loading-circle'),
7456					$elm$svg$Svg$Attributes$viewBox('0 0 40 40'),
7457					$elm$svg$Svg$Attributes$height(
7458					$elm$core$String$fromFloat(attrs.n) + 'px'),
7459					$elm$svg$Svg$Attributes$width(
7460					$elm$core$String$fromFloat(attrs.n) + 'px'),
7461					$elm$svg$Svg$Attributes$xmlSpace('preserve')
7462				])),
7463		_List_fromArray(
7464			[
7465				A2(
7466				$elm$svg$Svg$path,
7467				_List_fromArray(
7468					[
7469						$elm$svg$Svg$Attributes$fill('var(--color)'),
7470						$elm$svg$Svg$Attributes$opacity('0.2'),
7471						$elm$svg$Svg$Attributes$d('M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946 s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634 c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z')
7472					]),
7473				_List_Nil),
7474				A2(
7475				$elm$svg$Svg$path,
7476				_List_fromArray(
7477					[
7478						$elm$svg$Svg$Attributes$fill('var(--color)'),
7479						$elm$svg$Svg$Attributes$d('M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0 C22.32,8.481,24.301,9.057,26.013,10.047z')
7480					]),
7481				_List_fromArray(
7482					[
7483						A2(
7484						$elm$svg$Svg$animateTransform,
7485						_List_fromArray(
7486							[
7487								$elm$svg$Svg$Attributes$attributeType('xml'),
7488								$elm$svg$Svg$Attributes$attributeName('transform'),
7489								$elm$svg$Svg$Attributes$type_('rotate'),
7490								$elm$svg$Svg$Attributes$from('0 20 20'),
7491								$elm$svg$Svg$Attributes$to('360 20 20'),
7492								$elm$svg$Svg$Attributes$dur('1.2s'),
7493								$elm$svg$Svg$Attributes$repeatCount('indefinite')
7494							]),
7495						_List_Nil)
7496					]))
7497			]));
7498};
7499var $author$project$W$Loading$Attribute = $elm$core$Basics$identity;
7500var $author$project$W$Loading$color = function (v) {
7501	return function (attrs) {
7502		return _Utils_update(
7503			attrs,
7504			{U: v});
7505	};
7506};
7507var $author$project$W$Loading$dots = function (attrs_) {
7508	var attrs = $author$project$W$Loading$applyAttrs(attrs_);
7509	return A2(
7510		$elm$html$Html$div,
7511		_Utils_ap(
7512			attrs.b$,
7513			_List_fromArray(
7514				[
7515					$elm$html$Html$Attributes$class('ew-loading-dots'),
7516					$author$project$W$Internal$Helpers$styles(
7517					_List_fromArray(
7518						[
7519							_Utils_Tuple2('--color', attrs.U),
7520							_Utils_Tuple2(
7521							'--size',
7522							$elm$core$String$fromFloat(attrs.n) + 'px')
7523						]))
7524				])),
7525		_List_fromArray(
7526			[
7527				A2($elm$html$Html$div, _List_Nil, _List_Nil),
7528				A2($elm$html$Html$div, _List_Nil, _List_Nil),
7529				A2($elm$html$Html$div, _List_Nil, _List_Nil),
7530				A2($elm$html$Html$div, _List_Nil, _List_Nil)
7531			]));
7532};
7533var $author$project$W$Loading$ripples = function (attrs_) {
7534	var attrs = $author$project$W$Loading$applyAttrs(attrs_);
7535	return A2(
7536		$elm$html$Html$div,
7537		_Utils_ap(
7538			attrs.b$,
7539			_List_fromArray(
7540				[
7541					$elm$html$Html$Attributes$class('ew-loading-ripples'),
7542					$author$project$W$Internal$Helpers$styles(
7543					_List_fromArray(
7544						[
7545							_Utils_Tuple2(
7546							'--size',
7547							$elm$core$String$fromFloat(attrs.n) + 'px'),
7548							_Utils_Tuple2('--color', attrs.U)
7549						]))
7550				])),
7551		_List_fromArray(
7552			[
7553				A2($elm$html$Html$div, _List_Nil, _List_Nil),
7554				A2($elm$html$Html$div, _List_Nil, _List_Nil)
7555			]));
7556};
7557var $author$project$W$Loading$size = function (v) {
7558	return function (attrs) {
7559		return _Utils_update(
7560			attrs,
7561			{n: v});
7562	};
7563};
7564var $author$project$Chapters$Core$Loading$chapter_ = A2(
7565	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
7566	_List_fromArray(
7567		[
7568			_Utils_Tuple2(
7569			'Circles',
7570			$author$project$W$Loading$circles(_List_Nil)),
7571			_Utils_Tuple2(
7572			'Circles with Custom Size and Color',
7573			$author$project$W$Loading$circles(
7574				_List_fromArray(
7575					[
7576						$author$project$W$Loading$size(40),
7577						$author$project$W$Loading$color('#48CB82')
7578					]))),
7579			_Utils_Tuple2(
7580			'Dots',
7581			$author$project$W$Loading$dots(_List_Nil)),
7582			_Utils_Tuple2(
7583			'Dots with Custom Size and Color',
7584			$author$project$W$Loading$dots(
7585				_List_fromArray(
7586					[
7587						$author$project$W$Loading$size(40),
7588						$author$project$W$Loading$color('#48CB82')
7589					]))),
7590			_Utils_Tuple2(
7591			'Ripples',
7592			$author$project$W$Loading$ripples(_List_Nil)),
7593			_Utils_Tuple2(
7594			'Ripples with Custom Size and Color',
7595			$author$project$W$Loading$ripples(
7596				_List_fromArray(
7597					[
7598						$author$project$W$Loading$size(40),
7599						$author$project$W$Loading$color('#48CB82')
7600					])))
7601		]),
7602	$dtwrks$elm_book$ElmBook$Chapter$chapter('Loading'));
7603var $author$project$W$InputField$Attribute = $elm$core$Basics$identity;
7604var $author$project$W$InputField$alignRight = function (v) {
7605	return function (attrs) {
7606		return _Utils_update(
7607			attrs,
7608			{bD: v});
7609	};
7610};
7611var $author$project$W$InputField$hint = function (v) {
7612	return function (attrs) {
7613		return _Utils_update(
7614			attrs,
7615			{
7616				a9: $elm$core$Maybe$Just(v)
7617			});
7618	};
7619};
7620var $dtwrks$elm_book$ElmBook$Actions$logActionWithString = $dtwrks$elm_book$ElmBook$Actions$logActionWith($elm$core$Basics$identity);
7621var $author$project$W$InputField$padding = function (v) {
7622	return function (attrs) {
7623		return _Utils_update(
7624			attrs,
7625			{
7626				W: $elm$core$Maybe$Just(
7627					{dZ: v, d_: v})
7628			});
7629	};
7630};
7631var $author$project$W$InputText$Attribute = $elm$core$Basics$identity;
7632var $author$project$W$InputText$placeholder = function (v) {
7633	return function (attrs) {
7634		return _Utils_update(
7635			attrs,
7636			{
7637				gb: $elm$core$Maybe$Just(v)
7638			});
7639	};
7640};
7641var $author$project$W$InputSlider$Attribute = $elm$core$Basics$identity;
7642var $author$project$W$InputSlider$readOnly = function (v) {
7643	return function (attrs) {
7644		return _Utils_update(
7645			attrs,
7646			{ah: v});
7647	};
7648};
7649var $author$project$W$InputField$defaultAttrs = {
7650	bD: false,
7651	a9: $elm$core$Maybe$Nothing,
7652	b$: _List_Nil,
7653	W: $elm$core$Maybe$Just(
7654		{dZ: 16, d_: 16})
7655};
7656var $author$project$W$InputField$applyAttrs = function (attrs) {
7657	return A3(
7658		$elm$core$List$foldl,
7659		F2(
7660			function (_v0, a) {
7661				var fn = _v0;
7662				return fn(a);
7663			}),
7664		$author$project$W$InputField$defaultAttrs,
7665		attrs);
7666};
7667var $elm$core$Basics$composeL = F3(
7668	function (g, f, x) {
7669		return g(
7670			f(x));
7671	});
7672var $elm$html$Html$h1 = _VirtualDom_node('h1');
7673var $elm$core$Maybe$map = F2(
7674	function (f, maybe) {
7675		if (!maybe.$) {
7676			var value = maybe.a;
7677			return $elm$core$Maybe$Just(
7678				f(value));
7679		} else {
7680			return $elm$core$Maybe$Nothing;
7681		}
7682	});
7683var $elm$core$Maybe$withDefault = F2(
7684	function (_default, maybe) {
7685		if (!maybe.$) {
7686			var value = maybe.a;
7687			return value;
7688		} else {
7689			return _default;
7690		}
7691	});
7692var $author$project$W$Internal$Helpers$maybeAttr = F2(
7693	function (fn, a) {
7694		return A2(
7695			$elm$core$Maybe$withDefault,
7696			$elm$html$Html$Attributes$class(''),
7697			A2($elm$core$Maybe$map, fn, a));
7698	});
7699var $elm$html$Html$p = _VirtualDom_node('p');
7700var $author$project$W$Internal$Helpers$formatPx = function (value) {
7701	return $elm$core$String$fromInt(value) + 'px';
7702};
7703var $author$project$W$Internal$Helpers$paddingXY = function (_v0) {
7704	var x = _v0.dZ;
7705	var y = _v0.d_;
7706	return $author$project$W$Internal$Helpers$formatPx(y) + (' ' + $author$project$W$Internal$Helpers$formatPx(x));
7707};
7708var $elm$html$Html$section = _VirtualDom_node('section');
7709var $author$project$W$InputField$view = F2(
7710	function (attrs_, props) {
7711		var attrs = $author$project$W$InputField$applyAttrs(attrs_);
7712		return A2(
7713			$elm$html$Html$section,
7714			A2(
7715				$elm$core$List$cons,
7716				$elm$html$Html$Attributes$class('ew-bg-base-bg ew-font-text'),
7717				A2(
7718					$elm$core$List$cons,
7719					A2(
7720						$author$project$W$Internal$Helpers$maybeAttr,
7721						A2(
7722							$elm$core$Basics$composeL,
7723							$elm$html$Html$Attributes$style('padding'),
7724							$author$project$W$Internal$Helpers$paddingXY),
7725						attrs.W),
7726					attrs.b$)),
7727			attrs.bD ? _List_fromArray(
7728				[
7729					A2(
7730					$elm$html$Html$div,
7731					_List_fromArray(
7732						[
7733							$elm$html$Html$Attributes$class('ew-flex ew-items-start')
7734						]),
7735					_List_fromArray(
7736						[
7737							A2(
7738							$elm$html$Html$div,
7739							_List_fromArray(
7740								[
7741									$elm$html$Html$Attributes$class('ew-flex ew-flex-col ew-justify-center'),
7742									$elm$html$Html$Attributes$class('ew-w-[40%]'),
7743									$elm$html$Html$Attributes$class('ew-box-border ew-pr-4 ew-min-h-[50px]')
7744								]),
7745							_List_fromArray(
7746								[
7747									A2(
7748									$elm$html$Html$h1,
7749									_List_fromArray(
7750										[
7751											$elm$html$Html$Attributes$class('ew-m-0 ew-font-normal ew-text-base ew-font-text ew-text-base-fg')
7752										]),
7753									props.aK),
7754									A2(
7755									$elm$core$Maybe$withDefault,
7756									$elm$html$Html$text(''),
7757									A2(
7758										$elm$core$Maybe$map,
7759										function (f) {
7760											return A2(
7761												$elm$html$Html$p,
7762												_List_fromArray(
7763													[
7764														$elm$html$Html$Attributes$class('ew-m-0 ew-text-base-aux ew-text-sm ew-font-text ew-text-aux')
7765													]),
7766												f);
7767										},
7768										attrs.a9))
7769								])),
7770							A2(
7771							$elm$html$Html$div,
7772							_List_fromArray(
7773								[
7774									$elm$html$Html$Attributes$class('ew-w-[60%]')
7775								]),
7776							props.en)
7777						]))
7778				]) : _List_fromArray(
7779				[
7780					A2(
7781					$elm$html$Html$div,
7782					_List_fromArray(
7783						[
7784							$elm$html$Html$Attributes$class('ew-pb-2')
7785						]),
7786					_List_fromArray(
7787						[
7788							A2(
7789							$elm$html$Html$h1,
7790							_List_fromArray(
7791								[
7792									$elm$html$Html$Attributes$class('ew-m-0 ew-font-normal ew-text-sm ew-font-text ew-text-base-fg')
7793								]),
7794							props.aK),
7795							A2(
7796							$elm$core$Maybe$withDefault,
7797							$elm$html$Html$text(''),
7798							A2(
7799								$elm$core$Maybe$map,
7800								function (f) {
7801									return A2(
7802										$elm$html$Html$p,
7803										_List_fromArray(
7804											[
7805												$elm$html$Html$Attributes$class('ew-m-0 ew-text-base-aux ew-text-xs ew-font-text ew-text-aux')
7806											]),
7807										f);
7808								},
7809								attrs.a9))
7810						])),
7811					A2($elm$html$Html$div, _List_Nil, props.en)
7812				]));
7813	});
7814var $author$project$W$InputRadio$defaultAttrs = {U: 'var(--theme-primary-bg)', bV: false, b$: _List_Nil, ah: false, aV: false, I: false};
7815var $author$project$W$InputRadio$applyAttrs = function (attrs) {
7816	return A3(
7817		$elm$core$List$foldl,
7818		F2(
7819			function (_v0, a) {
7820				var fn = _v0;
7821				return fn(a);
7822			}),
7823		$author$project$W$InputRadio$defaultAttrs,
7824		attrs);
7825};
7826var $elm$html$Html$Attributes$checked = $elm$html$Html$Attributes$boolProperty('checked');
7827var $elm$html$Html$Attributes$id = $elm$html$Html$Attributes$stringProperty('id');
7828var $elm$html$Html$input = _VirtualDom_node('input');
7829var $elm$html$Html$label = _VirtualDom_node('label');
7830var $elm$html$Html$Attributes$name = $elm$html$Html$Attributes$stringProperty('name');
7831var $elm$json$Json$Decode$field = _Json_decodeField;
7832var $elm$json$Json$Decode$at = F2(
7833	function (fields, decoder) {
7834		return A3($elm$core$List$foldr, $elm$json$Json$Decode$field, decoder, fields);
7835	});
7836var $elm$json$Json$Decode$bool = _Json_decodeBool;
7837var $elm$html$Html$Events$targetChecked = A2(
7838	$elm$json$Json$Decode$at,
7839	_List_fromArray(
7840		['target', 'checked']),
7841	$elm$json$Json$Decode$bool);
7842var $elm$html$Html$Events$onCheck = function (tagger) {
7843	return A2(
7844		$elm$html$Html$Events$on,
7845		'change',
7846		A2($elm$json$Json$Decode$map, tagger, $elm$html$Html$Events$targetChecked));
7847};
7848var $elm$html$Html$Attributes$readonly = $elm$html$Html$Attributes$boolProperty('readOnly');
7849var $elm$html$Html$Attributes$value = $elm$html$Html$Attributes$stringProperty('value');
7850var $author$project$W$InputRadio$view = F2(
7851	function (attrs_, props) {
7852		var attrs = $author$project$W$InputRadio$applyAttrs(attrs_);
7853		return A2(
7854			$elm$html$Html$div,
7855			_List_fromArray(
7856				[
7857					$elm$html$Html$Attributes$id(props.fE),
7858					$elm$html$Html$Attributes$class('ew-flex'),
7859					$elm$html$Html$Attributes$classList(
7860					_List_fromArray(
7861						[
7862							_Utils_Tuple2('ew-flex-col', attrs.I),
7863							_Utils_Tuple2('ew-gap-6', (!attrs.aV) || (!attrs.I)),
7864							_Utils_Tuple2('ew-gap-4', attrs.aV && attrs.I)
7865						]))
7866				]),
7867			A2(
7868				$elm$core$List$map,
7869				function (a) {
7870					return A2(
7871						$elm$html$Html$label,
7872						_List_fromArray(
7873							[
7874								$elm$html$Html$Attributes$name(props.fE),
7875								$elm$html$Html$Attributes$class('ew-inline-flex ew-items-center ew-p-0')
7876							]),
7877						_List_fromArray(
7878							[
7879								A2(
7880								$elm$html$Html$input,
7881								_Utils_ap(
7882									attrs.b$,
7883									_List_fromArray(
7884										[
7885											$elm$html$Html$Attributes$class('ew-radio ew-rounded-full before:ew-rounded-full'),
7886											$elm$html$Html$Attributes$type_('radio'),
7887											$elm$html$Html$Attributes$name(props.fE),
7888											$elm$html$Html$Attributes$value(
7889											props.gw(a)),
7890											$elm$html$Html$Attributes$checked(
7891											_Utils_eq(a, props.cN)),
7892											$elm$html$Html$Attributes$classList(
7893											_List_fromArray(
7894												[
7895													_Utils_Tuple2('ew-small', attrs.aV)
7896												])),
7897											$uncover_co$elm_theme$Theme$stylesIf(
7898											_List_fromArray(
7899												[
7900													_Utils_Tuple3('color', attrs.U, !attrs.bV),
7901													_Utils_Tuple3('color', $uncover_co$elm_theme$Theme$baseBackgroun
7901d, attrs.bV)
7902												])),
7903											$elm$html$Html$Attributes$disabled(attrs.bV || attrs.ah),
7904											$elm$html$Html$Attributes$readonly(attrs.ah),
7905											$elm$html$Html$Events$onCheck(
7906											function (_v0) {
7907												return props.cm(a);
7908											})
7909										])),
7910								_List_Nil),
7911								A2(
7912								$elm$html$Html$span,
7913								_List_fromArray(
7914									[
7915										$elm$html$Html$Attributes$class('ew-font-text ew-text-base-fg ew-pl-3')
7916									]),
7917								_List_fromArray(
7918									[
7919										$elm$html$Html$text(
7920										props.u(a))
7921									]))
7922							]));
7923				},
7924				props.f9));
7925	});
7926var $elm$json$Json$Decode$andThen = _Json_andThen;
7927var $author$project$W$InputSlider$defaultAttrs = {U: $uncover_co$elm_theme$Theme$primaryBackground, bV: false, ed: $elm$core$String$fromFloat, b$: _List_Nil, ah: false};
7928var $author$project$W$InputSlider$applyAttrs = function (attrs) {
7929	return A3(
7930		$elm$core$List$foldl,
7931		F2(
7932			function (_v0, a) {
7933				var fn = _v0;
7934				return fn(a);
7935			}),
7936		$author$project$W$InputSlider$defaultAttrs,
7937		attrs);
7938};
7939var $elm$json$Json$Decode$fail = _Json_fail;
7940var $elm$html$Html$Attributes$max = $elm$html$Html$Attributes$stringProperty('max');
7941var $elm$html$Html$Attributes$min = $elm$html$Html$Attributes$stringProperty('min');
7942var $elm$html$Html$Attributes$step = function (n) {
7943	return A2($elm$html$Html$Attributes$stringProperty, 'step', n);
7944};
7945var $elm$json$Json$Decode$string = _Json_decodeString;
7946var $elm$core$String$toFloat = _String_toFloat;
7947var $author$project$W$InputSlider$view = F2(
7948	function (attrs_, props) {
7949		var valueString = function (s) {
7950			return s + '%';
7951		}(
7952			$elm$core$String$fromFloat(100 * ((props.cN - props.fX) / (props.fS - props.fX))));
7953		var attrs = $author$project$W$InputSlider$applyAttrs(attrs_);
7954		var colorAttr = attrs.bV ? $elm$html$Html$Attributes$class('ew-text-base-aux') : A2($elm$html$Html$Attributes$style, 'color', attrs.U);
7955		return A2(
7956			$elm$html$Html$div,
7957			_List_fromArray(
7958				[
7959					$elm$html$Html$Attributes$class('ew-group ew-relative ew-full'),
7960					colorAttr
7961				]),
7962			_List_fromArray(
7963				[
7964					A2(
7965					$elm$html$Html$div,
7966					_List_fromArray(
7967						[
7968							$elm$html$Html$Attributes$class('ew-absolute ew-inset-y-0 ew-inset-x-[12px]')
7969						]),
7970					_List_fromArray(
7971						[
7972							A2(
7973							$elm$html$Html$div,
7974							_List_fromArray(
7975								[
7976									$elm$html$Html$Attributes$class('ew-absolute ew-rounded'),
7977									$elm$html$Html$Attributes$class('ew-inset-x-0 ew-top-1/2'),
7978									$elm$html$Html$Attributes$class('ew-bg-base-aux/30'),
7979									$elm$html$Html$Attributes$class('ew-h-1 -ew-mt-0.5')
7980								]),
7981							_List_Nil),
7982							A2(
7983							$elm$html$Html$div,
7984							_List_fromArray(
7985								[
7986									$elm$html$Html$Attributes$class('ew-absolute ew-z-1 ew-rounded'),
7987									$elm$html$Html$Attributes$class('ew-left-0 ew-top-1/2'),
7988									$elm$html$Html$Attributes$class('ew-bg-base-bg'),
7989									$elm$html$Html$Attributes$class('ew-h-[6px] -ew-mt-[3px]'),
7990									A2($elm$html$Html$Attributes$style, 'width', valueString)
7991								]),
7992							_List_Nil),
7993							A2(
7994							$elm$html$Html$div,
7995							_List_fromArray(
7996								[
7997									$elm$html$Html$Attributes$class('ew-absolute ew-z-0 ew-rounded'),
7998									$elm$html$Html$Attributes$class('ew-left-0 ew-top-1/2'),
7999									$elm$html$Html$Attributes$class('ew-bg-current'),
8000									$elm$html$Html$Attributes$class('ew-opacity-[0.60]'),
8001									$elm$html$Html$Attributes$class('ew-h-[6px] -ew-mt-[3px]'),
8002									A2($elm$html$Html$Attributes$style, 'width', valueString)
8003								]),
8004							_List_Nil)
8005						])),
8006					A2(
8007					$elm$html$Html$input,
8008					_Utils_ap(
8009						attrs.b$,
8010						_List_fromArray(
8011							[
8012								$elm$html$Html$Attributes$class('ew-relative'),
8013								$elm$html$Html$Attributes$class('ew-slider ew-appearance-none'),
8014								$elm$html$Html$Attributes$class('ew-bg-transparent'),
8015								$elm$html$Html$Attributes$class('ew-m-0'),
8016								$elm$html$Html$Attributes$class('focus-visible:ew-outline-0'),
8017								$elm$html$Html$Attributes$type_('range'),
8018								colorAttr,
8019								$elm$html$Html$Attributes$disabled(attrs.bV || attrs.ah),
8020								$elm$html$Html$Attributes$readonly(attrs.ah),
8021								$elm$html$Html$Attributes$value(
8022								$elm$core$String$fromFloat(props.cN)),
8023								$elm$html$Html$Attributes$min(
8024								$elm$core$String$fromFloat(props.fX)),
8025								$elm$html$Html$Attributes$max(
8026								$elm$core$String$fromFloat(props.fS)),
8027								$elm$html$Html$Attributes$step(
8028								$elm$core$String$fromFloat(props.gq)),
8029								A2(
8030								$elm$html$Html$Events$on,
8031								'input',
8032								A2(
8033									$elm$json$Json$Decode$map,
8034									props.cm,
8035									A2(
8036										$elm$json$Json$Decode$andThen,
8037										function (v) {
8038											var _v0 = $elm$core$String$toFloat(v);
8039											if (!_v0.$) {
8040												var v_ = _v0.a;
8041												return $elm$json$Json$Decode$succeed(v_);
8042											} else {
8043												return $elm$json$Json$Decode$fail('Invalid value.');
8044											}
8045										},
8046										A2(
8047											$elm$json$Json$Decode$at,
8048											_List_fromArray(
8049												['target', 'value']),
8050											$elm$json$Json$Decode$string))))
8051							])),
8052					_List_Nil)
8053				]));
8054	});
8055var $author$project$W$InputText$Text = 0;
8056var $author$project$W$InputText$defaultAttrs = {bE: false, bV: false, b$: _List_Nil, ba: $elm$core$Maybe$Nothing, fQ: $elm$core$Maybe$Nothing, N: $elm$core$Maybe$Nothing, aL: $elm$core$Maybe$Nothing, cg: $elm$core$Maybe$Nothing, ci: $elm$core$Maybe$Nothing, cj: $elm$core$Maybe$Nothing, cr: $elm$core$Maybe$Nothing, gb: $elm$core$Maybe$Nothing, bk: $elm$core$Maybe$Nothing, ah: false, cw: false, aV: false, bv: $elm$core$Maybe$Nothing, H: 0, cM: $elm$core$Maybe$Nothing};
8057var $author$project$W$InputText$applyAttrs = function (attrs) {
8058	return A3(
8059		$elm$core$List$foldl,
8060		F2(
8061			function (_v0, a) {
8062				var fn = _v0;
8063				return fn(a);
8064			}),
8065		$author$project$W$InputText$defaultAttrs,
8066		attrs);
8067};
8068var $author$project$W$Internal$Helpers$attrIf = F3(
8069	function (b, fn, a) {
8070		return b ? fn(a) : $elm$html$Html$Attributes$class('');
8071	});
8072var $elm$html$Html$Attributes$autofocus = $elm$html$Html$Attributes$boolProperty('autofocus');
8073var $author$project$W$Internal$Input$baseClassNoColor = function (small) {
8074	return 'ew-appearance-none' + (' ew-w-full' + (' ew-py-2 ew-px-3 ew-box-border' + (' ew-border-0 ew-outline-0' + (' ew-font-text ew-leading-none' + (' ew-placeholder-base-aux/80' + (' ew-bg-transparent' + (' focus:ew-outline-none focus:ew-shadow-none' + (small ? ' ew-text-sm' : ' ew-text-base'))))))));
8075};
8076var $author$project$W$Internal$Input$baseClass = function (small) {
8077	return $author$project$W$Internal$Input$baseClassNoColor(small) + ' ew-text-inherit';
8078};
8079var $author$project$W$InputText$inputInputTypeToString = function (t) {
8080	switch (t) {
8081		case 0:
8082			return 'text';
8083		case 1:
8084			return 'tel';
8085		case 2:
8086			return 'password';
8087		case 3:
8088			return 'search';
8089		case 4:
8090			return 'email';
8091		case 5:
8092			return 'url';
8093		case 6:
8094			return 'text';
8095		default:
8096			return 'text';
8097	}
8098};
8099var $elm$html$Html$Attributes$maxlength = function (n) {
8100	return A2(
8101		_VirtualDom_attribute,
8102		'maxlength',
8103		$elm$core$String$fromInt(n));
8104};
8105var $elm$html$Html$Attributes$minlength = function (n) {
8106	return A2(
8107		_VirtualDom_attribute,
8108		'minLength',
8109		$elm$core$String$fromInt(n));
8110};
8111var $elm$core$Basics$negate = function (n) {
8112	return -n;
8113};
8114var $elm$html$Html$Events$onBlur = function (msg) {
8115	return A2(
8116		$elm$html$Html$Events$on,
8117		'blur',
8118		$elm$json$Json$Decode$succeed(msg));
8119};
8120var $author$project$W$Internal$Helpers$enterDecoder = function (a) {
8121	return A2(
8122		$elm$json$Json$Decode$andThen,
8123		function (key) {
8124			return (key === 'Enter') ? $elm$json$Json$Decode$succeed(a) : $elm$json$Json$Decode$fail('Invalid key.');
8125		},
8126		A2($elm$json$Json$Decode$field, 'key', $elm$json$Json$Decode$string));
8127};
8128var $author$project$W$Internal$Helpers$onEnter = function (msg) {
8129	return A2(
8130		$elm$html$Html$Events$on,
8131		'keyup',
8132		$author$project$W$Internal$Helpers$enterDecoder(msg));
8133};
8134var $elm$html$Html$Events$onFocus = function (msg) {
8135	return A2(
8136		$elm$html$Html$Events$on,
8137		'focus',
8138		$elm$json$Json$Decode$succeed(msg));
8139};
8140var $elm$html$Html$Attributes$pattern = $elm$html$Html$Attributes$stringProperty('pattern');
8141var $elm$html$Html$Attributes$placeholder = $elm$html$Html$Attributes$stringProperty('placeholder');
8142var $elm$html$Html$Attributes$required = $elm$html$Html$Attributes$boolProperty('required');
8143var $elm$html$Html$Attributes$tabindex = function (n) {
8144	return A2(
8145		_VirtualDom_attribute,
8146		'tabIndex',
8147		$elm$core$String$fromInt(n));
8148};
8149var $author$project$W$InputText$baseAttrs = function (attrs) {
8150	return _Utils_ap(
8151		attrs.b$,
8152		_List_fromArray(
8153			[
8154				$elm$html$Html$Attributes$type_(
8155				$author$project$W$InputText$inputInputTypeToString(attrs.H)),
8156				A2(
8157				$author$project$W$Internal$Helpers$maybeAttr,
8158				$elm$html$Html$Attributes$attribute('inputmode'),
8159				attrs.ba),
8160				$elm$html$Html$Attributes$class(
8161				$author$project$W$Internal$Input$baseClass(attrs.aV)),
8162				A3($author$project$W$Internal$Helpers$attrIf, attrs.ah, $elm$html$Html$Attributes$tabindex, -1),
8163				$elm$html$Html$Attributes$required(attrs.cw),
8164				$elm$html$Html$Attributes$disabled(attrs.bV),
8165				$elm$html$Html$Attributes$readonly(attrs.ah),
8166				$elm$html$Html$Attributes$autofocus(attrs.bE),
8167				A3(
8168				$author$project$W$Internal$Helpers$attrIf,
8169				attrs.ah,
8170				$elm$html$Html$Attributes$attribute('aria-readonly'),
8171				'true'),
8172				A3(
8173				$author$project$W$Internal$Helpers$attrIf,
8174				attrs.bV,
8175				$elm$html$Html$Attributes$attribute('aria-disabled'),
8176				'true'),
8177				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Attributes$placeholder, attrs.gb),
8178				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Attributes$minlength, attrs.aL),
8179				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Attributes$maxlength, attrs.N),
8180				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Attributes$pattern, attrs.cr),
8181				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onFocus, attrs.cj),
8182				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onBlur, attrs.cg),
8183				A2($author$project$W$Internal$Helpers$maybeAttr, $author$project$W$Internal$Helpers$onEnter, attrs.ci)
8184			]));
8185};
8186var $elm$core$String$slice = _String_slice;
8187var $elm$core$String$left = F2(
8188	function (n, string) {
8189		return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string);
8190	});
8191var $author$project$W$Internal$Helpers$limitString = F2(
8192	function (limit, str) {
8193		return A2(
8194			$elm$core$Maybe$withDefault,
8195			str,
8196			A2(
8197				$elm$core$Maybe$map,
8198				function (l) {
8199					return A2($elm$core$String$left, l, str);
8200				},
8201				limit));
8202	});
8203var $elm$html$Html$Events$alwaysStop = function (x) {
8204	return _Utils_Tuple2(x, true);
8205};
8206var $elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) {
8207	return {$: 1, a: a};
8208};
8209var $elm$html$Html$Events$stopPropagationOn = F2(
8210	function (event, decoder) {
8211		return A2(
8212			$elm$virtual_dom$VirtualDom$on,
8213			event,
8214			$elm$virtual_dom$VirtualDom$MayStopPropagation(decoder));
8215	});
8216var $elm$html$Html$Events$targetValue = A2(
8217	$elm$json$Json$Decode$at,
8218	_List_fromArray(
8219		['target', 'value']),
8220	$elm$json$Json$Decode$string);
8221var $elm$html$Html$Events$onInput = function (tagger) {
8222	return A2(
8223		$elm$html$Html$Events$stopPropagationOn,
8224		'input',
8225		A2(
8226			$elm$json$Json$Decode$map,
8227			$elm$html$Html$Events$alwaysStop,
8228			A2($elm$json$Json$Decode$map, tagger, $elm$html$Html$Events$targetValue)));
8229};
8230var $author$project$W$Internal$Input$prefixSuffixClass = $elm$html$Html$Attributes$class('ew-flex ew-items-center ew-justify-center ew-box-border' + (' ew-border-0 ew-border-solid ew-border-base-aux/30' + (' ew-p-2 ew-min-w-[48px] ew-self-stretch' + ' ew-text-base-aux')));
8231var $author$project$W$Internal$Input$view = F2(
8232	function (attrs, input) {
8233		return A2(
8234			$elm$html$Html$label,
8235			_List_fromArray(
8236				[
8237					$elm$html$Html$Attributes$class('ew-input ew-bg-base-bg'),
8238					$elm$html$Html$Attributes$class('ew-flex ew-items-stretch'),
8239					$elm$html$Html$Attributes$class('ew-box-border ew-border ew-border-solid ew-border-base-aux/30 ew-rounded'),
8240					$elm$html$Html$Attributes$class('ew-font-text ew-text-base-fg'),
8241					$elm$html$Html$Attributes$class('ew-transition'),
8242					$elm$html$Html$Attributes$class('ew-ring-offset-0 ew-ring-primary-fg/50'),
8243					$elm$html$Html$Attributes$classList(
8244					_List_fromArray(
8245						[
8246							_Utils_Tuple2('focus-within:ew-ring focus-within:ew-border-primary-fg', !attrs.ah),
8247							_Utils_Tuple2('ew-text-base', !attrs.aV),
8248							_Utils_Tuple2('ew-text-sm', attrs.aV)
8249						]))
8250				]),
8251			_List_fromArray(
8252				[
8253					function () {
8254					var _v0 = attrs.bk;
8255					if (!_v0.$) {
8256						var prefix = _v0.a;
8257						return A2(
8258							$elm$html$Html$div,
8259							_List_fromArray(
8260								[
8261									$author$project$W$Internal$Input$prefixSuffixClass,
8262									$elm$html$Html$Attributes$class('ew-border-r')
8263								]),
8264							prefix);
8265					} else {
8266						return $elm$html$Html$text('');
8267					}
8268				}(),
8269					A2(
8270					$elm$html$Html$div,
8271					_List_fromArray(
8272						[
8273							$elm$html$Html$Attributes$class('ew-grow ew-relative'),
8274							$elm$html$Html$Attributes$class('ew-flex ew-items-stretch ew-group'),
8275							$elm$html$Html$Attributes$class('ew-rounded'),
8276							$elm$html$Html$Attributes$classList(
8277							_List_fromArray(
8278								[
8279									_Utils_Tuple2(
8280									'ew-text-transparent focus-within:ew-text-base-fg',
8281									!_Utils_eq(attrs.fQ, $elm$core$Maybe$Nothing)),
8282									_Utils_Tuple2(
8283									'ew-text-base-fg',
8284									_Utils_eq(attrs.fQ, $elm$core$Maybe$Nothing)),
8285									_Utils_Tuple2('ew-min-h-[32px]', attrs.aV),
8286									_Utils_Tuple2('ew-min-h-[48px]', !attrs.aV)
8287								])),
8288							attrs.ah ? $elm$html$Html$Attributes$class('ew-bg-base-aux/[0.07] focus-within:ew-bg-base-aux/10') : (attrs.bV ? $elm$html$Html$Attributes$class('ew-bg-base-aux/30') : $elm$html$Html$Attributes$class('ew-bg-base-aux/[0.07] focus-within:ew-bg-base-bg'))
8289						]),
8290					_List_fromArray(
8291						[
8292							input,
8293							A2(
8294							$elm$core$Maybe$withDefault,
8295							$elm$html$Html$text(''),
8296							A2(
8297								$elm$core$Maybe$map,
8298								function (f) {
8299									return A2(
8300										$elm$html$Html$div,
8301										_List_fromArray(
8302											[
8303												$elm$html$Html$Attributes$class('ew-absolute ew-z-10 ew-inset-x-3 ew-inset-y-0'),
8304												$elm$html$Html$Attributes$class('ew-flex ew-items-center'),
8305												$elm$html$Html$Attributes$class('ew-pointer-events-none')
8306											]),
8307										_List_fromArray(
8308											[
8309												A2(
8310												$elm$html$Html$div,
8311												_List_fromArray(
8312													[
8313														$elm$html$Html$Attributes$class('ew-text-base-fg'),
8314														$elm$html$Html$Attributes$class('group-focus-within:ew-relative ew-top-[28px]'),
8315														$elm$html$Html$Attributes$class('group-focus-within:ew-text-sm'),
8316														$elm$html$Html$Attributes$class('group-focus-within:ew-px-2 group-focus-within:ew-leading-relaxed group-focus-within:ew-rounded'),
8317														$elm$html$Html$Attributes$class('group-focus-within:ew-bg-neutral-bg group-focus-within:ew-text-neutral-aux'),
8318														A2($elm$html$Html$Attributes$attribute, 'aria-label', 'formatted input')
8319													]),
8320												_List_fromArray(
8321													[
8322														$elm$html$Html$text(
8323														f(attrs.fR))
8324													]))
8325											]));
8326								},
8327								attrs.fQ))
8328						])),
8329					function () {
8330					var _v1 = attrs.bv;
8331					if (!_v1.$) {
8332						var suffix = _v1.a;
8333						return A2(
8334							$elm$html$Html$div,
8335							_List_fromArray(
8336								[
8337									$author$project$W$Internal$Input$prefixSuffixClass,
8338									$elm$html$Html$Attributes$class('ew-border-l')
8339								]),
8340							suffix);
8341					} else {
8342						return $elm$html$Html$text('');
8343					}
8344				}()
8345				]));
8346	});
8347var $author$project$W$InputText$view = F2(
8348	function (attrs_, props) {
8349		var attrs = $author$project$W$InputText$applyAttrs(attrs_);
8350		var value = A2($author$project$W$Internal$Helpers$limitString, attrs.N, props.cN);
8351		return A2(
8352			$author$project$W$Internal$Input$view,
8353			{bV: attrs.bV, fQ: attrs.fQ, fR: value, bk: attrs.bk, ah: attrs.ah, aV: attrs.aV, bv: attrs.bv},
8354			A2(
8355				$elm$html$Html$input,
8356				_Utils_ap(
8357					$author$project$W$InputText$baseAttrs(attrs),
8358					_List_fromArray(
8359						[
8360							$elm$html$Html$Attributes$value(value),
8361							$elm$html$Html$Events$onInput(
8362							A2(
8363								$elm$core$Basics$composeL,
8364								props.cm,
8365								$author$project$W$Internal$Helpers$limitString(attrs.N)))
8366						])),
8367				_List_Nil));
8368	});
8369var $author$project$Chapters$Form$Field$chapter_ = function () {
8370	var singleInput = {
8371		en: _List_fromArray(
8372			[
8373				A2(
8374				$author$project$W$InputText$view,
8375				_List_fromArray(
8376					[
8377						$author$project$W$InputText$placeholder('...')
8378					]),
8379				{
8380					cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithString('onInput'),
8381					cN: ''
8382				})
8383			]),
8384		aK: _List_fromArray(
8385			[
8386				$elm$html$Html$text('Label')
8387			])
8388	};
8389	var props = {
8390		en: _List_fromArray(
8391			[
8392				A2(
8393				$elm$html$Html$div,
8394				_List_fromArray(
8395					[
8396						A2($elm$html$Html$Attributes$style, 'display', 'flex'),
8397						A2($elm$html$Html$Attributes$style, 'flex-direction', 'column'),
8398						A2($elm$html$Html$Attributes$style, 'gap', '20px')
8399					]),
8400				_List_fromArray(
8401					[
8402						A2(
8403						$author$project$W$InputText$view,
8404						_List_fromArray(
8405							[
8406								$author$project$W$InputText$placeholder('...')
8407							]),
8408						{
8409							cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithString('onInput'),
8410							cN: ''
8411						}),
8412						A2(
8413						$author$project$W$InputRadio$view,
8414						_List_Nil,
8415						{
8416							fE: 'default',
8417							cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
8418							f9: _List_fromArray(
8419								[1, 2, 3]),
8420							u: $elm$core$String$fromInt,
8421							gw: $elm$core$String$fromInt,
8422							cN: 1
8423						}),
8424						A2(
8425						$author$project$W$InputSlider$view,
8426						_List_fromArray(
8427							[
8428								$author$project$W$InputSlider$readOnly(true)
8429							]),
8430						{
8431							fS: 10,
8432							fX: 0,
8433							cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromFloat, 'onInput'),
8434							gq: 1,
8435							cN: 5
8436						})
8437					]))
8438			]),
8439		aK: _List_fromArray(
8440			[
8441				$elm$html$Html$text('Label')
8442			])
8443	};
8444	return A2(
8445		$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
8446		_List_fromArray(
8447			[
8448				_Utils_Tuple2(
8449				'Single',
8450				A2($author$project$W$InputField$view, _List_Nil, props)),
8451				_Utils_Tuple2(
8452				'Single without Padding',
8453				A2(
8454					$author$project$W$InputField$view,
8455					_List_fromArray(
8456						[
8457							$author$project$W$InputField$padding(0)
8458						]),
8459					props)),
8460				_Utils_Tuple2(
8461				'Group + Status',
8462				A2(
8463					$elm$html$Html$div,
8464					_List_Nil,
8465					_List_fromArray(
8466						[
8467							A2($author$project$W$InputField$view, _List_Nil, props),
8468							A2(
8469							$author$project$W$InputField$view,
8470							_List_fromArray(
8471								[
8472									$author$project$W$InputField$hint(
8473									_List_fromArray(
8474										[
8475											$elm$html$Html$text('Try writing some text here.')
8476										]))
8477								]),
8478							props),
8479							A2(
8480							$author$project$W$InputField$view,
8481							_List_fromArray(
8482								[
8483									$author$project$W$InputField$hint(
8484									_List_fromArray(
8485										[
8486											$elm$html$Html$text('Try writing some text here.')
8487										]))
8488								]),
8489							props)
8490						]))),
8491				_Utils_Tuple2(
8492				'Right aligned',
8493				A2(
8494					$elm$html$Html$div,
8495					_List_Nil,
8496					_List_fromArray(
8497						[
8498							A2(
8499							$author$project$W$InputField$view,
8500							_List_fromArray(
8501								[
8502									$author$project$W$InputField$alignRight(true)
8503								]),
8504							singleInput),
8505							A2(
8506							$author$project$W$InputField$view,
8507							_List_fromArray(
8508								[
8509									$author$project$W$InputField$alignRight(true),
8510									$author$project$W$InputField$hint(
8511									_List_fromArray(
8512										[
8513											$elm$html$Html$text('Try writing some text here.')
8514										]))
8515								]),
8516							singleInput),
8517							A2($author$project$W$Divider$view, _List_Nil, _List_Nil),
8518							A2(
8519							$author$project$W$InputField$view,
8520							_List_fromArray(
8521								[
8522									$author$project$W$InputField$alignRight(true)
8523								]),
8524							props),
8525							A2(
8526							$author$project$W$InputField$view,
8527							_List_fromArray(
8528								[
8529									$author$project$W$InputField$alignRight(true)
8530								]),
8531							props)
8532						])))
8533			]),
8534		$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Field'));
8535}();
8536var $author$project$Chapters$Form$InputAutocomplete$OnInput = function (a) {
8537	return {$: 0, a: a};
8538};
8539var $author$project$Chapters$Form$InputAutocomplete$OnRemoveLast = {$: 1};
8540var $author$project$Chapters$Form$InputAutocomplete$elmAuthors = _List_fromArray(
8541	[
8542		{w: 'Brian Hicks', E: 'BrianHicks/elm-csv'},
8543		{w: 'Dillon Kearns', E: 'dillonkearns/elm-pages, dillon-kearns/elm-graphql'},
8544		{w: 'Evan Czaplicki', E: 'elm/core'},
8545		{w: 'Jakub Hampl', E: 'gampleman/elm-visualization'},
8546		{w: 'Georges Boris', E: 'dtwrks/elm-book'},
8547		{w: 'Jeroen Mengels', E: 'jfmengels/elm-review'},
8548		{w: 'Matthew Griffith', E: 'mdgriffith/elm-ui, vendrinc/elm-gql'},
8549		{w: 'Ryan Haskell-Glatz', E: 'ryannhg/elm-spa, elm-land'}
8550	]);
8551var $author$project$W$InputAutocomplete$Attribute = $elm$core$Basics$identity;
8552var $author$project$W$InputAutocomplete$isLoading = function (v) {
8553	return function (attrs) {
8554		return _Utils_update(
8555			attrs,
8556			{
8557				aJ: $elm$core$Maybe$Just(v)
8558			});
8559	};
8560};
8561var $author$project$W$InputAutocomplete$onDelete = function (v) {
8562	return function (attrs) {
8563		return _Utils_update(
8564			attrs,
8565			{
8566				bh: $elm$core$Maybe$Just(v)
8567			});
8568	};
8569};
8570var $author$project$W$InputAutocomplete$optionsHeader = function (v) {
8571	return function (attrs) {
8572		return _Utils_update(
8573			attrs,
8574			{
8575				cq: $elm$core$Maybe$Just(v)
8576			});
8577	};
8578};
8579var $author$project$W$InputAutocomplete$placeholder = function (v) {
8580	return function (attrs) {
8581		return _Utils_update(
8582			attrs,
8583			{
8584				gb: $elm$core$Maybe$Just(v)
8585			});
8586	};
8587};
8588var $dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterComponentViewStateful = function (a) {
8589	return {$: 1, a: a};
8590};
8591var $dtwrks$elm_book$ElmBook$Chapter$fromTupleStateful = function (_v0) {
8592	var label = _v0.a;
8593	var view_ = _v0.b;
8594	return {
8595		aK: label,
8596		cP: $dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterComponentViewStateful(view_)
8597	};
8598};
8599var $dtwrks$elm_book$ElmBook$Chapter$renderStatefulComponentList = F2(
8600	function (componentList, _v0) {
8601		var builder = _v0;
8602		return _Utils_update(
8603			builder,
8604			{
8605				fe: builder.fe + '<component-list />',
8606				m: _Utils_ap(
8607					A2($elm$core$List$map, $dtwrks$elm_book$ElmBook$Chapter$fromTupleStateful, componentList),
8608					builder.m)
8609			});
8610	});
8611var $elm$html$Html$a = _VirtualDom_node('a');
8612var $author$project$W$Tag$Medium = 1;
8613var $author$project$W$Tag$defaultAttrs = {U: $uncover_co$elm_theme$Theme$neutralForeground, ei: $elm$core$Maybe$Nothing, b$: _List_Nil, s: $elm$core$Maybe$Nothing, n: 1};
8614var $author$project$W$Tag$applyAttrs = function (attrs) {
8615	return A3(
8616		$elm$core$List$foldl,
8617		F2(
8618			function (_v0, a) {
8619				var fn = _v0;
8620				return fn(a);
8621			}),
8622		$author$project$W$Tag$defaultAttrs,
8623		attrs);
8624};
8625var $elm$html$Html$Attributes$href = function (url) {
8626	return A2(
8627		$elm$html$Html$Attributes$stringProperty,
8628		'href',
8629		_VirtualDom_noJavaScriptUri(url));
8630};
8631var $author$project$W$Tag$interactiveClass = $elm$html$Html$Attributes$class('ew-appearance-none ew-bg-transparent ew-no-underline hover:before:ew-opacity-[0.05] active:before:ew-opacity-[0.03]' + (' ew-transition' + (' ew-outline-0 ew-ring-offset-0 ew-ring-primary-fg/50' + ' focus-visible:ew-bg-base-bg focus-visible:ew-ring focus-visible:ew-border-primary-fg')));
8632var $author$project$W$Tag$view = F2(
8633	function (attrs_, children) {
8634		var attrs = $author$project$W$Tag$applyAttrs(attrs_);
8635		var baseAttrs = _Utils_ap(
8636			attrs.b$,
8637			_List_fromArray(
8638				[
8639					$elm$html$Html$Attributes$class('ew-m-0 ew-box-border ew-relative ew-inline-flex ew-items-center ew-leading-none ew-font-text ew-font-medium ew-tracking-wider'),
8640					$elm$html$Html$Attributes$class('ew-rounded-full ew-border-solid ew-border-current ew-border-0'),
8641					$elm$html$Html$Attributes$class('before:ew-content-[\'\'] before:ew-absolute before:ew-inset-0 before:ew-rounded-full before:ew-bg-current before:ew-opacity-10'),
8642					A2($elm$html$Html$Attributes$style, 'color', attrs.U),
8643					function () {
8644					var _v2 = attrs.n;
8645					switch (_v2) {
8646						case 0:
8647							return $elm$html$Html$Attributes$class('ew-h-8 ew-px-4 ew-text-base');
8648						case 1:
8649							return $elm$html$Html$Attributes$class('ew-h-7 ew-px-3 ew-text-sm');
8650						default:
8651							return $elm$html$Html$Attributes$class('ew-h-[20px] ew-px-2 ew-text-xs');
8652					}
8653				}()
8654				]));
8655		var _v0 = _Utils_Tuple2(attrs.s, attrs.ei);
8656		if (!_v0.a.$) {
8657			var onClick_ = _v0.a.a;
8658			return A2(
8659				$elm$html$Html$button,
8660				_Utils_ap(
8661					baseAttrs,
8662					_List_fromArray(
8663						[
8664							$author$project$W$Tag$interactiveClass,
8665							$elm$html$Html$Events$onClick(onClick_)
8666						])),
8667				children);
8668		} else {
8669			if (!_v0.b.$) {
8670				var _v1 = _v0.a;
8671				var href_ = _v0.b.a;
8672				return A2(
8673					$elm$html$Html$a,
8674					_Utils_ap(
8675						baseAttrs,
8676						_List_fromArray(
8677							[
8678								$author$project$W$Tag$interactiveClass,
8679								$elm$html$Html$Attributes$href(href_)
8680							])),
8681					children);
8682			} else {
8683				return A2($elm$html$Html$span, baseAttrs, children);
8684			}
8685		}
8686	});
8687var $author$project$W$InputAutocomplete$ArrowDown = {$: 4};
8688var $author$project$W$InputAutocomplete$ArrowUp = {$: 5};
8689var $author$project$W$InputAutocomplete$Blur = {$: 3};
8690var $author$project$W$InputAutocomplete$Focus = {$: 2};
8691var $author$project$W$InputAutocomplete$Input = function (a) {
8692	return {$: 0, a: a};
8693};
8694var $author$project$W$InputAutocomplete$Select = F2(
8695	function (a, b) {
8696		return {$: 1, a: a, b: b};
8697	});
8698var $author$project$W$InputAutocomplete$defaultAttrs = {bE: false, bV: false, b$: _List_Nil, aJ: $elm$core$Maybe$Nothing, ca: false, cg: $elm$core$Maybe$Nothing, bh: $elm$core$Maybe$Nothing, ch: $elm$core$Maybe$Nothing, ci: $elm$core$Maybe$Nothing, cj: $elm$core$Maybe$Nothing, cq: $elm$core$Maybe$Nothing, gb: $elm$core$Maybe$Nothing, bk: $elm$core$Maybe$Nothing, ah: false, cw: false, aV: false, bv: $elm$core$Maybe$Nothing};
8699var $author$project$W$InputAutocomplete$applyAttrs = function (attrs) {
8700	return A3(
8701		$elm$core$List$foldl,
8702		F2(
8703			function (_v0, a) {
8704				var fn = _v0;
8705				return fn(a);
8706			}),
8707		$author$project$W$InputAutocomplete$defaultAttrs,
8708		attrs);
8709};
8710var $elm$html$Html$Attributes$autocomplete = function (bool) {
8711	return A2(
8712		$elm$html$Html$Attributes$stringProperty,
8713		'autocomplete',
8714		bool ? 'on' : 'off');
8715};
8716var $author$project$W$Internal$Icons$chevronDown = A2(
8717	$elm$html$Html$div,
8718	_List_fromArray(
8719		[
8720			$elm$html$Html$Attributes$class('ew-block ew-h-1.5 ew-w-1.5 ew-border-2 ew-border-current ew-border-solid ew-rotate-[45deg]'),
8721			A2($elm$html$Html$Attributes$style, 'border-left', 'none'),
8722			A2($elm$html$Html$Attributes$style, 'border-top', 'none')
8723		]),
8724	_List_Nil);
8725var $elm$core$Array$fromListHelp = F3(
8726	function (list, nodeList, nodeListSize) {
8727		fromListHelp:
8728		while (true) {
8729			var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, list);
8730			var jsArray = _v0.a;
8731			var remainingItems = _v0.b;
8732			if (_Utils_cmp(
8733				$elm$core$Elm$JsArray$length(jsArray),
8734				$elm$core$Array$branchFactor) < 0) {
8735				return A2(
8736					$elm$core$Array$builderToArray,
8737					true,
8738					{r: nodeList, l: nodeListSize, o: jsArray});
8739			} else {
8740				var $temp$list = remainingItems,
8741					$temp$nodeList = A2(
8742					$elm$core$List$cons,
8743					$elm$core$Array$Leaf(jsArray),
8744					nodeList),
8745					$temp$nodeListSize = nodeListSize + 1;
8746				list = $temp$list;
8747				nodeList = $temp$nodeList;
8748				nodeListSize = $temp$nodeListSize;
8749				continue fromListHelp;
8750			}
8751		}
8752	});
8753var $elm$core$Array$fromList = function (list) {
8754	if (!list.b) {
8755		return $elm$core$Array$empty;
8756	} else {
8757		return A3($elm$core$Array$fromListHelp, list, _List_Nil, 0);
8758	}
8759};
8760var $elm$core$Bitwise$and = _Bitwise_and;
8761var $elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy;
8762var $elm$core$Array$bitMask = 4294967295 >>> (32 - $elm$core$Array$shiftStep);
8763var $elm$core$Basics$ge = _Utils_ge;
8764var $elm$core$Elm$JsArray$unsafeGet = _JsArray_unsafeGet;
8765var $elm$core$Array$getHelp = F3(
8766	function (shift, index, tree) {
8767		getHelp:
8768		while (true) {
8769			var pos = $elm$core$Array$bitMask & (index >>> shift);
8770			var _v0 = A2($elm$core$Elm$JsArray$unsafeGet, pos, tree);
8771			if (!_v0.$) {
8772				var subTree = _v0.a;
8773				var $temp$shift = shift - $elm$core$Array$shiftStep,
8774					$temp$index = index,
8775					$temp$tree = subTree;
8776				shift = $temp$shift;
8777				index = $temp$index;
8778				tree = $temp$tree;
8779				continue getHelp;
8780			} else {
8781				var values = _v0.a;
8782				return A2($elm$core$Elm$JsArray$unsafeGet, $elm$core$Array$bitMask & index, values);
8783			}
8784		}
8785	});
8786var $elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy;
8787var $elm$core$Array$tailIndex = function (len) {
8788	return (len >>> 5) << 5;
8789};
8790var $elm$core$Array$get = F2(
8791	function (index, _v0) {
8792		var len = _v0.a;
8793		var startShift = _v0.b;
8794		var tree = _v0.c;
8795		var tail = _v0.d;
8796		return ((index < 0) || (_Utils_cmp(index, len) > -1)) ? $elm$core$Maybe$Nothing : ((_Utils_cmp(
8797			index,
8798			$elm$core$Array$tailIndex(len)) > -1) ? $elm$core$Maybe$Just(
8799			A2($elm$core$Elm$JsArray$unsafeGet, $elm$core$Array$bitMask & index, tail)) : $elm$core$Maybe$Just(
8800			A3($elm$core$Array$getHelp, startShift, index, tree)));
8801	});
8802var $elm$virtual_dom$VirtualDom$lazy = _VirtualDom_lazy;
8803var $elm$html$Html$Lazy$lazy = $elm$virtual_dom$VirtualDom$lazy;
8804var $elm$core$String$contains = _String_contains;
8805var $elm$core$String$toLower = _String_toLower;
8806var $author$project$W$InputAutocomplete$matches = F2(
8807	function (match, input) {
8808		return A2(
8809			$elm$core$String$contains,
8810			$elm$core$String$toLower(match),
8811			$elm$core$String$toLower(input));
8812	});
8813var $elm$core$Basics$modBy = _Basics_modBy;
8814var $elm$core$Tuple$pair = F2(
8815	function (a, b) {
8816		return _Utils_Tuple2(a, b);
8817	});
8818var $author$project$W$Menu$Attribute = $elm$core$Basics$identity;
8819var $author$project$W$Menu$selected = function (v) {
8820	return function (attrs) {
8821		return _Utils_update(
8822			attrs,
8823			{ai: v});
8824	};
8825};
8826var $author$project$W$InputAutocomplete$Value = $elm$core$Basics$identity;
8827var $author$project$W$InputAutocomplete$initInput = function (data) {
8828	return _Utils_update(
8829		data,
8830		{
8831			en: A2(
8832				$elm$core$Maybe$withDefault,
8833				'',
8834				A2($elm$core$Maybe$map, data.gv, data.cN))
8835		});
8836};
8837var $author$project$W$InputAutocomplete$update = F3(
8838	function (toMsg, _v0, msg) {
8839		var model = _v0;
8840		var newModel = function () {
8841			switch (msg.$) {
8842				case 0:
8843					var value = msg.a;
8844					return _Utils_update(
8845						model,
8846						{K: true, am: 0, en: value});
8847				case 1:
8848					var index = msg.a;
8849					var value = msg.b;
8850					return $author$project$W$InputAutocomplete$initInput(
8851						_Utils_update(
8852							model,
8853							{
8854								K: false,
8855								am: index,
8856								cN: $elm$core$Maybe$Just(value)
8857							}));
8858				case 2:
8859					return _Utils_update(
8860						model,
8861						{K: true});
8862				case 3:
8863					return _Utils_update(
8864						model,
8865						{K: false});
8866				case 4:
8867					return model.K ? _Utils_update(
8868						model,
8869						{am: model.am + 1}) : _Utils_update(
8870						model,
8871						{K: true});
8872				default:
8873					return model.K ? _Utils_update(
8874						model,
8875						{am: model.am - 1}) : _Utils_update(
8876						model,
8877						{K: true});
8878			}
8879		}();
8880		return toMsg(newModel);
8881	});
8882var $author$project$W$Menu$defaultMenuAttrs = {
8883	W: {dZ: 12, d_: 8},
8884	aj: {dZ: 12, d_: 8}
8885};
8886var $author$project$W$Menu$applyMenuAttrs = function (attrs) {
8887	return A3(
8888		$elm$core$List$foldl,
8889		F2(
8890			function (_v0, a) {
8891				var fn = _v0;
8892				return fn(a);
8893			}),
8894		$author$project$W$Menu$defaultMenuAttrs,
8895		attrs);
8896};
8897var $elm$html$Html$li = _VirtualDom_node('li');
8898var $author$project$W$Menu$paddingString = function (_v0) {
8899	var x = _v0.dZ;
8900	var y = _v0.d_;
8901	return $elm$core$String$fromInt(y) + ('px ' + ($elm$core$String$fromInt(x) + 'px'));
8902};
8903var $elm$html$Html$ul = _VirtualDom_node('ul');
8904var $author$project$W$Menu$viewCustom = F2(
8905	function (attrs_, children) {
8906		var attrs = $author$project$W$Menu$applyMenuAttrs(attrs_);
8907		return A2(
8908			$elm$html$Html$ul,
8909			_List_fromArray(
8910				[
8911					$elm$html$Html$Attributes$class('ew-m-0 ew-p-0 ew-w-full ew-list-none ew-bg-base-bg ew-font-text'),
8912					$uncover_co$elm_theme$Theme$styles(
8913					_List_fromArray(
8914						[
8915							_Utils_Tuple2(
8916							'--ew-menu-padding',
8917							$author$project$W$Menu$paddingString(attrs.W)),
8918							_Utils_Tuple2(
8919							'--ew-menu-title-padding',
8920							$author$project$W$Menu$paddingString(attrs.aj))
8921						]))
8922				]),
8923			A2(
8924				$elm$core$List$map,
8925				function (i) {
8926					return A2(
8927						$elm$html$Html$li,
8928						_List_fromArray(
8929							[
8930								$elm$html$Html$Attributes$class('ew-m-0 ew-flex ew-justify-stretch')
8931							]),
8932						_List_fromArray(
8933							[i]));
8934				},
8935				children));
8936	});
8937var $author$project$W$Menu$view = $author$project$W$Menu$viewCustom(_List_Nil);
8938var $author$project$W$Menu$defaultAttrs = {bV: false, b$: _List_Nil, ew: $elm$core$Maybe$Nothing, W: true, eS: $elm$core$Maybe$Nothing, ai: false};
8939var $author$project$W$Menu$applyAttrs = function (attrs) {
8940	return A3(
8941		$elm$core$List$foldl,
8942		F2(
8943			function (_v0, a) {
8944				var fn = _v0;
8945				return fn(a);
8946			}),
8947		$author$project$W$Menu$defaultAttrs,
8948		attrs);
8949};
8950var $author$project$W$Menu$baseAttrs = function (attrs) {
8951	return _Utils_ap(
8952		attrs.b$,
8953		_List_fromArray(
8954			[
8955				$elm$html$Html$Attributes$disabled(attrs.bV),
8956				$elm$html$Html$Attributes$class('ew-m-0 ew-w-full ew-box-border ew-flex ew-items-center ew-content-start'),
8957				$elm$html$Html$Attributes$class('ew-text-left ew-text-base ew-text-fg'),
8958				$elm$html$Html$Attributes$class('hover:ew-bg-base-aux/[0.07]'),
8959				$elm$html$Html$Attributes$class('focus:ew-bg-base-aux/[0.07]'),
8960				$elm$html$Html$Attributes$class('active:ew-bg-base-aux/10'),
8961				$elm$html$Html$Attributes$class('ew-focusable-reset ew-relative focus:ew-z-10'),
8962				$elm$html$Html$Attributes$classList(
8963				_List_fromArray(
8964					[
8965						_Utils_Tuple2('ew-text-primary-fg ew-bg-primary-fg/10', attrs.ai),
8966						_Utils_Tuple2('hover:ew-bg-primary-fg/[0.15] focus:ew-bg-primary-fg/[0.15] active:ew-bg-primary-fg/20', attrs.ai),
8967						_Utils_Tuple2('ew-text-base-fg ew-bg-base-bg', !attrs.ai),
8968						_Utils_Tuple2('ew-m-disabled', attrs.bV)
8969					])),
8970				attrs.W ? $uncover_co$elm_theme$Theme$styles(
8971				_List_fromArray(
8972					[
8973						_Utils_Tuple2('padding', 'var(--ew-menu-padding)')
8974					])) : $elm$html$Html$Attributes$class('')
8975			]));
8976};
8977var $author$project$W$Internal$Helpers$maybeHtml = F2(
8978	function (fn, a) {
8979		return A2(
8980			$elm$core$Maybe$withDefault,
8981			$elm$html$Html$text(''),
8982			A2($elm$core$Maybe$map, fn, a));
8983	});
8984var $author$project$W$Menu$baseContent = F2(
8985	function (attrs, label) {
8986		return _List_fromArray(
8987			[
8988				A2(
8989				$author$project$W$Internal$Helpers$maybeHtml,
8990				$elm$html$Html$span(
8991					_List_fromArray(
8992						[
8993							$elm$html$Html$Attributes$class('ew-shrink-0 ew-pr-3')
8994						])),
8995				attrs.ew),
8996				A2(
8997				$elm$html$Html$span,
8998				_List_fromArray(
8999					[
9000						$elm$html$Html$Attributes$class('ew-grow')
9001					]),
9002				label),
9003				A2(
9004				$author$project$W$Internal$Helpers$maybeHtml,
9005				$elm$html$Html$span(
9006					_List_fromArray(
9007						[
9008							$elm$html$Html$Attributes$class('ew-shrink-0 ew-pr-3')
9009						])),
9010				attrs.eS)
9011			]);
9012	});
9013var $author$project$W$Menu$viewButton = F2(
9014	function (attrs_, props) {
9015		var attrs = $author$project$W$Menu$applyAttrs(attrs_);
9016		return A2(
9017			$elm$html$Html$button,
9018			_Utils_ap(
9019				$author$project$W$Menu$baseAttrs(attrs),
9020				_List_fromArray(
9021					[
9022						$elm$html$Html$Events$onClick(props.s),
9023						$elm$html$Html$Attributes$class('ew-border-0')
9024					])),
9025			A2($author$project$W$Menu$baseContent, attrs, props.aK));
9026	});
9027var $author$project$W$Internal$Input$iconWrapper = F2(
9028	function (_class, child) {
9029		return A2(
9030			$elm$html$Html$div,
9031			_List_fromArray(
9032				[
9033					$elm$html$Html$Attributes$class('ew-input-icon ew-absolute ew-w-10 ew-inset-y-1 ew-right-1'),
9034					$elm$html$Html$Attributes$class('ew-pointer-events-none ew-flex ew-items-center ew-justify-center'),
9035					$elm$html$Html$Attributes$class('ew-bg-base-bg'),
9036					$elm$html$Html$Attributes$class('before:ew-block before:ew-content-[\'\']'),
9037					$elm$html$Html$Attributes$class('before:ew-inset-0 before:ew-absolute'),
9038					$elm$html$Html$Attributes$class(_class)
9039				]),
9040			_List_fromArray(
9041				[
9042					A2(
9043					$elm$html$Html$div,
9044					_List_fromArray(
9045						[
9046							$elm$html$Html$Attributes$class('ew-relative')
9047						]),
9048					_List_fromArray(
9049						[child]))
9050				]));
9051	});
9052var $author$project$W$Internal$Input$viewWithIcon = F3(
9053	function (attrs, icon, input) {
9054		return A2(
9055			$author$project$W$Internal$Input$view,
9056			attrs,
9057			A2(
9058				$elm$html$Html$div,
9059				_List_fromArray(
9060					[
9061						$elm$html$Html$Attributes$class('ew-flex ew-items-stretch ew-w-full ew-relative ew-input-with-icon')
9062					]),
9063				_List_fromArray(
9064					[
9065						input,
9066						A2($author$project$W$Internal$Input$iconWrapper, 'ew-text-base-aux', icon)
9067					])));
9068	});
9069var $author$project$W$InputAutocomplete$viewCustom = F2(
9070	function (attrs_, props) {
9071		var valueData = function () {
9072			var _v8 = props.cN;
9073			var v = _v8;
9074			return v;
9075		}();
9076		var update_ = A2($author$project$W$InputAutocomplete$update, props.cm, props.cN);
9077		var attrs = $author$project$W$InputAutocomplete$applyAttrs(attrs_);
9078		var options = attrs.ca ? A2(
9079			$elm$core$List$filter,
9080			A2(
9081				$elm$core$Basics$composeR,
9082				$elm$core$Tuple$second,
9083				A2(
9084					$elm$core$Basics$composeR,
9085					valueData.gv,
9086					$author$project$W$InputAutocomplete$matches(valueData.en))),
9087			A2(
9088				$elm$core$List$indexedMap,
9089				$elm$core$Tuple$pair,
9090				A2($elm$core$Maybe$withDefault, _List_Nil, props.f9))) : A2(
9091			$elm$core$List$indexedMap,
9092			$elm$core$Tuple$pair,
9093			A2($elm$core$Maybe$withDefault, _List_Nil, props.f9));
9094		var highlighted = A2(
9095			$elm$core$Basics$modBy,
9096			A2(
9097				$elm$core$Basics$max,
9098				$elm$core$List$length(options),
9099				1),
9100			valueData.am);
9101		var showLoading = A2(
9102			$elm$core$Maybe$withDefault,
9103			_Utils_eq(props.f9, $elm$core$Maybe$Nothing) && (valueData.en !== ''),
9104			attrs.aJ);
9105		return function (x) {
9106			return A2(
9107				$elm$html$Html$div,
9108				_List_fromArray(
9109					[
9110						$elm$html$Html$Attributes$class('ew-relative')
9111					]),
9112				_List_fromArray(
9113					[
9114						A2(
9115						$elm$html$Html$div,
9116						_List_fromArray(
9117							[
9118			
9118					$elm$html$Html$Attributes$class('ew-input-autocomplete')
9119							]),
9120						_List_fromArray(
9121							[x])),
9122						A2(
9123						$elm$html$Html$div,
9124						_List_fromArray(
9125							[
9126								$elm$html$Html$Attributes$class('ew-input-autocomplete--options'),
9127								$elm$html$Html$Attributes$class('ew-absolute ew-top-full ew-mt-2 ew-left-0 ew-right-0'),
9128								$elm$html$Html$Attributes$class('ew-shadow ew-z-10 ew-bg-base-bg')
9129							]),
9130						_List_fromArray(
9131							[
9132								$author$project$W$Menu$view(
9133								_List_fromArray(
9134									[
9135										function () {
9136										var _v6 = attrs.cq;
9137										if (!_v6.$) {
9138											var optionsHeader_ = _v6.a;
9139											return A2(
9140												$elm$html$Html$div,
9141												_List_Nil,
9142												_List_fromArray(
9143													[
9144														A2(
9145														$elm$html$Html$div,
9146														_List_fromArray(
9147															[
9148																$elm$html$Html$Attributes$class('ew-p-3')
9149															]),
9150														_List_fromArray(
9151															[
9152																optionsHeader_(valueData.en)
9153															])),
9154														A2($author$project$W$Divider$view, _List_Nil, _List_Nil)
9155													]));
9156										} else {
9157											return $elm$html$Html$text('');
9158										}
9159									}(),
9160										A2(
9161										$elm$html$Html$div,
9162										_List_fromArray(
9163											[
9164												$elm$html$Html$Attributes$class('ew-overflow-y-auto ew-overflow-x-hidden ew-max-h-64 ew-w-full')
9165											]),
9166										A2(
9167											$elm$core$List$indexedMap,
9168											F2(
9169												function (viewIndex, _v7) {
9170													var index = _v7.a;
9171													var value = _v7.b;
9172													return A2(
9173														$author$project$W$Menu$viewButton,
9174														_List_fromArray(
9175															[
9176																$author$project$W$Menu$selected(
9177																_Utils_eq(highlighted, viewIndex))
9178															]),
9179														{
9180															aK: _List_fromArray(
9181																[
9182																	props.e0(value)
9183																]),
9184															s: update_(
9185																A2($author$project$W$InputAutocomplete$Select, index, value))
9186														});
9187												}),
9188											options))
9189									]))
9190							]))
9191					]));
9192		}(
9193			A3(
9194				$author$project$W$Internal$Input$viewWithIcon,
9195				{bV: attrs.bV, fQ: $elm$core$Maybe$Nothing, fR: '', bk: attrs.bk, ah: attrs.ah, aV: attrs.aV, bv: attrs.bv},
9196				showLoading ? $author$project$W$Loading$dots(
9197					_List_fromArray(
9198						[
9199							$author$project$W$Loading$size(20)
9200						])) : $author$project$W$Internal$Icons$chevronDown,
9201				A2(
9202					$elm$html$Html$Lazy$lazy,
9203					function (_v0) {
9204						return A2(
9205							$elm$html$Html$input,
9206							_Utils_ap(
9207								attrs.b$,
9208								_List_fromArray(
9209									[
9210										A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Attributes$placeholder, attrs.gb),
9211										$elm$html$Html$Attributes$disabled(attrs.bV || attrs.ah),
9212										$elm$html$Html$Attributes$readonly(attrs.ah),
9213										A3(
9214										$author$project$W$Internal$Helpers$attrIf,
9215										attrs.ah,
9216										$elm$html$Html$Attributes$attribute('aria-readonly'),
9217										'true'),
9218										A3(
9219										$author$project$W$Internal$Helpers$attrIf,
9220										attrs.bV,
9221										$elm$html$Html$Attributes$attribute('aria-disabled'),
9222										'true'),
9223										$elm$html$Html$Attributes$required(attrs.cw),
9224										$elm$html$Html$Attributes$autofocus(attrs.bE),
9225										$elm$html$Html$Attributes$autocomplete(false),
9226										$elm$html$Html$Attributes$id(props.fE),
9227										$elm$html$Html$Attributes$class(
9228										$author$project$W$Internal$Input$baseClass(attrs.aV)),
9229										$elm$html$Html$Attributes$class('ew-pr-10'),
9230										$elm$html$Html$Attributes$value(valueData.en),
9231										A2(
9232										$author$project$W$Internal$Helpers$maybeAttr,
9233										$elm$html$Html$Events$on('focusin'),
9234										A2($elm$core$Maybe$map, $elm$json$Json$Decode$succeed, attrs.cj)),
9235										A2(
9236										$author$project$W$Internal$Helpers$maybeAttr,
9237										$elm$html$Html$Events$on('focusout'),
9238										A2($elm$core$Maybe$map, $elm$json$Json$Decode$succeed, attrs.cg)),
9239										$elm$html$Html$Events$onFocus(
9240										update_($author$project$W$InputAutocomplete$Focus)),
9241										$elm$html$Html$Events$onBlur(
9242										update_($author$project$W$InputAutocomplete$Blur)),
9243										A2(
9244										$elm$html$Html$Events$on,
9245										'keydown',
9246										A2(
9247											$elm$json$Json$Decode$andThen,
9248											function (key) {
9249												switch (key) {
9250													case 'Enter':
9251														var _v2 = _Utils_Tuple2(attrs.ch, valueData.en);
9252														if ((!_v2.a.$) && (_v2.b === '')) {
9253															var onDone_ = _v2.a.a;
9254															return $elm$json$Json$Decode$succeed(onDone_);
9255														} else {
9256															return A2(
9257																$elm$core$Maybe$withDefault,
9258																A2(
9259																	$elm$core$Maybe$withDefault,
9260																	$elm$json$Json$Decode$fail('ignored action'),
9261																	A2(
9262																		$elm$core$Maybe$map,
9263																		function (msg) {
9264																			return $elm$json$Json$Decode$succeed(msg);
9265																		},
9266																		attrs.ci)),
9267																A2(
9268																	$elm$core$Maybe$map,
9269																	function (_v3) {
9270																		var value = _v3.b;
9271																		return $elm$json$Json$Decode$succeed(
9272																			update_(
9273																				A2($author$project$W$InputAutocomplete$Select, highlighted, value)));
9274																	},
9275																	A2(
9276																		$elm$core$Array$get,
9277																		highlighted,
9278																		$elm$core$Array$fromList(options))));
9279														}
9280													case 'Delete':
9281														var _v4 = _Utils_Tuple2(attrs.bh, valueData.en);
9282														if ((!_v4.a.$) && (_v4.b === '')) {
9283															var onDelete_ = _v4.a.a;
9284															return $elm$json$Json$Decode$succeed(onDelete_);
9285														} else {
9286															return $elm$json$Json$Decode$fail('ignored event');
9287														}
9288													case 'Backspace':
9289														var _v5 = _Utils_Tuple2(attrs.bh, valueData.en);
9290														if ((!_v5.a.$) && (_v5.b === '')) {
9291															var onDelete_ = _v5.a.a;
9292															return $elm$json$Json$Decode$succeed(onDelete_);
9293														} else {
9294															return $elm$json$Json$Decode$fail('ignored event');
9295														}
9296													case 'ArrowDown':
9297														return $elm$json$Json$Decode$succeed(
9298															update_($author$project$W$InputAutocomplete$ArrowDown));
9299													case 'ArrowUp':
9300														return $elm$json$Json$Decode$succeed(
9301															update_($author$project$W$InputAutocomplete$ArrowUp));
9302													default:
9303														return $elm$json$Json$Decode$fail('ignored key');
9304												}
9305											},
9306											A2($elm$json$Json$Decode$field, 'key', $elm$json$Json$Decode$string))),
9307										A2(
9308										$elm$html$Html$Events$on,
9309										'input',
9310										A2(
9311											$elm$json$Json$Decode$andThen,
9312											function (value) {
9313												return $elm$json$Json$Decode$succeed(
9314													update_(
9315														$author$project$W$InputAutocomplete$Input(value)));
9316											},
9317											A2(
9318												$elm$json$Json$Decode$at,
9319												_List_fromArray(
9320													['target', 'value']),
9321												$elm$json$Json$Decode$string)))
9322									])),
9323							_List_Nil);
9324					},
9325					valueData.en)));
9326	});
9327var $elm$virtual_dom$VirtualDom$map = _VirtualDom_map;
9328var $elm$html$Html$map = $elm$virtual_dom$VirtualDom$map;
9329var $elm$core$Platform$Cmd$map = _Platform_map;
9330var $elm$core$Tuple$mapFirst = F2(
9331	function (func, _v0) {
9332		var x = _v0.a;
9333		var y = _v0.b;
9334		return _Utils_Tuple2(
9335			func(x),
9336			y);
9337	});
9338var $elm$core$Tuple$mapSecond = F2(
9339	function (func, _v0) {
9340		var x = _v0.a;
9341		var y = _v0.b;
9342		return _Utils_Tuple2(
9343			x,
9344			func(y));
9345	});
9346var $dtwrks$elm_book$ElmBook$Internal$Msg$UpdateState = function (a) {
9347	return {$: 3, a: a};
9348};
9349var $dtwrks$elm_book$ElmBook$Actions$updateStateWithCmd = $dtwrks$elm_book$ElmBook$Internal$Msg$UpdateState;
9350var $dtwrks$elm_book$ElmBook$Actions$updateStateWithCmdWith = function (fn) {
9351	return A2($elm$core$Basics$composeL, $dtwrks$elm_book$ElmBook$Internal$Msg$UpdateState, fn);
9352};
9353var $dtwrks$elm_book$ElmBook$Actions$mapUpdateWithCmd = F2(
9354	function (config, msg) {
9355		var update_ = F2(
9356			function (msg_, state) {
9357				return A2(
9358					$elm$core$Tuple$mapSecond,
9359					$elm$core$Platform$Cmd$map(
9360						A2($elm$core$Basics$composeL, $dtwrks$elm_book$ElmBook$Actions$updateStateWithCmd, update_)),
9361					A2(
9362						$elm$core$Tuple$mapFirst,
9363						config.gu(state),
9364						A2(
9365							config.gx,
9366							msg_,
9367							config.fv(state))));
9368			});
9369		return A2($dtwrks$elm_book$ElmBook$Actions$updateStateWithCmdWith, update_, msg);
9370	});
9371var $author$project$Chapters$Form$InputAutocomplete$GetOptions = function (a) {
9372	return {$: 3, a: a};
9373};
9374var $author$project$Chapters$Form$InputAutocomplete$ScheduleGetOptions = function (a) {
9375	return {$: 2, a: a};
9376};
9377var $author$project$Chapters$Form$InputAutocomplete$debounceTime = 200;
9378var $elm$core$List$drop = F2(
9379	function (n, list) {
9380		drop:
9381		while (true) {
9382			if (n <= 0) {
9383				return list;
9384			} else {
9385				if (!list.b) {
9386					return list;
9387				} else {
9388					var x = list.a;
9389					var xs = list.b;
9390					var $temp$n = n - 1,
9391						$temp$list = xs;
9392					n = $temp$n;
9393					list = $temp$list;
9394					continue drop;
9395				}
9396			}
9397		}
9398	});
9399var $elm$core$Task$andThen = _Scheduler_andThen;
9400var $elm$core$Task$succeed = _Scheduler_succeed;
9401var $elm$core$Task$map = F2(
9402	function (func, taskA) {
9403		return A2(
9404			$elm$core$Task$andThen,
9405			function (a) {
9406				return $elm$core$Task$succeed(
9407					func(a));
9408			},
9409			taskA);
9410	});
9411var $elm$time$Time$Posix = $elm$core$Basics$identity;
9412var $elm$time$Time$millisToPosix = $elm$core$Basics$identity;
9413var $elm$core$Platform$Cmd$batch = _Platform_batch;
9414var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil);
9415var $elm$time$Time$Name = function (a) {
9416	return {$: 0, a: a};
9417};
9418var $elm$time$Time$Offset = function (a) {
9419	return {$: 1, a: a};
9420};
9421var $elm$time$Time$Zone = F2(
9422	function (a, b) {
9423		return {$: 0, a: a, b: b};
9424	});
9425var $elm$time$Time$customZone = $elm$time$Time$Zone;
9426var $elm$time$Time$now = _Time_now($elm$time$Time$millisToPosix);
9427var $author$project$W$InputAutocomplete$toValue = function (_v0) {
9428	var data = _v0;
9429	return data.cN;
9430};
9431var $author$project$W$InputAutocomplete$valueChanged = F2(
9432	function (a, b) {
9433		return !_Utils_eq(
9434			$author$project$W$InputAutocomplete$toValue(a),
9435			$author$project$W$InputAutocomplete$toValue(b));
9436	});
9437var $author$project$W$InputAutocomplete$onChange = F2(
9438	function (before, after) {
9439		return A2($author$project$W$InputAutocomplete$valueChanged, before, after) ? $author$project$W$InputAutocomplete$toValue(after) : $elm$core$Maybe$Nothing;
9440	});
9441var $elm$core$Task$Perform = $elm$core$Basics$identity;
9442var $elm$core$Task$init = $elm$core$Task$succeed(0);
9443var $elm$core$Task$map2 = F3(
9444	function (func, taskA, taskB) {
9445		return A2(
9446			$elm$core$Task$andThen,
9447			function (a) {
9448				return A2(
9449					$elm$core$Task$andThen,
9450					function (b) {
9451						return $elm$core$Task$succeed(
9452							A2(func, a, b));
9453					},
9454					taskB);
9455			},
9456			taskA);
9457	});
9458var $elm$core$Task$sequence = function (tasks) {
9459	return A3(
9460		$elm$core$List$foldr,
9461		$elm$core$Task$map2($elm$core$List$cons),
9462		$elm$core$Task$succeed(_List_Nil),
9463		tasks);
9464};
9465var $elm$core$Platform$sendToApp = _Platform_sendToApp;
9466var $elm$core$Task$spawnCmd = F2(
9467	function (router, _v0) {
9468		var task = _v0;
9469		return _Scheduler_spawn(
9470			A2(
9471				$elm$core$Task$andThen,
9472				$elm$core$Platform$sendToApp(router),
9473				task));
9474	});
9475var $elm$core$Task$onEffects = F3(
9476	function (router, commands, state) {
9477		return A2(
9478			$elm$core$Task$map,
9479			function (_v0) {
9480				return 0;
9481			},
9482			$elm$core$Task$sequence(
9483				A2(
9484					$elm$core$List$map,
9485					$elm$core$Task$spawnCmd(router),
9486					commands)));
9487	});
9488var $elm$core$Task$onSelfMsg = F3(
9489	function (_v0, _v1, _v2) {
9490		return $elm$core$Task$succeed(0);
9491	});
9492var $elm$core$Task$cmdMap = F2(
9493	function (tagger, _v0) {
9494		var task = _v0;
9495		return A2($elm$core$Task$map, tagger, task);
9496	});
9497_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap);
9498var $elm$core$Task$command = _Platform_leaf('Task');
9499var $elm$core$Task$perform = F2(
9500	function (toMessage, task) {
9501		return $elm$core$Task$command(
9502			A2($elm$core$Task$map, toMessage, task));
9503	});
9504var $elm$time$Time$posixToMillis = function (_v0) {
9505	var millis = _v0;
9506	return millis;
9507};
9508var $author$project$Chapters$Form$InputAutocomplete$GotOptions = function (a) {
9509	return {$: 4, a: a};
9510};
9511var $elm$core$Task$onError = _Scheduler_onError;
9512var $elm$core$Task$attempt = F2(
9513	function (resultToMessage, task) {
9514		return $elm$core$Task$command(
9515			A2(
9516				$elm$core$Task$onError,
9517				A2(
9518					$elm$core$Basics$composeL,
9519					A2($elm$core$Basics$composeL, $elm$core$Task$succeed, resultToMessage),
9520					$elm$core$Result$Err),
9521				A2(
9522					$elm$core$Task$andThen,
9523					A2(
9524						$elm$core$Basics$composeL,
9525						A2($elm$core$Basics$composeL, $elm$core$Task$succeed, resultToMessage),
9526						$elm$core$Result$Ok),
9527					task)));
9528	});
9529var $author$project$Chapters$Form$InputAutocomplete$matches = F2(
9530	function (a, b) {
9531		return A2(
9532			$elm$core$String$contains,
9533			$elm$core$String$toLower(a),
9534			$elm$core$String$toLower(b));
9535	});
9536var $elm$core$Process$sleep = _Process_sleep;
9537var $author$project$Chapters$Form$InputAutocomplete$searchAuthors = function (term) {
9538	return A2(
9539		$elm$core$Task$attempt,
9540		$author$project$Chapters$Form$InputAutocomplete$GotOptions,
9541		A2(
9542			$elm$core$Task$andThen,
9543			function (_v0) {
9544				return $elm$core$Task$succeed(
9545					A2(
9546						$elm$core$List$filter,
9547						function (author) {
9548							return A2($author$project$Chapters$Form$InputAutocomplete$matches, term, author.w) || A2($author$project$Chapters$Form$InputAutocomplete$matches, term, author.E);
9549						},
9550						$author$project$Chapters$Form$InputAutocomplete$elmAuthors));
9551			},
9552			$elm$core$Process$sleep(1000)));
9553};
9554var $author$project$W$InputAutocomplete$toString = function (_v0) {
9555	var input = _v0.en;
9556	return input;
9557};
9558var $author$project$Chapters$Form$InputAutocomplete$update = F2(
9559	function (msg, model) {
9560		switch (msg.$) {
9561			case 0:
9562				var value = msg.a;
9563				var _v1 = A2($author$project$W$InputAutocomplete$onChange, model.cN, value);
9564				if (!_v1.$) {
9565					var author = _v1.a;
9566					return _Utils_Tuple2(
9567						_Utils_update(
9568							model,
9569							{
9570								ai: _Utils_ap(
9571									model.ai,
9572									_List_fromArray(
9573										[author])),
9574								cN: value
9575							}),
9576						$elm$core$Platform$Cmd$none);
9577				} else {
9578					return _Utils_Tuple2(
9579						_Utils_update(
9580							model,
9581							{cN: value}),
9582						A2($elm$core$Task$perform, $author$project$Chapters$Form$InputAutocomplete$ScheduleGetOptions, $elm$time$Time$now));
9583				}
9584			case 1:
9585				return _Utils_Tuple2(
9586					_Utils_update(
9587						model,
9588						{
9589							ai: $elm$core$List$reverse(
9590								A2(
9591									$elm$core$List$drop,
9592									1,
9593									$elm$core$List$reverse(model.ai)))
9594						}),
9595					$elm$core$Platform$Cmd$none);
9596			case 2:
9597				var time = msg.a;
9598				var targetTime = $elm$time$Time$millisToPosix(
9599					$author$project$Chapters$Form$InputAutocomplete$debounceTime + $elm$time$Time$posixToMillis(time));
9600				return _Utils_Tuple2(
9601					_Utils_update(
9602						model,
9603						{
9604							bS: $elm$core$Maybe$Just(targetTime),
9605							aJ: true
9606						}),
9607					A2(
9608						$elm$core$Task$perform,
9609						$author$project$Chapters$Form$InputAutocomplete$GetOptions,
9610						A2(
9611							$elm$core$Task$map,
9612							function (_v2) {
9613								return targetTime;
9614							},
9615							$elm$core$Process$sleep($author$project$Chapters$Form$InputAutocomplete$debounceTime))));
9616			case 3:
9617				var debounce = msg.a;
9618				var searchTerm = $author$project$W$InputAutocomplete$toString(model.cN);
9619				var _v3 = model.bS;
9620				if (!_v3.$) {
9621					var target = _v3.a;
9622					return ((_Utils_cmp(
9623						$elm$time$Time$posixToMillis(debounce),
9624						$elm$time$Time$posixToMillis(target)) > -1) && (searchTerm !== '')) ? _Utils_Tuple2(
9625						model,
9626						$author$project$Chapters$Form$InputAutocomplete$searchAuthors(searchTerm)) : _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
9627				} else {
9628					return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
9629				}
9630			default:
9631				var result = msg.a;
9632				if (!result.$) {
9633					var options = result.a;
9634					return _Utils_Tuple2(
9635						_Utils_update(
9636							model,
9637							{
9638								aJ: false,
9639								f9: $elm$core$Maybe$Just(options)
9640							}),
9641						$elm$core$Platform$Cmd$none);
9642				} else {
9643					return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
9644				}
9645		}
9646	});
9647var $author$project$Chapters$Form$InputAutocomplete$viewDoc = function (_v0) {
9648	var title = _v0.a;
9649	var fn = _v0.b;
9650	return _Utils_Tuple2(
9651		title,
9652		function (model) {
9653			return A2(
9654				$elm$html$Html$map,
9655				$dtwrks$elm_book$ElmBook$Actions$mapUpdateWithCmd(
9656					{
9657						fv: function ($) {
9658							return $.cU;
9659						},
9660						gu: F2(
9661							function (state, m) {
9662								return _Utils_update(
9663									state,
9664									{cU: m});
9665							}),
9666						gx: $author$project$Chapters$Form$InputAutocomplete$update
9667					}),
9668				fn(model.cU));
9669		});
9670};
9671var $author$project$W$InputAutocomplete$localFilter = function (attrs) {
9672	return _Utils_update(
9673		attrs,
9674		{ca: true});
9675};
9676var $author$project$W$InputAutocomplete$viewSyncCustom = F2(
9677	function (attrs_, props) {
9678		return A2(
9679			$author$project$W$InputAutocomplete$viewCustom,
9680			A2($elm$core$List$cons, $author$project$W$InputAutocomplete$localFilter, attrs_),
9681			{
9682				fE: props.fE,
9683				cm: props.cm,
9684				f9: $elm$core$Maybe$Just(props.f9),
9685				e0: props.e0,
9686				cN: props.cN
9687			});
9688	});
9689var $author$project$Chapters$Form$InputAutocomplete$chapter_ = A2(
9690	$dtwrks$elm_book$ElmBook$Chapter$renderStatefulComponentList,
9691	A2(
9692		$elm$core$List$map,
9693		$author$project$Chapters$Form$InputAutocomplete$viewDoc,
9694		_List_fromArray(
9695			[
9696				_Utils_Tuple2(
9697				'Default',
9698				function (_v0) {
9699					var value = _v0.cN;
9700					var options = _v0.f9;
9701					var selected = _v0.ai;
9702					var isLoading = _v0.aJ;
9703					return A2(
9704						$author$project$W$Container$view,
9705						_List_fromArray(
9706							[$author$project$W$Container$gap_2]),
9707						_List_fromArray(
9708							[
9709								A2(
9710								$author$project$W$Container$view,
9711								_List_fromArray(
9712									[$author$project$W$Container$horizontal, $author$project$W$Container$gap_2]),
9713								A2(
9714									$elm$core$List$map,
9715									function (x) {
9716										return A2(
9717											$author$project$W$Tag$view,
9718											_List_Nil,
9719											_List_fromArray(
9720												[
9721													$elm$html$Html$text(x.w)
9722												]));
9723									},
9724									selected)),
9725								A2(
9726								$author$project$W$InputAutocomplete$viewCustom,
9727								_List_fromArray(
9728									[
9729										$author$project$W$InputAutocomplete$placeholder('Search by name…'),
9730										$author$project$W$InputAutocomplete$isLoading(isLoading),
9731										$author$project$W$InputAutocomplete$onDelete($author$project$Chapters$Form$InputAutocomplete$OnRemoveLast),
9732										$author$project$W$InputAutocomplete$optionsHeader(
9733										function (input) {
9734											return (input === '') ? A2(
9735												$author$project$W$Text$view,
9736												_List_fromArray(
9737													[$author$project$W$Text$small]),
9738												_List_fromArray(
9739													[
9740														$elm$html$Html$text('Please write a few letters of an elm author.')
9741													])) : A2(
9742												$author$project$W$Text$view,
9743												_List_fromArray(
9744													[$author$project$W$Text$small]),
9745												_List_fromArray(
9746													[
9747														$elm$html$Html$text('Searching for \"' + (input + '\"...'))
9748													]));
9749										})
9750									]),
9751								{
9752									fE: 'autocomplete-read-only',
9753									cm: $author$project$Chapters$Form$InputAutocomplete$OnInput,
9754									f9: options,
9755									e0: function (option) {
9756										return A2(
9757											$elm$html$Html$div,
9758											_List_Nil,
9759											_List_fromArray(
9760												[
9761													A2(
9762													$elm$html$Html$p,
9763													_List_fromArray(
9764														[
9765															$elm$html$Html$Attributes$class('ew-m-0 ew-p-0')
9766														]),
9767													_List_fromArray(
9768														[
9769															$elm$html$Html$text(option.w)
9770														])),
9771													A2(
9772													$elm$html$Html$p,
9773													_List_fromArray(
9774														[
9775															$elm$html$Html$Attributes$class('ew-m-0 ew-p-0 ew-text-sm')
9776														]),
9777													_List_fromArray(
9778														[
9779															$elm$html$Html$text(option.E)
9780														]))
9781												]));
9782									},
9783									cN: value
9784								})
9785							]));
9786				}),
9787				_Utils_Tuple2(
9788				'Sync',
9789				function (_v1) {
9790					var value = _v1.cN;
9791					var options = _v1.f9;
9792					var selected = _v1.ai;
9793					var isLoading = _v1.aJ;
9794					return A2(
9795						$author$project$W$Container$view,
9796						_List_fromArray(
9797							[$author$project$W$Container$gap_2]),
9798						_List_fromArray(
9799							[
9800								A2(
9801								$author$project$W$Container$view,
9802								_List_fromArray(
9803									[$author$project$W$Container$horizontal, $author$project$W$Container$gap_2]),
9804								A2(
9805									$elm$core$List$map,
9806									function (x) {
9807										return A2(
9808											$author$project$W$Tag$view,
9809											_List_Nil,
9810											_List_fromArray(
9811												[
9812													$elm$html$Html$text(x.w)
9813												]));
9814									},
9815									selected)),
9816								A2(
9817								$author$project$W$InputAutocomplete$viewSyncCustom,
9818								_List_fromArray(
9819									[
9820										$author$project$W$InputAutocomplete$placeholder('Search by name…'),
9821										$author$project$W$InputAutocomplete$isLoading(isLoading),
9822										$author$project$W$InputAutocomplete$onDelete($author$project$Chapters$Form$InputAutocomplete$OnRemoveLast),
9823										$author$project$W$InputAutocomplete$optionsHeader(
9824										function (input) {
9825											return (input === '') ? A2(
9826												$author$project$W$Text$view,
9827												_List_fromArray(
9828													[$author$project$W$Text$small]),
9829												_List_fromArray(
9830													[
9831														$elm$html$Html$text('Please write a few letters of an elm author.')
9832													])) : A2(
9833												$author$project$W$Text$view,
9834												_List_fromArray(
9835													[$author$project$W$Text$small]),
9836												_List_fromArray(
9837													[
9838														$elm$html$Html$text('Searching for \"' + (input + '\"...'))
9839													]));
9840										})
9841									]),
9842								{
9843									fE: 'autocomplete-read-only',
9844									cm: $author$project$Chapters$Form$InputAutocomplete$OnInput,
9845									f9: $author$project$Chapters$Form$InputAutocomplete$elmAuthors,
9846									e0: function (option) {
9847										return A2(
9848											$elm$html$Html$div,
9849											_List_Nil,
9850											_List_fromArray(
9851												[
9852													A2(
9853													$elm$html$Html$p,
9854													_List_fromArray(
9855														[
9856															$elm$html$Html$Attributes$class('ew-m-0 ew-p-0')
9857														]),
9858													_List_fromArray(
9859														[
9860															$elm$html$Html$text(option.w)
9861														])),
9862													A2(
9863													$elm$html$Html$p,
9864													_List_fromArray(
9865														[
9866															$elm$html$Html$Attributes$class('ew-m-0 ew-p-0 ew-text-sm')
9867														]),
9868													_List_fromArray(
9869														[
9870															$elm$html$Html$text(option.E)
9871														]))
9872												]));
9873									},
9874									cN: value
9875								})
9876							]));
9877				})
9878			])),
9879	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Autocomplete'));
9880var $author$project$W$InputCheckbox$Attribute = $elm$core$Basics$identity;
9881var $author$project$W$InputCheckbox$color = function (v) {
9882	return function (attrs) {
9883		return _Utils_update(
9884			attrs,
9885			{U: v});
9886	};
9887};
9888var $author$project$W$InputCheckbox$colorful = function (attrs) {
9889	return _Utils_update(
9890		attrs,
9891		{bN: true});
9892};
9893var $author$project$W$InputCheckbox$disabled = function (v) {
9894	return function (attrs) {
9895		return _Utils_update(
9896			attrs,
9897			{bV: v});
9898	};
9899};
9900var $dtwrks$elm_book$ElmBook$Actions$stringFromBool = function (value) {
9901	return value ? 'True' : 'False';
9902};
9903var $dtwrks$elm_book$ElmBook$Actions$logActionWithBool = $dtwrks$elm_book$ElmBook$Actions$logActionWith($dtwrks$elm_book$ElmBook$Actions$stringFromBool);
9904var $author$project$W$Container$pad_3 = $author$project$W$Container$addClass('ew-p-3');
9905var $author$project$W$InputCheckbox$readOnly = function (v) {
9906	return function (attrs) {
9907		return _Utils_update(
9908			attrs,
9909			{ah: v});
9910	};
9911};
9912var $author$project$W$InputCheckbox$small = function (attrs) {
9913	return _Utils_update(
9914		attrs,
9915		{aV: true});
9916};
9917var $author$project$W$InputCheckbox$Toggle = 1;
9918var $author$project$W$InputCheckbox$toggle = function (attrs) {
9919	return _Utils_update(
9920		attrs,
9921		{x: 1});
9922};
9923var $author$project$W$InputCheckbox$Checkbox = 0;
9924var $author$project$W$InputCheckbox$defaultAttrs = {U: $uncover_co$elm_theme$Theme$primaryBackgroun
9924d, bN: false, bV: false, b$: _List_Nil, ah: false, aV: false, x: 0};
9925var $author$project$W$InputCheckbox$applyAttrs = function (attrs) {
9926	return A3(
9927		$elm$core$List$foldl,
9928		F2(
9929			function (_v0, a) {
9930				var fn = _v0;
9931				return fn(a);
9932			}),
9933		$author$project$W$InputCheckbox$defaultAttrs,
9934		attrs);
9935};
9936var $author$project$W$InputCheckbox$baseAttrs = F2(
9937	function (attrs_, value) {
9938		var attrs = $author$project$W$InputCheckbox$applyAttrs(attrs_);
9939		return _Utils_ap(
9940			attrs.b$,
9941			_List_fromArray(
9942				[
9943					$elm$html$Html$Attributes$classList(
9944					_List_fromArray(
9945						[
9946							_Utils_Tuple2('ew-toggle', attrs.x === 1),
9947							_Utils_Tuple2('ew-checkbox ew-rounded before:ew-rounded-sm', !attrs.x),
9948							_Utils_Tuple2('ew-small', attrs.aV),
9949							_Utils_Tuple2('ew-colorful', attrs.bN)
9950						])),
9951					$uncover_co$elm_theme$Theme$stylesIf(
9952					_List_fromArray(
9953						[
9954							_Utils_Tuple3('color', attrs.U, !attrs.bV),
9955							_Utils_Tuple3('color', $uncover_co$elm_theme$Theme$baseAux, attrs.bV),
9956							_Utils_Tuple3('--fg-color', $uncover_co$elm_theme$Theme$baseBackground, true)
9957						])),
9958					$elm$html$Html$Attributes$type_('checkbox'),
9959					$elm$html$Html$Attributes$checked(value),
9960					$elm$html$Html$Attributes$disabled(attrs.bV || attrs.ah),
9961					$elm$html$Html$Attributes$readonly(attrs.ah)
9962				]));
9963	});
9964var $author$project$W$InputCheckbox$view = F2(
9965	function (attrs_, props) {
9966		return A2(
9967			$elm$html$Html$input,
9968			A2(
9969				$elm$core$List$cons,
9970				$elm$html$Html$Events$onCheck(props.cm),
9971				A2($author$project$W$InputCheckbox$baseAttrs, attrs_, props.cN)),
9972			_List_Nil);
9973	});
9974var $author$project$Chapters$Form$InputCheckbox$chapter_ = A2(
9975	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
9976	_List_fromArray(
9977		[
9978			_Utils_Tuple2(
9979			'Default',
9980			A2(
9981				$author$project$W$InputCheckbox$view,
9982				_List_Nil,
9983				{
9984					cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
9985					cN: true
9986				})),
9987			_Utils_Tuple2(
9988			'Disabled (Checked)',
9989			A2(
9990				$author$project$W$InputCheckbox$view,
9991				_List_fromArray(
9992					[
9993						$author$project$W$InputCheckbox$disabled(true)
9994					]),
9995				{
9996					cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
9997					cN: true
9998				})),
9999			_Utils_Tuple2(
10000			'Disabled (Unchecked)',
10001			A2(
10002				$author$project$W$InputCheckbox$view,
10003				_List_fromArray(
10004					[
10005						$author$project$W$InputCheckbox$disabled(true)
10006					]),
10007				{
10008					cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
10009					cN: false
10010				})),
10011			_Utils_Tuple2(
10012			'Read Only',
10013			A2(
10014				$author$project$W$InputCheckbox$view,
10015				_List_fromArray(
10016					[
10017						$author$project$W$InputCheckbox$readOnly(true)
10018					]),
10019				{
10020					cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
10021					cN: true
10022				})),
10023			_Utils_Tuple2(
10024			'Custom Color',
10025			A2(
10026				$author$project$W$InputCheckbox$view,
10027				_List_fromArray(
10028					[
10029						$author$project$W$InputCheckbox$color('red')
10030					]),
10031				{
10032					cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
10033					cN: true
10034				})),
10035			_Utils_Tuple2(
10036			'Different Sizes',
10037			A2(
10038				$elm$html$Html$div,
10039				_List_Nil,
10040				_List_fromArray(
10041					[
10042						A2(
10043						$author$project$W$InputCheckbox$view,
10044						_List_Nil,
10045						{
10046							cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
10047							cN: true
10048						}),
10049						A2(
10050						$elm$html$Html$div,
10051						_List_fromArray(
10052							[
10053								A2($elm$html$Html$Attributes$style, 'display', 'inline-block'),
10054								A2($elm$html$Html$Attributes$style, 'width', '8px')
10055							]),
10056						_List_Nil),
10057						A2(
10058						$author$project$W$InputCheckbox$view,
10059						_List_fromArray(
10060							[$author$project$W$InputCheckbox$small]),
10061						{
10062							cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
10063							cN: true
10064						})
10065					]))),
10066			_Utils_Tuple2(
10067			'Colorful',
10068			A2(
10069				$elm$html$Html$div,
10070				_List_Nil,
10071				_List_fromArray(
10072					[
10073						A2(
10074						$author$project$W$InputCheckbox$view,
10075						_List_fromArray(
10076							[$author$project$W$InputCheckbox$colorful]),
10077						{
10078							cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
10079							cN: false
10080						}),
10081						A2(
10082						$elm$html$Html$div,
10083						_List_fromArray(
10084							[
10085								A2($elm$html$Html$Attributes$style, 'display', 'inline-block'),
10086								A2($elm$html$Html$Attributes$style, 'width', '8px')
10087							]),
10088						_List_Nil),
10089						A2(
10090						$author$project$W$InputCheckbox$view,
10091						_List_fromArray(
10092							[$author$project$W$InputCheckbox$small, $author$project$W$InputCheckbox$colorful]),
10093						{
10094							cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
10095							cN: false
10096						})
10097					]))),
10098			_Utils_Tuple2(
10099			'Toggle',
10100			A2(
10101				$author$project$W$Container$view,
10102				_List_fromArray(
10103					[$author$project$W$Container$card, $author$project$W$Container$pad_3]),
10104				_List_fromArray(
10105					[
10106						A2(
10107						$author$project$W$InputCheckbox$view,
10108						_List_fromArray(
10109							[$author$project$W$InputCheckbox$toggle]),
10110						{
10111							cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
10112							cN: true
10113						})
10114					]))),
10115			_Utils_Tuple2(
10116			'Toggle (Small)',
10117			A2(
10118				$author$project$W$Container$view,
10119				_List_fromArray(
10120					[$author$project$W$Container$card, $author$project$W$Container$pad_3]),
10121				_List_fromArray(
10122					[
10123						A2(
10124						$author$project$W$InputCheckbox$view,
10125						_List_fromArray(
10126							[$author$project$W$InputCheckbox$toggle, $author$project$W$InputCheckbox$small]),
10127						{
10128							cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithBool('onInput'),
10129							cN: true
10130						})
10131					])))
10132		]),
10133	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Checkbox'));
10134var $avh4$elm_color$Color$RgbaSpace = F4(
10135	function (a, b, c, d) {
10136		return {$: 0, a: a, b: b, c: c, d: d};
10137	});
10138var $avh4$elm_color$Color$blue = A4($avh4$elm_color$Color$RgbaSpace, 52 / 255, 101 / 255, 164 / 255, 1.0);
10139var $author$project$W$InputColor$Attribute = $elm$core$Basics$identity;
10140var $author$project$W$InputColor$disabled = function (v) {
10141	return function (attrs) {
10142		return _Utils_update(
10143			attrs,
10144			{bV: v});
10145	};
10146};
10147var $author$project$W$InputColor$readOnly = function (v) {
10148	return function (attrs) {
10149		return _Utils_update(
10150			attrs,
10151			{ah: v});
10152	};
10153};
10154var $avh4$elm_color$Color$red = A4($avh4$elm_color$Color$RgbaSpace, 204 / 255, 0 / 255, 0 / 255, 1.0);
10155var $tesk9$palette$Internal$Opacity$Opacity = $elm$core$Basics$identity;
10156var $elm$core$Basics$clamp = F3(
10157	function (low, high, number) {
10158		return (_Utils_cmp(number, low) < 0) ? low : ((_Utils_cmp(number, high) > 0) ? high : number);
10159	});
10160var $tesk9$palette$Internal$Opacity$custom = A2(
10161	$elm$core$Basics$composeL,
10162	$elm$core$Basics$identity,
10163	A2($elm$core$Basics$clamp, 0, 1.0));
10164var $tesk9$palette$Internal$Opacity$opaque = $tesk9$palette$Internal$Opacity$custom(1.0);
10165var $tesk9$palette$Internal$Color$RGBA = function (a) {
10166	return {$: 1, a: a};
10167};
10168var $elm$core$Basics$abs = function (n) {
10169	return (n < 0) ? (-n) : n;
10170};
10171var $tesk9$palette$Internal$RGBA$Color = $elm$core$Basics$identity;
10172var $tesk9$palette$Internal$RGBA$fromChannels = function (_v0) {
10173	var red = _v0.gh;
10174	var green = _v0.fx;
10175	var blue = _v0.fd;
10176	var alpha = _v0.av;
10177	return {
10178		av: alpha,
10179		fd: A3($elm$core$Basics$clamp, 0, 255, blue),
10180		fx: A3($elm$core$Basics$clamp, 0, 255, green),
10181		gh: A3($elm$core$Basics$clamp, 0, 255, red)
10182	};
10183};
10184var $tesk9$palette$Internal$RGBA$fromHSLA = function (hsl) {
10185	var hue = hsl.ek;
10186	var alpha = hsl.av;
10187	var saturation = hsl.eT / 100;
10188	var lightness = hsl.ez / 100;
10189	var hueIsBetween = F2(
10190		function (lowerBound, upperBound) {
10191			return (_Utils_cmp(lowerBound, hue) < 1) && (_Utils_cmp(hue, upperBound) < 1);
10192		});
10193	var chroma = (1 - $elm$core$Basics$abs((2 * lightness) - 1)) * saturation;
10194	var lightnessModifier = lightness - (chroma / 2);
10195	var zigUp = function (xIntercept) {
10196		return (chroma * (hue - xIntercept)) / 60;
10197	};
10198	var zigDown = function (xIntercept) {
10199		return (-1) * zigUp(xIntercept);
10200	};
10201	var _v0 = A2(hueIsBetween, 0, 60) ? _Utils_Tuple3(
10202		chroma,
10203		zigUp(0),
10204		0) : (A2(hueIsBetween, 60, 120) ? _Utils_Tuple3(
10205		zigDown(120),
10206		chroma,
10207		0) : (A2(hueIsBetween, 120, 180) ? _Utils_Tuple3(
10208		0,
10209		chroma,
10210		zigUp(120)) : (A2(hueIsBetween, 180, 240) ? _Utils_Tuple3(
10211		0,
10212		zigDown(240),
10213		chroma) : (A2(hueIsBetween, 240, 300) ? _Utils_Tuple3(
10214		zigUp(240),
10215		0,
10216		chroma) : _Utils_Tuple3(
10217		chroma,
10218		0,
10219		zigDown(360))))));
10220	var r = _v0.a;
10221	var g = _v0.b;
10222	var b = _v0.c;
10223	return $tesk9$palette$Internal$RGBA$fromChannels(
10224		{av: alpha, fd: (b + lightnessModifier) * 255, fx: (g + lightnessModifier) * 255, gh: (r + lightnessModifier) * 255});
10225};
10226var $tesk9$palette$Internal$HSLA$toChannels = function (_v0) {
10227	var values = _v0;
10228	return values;
10229};
10230var $tesk9$palette$Internal$Color$convertHSLToRGBA = function (color) {
10231	return $tesk9$palette$Internal$Color$RGBA(
10232		$tesk9$palette$Internal$RGBA$fromHSLA(
10233			$tesk9$palette$Internal$HSLA$toChannels(color)));
10234};
10235var $tesk9$palette$Internal$Color$asRGBA = function (color) {
10236	asRGBA:
10237	while (true) {
10238		if (color.$ === 1) {
10239			var values = color.a;
10240			return values;
10241		} else {
10242			var hslValues = color.a;
10243			var $temp$color = $tesk9$palette$Internal$Color$convertHSLToRGBA(hslValues);
10244			color = $temp$color;
10245			continue asRGBA;
10246		}
10247	}
10248};
10249var $tesk9$palette$Internal$RGBA$toChannels = function (_v0) {
10250	var values = _v0;
10251	return values;
10252};
10253var $tesk9$palette$SolidColor$toRGB = function (_v0) {
10254	var color = _v0;
10255	var _v1 = $tesk9$palette$Internal$RGBA$toChannels(
10256		$tesk9$palette$Internal$Color$asRGBA(color));
10257	var red = _v1.gh;
10258	var green = _v1.fx;
10259	var blue = _v1.fd;
10260	return _Utils_Tuple3(red, green, blue);
10261};
10262var $elm$core$Dict$RBEmpty_elm_builtin = {$: -2};
10263var $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin;
10264var $elm$core$Dict$Black = 1;
10265var $elm$core$Dict$RBNode_elm_builtin = F5(
10266	function (a, b, c, d, e) {
10267		return {$: -1, a: a, b: b, c: c, d: d, e: e};
10268	});
10269var $elm$core$Dict$Red = 0;
10270var $elm$core$Dict$balance = F5(
10271	function (color, key, value, left, right) {
10272		if ((right.$ === -1) && (!right.a)) {
10273			var _v1 = right.a;
10274			var rK = right.b;
10275			var rV = right.c;
10276			var rLeft = right.d;
10277			var rRight = right.e;
10278			if ((left.$ === -1) && (!left.a)) {
10279				var _v3 = left.a;
10280				var lK = left.b;
10281				var lV = left.c;
10282				var lLeft = left.d;
10283				var lRight = left.e;
10284				return A5(
10285					$elm$core$Dict$RBNode_elm_builtin,
10286					0,
10287					key,
10288					value,
10289					A5($elm$core$Dict$RBNode_elm_builtin, 1, lK, lV, lLeft, lRight),
10290					A5($elm$core$Dict$RBNode_elm_builtin, 1, rK, rV, rLeft, rRight));
10291			} else {
10292				return A5(
10293					$elm$core$Dict$RBNode_elm_builtin,
10294					color,
10295					rK,
10296					rV,
10297					A5($elm$core$Dict$RBNode_elm_builtin, 0, key, value, left, rLeft),
10298					rRight);
10299			}
10300		} else {
10301			if ((((left.$ === -1) && (!left.a)) && (left.d.$ === -1)) && (!left.d.a)) {
10302				var _v5 = left.a;
10303				var lK = left.b;
10304				var lV = left.c;
10305				var _v6 = left.d;
10306				var _v7 = _v6.a;
10307				var llK = _v6.b;
10308				var llV = _v6.c;
10309				var llLeft = _v6.d;
10310				var llRight = _v6.e;
10311				var lRight = left.e;
10312				return A5(
10313					$elm$core$Dict$RBNode_elm_builtin,
10314					0,
10315					lK,
10316					lV,
10317					A5($elm$core$Dict$RBNode_elm_builtin, 1, llK, llV, llLeft, llRight),
10318					A5($elm$core$Dict$RBNode_elm_builtin, 1, key, value, lRight, right));
10319			} else {
10320				return A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right);
10321			}
10322		}
10323	});
10324var $elm$core$Basics$compare = _Utils_compare;
10325var $elm$core$Dict$insertHelp = F3(
10326	function (key, value, dict) {
10327		if (dict.$ === -2) {
10328			return A5($elm$core$Dict$RBNode_elm_builtin, 0, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin);
10329		} else {
10330			var nColor = dict.a;
10331			var nKey = dict.b;
10332			var nValue = dict.c;
10333			var nLeft = dict.d;
10334			var nRight = dict.e;
10335			var _v1 = A2($elm$core$Basics$compare, key, nKey);
10336			switch (_v1) {
10337				case 0:
10338					return A5(
10339						$elm$core$Dict$balance,
10340						nColor,
10341						nKey,
10342						nValue,
10343						A3($elm$core$Dict$insertHelp, key, value, nLeft),
10344						nRight);
10345				case 1:
10346					return A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight);
10347				default:
10348					return A5(
10349						$elm$core$Dict$balance,
10350						nColor,
10351						nKey,
10352						nValue,
10353						nLeft,
10354						A3($elm$core$Dict$insertHelp, key, value, nRight));
10355			}
10356		}
10357	});
10358var $elm$core$Dict$insert = F3(
10359	function (key, value, dict) {
10360		var _v0 = A3($elm$core$Dict$insertHelp, key, value, dict);
10361		if ((_v0.$ === -1) && (!_v0.a)) {
10362			var _v1 = _v0.a;
10363			var k = _v0.b;
10364			var v = _v0.c;
10365			var l = _v0.d;
10366			var r = _v0.e;
10367			return A5($elm$core$Dict$RBNode_elm_builtin, 1, k, v, l, r);
10368		} else {
10369			var x = _v0;
10370			return x;
10371		}
10372	});
10373var $elm$core$Dict$fromList = function (assocs) {
10374	return A3(
10375		$elm$core$List$foldl,
10376		F2(
10377			function (_v0, dict) {
10378				var key = _v0.a;
10379				var value = _v0.b;
10380				return A3($elm$core$Dict$insert, key, value, dict);
10381			}),
10382		$elm$core$Dict$empty,
10383		assocs);
10384};
10385var $elm$core$Dict$get = F2(
10386	function (targetKey, dict) {
10387		get:
10388		while (true) {
10389			if (dict.$ === -2) {
10390				return $elm$core$Maybe$Nothing;
10391			} else {
10392				var key = dict.b;
10393				var value = dict.c;
10394				var left = dict.d;
10395				var right = dict.e;
10396				var _v1 = A2($elm$core$Basics$compare, targetKey, key);
10397				switch (_v1) {
10398					case 0:
10399						var $temp$targetKey = targetKey,
10400							$temp$dict = left;
10401						targetKey = $temp$targetKey;
10402						dict = $temp$dict;
10403						continue get;
10404					case 1:
10405						return $elm$core$Maybe$Just(value);
10406					default:
10407						var $temp$targetKey = targetKey,
10408							$temp$dict = right;
10409						targetKey = $temp$targetKey;
10410						dict = $temp$dict;
10411						continue get;
10412				}
10413			}
10414		}
10415	});
10416var $tesk9$palette$Internal$Hex$getHexSymbol = function (m) {
10417	var hexValues = $elm$core$Dict$fromList(
10418		_List_fromArray(
10419			[
10420				_Utils_Tuple2(0, '0'),
10421				_Utils_Tuple2(1, '1'),
10422				_Utils_Tuple2(2, '2'),
10423				_Utils_Tuple2(3, '3'),
10424				_Utils_Tuple2(4, '4'),
10425				_Utils_Tuple2(5, '5'),
10426				_Utils_Tuple2(6, '6'),
10427				_Utils_Tuple2(7, '7'),
10428				_Utils_Tuple2(8, '8'),
10429				_Utils_Tuple2(9, '9'),
10430				_Utils_Tuple2(10, 'A'),
10431				_Utils_Tuple2(11, 'B'),
10432				_Utils_Tuple2(12, 'C'),
10433				_Utils_Tuple2(13, 'D'),
10434				_Utils_Tuple2(14, 'E'),
10435				_Utils_Tuple2(15, 'F')
10436			]));
10437	return A2(
10438		$elm$core$Maybe$withDefault,
10439		'0',
10440		A2($elm$core$Dict$get, m, hexValues));
10441};
10442var $elm$core$String$cons = _String_cons;
10443var $elm$core$String$fromChar = function (_char) {
10444	return A2($elm$core$String$cons, _char, '');
10445};
10446var $elm$core$String$length = _String_length;
10447var $elm$core$Bitwise$shiftRightBy = _Bitwise_shiftRightBy;
10448var $elm$core$String$repeatHelp = F3(
10449	function (n, chunk, result) {
10450		return (n <= 0) ? result : A3(
10451			$elm$core$String$repeatHelp,
10452			n >> 1,
10453			_Utils_ap(chunk, chunk),
10454			(!(n & 1)) ? result : _Utils_ap(result, chunk));
10455	});
10456var $elm$core$String$repeat = F2(
10457	function (n, chunk) {
10458		return A3($elm$core$String$repeatHelp, n, chunk, '');
10459	});
10460var $elm$core$String$padLeft = F3(
10461	function (n, _char, string) {
10462		return _Utils_ap(
10463			A2(
10464				$elm$core$String$repeat,
10465				n - $elm$core$String$length(string),
10466				$elm$core$String$fromChar(_char)),
10467			string);
10468	});
10469var $elm$core$Basics$round = _Basics_round;
10470var $tesk9$palette$Internal$Hex$decToHex = function (c) {
10471	var nextValue = function (_v0) {
10472		nextValue:
10473		while (true) {
10474			var dec = _v0.a;
10475			var hex = _v0.b;
10476			if (!dec) {
10477				return hex;
10478			} else {
10479				var $temp$_v0 = _Utils_Tuple2(
10480					(dec / 16) | 0,
10481					_Utils_ap(
10482						$tesk9$palette$Internal$Hex$getHexSymbol(dec % 16),
10483						hex));
10484				_v0 = $temp$_v0;
10485				continue nextValue;
10486			}
10487		}
10488	};
10489	return A3(
10490		$elm$core$String$padLeft,
10491		2,
10492		'0',
10493		nextValue(
10494			_Utils_Tuple2(
10495				$elm$core$Basics$round(c),
10496				'')));
10497};
10498var $tesk9$palette$Internal$Opacity$toFloat = function (_v0) {
10499	var v = _v0;
10500	return v;
10501};
10502var $tesk9$palette$Internal$Hex$toStringWithOpacity = function (_v0) {
10503	var red = _v0.gh;
10504	var green = _v0.fx;
10505	var blue = _v0.fd;
10506	var alpha = _v0.av;
10507	var opacityInDec = $tesk9$palette$Internal$Hex$decToHex(
10508		$tesk9$palette$Internal$Opacity$toFloat(alpha) * 255);
10509	return '#' + ($tesk9$palette$Internal$Hex$decToHex(red) + ($tesk9$palette$Internal$Hex$decToHex(green) + ($tesk9$palette$Internal$Hex$decToHex(blue) + opacityInDec)));
10510};
10511var $tesk9$palette$Internal$Hex$toStringWithoutOpacity = function (_v0) {
10512	var red = _v0.gh;
10513	var green = _v0.fx;
10514	var blue = _v0.fd;
10515	return '#' + ($tesk9$palette$Internal$Hex$decToHex(red) + ($tesk9$palette$Internal$Hex$decToHex(green) + $tesk9$palette$Internal$Hex$decToHex(blue)));
10516};
10517var $tesk9$palette$Internal$Hex$toString = function (values) {
10518	var alpha = values.av;
10519	return _Utils_eq($tesk9$palette$Internal$Opacity$opaque, alpha) ? $tesk9$palette$Internal$Hex$toStringWithoutOpacity(values) : $tesk9$palette$Internal$Hex$toStringWithOpacity(values);
10520};
10521var $tesk9$palette$SolidColor$toHex = function (color) {
10522	var _v0 = $tesk9$palette$SolidColor$toRGB(color);
10523	var red = _v0.a;
10524	var green = _v0.b;
10525	var blue = _v0.c;
10526	return $tesk9$palette$Internal$Hex$toString(
10527		{av: $tesk9$palette$Internal$Opacity$opaque, fd: blue, fx: green, gh: red});
10528};
10529var $tesk9$palette$SolidColor$Color = $elm$core$Basics$identity;
10530var $tesk9$palette$Internal$Color$fromRGBA = function (values) {
10531	return $tesk9$palette$Internal$Color$RGBA(
10532		$tesk9$palette$Internal$RGBA$fromChannels(values));
10533};
10534var $tesk9$palette$SolidColor$fromRGB = function (_v0) {
10535	var red = _v0.a;
10536	var green = _v0.b;
10537	var blue = _v0.c;
10538	return $tesk9$palette$Internal$Color$fromRGBA(
10539		{av: $tesk9$palette$Internal$Opacity$opaque, fd: blue, fx: green, gh: red});
10540};
10541var $avh4$elm_color$Color$toRgba = function (_v0) {
10542	var r = _v0.a;
10543	var g = _v0.b;
10544	var b = _v0.c;
10545	var a = _v0.d;
10546	return {av: a, fd: b, fx: g, gh: r};
10547};
10548var $author$project$W$Internal$Color$toSolidColor = function (color) {
10549	return $tesk9$palette$SolidColor$fromRGB(
10550		function (_v0) {
10551			var red = _v0.gh;
10552			var green = _v0.fx;
10553			var blue = _v0.fd;
10554			return _Utils_Tuple3(red * 255, green * 255, blue * 255);
10555		}(
10556			$avh4$elm_color$Color$toRgba(color)));
10557};
10558var $author$project$W$Internal$Color$toHex = function (color) {
10559	return $tesk9$palette$SolidColor$toHex(
10560		$author$project$W$Internal$Color$toSolidColor(color));
10561};
10562var $author$project$W$InputColor$defaultAttrs = {bV: false, b$: _List_Nil, ah: false};
10563var $author$project$W$InputColor$applyAttrs = function (attrs) {
10564	return A3(
10565		$elm$core$List$foldl,
10566		F2(
10567			function (_v0, a) {
10568				var fn = _v0;
10569				return fn(a);
10570			}),
10571		$author$project$W$InputColor$defaultAttrs,
10572		attrs);
10573};
10574var $author$project$W$InputColor$baseAttrs = F2(
10575	function (attrs_, value) {
10576		var hexColor = $author$project$W$Internal$Color$toHex(value);
10577		var attrs = $author$project$W$InputColor$applyAttrs(attrs_);
10578		return _Utils_ap(
10579			attrs.b$,
10580			_List_fromArray(
10581				[
10582					$elm$html$Html$Attributes$class('ew-input-color ew-appearance-none'),
10583					$elm$html$Html$Attributes$class('ew-shadow'),
10584					$elm$html$Html$Attributes$class('ew-rounded-full ew-h-8 ew-w-8 ew-bg-white ew-border-0'),
10585					$elm$html$Html$Attributes$class('before:ew-content-[\'\'] before:ew-block'),
10586					$elm$html$Html$Attributes$class('before:ew-bg-current before:ew-rounded-full'),
10587					$elm$html$Html$Attributes$class('ew-relative before:ew-absolute before:ew-inset-1'),
10588					A2($elm$html$Html$Attributes$style, 'color', hexColor),
10589					$elm$html$Html$Attributes$type_('color'),
10590					$elm$html$Html$Attributes$value(hexColor),
10591					$elm$html$Html$Attributes$disabled(attrs.bV || attrs.ah),
10592					$elm$html$Html$Attributes$readonly(attrs.ah)
10593				]));
10594	});
10595var $avh4$elm_color$Color$black = A4($avh4$elm_color$Color$RgbaSpace, 0 / 255, 0 / 255, 0 / 255, 1.0);
10596var $elm$core$Char$toUpper = _Char_toUpper;
10597var $tesk9$palette$Internal$Hex$fromHexSymbol = function (m) {
10598	var decValues = $elm$core$Dict$fromList(
10599		_List_fromArray(
10600			[
10601				_Utils_Tuple2('0', 0),
10602				_Utils_Tuple2('1', 1),
10603				_Utils_Tuple2('2', 2),
10604				_Utils_Tuple2('3', 3),
10605				_Utils_Tuple2('4', 4),
10606				_Utils_Tuple2('5', 5),
10607				_Utils_Tuple2('6', 6),
10608				_Utils_Tuple2('7', 7),
10609				_Utils_Tuple2('8', 8),
10610				_Utils_Tuple2('9', 9),
10611				_Utils_Tuple2('A', 10),
10612				_Utils_Tuple2('B', 11),
10613				_Utils_Tuple2('C', 12),
10614				_Utils_Tuple2('D', 13),
10615				_Utils_Tuple2('E', 14),
10616				_Utils_Tuple2('F', 15)
10617			]));
10618	return A2(
10619		$elm$core$Dict$get,
10620		$elm$core$Char$toUpper(m),
10621		decValues);
10622};
10623var $tesk9$palette$Internal$Hex$hexWithAlpha = F4(
10624	function (rs, gs, bs, aa) {
10625		var fromHex = function (_v0) {
10626			var a = _v0.a;
10627			var b = _v0.b;
10628			return (a * 16) + b;
10629		};
10630		return {
10631			av: A2(
10632				$elm$core$Maybe$withDefault,
10633				$tesk9$palette$Internal$Opacity$opaque,
10634				A2(
10635					$elm$core$Maybe$map,
10636					$tesk9$palette$Internal$Opacity$custom,
10637					A2($elm$core$Maybe$map, fromHex, aa))),
10638			fd: fromHex(bs),
10639			fx: fromHex(gs),
10640			gh: fromHex(rs)
10641		};
10642	});
10643var $elm$core$String$foldr = _String_foldr;
10644var $elm$core$String$toList = function (string) {
10645	return A3($elm$core$String$foldr, $elm$core$List$cons, _List_Nil, string);
10646};
10647var $tesk9$palette$Internal$Hex$fromString = function (colorString) {
10648	var colorList = A2(
10649		$elm$core$List$filterMap,
10650		$tesk9$palette$Internal$Hex$fromHexSymbol,
10651		$elm$core$String$toList(colorString));
10652	_v0$4:
10653	while (true) {
10654		if ((colorList.b && colorList.b.b) && colorList.b.b.b) {
10655			if (colorList.b.b.b.b) {
10656				if (colorList.b.b.b.b.b) {
10657					if (colorList.b.b.b.b.b.b) {
10658						if (colorList.b.b.b.b.b.b.b) {
10659							if (colorList.b.b.b.b.b.b.b.b && (!colorList.b.b.b.b.b.b.b.b.b)) {
10660								var r1 = colorList.a;
10661								var _v1 = colorList.b;
10662								var r0 = _v1.a;
10663								var _v2 = _v1.b;
10664								var g1 = _v2.a;
10665								var _v3 = _v2.b;
10666								var g0 = _v3.a;
10667								var _v4 = _v3.b;
10668								var b1 = _v4.a;
10669								var _v5 = _v4.b;
10670								var b0 = _v5.a;
10671								var _v6 = _v5.b;
10672								var a1 = _v6.a;
10673								var _v7 = _v6.b;
10674								var a0 = _v7.a;
10675								return $elm$core$Maybe$Just(
10676									A4(
10677										$tesk9$palette$Internal$Hex$hexWithAlpha,
10678										_Utils_Tuple2(r1, r0),
10679										_Utils_Tuple2(g1, g0),
10680										_Utils_Tuple2(b1, b0),
10681										$elm$core$Maybe$Just(
10682											_Utils_Tuple2(a1, a0))));
10683							} else {
10684								break _v0$4;
10685							}
10686						} else {
10687							var r1 = colorList.a;
10688							var _v8 = colorList.b;
10689							var r0 = _v8.a;
10690							var _v9 = _v8.b;
10691							var g1 = _v9.a;
10692							var _v10 = _v9.b;
10693							var g0 = _v10.a;
10694							var _v11 = _v10.b;
10695							var b1 = _v11.a;
10696							var _v12 = _v11.b;
10697							var b0 = _v12.a;
10698							return $elm$core$Maybe$Just(
10699								A4(
10700									$tesk9$palette$Internal$Hex$hexWithAlpha,
10701									_Utils_Tuple2(r1, r0),
10702									_Utils_Tuple2(g1, g0),
10703									_Utils_Tuple2(b1, b0),
10704									$elm$core$Maybe$Nothing));
10705						}
10706					} else {
10707						break _v0$4;
10708					}
10709				} else {
10710					var r = colorList.a;
10711					var _v13 = colorList.b;
10712					var g = _v13.a;
10713					var _v14 = _v13.b;
10714					var b = _v14.a;
10715					var _v15 = _v14.b;
10716					var a = _v15.a;
10717					return $elm$core$Maybe$Just(
10718						A4(
10719							$tesk9$palette$Internal$Hex$hexWithAlpha,
10720							_Utils_Tuple2(r, r),
10721							_Utils_Tuple2(g, g),
10722							_Utils_Tuple2(b, b),
10723							$elm$core$Maybe$Just(
10724								_Utils_Tuple2(a, a))));
10725				}
10726			} else {
10727				var r = colorList.a;
10728				var _v16 = colorList.b;
10729				var g = _v16.a;
10730				var _v17 = _v16.b;
10731				var b = _v17.a;
10732				return $elm$core$Maybe$Just(
10733					A4(
10734						$tesk9$palette$Internal$Hex$hexWithAlpha,
10735						_Utils_Tuple2(r, r),
10736						_Utils_Tuple2(g, g),
10737						_Utils_Tuple2(b, b),
10738						$elm$core$Maybe$Nothing));
10739			}
10740		} else {
10741			break _v0$4;
10742		}
10743	}
10744	return $elm$core$Maybe$Nothing;
10745};
10746var $tesk9$palette$SolidColor$fromHex = function (colorString) {
10747	var _v0 = $tesk9$palette$Internal$Hex$fromString(colorString);
10748	if (!_v0.$) {
10749		var red = _v0.a.gh;
10750		var green = _v0.a.fx;
10751		var blue = _v0.a.fd;
10752		return $elm$core$Result$Ok(
10753			$tesk9$palette$SolidColor$fromRGB(
10754				_Utils_Tuple3(red, green, blue)));
10755	} else {
10756		return $elm$core$Result$Err('fromHex could not convert ' + (colorString + ' to a Color.'));
10757	}
10758};
10759var $avh4$elm_color$Color$scaleFrom255 = function (c) {
10760	return c / 255;
10761};
10762var $avh4$elm_color$Color$rgb255 = F3(
10763	function (r, g, b) {
10764		return A4(
10765			$avh4$elm_color$Color$RgbaSpace,
10766			$avh4$elm_color$Color$scaleFrom255(r),
10767			$avh4$elm_color$Color$scaleFrom255(g),
10768			$avh4$elm_color$Color$scaleFrom255(b),
10769			1.0);
10770	});
10771var $author$project$W$Internal$Color$fromSolidColor = function (color) {
10772	return function (_v0) {
10773		var r = _v0.a;
10774		var g = _v0.b;
10775		var b = _v0.c;
10776		return A3(
10777			$avh4$elm_color$Color$rgb255,
10778			$elm$core$Basics$floor(r),
10779			$elm$core$Basics$floor(g),
10780			$elm$core$Basics$floor(b));
10781	}(
10782		$tesk9$palette$SolidColor$toRGB(color));
10783};
10784var $elm$core$Result$map = F2(
10785	function (func, ra) {
10786		if (!ra.$) {
10787			var a = ra.a;
10788			return $elm$core$Result$Ok(
10789				func(a));
10790		} else {
10791			var e = ra.a;
10792			return $elm$core$Result$Err(e);
10793		}
10794	});
10795var $elm$core$Result$withDefault = F2(
10796	function (def, result) {
10797		if (!result.$) {
10798			var a = result.a;
10799			return a;
10800		} else {
10801			return def;
10802		}
10803	});
10804var $author$project$W$Internal$Color$fromHex = function (hex) {
10805	return A2(
10806		$elm$core$Result$withDefault,
10807		$avh4$elm_color$Color$black,
10808		A2(
10809			$elm$core$Result$map,
10810			$author$project$W$Internal$Color$fromSolidColor,
10811			$tesk9$palette$SolidColor$fromHex(hex)));
10812};
10813var $author$project$W$InputColor$view = F2(
10814	function (attrs_, props) {
10815		return A2(
10816			$elm$html$Html$input,
10817			A2(
10818				$elm$core$List$cons,
10819				$elm$html$Html$Events$onInput(
10820					A2($elm$core$Basics$composeL, props.cm, $author$project$W$Internal$Color$fromHex)),
10821				A2($author$project$W$InputColor$baseAttrs, attrs_, props.cN)),
10822			_List_Nil);
10823	});
10824var $avh4$elm_color$Color$yellow = A4($avh4$elm_color$Color$RgbaSpace, 237 / 255, 212 / 255, 0 / 255, 1.0);
10825var $author$project$Chapters$Form$InputColor$chapter_ = A2(
10826	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
10827	_List_fromArray(
10828		[
10829			_Utils_Tuple2(
10830			'Default',
10831			A2(
10832				$author$project$W$InputColor$view,
10833				_List_Nil,
10834				{
10835					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $author$project$W$Internal$Color$toHex, 'onInput'),
10836					cN: $avh4$elm_color$Color$blue
10837				})),
10838			_Utils_Tuple2(
10839			'Disabled',
10840			A2(
10841				$author$project$W$InputColor$view,
10842				_List_fromArray(
10843					[
10844						$author$project$W$InputColor$disabled(true)
10845					]),
10846				{
10847					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $author$project$W$Internal$Color$toHex, 'onInput'),
10848					cN: $avh4$elm_color$Color$yellow
10849				})),
10850			_Utils_Tuple2(
10851			'Read Only',
10852			A2(
10853				$author$project$W$InputColor$view,
10854				_List_fromArray(
10855					[
10856						$author$project$W$InputColor$readOnly(true)
10857					]),
10858				{
10859					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $author$project$W$Internal$Color$toHex, 'onInput'),
10860					cN: $avh4$elm_color$Color$red
10861				}))
10862		]),
10863	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Color'));
10864var $author$project$W$InputDate$Value = F3(
10865	function (a, b, c) {
10866		return {$: 0, a: a, b: b, c: c};
10867	});
10868var $elm$time$Time$Jan = 0;
10869var $justinmimbs$date$Date$RD = $elm$core$Basics$identity;
10870var $justinmimbs$date$Date$isLeapYear = function (y) {
10871	return ((!A2($elm$core$Basics$modBy, 4, y)) && (!(!A2($elm$core$Basics$modBy, 100, y)))) || (!A2($elm$core$Basics$modBy, 400, y));
10872};
10873var $justinmimbs$date$Date$daysInMonth = F2(
10874	function (y, m) {
10875		switch (m) {
10876			case 0:
10877				return 31;
10878			case 1:
10879				return $justinmimbs$date$Date$isLeapYear(y) ? 29 : 28;
10880			case 2:
10881				return 31;
10882			case 3:
10883				return 30;
10884			case 4:
10885				return 31;
10886			case 5:
10887				return 30;
10888			case 6:
10889				return 31;
10890			case 7:
10891				return 31;
10892			case 8:
10893				return 30;
10894			case 9:
10895				return 31;
10896			case 10:
10897				return 30;
10898			default:
10899				return 31;
10900		}
10901	});
10902var $justinmimbs$date$Date$monthToNumber = function (m) {
10903	switch (m) {
10904		case 0:
10905			return 1;
10906		case 1:
10907			return 2;
10908		case 2:
10909			return 3;
10910		case 3:
10911			return 4;
10912		case 4:
10913			return 5;
10914		case 5:
10915			return 6;
10916		case 6:
10917			return 7;
10918		case 7:
10919			return 8;
10920		case 8:
10921			return 9;
10922		case 9:
10923			return 10;
10924		case 10:
10925			return 11;
10926		default:
10927			return 12;
10928	}
10929};
10930var $elm$time$Time$Apr = 3;
10931var $elm$time$Time$Aug = 7;
10932var $elm$time$Time$Dec = 11;
10933var $elm$time$Time$Feb = 1;
10934var $elm$time$Time$Jul = 6;
10935var $elm$time$Time$Jun = 5;
10936var $elm$time$Time$Mar = 2;
10937var $elm$time$Time$May = 4;
10938var $elm$time$Time$Nov = 10;
10939var $elm$time$Time$Oct = 9;
10940var $elm$time$Time$Sep = 8;
10941var $justinmimbs$date$Date$numberToMonth = function (mn) {
10942	var _v0 = A2($elm$core$Basics$max, 1, mn);
10943	switch (_v0) {
10944		case 1:
10945			return 0;
10946		case 2:
10947			return 1;
10948		case 3:
10949			return 2;
10950		case 4:
10951			return 3;
10952		case 5:
10953			return 4;
10954		case 6:
10955			return 5;
10956		case 7:
10957			return 6;
10958		case 8:
10959			return 7;
10960		case 9:
10961			return 8;
10962		case 10:
10963			return 9;
10964		case 11:
10965			return 10;
10966		default:
10967			return 11;
10968	}
10969};
10970var $justinmimbs$date$Date$toCalendarDateHelp = F3(
10971	function (y, m, d) {
10972		toCalendarDateHelp:
10973		while (true) {
10974			var monthDays = A2($justinmimbs$date$Date$daysInMonth, y, m);
10975			var mn = $justinmimbs$date$Date$monthToNumber(m);
10976			if ((mn < 12) && (_Utils_cmp(d, monthDays) > 0)) {
10977				var $temp$y = y,
10978					$temp$m = $justinmimbs$date$Date$numberToMonth(mn + 1),
10979					$temp$d = d - monthDays;
10980				y = $temp$y;
10981				m = $temp$m;
10982				d = $temp$d;
10983				continue toCalendarDateHelp;
10984			} else {
10985				return {d8: d, eB: m, e8: y};
10986			}
10987		}
10988	});
10989var $justinmimbs$date$Date$floorDiv = F2(
10990	function (a, b) {
10991		return $elm$core$Basics$floor(a / b);
10992	});
10993var $justinmimbs$date$Date$daysBeforeYear = function (y1) {
10994	var y = y1 - 1;
10995	var leapYears = (A2($justinmimbs$date$Date$floorDiv, y, 4) - A2($justinmimbs$date$Date$floorDiv, y, 100)) + A2($justinmimbs$date$Date$floorDiv, y, 400);
10996	return (365 * y) + leapYears;
10997};
10998var $justinmimbs$date$Date$divWithRemainder = F2(
10999	function (a, b) {
11000		return _Utils_Tuple2(
11001			A2($justinmimbs$date$Date$floorDiv, a, b),
11002			A2($elm$core$Basics$modBy, b, a));
11003	});
11004var $justinmimbs$date$Date$year = function (_v0) {
11005	var rd = _v0;
11006	var _v1 = A2($justinmimbs$date$Date$divWithRemainder, rd, 146097);
11007	var n400 = _v1.a;
11008	var r400 = _v1.b;
11009	var _v2 = A2($justinmimbs$date$Date$divWithRemainder, r400, 36524);
11010	var n100 = _v2.a;
11011	var r100 = _v2.b;
11012	var _v3 = A2($justinmimbs$date$Date$divWithRemainder, r100, 1461);
11013	var n4 = _v3.a;
11014	var r4 = _v3.b;
11015	var _v4 = A2($justinmimbs$date$Date$divWithRemainder, r4, 365);
11016	var n1 = _v4.a;
11017	var r1 = _v4.b;
11018	var n = (!r1) ? 0 : 1;
11019	return ((((n400 * 400) + (n100 * 100)) + (n4 * 4)) + n1) + n;
11020};
11021var $justinmimbs$date$Date$toOrdinalDate = function (_v0) {
11022	var rd = _v0;
11023	var y = $justinmimbs$date$Date$year(rd);
11024	return {
11025		du: rd - $justinmimbs$date$Date$daysBeforeYear(y),
11026		e8: y
11027	};
11028};
11029var $justinmimbs$date$Date$toCalendarDate = function (_v0) {
11030	var rd = _v0;
11031	var date = $justinmimbs$date$Date$toOrdinalDate(rd);
11032	return A3($justinmimbs$date$Date$toCalendarDateHelp, date.e8, 0, date.du);
11033};
11034var $justinmimbs$date$Date$day = A2(
11035	$elm$core$Basics$composeR,
11036	$justinmimbs$date$Date$toCalendarDate,
11037	function ($) {
11038		return $.d8;
11039	});
11040var $justinmimbs$date$Date$month = A2(
11041	$elm$core$Basics$composeR,
11042	$justinmimbs$date$Date$toCalendarDate,
11043	function ($) {
11044		return $.eB;
11045	});
11046var $justinmimbs$date$Date$monthNumber = A2($elm$core$Basics$composeR, $justinmimbs$date$Date$month, $justinmimbs$date$Date$monthToNumber);
11047var $justinmimbs$date$Date$ordinalDay = A2(
11048	$elm$core$Basics$composeR,
11049	$justinmimbs$date$Date$toOrdinalDate,
11050	function ($) {
11051		return $.du;
11052	});
11053var $justinmimbs$date$Date$padSignedInt = F2(
11054	function (length, _int) {
11055		return _Utils_ap(
11056			(_int < 0) ? '-' : '',
11057			A3(
11058				$elm$core$String$padLeft,
11059				length,
11060				'0',
11061				$elm$core$String$fromInt(
11062					$elm$core$Basics$abs(_int))));
11063	});
11064var $justinmimbs$date$Date$monthToQuarter = function (m) {
11065	return (($justinmimbs$date$Date$monthToNumber(m) + 2) / 3) | 0;
11066};
11067var $justinmimbs$date$Date$quarter = A2($elm$core$Basics$composeR, $justinmimbs$date$Date$month, $justinmimbs$date$Date$monthToQuarter);
11068var $elm$core$String$right = F2(
11069	function (n, string) {
11070		return (n < 1) ? '' : A3(
11071			$elm$core$String$slice,
11072			-n,
11073			$elm$core$String$length(string),
11074			string);
11075	});
11076var $justinmimbs$date$Date$weekdayNumber = function (_v0) {
11077	var rd = _v0;
11078	var _v1 = A2($elm$core$Basics$modBy, 7, rd);
11079	if (!_v1) {
11080		return 7;
11081	} else {
11082		var n = _v1;
11083		return n;
11084	}
11085};
11086var $justinmimbs$date$Date$daysBeforeWeekYear = function (y) {
11087	var jan4 = $justinmimbs$date$Date$daysBeforeYear(y) + 4;
11088	return jan4 - $justinmimbs$date$Date$weekdayNumber(jan4);
11089};
11090var $elm$time$Time$Fri = 4;
11091var $elm$time$Time$Mon = 0;
11092var $elm$time$Time$Sat = 5;
11093var $elm$time$Time$Sun = 6;
11094var $elm$time$Time$Thu = 3;
11095var $elm$time$Time$Tue = 1;
11096var $elm$time$Time$Wed = 2;
11097var $justinmimbs$date$Date$numberToWeekday = function (wdn) {
11098	var _v0 = A2($elm$core$Basics$max, 1, wdn);
11099	switch (_v0) {
11100		case 1:
11101			return 0;
11102		case 2:
11103			return 1;
11104		case 3:
11105			return 2;
11106		case 4:
11107			return 3;
11108		case 5:
11109			return 4;
11110		case 6:
11111			return 5;
11112		default:
11113			return 6;
11114	}
11115};
11116var $justinmimbs$date$Date$toWeekDate = function (_v0) {
11117	var rd = _v0;
11118	var wdn = $justinmimbs$date$Date$weekdayNumber(rd);
11119	var wy = $justinmimbs$date$Date$year(rd + (4 - wdn));
11120	var week1Day1 = $justinmimbs$date$Date$daysBeforeWeekYear(wy) + 1;
11121	return {
11122		e6: 1 + (((rd - week1Day1) / 7) | 0),
11123		e7: wy,
11124		gz: $justinmimbs$date$Date$numberToWeekday(wdn)
11125	};
11126};
11127var $justinmimbs$date$Date$weekNumber = A2(
11128	$elm$core$Basics$composeR,
11129	$justinmimbs$date$Date$toWeekDate,
11130	function ($) {
11131		return $.e6;
11132	});
11133var $justinmimbs$date$Date$weekYear = A2(
11134	$elm$core$Basics$composeR,
11135	$justinmimbs$date$Date$toWeekDate,
11136	function ($) {
11137		return $.e7;
11138	});
11139var $justinmimbs$date$Date$weekday = A2($elm$core$Basics$composeR, $justinmimbs$date$Date$weekdayNumber, $justinmimbs$date$Date$numberToWeekday);
11140var $elm$core$Basics$min = F2(
11141	function (x, y) {
11142		return (_Utils_cmp(x, y) < 0) ? x : y;
11143	});
11144var $justinmimbs$date$Date$ordinalSuffix = function (n) {
11145	var nn = A2($elm$core$Basics$modBy, 100, n);
11146	var _v0 = A2(
11147		$elm$core$Basics$min,
11148		(nn < 20) ? nn : A2($elm$core$Basics$modBy, 10, nn),
11149		4);
11150	switch (_v0) {
11151		case 1:
11152			return 'st';
11153		case 2:
11154			return 'nd';
11155		case 3:
11156			return 'rd';
11157		default:
11158			return 'th';
11159	}
11160};
11161var $justinmimbs$date$Date$withOrdinalSuffix = function (n) {
11162	return _Utils_ap(
11163		$elm$core$String$fromInt(n),
11164		$justinmimbs$date$Date$ordinalSuffix(n));
11165};
11166var $justinmimbs$date$Date$formatField = F4(
11167	function (language, _char, length, date) {
11168		switch (_char) {
11169			case 'y':
11170				if (length === 2) {
11171					return A2(
11172						$elm$core$String$right,
11173						2,
11174						A3(
11175							$elm$core$String$padLeft,
11176							2,
11177							'0',
11178							$elm$core$String$fromInt(
11179								$justinmimbs$date$Date$year(date))));
11180				} else {
11181					return A2(
11182						$justinmimbs$date$Date$padSignedInt,
11183						length,
11184						$justinmimbs$date$Date$year(date));
11185				}
11186			case 'Y':
11187				if (length === 2) {
11188					return A2(
11189						$elm$core$String$right,
11190						2,
11191						A3(
11192							$elm$core$String$padLeft,
11193							2,
11194							'0',
11195							$elm$core$String$fromInt(
11196								$justinmimbs$date$Date$weekYear(date))));
11197				} else {
11198					return A2(
11199						$justinmimbs$date$Date$padSignedInt,
11200						length,
11201						$justinmimbs$date$Date$weekYear(date));
11202				}
11203			case 'Q':
11204				switch (length) {
11205					case 1:
11206						return $elm$core$String$fromInt(
11207							$justinmimbs$date$Date$quarter(date));
11208					case 2:
11209						return $elm$core$String$fromInt(
11210							$justinmimbs$date$Date$quarter(date));
11211					case 3:
11212						return 'Q' + $elm$core$String$fromInt(
11213							$justinmimbs$date$Date$quarter(date));
11214					case 4:
11215						return $justinmimbs$date$Date$withOrdinalSuffix(
11216							$justinmimbs$date$Date$quarter(date));
11217					case 5:
11218						return $elm$core$String$fromInt(
11219							$justinmimbs$date$Date$quarter(date));
11220					default:
11221						return '';
11222				}
11223			case 'M':
11224				switch (length) {
11225					case 1:
11226						return $elm$core$String$fromInt(
11227							$justinmimbs$date$Date$monthNumber(date));
11228					case 2:
11229						return A3(
11230							$elm$core$String$padLeft,
11231							2,
11232							'0',
11233							$elm$core$String$fromInt(
11234								$justinmimbs$date$Date$monthNumber(date)));
11235					case 3:
11236						return language.cc(
11237							$justinmimbs$date$Date$month(date));
11238					case 4:
11239						return language.dp(
11240							$justinmimbs$date$Date$month(date));
11241					case 5:
11242						return A2(
11243							$elm$core$String$left,
11244							1,
11245							language.cc(
11246								$justinmimbs$date$Date$month(date)));
11247					default:
11248						return '';
11249				}
11250			case 'w':
11251				switch (length) {
11252					case 1:
11253						return $elm$core$String$fromInt(
11254							$justinmimbs$date$Date$weekNumber(date));
11255					case 2:
11256						return A3(
11257							$elm$core$String$padLeft,
11258							2,
11259							'0',
11260							$elm$core$String$fromInt(
11261								$justinmimbs$date$Date$weekNumber(date)));
11262					default:
11263						return '';
11264				}
11265			case 'd':
11266				switch (length) {
11267					case 1:
11268						return $elm$core$String$fromInt(
11269							$justinmimbs$date$Date$day(date));
11270					case 2:
11271						return A3(
11272							$elm$core$String$padLeft,
11273							2,
11274							'0',
11275							$elm$core$String$fromInt(
11276								$justinmimbs$date$Date$day(date)));
11277					case 3:
11278						return language.c1(
11279							$justinmimbs$date$Date$day(date));
11280					default:
11281						return '';
11282				}
11283			case 'D':
11284				switch (length) {
11285					case 1:
11286						return $elm$core$String$fromInt(
11287							$justinmimbs$date$Date$ordinalDay(date));
11288					case 2:
11289						return A3(
11290							$elm$core$String$padLeft,
11291							2,
11292							'0',
11293							$elm$core$String$fromInt(
11294								$justinmimbs$date$Date$ordinalDay(date)));
11295					case 3:
11296						return A3(
11297							$elm$core$String$padLeft,
11298							3,
11299							'0',
11300							$elm$core$String$fromInt(
11301								$justinmimbs$date$Date$ordinalDay(date)));
11302					default:
11303						return '';
11304				}
11305			case 'E':
11306				switch (length) {
11307					case 1:
11308						return language.au(
11309							$justinmimbs$date$Date$weekday(date));
11310					case 2:
11311						return language.au(
11312							$justinmimbs$date$Date$weekday(date));
11313					case 3:
11314						return language.au(
11315							$justinmimbs$date$Date$weekday(date));
11316					case 4:
11317						return language.dY(
11318							$justinmimbs$date$Date$weekday(date));
11319					case 5:
11320						return A2(
11321							$elm$core$String$left,
11322							1,
11323							language.au(
11324								$justinmimbs$date$Date$weekday(date)));
11325					case 6:
11326						return A2(
11327							$elm$core$String$left,
11328							2,
11329							language.au(
11330								$justinmimbs$date$Date$weekday(date)));
11331					default:
11332						return '';
11333				}
11334			case 'e':
11335				switch (length) {
11336					case 1:
11337						return $elm$core$String$fromInt(
11338							$justinmimbs$date$Date$weekdayNumber(date));
11339					case 2:
11340						return $elm$core$String$fromInt(
11341							$justinmimbs$date$Date$weekdayNumber(date));
11342					default:
11343						return A4($justinmimbs$date$Date$formatField, language, 'E', length, date);
11344				}
11345			default:
11346				return '';
11347		}
11348	});
11349var $justinmimbs$date$Date$formatWithTokens = F3(
11350	function (language, tokens, date) {
11351		return A3(
11352			$elm$core$List$foldl,
11353			F2(
11354				function (token, formatted) {
11355					if (!token.$) {
11356						var _char = token.a;
11357						var length = token.b;
11358						return _Utils_ap(
11359							A4($justinmimbs$date$Date$formatField, language, _char, length, date),
11360							formatted);
11361					} else {
11362						var str = token.a;
11363						return _Utils_ap(str, formatted);
11364					}
11365				}),
11366			'',
11367			tokens);
11368	});
11369var $justinmimbs$date$Pattern$Literal = function (a) {
11370	return {$: 1, a: a};
11371};
11372var $elm$parser$Parser$Advanced$Bad = F2(
11373	function (a, b) {
11374		return {$: 1, a: a, b: b};
11375	});
11376var $elm$parser$Parser$Advanced$Good = F3(
11377	function (a, b, c) {
11378		return {$: 0, a: a, b: b, c: c};
11379	});
11380var $elm$parser$Parser$Advanced$Parser = $elm$core$Basics$identity;
11381var $elm$parser$Parser$Advanced$andThen = F2(
11382	function (callback, _v0) {
11383		var parseA = _v0;
11384		return function (s0) {
11385			var _v1 = parseA(s0);
11386			if (_v1.$ === 1) {
11387				var p = _v1.a;
11388				var x = _v1.b;
11389				return A2($elm$parser$Parser$Advanced$Bad, p, x);
11390			} else {
11391				var p1 = _v1.a;
11392				var a = _v1.b;
11393				var s1 = _v1.c;
11394				var _v2 = callback(a);
11395				var parseB = _v2;
11396				var _v3 = parseB(s1);
11397				if (_v3.$ === 1) {
11398					var p2 = _v3.a;
11399					var x = _v3.b;
11400					return A2($elm$parser$Parser$Advanced$Bad, p1 || p2, x);
11401				} else {
11402					var p2 = _v3.a;
11403					var b = _v3.b;
11404					var s2 = _v3.c;
11405					return A3($elm$parser$Parser$Advanced$Good, p1 || p2, b, s2);
11406				}
11407			}
11408		};
11409	});
11410var $elm$parser$Parser$andThen = $elm$parser$Parser$Advanced$andThen;
11411var $elm$core$Basics$always = F2(
11412	function (a, _v0) {
11413		return a;
11414	});
11415var $elm$parser$Parser$Advanced$map2 = F3(
11416	function (func, _v0, _v1) {
11417		var parseA = _v0;
11418		var parseB = _v1;
11419		return function (s0) {
11420			var _v2 = parseA(s0);
11421			if (_v2.$ === 1) {
11422				var p = _v2.a;
11423				var x = _v2.b;
11424				return A2($elm$parser$Parser$Advanced$Bad, p, x);
11425			} else {
11426				var p1 = _v2.a;
11427				var a = _v2.b;
11428				var s1 = _v2.c;
11429				var _v3 = parseB(s1);
11430				if (_v3.$ === 1) {
11431					var p2 = _v3.a;
11432					var x = _v3.b;
11433					return A2($elm$parser$Parser$Advanced$Bad, p1 || p2, x);
11434				} else {
11435					var p2 = _v3.a;
11436					var b = _v3.b;
11437					var s2 = _v3.c;
11438					return A3(
11439						$elm$parser$Parser$Advanced$Good,
11440						p1 || p2,
11441						A2(func, a, b),
11442						s2);
11443				}
11444			}
11445		};
11446	});
11447var $elm$parser$Parser$Advanced$ignorer = F2(
11448	function (keepParser, ignoreParser) {
11449		return A3($elm$parser$Parser$Advanced$map2, $elm$core$Basics$always, keepParser, ignoreParser);
11450	});
11451var $elm$parser$Parser$ignorer = $elm$parser$Parser$Advanced$ignorer;
11452var $elm$parser$Parser$Advanced$succeed = function (a) {
11453	return function (s) {
11454		return A3($elm$parser$Parser$Advanced$Good, false, a, s);
11455	};
11456};
11457var $elm$parser$Parser$succeed = $elm$parser$Parser$Advanced$succeed;
11458var $elm$parser$Parser$Expecting = function (a) {
11459	return {$: 0, a: a};
11460};
11461var $elm$parser$Parser$Advanced$Token = F2(
11462	function (a, b) {
11463		return {$: 0, a: a, b: b};
11464	});
11465var $elm$parser$Parser$toToken = function (str) {
11466	return A2(
11467		$elm$parser$Parser$Advanced$Token,
11468		str,
11469		$elm$parser$Parser$Expecting(str));
11470};
11471var $elm$parser$Parser$Advanced$AddRight = F2(
11472	function (a, b) {
11473		return {$: 1, a: a, b: b};
11474	});
11475var $elm$parser$Parser$Advanced$DeadEnd = F4(
11476	function (row, col, problem, contextStack) {
11477		return {d5: col, fk: contextStack, ge: problem, gm: row};
11478	});
11479var $elm$parser$Parser$Advanced$Empty = {$: 0};
11480var $elm$parser$Parser$Advanced$fromState = F2(
11481	function (s, x) {
11482		return A2(
11483			$elm$parser$Parser$Advanced$AddRight,
11484			$elm$parser$Parser$Advanced$Empty,
11485			A4($elm$parser$Parser$Advanced$DeadEnd, s.gm, s.d5, x, s.f));
11486	});
11487var $elm$parser$Parser$Advanced$isSubString = _Parser_isSubString;
11488var $elm$parser$Parser$Advanced$token = function (_v0) {
11489	var str = _v0.a;
11490	var expecting = _v0.b;
11491	var progress = !$elm$core$String$isEmpty(str);
11492	return function (s) {
11493		var _v1 = A5($elm$parser$Parser$Advanced$isSubString, str, s.cf, s.gm, s.d5, s.dE);
11494		var newOffset = _v1.a;
11495		var newRow = _v1.b;
11496		var newCol = _v1.c;
11497		return _Utils_eq(newOffset, -1) ? A2(
11498			$elm$parser$Parser$Advanced$Bad,
11499			false,
11500			A2($elm$parser$Parser$Advanced$fromState, s, expecting)) : A3(
11501			$elm$parser$Parser$Advanced$Good,
11502			progress,
11503			0,
11504			{d5: newCol, f: s.f, h: s.h, cf: newOffset, gm: newRow, dE: s.dE});
11505	};
11506};
11507var $elm$parser$Parser$token = function (str) {
11508	return $elm$parser$Parser$Advanced$token(
11509		$elm$parser$Parser$toToken(str));
11510};
11511var $justinmimbs$date$Pattern$escapedQuote = A2(
11512	$elm$parser$Parser$ignorer,
11513	$elm$parser$Parser$succeed(
11514		$justinmimbs$date$Pattern$Literal('\'')),
11515	$elm$parser$Parser$token('\'\''));
11516var $elm$parser$Parser$UnexpectedChar = {$: 11};
11517var $elm$parser$Parser$Advanced$isSubChar = _Parser_isSubChar;
11518var $elm$parser$Parser$Advanced$chompIf = F2(
11519	function (isGood, expecting) {
11520		return function (s) {
11521			var newOffset = A3($elm$parser$Parser$Advanced$isSubChar, isGood, s.cf, s.dE);
11522			return _Utils_eq(newOffset, -1) ? A2(
11523				$elm$parser$Parser$Advanced$Bad,
11524				false,
11525				A2($elm$parser$Parser$Advanced$fromState, s, expecting)) : (_Utils_eq(newOffset, -2) ? A3(
11526				$elm$parser$Parser$Advanced$Good,
11527				true,
11528				0,
11529				{d5: 1, f: s.f, h: s.h, cf: s.cf + 1, gm: s.gm + 1, dE: s.dE}) : A3(
11530				$elm$parser$Parser$Advanced$Good,
11531				true,
11532				0,
11533				{d5: s.d5 + 1, f: s.f, h: s.h, cf: newOffset, gm: s.gm, dE: s.dE}));
11534		};
11535	});
11536var $elm$parser$Parser$chompIf = function (isGood) {
11537	return A2($elm$parser$Parser$Advanced$chompIf, isGood, $elm$parser$Parser$UnexpectedChar);
11538};
11539var $justinmimbs$date$Pattern$Field = F2(
11540	function (a, b) {
11541		return {$: 0, a: a, b: b};
11542	});
11543var $elm$parser$Parser$Advanced$chompWhileHelp = F5(
11544	function (isGood, offset, row, col, s0) {
11545		chompWhileHelp:
11546		while (true) {
11547			var newOffset = A3($elm$parser$Parser$Advanced$isSubChar, isGood, offset, s0.dE);
11548			if (_Utils_eq(newOffset, -1)) {
11549				return A3(
11550					$elm$parser$Parser$Advanced$Good,
11551					_Utils_cmp(s0.cf, offset) < 0,
11552					0,
11553					{d5: col, f: s0.f, h: s0.h, cf: offset, gm: row, dE: s0.dE}
11553);
11554			} else {
11555				if (_Utils_eq(newOffset, -2)) {
11556					var $temp$isGood = isGood,
11557						$temp$offset = offset + 1,
11558						$temp$row = row + 1,
11559						$temp$col = 1,
11560						$temp$s0 = s0;
11561					isGood = $temp$isGood;
11562					offset = $temp$offset;
11563					row = $temp$row;
11564					col = $temp$col;
11565					s0 = $temp$s0;
11566					continue chompWhileHelp;
11567				} else {
11568					var $temp$isGood = isGood,
11569						$temp$offset = newOffset,
11570						$temp$row = row,
11571						$temp$col = col + 1,
11572						$temp$s0 = s0;
11573					isGood = $temp$isGood;
11574					offset = $temp$offset;
11575					row = $temp$row;
11576					col = $temp$col;
11577					s0 = $temp$s0;
11578					continue chompWhileHelp;
11579				}
11580			}
11581		}
11582	});
11583var $elm$parser$Parser$Advanced$chompWhile = function (isGood) {
11584	return function (s) {
11585		return A5($elm$parser$Parser$Advanced$chompWhileHelp, isGood, s.cf, s.gm, s.d5, s);
11586	};
11587};
11588var $elm$parser$Parser$chompWhile = $elm$parser$Parser$Advanced$chompWhile;
11589var $elm$parser$Parser$Advanced$getOffset = function (s) {
11590	return A3($elm$parser$Parser$Advanced$Good, false, s.cf, s);
11591};
11592var $elm$parser$Parser$getOffset = $elm$parser$Parser$Advanced$getOffset;
11593var $elm$parser$Parser$Advanced$keeper = F2(
11594	function (parseFunc, parseArg) {
11595		return A3($elm$parser$Parser$Advanced$map2, $elm$core$Basics$apL, parseFunc, parseArg);
11596	});
11597var $elm$parser$Parser$keeper = $elm$parser$Parser$Advanced$keeper;
11598var $elm$parser$Parser$Problem = function (a) {
11599	return {$: 12, a: a};
11600};
11601var $elm$parser$Parser$Advanced$problem = function (x) {
11602	return function (s) {
11603		return A2(
11604			$elm$parser$Parser$Advanced$Bad,
11605			false,
11606			A2($elm$parser$Parser$Advanced$fromState, s, x));
11607	};
11608};
11609var $elm$parser$Parser$problem = function (msg) {
11610	return $elm$parser$Parser$Advanced$problem(
11611		$elm$parser$Parser$Problem(msg));
11612};
11613var $justinmimbs$date$Pattern$fieldRepeats = function (str) {
11614	var _v0 = $elm$core$String$toList(str);
11615	if (_v0.b && (!_v0.b.b)) {
11616		var _char = _v0.a;
11617		return A2(
11618			$elm$parser$Parser$keeper,
11619			A2(
11620				$elm$parser$Parser$keeper,
11621				$elm$parser$Parser$succeed(
11622					F2(
11623						function (x, y) {
11624							return A2($justinmimbs$date$Pattern$Field, _char, 1 + (y - x));
11625						})),
11626				A2(
11627					$elm$parser$Parser$ignorer,
11628					$elm$parser$Parser$getOffset,
11629					$elm$parser$Parser$chompWhile(
11630						$elm$core$Basics$eq(_char)))),
11631			$elm$parser$Parser$getOffset);
11632	} else {
11633		return $elm$parser$Parser$problem('expected exactly one char');
11634	}
11635};
11636var $elm$parser$Parser$Advanced$mapChompedString = F2(
11637	function (func, _v0) {
11638		var parse = _v0;
11639		return function (s0) {
11640			var _v1 = parse(s0);
11641			if (_v1.$ === 1) {
11642				var p = _v1.a;
11643				var x = _v1.b;
11644				return A2($elm$parser$Parser$Advanced$Bad, p, x);
11645			} else {
11646				var p = _v1.a;
11647				var a = _v1.b;
11648				var s1 = _v1.c;
11649				return A3(
11650					$elm$parser$Parser$Advanced$Good,
11651					p,
11652					A2(
11653						func,
11654						A3($elm$core$String$slice, s0.cf, s1.cf, s0.dE),
11655						a),
11656					s1);
11657			}
11658		};
11659	});
11660var $elm$parser$Parser$Advanced$getChompedString = function (parser) {
11661	return A2($elm$parser$Parser$Advanced$mapChompedString, $elm$core$Basics$always, parser);
11662};
11663var $elm$parser$Parser$getChompedString = $elm$parser$Parser$Advanced$getChompedString;
11664var $justinmimbs$date$Pattern$field = A2(
11665	$elm$parser$Parser$andThen,
11666	$justinmimbs$date$Pattern$fieldRepeats,
11667	$elm$parser$Parser$getChompedString(
11668		$elm$parser$Parser$chompIf($elm$core$Char$isAlpha)));
11669var $justinmimbs$date$Pattern$finalize = A2(
11670	$elm$core$List$foldl,
11671	F2(
11672		function (token, tokens) {
11673			var _v0 = _Utils_Tuple2(token, tokens);
11674			if (((_v0.a.$ === 1) && _v0.b.b) && (_v0.b.a.$ === 1)) {
11675				var x = _v0.a.a;
11676				var _v1 = _v0.b;
11677				var y = _v1.a.a;
11678				var rest = _v1.b;
11679				return A2(
11680					$elm$core$List$cons,
11681					$justinmimbs$date$Pattern$Literal(
11682						_Utils_ap(x, y)),
11683					rest);
11684			} else {
11685				return A2($elm$core$List$cons, token, tokens);
11686			}
11687		}),
11688	_List_Nil);
11689var $elm$parser$Parser$Advanced$lazy = function (thunk) {
11690	return function (s) {
11691		var _v0 = thunk(0);
11692		var parse = _v0;
11693		return parse(s);
11694	};
11695};
11696var $elm$parser$Parser$lazy = $elm$parser$Parser$Advanced$lazy;
11697var $justinmimbs$date$Pattern$isLiteralChar = function (_char) {
11698	return (_char !== '\'') && (!$elm$core$Char$isAlpha(_char));
11699};
11700var $elm$parser$Parser$Advanced$map = F2(
11701	function (func, _v0) {
11702		var parse = _v0;
11703		return function (s0) {
11704			var _v1 = parse(s0);
11705			if (!_v1.$) {
11706				var p = _v1.a;
11707				var a = _v1.b;
11708				var s1 = _v1.c;
11709				return A3(
11710					$elm$parser$Parser$Advanced$Good,
11711					p,
11712					func(a),
11713					s1);
11714			} else {
11715				var p = _v1.a;
11716				var x = _v1.b;
11717				return A2($elm$parser$Parser$Advanced$Bad, p, x);
11718			}
11719		};
11720	});
11721var $elm$parser$Parser$map = $elm$parser$Parser$Advanced$map;
11722var $justinmimbs$date$Pattern$literal = A2(
11723	$elm$parser$Parser$map,
11724	$justinmimbs$date$Pattern$Literal,
11725	$elm$parser$Parser$getChompedString(
11726		A2(
11727			$elm$parser$Parser$ignorer,
11728			A2(
11729				$elm$parser$Parser$ignorer,
11730				$elm$parser$Parser$succeed(0),
11731				$elm$parser$Parser$chompIf($justinmimbs$date$Pattern$isLiteralChar)),
11732			$elm$parser$Parser$chompWhile($justinmimbs$date$Pattern$isLiteralChar))));
11733var $elm$parser$Parser$Advanced$Append = F2(
11734	function (a, b) {
11735		return {$: 2, a: a, b: b};
11736	});
11737var $elm$parser$Parser$Advanced$oneOfHelp = F3(
11738	function (s0, bag, parsers) {
11739		oneOfHelp:
11740		while (true) {
11741			if (!parsers.b) {
11742				return A2($elm$parser$Parser$Advanced$Bad, false, bag);
11743			} else {
11744				var parse = parsers.a;
11745				var remainingParsers = parsers.b;
11746				var _v1 = parse(s0);
11747				if (!_v1.$) {
11748					var step = _v1;
11749					return step;
11750				} else {
11751					var step = _v1;
11752					var p = step.a;
11753					var x = step.b;
11754					if (p) {
11755						return step;
11756					} else {
11757						var $temp$s0 = s0,
11758							$temp$bag = A2($elm$parser$Parser$Advanced$Append, bag, x),
11759							$temp$parsers = remainingParsers;
11760						s0 = $temp$s0;
11761						bag = $temp$bag;
11762						parsers = $temp$parsers;
11763						continue oneOfHelp;
11764					}
11765				}
11766			}
11767		}
11768	});
11769var $elm$parser$Parser$Advanced$oneOf = function (parsers) {
11770	return function (s) {
11771		return A3($elm$parser$Parser$Advanced$oneOfHelp, s, $elm$parser$Parser$Advanced$Empty, parsers);
11772	};
11773};
11774var $elm$parser$Parser$oneOf = $elm$parser$Parser$Advanced$oneOf;
11775var $elm$parser$Parser$ExpectingEnd = {$: 10};
11776var $elm$parser$Parser$Advanced$end = function (x) {
11777	return function (s) {
11778		return _Utils_eq(
11779			$elm$core$String$length(s.dE),
11780			s.cf) ? A3($elm$parser$Parser$Advanced$Good, false, 0, s) : A2(
11781			$elm$parser$Parser$Advanced$Bad,
11782			false,
11783			A2($elm$parser$Parser$Advanced$fromState, s, x));
11784	};
11785};
11786var $elm$parser$Parser$end = $elm$parser$Parser$Advanced$end($elm$parser$Parser$ExpectingEnd);
11787var $justinmimbs$date$Pattern$quotedHelp = function (result) {
11788	return $elm$parser$Parser$oneOf(
11789		_List_fromArray(
11790			[
11791				A2(
11792				$elm$parser$Parser$andThen,
11793				function (str) {
11794					return $justinmimbs$date$Pattern$quotedHelp(
11795						_Utils_ap(result, str));
11796				},
11797				$elm$parser$Parser$getChompedString(
11798					A2(
11799						$elm$parser$Parser$ignorer,
11800						A2(
11801							$elm$parser$Parser$ignorer,
11802							$elm$parser$Parser$succeed(0),
11803							$elm$parser$Parser$chompIf(
11804								$elm$core$Basics$neq('\''))),
11805						$elm$parser$Parser$chompWhile(
11806							$elm$core$Basics$neq('\''))))),
11807				A2(
11808				$elm$parser$Parser$andThen,
11809				function (_v0) {
11810					return $justinmimbs$date$Pattern$quotedHelp(result + '\'');
11811				},
11812				$elm$parser$Parser$token('\'\'')),
11813				$elm$parser$Parser$succeed(result)
11814			]));
11815};
11816var $justinmimbs$date$Pattern$quoted = A2(
11817	$elm$parser$Parser$keeper,
11818	A2(
11819		$elm$parser$Parser$ignorer,
11820		$elm$parser$Parser$succeed($justinmimbs$date$Pattern$Literal),
11821		$elm$parser$Parser$chompIf(
11822			$elm$core$Basics$eq('\''))),
11823	A2(
11824		$elm$parser$Parser$ignorer,
11825		$justinmimbs$date$Pattern$quotedHelp(''),
11826		$elm$parser$Parser$oneOf(
11827			_List_fromArray(
11828				[
11829					$elm$parser$Parser$chompIf(
11830					$elm$core$Basics$eq('\'')),
11831					$elm$parser$Parser$end
11832				]))));
11833var $justinmimbs$date$Pattern$patternHelp = function (tokens) {
11834	return $elm$parser$Parser$oneOf(
11835		_List_fromArray(
11836			[
11837				A2(
11838				$elm$parser$Parser$andThen,
11839				function (token) {
11840					return $justinmimbs$date$Pattern$patternHelp(
11841						A2($elm$core$List$cons, token, tokens));
11842				},
11843				$elm$parser$Parser$oneOf(
11844					_List_fromArray(
11845						[$justinmimbs$date$Pattern$field, $justinmimbs$date$Pattern$literal, $justinmimbs$date$Pattern$escapedQuote, $justinmimbs$date$Pattern$quoted]))),
11846				$elm$parser$Parser$lazy(
11847				function (_v0) {
11848					return $elm$parser$Parser$succeed(
11849						$justinmimbs$date$Pattern$finalize(tokens));
11850				})
11851			]));
11852};
11853var $elm$parser$Parser$DeadEnd = F3(
11854	function (row, col, problem) {
11855		return {d5: col, ge: problem, gm: row};
11856	});
11857var $elm$parser$Parser$problemToDeadEnd = function (p) {
11858	return A3($elm$parser$Parser$DeadEnd, p.gm, p.d5, p.ge);
11859};
11860var $elm$parser$Parser$Advanced$bagToList = F2(
11861	function (bag, list) {
11862		bagToList:
11863		while (true) {
11864			switch (bag.$) {
11865				case 0:
11866					return list;
11867				case 1:
11868					var bag1 = bag.a;
11869					var x = bag.b;
11870					var $temp$bag = bag1,
11871						$temp$list = A2($elm$core$List$cons, x, list);
11872					bag = $temp$bag;
11873					list = $temp$list;
11874					continue bagToList;
11875				default:
11876					var bag1 = bag.a;
11877					var bag2 = bag.b;
11878					var $temp$bag = bag1,
11879						$temp$list = A2($elm$parser$Parser$Advanced$bagToList, bag2, list);
11880					bag = $temp$bag;
11881					list = $temp$list;
11882					continue bagToList;
11883			}
11884		}
11885	});
11886var $elm$parser$Parser$Advanced$run = F2(
11887	function (_v0, src) {
11888		var parse = _v0;
11889		var _v1 = parse(
11890			{d5: 1, f: _List_Nil, h: 1, cf: 0, gm: 1, dE: src});
11891		if (!_v1.$) {
11892			var value = _v1.b;
11893			return $elm$core$Result$Ok(value);
11894		} else {
11895			var bag = _v1.b;
11896			return $elm$core$Result$Err(
11897				A2($elm$parser$Parser$Advanced$bagToList, bag, _List_Nil));
11898		}
11899	});
11900var $elm$parser$Parser$run = F2(
11901	function (parser, source) {
11902		var _v0 = A2($elm$parser$Parser$Advanced$run, parser, source);
11903		if (!_v0.$) {
11904			var a = _v0.a;
11905			return $elm$core$Result$Ok(a);
11906		} else {
11907			var problems = _v0.a;
11908			return $elm$core$Result$Err(
11909				A2($elm$core$List$map, $elm$parser$Parser$problemToDeadEnd, problems));
11910		}
11911	});
11912var $justinmimbs$date$Pattern$fromString = function (str) {
11913	return A2(
11914		$elm$core$Result$withDefault,
11915		_List_fromArray(
11916			[
11917				$justinmimbs$date$Pattern$Literal(str)
11918			]),
11919		A2(
11920			$elm$parser$Parser$run,
11921			$justinmimbs$date$Pattern$patternHelp(_List_Nil),
11922			str));
11923};
11924var $justinmimbs$date$Date$formatWithLanguage = F2(
11925	function (language, pattern) {
11926		var tokens = $elm$core$List$reverse(
11927			$justinmimbs$date$Pattern$fromString(pattern));
11928		return A2($justinmimbs$date$Date$formatWithTokens, language, tokens);
11929	});
11930var $justinmimbs$date$Date$monthToName = function (m) {
11931	switch (m) {
11932		case 0:
11933			return 'January';
11934		case 1:
11935			return 'February';
11936		case 2:
11937			return 'March';
11938		case 3:
11939			return 'April';
11940		case 4:
11941			return 'May';
11942		case 5:
11943			return 'June';
11944		case 6:
11945			return 'July';
11946		case 7:
11947			return 'August';
11948		case 8:
11949			return 'September';
11950		case 9:
11951			return 'October';
11952		case 10:
11953			return 'November';
11954		default:
11955			return 'December';
11956	}
11957};
11958var $justinmimbs$date$Date$weekdayToName = function (wd) {
11959	switch (wd) {
11960		case 0:
11961			return 'Monday';
11962		case 1:
11963			return 'Tuesday';
11964		case 2:
11965			return 'Wednesday';
11966		case 3:
11967			return 'Thursday';
11968		case 4:
11969			return 'Friday';
11970		case 5:
11971			return 'Saturday';
11972		default:
11973			return 'Sunday';
11974	}
11975};
11976var $justinmimbs$date$Date$language_en = {
11977	c1: $justinmimbs$date$Date$withOrdinalSuffix,
11978	dp: $justinmimbs$date$Date$monthToName,
11979	cc: A2(
11980		$elm$core$Basics$composeR,
11981		$justinmimbs$date$Date$monthToName,
11982		$elm$core$String$left(3)),
11983	dY: $justinmimbs$date$Date$weekdayToName,
11984	au: A2(
11985		$elm$core$Basics$composeR,
11986		$justinmimbs$date$Date$weekdayToName,
11987		$elm$core$String$left(3))
11988};
11989var $justinmimbs$date$Date$format = function (pattern) {
11990	return A2($justinmimbs$date$Date$formatWithLanguage, $justinmimbs$date$Date$language_en, pattern);
11991};
11992var $justinmimbs$date$Date$daysBeforeMonth = F2(
11993	function (y, m) {
11994		var leapDays = $justinmimbs$date$Date$isLeapYear(y) ? 1 : 0;
11995		switch (m) {
11996			case 0:
11997				return 0;
11998			case 1:
11999				return 31;
12000			case 2:
12001				return 59 + leapDays;
12002			case 3:
12003				return 90 + leapDays;
12004			case 4:
12005				return 120 + leapDays;
12006			case 5:
12007				return 151 + leapDays;
12008			case 6:
12009				return 181 + leapDays;
12010			case 7:
12011				return 212 + leapDays;
12012			case 8:
12013				return 243 + leapDays;
12014			case 9:
12015				return 273 + leapDays;
12016			case 10:
12017				return 304 + leapDays;
12018			default:
12019				return 334 + leapDays;
12020		}
12021	});
12022var $justinmimbs$date$Date$fromCalendarDate = F3(
12023	function (y, m, d) {
12024		return ($justinmimbs$date$Date$daysBeforeYear(y) + A2($justinmimbs$date$Date$daysBeforeMonth, y, m)) + A3(
12025			$elm$core$Basics$clamp,
12026			1,
12027			A2($justinmimbs$date$Date$daysInMonth, y, m),
12028			d);
12029	});
12030var $elm$time$Time$flooredDiv = F2(
12031	function (numerator, denominator) {
12032		return $elm$core$Basics$floor(numerator / denominator);
12033	});
12034var $elm$time$Time$toAdjustedMinutesHelp = F3(
12035	function (defaultOffset, posixMinutes, eras) {
12036		toAdjustedMinutesHelp:
12037		while (true) {
12038			if (!eras.b) {
12039				return posixMinutes + defaultOffset;
12040			} else {
12041				var era = eras.a;
12042				var olderEras = eras.b;
12043				if (_Utils_cmp(era.i, posixMinutes) < 0) {
12044					return posixMinutes + era.cf;
12045				} else {
12046					var $temp$defaultOffset = defaultOffset,
12047						$temp$posixMinutes = posixMinutes,
12048						$temp$eras = olderEras;
12049					defaultOffset = $temp$defaultOffset;
12050					posixMinutes = $temp$posixMinutes;
12051					eras = $temp$eras;
12052					continue toAdjustedMinutesHelp;
12053				}
12054			}
12055		}
12056	});
12057var $elm$time$Time$toAdjustedMinutes = F2(
12058	function (_v0, time) {
12059		var defaultOffset = _v0.a;
12060		var eras = _v0.b;
12061		return A3(
12062			$elm$time$Time$toAdjustedMinutesHelp,
12063			defaultOffset,
12064			A2(
12065				$elm$time$Time$flooredDiv,
12066				$elm$time$Time$posixToMillis(time),
12067				60000),
12068			eras);
12069	});
12070var $elm$time$Time$toCivil = function (minutes) {
12071	var rawDay = A2($elm$time$Time$flooredDiv, minutes, 60 * 24) + 719468;
12072	var era = (((rawDay >= 0) ? rawDay : (rawDay - 146096)) / 146097) | 0;
12073	var dayOfEra = rawDay - (era * 146097);
12074	var yearOfEra = ((((dayOfEra - ((dayOfEra / 1460) | 0)) + ((dayOfEra / 36524) | 0)) - ((dayOfEra / 146096) | 0)) / 365) | 0;
12075	var dayOfYear = dayOfEra - (((365 * yearOfEra) + ((yearOfEra / 4) | 0)) - ((yearOfEra / 100) | 0));
12076	var mp = (((5 * dayOfYear) + 2) / 153) | 0;
12077	var month = mp + ((mp < 10) ? 3 : (-9));
12078	var year = yearOfEra + (era * 400);
12079	return {
12080		d8: (dayOfYear - ((((153 * mp) + 2) / 5) | 0)) + 1,
12081		eB: month,
12082		e8: year + ((month <= 2) ? 1 : 0)
12083	};
12084};
12085var $elm$time$Time$toDay = F2(
12086	function (zone, time) {
12087		return $elm$time$Time$toCivil(
12088			A2($elm$time$Time$toAdjustedMinutes, zone, time)).d8;
12089	});
12090var $elm$time$Time$toMonth = F2(
12091	function (zone, time) {
12092		var _v0 = $elm$time$Time$toCivil(
12093			A2($elm$time$Time$toAdjustedMinutes, zone, time)).eB;
12094		switch (_v0) {
12095			case 1:
12096				return 0;
12097			case 2:
12098				return 1;
12099			case 3:
12100				return 2;
12101			case 4:
12102				return 3;
12103			case 5:
12104				return 4;
12105			case 6:
12106				return 5;
12107			case 7:
12108				return 6;
12109			case 8:
12110				return 7;
12111			case 9:
12112				return 8;
12113			case 10:
12114				return 9;
12115			case 11:
12116				return 10;
12117			default:
12118				return 11;
12119		}
12120	});
12121var $elm$time$Time$toYear = F2(
12122	function (zone, time) {
12123		return $elm$time$Time$toCivil(
12124			A2($elm$time$Time$toAdjustedMinutes, zone, time)).e8;
12125	});
12126var $justinmimbs$date$Date$fromPosix = F2(
12127	function (zone, posix) {
12128		return A3(
12129			$justinmimbs$date$Date$fromCalendarDate,
12130			A2($elm$time$Time$toYear, zone, posix),
12131			A2($elm$time$Time$toMonth, zone, posix),
12132			A2($elm$time$Time$toDay, zone, posix));
12133	});
12134var $author$project$W$InputDate$valueFromDate = F2(
12135	function (timeZone, timestamp) {
12136		return A2(
12137			$justinmimbs$date$Date$format,
12138			'yyyy-MM-dd',
12139			A2($justinmimbs$date$Date$fromPosix, timeZone, timestamp));
12140	});
12141var $author$project$W$InputDate$init = F2(
12142	function (timeZone, value) {
12143		if (!value.$) {
12144			var v = value.a;
12145			return A3(
12146				$author$project$W$InputDate$Value,
12147				A2($author$project$W$InputDate$valueFromDate, timeZone, v),
12148				timeZone,
12149				$elm$core$Maybe$Just(v));
12150		} else {
12151			return A3($author$project$W$InputDate$Value, '', timeZone, $elm$core$Maybe$Nothing);
12152		}
12153	});
12154var $author$project$W$InputDate$toDate = function (_v0) {
12155	var v = _v0.c;
12156	return v;
12157};
12158var $elm$time$Time$toHour = F2(
12159	function (zone, time) {
12160		return A2(
12161			$elm$core$Basics$modBy,
12162			24,
12163			A2(
12164				$elm$time$Time$flooredDiv,
12165				A2($elm$time$Time$toAdjustedMinutes, zone, time),
12166				60));
12167	});
12168var $justinmimbs$date$Date$toIsoString = $justinmimbs$date$Date$format('yyyy-MM-dd');
12169var $elm$time$Time$toMinute = F2(
12170	function (zone, time) {
12171		return A2(
12172			$elm$core$Basics$modBy,
12173			60,
12174			A2($elm$time$Time$toAdjustedMinutes, zone, time));
12175	});
12176var $elm$time$Time$utc = A2($elm$time$Time$Zone, 0, _List_Nil);
12177var $author$project$Chapters$Form$InputDate$logValue = function (value) {
12178	var _v0 = $author$project$W$InputDate$toDate(value);
12179	if (!_v0.$) {
12180		var v_ = _v0.a;
12181		return $dtwrks$elm_book$ElmBook$Actions$logAction(
12182			'Just ' + ($justinmimbs$date$Date$toIsoString(
12183				A2($justinmimbs$date$Date$fromPosix, $elm$time$Time$utc, v_)) + (' ' + ($elm$core$String$fromInt(
12184				A2($elm$time$Time$toHour, $elm$time$Time$utc, v_)) + (':' + $elm$core$String$fromInt(
12185				A2($elm$time$Time$toMinute, $elm$time$Time$utc, v_)))))));
12186	} else {
12187		return $dtwrks$elm_book$ElmBook$Actions$logAction('Nothing');
12188	}
12189};
12190var $author$project$W$InputDate$Attribute = $elm$core$Basics$identity;
12191var $author$project$W$InputDate$max = function (v) {
12192	return function (attrs) {
12193		return _Utils_update(
12194			attrs,
12195			{
12196				fS: $elm$core$Maybe$Just(v)
12197			});
12198	};
12199};
12200var $author$project$W$InputDate$min = function (v) {
12201	return function (attrs) {
12202		return _Utils_update(
12203			attrs,
12204			{
12205				fX: $elm$core$Maybe$Just(v)
12206			});
12207	};
12208};
12209var $author$project$W$InputDate$defaultAttrs = {bE: false, F: '', bV: false, b$: _List_Nil, fS: $elm$core$Maybe$Nothing, fX: $elm$core$Maybe$Nothing, cg: $elm$core$Maybe$Nothing, ci: $elm$core$Maybe$Nothing, cj: $elm$core$Maybe$Nothing, bk: $elm$core$Maybe$Nothing, ah: false, cw: false, aV: false, bv: $elm$core$Maybe$Nothing};
12210var $author$project$W$InputDate$applyAttrs = function (attrs) {
12211	return A3(
12212		$elm$core$List$foldl,
12213		F2(
12214			function (_v0, a) {
12215				var fn = _v0;
12216				return fn(a);
12217			}),
12218		$author$project$W$InputDate$defaultAttrs,
12219		attrs);
12220};
12221var $author$project$W$InputDate$baseAttrs = F2(
12222	function (attrs, _v0) {
12223		var valueString = _v0.a;
12224		var timeZone = _v0.b;
12225		var value = _v0.c;
12226		return _Utils_ap(
12227			attrs.b$,
12228			_List_fromArray(
12229				[
12230					$elm$html$Html$Attributes$type_('date'),
12231					$elm$html$Html$Attributes$class(
12232					$author$project$W$Internal$Input$baseClassNoColor(attrs.aV)),
12233					$elm$html$Html$Attributes$classList(
12234					_List_fromArray(
12235						[
12236							_Utils_Tuple2(
12237							'ew-text-base-aux/80',
12238							_Utils_eq(value, $elm$core$Maybe$Nothing)),
12239							_Utils_Tuple2(
12240							'ew-text-inherit',
12241							!_Utils_eq(value, $elm$core$Maybe$Nothing))
12242						])),
12243					$elm$html$Html$Attributes$required(attrs.cw),
12244					$elm$html$Html$Attributes$disabled(attrs.bV),
12245					$elm$html$Html$Attributes$readonly(attrs.ah),
12246					$elm$html$Html$Attributes$autofocus(attrs.bE),
12247					A3(
12248					$author$project$W$Internal$Helpers$attrIf,
12249					attrs.ah,
12250					$elm$html$Html$Attributes$attribute('aria-readonly'),
12251					'true'),
12252					A3(
12253					$author$project$W$Internal$Helpers$attrIf,
12254					attrs.bV,
12255					$elm$html$Html$Attributes$attribute('aria-disabled'),
12256					'true'),
12257					A2(
12258					$author$project$W$Internal$Helpers$maybeAttr,
12259					$elm$html$Html$Attributes$min,
12260					A2(
12261						$elm$core$Maybe$map,
12262						$author$project$W$InputDate$valueFromDate(timeZone),
12263						attrs.fX)),
12264					A2(
12265					$author$project$W$Internal$Helpers$maybeAttr,
12266					$elm$html$Html$Attributes$max,
12267					A2(
12268						$elm$core$Maybe$map,
12269						$author$project$W$InputDate$valueFromDate(timeZone),
12270						attrs.fS)),
12271					A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onFocus, attrs.cj),
12272					A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onBlur, attrs.cg),
12273					A2($author$project$W$Internal$Helpers$maybeAttr, $author$project$W$Internal$Helpers$onEnter, attrs.ci),
12274					$elm$html$Html$Attributes$value(valueString)
12275				]));
12276	});
12277var $author$project$W$Internal$Icons$calendar = function (props) {
12278	return A2(
12279		$elm$svg$Svg$svg,
12280		_List_fromArray(
12281			[
12282				$elm$svg$Svg$Attributes$width(
12283				$elm$core$String$fromFloat(props.n) + 'px'),
12284				$elm$svg$Svg$Attributes$height(
12285				$elm$core$String$fromFloat(props.n) + 'px'),
12286				$elm$svg$Svg$Attributes$viewBox('0 0 24 24')
12287			]),
12288		_List_fromArray(
12289			[
12290				A2(
12291				$elm$svg$Svg$path,
12292				_List_fromArray(
12293					[
12294						$elm$svg$Svg$Attributes$fill('none'),
12295						$elm$svg$Svg$Attributes$d('M0 0h24v24H0z')
12296					]),
12297				_List_Nil),
12298				A2(
12299				$elm$svg$Svg$path,
12300				_List_fromArray(
12301					[
12302						$elm$svg$Svg$Attributes$d('M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'),
12303						$elm$svg$Svg$Attributes$fill('currentColor')
12304					]),
12305				_List_Nil)
12306			]));
12307};
12308var $justinmimbs$time_extra$Time$Extra$Day = 11;
12309var $justinmimbs$time_extra$Time$Extra$Millisecond = 15;
12310var $justinmimbs$time_extra$Time$Extra$Month = 2;
12311var $justinmimbs$time_extra$Time$Extra$Week = 3;
12312var $justinmimbs$date$Date$Day = 11;
12313var $justinmimbs$date$Date$Friday = 8;
12314var $justinmimbs$date$Date$Monday = 4;
12315var $justinmimbs$date$Date$Month = 2;
12316var $justinmimbs$date$Date$Quarter = 1;
12317var $justinmimbs$date$Date$Saturday = 9;
12318var $justinmimbs$date$Date$Sunday = 10;
12319var $justinmimbs$date$Date$Thursday = 7;
12320var $justinmimbs$date$Date$Tuesday = 5;
12321var $justinmimbs$date$Date$Wednesday = 6;
12322var $justinmimbs$date$Date$Week = 3;
12323var $justinmimbs$date$Date$Year = 0;
12324var $justinmimbs$date$Date$weekdayToNumber = function (wd) {
12325	switch (wd) {
12326		case 0:
12327			return 1;
12328		case 1:
12329			return 2;
12330		case 2:
12331			return 3;
12332		case 3:
12333			return 4;
12334		case 4:
12335			return 5;
12336		case 5:
12337			return 6;
12338		default:
12339			return 7;
12340	}
12341};
12342var $justinmimbs$date$Date$daysSincePreviousWeekday = F2(
12343	function (wd, date) {
12344		return A2(
12345			$elm$core$Basics$modBy,
12346			7,
12347			($justinmimbs$date$Date$weekdayNumber(date) + 7) - $justinmimbs$date$Date$weekdayToNumber(wd));
12348	});
12349var $justinmimbs$date$Date$firstOfMonth = F2(
12350	function (y, m) {
12351		return ($justinmimbs$date$Date$daysBeforeYear(y) + A2($justinmimbs$date$Date$daysBeforeMonth, y, m)) + 1;
12352	});
12353var $justinmimbs$date$Date$firstOfYear = function (y) {
12354	return $justinmimbs$date$Date$daysBeforeYear(y) + 1;
12355};
12356var $justinmimbs$date$Date$quarterToMonth = function (q) {
12357	return $justinmimbs$date$Date$numberToMonth((q * 3) - 2);
12358};
12359var $justinmimbs$date$Date$floor = F2(
12360	function (interval, date) {
12361		var rd = date;
12362		switch (interval) {
12363			case 0:
12364				return $justinmimbs$date$Date$firstOfYear(
12365					$justinmimbs$date$Date$year(date));
12366			case 1:
12367				return A2(
12368					$justinmimbs$date$Date$firstOfMonth,
12369					$justinmimbs$date$Date$year(date),
12370					$justinmimbs$date$Date$quarterToMonth(
12371						$justinmimbs$date$Date$quarter(date)));
12372			case 2:
12373				return A2(
12374					$justinmimbs$date$Date$firstOfMonth,
12375					$justinmimbs$date$Date$year(date),
12376					$justinmimbs$date$Date$month(date));
12377			case 3:
12378				return rd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, 0, date);
12379			case 4:
12380				return rd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, 0, date);
12381			case 5:
12382				return rd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, 1, date);
12383			case 6:
12384				return rd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, 2, date);
12385			case 7:
12386				return rd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, 3, date);
12387			case 8:
12388				return rd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, 4, date);
12389			case 9:
12390				return rd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, 5, date);
12391			case 10:
12392				return rd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, 6, date);
12393			default:
12394				return date;
12395		}
12396	});
12397var $justinmimbs$date$Date$toRataDie = function (_v0) {
12398	var rd = _v0;
12399	return rd;
12400};
12401var $justinmimbs$time_extra$Time$Extra$dateToMillis = function (date) {
12402	var daysSinceEpoch = $justinmimbs$date$Date$toRataDie(date) - 719163;
12403	return daysSinceEpoch * 86400000;
12404};
12405var $justinmimbs$time_extra$Time$Extra$timeFromClock = F4(
12406	function (hour, minute, second, millisecond) {
12407		return (((hour * 3600000) + (minute * 60000)) + (second * 1000)) + millisecond;
12408	});
12409var $elm$time$Time$toMillis = F2(
12410	function (_v0, time) {
12411		return A2(
12412			$elm$core$Basics$modBy,
12413			1000,
12414			$elm$time$Time$posixToMillis(time));
12415	});
12416var $elm$time$Time$toSecond = F2(
12417	function (_v0, time) {
12418		return A2(
12419			$elm$core$Basics$modBy,
12420			60,
12421			A2(
12422				$elm$time$Time$flooredDiv,
12423				$elm$time$Time$posixToMillis(time),
12424				1000));
12425	});
12426var $justinmimbs$time_extra$Time$Extra$timeFromPosix = F2(
12427	function (zone, posix) {
12428		return A4(
12429			$justinmimbs$time_extra$Time$Extra$timeFromClock,
12430			A2($elm$time$Time$toHour, zone, posix),
12431			A2($elm$time$Time$toMinute, zone, posix),
12432			A2($elm$time$Time$toSecond, zone, posix),
12433			A2($elm$time$Time$toMillis, zone, posix));
12434	});
12435var $justinmimbs$time_extra$Time$Extra$toOffset = F2(
12436	function (zone, posix) {
12437		var millis = $elm$time$Time$posixToMillis(posix);
12438		var localMillis = $justinmimbs$time_extra$Time$Extra$dateToMillis(
12439			A2($justinmimbs$date$Date$fromPosix, zone, posix)) + A2($justinmimbs$time_extra$Time$Extra$timeFromPosix, zone, posix);
12440		return ((localMillis - millis) / 60000) | 0;
12441	});
12442var $justinmimbs$time_extra$Time$Extra$posixFromDateTime = F3(
12443	function (zone, date, time) {
12444		var millis = $justinmimbs$time_extra$Time$Extra$dateToMillis(date) + time;
12445		var offset0 = A2(
12446			$justinmimbs$time_extra$Time$Extra$toOffset,
12447			zone,
12448			$elm$time$Time$millisToPosix(millis));
12449		var posix1 = $elm$time$Time$millisToPosix(millis - (offset0 * 60000));
12450		var offset1 = A2($justinmimbs$time_extra$Time$Extra$toOffset, zone, posix1);
12451		if (_Utils_eq(offset0, offset1)) {
12452			return posix1;
12453		} else {
12454			var posix2 = $elm$time$Time$millisToPosix(millis - (offset1 * 60000));
12455			var offset2 = A2($justinmimbs$time_extra$Time$Extra$toOffset, zone, posix2);
12456			return _Utils_eq(offset1, offset2) ? posix2 : posix1;
12457		}
12458	});
12459var $justinmimbs$time_extra$Time$Extra$floorDate = F3(
12460	function (dateInterval, zone, posix) {
12461		return A3(
12462			$justinmimbs$time_extra$Time$Extra$posixFromDateTime,
12463			zone,
12464			A2(
12465				$justinmimbs$date$Date$floor,
12466				dateInterval,
12467				A2($justinmimbs$date$Date$fromPosix, zone, posix)),
12468			0);
12469	});
12470var $justinmimbs$time_extra$Time$Extra$floor = F3(
12471	function (interval, zone, posix) {
12472		switch (interval) {
12473			case 15:
12474				return posix;
12475			case 14:
12476				return A3(
12477					$justinmimbs$time_extra$Time$Extra$posixFromDateTime,
12478					zone,
12479					A2($justinmimbs$date$Date$fromPosix, zone, posix),
12480					A4(
12481						$justinmimbs$time_extra$Time$Extra$timeFromClock,
12482						A2($elm$time$Time$toHour, zone, posix),
12483						A2($elm$time$Time$toMinute, zone, posix),
12484						A2($elm$time$Time$toSecond, zone, posix),
12485						0));
12486			case 13:
12487				return A3(
12488					$justinmimbs$time_extra$Time$Extra$posixFromDateTime,
12489					zone,
12490					A2($justinmimbs$date$Date$fromPosix, zone, posix),
12491					A4(
12492						$justinmimbs$time_extra$Time$Extra$timeFromClock,
12493						A2($elm$time$Time$toHour, zone, posix),
12494						A2($elm$time$Time$toMinute, zone, posix),
12495						0,
12496						0));
12497			case 12:
12498				return A3(
12499					$justinmimbs$time_extra$Time$Extra$posixFromDateTime,
12500					zone,
12501					A2($justinmimbs$date$Date$fromPosix, zone, posix),
12502					A4(
12503						$justinmimbs$time_extra$Time$Extra$timeFromClock,
12504						A2($elm$time$Time$toHour, zone, posix),
12505						0,
12506						0,
12507						0));
12508			case 11:
12509				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 11, zone, posix);
12510			case 2:
12511				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 2, zone, posix);
12512			case 0:
12513				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 0, zone, posix);
12514			case 1:
12515				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 1, zone, posix);
12516			case 3:
12517				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 3, zone, posix);
12518			case 4:
12519				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 4, zone, posix);
12520			case 5:
12521				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 5, zone, posix);
12522			case 6:
12523				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 6, zone, posix);
12524			case 7:
12525				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 7, zone, posix);
12526			case 8:
12527				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 8, zone, posix);
12528			case 9:
12529				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 9, zone, posix);
12530			default:
12531				return A3($justinmimbs$time_extra$Time$Extra$floorDate, 10, zone, posix);
12532		}
12533	});
12534var $justinmimbs$time_extra$Time$Extra$toFractionalDay = F2(
12535	function (zone, posix) {
12536		return A2($justinmimbs$time_extra$Time$Extra$timeFromPosix, zone, posix) / 86400000;
12537	});
12538var $justinmimbs$time_extra$Time$Extra$toMonths = F2(
12539	function (zone, posix) {
12540		var wholeMonths = (12 * (A2($elm$time$Time$toYear, zone, posix) - 1)) + ($justinmimbs$date$Date$monthToNumber(
12541			A2($elm$time$Time$toMonth, zone, posix)) - 1);
12542		var fractionalMonth = (A2($elm$time$Time$toDay, zone, posix) + A2($justinmimbs$time_extra$Time$Extra$toFractionalDay, zone, posix)) / 100;
12543		return wholeMonths + fractionalMonth;
12544	});
12545var $justinmimbs$time_extra$Time$Extra$toRataDieMoment = F2(
12546	function (zone, posix) {
12547		return $justinmimbs$date$Date$toRataDie(
12548			A2($justinmimbs$date$Date$fromPosix, zone, posix)) + A2($justinmimbs$time_extra$Time$Extra$toFractionalDay, zone, posix);
12549	});
12550var $elm$core$Basics$truncate = _Basics_truncate;
12551var $justinmimbs$time_extra$Time$Extra$diff = F4(
12552	function (interval, zone, posix1, posix2) {
12553		diff:
12554		while (true) {
12555			switch (interval) {
12556				case 15:
12557					return $elm$time$Time$posixToMillis(posix2) - $elm$time$Time$posixToMillis(posix1);
12558				case 14:
12559					return (A4($justinmimbs$time_extra$Time$Extra$diff, 15, zone, posix1, posix2) / 1000) | 0;
12560				case 13:
12561					return (A4($justinmimbs$time_extra$Time$Extra$diff, 15, zone, posix1, posix2) / 60000) | 0;
12562				case 12:
12563					return (A4($justinmimbs$time_extra$Time$Extra$diff, 15, zone, posix1, posix2) / 3600000) | 0;
12564				case 11:
12565					return (A2($justinmimbs$time_extra$Time$Extra$toRataDieMoment, zone, posix2) - A2($justinmimbs$time_extra$Time$Extra$toRataDieMoment, zone, posix1)) | 0;
12566				case 2:
12567					return (A2($justinmimbs$time_extra$Time$Extra$toMonths, zone, posix2) - A2($justinmimbs$time_extra$Time$Extra$toMonths, zone, posix1)) | 0;
12568				case 0:
12569					return (A4($justinmimbs$time_extra$Time$Extra$diff, 2, zone, posix1, posix2) / 12) | 0;
12570				case 1:
12571					return (A4($justinmimbs$time_extra$Time$Extra$diff, 2, zone, posix1, posix2) / 3) | 0;
12572				case 3:
12573					return (A4($justinmimbs$time_extra$Time$Extra$diff, 11, zone, posix1, posix2) / 7) | 0;
12574				default:
12575					var weekday = interval;
12576					var $temp$interval = 3,
12577						$temp$zone = zone,
12578						$temp$posix1 = A3($justinmimbs$time_extra$Time$Extra$floor, weekday, zone, posix1),
12579						$temp$posix2 = A3($justinmimbs$time_extra$Time$Extra$floor, weekday, zone, posix2);
12580					interval = $temp$interval;
12581					zone = $temp$zone;
12582					posix1 = $temp$posix1;
12583					posix2 = $temp$posix2;
12584					continue diff;
12585			}
12586		}
12587	});
12588var $elm$core$Basics$isNaN = _Basics_isNaN;
12589var $author$project$W$InputDate$dateFromValue = F3(
12590	function (_v0, valueString, valueAsNumber) {
12591		var timeZone = _v0.b;
12592		var currentValue = _v0.c;
12593		if ($elm$core$Basics$isNaN(valueAsNumber)) {
12594			return A3($author$project$W$InputDate$Value, valueString, timeZone, $elm$core$Maybe$Nothing);
12595		} else {
12596			var timeOfDayOffset = A2(
12597				$elm$core$Maybe$withDefault,
12598				0,
12599				A2(
12600					$elm$core$Maybe$map,
12601					function (userValue) {
12602						return A4(
12603							$justinmimbs$time_extra$Time$Extra$diff,
12604							15,
12605							timeZone,
12606							A3($justinmimbs$time_extra$Time$Extra$floor, 11, timeZone, userValue),
12607							userValue);
12608					},
12609					currentValue));
12610			var notAdjusted = $elm$time$Time$millisToPosix(
12611				$elm$core$Basics$floor(valueAsNumber));
12612			var timezoneAdjusted = $elm$core$Basics$floor(valueAsNumber) - ((A2($justinmimbs$time_extra$Time$Extra$toOffset, timeZone, notAdjusted) * 60) * 1000);
12613			var dateValue = $elm$core$Maybe$Just(
12614				$elm$time$Time$millisToPosix(timezoneAdjusted + timeOfDayOffset));
12615			return A3($author$project$W$InputDate$Value, valueString, timeZone, dateValue);
12616		}
12617	});
12618var $elm$json$Json$Decode$float = _Json_decodeFloat;
12619var $author$project$W$InputDate$toString = function (_v0) {
12620	var v = _v0.a;
12621	return v;
12622};
12623var $author$project$W$InputDate$view = F2(
12624	function (attrs_, props) {
12625		var attrs = $author$project$W$InputDate$applyAttrs(attrs_);
12626		return A3(
12627			$author$project$W$Internal$Input$viewWithIcon,
12628			{
12629				bV: attrs.bV,
12630				fQ: $elm$core$Maybe$Nothing,
12631				fR: $author$project$W$InputDate$toString(props.cN),
12632				bk: attrs.bk,
12633				ah: attrs.ah,
12634				aV: attrs.aV,
12635				bv: attrs.bv
12636			},
12637			$author$project$W$Internal$Icons$calendar(
12638				{n: 24}),
12639			A2(
12640				$elm$html$Html$input,
12641				A2(
12642					$elm$core$List$cons,
12643					A2(
12644						$elm$html$Html$Events$on,
12645						'input',
12646						A3(
12647							$elm$json$Json$Decode$map2,
12648							F2(
12649								function (vs, vn) {
12650									return props.cm(
12651										A3($author$project$W$InputDate$dateFromValue, props.cN, vs, vn));
12652								}),
12653							A2(
12654								$elm$json$Json$Decode$at,
12655								_List_fromArray(
12656									['target', 'value']),
12657								$elm$json$Json$Decode$string),
12658							A2(
12659								$elm$json$Json$Decode$at,
12660								_List_fromArray(
12661									['target', 'valueAsNumber']),
12662								$elm$json$Json$Decode$float))),
12663					A2($author$project$W$InputDate$baseAttrs, attrs, props.cN)),
12664				_List_Nil));
12665	});
12666var $author$project$W$InputDate$TooHigh = F2(
12667	function (a, b) {
12668		return {$: 1, a: a, b: b};
12669	});
12670var $author$project$W$InputDate$TooLow = F2(
12671	function (a, b) {
12672		return {$: 0, a: a, b: b};
12673	});
12674var $author$project$W$InputDate$ValueMissing = function (a) {
12675	return {$: 2, a: a};
12676};
12677var $author$project$W$Internal$Helpers$keepIf = F2(
12678	function (a, m) {
12679		return a ? m : $elm$core$Maybe$Nothing;
12680	});
12681var $elm$json$Json$Decode$map6 = _Json_map6;
12682var $author$project$W$InputDate$toTimeZone = function (_v0) {
12683	var v = _v0.b;
12684	return v;
12685};
12686var $author$project$W$InputDate$viewWithValidation = F2(
12687	function (attrs_, props) {
12688		var attrs = $author$project$W$InputDate$applyAttrs(attrs_);
12689		return A3(
12690			$author$project$W$Internal$Input$viewWithIcon,
12691			{
12692				bV: attrs.bV,
12693				fQ: $elm$core$Maybe$Nothing,
12694				fR: $author$project$W$InputDate$toString(props.cN),
12695				bk: attrs.bk,
12696				ah: attrs.ah,
12697				aV: attrs.aV,
12698				bv: attrs.bv
12699			},
12700			$author$project$W$Internal$Icons$calendar(
12701				{n: 24}),
12702			A2(
12703				$elm$html$Html$input,
12704				A2(
12705					$elm$core$List$cons,
12706					A2(
12707						$elm$html$Html$Events$on,
12708						'input',
12709						A7(
12710							$elm$json$Json$Decode$map6,
12711							F6(
12712								function (valueString, valueAsNumber, valid, rangeOverflow, rangeUnderflow, valueMissing) {
12713									var newValue = A3($author$project$W$InputDate$dateFromValue, props.cN, valueString, valueAsNumber);
12714									return valid ? A2(
12715										props.cm,
12716										$elm$core$Result$Ok(
12717											$author$project$W$InputDate$toDate(newValue)),
12718										newValue) : function (xs) {
12719										return A2(
12720											props.cm,
12721											$elm$core$Result$Err(xs),
12722											newValue);
12723									}(
12724										A2(
12725											$elm$core$List$filterMap,
12726											$elm$core$Basics$identity,
12727											_List_fromArray(
12728												[
12729													A2(
12730													$author$project$W$Internal$Helpers$keepIf,
12731													valueMissing,
12732													$elm$core$Maybe$Just(
12733														$author$project$W$InputDate$ValueMissing('Please fill out this field.'))),
12734													A2(
12735													$elm$core$Maybe$map,
12736													function (min_) {
12737														var timeString = A2(
12738															$author$project$W$InputDate$valueFromDate,
12739															$author$project$W$InputDate$toTimeZone(props.cN),
12740															min_);
12741														return A2($author$project$W$InputDate$TooLow, min_, 'Value must be ' + (timeString + ' or later.'));
12742													},
12743													A2($author$project$W$Internal$Helpers$keepIf, rangeUnderflow, attrs.fX)),
12744													A2(
12745													$elm$core$Maybe$map,
12746													function (max_) {
12747														var timeString = A2(
12748															$author$project$W$InputDate$valueFromDate,
12749															$author$project$W$InputDate$toTimeZone(props.cN),
12750															max_);
12751														return A2($author$project$W$InputDate$TooHigh, max_, 'Value must be ' + (timeString + ' or earlier.'));
12752													},
12753													A2($author$project$W$Internal$Helpers$keepIf, rangeOverflow, attrs.fS))
12754												])));
12755								}),
12756							A2(
12757								$elm$json$Json$Decode$at,
12758								_List_fromArray(
12759									['target', 'value']),
12760								$elm$json$Json$Decode$string),
12761							A2(
12762								$elm$json$Json$Decode$at,
12763								_List_fromArray(
12764									['target', 'valueAsNumber']),
12765								$elm$json$Json$Decode$float),
12766							A2(
12767								$elm$json$Json$Decode$at,
12768								_List_fromArray(
12769									['target', 'validity', 'valid']),
12770								$elm$json$Json$Decode$bool),
12771							A2(
12772								$elm$json$Json$Decode$at,
12773								_List_fromArray(
12774									['target', 'validity', 'rangeOverflow']),
12775								$elm$json$Json$Decode$bool),
12776							A2(
12777								$elm$json$Json$Decode$at,
12778								_List_fromArray(
12779									['target', 'validity', 'rangeUnderflow']),
12780								$elm$json$Json$Decode$bool),
12781							A2(
12782								$elm$json$Json$Decode$at,
12783								_List_fromArray(
12784									['target', 'validity', 'valueMissing']),
12785								$elm$json$Json$Decode$bool))),
12786					A2($author$project$W$InputDate$baseAttrs, attrs, props.cN)),
12787				_List_Nil));
12788	});
12789var $author$project$Chapters$Form$InputDate$chapter_ = A2(
12790	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
12791	_List_fromArray(
12792		[
12793			_Utils_Tuple2(
12794			'Default',
12795			A2(
12796				$author$project$W$InputDate$view,
12797				_List_Nil,
12798				{
12799					cm: $author$project$Chapters$Form$InputDate$logValue,
12800					cN: A2($author$project$W$InputDate$init, $elm$time$Time$utc, $elm$core$Maybe$Nothing)
12801				})),
12802			_Utils_Tuple2(
12803			'Custom Timezone (GMT-3)',
12804			function () {
12805				var timeZone = A2($elm$time$Time$customZone, (-3) * 60, _List_Nil);
12806				return A2(
12807					$author$project$W$InputDate$view,
12808					_List_Nil,
12809					{
12810						cm: $author$project$Chapters$Form$InputDate$logValue,
12811						cN: A2(
12812							$author$project$W$InputDate$init,
12813							timeZone,
12814							$elm$core$Maybe$Just(
12815								$elm$time$Time$millisToPosix(1651693959717)))
12816					});
12817			}()),
12818			_Utils_Tuple2(
12819			'Validation',
12820			A2(
12821				$author$project$W$InputDate$viewWithValidation,
12822				_List_fromArray(
12823					[
12824						$author$project$W$InputDate$min(
12825						$elm$time$Time$millisToPosix(1651693959717)),
12826						$author$project$W$InputDate$max(
12827						$elm$time$Time$millisToPosix(1671484833575))
12828					]),
12829				{
12830					cm: function (_v0) {
12831						return $author$project$Chapters$Form$InputDate$logValue;
12832					},
12833					cN: A2(
12834						$author$project$W$InputDate$init,
12835						$elm$time$Time$utc,
12836						$elm$core$Maybe$Just(
12837							$elm$time$Time$millisToPosix(1651693959717)))
12838				}))
12839		]),
12840	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Date'));
12841var $author$project$W$InputFloat$errorToString = function (error) {
12842	switch (error.$) {
12843		case 0:
12844			var message = error.b;
12845			retu
12845rn message;
12846		case 1:
12847			var message = error.b;
12848			return message;
12849		case 2:
12850			var message = error.b;
12851			return message;
12852		case 3:
12853			var message = error.b;
12854			return message;
12855		case 4:
12856			var message = error.b;
12857			return message;
12858		case 5:
12859			var message = error.a;
12860			return message;
12861		default:
12862			var message = error.a;
12863			return message;
12864	}
12865};
12866var $author$project$W$InputFloat$Attribute = $elm$core$Basics$identity;
12867var $author$project$W$InputFloat$placeholder = function (v) {
12868	return function (attrs) {
12869		return _Utils_update(
12870			attrs,
12871			{
12872				gb: $elm$core$Maybe$Just(v)
12873			});
12874	};
12875};
12876var $dtwrks$elm_book$ElmBook$Actions$updateState = function (fn) {
12877	return $dtwrks$elm_book$ElmBook$Internal$Msg$UpdateState(
12878		function (state) {
12879			return _Utils_Tuple2(
12880				fn(state),
12881				$elm$core$Platform$Cmd$none);
12882		});
12883};
12884var $author$project$W$InputFloat$defaultAttrs = {bE: false, bV: false, b$: _List_Nil, fQ: $elm$core$Maybe$Nothing, fS: $elm$core$Maybe$Nothing, fX: $elm$core$Maybe$Nothing, cg: $elm$core$Maybe$Nothing, ci: $elm$core$Maybe$Nothing, cj: $elm$core$Maybe$Nothing, gb: $elm$core$Maybe$Nothing, bk: $elm$core$Maybe$Nothing, ah: false, cw: false, aV: false, gq: 0.01, bv: $elm$core$Maybe$Nothing, cM: $elm$core$Maybe$Nothing};
12885var $author$project$W$InputFloat$applyAttrs = function (attrs) {
12886	return A3(
12887		$elm$core$List$foldl,
12888		F2(
12889			function (_v0, a) {
12890				var fn = _v0;
12891				return fn(a);
12892			}),
12893		$author$project$W$InputFloat$defaultAttrs,
12894		attrs);
12895};
12896var $author$project$W$InputFloat$baseAttrs = function (attrs) {
12897	return _Utils_ap(
12898		attrs.b$,
12899		_List_fromArray(
12900			[
12901				$elm$html$Html$Attributes$type_('number'),
12902				$elm$html$Html$Attributes$class(
12903				$author$project$W$Internal$Input$baseClass(attrs.aV)),
12904				$elm$html$Html$Attributes$required(attrs.cw),
12905				$elm$html$Html$Attributes$disabled(attrs.bV),
12906				$elm$html$Html$Attributes$readonly(attrs.ah),
12907				$elm$html$Html$Attributes$autofocus(attrs.bE),
12908				A3(
12909				$author$project$W$Internal$Helpers$attrIf,
12910				attrs.ah,
12911				$elm$html$Html$Attributes$attribute('aria-readonly'),
12912				'true'),
12913				A3(
12914				$author$project$W$Internal$Helpers$attrIf,
12915				attrs.bV,
12916				$elm$html$Html$Attributes$attribute('aria-disabled'),
12917				'true'),
12918				A2(
12919				$author$project$W$Internal$Helpers$maybeAttr,
12920				$elm$html$Html$Attributes$min,
12921				A2($elm$core$Maybe$map, $elm$core$String$fromFloat, attrs.fX)),
12922				A2(
12923				$author$project$W$Internal$Helpers$maybeAttr,
12924				$elm$html$Html$Attributes$max,
12925				A2($elm$core$Maybe$map, $elm$core$String$fromFloat, attrs.fS)),
12926				$elm$html$Html$Attributes$step(
12927				$elm$core$String$fromFloat(attrs.gq)),
12928				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Attributes$placeholder, attrs.gb),
12929				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onFocus, attrs.cj),
12930				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onBlur, attrs.cg),
12931				A2($author$project$W$Internal$Helpers$maybeAttr, $author$project$W$Internal$Helpers$onEnter, attrs.ci)
12932			]));
12933};
12934var $author$project$W$InputFloat$toString = function (_v0) {
12935	var v = _v0.a;
12936	return v;
12937};
12938var $author$project$W$InputFloat$Value = F2(
12939	function (a, b) {
12940		return {$: 0, a: a, b: b};
12941	});
12942var $author$project$W$InputFloat$toValue = F2(
12943	function (previous, value) {
12944		var _v0 = $elm$core$String$toFloat(value);
12945		if (!_v0.$) {
12946			var v = _v0.a;
12947			return A2(
12948				$author$project$W$InputFloat$Value,
12949				value,
12950				$elm$core$Maybe$Just(v));
12951		} else {
12952			if (value === '') {
12953				return A2($author$project$W$InputFloat$Value, value, $elm$core$Maybe$Nothing);
12954			} else {
12955				var _v1 = $elm$core$String$toFloat(
12956					$author$project$W$InputFloat$toString(previous));
12957				if (!_v1.$) {
12958					var v_ = _v1.a;
12959					return A2(
12960						$author$project$W$InputFloat$Value,
12961						value,
12962						$elm$core$Maybe$Just(v_));
12963				} else {
12964					return A2($author$project$W$InputFloat$Value, value, $elm$core$Maybe$Nothing);
12965				}
12966			}
12967		}
12968	});
12969var $author$project$W$InputFloat$view = F2(
12970	function (attrs_, props) {
12971		var value = $author$project$W$InputFloat$toString(props.cN);
12972		var attrs = $author$project$W$InputFloat$applyAttrs(attrs_);
12973		return A2(
12974			$author$project$W$Internal$Input$view,
12975			{bV: attrs.bV, fQ: attrs.fQ, fR: value, bk: attrs.bk, ah: attrs.ah, aV: attrs.aV, bv: attrs.bv},
12976			A2(
12977				$elm$html$Html$input,
12978				_Utils_ap(
12979					$author$project$W$InputFloat$baseAttrs(attrs),
12980					_List_fromArray(
12981						[
12982							$elm$html$Html$Attributes$value(value),
12983							A2(
12984							$elm$html$Html$Events$on,
12985							'input',
12986							A2(
12987								$elm$json$Json$Decode$map,
12988								A2(
12989									$elm$core$Basics$composeL,
12990									props.cm,
12991									$author$project$W$InputFloat$toValue(props.cN)),
12992								A2(
12993									$elm$json$Json$Decode$at,
12994									_List_fromArray(
12995										['target', 'value']),
12996									$elm$json$Json$Decode$string)))
12997						])),
12998				_List_Nil));
12999	});
13000var $author$project$W$InputFloat$Custom = function (a) {
13001	return {$: 6, a: a};
13002};
13003var $author$project$W$InputFloat$StepMismatch = F2(
13004	function (a, b) {
13005		return {$: 4, a: a, b: b};
13006	});
13007var $author$project$W$InputFloat$TooHigh = F2(
13008	function (a, b) {
13009		return {$: 1, a: a, b: b};
13010	});
13011var $author$project$W$InputFloat$TooLow = F2(
13012	function (a, b) {
13013		return {$: 0, a: a, b: b};
13014	});
13015var $author$project$W$InputFloat$ValueMissing = function (a) {
13016	return {$: 5, a: a};
13017};
13018var $elm$core$Maybe$andThen = F2(
13019	function (callback, maybeValue) {
13020		if (!maybeValue.$) {
13021			var value = maybeValue.a;
13022			return callback(value);
13023		} else {
13024			return $elm$core$Maybe$Nothing;
13025		}
13026	});
13027var $elm$core$List$head = function (list) {
13028	if (list.b) {
13029		var x = list.a;
13030		var xs = list.b;
13031		return $elm$core$Maybe$Just(x);
13032	} else {
13033		return $elm$core$Maybe$Nothing;
13034	}
13035};
13036var $author$project$W$Internal$Helpers$formatFloat = F2(
13037	function (step, value) {
13038		return function (parts) {
13039			_v0$2:
13040			while (true) {
13041				if (parts.b) {
13042					if (parts.b.b) {
13043						if (!parts.b.b.b) {
13044							var h = parts.a;
13045							var _v1 = parts.b;
13046							var t = _v1.a;
13047							var decimals = A2(
13048								$elm$core$Maybe$withDefault,
13049								0,
13050								A2(
13051									$elm$core$Maybe$map,
13052									$elm$core$String$length,
13053									$elm$core$List$head(
13054										A2(
13055											$elm$core$List$drop,
13056											1,
13057											A2(
13058												$elm$core$String$split,
13059												'.',
13060												$elm$core$String$fromFloat(step))))));
13061							return h + ('.' + A2($elm$core$String$left, decimals, t));
13062						} else {
13063							break _v0$2;
13064						}
13065					} else {
13066						var h = parts.a;
13067						return h;
13068					}
13069				} else {
13070					break _v0$2;
13071				}
13072			}
13073			return '';
13074		}(
13075			A2(
13076				$elm$core$String$split,
13077				'.',
13078				$elm$core$String$fromFloat(value)));
13079	});
13080var $elm$core$Maybe$map2 = F3(
13081	function (func, ma, mb) {
13082		if (ma.$ === 1) {
13083			return $elm$core$Maybe$Nothing;
13084		} else {
13085			var a = ma.a;
13086			if (mb.$ === 1) {
13087				return $elm$core$Maybe$Nothing;
13088			} else {
13089				var b = mb.a;
13090				return $elm$core$Maybe$Just(
13091					A2(func, a, b));
13092			}
13093		}
13094	});
13095var $elm$json$Json$Decode$map5 = _Json_map5;
13096var $elm$core$Tuple$mapBoth = F3(
13097	function (funcA, funcB, _v0) {
13098		var x = _v0.a;
13099		var y = _v0.b;
13100		return _Utils_Tuple2(
13101			funcA(x),
13102			funcB(y));
13103	});
13104var $author$project$W$Internal$Helpers$nearestFloats = F2(
13105	function (v, step) {
13106		var lower = $elm$core$Basics$floor(v / step) * step;
13107		return _Utils_Tuple2(lower, lower + step);
13108	});
13109var $author$project$W$InputFloat$toFloat = function (_v0) {
13110	var v = _v0.b;
13111	return v;
13112};
13113var $author$project$W$InputFloat$viewWithValidation = F2(
13114	function (attrs_, props) {
13115		var value = $author$project$W$InputFloat$toString(props.cN);
13116		var attrs = $author$project$W$InputFloat$applyAttrs(attrs_);
13117		return A2(
13118			$author$project$W$Internal$Input$view,
13119			{bV: attrs.bV, fQ: attrs.fQ, fR: value, bk: attrs.bk, ah: attrs.ah, aV: attrs.aV, bv: attrs.bv},
13120			A2(
13121				$elm$html$Html$input,
13122				_Utils_ap(
13123					$author$project$W$InputFloat$baseAttrs(attrs),
13124					_List_fromArray(
13125						[
13126							$elm$html$Html$Attributes$value(value),
13127							A2(
13128							$elm$html$Html$Events$on,
13129							'input',
13130							A6(
13131								$elm$json$Json$Decode$map5,
13132								F5(
13133									function (_v0, rangeOverflow, rangeUnderflow, stepMismatch, valueMissing) {
13134										var value_ = _v0.a;
13135										var valid = _v0.b;
13136										var value__ = A2($author$project$W$InputFloat$toValue, props.cN, value_);
13137										var customError = A2(
13138											$elm$core$Maybe$map,
13139											$author$project$W$InputFloat$Custom,
13140											A2(
13141												$elm$core$Maybe$andThen,
13142												function (fn) {
13143													return A2(
13144														fn,
13145														$author$project$W$InputFloat$toFloat(value__),
13146														value_);
13147												},
13148												attrs.cM));
13149										var result = (valid && _Utils_eq(customError, $elm$core$Maybe$Nothing)) ? $elm$core$Result$Ok(
13150											$author$project$W$InputFloat$toFloat(value__)) : $elm$core$Result$Err(
13151											A2(
13152												$elm$core$List$filterMap,
13153												$elm$core$Basics$identity,
13154												_List_fromArray(
13155													[
13156														A2(
13157														$author$project$W$Internal$Helpers$keepIf,
13158														valueMissing,
13159														$elm$core$Maybe$Just(
13160															$author$project$W$InputFloat$ValueMissing('Please fill out this field.'))),
13161														A2(
13162														$elm$core$Maybe$map,
13163														function (min_) {
13164															return A2(
13165																$author$project$W$InputFloat$TooLow,
13166																min_,
13167																'Value must be greater than or equal to ' + $elm$core$String$fromFloat(min_));
13168														},
13169														A2($author$project$W$Internal$Helpers$keepIf, rangeOverflow, attrs.fX)),
13170														A2(
13171														$elm$core$Maybe$map,
13172														function (max_) {
13173															return A2(
13174																$author$project$W$InputFloat$TooHigh,
13175																max_,
13176																'Value must be less than or equal to ' + $elm$core$String$fromFloat(max_));
13177														},
13178														A2($author$project$W$Internal$Helpers$keepIf, rangeUnderflow, attrs.fS)),
13179														A3(
13180														$elm$core$Maybe$map2,
13181														F2(
13182															function (value___, step_) {
13183																var _v1 = A3(
13184																	$elm$core$Tuple$mapBoth,
13185																	$author$project$W$Internal$Helpers$formatFloat(attrs.gq),
13186																	$author$project$W$Internal$Helpers$formatFloat(attrs.gq),
13187																	A2($author$project$W$Internal$Helpers$nearestFloats, value___, attrs.gq));
13188																var f = _v1.a;
13189																var c = _v1.b;
13190																return A2($author$project$W$InputFloat$StepMismatch, step_, 'Please enter a valid value. The two nearest valid values are ' + (f + (' and ' + c)));
13191															}),
13192														$author$project$W$InputFloat$toFloat(value__),
13193														A2(
13194															$author$project$W$Internal$Helpers$keepIf,
13195															stepMismatch,
13196															$elm$core$Maybe$Just(attrs.gq))),
13197														customError
13198													])));
13199										return A2(props.cm, result, value__);
13200									}),
13201								A3(
13202									$elm$json$Json$Decode$map2,
13203									$elm$core$Tuple$pair,
13204									A2(
13205										$elm$json$Json$Decode$at,
13206										_List_fromArray(
13207											['target', 'value']),
13208										$elm$json$Json$Decode$string),
13209									A2(
13210										$elm$json$Json$Decode$at,
13211										_List_fromArray(
13212											['target', 'validity', 'valid']),
13213										$elm$json$Json$Decode$bool)),
13214								A2(
13215									$elm$json$Json$Decode$at,
13216									_List_fromArray(
13217										['target', 'validity', 'rangeOverflow']),
13218									$elm$json$Json$Decode$bool),
13219								A2(
13220									$elm$json$Json$Decode$at,
13221									_List_fromArray(
13222										['target', 'validity', 'rangeUnderflow']),
13223									$elm$json$Json$Decode$bool),
13224								A2(
13225									$elm$json$Json$Decode$at,
13226									_List_fromArray(
13227										['target', 'validity', 'stepMismatch']),
13228									$elm$json$Json$Decode$bool),
13229								A2(
13230									$elm$json$Json$Decode$at,
13231									_List_fromArray(
13232										['target', 'validity', 'valueMissing']),
13233									$elm$json$Json$Decode$bool)))
13234						])),
13235				_List_Nil));
13236	});
13237var $author$project$Chapters$Form$InputFloat$chapter_ = A2(
13238	$dtwrks$elm_book$ElmBook$Chapter$renderStatefulComponentList,
13239	_List_fromArray(
13240		[
13241			_Utils_Tuple2(
13242			'Default',
13243			function (_v0) {
13244				var inputFloat = _v0.aF;
13245				return A2(
13246					$elm$html$Html$div,
13247					_List_Nil,
13248					_List_fromArray(
13249						[
13250							A2(
13251							$author$project$W$InputFloat$view,
13252							_List_fromArray(
13253								[
13254									$author$project$W$InputFloat$placeholder('Type something…')
13255								]),
13256							{
13257								cm: function (v) {
13258									return $dtwrks$elm_book$ElmBook$Actions$updateState(
13259										function (model) {
13260											var inputFloat_ = model.aF;
13261											return _Utils_update(
13262												model,
13263												{
13264													aF: _Utils_update(
13265														inputFloat_,
13266														{cN: v})
13267												});
13268										});
13269								},
13270								cN: inputFloat.cN
13271							})
13272						]));
13273			}),
13274			_Utils_Tuple2(
13275			'With Validation',
13276			function (_v1) {
13277				var inputFloat = _v1.aF;
13278				return A2(
13279					$elm$html$Html$div,
13280					_List_Nil,
13281					_List_fromArray(
13282						[
13283							A2(
13284							$author$project$W$InputFloat$viewWithValidation,
13285							_List_fromArray(
13286								[
13287									$author$project$W$InputFloat$placeholder('Type something…')
13288								]),
13289							{
13290								cm: F2(
13291									function (result, v) {
13292										return $dtwrks$elm_book$ElmBook$Actions$updateState(
13293											function (model) {
13294												var inputFloat_ = model.aF;
13295												return _Utils_update(
13296													model,
13297													{
13298														aF: _Utils_update(
13299															inputFloat_,
13300															{
13301																cM: $elm$core$Maybe$Just(result),
13302																cO: v
13303															})
13304													});
13305											});
13306									}),
13307								cN: inputFloat.cO
13308							}),
13309							A2(
13310							$elm$core$Maybe$withDefault,
13311							$elm$html$Html$text(''),
13312							A2(
13313								$elm$core$Maybe$map,
13314								function (validation) {
13315									if (!validation.$) {
13316										var f = validation.a;
13317										return $elm$html$Html$text(
13318											A2(
13319												$elm$core$Maybe$withDefault,
13320												'Nothing',
13321												A2($elm$core$Maybe$map, $elm$core$String$fromFloat, f)));
13322									} else {
13323										var errors = validation.a;
13324										return A2(
13325											$elm$html$Html$div,
13326											_List_Nil,
13327											A2(
13328												$elm$core$List$map,
13329												function (error) {
13330													return A2(
13331														$elm$html$Html$p,
13332														_List_Nil,
13333														_List_fromArray(
13334															[
13335																$elm$html$Html$text(
13336																$author$project$W$InputFloat$errorToString(error))
13337															]));
13338												},
13339												errors));
13340									}
13341								},
13342								inputFloat.cM))
13343						]));
13344			})
13345		]),
13346	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Float'));
13347var $author$project$W$InputInt$Attribute = $elm$core$Basics$identity;
13348var $author$project$W$InputInt$mask = function (v) {
13349	return function (attrs) {
13350		return _Utils_update(
13351			attrs,
13352			{
13353				fQ: $elm$core$Maybe$Just(v)
13354			});
13355	};
13356};
13357var $author$project$W$InputInt$placeholder = function (v) {
13358	return function (attrs) {
13359		return _Utils_update(
13360			attrs,
13361			{
13362				gb: $elm$core$Maybe$Just(v)
13363			});
13364	};
13365};
13366var $author$project$W$InputInt$defaultAttrs = {bE: false, bV: false, b$: _List_Nil, fQ: $elm$core$Maybe$Nothing, fS: $elm$core$Maybe$Nothing, fX: $elm$core$Maybe$Nothing, cg: $elm$core$Maybe$Nothing, ci: $elm$core$Maybe$Nothing, cj: $elm$core$Maybe$Nothing, gb: $elm$core$Maybe$Nothing, bk: $elm$core$Maybe$Nothing, ah: false, cw: false, aV: false, gq: $elm$core$Maybe$Nothing, bv: $elm$core$Maybe$Nothing, cM: $elm$core$Maybe$Nothing};
13367var $author$project$W$InputInt$applyAttrs = function (attrs) {
13368	return A3(
13369		$elm$core$List$foldl,
13370		F2(
13371			function (_v0, a) {
13372				var fn = _v0;
13373				return fn(a);
13374			}),
13375		$author$project$W$InputInt$defaultAttrs,
13376		attrs);
13377};
13378var $author$project$W$InputInt$baseAttrs = function (attrs) {
13379	return _Utils_ap(
13380		attrs.b$,
13381		_List_fromArray(
13382			[
13383				$elm$html$Html$Attributes$type_('number'),
13384				$elm$html$Html$Attributes$step('1'),
13385				$elm$html$Html$Attributes$class(
13386				$author$project$W$Internal$Input$baseClass(attrs.aV)),
13387				$elm$html$Html$Attributes$required(attrs.cw),
13388				$elm$html$Html$Attributes$disabled(attrs.bV),
13389				$elm$html$Html$Attributes$readonly(attrs.ah),
13390				$elm$html$Html$Attributes$autofocus(attrs.bE),
13391				A3(
13392				$author$project$W$Internal$Helpers$attrIf,
13393				attrs.ah,
13394				$elm$html$Html$Attributes$attribute('aria-readonly'),
13395				'true'),
13396				A3(
13397				$author$project$W$Internal$Helpers$attrIf,
13398				attrs.bV,
13399				$elm$html$Html$Attributes$attribute('aria-disabled'),
13400				'true'),
13401				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Attributes$placeholder, attrs.gb),
13402				A2(
13403				$author$project$W$Internal$Helpers$maybeAttr,
13404				$elm$html$Html$Attributes$min,
13405				A2($elm$core$Maybe$map, $elm$core$String$fromInt, attrs.fX)),
13406				A2(
13407				$author$project$W$Internal$Helpers$maybeAttr,
13408				$elm$html$Html$Attributes$max,
13409				A2($elm$core$Maybe$map, $elm$core$String$fromInt, attrs.fS)),
13410				A2(
13411				$author$project$W$Internal$Helpers$maybeAttr,
13412				$elm$html$Html$Attributes$step,
13413				A2($elm$core$Maybe$map, $elm$core$String$fromInt, attrs.gq)),
13414				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onFocus, attrs.cj),
13415				A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onBlur, attrs.cg),
13416				A2($author$project$W$Internal$Helpers$maybeAttr, $author$project$W$Internal$Helpers$onEnter, attrs.ci)
13417			]));
13418};
13419var $author$project$W$InputInt$toString = function (_v0) {
13420	var v = _v0.a;
13421	return v;
13422};
13423var $author$project$W$InputInt$Value = F2(
13424	function (a, b) {
13425		return {$: 0, a: a, b: b};
13426	});
13427var $elm$core$String$filter = _String_filter;
13428var $elm$core$String$toInt = _String_toInt;
13429var $author$project$W$InputInt$toValue = function (value) {
13430	var _v0 = $elm$core$String$toInt(value);
13431	if (!_v0.$) {
13432		var v = _v0.a;
13433		return A2(
13434			$author$project$W$InputInt$Value,
13435			value,
13436			$elm$core$Maybe$Just(v));
13437	} else {
13438		var parsedString = A2($elm$core$String$filter, $elm$core$Char$isDigit, value);
13439		var parsedValue = $elm$core$String$toInt(parsedString);
13440		return A2($author$project$W$InputInt$Value, parsedString, parsedValue);
13441	}
13442};
13443var $author$project$W$InputInt$view = F2(
13444	function (attrs_, props) {
13445		var value = $author$project$W$InputInt$toString(props.cN);
13446		var attrs = $author$project$W$InputInt$applyAttrs(attrs_);
13447		return A2(
13448			$author$project$W$Internal$Input$view,
13449			{bV: attrs.bV, fQ: attrs.fQ, fR: value, bk: attrs.bk, ah: attrs.ah, aV: attrs.aV, bv: attrs.bv},
13450			A2(
13451				$elm$html$Html$input,
13452				_Utils_ap(
13453					$author$project$W$InputInt$baseAttrs(attrs),
13454					_List_fromArray(
13455						[
13456							$elm$html$Html$Attributes$value(value),
13457							A2(
13458							$elm$html$Html$Events$on,
13459							'input',
13460							A2(
13461								$elm$json$Json$Decode$map,
13462								A2($elm$core$Basics$composeL, props.cm, $author$project$W$InputInt$toValue),
13463								A2(
13464									$elm$json$Json$Decode$at,
13465									_List_fromArray(
13466										['target', 'value']),
13467									$elm$json$Json$Decode$string)))
13468						])),
13469				_List_Nil));
13470	});
13471var $author$project$Chapters$Form$InputInt$chapter_ = A2(
13472	$dtwrks$elm_book$ElmBook$Chapter$renderStatefulComponentList,
13473	_List_fromArray(
13474		[
13475			_Utils_Tuple2(
13476			'Int',
13477			function (_v0) {
13478				var inputInt = _v0.ep;
13479				return A2(
13480					$elm$html$Html$div,
13481					_List_Nil,
13482					_List_fromArray(
13483						[
13484							A2(
13485							$author$project$W$InputInt$view,
13486							_List_fromArray(
13487								[
13488									$author$project$W$InputInt$placeholder('Type something…'),
13489									$author$project$W$InputInt$mask(
13490									function (s) {
13491										return _Utils_ap(s, s);
13492									})
13493								]),
13494							{
13495								cm: function (v) {
13496									return $dtwrks$elm_book$ElmBook$Actions$updateState(
13497										function (model) {
13498											return _Utils_update(
13499												model,
13500												{ep: v});
13501										});
13502								},
13503								cN: inputInt
13504							})
13505						]));
13506			})
13507		]),
13508	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Int'));
13509var $author$project$W$InputRadio$Attribute = $elm$core$Basics$identity;
13510var $author$project$W$InputRadio$color = function (v) {
13511	return function (attrs) {
13512		return _Utils_update(
13513			attrs,
13514			{U: v});
13515	};
13516};
13517var $author$project$W$InputRadio$disabled = function (v) {
13518	return function (attrs) {
13519		return _Utils_update(
13520			attrs,
13521			{bV: v});
13522	};
13523};
13524var $author$project$W$InputRadio$readOnly = function (v) {
13525	return function (attrs) {
13526		return _Utils_update(
13527			attrs,
13528			{ah: v});
13529	};
13530};
13531var $author$project$W$InputRadio$small = function (attrs) {
13532	return _Utils_update(
13533		attrs,
13534		{aV: true});
13535};
13536var $author$project$W$InputRadio$vertical = function (v) {
13537	return function (attrs) {
13538		return _Utils_update(
13539			attrs,
13540			{I: v});
13541	};
13542};
13543var $author$project$Chapters$Form$InputRadio$chapter_ = A2(
13544	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
13545	_List_fromArray(
13546		[
13547			_Utils_Tuple2(
13548			'Default',
13549			A2(
13550				$author$project$W$InputRadio$view,
13551				_List_Nil,
13552				{
13553					fE: 'default',
13554					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13555					f9: _List_fromArray(
13556						[1, 2, 3]),
13557					u: $elm$core$String$fromInt,
13558					gw: $elm$core$String$fromInt,
13559					cN: 1
13560				})),
13561			_Utils_Tuple2(
13562			'Small',
13563			A2(
13564				$author$project$W$InputRadio$view,
13565				_List_fromArray(
13566					[$author$project$W$InputRadio$small]),
13567				{
13568					fE: 'default',
13569					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13570					f9: _List_fromArray(
13571						[1, 2, 3]),
13572					u: $elm$core$String$fromInt,
13573					gw: $elm$core$String$fromInt,
13574					cN: 1
13575				})),
13576			_Utils_Tuple2(
13577			'Disabled',
13578			A2(
13579				$author$project$W$InputRadio$view,
13580				_List_fromArray(
13581					[
13582						$author$project$W$InputRadio$disabled(true)
13583					]),
13584				{
13585					fE: 'disabled',
13586					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13587					f9: _List_fromArray(
13588						[1, 2, 3]),
13589					u: $elm$core$String$fromInt,
13590					gw: $elm$core$String$fromInt,
13591					cN: 2
13592				})),
13593			_Utils_Tuple2(
13594			'Read Only',
13595			A2(
13596				$author$project$W$InputRadio$view,
13597				_List_fromArray(
13598					[
13599						$author$project$W$InputRadio$readOnly(true)
13600					]),
13601				{
13602					fE: 'read-only',
13603					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13604					f9: _List_fromArray(
13605						[1, 2, 3]),
13606					u: $elm$core$String$fromInt,
13607					gw: $elm$core$String$fromInt,
13608					cN: 2
13609				})),
13610			_Utils_Tuple2(
13611			'Starting with hidden value',
13612			A2(
13613				$author$project$W$InputRadio$view,
13614				_List_Nil,
13615				{
13616					fE: 'r',
13617					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13618					f9: _List_fromArray(
13619						[1, 2, 3]),
13620					u: $elm$core$String$fromInt,
13621					gw: $elm$core$String$fromInt,
13622					cN: -1
13623				})),
13624			_Utils_Tuple2(
13625			'Custom Colors',
13626			A2(
13627				$author$project$W$InputRadio$view,
13628				_List_fromArray(
13629					[
13630						$author$project$W$InputRadio$color('red')
13631					]),
13632				{
13633					fE: 'custom-colors',
13634					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13635					f9: _List_fromArray(
13636						[1, 2, 3]),
13637					u: $elm$core$String$fromInt,
13638					gw: $elm$core$String$fromInt,
13639					cN: 3
13640				})),
13641			_Utils_Tuple2(
13642			'Vertical',
13643			A2(
13644				$author$project$W$InputRadio$view,
13645				_List_fromArray(
13646					[
13647						$author$project$W$InputRadio$vertical(true)
13648					]),
13649				{
13650					fE: 'vertical',
13651					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13652					f9: _List_fromArray(
13653						[1, 2, 3]),
13654					u: $elm$core$String$fromInt,
13655					gw: $elm$core$String$fromInt,
13656					cN: 2
13657				})),
13658			_Utils_Tuple2(
13659			'Vertical + Small',
13660			A2(
13661				$author$project$W$InputRadio$view,
13662				_List_fromArray(
13663					[
13664						$author$project$W$InputRadio$small,
13665						$author$project$W$InputRadio$vertical(true)
13666					]),
13667				{
13668					fE: 'default',
13669					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13670					f9: _List_fromArray(
13671						[1, 2, 3]),
13672					u: $elm$core$String$fromInt,
13673					gw: $elm$core$String$fromInt,
13674					cN: 1
13675				}))
13676		]),
13677	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Radio'));
13678var $author$project$W$InputSelect$Attribute = $elm$core$Basics$identity;
13679var $author$project$W$InputSelect$disabled = function (v) {
13680	return function (attrs) {
13681		return _Utils_update(
13682			attrs,
13683			{bV: v});
13684	};
13685};
13686var $elm$core$List$append = F2(
13687	function (xs, ys) {
13688		if (!ys.b) {
13689			return xs;
13690		} else {
13691			return A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs);
13692		}
13693	});
13694var $author$project$W$InputSelect$defaultAttrs = {bE: false, bV: false, b$: _List_Nil, bk: $elm$core$Maybe$Nothing, ah: false, aV: false, bv: $elm$core$Maybe$Nothing};
13695var $author$project$W$InputSelect$applyAttrs = function (attrs) {
13696	return A3(
13697		$elm$core$List$foldl,
13698		F2(
13699			function (_v0, a) {
13700				var fn = _v0;
13701				return fn(a);
13702			}),
13703		$author$project$W$InputSelect$defaultAttrs,
13704		attrs);
13705};
13706var $elm$core$List$concat = function (lists) {
13707	return A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists);
13708};
13709var $elm$core$List$concatMap = F2(
13710	function (f, list) {
13711		return $elm$core$List$concat(
13712			A2($elm$core$List$map, f, list));
13713	});
13714var $elm$html$Html$optgroup = _VirtualDom_node('optgroup');
13715var $elm$html$Html$option = _VirtualDom_node('option');
13716var $elm$html$Html$select = _VirtualDom_node('select');
13717var $elm$html$Html$Attributes$selected = $elm$html$Html$Attributes$boolProperty('selected');
13718var $author$project$W$InputSelect$viewGroups = F2(
13719	function (attrs_, props) {
13720		var values = $elm$core$Dict$fromList(
13721			A2(
13722				$elm$core$List$map,
13723				function (a) {
13724					return _Utils_Tuple2(
13725						props.u(a),
13726						a);
13727				},
13728				A2(
13729					$elm$core$List$append,
13730					props.f9,
13731					A2($elm$core$List$concatMap, $elm$core$Tuple$second, props.eF))));
13732		var attrs = $author$project$W$InputSelect$applyAttrs(attrs_);
13733		return A3(
13734			$author$project$W$Internal$Input$viewWithIcon,
13735			{bV: attrs.bV, fQ: $elm$core$Maybe$Nothing, fR: '', bk: attrs.bk, ah: attrs.ah, aV: attrs.aV, bv: attrs.bv},
13736			$author$project$W$Internal$Icons$chevronDown,
13737			A2(
13738				$elm$html$Html$select,
13739				_Utils_ap(
13740					attrs.b$,
13741					_List_fromArray(
13742						[
13743							$elm$html$Html$Attributes$class(
13744							$author$project$W$Internal$Input$baseClass(attrs.aV)),
13745							$elm$html$Html$Attributes$disabled(attrs.bV),
13746							$elm$html$Html$Attributes$readonly(attrs.ah),
13747							$elm$html$Html$Attributes$autofocus(attrs.bE),
13748							A3(
13749							$author$project$W$Internal$Helpers$attrIf,
13750							attrs.ah,
13751							$elm$html$Html$Attributes$attribute('aria-readonly'),
13752							'true'),
13753							A3(
13754							$author$project$W$Internal$Helpers$attrIf,
13755							attrs.bV,
13756							$elm$html$Html$Attributes$attribute('aria-disabled'),
13757							'true'),
13758							$elm$html$Html$Attributes$placeholder('Select'),
13759							$elm$html$Html$Events$onInput(
13760							function (s) {
13761								return props.cm(
13762									A2(
13763										$elm$core$Maybe$withDefault,
13764										props.cN,
13765										A2($elm$core$Dict$get, s, values)));
13766							})
13767						])),
13768				$elm$core$List$concat(
13769					_List_fromArray(
13770						[
13771							A2(
13772							$elm$core$List$map,
13773							function (a) {
13774								return A2(
13775									$elm$html$Html$option,
13776									_List_fromArray(
13777										[
13778											$elm$html$Html$Attributes$selected(
13779											_Utils_eq(a, props.cN)),
13780											$elm$html$Html$Attributes$value(
13781											props.u(a))
13782										]),
13783									_List_fromArray(
13784										[
13785											$elm$html$Html$text(
13786											props.u(a))
13787										]));
13788							},
13789							props.f9),
13790							A2(
13791							$elm$core$List$map,
13792							function (_v0) {
13793								var l = _v0.a;
13794								var options_ = _v0.b;
13795								return A2(
13796									$elm$html$Html$optgroup,
13797									_List_fromArray(
13798										[
13799											A2($elm$html$Html$Attributes$attribute, 'label', l)
13800										]),
13801									A2(
13802										$elm$core$List$map,
13803										function (a) {
13804											return A2(
13805												$elm$html$Html$option,
13806												_List_fromArray(
13807													[
13808														$elm$html$Html$Attributes$selected(
13809														_Utils_eq(a, props.cN)),
13810														$elm$html$Html$Attributes$value(
13811														props.u(a))
13812													]),
13813												_List_fromArray(
13814													[
13815														$elm$html$Html$text(
13816														props.u(a))
13817													]));
13818										},
13819										options_));
13820							},
13821							props.eF)
13822						]))));
13823	});
13824var $author$project$W$InputSelect$view = F2(
13825	function (attrs_, props) {
13826		return A2(
13827			$author$project$W$InputSelect$viewGroups,
13828			attrs_,
13829			{cm: props.cm, eF: _List_Nil, f9: props.f9, u: props.u, cN: props.cN});
13830	});
13831var $author$project$W$InputSelect$viewGroupsOptional = F2(
13832	function (attrs_, props) {
13833		return A2(
13834			$author$project$W$InputSelect$viewGroups,
13835			attrs_,
13836			{
13837				cm: props.cm,
13838				eF: _List_Nil,
13839				f9: A2(
13840					$elm$core$List$cons,
13841					$elm$core$Maybe$Nothing,
13842					A2($elm$core$List$map, $elm$core$Maybe$Just, props.f9)),
13843				u: A2(
13844					$elm$core$Basics$composeR,
13845					$elm$core$Maybe$map(props.u),
13846					$elm$core$Maybe$withDefault(props.gb)),
13847				cN: props.cN
13848			});
13849	});
13850var $author$project$Chapters$Form$InputSelect$chapter_ = A2(
13851	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
13852	_List_fromArray(
13853		[
13854			_Utils_Tuple2(
13855			'Simple',
13856			A2(
13857				$author$project$W$InputSelect$view,
13858				_List_Nil,
13859				{
13860					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13861					f9: _List_fromArray(
13862						[1, 2]),
13863					u: $elm$core$String$fromInt,
13864					cN: 1
13865				})),
13866			_Utils_Tuple2(
13867			'Disabled',
13868			A2(
13869				$author$project$W$InputSelect$view,
13870				_List_fromArray(
13871					[
13872						$author$project$W$InputSelect$disabled(true)
13873					]),
13874				{
13875					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13876					f9: _List_fromArray(
13877						[1, 2]),
13878					u: $elm$core$String$fromInt,
13879					cN: 1
13880				})),
13881			_Utils_Tuple2(
13882			'With Placeholder',
13883			A2(
13884				$author$project$W$InputSelect$view,
13885				_List_Nil,
13886				{
13887					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13888					f9: _List_fromArray(
13889						[1, 2]),
13890					u: $elm$core$String$fromInt,
13891					cN: 2
13892				})),
13893			_Utils_Tuple2(
13894			'With Option Groups',
13895			A2(
13896				$author$project$W$InputSelect$viewGroups,
13897				_List_Nil,
13898				{
13899					cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onInput'),
13900					eF: _List_fromArray(
13901						[
13902							_Utils_Tuple2(
13903							'70\'s',
13904							_List_fromArray(
13905								[1978, 1979])),
13906							_Utils_Tuple2(
13907							'80\'s',
13908							_List_fromArray(
13909								[1988, 1989]))
13910						]),
13911					f9: _List_fromArray(
13912						[1900, 2000]),
13913					u: $elm$core$String$fromInt,
13914					cN: 2000
13915				})),
13916			_Utils_Tuple2(
13917			'With Option Groups (Optional)',
13918			A2(
13919				$author$project$W$InputSelect$viewGroupsOptional,
13920				_List_Nil,
13921				{
13922					cm: function (value) {
13923						if (!value.$) {
13924							var value_ = value.a;
13925							return $dtwrks$elm_book$ElmBook$Actions$logAction(
13926								'onInput: Just ' + $elm$core$String$fromInt(value_));
13927						} else {
13928							return $dtwrks$elm_book$ElmBook$Actions$logAction('onInput: Nothing');
13929						}
13930					},
13931					eF: _List_fromArray(
13932						[
13933							_Utils_Tuple2(
13934							'70\'s',
13935							_List_fromArray(
13936								[1978, 1979])),
13937							_Utils_Tuple2(
13938							'80\'s',
13939							_List_fromArray(
13940								[1988, 1989]))
13941						]),
13942					f9: _List_fromArray(
13943						[1900, 2000]),
13944					gb: 'Select a year...',
13945					u: $elm$core$String$fromInt,
13946					cN: $elm$core$Maybe$Nothing
13947				}))
13948		]),
13949	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Select'));
13950var $author$project$W$InputSlider$color = function (v) {
13951	return function (attrs) {
13952		return _Utils_update(
13953			attrs,
13954			{U: v});
13955	};
13956};
13957var $author$project$W$InputSlider$disabled = function (v) {
13958	return function (attrs) {
13959		return _Utils_update(
13960			attrs,
13961			{bV: v});
13962	};
13963};
13964var $dtwrks$elm_book$ElmBook$Actions$updateStateWith = F2(
13965	function (fn, a) {
13966		return $dtwrks$elm_book$ElmBook$Internal$Msg$UpdateState(
13967			function (state) {
13968				return _Utils_Tuple2(
13969					A2(fn, a, state),
13970					$elm$core$Platform$Cmd$none);
13971			});
13972	});
13973var $author$project$Chapters$Form$InputSlider$chapter_ = A2(
13974	$dtwrks$elm_book$ElmBook$Chapter$renderStatefulComponentList,
13975	_List_fromArray(
13976		[
13977			_Utils_Tuple2(
13978			'Default',
13979			function (_v0) {
13980				var range = _v0.aR;
13981				return A2(
13982					$author$project$W$InputSlider$view,
13983					_List_Nil,
13984					{
13985						fS: 10,
13986						fX: 0,
13987						cm: $dtwrks$elm_book$ElmBook$Actions$updateStateWith(
13988							F2(
13989								function (v, model) {
13990									var range_ = model.aR;
13991									return _Utils_update(
13992										model,
13993										{
13994											aR: _Utils_update(
13995												range_,
13996												{bU: v})
13997										});
13998								})),
13999						gq: 1,
14000						cN: range.bU
14001					});
14002			}),
14003			_Utils_Tuple2(
14004			'Disabled',
14005			function (_v1) {
14006				return A2(
14007					$author$project$W$InputSlider$view,
14008					_List_fromArray(
14009						[
14010							$author$project$W$InputSlider$disabled(true)
14011						]),
14012					{
14013						fS: 10,
14014						fX: 0,
14015						cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromFloat, 'onInput'),
14016						gq: 1,
14017						cN: 5
14018					});
14019			}),
14020			_Utils_Tuple2(
14021			'Read Only',
14022			function (_v2) {
14023				return A2(
14024					$author$project$W$InputSlider$view,
14025					_List_fromArray(
14026						[
14027							$author$project$W$InputSlider$readOnly(true)
14028						]),
14029					{
14030						fS: 10,
14031						fX: 0,
14032						cm: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromFloat, 'onInput'),
14033						gq: 1,
14034						cN: 5
14035					});
14036			}),
14037			_Utils_Tuple2(
14038			'Custom Color',
14039			function (_v3) {
14040				var range = _v3.aR;
14041				return A2(
14042					$author$project$W$InputSlider$view,
14043					_List_fromArray(
14044						[
14045							$author$project$W$InputSlider$color('red')
14046						]),
14047					{
14048						fS: 10,
14049						fX: 0,
14050						cm: $dtwrks$elm_book$ElmBook$Actions$updateStateWith(
14051							F2(
14052								function (v, model) {
14053									var range_ = model.aR;
14054									return _Utils_update(
14055										model,
14056										{
14057											aR: _Utils_update(
14058												range_,
14059												{bO: v})
14060										});
14061								})),
14062						gq: 1,
14063						cN: range.bO
14064					});
14065			})
14066		]),
14067	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Slider'));
14068var $author$project$W$InputText$disabled = function (v) {
14069	return function (attrs) {
14070		return _Utils_update(
14071			attrs,
14072			{bV: v});
14073	};
14074};
14075var $author$project$W$InputText$Email = 4;
14076var $author$project$W$InputText$email = function (attrs) {
14077	return _Utils_update(
14078		attrs,
14079		{H: 4});
14080};
14081var $author$project$W$InputText$errorToString = function (error) {
14082	switch (error.$) {
14083		case 0:
14084			var message = error.a;
14085			return message;
14086		case 1:
14087			var message = error.a;
14088			return message;
14089		case 2:
14090			var message = error.b;
14091			return message;
14092		case 3:
14093			var message = error.b;
14094			return message;
14095		case 4:
14096			var message = error.a;
14097			return message;
14098		default:
14099			var message = error.a;
14100			return message;
14101	}
14102};
14103var $author$project$W$InputText$mask = function (v) {
14104	return function (attrs) {
14105		return _Utils_update(
14106			attrs,
14107			{
14108				fQ: $elm$core$Maybe$Just(v)
14109			});
14110	};
14111};
14112var $author$project$W$InputText$maxLength = function (v) {
14113	return function (attrs) {
14114		return _Utils_update(
14115			attrs,
14116			{
14117				N: $elm$core$Maybe$Just(v)
14118			});
14119	};
14120};
14121var $author$project$W$InputText$minLength = function (v) {
14122	return function (attrs) {
14123		return _Utils_update(
14124			attrs,
14125			{
14126				aL: $elm$core$Maybe$Just(v)
14127			});
14128	};
14129};
14130var $author$project$W$Container$pad_2 = $author$project$W$Container$addClass('ew-p-2');
14131var $author$project$W$InputText$Password = 2;
14132var $author$project$W$InputText$password = function (attrs) {
14133	return _Utils_update(
14134		attrs,
14135		{H: 2});
14136};
14137var $author$project$W$InputText$pattern = function (v) {
14138	return function (attrs) {
14139		return _Utils_update(
14140			attrs,
14141			{
14142				cr: $elm$core$Maybe$Just(v)
14143			});
14144	};
14145};
14146var $author$project$W$InputText$prefix = function (v) {
14147	return function (attrs) {
14148		return _Utils_update(
14149			attrs,
14150			{
14151				bk: $elm$core$Maybe$Just(v)
14152			});
14153	};
14154};
14155var $author$project$W$InputText$readOnly = function (v) {
14156	return function (attrs) {
14157		return _Utils_update(
14158			attrs,
14159			{ah: v});
14160	};
14161};
14162var $author$project$W$InputText$Search = 3;
14163var $author$project$W$InputText$search = function (attrs) {
14164	return _Utils_update(
14165		attrs,
14166		{H: 3});
14167};
14168var $author$project$W$InputText$small = function (attrs) {
14169	return _Utils_update(
14170		attrs,
14171		{aV: true});
14172};
14173var $author$project$W$InputText$suffix = function (v) {
14174	return function (attrs) {
14175		return _Utils_update(
14176			attrs,
14177			{
14178				bv: $elm$core$Maybe$Just(v)
14179			});
14180	};
14181};
14182var $author$project$W$InputText$Url = 5;
14183var $author$project$W$InputText$url = function (attrs) {
14184	return _Utils_update(
14185		attrs,
14186		{H: 5});
14187};
14188var $author$project$W$InputText$Custom = function (a) {
14189	return {$: 5, a: a};
14190};
14191var $author$project$W$InputText$PatternMismatch = function (a) {
14192	return {$: 0, a: a};
14193};
14194var $author$project$W$InputText$TooShort = F2(
14195	function (a, b) {
14196		return {$: 3, a: a, b: b};
14197	});
14198var $author$project$W$InputText$TypeMismatch = function (a) {
14199	return {$: 1, a: a};
14200};
14201var $author$project$W$InputText$ValueMissing = function (a) {
14202	return {$: 4, a: a};
14203};
14204var $elm$json$Json$Decode$map7 = _Json_map7;
14205var $author$project$W$InputText$viewWithValidation = F2(
14206	function (attrs_, props) {
14207		var attrs = $author$project$W$InputText$applyAttrs(attrs_);
14208		var value = A2($author$project$W$Internal$Helpers$limitString, attrs.N, props.cN);
14209		return A2(
14210			$author$project$W$Internal$Input$view,
14211			{bV: attrs.bV, fQ: attrs.fQ, fR: value, bk: attrs.bk, ah: attrs.ah, aV: attrs.aV, bv: attrs.bv},
14212			A2(
14213				$elm$html$Html$input,
14214				_Utils_ap(
14215					$author$project$W$InputText$baseAttrs(attrs),
14216					_List_fromArray(
14217						[
14218							$elm$html$Html$Attributes$value(value),
14219							A2(
14220							$elm$html$Html$Events$on,
14221							'input',
14222							A8(
14223								$elm$json$Json$Decode$map7,
14224								F7(
14225									function (value__, valid, patternMismatch, typeMismatch, tooLong, tooShort, valueMissing) {
14226										var value_ = A2($author$project$W$Internal$Helpers$limitString, attrs.N, value__);
14227										var customError = A2(
14228											$elm$core$Maybe$map,
14229											$author$project$W$InputText$Custom,
14230											A2(
14231												$elm$core$Maybe$andThen,
14232												function (fn) {
14233													return fn(value_);
14234												},
14235												attrs.cM));
14236										var result = (valid && _Utils_eq(customError, $elm$core$Maybe$Nothing)) ? $elm$core$Result$Ok(value_) : $elm$core$Result$Err(
14237											A2(
14238												$elm$core$List$filterMap,
14239												$elm$core$Basics$identity,
14240												_List_fromArray(
14241													[
14242														A2(
14243														$author$project$W$Internal$Helpers$keepIf,
14244														valueMissing,
14245														$elm$core$Maybe$Just(
14246															$author$project$W$InputText$ValueMissing('Please fill out this field.'))),
14247														A2(
14248														$elm$core$Maybe$map,
14249														function (minLength_) {
14250															return A2(
14251																$author$project$W$InputText$TooShort,
14252																minLength_,
14253																'Use at least ' + ($elm$core$String$fromInt(minLength_) + ' characters'));
14254														},
14255														A2($author$project$W$Internal$Helpers$keepIf, tooShort, attrs.aL)),
14256														A2(
14257														$elm$core$Maybe$map,
14258														function (maxLength_) {
14259															return A2(
14260																$author$project$W$InputText$TooShort,
14261																maxLength_,
14262																'Please shorten this text to ' + ($elm$core$String$fromInt(maxLength_) + ' characters or less'));
14263														},
14264														A2($author$project$W$Internal$Helpers$keepIf, tooLong, attrs.N)),
14265														A2(
14266														$elm$core$Maybe$map,
14267														function (type_) {
14268															switch (type_) {
14269																case 0:
14270																	return $author$project$W$InputText$TypeMismatch('Input not recognized as text');
14271																case 6:
14272																	return $author$project$W$InputText$TypeMismatch('Input not recognized as text');
14273																case 7:
14274																	return $author$project$W$InputText$TypeMismatch('Input not recognized as text');
14275																case 1:
14276																	return $author$project$W$InputText$TypeMismatch('Type a telephone');
14277																case 3:
14278																	return $author$project$W$InputText$TypeMismatch('Input not recognized as a search input');
14279																case 4:
14280																	return $author$project$W$InputText$TypeMismatch('Type an email');
14281																case 5:
14282																	return $author$project$W$InputText$TypeMismatch('Type a URL');
14283																default:
14284																	return $author$project$W$InputText$TypeMismatch('Input not recognized as a valid password');
14285															}
14286														},
14287														A2(
14288															$author$project$W$Internal$Helpers$keepIf,
14289															typeMismatch,
14290															$elm$core$Maybe$Just(attrs.H))),
14291														A2(
14292														$author$project$W$Internal$Helpers$keepIf,
14293														patternMismatch,
14294														$elm$core$Maybe$Just(
14295															$author$project$W$InputText$PatternMismatch('Match the requested format'))),
14296														customError
14297													])));
14298										return A2(props.cm, result, value_);
14299									}),
14300								A2(
14301									$elm$json$Json$Decode$at,
14302									_List_fromArray(
14303										['target', 'value']),
14304									$elm$json$Json$Decode$string),
14305								A2(
14306									$elm$json$Json$Decode$at,
14307									_List_fromArray(
14308										['target', 'validity', 'valid']),
14309									$elm$json$Json$Decode$bool),
14310								A2(
14311									$elm$json$Json$Decode$at,
14312									_List_fromArray(
14313										['target', 'validity', 'patternMismatch']),
14314									$elm$json$Json$Decode$bool),
14315								A2(
14316									$elm$json$Json$Decode$at,
14317									_List_fromArray(
14318										['target', 'validity', 'typeMismatch']),
14319									$elm$json$Json$Decode$bool),
14320								A2(
14321									$elm$json$Json$Decode$at,
14322									_List_fromArray(
14323										['target', 'validity', 'tooLong']),
14324									$elm$json$Json$Decode$bool),
14325								A2(
14326									$elm$json$Json$Decode$at,
14327									_List_fromArray(
14328										['target', 'validity', 'tooShort']),
14329									$elm$json$Json$Decode$bool),
14330								A2(
14331									$elm$json$Json$Decode$at,
14332									_List_fromArray(
14333										['target', 'validity', 'valueMissing']),
14334									$elm$json$Json$Decode$bool)))
14335						])),
14336				_List_Nil));
14337	});
14338var $author$project$Chapters$Form$InputText$chapter_ = A2(
14339	$dtwrks$elm_book$ElmBook$Chapter$renderStatefulComponentList,
14340	_List_fromArray(
14341		[
14342			_Utils_Tuple2(
14343			'Default',
14344			function (_v0) {
14345				var inputText = _v0.aG;
14346				return A2(
14347					$author$project$W$InputText$view,
14348					_List_fromArray(
14349						[
14350							$author$project$W$InputText$placeholder('Type something…'),
14351							$author$project$W$InputText$small,
14352							$author$project$W$InputText$mask(
14353							function (s) {
14354								return 'R$ ' + s;
14355							}),
14356							$author$project$W$InputText$prefix(
14357							_List_fromArray(
14358								[
14359									$elm$html$Html$text('$')
14360								]))
14361						]),
14362					{
14363						cm: $dtwrks$elm_book$ElmBook$Actions$updateStateWith(
14364							F2(
14365								function (v, model) {
14366									var inputText_ = model.aG;
14367									return _Utils_update(
14368										model,
14369										{
14370											aG: _Utils_update(
14371												inputText_,
14372												{cN: v})
14373										});
14374								})),
14375						cN: inputText.cN
14376					});
14377			}),
14378			_Utils_Tuple2(
14379			'Disabled',
14380			function (_v1) {
14381				return A2(
14382					$author$project$W$InputText$view,
14383					_List_fromArray(
14384						[
14385							$author$project$W$InputText$placeholder('Type something…'),
14386							$author$project$W$InputText$suffix(
14387							_List_fromArray(
14388								[
14389									A2(
14390									$elm$html$Html$div,
14391									_List_fromArray(
14392										[
14393											A2($elm$html$Html$Attributes$style, 'height', '60px')
14394										]),
14395									_List_fromArray(
14396										[
14397											$elm$html$Html$text('Email')
14398										]))
14399								])),
14400							$author$project$W$InputText$disabled(true)
14401						]),
14402					{
14403						cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithString('onInput'),
14404						cN: ''
14405					});
14406			}),
14407			_Utils_Tuple2(
14408			'Read Only',
14409			function (_v2) {
14410				return A2(
14411					$author$project$W$InputText$view,
14412					_List_fromArray(
14413						[
14414							$author$project$W$InputText$placeholder('Type something…'),
14415							$author$project$W$InputText$readOnly(true)
14416						]),
14417					{
14418						cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithString('onInput'),
14419						cN: ''
14420					});
14421			}),
14422			_Utils_Tuple2(
14423			'Password',
14424			function (_v3) {
14425				return A2(
14426					$author$project$W$InputText$view,
14427					_List_fromArray(
14428						[
14429							$author$project$W$InputText$password,
14430							$author$project$W$InputText$placeholder('Type your password…'),
14431							$author$project$W$InputText$suffix(
14432							_List_fromArray(
14433								[
14434									A2(
14435									$author$project$W$Button$view,
14436									_List_fromArray(
14437										[$author$project$W$Button$small, $author$project$W$Button$invisible]),
14438									{
14439										aK: _List_fromArray(
14440											[
14441												$elm$html$Html$text('Show')
14442											]),
14443										s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
14444									})
14445								]))
14446						]),
14447					{
14448						cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithString('onInput'),
14449						cN: ''
14450					});
14451			}),
14452			_Utils_Tuple2(
14453			'Search',
14454			function (_v4) {
14455				return A2(
14456					$author$project$W$InputText$view,
14457					_List_fromArray(
14458						[
14459							$author$project$W$InputText$search,
14460							$author$project$W$InputText$placeholder('Search…')
14461						]),
14462					{
14463						cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithString('onInput'),
14464						cN: ''
14465					});
14466			}),
14467			_Utils_Tuple2(
14468			'Email',
14469			function (_v5) {
14470				return A2(
14471					$author$project$W$InputText$view,
14472					_List_fromArray(
14473						[
14474							$author$project$W$InputText$email,
14475							$author$project$W$InputText$placeholder('[email protected]')
14476						]),
14477					{
14478						cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithString('onInput'),
14479						cN: ''
14480					});
14481			}),
14482			_Utils_Tuple2(
14483			'Url',
14484			function (_v6) {
14485				return A2(
14486					$author$project$W$InputText$view,
14487					_List_fromArray(
14488						[
14489							$author$project$W$InputText$url,
14490							$author$project$W$InputText$placeholder('https://app.site.com')
14491						]),
14492					{
14493						cm: $dtwrks$elm_book$ElmBook$Actions$logActionWithString('onInput'),
14494						cN: ''
14495					});
14496			}),
14497			_Utils_Tuple2(
14498			'Validation',
14499			function (_v7) {
14500				var inputText = _v7.aG;
14501				return A2(
14502					$elm$html$Html$div,
14503					_List_Nil,
14504					_List_fromArray(
14505						[
14506							A2(
14507							$author$project$W$InputText$viewWithValidation,
14508							_List_fromArray(
14509								[
14510									$author$project$W$InputText$url,
14511									$author$project$W$InputText$minLength(5),
14512									$author$project$W$InputText$maxLength(15),
14513									$author$project$W$InputText$pattern('http://[a-z|\\.]+'),
14514									$author$project$W$InputText$placeholder('https://app.site.com')
14515								]),
14516							{
14517								cm: F2(
14518									function (result, v) {
14519										return $dtwrks$elm_book$ElmBook$Actions$updateState(
14520											function (model) {
14521												var inputText_ = model.aG;
14522												return _Utils_update(
14523													model,
14524													{
14525														aG: _Utils_update(
14526															inputText_,
14527															{
14528																cL: v,
14529																bB: function () {
14530																	if (!result.$) {
14531																		var v_ = result.a;
14532																		return _List_Nil;
14533																	} else {
14534																		var errors = result.a;
14535																		return A2($elm$core$List$map, $author$project$W$InputText$errorToString, errors);
14536																	}
14537																}()
14538															})
14539													});
14540											});
14541									}),
14542								cN: inputText.cL
14543							}),
14544							$elm$core$List$isEmpty(inputText.bB) ? $elm$html$Html$text('') : A2(
14545							$author$project$W$Container$view,
14546							_List_fromArray(
14547								[$author$project$W$Container$pad_2, $author$project$W$Container$gap_2]),
14548							A2(
14549								$elm$core$List$map,
14550								function (error) {
14551									return A2(
14552										$author$project$W$Text$view,
14553										_List_Nil,
14554										_List_fromArray(
14555											[
14556												$elm$html$Html$text(error)
14557											]));
14558								},
14559								inputText.bB))
14560						]));
14561			})
14562		]),
14563	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Text'));
14564var $author$project$W$InputTextArea$Attribute = $elm$core$Basics$identity;
14565var $author$project$W$InputTextArea$autogrow = function (v) {
14566	return function (attrs) {
14567		return _Utils_update(
14568			attrs,
14569			{a3: v});
14570	};
14571};
14572var $author$project$W$InputTextArea$placeholder = function (v) {
14573	return function (attrs) {
14574		return _Utils_update(
14575			attrs,
14576			{
14577				gb: $elm$core$Maybe$Just(v)
14578			});
14579	};
14580};
14581var $author$project$W$InputTextArea$resizable = function (v) {
14582	return function (attrs) {
14583		return _Utils_update(
14584			attrs,
14585			{cx: v});
14586	};
14587};
14588var $author$project$W$InputTextArea$rows = function (v) {
14589	return function (attrs) {
14590		return _Utils_update(
14591			attrs,
14592			{cA: v});
14593	};
14594};
14595var $author$project$Chapters$Form$InputTextArea$update = $dtwrks$elm_book$ElmBook$Actions$updateStateWith(
14596	F2(
14597		function (v, model) {
14598			return _Utils_update(
14599				model,
14600				{b4: v});
14601		}));
14602var $author$project$W$InputTextArea$defaultAttrs = {bE: false, a3: false, bV: false, b$: _List_Nil, cg: $elm$core$Maybe$Nothing, ci: $elm$core$Maybe$Nothing, cj: $elm$core$Maybe$Nothing, gb: $elm$core$Maybe$Nothing, ah: false, cw: false, cx: false, cA: 4};
14603var $author$project$W$InputTextArea$applyAttrs = function (attrs) {
14604	return A3(
14605		$elm$core$List$foldl,
14606		F2(
14607			function (_v0, a) {
14608				var fn = _v0;
14609				return fn(a);
14610			}),
14611		$author$project$W$InputTextArea$defaultAttrs,
14612		attrs);
14613};
14614var $author$project$W$InputTextArea$baseClass = 'ew-input ew-appearance-none ew-box-border' + (' ew-relative' + (' ew-w-full ew-min-h-[48px] ew-m-0 ew-py-2 ew-px-3' + (' ew-bg-base-aux/[0.07] ew-border ew-border-solid ew-border-base-aux/30 ew-rounded ew-shadow-none' + (' ew-font-text ew-text-base ew-text-base-fg ew-placeholder-base-aux' + (' ew-transition' + (' ew-outline-none ew-ring-offset-0 ew-ring-primary-fg/50' + (' disabled:ew-bg-base-aux/[0.25] disabled:ew-border-base-aux/[0.25]' + (' focus:ew-bg-base-bg' + (' focus:ew-ring focus:ew-border-primary-fg' + ' read-only:focus:ew-bg-base-aux/10')))))))));
14615var $elm$html$Html$Attributes$rows = function (n) {
14616	return A2(
14617		_VirtualDom_attribute,
14618		'rows',
14619		$elm$core$String$fromInt(n));
14620};
14621var $author$project$W$Internal$Helpers$stringIf = F3(
14622	function (v, a, b) {
14623		return v ? a : b;
14624	});
14625var $elm$html$Html$textarea = _VirtualDom_node('textarea');
14626var $author$project$W$InputTextArea$view = F2(
14627	function (attrs_, props) {
14628		var attrs = $author$project$W$InputTextArea$applyAttrs(attrs_);
14629		var resizeStyle = attrs.a3 ? A2($elm$html$Html$Attributes$style, 'resize', 'none') : A2(
14630			$elm$html$Html$Attributes$style,
14631			'resize',
14632			A3($author$project$W$Internal$Helpers$stringIf, attrs.cx, 'vertical', 'none'));
14633		var inputAttrs = _Utils_ap(
14634			attrs.b$,
14635			_List_fromArray(
14636				[
14637					$elm$html$Html$Attributes$class($author$project$W$InputTextArea$baseClass),
14638					$elm$html$Html$Attributes$class('ew-pt-[10px]'),
14639					$elm$html$Html$Attributes$required(attrs.cw),
14640					$elm$html$Html$Attributes$disabled(attrs.bV),
14641					$elm$html$Html$Attributes$readonly(attrs.ah),
14642					$elm$html$Html$Attributes$autofocus(attrs.bE),
14643					$elm$html$Html$Attributes$rows(attrs.cA),
14644					resizeStyle,
14645					$elm$html$Html$Attributes$value(props.cN),
14646					$elm$html$Html$Events$onInput(props.cm),
14647					A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Attributes$placeholder, attrs.gb),
14648					A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onFocus, attrs.cj),
14649					A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onBlur, attrs.cg),
14650					A2($author$project$W$Internal$Helpers$maybeAttr, $author$project$W$Internal$Helpers$onEnter, attrs.ci)
14651				]));
14652		return (!attrs.a3) ? A2($elm$html$Html$textarea, inputAttrs, _List_Nil) : A2(
14653			$elm$html$Html$div,
14654			_List_fromArray(
14655				[
14656					$elm$html$Html$Attributes$class('ew-grid ew-relative')
14657				]),
14658			_List_fromArray(
14659				[
14660					A2(
14661					$elm$html$Html$div,
14662					_List_fromArray(
14663						[
14664							A2($elm$html$Html$Attributes$attribute, 'aria-hidden', 'true'),
14665							A2($elm$html$Html$Attributes$style, 'grid-area', '1 / 1 / 2 / 2'),
14666							$elm$html$Html$Attributes$class('ew-overflow-hidden ew-whitespace-pre-wrap ew-text-transparent'),
14667							$elm$html$Html$Attributes$class('ew-pt-[10px]'),
14668							$elm$html$Html$Attributes$class($author$project$W$InputTextArea$baseClass),
14669							A2($elm$html$Html$Attributes$style, 'background', 'transparent')
14670						]),
14671					_List_fromArray(
14672						[
14673							$elm$html$Html$text(props.cN + ' ')
14674						])),
14675					A2(
14676					$elm$html$Html$textarea,
14677					_Utils_ap(
14678						inputAttrs,
14679						_List_fromArray(
14680							[
14681								A2($elm$html$Html$Attributes$style, 'grid-area', '1 / 1 / 2 / 2'),
14682								$elm$html$Html$Attributes$class('ew-overflow-hidden ew-whitespace-pre-wrap')
14683							])),
14684					_List_Nil)
14685				]));
14686	});
14687var $author$project$Chapters$Form$InputTextArea$chapter_ = A2(
14688	$dtwrks$elm_book$ElmBook$Chapter$renderStatefulComponentList,
14689	_List_fromArray(
14690		[
14691			_Utils_Tuple2(
14692			'Default',
14693			function (_v0) {
14694				var inputTextArea = _v0.b4;
14695				return A2(
14696					$author$project$W$InputTextArea$view,
14697					_List_fromArray(
14698						[
14699							$author$project$W$InputTextArea$placeholder('Type something…'),
14700							$author$project$W$InputTextArea$rows(4)
14701						]),
14702					{cm: $author$project$Chapters$Form$InputTextArea$update, cN: inputTextArea});
14703			}),
14704			_Utils_Tuple2(
14705			'Resizable',
14706			function (_v1) {
14707				var inputTextArea = _v1.b4;
14708				return A2(
14709					$author$project$W$InputTextArea$view,
14710					_List_fromArray(
14711						[
14712							$author$project$W$InputTextArea$placeholder('Type something…'),
14713							$author$project$W$InputTextArea$rows(4),
14714							$author$project$W$InputTextArea$resizable(true)
14715						]),
14716					{cm: $author$project$Chapters$Form$InputTextArea$update, cN: inputTextArea});
14717			}),
14718			_Utils_Tuple2(
14719			'Autogrow',
14720			function (_v2) {
14721				var inputTextArea = _v2.b4;
14722				return A2(
14723					$author$project$W$InputTextArea$view,
14724					_List_fromArray(
14725						[
14726							$author$project$W$InputTextArea$placeholder('Type something…'),
14727							$author$project$W$InputTextArea$rows(1),
14728							$author$project$W$InputTextArea$autogrow(true)
14729						]),
14730					{cm: $author$project$Chapters$Form$InputTextArea$update, cN: inputTextArea});
14731			})
14732		]),
14733	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input TextArea'));
14734var $author$project$W$InputTime$Value = F3(
14735	function (a, b, c) {
14736		return {$: 0, a: a, b: b, c: c};
14737	});
14738var $author$project$W$InputTime$valueFromTime = F2(
14739	function (timeZone, value) {
14740		var seconds = A3(
14741			$elm$core$String$padLeft,
14742			2,
14743			'0',
14744			$elm$core$String$fromInt(
14745				A2($elm$time$Time$toSecond, timeZone, value)));
14746		var minute = A3(
14747			$elm$core$String$padLeft,
14748			2,
14749			'0',
14750			$elm$core$String$fromInt(
14751				A2($elm$time$Time$toMinute, timeZone, value)));
14752		var hour = A3(
14753			$elm$core$String$padLeft,
14754			2,
14755			'0',
14756			$elm$core$String$fromInt(
14757				A2($elm$time$Time$toHour, timeZone, value)));
14758		return hour + (':' + (minute + (':' + seconds)));
14759	});
14760var $author$project$W$InputTime$init = F2(
14761	function (timeZone, value) {
14762		if (!value.$) {
14763			var v = value.a;
14764			return A3(
14765				$author$project$W$InputTime$Value,
14766				A2($author$project$W$InputTime$valueFromTime, timeZone, v),
14767				timeZone,
14768				$elm$core$Maybe$Just(v));
14769		} else {
14770			return A3($author$project$W$InputTime$Value, '00:00:00', timeZone, $elm$core$Maybe$Nothing);
14771		}
14772	});
14773var $author$project$W$InputTime$toTime = function (_v0) {
14774	var v = _v0.c;
14775	return v;
14776};
14777var $author$project$W$InputTime$toTimeZone = function (_v0) {
14778	var v = _v0.b;
14779	return v;
14780};
14781var $author$project$Chapters$Form$InputTime$logValue = function (value) {
14782	var _v0 = $author$project$W$InputTime$toTime(value);
14783	if (!_v0.$) {
14784		var v_ = _v0.a;
14785		return $dtwrks$elm_book$ElmBook$Actions$logAction(
14786			'Just ' + ($elm$core$String$fromInt(
14787				A2(
14788					$elm$time$Time$toHour,
14789					$author$project$W$InputTime$toTimeZone(value),
14790					v_)) + (':' + ($elm$core$String$fromInt(
14791				A2(
14792					$elm$time$Time$toMinute,
14793					$author$project$W$InputTime$toTimeZone(value),
14794					v_)) + (':' + $elm$core$String$fromInt(
14795				A2(
14796					$elm$time$Time$toSecond,
14797					$author$project$W$InputTime$toTimeZone(value),
14798					v_)))))));
14799	} else {
14800		return $dtwrks$elm_book$ElmBook$Actions$logAction('Nothing');
14801	}
14802};
14803var $author$project$W$InputTime$Attribute = $elm$core$Basics$identity;
14804var $author$project$W$InputTime$max = function (v) {
14805	return function (attrs) {
14806		return _Utils_update(
14807			attrs,
14808			{
14809				fS: $elm$core$Maybe$Just(v)
14810			});
14811	};
14812};
14813var $author$project$W$InputTime$min = function (v) {
14814	return function (attrs) {
14815		return _Utils_update(
14816			attrs,
14817			{
14818				fX: $elm$core$Maybe$Just(v)
14819			});
14820	};
14821};
14822var $author$project$W$InputTime$step = function (v) {
14823	return function (attrs) {
14824		return _Utils_update(
14825			attrs,
14826			{
14827				gq: $elm$core$Maybe$Just(v)
14828			});
14829	};
14830};
14831var $author$project$W$InputTime$defaultAttrs = {bE: false, bV: false, b$: _List_Nil, fS: $elm$core$Maybe$Nothing, fX: $elm$core$Maybe$Nothing, cg: $elm$core$Maybe$Nothing, ci: $elm$core$Maybe$Nothing, cj: $elm$core$Maybe$Nothing, bk: $elm$core$Maybe$Nothing, ah: false, cw: false, aV: false, gq: $elm$core$Maybe$Nothing, bv: $elm$core$Maybe$Nothing};
14832var $author$project$W$InputTime$applyAttrs = function (attrs) {
14833	return A3(
14834		$elm$core$List$foldl,
14835		F2(
14836			function (_v0, a) {
14837				var fn = _v0;
14838				return fn(a);
14839			}),
14840		$author$project$W$InputTime$defaultAttrs,
14841		attrs);
14842};
14843var $author$project$W$InputTime$baseAttrs = F3(
14844	function (attrs, timeZone, value) {
14845		return _Utils_ap(
14846			attrs.b$,
14847			_List_fromArray(
14848				[
14849					$elm$html$Html$Attributes$type_('time'),
14850					$elm$html$Html$Attributes$class(
14851					$author$project$W$Internal$Input$baseClass(attrs.aV)),
14852					$elm$html$Html$Attributes$required(attrs.cw),
14853					$elm$html$Html$Attributes$disabled(attrs.bV),
14854					$elm$html$Html$Attributes$readonly(attrs.ah),
14855					$elm$html$Html$Attributes$autofocus(attrs.bE),
14856					A3(
14857					$author$project$W$Internal$Helpers$attrIf,
14858					attrs.ah,
14859					$elm$html$Html$Attributes$attribute('aria-readonly'),
14860					'true'),
14861					A3(
14862					$author$project$W$Internal$Helpers$attrIf,
14863					attrs.bV,
14864					$elm$html$Html$Attributes$attribute('aria-disabled'),
14865					'true'),
14866					A2(
14867					$author$project$W$Internal$Helpers$maybeAttr,
14868					$elm$html$Html$Attributes$min,
14869					A2(
14870						$elm$core$Maybe$map,
14871						$author$project$W$InputTime$valueFromTime(timeZone),
14872						attrs.fX)),
14873					A2(
14874					$author$project$W$Internal$Helpers$maybeAttr,
14875					$elm$html$Html$Attributes$max,
14876					A2(
14877						$elm$core$Maybe$map,
14878						$author$project$W$InputTime$valueFromTime(timeZone),
14879						attrs.fS)),
14880					A2(
14881					$author$project$W$Internal$Helpers$maybeAttr,
14882					$elm$html$Html$Attributes$step,
14883					A2($elm$core$Maybe$map, $elm$core$String$fromInt, attrs.gq)),
14884					A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onFocus, attrs.cj),
14885					A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onBlur, attrs.cg),
14886					A2($author$project$W$Internal$Helpers$maybeAttr, $author$project$W$Internal$Helpers$onEnter, attrs.ci),
14887					$elm$html$Html$Attributes$value(value)
14888				]));
14889	});
14890var $author$project$W$Internal$Icons$clock = function (props) {
14891	return A2(
14892		$elm$svg$Svg$svg,
14893		_List_fromArray(
14894			[
14895				$elm$svg$Svg$Attributes$width(
14896				$elm$core$String$fromFloat(props.n) + 'px'),
14897				$elm$svg$Svg$Attributes$height(
14898				$elm$core$String$fromFloat(props.n) + 'px'),
14899				$elm$svg$Svg$Attributes$viewBox('0 0 24 24')
14900			]),
14901		_List_fromArray(
14902			[
14903				A2(
14904				$elm$svg$Svg$path,
14905				_List_fromArray(
14906					[
14907						$elm$svg$Svg$Attributes$fill('none'),
14908						$elm$svg$Svg$Attributes$d('M0 0h24v24H0z')
14909					]),
14910				_List_Nil),
14911				A2(
14912				$elm$svg$Svg$path,
14913				_List_fromArray(
14914					[
14915						$elm$svg$Svg$Attributes$d('M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1-8h4v2h-6V7h2v5z'),
14916						$elm$svg$Svg$Attributes$fill('currentColor')
14917					]),
14918				_List_Nil)
14919			]));
14920};
14921var $author$project$W$InputTime$timeFromValue = F2(
14922	function (_v0, valueString) {
14923		var timeZone = _v0.b;
14924		var currentValue = _v0.c;
14925		var seconds = F2(
14926			function (s1, s2) {
14927				return A2(
14928					$elm$core$Maybe$withDefault,
14929					0,
14930					A2(
14931						$elm$core$Maybe$map,
14932						$elm$core$Basics$mul(1000),
14933						$elm$core$String$toInt(
14934							_Utils_ap(s1, s2))));
14935			});
14936		var minutes = F2(
14937			function (m1, m2) {
14938				return A2(
14939					$elm$core$Maybe$withDefault,
14940					0,
14941					A2(
14942						$elm$core$Maybe$map,
14943						$elm$core$Basics$mul(60 * 1000),
14944						$elm$core$String$toInt(
14945							_Utils_ap(m1, m2))));
14946			});
14947		var hours = F2(
14948			function (h1, h2) {
14949				return A2(
14950					$elm$core$Maybe$withDefault,
14951					0,
14952					A2(
14953						$elm$core$Maybe$map,
14954						$elm$core$Basics$mul((60 * 60) * 1000),
14955						$elm$core$String$toInt(
14956							_Utils_ap(h1, h2))));
14957			});
14958		var currentStartOfDay = A2(
14959			$elm$core$Maybe$withDefault,
14960			0,
14961			A2(
14962				$elm$core$Maybe$map,
14963				$elm$time$Time$posixToMillis,
14964				A2(
14965					$elm$core$Maybe$map,
14966					A2($justinmimbs$time_extra$Time$Extra$floor, 11, timeZone),
14967					currentValue)));
14968		var newTime = function () {
14969			var _v1 = A2($elm$core$String$split, '', valueString);
14970			_v1$2:
14971			while (true) {
14972				if (((((_v1.b && _v1.b.b) && _v1.b.b.b) && (_v1.b.b.a === ':')) && _v1.b.b.b.b) && _v1.b.b.b.b.b) {
14973					if (!_v1.b.b.b.b.b.b) {
14974						var h1 = _v1.a;
14975						var _v2 = _v1.b;
14976						var h2 = _v2.a;
14977						var _v3 = _v2.b;
14978						var _v4 = _v3.b;
14979						var m1 = _v4.a;
14980						var _v5 = _v4.b;
14981						var m2 = _v5.a;
14982						return $elm$core$Maybe$Just(
14983							$elm$time$Time$millisToPosix(
14984								(A2(hours, h1, h2) + A2(minutes, m1, m2)) + currentStartOfDay));
14985					} else {
14986						if ((((_v1.b.b.b.b.b.a === ':') && _v1.b.b.b.b.b.b.b) && _v1.b.b.b.b.b.b.b.b) && (!_v1.b.b.b.b.b.b.b.b.b)) {
14987							var h1 = _v1.a;
14988							var _v6 = _v1.b;
14989							var h2 = _v6.a;
14990							var _v7 = _v6.b;
14991							var _v8 = _v7.b;
14992							var m1 = _v8.a;
14993							var _v9 = _v8.b;
14994							var m2 = _v9.a;
14995							var _v10 = _v9.b;
14996							var _v11 = _v10.b;
14997							var s1 = _v11.a;
14998							var _v12 = _v11.b;
14999							var s2 = _v12.a;
15000							return $elm$core$Maybe$Just(
15001								$elm$time$Time$millisToPosix(
15002									((A2(hours, h1, h2) + A2(minutes, m1, m2)) + A2(seconds, s1, s2)) + currentStartOfDay));
15003						} else {
15004							break _v1$2;
15005						}
15006					}
15007				} else {
15008					break _v1$2;
15009				}
15010			}
15011			return $elm$core$Maybe$Nothing;
15012		}();
15013		return A3($author$project$W$InputTime$Value, valueString, timeZone, newTime);
15014	});
15015var $author$project$W$InputTime$toString = function (_v0) {
15016	var v = _v0.a;
15017	return v;
15018};
15019var $author$project$W$InputTime$view = F2(
15020	function (attrs_, props) {
15021		var attrs = $author$project$W$InputTime$applyAttrs(attrs_);
15022		return A3(
15023			$author$project$W$Internal$Input$viewWithIcon,
15024			{
15025				bV: attrs.bV,
15026				fQ: $elm$core$Maybe$Nothing,
15027				fR: $author$project$W$InputTime$toString(props.cN),
15028				bk: attrs.bk,
15029				ah: attrs.ah,
15030				aV: attrs.aV,
15031				bv: attrs.bv
15032			},
15033			$author$project$W$Internal$Icons$clock(
15034				{n: 24}),
15035			A2(
15036				$elm$html$Html$input,
15037				A2(
15038					$elm$core$List$cons,
15039					$elm$html$Html$Events$onInput(
15040						A2(
15041							$elm$core$Basics$composeL,
15042							props.cm,
15043							$author$project$W$InputTime$timeFromValue(props.cN))),
15044					A3(
15045						$author$project$W$InputTime$baseAttrs,
15046						attrs,
15047						$author$project$W$InputTime$toTimeZone(props.cN),
15048						$author$project$W$InputTime$toString(props.cN))),
15049				_List_Nil));
15050	});
15051var $author$project$W$InputTime$StepMismatch = F2(
15052	function (a, b) {
15053		return {$: 2, a: a, b: b};
15054	});
15055var $author$project$W$InputTime$TooHigh = F2(
15056	function (a, b) {
15057		return {$: 1, a: a, b: b};
15058	});
15059var $author$project$W$InputTime$TooLow = F2(
15060	function (a, b) {
15061		return {$: 0, a: a, b: b};
15062	});
15063var $author$project$W$InputTime$ValueMissing = function (a) {
15064	return {$: 3, a: a};
15065};
15066var $author$project$W$Internal$Helpers$nearestInts = F2(
15067	function (v, step) {
15068		var lower = ((v / step) | 0) * step;
15069		return _Utils_Tuple2(lower, lower + step);
15070	});
15071var $author$project$W$InputTime$valueFromSeconds = function (seconds) {
15072	var hours = (seconds / (60 * 60)) | 0;
15073	var minutes = ((seconds - ((hours * 60) * 60)) / 60) | 0;
15074	var minuteString = A3(
15075		$elm$core$String$padLeft,
15076		2,
15077		'0',
15078		$elm$core$String$fromInt(minutes));
15079	var seconds_ = (seconds - ((hours * 60) * 60)) - (minutes * 60);
15080	var secondString = A3(
15081		$elm$core$String$padLeft,
15082		2,
15083		'0',
15084		$elm$core$String$fromInt(seconds_));
15085	var hourString = A3(
15086		$elm$core$String$padLeft,
15087		2,
15088		'0',
15089		$elm$core$String$fromInt(hours));
15090	return hourString + (':' + (minuteString + (':' + secondString)));
15091};
15092var $author$project$W$InputTime$nearestTimes = F3(
15093	function (timeZone, time, step_) {
15094		var minutesInSeconds = A2($elm$time$Time$toMinute, timeZone, time) * 60;
15095		var hoursInSeconds = (A2($elm$time$Time$toHour, timeZone, time) * 60) * 60;
15096		var seconds = (A2($elm$time$Time$toSecond, timeZone, time) + minutesInSeconds) + hoursInSeconds;
15097		return A3(
15098			$elm$core$Tuple$mapBoth,
15099			$author$project$W$InputTime$valueFromSeconds,
15100			$author$project$W$InputTime$valueFromSeconds,
15101			A2($author$project$W$Internal$Helpers$nearestInts, seconds, step_));
15102	});
15103var $author$project$W$InputTime$viewWithValidation = F2(
15104	function (attrs_, props) {
15105		var attrs = $author$project$W$InputTime$applyAttrs(attrs_);
15106		return A3(
15107			$author$project$W$Internal$Input$viewWithIcon,
15108			{
15109				bV: attrs.bV,
15110				fQ: $elm$core$Maybe$Nothing,
15111				fR: $author$project$W$InputTime$toString(props.cN),
15112				bk: attrs.bk,
15113				ah: attrs.ah,
15114				aV: attrs.aV,
15115				bv: attrs.bv
15116			},
15117			$author$project$W$Internal$Icons$clock(
15118				{n: 24}),
15119			A2(
15120				$elm$html$Html$input,
15121				A2(
15122					$elm$core$List$cons,
15123					A2(
15124						$elm$html$Html$Events$on,
15125						'input',
15126						A7(
15127							$elm$json$Json$Decode$map6,
15128							F6(
15129								function (value, valid, rangeOverflow, rangeUnderflow, stepMismatch, valueMissing) {
15130									var newValue = A2($author$project$W$InputTime$timeFromValue, props.cN, value);
15131									return valid ? A2(
15132										props.cm,
15133										$elm$core$Result$Ok(
15134											$author$project$W$InputTime$toTime(newValue)),
15135										newValue) : function (xs) {
15136										return A2(
15137											props.cm,
15138											$elm$core$Result$Err(xs),
15139											newValue);
15140									}(
15141										A2(
15142											$elm$core$List$filterMap,
15143											$elm$core$Basics$identity,
15144											_List_fromArray(
15145												[
15146													A2(
15147													$author$project$W$Internal$Helpers$keepIf,
15148													valueMissing,
15149													$elm$core$Maybe$Just(
15150														$author$project$W$InputTime$ValueMissing('Please fill out this field.'))),
15151													A2(
15152													$elm$core$Maybe$map,
15153													function (min_) {
15154														var timeString = A2(
15155															$author$project$W$InputTime$valueFromTime,
15156															$author$project$W$InputTime$toTimeZone(props.cN),
15157															min_);
15158														return A2($author$project$W$InputTime$TooLow, min_, 'Value must be ' + (timeString + ' or later.'));
15159													},
15160													A2($author$project$W$Internal$Helpers$keepIf, rangeUnderflow, attrs.fX)),
15161													A2(
15162													$elm$core$Maybe$map,
15163													function (max_) {
15164														var timeString = A2(
15165															$author$project$W$InputTime$valueFromTime,
15166															$author$project$W$InputTime$toTimeZone(props.cN),
15167															max_);
15168														return A2($author$project$W$InputTime$TooHigh, max_, 'Value must be ' + (timeString + ' or later.'));
15169													},
15170													A2($author$project$W$Internal$Helpers$keepIf, rangeOverflow, attrs.fS)),
15171													A3(
15172													$elm$core$Maybe$map2,
15173													F2(
15174														function (time, step_) {
15175															var _v0 = A3(
15176																$author$project$W$InputTime$nearestTimes,
15177																$author$project$W$InputTime$toTimeZone(props.cN),
15178																time,
15179																step_);
15180															var f = _v0.a;
15181															var c = _v0.b;
15182															return A2($author$project$W$InputTime$StepMismatch, step_, 'Please enter a valid value. The two nearest valid values are ' + (f + (' and ' + (c + '.'))));
15183														}),
15184													$author$project$W$InputTime$toTime(props.cN),
15185													A2($author$project$W$Internal$Helpers$keepIf, stepMismatch, attrs.gq))
15186												])));
15187								}),
15188							A2(
15189								$elm$json$Json$Decode$at,
15190								_List_fromArray(
15191									['target', 'value']),
15192								$elm$json$Json$Decode$string),
15193							A2(
15194								$elm$json$Json$Decode$at,
15195								_List_fromArray(
15196									['target', 'validity', 'valid']),
15197								$elm$json$Json$Decode$bool),
15198							A2(
15199								$elm$json$Json$Decode$at,
15200								_List_fromArray(
15201									['target', 'validity', 'rangeOverflow']),
15202								$elm$json$Json$Decode$bool),
15203							A2(
15204								$elm$json$Json$Decode$at,
15205								_List_fromArray(
15206									['target', 'validity', 'rangeUnderflow']),
15207								$elm$json$Jso
15207n$Decode$bool),
15208							A2(
15209								$elm$json$Json$Decode$at,
15210								_List_fromArray(
15211									['target', 'validity', 'stepMismatch']),
15212								$elm$json$Json$Decode$bool),
15213							A2(
15214								$elm$json$Json$Decode$at,
15215								_List_fromArray(
15216									['target', 'validity', 'valueMissing']),
15217								$elm$json$Json$Decode$bool))),
15218					A3(
15219						$author$project$W$InputTime$baseAttrs,
15220						attrs,
15221						$author$project$W$InputTime$toTimeZone(props.cN),
15222						$author$project$W$InputTime$toString(props.cN))),
15223				_List_Nil));
15224	});
15225var $author$project$Chapters$Form$InputTime$chapter_ = A2(
15226	$dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList,
15227	'\n`InputTime` receives an `Time.Posix` and returns a `Time.Posix`. We can retrieve specifics like hour, minutes and hours using the `Time` package.\n\nLet\'s say we just got the current timestamp using the `Time.now` Cmd. We can just pass it to the input time directly and select a new time based on the same day.\n\nBy default this component uses `Time.utc` so if we\'re in a different zone, we should pass in the optional attribute `InputTime.timeZone`.\n',
15228	A2(
15229		$dtwrks$elm_book$ElmBook$Chapter$withComponentList,
15230		_List_fromArray(
15231			[
15232				_Utils_Tuple2(
15233				'Default',
15234				A2(
15235					$author$project$W$InputTime$view,
15236					_List_Nil,
15237					{
15238						cm: $author$project$Chapters$Form$InputTime$logValue,
15239						cN: A2($author$project$W$InputTime$init, $elm$time$Time$utc, $elm$core$Maybe$Nothing)
15240					})),
15241				_Utils_Tuple2(
15242				'Custom Timezone (GMT-3)',
15243				function () {
15244					var timeZone = A2($elm$time$Time$customZone, (-3) * 60, _List_Nil);
15245					return A2(
15246						$author$project$W$InputTime$view,
15247						_List_Nil,
15248						{
15249							cm: $author$project$Chapters$Form$InputTime$logValue,
15250							cN: A2(
15251								$author$project$W$InputTime$init,
15252								$elm$time$Time$utc,
15253								$elm$core$Maybe$Just(
15254									$elm$time$Time$millisToPosix(1651693959717)))
15255						});
15256				}()),
15257				_Utils_Tuple2(
15258				'Validation',
15259				A2(
15260					$author$project$W$InputTime$viewWithValidation,
15261					_List_fromArray(
15262						[
15263							$author$project$W$InputTime$step(15),
15264							$author$project$W$InputTime$min(
15265							$elm$time$Time$millisToPosix(1651693959717)),
15266							$author$project$W$InputTime$max(
15267							$elm$time$Time$millisToPosix(1671484833575))
15268						]),
15269					{
15270						cm: function (_v0) {
15271							return $author$project$Chapters$Form$InputTime$logValue;
15272						},
15273						cN: A2(
15274							$author$project$W$InputTime$init,
15275							$elm$time$Time$utc,
15276							$elm$core$Maybe$Just(
15277								$elm$time$Time$millisToPosix(1651693959717)))
15278					}))
15279			]),
15280		$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Time')));
15281var $author$project$W$Badge$Attribute = $elm$core$Basics$identity;
15282var $author$project$W$Badge$background = function (v) {
15283	return function (attrs) {
15284		return _Utils_update(
15285			attrs,
15286			{bF: v});
15287	};
15288};
15289var $author$project$W$Badge$color = function (v) {
15290	return function (attrs) {
15291		return _Utils_update(
15292			attrs,
15293			{U: v});
15294	};
15295};
15296var $author$project$W$Badge$neutral = function (attrs) {
15297	return _Utils_update(
15298		attrs,
15299		{bF: $uncover_co$elm_theme$Theme$neutralBackground, U: $uncover_co$elm_theme$Theme$neutralAux});
15300};
15301var $author$project$W$Badge$primary = function (attrs) {
15302	return _Utils_update(
15303		attrs,
15304		{bF: $uncover_co$elm_theme$Theme$primaryBackground, U: $uncover_co$elm_theme$Theme$primaryAux});
15305};
15306var $author$project$W$Badge$secondary = function (attrs) {
15307	return _Utils_update(
15308		attrs,
15309		{bF: $uncover_co$elm_theme$Theme$secondaryBackground, U: $uncover_co$elm_theme$Theme$secondaryAux});
15310};
15311var $author$project$W$Badge$small = function (attrs) {
15312	return _Utils_update(
15313		attrs,
15314		{aV: true});
15315};
15316var $author$project$W$Badge$success = function (attrs) {
15317	return _Utils_update(
15318		attrs,
15319		{bF: $uncover_co$elm_theme$Theme$successBackground, U: $uncover_co$elm_theme$Theme$successAux});
15320};
15321var $author$project$W$Badge$defaultAttrs = {bF: $uncover_co$elm_theme$Theme$dangerBackground, U: $uncover_co$elm_theme$Theme$dangerAux, b$: _List_Nil, aV: false};
15322var $author$project$W$Badge$applyAttrs = function (attrs) {
15323	return A3(
15324		$elm$core$List$foldl,
15325		F2(
15326			function (_v0, a) {
15327				var fn = _v0;
15328				return fn(a);
15329			}),
15330		$author$project$W$Badge$defaultAttrs,
15331		attrs);
15332};
15333var $author$project$W$Badge$baseAttrs = function (attrs) {
15334	return _Utils_ap(
15335		attrs.b$,
15336		_List_fromArray(
15337			[
15338				$elm$html$Html$Attributes$class('ew-rounded-full ew-flex ew-items-center ew-justify-center'),
15339				$elm$html$Html$Attributes$class('ew-leading-none ew-font-semibold ew-font-text'),
15340				$elm$html$Html$Attributes$class('ew-shadow'),
15341				$elm$html$Html$Attributes$classList(
15342				_List_fromArray(
15343					[
15344						_Utils_Tuple2('ew-px-2.5 ew-h-6 ew-text-sm', !attrs.aV),
15345						_Utils_Tuple2('ew-px-1.5 ew-h-4 ew-text-xs', attrs.aV)
15346					])),
15347				$uncover_co$elm_theme$Theme$stylesIf(
15348				_List_fromArray(
15349					[
15350						_Utils_Tuple3('color', attrs.U, true),
15351						_Utils_Tuple3('background', attrs.bF, true),
15352						_Utils_Tuple3('min-width', '5px', attrs.aV)
15353					]))
15354			]));
15355};
15356var $author$project$W$Badge$view = F2(
15357	function (attrs_, props) {
15358		var badge = function () {
15359			var _v0 = props.c$;
15360			if (!_v0.$) {
15361				var content = _v0.a;
15362				var attrs = $author$project$W$Badge$applyAttrs(attrs_);
15363				return A2(
15364					$elm$html$Html$span,
15365					_Utils_ap(
15366						$author$project$W$Badge$baseAttrs(attrs),
15367						_List_fromArray(
15368							[
15369								$elm$html$Html$Attributes$class('ew-absolute ew-bottom-full ew-left-full'),
15370								$elm$html$Html$Attributes$class('-ew-mb-2.5 -ew-ml-2.5'),
15371								$elm$html$Html$Attributes$class('ew-animate-fade-slide')
15372							])),
15373					content);
15374			} else {
15375				return $elm$html$Html$text('');
15376			}
15377		}();
15378		return A2(
15379			$elm$html$Html$span,
15380			_List_Nil,
15381			_List_fromArray(
15382				[
15383					A2(
15384					$elm$html$Html$span,
15385					_List_fromArray(
15386						[
15387							$elm$html$Html$Attributes$class('ew-relative')
15388						]),
15389					A2($elm$core$List$cons, badge, props.cY))
15390				]));
15391	});
15392var $author$project$W$Badge$viewInline = F2(
15393	function (attrs_, value) {
15394		var attrs = $author$project$W$Badge$applyAttrs(attrs_);
15395		return A2(
15396			$elm$html$Html$span,
15397			$author$project$W$Badge$baseAttrs(attrs),
15398			value);
15399	});
15400var $author$project$W$Badge$warning = function (attrs) {
15401	return _Utils_update(
15402		attrs,
15403		{bF: $uncover_co$elm_theme$Theme$warningBackground, U: $uncover_co$elm_theme$Theme$warningAux});
15404};
15405var $author$project$Chapters$Information$Badge$chapter_ = A2(
15406	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
15407	_List_fromArray(
15408		[
15409			_Utils_Tuple2(
15410			'Default',
15411			$author$project$UI$vSpacer(
15412				_List_fromArray(
15413					[
15414						A2(
15415						$author$project$W$Badge$view,
15416						_List_Nil,
15417						{
15418							cY: _List_fromArray(
15419								[
15420									$elm$html$Html$text('Hello!')
15421								]),
15422							c$: $elm$core$Maybe$Just(
15423								_List_fromArray(
15424									[
15425										$elm$html$Html$text('!')
15426									]))
15427						}),
15428						A2(
15429						$author$project$W$Badge$view,
15430						_List_fromArray(
15431							[
15432								$author$project$W$Badge$background('purple'),
15433								$author$project$W$Badge$color('white')
15434							]),
15435						{
15436							cY: _List_fromArray(
15437								[
15438									$elm$html$Html$text('Hello!')
15439								]),
15440							c$: $elm$core$Maybe$Just(
15441								_List_fromArray(
15442									[
15443										$elm$html$Html$text('999')
15444									]))
15445						})
15446					]))),
15447			_Utils_Tuple2(
15448			'Inline',
15449			$author$project$UI$hSpacer(
15450				_List_fromArray(
15451					[
15452						A2(
15453						$author$project$W$Badge$viewInline,
15454						_List_Nil,
15455						_List_fromArray(
15456							[
15457								$elm$html$Html$text('!')
15458							])),
15459						A2(
15460						$author$project$W$Badge$viewInline,
15461						_List_fromArray(
15462							[$author$project$W$Badge$neutral]),
15463						_List_fromArray(
15464							[
15465								$elm$html$Html$text('999')
15466							])),
15467						A2(
15468						$author$project$W$Badge$viewInline,
15469						_List_fromArray(
15470							[$author$project$W$Badge$primary]),
15471						_List_fromArray(
15472							[
15473								$elm$html$Html$text('999')
15474							])),
15475						A2(
15476						$author$project$W$Badge$viewInline,
15477						_List_fromArray(
15478							[$author$project$W$Badge$secondary]),
15479						_List_fromArray(
15480							[
15481								$elm$html$Html$text('999')
15482							])),
15483						A2(
15484						$author$project$W$Badge$viewInline,
15485						_List_fromArray(
15486							[$author$project$W$Badge$success]),
15487						_List_fromArray(
15488							[
15489								$elm$html$Html$text('999')
15490							])),
15491						A2(
15492						$author$project$W$Badge$viewInline,
15493						_List_fromArray(
15494							[$author$project$W$Badge$warning]),
15495						_List_fromArray(
15496							[
15497								$elm$html$Html$text('999')
15498							])),
15499						A2(
15500						$author$project$W$Badge$viewInline,
15501						_List_fromArray(
15502							[
15503								$author$project$W$Badge$background('purple'),
15504								$author$project$W$Badge$color('white')
15505							]),
15506						_List_fromArray(
15507							[
15508								$elm$html$Html$text('999')
15509							]))
15510					]))),
15511			_Utils_Tuple2(
15512			'Small',
15513			$author$project$UI$vSpacer(
15514				_List_fromArray(
15515					[
15516						A2(
15517						$author$project$W$Badge$view,
15518						_List_fromArray(
15519							[$author$project$W$Badge$small]),
15520						{
15521							cY: _List_fromArray(
15522								[
15523									$elm$html$Html$text('Hello!')
15524								]),
15525							c$: $elm$core$Maybe$Just(
15526								_List_fromArray(
15527									[
15528										$elm$html$Html$text('!')
15529									]))
15530						}),
15531						A2(
15532						$author$project$W$Badge$viewInline,
15533						_List_fromArray(
15534							[$author$project$W$Badge$secondary]),
15535						_List_fromArray(
15536							[
15537								$elm$html$Html$text('999')
15538							]))
15539					]))),
15540			_Utils_Tuple2(
15541			'Inline + Small',
15542			$author$project$UI$hSpacer(
15543				_List_fromArray(
15544					[
15545						A2(
15546						$author$project$W$Badge$viewInline,
15547						_List_fromArray(
15548							[$author$project$W$Badge$small]),
15549						_List_fromArray(
15550							[
15551								$elm$html$Html$text('!')
15552							])),
15553						A2(
15554						$author$project$W$Badge$viewInline,
15555						_List_fromArray(
15556							[$author$project$W$Badge$small, $author$project$W$Badge$neutral]),
15557						_List_fromArray(
15558							[
15559								$elm$html$Html$text('999')
15560							])),
15561						A2(
15562						$author$project$W$Badge$viewInline,
15563						_List_fromArray(
15564							[$author$project$W$Badge$small, $author$project$W$Badge$primary]),
15565						_List_fromArray(
15566							[
15567								$elm$html$Html$text('999')
15568							])),
15569						A2(
15570						$author$project$W$Badge$viewInline,
15571						_List_fromArray(
15572							[$author$project$W$Badge$small, $author$project$W$Badge$secondary]),
15573						_List_fromArray(
15574							[
15575								$elm$html$Html$text('999')
15576							])),
15577						A2(
15578						$author$project$W$Badge$viewInline,
15579						_List_fromArray(
15580							[$author$project$W$Badge$small, $author$project$W$Badge$success]),
15581						_List_fromArray(
15582							[
15583								$elm$html$Html$text('999')
15584							])),
15585						A2(
15586						$author$project$W$Badge$viewInline,
15587						_List_fromArray(
15588							[$author$project$W$Badge$small, $author$project$W$Badge$warning]),
15589						_List_fromArray(
15590							[
15591								$elm$html$Html$text('999')
15592							])),
15593						A2(
15594						$author$project$W$Badge$viewInline,
15595						_List_fromArray(
15596							[
15597								$author$project$W$Badge$small,
15598								$author$project$W$Badge$background('purple'),
15599								$author$project$W$Badge$color('white')
15600							]),
15601						_List_fromArray(
15602							[
15603								$elm$html$Html$text('999')
15604							]))
15605					])))
15606		]),
15607	$dtwrks$elm_book$ElmBook$Chapter$chapter('Badge'));
15608var $author$project$W$DataRow$Attribute = $elm$core$Basics$identity;
15609var $author$project$W$DataRow$footer = function (v) {
15610	return function (attrs) {
15611		return _Utils_update(
15612			attrs,
15613			{
15614				fr: $elm$core$Maybe$Just(v)
15615			});
15616	};
15617};
15618var $author$project$W$DataRow$gap = function (v) {
15619	return function (attrs) {
15620		return _Utils_update(
15621			attrs,
15622			{a7: v});
15623	};
15624};
15625var $author$project$W$DataRow$header = function (v) {
15626	return function (attrs) {
15627		return _Utils_update(
15628			attrs,
15629			{
15630				fz: $elm$core$Maybe$Just(v)
15631			});
15632	};
15633};
15634var $author$project$W$DataRow$href = function (v) {
15635	return function (attrs) {
15636		return _Utils_update(
15637			attrs,
15638			{
15639				ei: $elm$core$Maybe$Just(v)
15640			});
15641	};
15642};
15643var $author$project$W$DataRow$innerGap = function (v) {
15644	return function (attrs) {
15645		return _Utils_update(
15646			attrs,
15647			{aE: v});
15648	};
15649};
15650var $author$project$W$DataRow$left = function (v) {
15651	return function (attrs) {
15652		return _Utils_update(
15653			attrs,
15654			{
15655				ew: $elm$core$Maybe$Just(v)
15656			});
15657	};
15658};
15659var $author$project$W$DataRow$noBackground = function (attrs) {
15660	return _Utils_update(
15661		attrs,
15662		{cd: true});
15663};
15664var $author$project$W$DataRow$noLeftClick = function (attrs) {
15665	return _Utils_update(
15666		attrs,
15667		{bg: true});
15668};
15669var $author$project$W$DataRow$onClick = function (v) {
15670	return function (attrs) {
15671		return _Utils_update(
15672			attrs,
15673			{
15674				s: $elm$core$Maybe$Just(v)
15675			});
15676	};
15677};
15678var $author$project$W$DataRow$openNewTab = function (attrs) {
15679	return _Utils_update(
15680		attrs,
15681		{cp: true});
15682};
15683var $author$project$W$DataRow$paddingX = function (v) {
15684	return function (attrs) {
15685		return _Utils_update(
15686			attrs,
15687			{
15688				W: A2(
15689					$elm$core$Maybe$map,
15690					function (p) {
15691						return _Utils_update(
15692							p,
15693							{dZ: v});
15694					},
15695					attrs.W)
15696			});
15697	};
15698};
15699var $author$project$W$DataRow$paddingY = function (v) {
15700	return function (attrs) {
15701		return _Utils_update(
15702			attrs,
15703			{
15704				W: A2(
15705					$elm$core$Maybe$map,
15706					function (p) {
15707						return _Utils_update(
15708							p,
15709							{d_: v});
15710					},
15711					attrs.W)
15712			});
15713	};
15714};
15715var $author$project$W$DataRow$right = function (v) {
15716	return function (attrs) {
15717		return _Utils_update(
15718			attrs,
15719			{
15720				eS: $elm$core$Maybe$Just(v)
15721			});
15722	};
15723};
15724var $author$project$W$DataRow$defaultAttrs = {
15725	fr: $elm$core$Maybe$Nothing,
15726	a7: 8,
15727	fz: $elm$core$Maybe$Nothing,
15728	ei: $elm$core$Maybe$Nothing,
15729	b$: _List_Nil,
15730	aE: 8,
15731	ew: $elm$core$Maybe$Nothing,
15732	cd: false,
15733	bg: false,
15734	s: $elm$core$Maybe$Nothing,
15735	cp: false,
15736	W: $elm$core$Maybe$Just(
15737		{dZ: 8, d_: 8}),
15738	eS: $elm$core$Maybe$Nothing
15739};
15740var $author$project$W$DataRow$applyAttrs = function (attrs) {
15741	return A3(
15742		$elm$core$List$foldl,
15743		F2(
15744			function (_v0, a) {
15745				var fn = _v0;
15746				return fn(a);
15747			}),
15748		$author$project$W$DataRow$defaultAttrs,
15749		attrs);
15750};
15751var $author$project$W$DataRow$side = function (innerGap_) {
15752	return $elm$html$Html$div(
15753		_List_fromArray(
15754			[
15755				$elm$html$Html$Attributes$class('ew-shrink-0 ew-flex ew-items-center ew-gap-2'),
15756				A2(
15757				$elm$html$Html$Attributes$style,
15758				'gap',
15759				$author$project$W$Internal$Helpers$formatPx(innerGap_))
15760			]));
15761};
15762var $elm$html$Html$Attributes$target = $elm$html$Html$Attributes$stringProperty('target');
15763var $author$project$W$DataRow$view = F2(
15764	function (attrs_, children) {
15765		var mainClickableClass = $elm$html$Html$Attributes$class('ew-focusable hover:ew-bg-base-aux/[0.07] active:ew-bg-base-aux/10');
15766		var attrs = $author$project$W$DataRow$applyAttrs(attrs_);
15767		var left_ = attrs.bg ? A2(
15768			$author$project$W$Internal$Helpers$maybeHtml,
15769			$author$project$W$DataRow$side(attrs.aE),
15770			attrs.ew) : $elm$html$Html$text('');
15771		var mainAttrs = _List_fromArray(
15772			[
15773				$elm$html$Html$Attributes$class('ew-grow ew-flex ew-items-center'),
15774				$elm$html$Html$Attributes$class('ew-w-full ew-bg-transparent'),
15775				$elm$html$Html$Attributes$class('ew-btn-like ew-text-base ew-text-left ew-font-text ew-text-base-fg'),
15776				$elm$html$Html$Attributes$class('ew-p-2'),
15777				A2(
15778				$elm$html$Html$Attributes$style,
15779				'gap',
15780				$author$project$W$Internal$Helpers$formatPx(attrs.a7))
15781			]);
15782		var mainLeft = attrs.bg ? $elm$html$Html$text('') : A2(
15783			$author$project$W$Internal$Helpers$maybeHtml,
15784			$author$project$W$DataRow$side(attrs.aE),
15785			attrs.ew);
15786		var main_ = function () {
15787			var _v0 = _Utils_Tuple2(attrs.s, attrs.ei);
15788			if (!_v0.a.$) {
15789				var onClick_ = _v0.a.a;
15790				return $elm$html$Html$button(
15791					_Utils_ap(
15792						mainAttrs,
15793						_List_fromArray(
15794							[
15795								mainClickableClass,
15796								$elm$html$Html$Events$onClick(onClick_)
15797							])));
15798			} else {
15799				if (!_v0.b.$) {
15800					var _v1 = _v0.a;
15801					var href_ = _v0.b.a;
15802					return $elm$html$Html$a(
15803						_Utils_ap(
15804							mainAttrs,
15805							_List_fromArray(
15806								[
15807									mainClickableClass,
15808									$elm$html$Html$Attributes$href(href_),
15809									attrs.cp ? $elm$html$Html$Attributes$target('_blank') : $elm$html$Html$Attributes$class('')
15810								])));
15811				} else {
15812					return $elm$html$Html$div(mainAttrs);
15813				}
15814			}
15815		}();
15816		return A2(
15817			$elm$html$Html$div,
15818			A2(
15819				$elm$core$List$cons,
15820				$elm$html$Html$Attributes$class('ew-flex ew-items-center ew-gap-2 ew-box-border'),
15821				A2(
15822					$elm$core$List$cons,
15823					A2(
15824						$elm$html$Html$Attributes$style,
15825						'gap',
15826						$author$project$W$Internal$Helpers$formatPx(attrs.a7)),
15827					A2(
15828						$elm$core$List$cons,
15829						A2(
15830							$author$project$W$Internal$Helpers$maybeAttr,
15831							A2(
15832								$elm$core$Basics$composeL,
15833								$elm$html$Html$Attributes$style('padding'),
15834								$author$project$W$Internal$Helpers$paddingXY),
15835							attrs.W),
15836						A2(
15837							$elm$core$List$cons,
15838							$elm$html$Html$Attributes$classList(
15839								_List_fromArray(
15840									[
15841										_Utils_Tuple2('ew-bg-base-bg', !attrs.cd)
15842									])),
15843							attrs.b$)))),
15844			_List_fromArray(
15845				[
15846					left_,
15847					main_(
15848					_List_fromArray(
15849						[
15850							mainLeft,
15851							A2(
15852							$elm$html$Html$div,
15853							_List_fromArray(
15854								[
15855									$elm$html$Html$Attributes$class('ew-grow')
15856								]),
15857							_List_fromArray(
15858								[
15859									A2(
15860									$author$project$W$Internal$Helpers$maybeHtml,
15861									function (header_) {
15862										return A2(
15863											$elm$html$Html$div,
15864											_List_fromArray(
15865												[
15866													$elm$html$Html$Attributes$class('ew-text-sm ew-text-base-aux ew-pb-1')
15867												]),
15868											header_);
15869									},
15870									attrs.fz),
15871									A2(
15872									$elm$html$Html$div,
15873									_List_fromArray(
15874										[
15875											$elm$html$Html$Attributes$class('ew ew-data-row-label')
15876										]),
15877									children),
15878									A2(
15879									$author$project$W$Internal$Helpers$maybeHtml,
15880									function (footer_) {
15881										return A2(
15882											$elm$html$Html$div,
15883											_List_fromArray(
15884												[
15885													$elm$html$Html$Attributes$class('ew-text-sm ew-text-base-aux ew-pt-0.5')
15886												]),
15887											footer_);
15888									},
15889									attrs.fr)
15890								]))
15891						])),
15892					A2(
15893					$author$project$W$Internal$Helpers$maybeHtml,
15894					$author$project$W$DataRow$side(attrs.aE),
15895					attrs.eS)
15896				]));
15897	});
15898var $author$project$Chapters$Information$DataRow$viewCircle = A2(
15899	$elm$html$Html$div,
15900	_List_fromArray(
15901		[
15902			A2($elm$html$Html$Attributes$style, 'background', '#f5f5f5'),
15903			A2($elm$html$Html$Attributes$style, 'border-radius', '50%'),
15904			A2($elm$html$Html$Attributes$style, 'border', '3px solid #dadada'),
15905			A2($elm$html$Html$Attributes$style, 'width', '20px'),
15906			A2($elm$html$Html$Attributes$style, 'height', '20px')
15907		]),
15908	_List_Nil);
15909var $author$project$W$DataRow$noAttr = $elm$core$Basics$identity;
15910var $author$project$W$DataRow$ifNotEmpty = F2(
15911	function (attr, xs) {
15912		if (!xs.b) {
15913			return $author$project$W$DataRow$noAttr;
15914		} else {
15915			return attr(xs);
15916		}
15917	});
15918var $author$project$W$DataRow$viewNext = F2(
15919	function (attrs_, props) {
15920		return A2(
15921			$author$project$W$DataRow$view,
15922			_Utils_ap(
15923				attrs_,
15924				_List_fromArray(
15925					[
15926						A2($author$project$W$DataRow$ifNotEmpty, $author$project$W$DataRow$left, props.ew),
15927						A2($author$project$W$DataRow$ifNotEmpty, $author$project$W$DataRow$right, props.eS)
15928					])),
15929			props.eA);
15930	});
15931var $author$project$W$DataRow$viewNextExtra = F2(
15932	function (attrs_, props) {
15933		return A2(
15934			$author$project$W$DataRow$view,
15935			_Utils_ap(
15936				attrs_,
15937				_List_fromArray(
15938					[
15939						A2($author$project$W$DataRow$ifNotEmpty, $author$project$W$DataRow$left, props.ew),
15940						A2($author$project$W$DataRow$ifNotEmpty, $author$project$W$DataRow$right, props.eS),
15941						$author$project$W$DataRow$header(props.fz),
15942						$author$project$W$DataRow$footer(props.fr)
15943					])),
15944			props.eA);
15945	});
15946var $author$project$Chapters$Information$DataRow$chapter_ = A2(
15947	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
15948	_List_fromArray(
15949		[
15950			_Utils_Tuple2(
15951			'Simple',
15952			A2(
15953				$author$project$W$DataRow$view,
15954				_List_Nil,
15955				_List_fromArray(
15956					[
15957						$elm$html$Html$text('Label')
15958					]))),
15959			_Utils_Tuple2(
15960			'As Button',
15961			A2(
15962				$author$project$W$DataRow$view,
15963				_List_fromArray(
15964					[
15965						$author$project$W$DataRow$onClick(
15966						$dtwrks$elm_book$ElmBook$Actions$logAction('onClick'))
15967					]),
15968				_List_fromArray(
15969					[
15970						$elm$html$Html$text('Label')
15971					]))),
15972			_Utils_Tuple2(
15973			'As Link',
15974			A2(
15975				$author$project$W$DataRow$view,
15976				_List_fromArray(
15977					[
15978						$author$project$W$DataRow$href('/logAction/#')
15979					]),
15980				_List_fromArray(
15981					[
15982						$elm$html$Html$text('Label')
15983					]))),
15984			_Utils_Tuple2(
15985			'As Link opening on new tab',
15986			A2(
15987				$author$project$W$DataRow$view,
15988				_List_fromArray(
15989					[
15990						$author$project$W$DataRow$href('/logAction/#'),
15991						$author$project$W$DataRow$openNewTab
15992					]),
15993				_List_fromArray(
15994					[
15995						$elm$html$Html$text('Label')
15996					]))),
15997			_Utils_Tuple2(
15998			'With Actions',
15999			A2(
16000				$author$project$W$DataRow$view,
16001				_List_fromArray(
16002					[
16003						$author$project$W$DataRow$href('/logAction/#'),
16004						$author$project$W$DataRow$right(
16005						_List_fromArray(
16006							[
16007								A2(
16008								$author$project$W$Button$view,
16009								_List_fromArray(
16010									[$author$project$W$Button$primary]),
16011								{
16012									aK: _List_fromArray(
16013										[
16014											$elm$html$Html$text('Click me')
16015										]),
16016									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16017								})
16018							]))
16019					]),
16020				_List_fromArray(
16021					[
16022						$elm$html$Html$text('Label')
16023					]))),
16024			_Utils_Tuple2(
16025			'With Actions + Footer',
16026			A2(
16027				$author$project$W$DataRow$view,
16028				_List_fromArray(
16029					[
16030						$author$project$W$DataRow$href('/logAction/#'),
16031						$author$project$W$DataRow$footer(
16032						_List_fromArray(
16033							[
16034								$elm$html$Html$text('[email protected]')
16035							])),
16036						$author$project$W$DataRow$right(
16037						_List_fromArray(
16038							[
16039								A2(
16040								$author$project$W$Button$view,
16041								_List_fromArray(
16042									[$author$project$W$Button$primary]),
16043								{
16044									aK: _List_fromArray(
16045										[
16046											$elm$html$Html$text('Click me')
16047										]),
16048									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16049								})
16050							]))
16051					]),
16052				_List_fromArray(
16053					[
16054						$elm$html$Html$text('Label')
16055					]))),
16056			_Utils_Tuple2(
16057			'With Actions + Header + Footer',
16058			A2(
16059				$author$project$W$DataRow$view,
16060				_List_fromArray(
16061					[
16062						$author$project$W$DataRow$href('/logAction/#'),
16063						$author$project$W$DataRow$header(
16064						_List_fromArray(
16065							[
16066								$elm$html$Html$text('Admin')
16067							])),
16068						$author$project$W$DataRow$footer(
16069						_List_fromArray(
16070							[
16071								$elm$html$Html$text('[email protected]')
16072							])),
16073						$author$project$W$DataRow$right(
16074						_List_fromArray(
16075							[
16076								A2(
16077								$author$project$W$Button$view,
16078								_List_fromArray(
16079									[$author$project$W$Button$primary]),
16080								{
16081									aK: _List_fromArray(
16082										[
16083											$elm$html$Html$text('Click me')
16084										]),
16085									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16086								})
16087							]))
16088					]),
16089				_List_fromArray(
16090					[
16091						$elm$html$Html$text('Label')
16092					]))),
16093			_Utils_Tuple2(
16094			'With Actions + Header + Footer + Left',
16095			A2(
16096				$author$project$W$DataRow$view,
16097				_List_fromArray(
16098					[
16099						$author$project$W$DataRow$href('/logAction/#'),
16100						$author$project$W$DataRow$header(
16101						_List_fromArray(
16102							[
16103								$elm$html$Html$text('Admin')
16104							])),
16105						$author$project$W$DataRow$footer(
16106						_List_fromArray(
16107							[
16108								$elm$html$Html$text('[email protected]')
16109							])),
16110						$author$project$W$DataRow$left(
16111						_List_fromArray(
16112							[
16113								$author$project$W$Loading$ripples(_List_Nil)
16114							])),
16115						$author$project$W$DataRow$right(
16116						_List_fromArray(
16117							[
16118								A2(
16119								$author$project$W$Button$view,
16120								_List_fromArray(
16121									[$author$project$W$Button$primary]),
16122								{
16123									aK: _List_fromArray(
16124										[
16125											$elm$html$Html$text('Click me')
16126										]),
16127									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16128								})
16129							]))
16130					]),
16131				_List_fromArray(
16132					[
16133						$elm$html$Html$text('Label')
16134					]))),
16135			_Utils_Tuple2(
16136			'With Actions + Header + Footer + Left (Other)',
16137			A2(
16138				$author$project$W$DataRow$view,
16139				_List_fromArray(
16140					[
16141						$author$project$W$DataRow$href('/logAction/#'),
16142						$author$project$W$DataRow$header(
16143						_List_fromArray(
16144							[
16145								$elm$html$Html$text('Admin')
16146							])),
16147						$author$project$W$DataRow$footer(
16148						_List_fromArray(
16149							[
16150								$elm$html$Html$text('[email protected]')
16151							])),
16152						$author$project$W$DataRow$left(
16153						_List_fromArray(
16154							[$author$project$Chapters$Information$DataRow$viewCircle])),
16155						$author$project$W$DataRow$right(
16156						_List_fromArray(
16157							[
16158								A2(
16159								$author$project$W$Button$view,
16160								_List_fromArray(
16161									[$author$project$W$Button$primary]),
16162								{
16163									aK: _List_fromArray(
16164										[
16165											$elm$html$Html$text('Click me')
16166										]),
16167									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16168								})
16169							]))
16170					]),
16171				_List_fromArray(
16172					[
16173						$elm$html$Html$text('Label')
16174					]))),
16175			_Utils_Tuple2(
16176			'Same as before but with noLeftClick',
16177			A2(
16178				$author$project$W$DataRow$view,
16179				_List_fromArray(
16180					[
16181						$author$project$W$DataRow$noLeftClick,
16182						$author$project$W$DataRow$href('/logAction/#'),
16183						$author$project$W$DataRow$header(
16184						_List_fromArray(
16185							[
16186								$elm$html$Html$text('Admin')
16187							])),
16188						$author$project$W$DataRow$footer(
16189						_List_fromArray(
16190							[
16191								$elm$html$Html$text('[email protected]')
16192							])),
16193						$author$project$W$DataRow$left(
16194						_List_fromArray(
16195							[$author$project$Chapters$Information$DataRow$viewCircle])),
16196						$author$project$W$DataRow$right(
16197						_List_fromArray(
16198							[
16199								A2(
16200								$author$project$W$Button$view,
16201								_List_fromArray(
16202									[$author$project$W$Button$primary]),
16203								{
16204									aK: _List_fromArray(
16205										[
16206											$elm$html$Html$text('Click me')
16207										]),
16208									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16209								})
16210							]))
16211					]),
16212				_List_fromArray(
16213					[
16214						$elm$html$Html$text('Label')
16215					]))),
16216			_Utils_Tuple2(
16217			'With Actions + Header + Footer + Left (Custom Padding + No Backgroun
16217d)',
16218			A2(
16219				$author$project$W$Container$view,
16220				_List_fromArray(
16221					[
16222						$author$project$W$Container$background(
16223						$uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.05))
16224					]),
16225				_List_fromArray(
16226					[
16227						A2(
16228						$author$project$W$DataRow$view,
16229						_List_fromArray(
16230							[
16231								$author$project$W$DataRow$noBackground,
16232								$author$project$W$DataRow$paddingX(44),
16233								$author$project$W$DataRow$paddingY(4),
16234								$author$project$W$DataRow$href('/logAction/#'),
16235								$author$project$W$DataRow$header(
16236								_List_fromArray(
16237									[
16238										$elm$html$Html$text('Admin')
16239									])),
16240								$author$project$W$DataRow$footer(
16241								_List_fromArray(
16242									[
16243										$elm$html$Html$text('[email protected]')
16244									])),
16245								$author$project$W$DataRow$left(
16246								_List_fromArray(
16247									[$author$project$Chapters$Information$DataRow$viewCircle])),
16248								$author$project$W$DataRow$right(
16249								_List_fromArray(
16250									[
16251										A2(
16252										$author$project$W$Button$view,
16253										_List_fromArray(
16254											[$author$project$W$Button$primary]),
16255										{
16256											aK: _List_fromArray(
16257												[
16258													$elm$html$Html$text('Click me')
16259												]),
16260											s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16261										})
16262									]))
16263							]),
16264						_List_fromArray(
16265							[
16266								$elm$html$Html$text('Label')
16267							]))
16268					]))),
16269			_Utils_Tuple2(
16270			'With Actions + Header + Footer + Left (Custom Gaps)',
16271			A2(
16272				$author$project$W$Container$view,
16273				_List_fromArray(
16274					[
16275						$author$project$W$Container$background(
16276						$uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.05))
16277					]),
16278				_List_fromArray(
16279					[
16280						A2(
16281						$author$project$W$DataRow$view,
16282						_List_fromArray(
16283							[
16284								$author$project$W$DataRow$gap(4),
16285								$author$project$W$DataRow$innerGap(12),
16286								$author$project$W$DataRow$href('/logAction/#'),
16287								$author$project$W$DataRow$header(
16288								_List_fromArray(
16289									[
16290										$elm$html$Html$text('Admin')
16291									])),
16292								$author$project$W$DataRow$footer(
16293								_List_fromArray(
16294									[
16295										$elm$html$Html$text('[email protected]')
16296									])),
16297								$author$project$W$DataRow$left(
16298								_List_fromArray(
16299									[$author$project$Chapters$Information$DataRow$viewCircle])),
16300								$author$project$W$DataRow$right(
16301								_List_fromArray(
16302									[
16303										A2(
16304										$author$project$W$Button$view,
16305										_List_Nil,
16306										{
16307											aK: _List_fromArray(
16308												[
16309													$elm$html$Html$text('Click me')
16310												]),
16311											s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16312										}),
16313										A2(
16314										$author$project$W$Button$view,
16315										_List_fromArray(
16316											[$author$project$W$Button$primary]),
16317										{
16318											aK: _List_fromArray(
16319												[
16320													$elm$html$Html$text('Click me')
16321												]),
16322											s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16323										})
16324									]))
16325							]),
16326						_List_fromArray(
16327							[
16328								$elm$html$Html$text('Label')
16329							]))
16330					]))),
16331			_Utils_Tuple2(
16332			'viewNext API',
16333			A2(
16334				$author$project$W$DataRow$viewNext,
16335				_List_fromArray(
16336					[
16337						$author$project$W$DataRow$href('/logAction/#')
16338					]),
16339				{
16340					ew: _List_fromArray(
16341						[
16342							$author$project$W$Loading$ripples(_List_Nil)
16343						]),
16344					eA: _List_fromArray(
16345						[
16346							$elm$html$Html$text('Label')
16347						]),
16348					eS: _List_fromArray(
16349						[
16350							A2(
16351							$author$project$W$Button$view,
16352							_List_fromArray(
16353								[$author$project$W$Button$primary]),
16354							{
16355								aK: _List_fromArray(
16356									[
16357										$elm$html$Html$text('Click me')
16358									]),
16359								s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16360							})
16361						])
16362				})),
16363			_Utils_Tuple2(
16364			'viewNextExtra API',
16365			A2(
16366				$author$project$W$DataRow$viewNextExtra,
16367				_List_fromArray(
16368					[
16369						$author$project$W$DataRow$href('/logAction/#')
16370					]),
16371				{
16372					fr: _List_fromArray(
16373						[
16374							$elm$html$Html$text('[email protected]')
16375						]),
16376					fz: _List_fromArray(
16377						[
16378							$elm$html$Html$text('Admin')
16379						]),
16380					ew: _List_fromArray(
16381						[$author$project$Chapters$Information$DataRow$viewCircle]),
16382					eA: _List_fromArray(
16383						[
16384							$elm$html$Html$text('Label')
16385						]),
16386					eS: _List_fromArray(
16387						[
16388							A2(
16389							$author$project$W$Button$view,
16390							_List_fromArray(
16391								[$author$project$W$Button$primary]),
16392							{
16393								aK: _List_fromArray(
16394									[
16395										$elm$html$Html$text('Click me')
16396									]),
16397								s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick Action')
16398							})
16399						])
16400				}))
16401		]),
16402	$dtwrks$elm_book$ElmBook$Chapter$chapter('DataRow'));
16403var $author$project$W$Menu$left = function (v) {
16404	return function (attrs) {
16405		return _Utils_update(
16406			attrs,
16407			{
16408				ew: $elm$core$Maybe$Just(v)
16409			});
16410	};
16411};
16412var $author$project$W$Menu$noPadding = function (attrs) {
16413	return _Utils_update(
16414		attrs,
16415		{W: false});
16416};
16417var $author$project$W$Menu$right = function (v) {
16418	return function (attrs) {
16419		return _Utils_update(
16420			attrs,
16421			{
16422				eS: $elm$core$Maybe$Just(v)
16423			});
16424	};
16425};
16426var $author$project$W$Menu$viewLink = F2(
16427	function (attrs_, props) {
16428		var attrs = $author$project$W$Menu$applyAttrs(attrs_);
16429		return A2(
16430			$elm$html$Html$a,
16431			_Utils_ap(
16432				$author$project$W$Menu$baseAttrs(attrs),
16433				_List_fromArray(
16434					[
16435						$elm$html$Html$Attributes$href(props.ei),
16436						$elm$html$Html$Attributes$class('ew-no-underline')
16437					])),
16438			A2($author$project$W$Menu$baseContent, attrs, props.aK));
16439	});
16440var $author$project$W$Menu$viewTitle = F2(
16441	function (attrs_, props) {
16442		var attrs = $author$project$W$Menu$applyAttrs(attrs_);
16443		return A2(
16444			$elm$html$Html$p,
16445			_List_fromArray(
16446				[
16447					$elm$html$Html$Attributes$class('ew-m-0 ew-flex ew-items-center'),
16448					$elm$html$Html$Attributes$class('ew-uppercase ew-text-xs ew-font-bold ew-font-text ew-text-base-aux'),
16449					attrs.W ? $uncover_co$elm_theme$Theme$styles(
16450					_List_fromArray(
16451						[
16452							_Utils_Tuple2('padding', 'var(--ew-menu-title-padding)')
16453						])) : $elm$html$Html$Attributes$class('')
16454				]),
16455			A2($author$project$W$Menu$baseContent, attrs, props.aK));
16456	});
16457var $author$project$Chapters$Information$Menu$items = _List_fromArray(
16458	[
16459		A2(
16460		$author$project$W$Menu$viewButton,
16461		_List_Nil,
16462		{
16463			aK: _List_fromArray(
16464				[
16465					$elm$html$Html$text('Click me')
16466				]),
16467			s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
16468		}),
16469		A2(
16470		$author$project$W$Menu$viewButton,
16471		_List_fromArray(
16472			[$author$project$W$Menu$noPadding]),
16473		{
16474			aK: _List_fromArray(
16475				[
16476					$elm$html$Html$text('Click me (no padding)')
16477				]),
16478			s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
16479		}),
16480		A2(
16481		$author$project$W$Menu$viewLink,
16482		_List_fromArray(
16483			[
16484				$author$project$W$Menu$left(
16485				_List_fromArray(
16486					[
16487						$elm$html$Html$text('L')
16488					]))
16489			]),
16490		{
16491			ei: '/logAction/#',
16492			aK: _List_fromArray(
16493				[
16494					$elm$html$Html$text('Link to')
16495				])
16496		}),
16497		A2(
16498		$author$project$W$Menu$viewTitle,
16499		_List_fromArray(
16500			[
16501				$author$project$W$Menu$left(
16502				_List_fromArray(
16503					[
16504						$elm$html$Html$text('T')
16505					])),
16506				$author$project$W$Menu$right(
16507				_List_fromArray(
16508					[
16509						$elm$html$Html$text('Edit')
16510					]))
16511			]),
16512		{
16513			aK: _List_fromArray(
16514				[
16515					$elm$html$Html$text('Title')
16516				])
16517		}),
16518		A2(
16519		$author$project$W$Menu$viewButton,
16520		_List_fromArray(
16521			[
16522				$author$project$W$Menu$selected(true)
16523			]),
16524		{
16525			aK: _List_fromArray(
16526				[
16527					$elm$html$Html$text('Click me')
16528				]),
16529			s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
16530		}),
16531		A2(
16532		$author$project$W$Menu$viewLink,
16533		_List_Nil,
16534		{
16535			ei: '/logAction/#',
16536			aK: _List_fromArray(
16537				[
16538					$elm$html$Html$text('Link to')
16539				])
16540		})
16541	]);
16542var $author$project$W$Menu$MenuAttribute = $elm$core$Basics$identity;
16543var $author$project$W$Menu$paddingX = function (v) {
16544	return function (attrs) {
16545		return _Utils_update(
16546			attrs,
16547			{
16548				W: {dZ: v, d_: attrs.W.d_}
16549			});
16550	};
16551};
16552var $author$project$Chapters$Information$Menu$chapter_ = A2(
16553	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
16554	_List_fromArray(
16555		[
16556			_Utils_Tuple2(
16557			'Default',
16558			$author$project$W$Menu$view($author$project$Chapters$Information$Menu$items)),
16559			_Utils_Tuple2(
16560			'Custom padding',
16561			A2(
16562				$author$project$W$Menu$viewCustom,
16563				_List_fromArray(
16564					[
16565						$author$project$W$Menu$paddingX(24)
16566					]),
16567				$author$project$Chapters$Information$Menu$items))
16568		]),
16569	$dtwrks$elm_book$ElmBook$Chapter$chapter('Menu'));
16570var $author$project$W$Message$Attribute = $elm$core$Basics$identity;
16571var $author$project$W$Message$borderWidth = function (v) {
16572	return function (attrs) {
16573		return _Utils_update(
16574			attrs,
16575			{bI: v});
16576	};
16577};
16578var $author$project$W$Message$color = function (v) {
16579	return function (attrs) {
16580		return _Utils_update(
16581			attrs,
16582			{U: v});
16583	};
16584};
16585var $author$project$W$Message$danger = function (attrs) {
16586	return _Utils_update(
16587		attrs,
16588		{U: $uncover_co$elm_theme$Theme$dangerForeground});
16589};
16590var $author$project$W$Message$footer = function (v) {
16591	return function (attrs) {
16592		return _Utils_update(
16593			attrs,
16594			{
16595				fr: $elm$core$Maybe$Just(v)
16596			});
16597	};
16598};
16599var $author$project$W$Message$href = function (v) {
16600	return function (attrs) {
16601		return _Utils_update(
16602			attrs,
16603			{
16604				ei: $elm$core$Maybe$Just(v)
16605			});
16606	};
16607};
16608var $author$project$W$Message$icon = function (v) {
16609	return function (attrs) {
16610		return _Utils_update(
16611			attrs,
16612			{
16613				b0: $elm$core$Maybe$Just(v)
16614			});
16615	};
16616};
16617var $author$project$W$Message$onClick = function (v) {
16618	return function (attrs) {
16619		return _Utils_update(
16620			attrs,
16621			{
16622				s: $elm$core$Maybe$Just(v)
16623			});
16624	};
16625};
16626var $author$project$W$Message$primary = function (attrs) {
16627	return _Utils_update(
16628		attrs,
16629		{U: $uncover_co$elm_theme$Theme$primaryForeground});
16630};
16631var $author$project$W$Message$secondary = function (attrs) {
16632	return _Utils_update(
16633		attrs,
16634		{U: $uncover_co$elm_theme$Theme$secondaryForeground});
16635};
16636var $author$project$W$Message$success = function (attrs) {
16637	return _Utils_update(
16638		attrs,
16639		{U: $uncover_co$elm_theme$Theme$successForeground});
16640};
16641var $author$project$W$Message$defaultAttrs = {bI: 6, U: $uncover_co$elm_theme$Theme$neutralForeground, fr: $elm$core$Maybe$Nothing, ei: $elm$core$Maybe$Nothing, b$: _List_Nil, b0: $elm$core$Maybe$Nothing, s: $elm$core$Maybe$Nothing};
16642var $author$project$W$Message$applyAttrs = function (attrs) {
16643	return A3(
16644		$elm$core$List$foldl,
16645		F2(
16646			function (_v0, a) {
16647				var fn = _v0;
16648				return fn(a);
16649			}),
16650		$author$project$W$Message$defaultAttrs,
16651		attrs);
16652};
16653var $author$project$W$Message$interactiveClass = $elm$html$Html$Attributes$class('ew-appearance-none ew-bg-transparent ew-no-underline ew-focusable-outline hover:before:ew-opacity-[0.05] active:before:ew-opacity-[0.03]');
16654var $author$project$W$Message$view = F2(
16655	function (attrs_, children_) {
16656		var attrs = $author$project$W$Message$applyAttrs(attrs_);
16657		var baseAttrs = _Utils_ap(
16658			attrs.b$,
16659			_List_fromArray(
16660				[
16661					$elm$html$Html$Attributes$class('ew-m-0 ew-box-border ew-relative'),
16662					$elm$html$Html$Attributes$class('ew-flex ew-gap-4 ew-w-full'),
16663					$elm$html$Html$Attributes$class('ew-font-text ew-text-base ew-font-medium'),
16664					$elm$html$Html$Attributes$class('ew-py-2 ew-px-4 ew-pr-6'),
16665					$elm$html$Html$Attributes$class('ew-bg-base-bg ew-rounded'),
16666					A2(
16667					$elm$html$Html$Attributes$style,
16668					'border-left-width',
16669					$elm$core$String$fromInt(attrs.bI) + 'px'),
16670					$elm$html$Html$Attributes$class('ew-border-solid ew-border-current'),
16671					A2($elm$html$Html$Attributes$style, 'color', attrs.U),
16672					$elm$html$Html$Attributes$class('before:ew-block before:ew-content-[\'\']'),
16673					$elm$html$Html$Attributes$class('before:ew-absolute before:ew-inset-0 ew-z-0'),
16674					$elm$html$Html$Attributes$class('before:ew-rounded-r before:ew-bg-current before:ew-opacity-[0.07]')
16675				]));
16676		var children = _List_fromArray(
16677			[
16678				A2(
16679				$author$project$W$Internal$Helpers$maybeHtml,
16680				function (i) {
16681					return A2($elm$html$Html$div, _List_Nil, i);
16682				},
16683				attrs.b0),
16684				A2(
16685				$elm$html$Html$div,
16686				_List_fromArray(
16687					[
16688						$elm$html$Html$Attributes$class('ew-flex ew-flex-col')
16689					]),
16690				_List_fromArray(
16691					[
16692						A2($elm$html$Html$div, _List_Nil, children_),
16693						A2(
16694						$author$project$W$Internal$Helpers$maybeHtml,
16695						$elm$html$Html$div(
16696							_List_fromArray(
16697								[
16698									$elm$html$Html$Attributes$class('ew-text-sm ew-font-normal')
16699								])),
16700						attrs.fr)
16701					]))
16702			]);
16703		var _v0 = _Utils_Tuple2(attrs.s, attrs.ei);
16704		if (!_v0.a.$) {
16705			var onClick_ = _v0.a.a;
16706			return A2(
16707				$elm$html$Html$button,
16708				_Utils_ap(
16709					baseAttrs,
16710					_List_fromArray(
16711						[
16712							$author$project$W$Message$interactiveClass,
16713							$elm$html$Html$Events$onClick(onClick_)
16714						])),
16715				children);
16716		} else {
16717			if (!_v0.b.$) {
16718				var _v1 = _v0.a;
16719				var href_ = _v0.b.a;
16720				return A2(
16721					$elm$html$Html$a,
16722					_Utils_ap(
16723						baseAttrs,
16724						_List_fromArray(
16725							[
16726								$author$project$W$Message$interactiveClass,
16727								$elm$html$Html$Attributes$href(href_)
16728							])),
16729					children);
16730			} else {
16731				return A2($elm$html$Html$div, baseAttrs, children);
16732			}
16733		}
16734	});
16735var $author$project$W$Message$warning = function (attrs) {
16736	return _Utils_update(
16737		attrs,
16738		{U: $uncover_co$elm_theme$Theme$warningForeground});
16739};
16740var $author$project$Chapters$Information$Message$chapter_ = A2(
16741	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
16742	A2(
16743		$elm$core$List$map,
16744		function (_v0) {
16745			var attrs = _v0.a;
16746			var label = _v0.b;
16747			return _Utils_Tuple2(
16748				label,
16749				$author$project$UI$vSpacer(
16750					_List_fromArray(
16751						[
16752							A2(
16753							$author$project$W$Message$view,
16754							attrs,
16755							_List_fromArray(
16756								[
16757									$elm$html$Html$text(label)
16758								])),
16759							A2(
16760							$author$project$W$Message$view,
16761							A2(
16762								$elm$core$List$cons,
16763								$author$project$W$Message$onClick(
16764									$dtwrks$elm_book$ElmBook$Actions$logAction('onClick')),
16765								attrs),
16766							_List_fromArray(
16767								[
16768									$elm$html$Html$text(label)
16769								])),
16770							A2(
16771							$author$project$W$Message$view,
16772							A2(
16773								$elm$core$List$cons,
16774								$author$project$W$Message$href('/logAction/#'),
16775								attrs),
16776							_List_fromArray(
16777								[
16778									$elm$html$Html$text(label)
16779								])),
16780							A2(
16781							$author$project$W$Message$view,
16782							_Utils_ap(
16783								attrs,
16784								_List_fromArray(
16785									[
16786										$author$project$W$Message$icon(
16787										_List_fromArray(
16788											[
16789												$elm$html$Html$text('i')
16790											])),
16791										$author$project$W$Message$footer(
16792										_List_fromArray(
16793											[
16794												$elm$html$Html$text('Footer')
16795											]))
16796									])),
16797							_List_fromArray(
16798								[
16799									$elm$html$Html$text(label)
16800								]))
16801						])));
16802		},
16803		_List_fromArray(
16804			[
16805				_Utils_Tuple2(_List_Nil, 'Neutral'),
16806				_Utils_Tuple2(
16807				_List_fromArray(
16808					[$author$project$W$Message$primary]),
16809				'Primary'),
16810				_Utils_Tuple2(
16811				_List_fromArray(
16812					[$author$project$W$Message$secondary]),
16813				'Secondary'),
16814				_Utils_Tuple2(
16815				_List_fromArray(
16816					[$author$project$W$Message$success]),
16817				'Success'),
16818				_Utils_Tuple2(
16819				_List_fromArray(
16820					[$author$project$W$Message$warning]),
16821				'Warning'),
16822				_Utils_Tuple2(
16823				_List_fromArray(
16824					[$author$project$W$Message$danger]),
16825				'Danger'),
16826				_Utils_Tuple2(
16827				_List_fromArray(
16828					[
16829						$author$project$W$Message$color('purple')
16830					]),
16831				'Custom'),
16832				_Utils_Tuple2(
16833				_List_fromArray(
16834					[
16835						$author$project$W$Message$borderWidth(0)
16836					]),
16837				'No border'),
16838				_Utils_Tuple2(
16839				_List_fromArray(
16840					[
16841						$author$project$W$Message$borderWidth(12)
16842					]),
16843				'Increased border')
16844			])),
16845	$dtwrks$elm_book$ElmBook$Chapter$chapter('Message'));
16846var $author$project$W$Notification$Attribute = $elm$core$Basics$identity;
16847var $author$project$W$Notification$color = function (v) {
16848	return function (attrs) {
16849		return _Utils_update(
16850			attrs,
16851			{U: v});
16852	};
16853};
16854var $author$project$W$Notification$danger = function (attrs) {
16855	return _Utils_update(
16856		attrs,
16857		{U: $uncover_co$elm_theme$Them
16857e$dangerForeground});
16858};
16859var $author$project$W$Notification$footer = function (v) {
16860	return function (attrs) {
16861		return _Utils_update(
16862			attrs,
16863			{
16864				fr: $elm$core$Maybe$Just(v)
16865			});
16866	};
16867};
16868var $author$project$W$Notification$href = function (v) {
16869	return function (attrs) {
16870		return _Utils_update(
16871			attrs,
16872			{
16873				ei: $elm$core$Maybe$Just(v)
16874			});
16875	};
16876};
16877var $author$project$W$Notification$icon = function (v) {
16878	return function (attrs) {
16879		return _Utils_update(
16880			attrs,
16881			{
16882				b0: $elm$core$Maybe$Just(v)
16883			});
16884	};
16885};
16886var $author$project$W$Notification$onClick = function (v) {
16887	return function (attrs) {
16888		return _Utils_update(
16889			attrs,
16890			{
16891				s: $elm$core$Maybe$Just(v)
16892			});
16893	};
16894};
16895var $author$project$W$Notification$onClose = function (v) {
16896	return function (attrs) {
16897		return _Utils_update(
16898			attrs,
16899			{
16900				eD: $elm$core$Maybe$Just(v)
16901			});
16902	};
16903};
16904var $author$project$W$Notification$primary = function (attrs) {
16905	return _Utils_update(
16906		attrs,
16907		{U: $uncover_co$elm_theme$Theme$primaryForeground});
16908};
16909var $author$project$W$Notification$secondary = function (attrs) {
16910	return _Utils_update(
16911		attrs,
16912		{U: $uncover_co$elm_theme$Theme$secondaryForeground});
16913};
16914var $author$project$W$Notification$success = function (attrs) {
16915	return _Utils_update(
16916		attrs,
16917		{U: $uncover_co$elm_theme$Theme$successForeground});
16918};
16919var $author$project$W$Notification$defaultAttrs = {U: $uncover_co$elm_theme$Theme$neutralForeground, fr: $elm$core$Maybe$Nothing, ei: $elm$core$Maybe$Nothing, b$: _List_Nil, b0: $elm$core$Maybe$Nothing, s: $elm$core$Maybe$Nothing, eD: $elm$core$Maybe$Nothing};
16920var $author$project$W$Notification$applyAttrs = function (attrs) {
16921	return A3(
16922		$elm$core$List$foldl,
16923		F2(
16924			function (_v0, a) {
16925				var fn = _v0;
16926				return fn(a);
16927			}),
16928		$author$project$W$Notification$defaultAttrs,
16929		attrs);
16930};
16931var $author$project$W$Notification$interactiveClass = $elm$html$Html$Attributes$class('ew-appearance-none ew-bg-transparent ew-no-underline ew-focusable hover:before:ew-opacity-[0.05] active:before:ew-opacity-10');
16932var $author$project$W$Notification$view = F2(
16933	function (attrs_, children_) {
16934		var attrs = $author$project$W$Notification$applyAttrs(attrs_);
16935		var baseAttrs = _Utils_ap(
16936			attrs.b$,
16937			_List_fromArray(
16938				[
16939					$elm$html$Html$Attributes$class('ew-m-0 ew-box-border ew-relative ew-text-left'),
16940					$elm$html$Html$Attributes$class('ew-flex ew-w-full ew-items-center'),
16941					$elm$html$Html$Attributes$class('ew-font-text ew-text-base ew-font-medium'),
16942					$elm$html$Html$Attributes$class('ew-pb-2 ew-pt-3.5 ew-px-6'),
16943					$elm$html$Html$Attributes$class('ew-min-h-[60px]'),
16944					$elm$html$Html$Attributes$class('ew-bg-base-bg ew-rounded-md ew-shadow-lg'),
16945					$elm$html$Html$Attributes$class('ew-border-solid ew-border-base-aux/10 ew-border'),
16946					$elm$html$Html$Attributes$class('before:ew-content-[\'\'] before:ew-block before:ew-rounded'),
16947					$elm$html$Html$Attributes$class('before:ew-absolute before:ew-inset-0 before:ew-bg-current before:ew-opacity-0'),
16948					$elm$html$Html$Attributes$class('after:ew-content-[\'\'] after:ew-block'),
16949					$elm$html$Html$Attributes$class('after:ew-absolute after:ew-top-0 after:ew-inset-x-0 after:ew-rounded-t'),
16950					$elm$html$Html$Attributes$class('after:ew-h-1.5 after:ew-bg-current'),
16951					A2($elm$html$Html$Attributes$style, 'color', attrs.U)
16952				]));
16953		var children = A2(
16954			$elm$html$Html$div,
16955			_List_fromArray(
16956				[
16957					$elm$html$Html$Attributes$class('ew-flex ew-gap-6 ew-items-center ew-w-full ew-relative ew-z-10')
16958				]),
16959			_List_fromArray(
16960				[
16961					A2(
16962					$author$project$W$Internal$Helpers$maybeHtml,
16963					$elm$html$Html$div(
16964						_List_fromArray(
16965							[
16966								$elm$html$Html$Attributes$class('ew-shrink-0 ew-flex ew-items-center')
16967							])),
16968					attrs.b0),
16969					A2(
16970					$elm$html$Html$div,
16971					_List_fromArray(
16972						[
16973							$elm$html$Html$Attributes$class('ew-grow ew-flex ew-flex-col')
16974						]),
16975					_List_fromArray(
16976						[
16977							A2($elm$html$Html$div, _List_Nil, children_),
16978							A2(
16979							$author$project$W$Internal$Helpers$maybeHtml,
16980							$elm$html$Html$div(
16981								_List_fromArray(
16982									[
16983										$elm$html$Html$Attributes$class('ew-text-sm ew-font-normal ew-text-base-aux')
16984									])),
16985							attrs.fr)
16986						])),
16987					A2(
16988					$author$project$W$Internal$Helpers$maybeHtml,
16989					function (onClose_) {
16990						return A2(
16991							$elm$html$Html$div,
16992							_List_fromArray(
16993								[
16994									$elm$html$Html$Attributes$class('ew-shrink-0 ew-flex ew-items-center')
16995								]),
16996							_List_fromArray(
16997								[
16998									A2(
16999									$author$project$W$Button$view,
17000									_List_fromArray(
17001										[$author$project$W$Button$invisible, $author$project$W$Button$icon, $author$project$W$Button$small]),
17002									{
17003										aK: _List_fromArray(
17004											[
17005												$elm$html$Html$text('x')
17006											]),
17007										s: onClose_
17008									})
17009								]));
17010					},
17011					attrs.eD)
17012				]));
17013		var _v0 = _Utils_Tuple2(attrs.s, attrs.ei);
17014		if (!_v0.a.$) {
17015			var onClick_ = _v0.a.a;
17016			return A2(
17017				$elm$html$Html$button,
17018				_Utils_ap(
17019					baseAttrs,
17020					_List_fromArray(
17021						[
17022							$author$project$W$Notification$interactiveClass,
17023							$elm$html$Html$Events$onClick(onClick_)
17024						])),
17025				_List_fromArray(
17026					[children]));
17027		} else {
17028			if (!_v0.b.$) {
17029				var _v1 = _v0.a;
17030				var href_ = _v0.b.a;
17031				return A2(
17032					$elm$html$Html$a,
17033					_Utils_ap(
17034						baseAttrs,
17035						_List_fromArray(
17036							[
17037								$author$project$W$Notification$interactiveClass,
17038								$elm$html$Html$Attributes$href(href_)
17039							])),
17040					_List_fromArray(
17041						[children]));
17042			} else {
17043				return A2(
17044					$elm$html$Html$div,
17045					baseAttrs,
17046					_List_fromArray(
17047						[children]));
17048			}
17049		}
17050	});
17051var $author$project$W$Notification$warning = function (attrs) {
17052	return _Utils_update(
17053		attrs,
17054		{U: $uncover_co$elm_theme$Theme$warningForeground});
17055};
17056var $author$project$Chapters$Information$Notification$chapter_ = A2(
17057	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
17058	A2(
17059		$elm$core$List$map,
17060		function (_v0) {
17061			var attrs = _v0.a;
17062			var label = _v0.b;
17063			return _Utils_Tuple2(
17064				label,
17065				$author$project$UI$vSpacer(
17066					_List_fromArray(
17067						[
17068							A2(
17069							$author$project$W$Notification$view,
17070							attrs,
17071							_List_fromArray(
17072								[
17073									$elm$html$Html$text(label)
17074								])),
17075							A2(
17076							$author$project$W$Notification$view,
17077							A2(
17078								$elm$core$List$cons,
17079								$author$project$W$Notification$onClick(
17080									$dtwrks$elm_book$ElmBook$Actions$logAction('onClick')),
17081								attrs),
17082							_List_fromArray(
17083								[
17084									$elm$html$Html$text(label)
17085								])),
17086							A2(
17087							$author$project$W$Notification$view,
17088							A2(
17089								$elm$core$List$cons,
17090								$author$project$W$Notification$onClose(
17091									$dtwrks$elm_book$ElmBook$Actions$logAction('onClose')),
17092								attrs),
17093							_List_fromArray(
17094								[
17095									$elm$html$Html$text(label)
17096								])),
17097							A2(
17098							$author$project$W$Notification$view,
17099							A2(
17100								$elm$core$List$cons,
17101								$author$project$W$Notification$href('/logAction/#'),
17102								attrs),
17103							_List_fromArray(
17104								[
17105									$elm$html$Html$text(label)
17106								])),
17107							A2(
17108							$author$project$W$Notification$view,
17109							_Utils_ap(
17110								attrs,
17111								_List_fromArray(
17112									[
17113										$author$project$W$Notification$icon(
17114										_List_fromArray(
17115											[
17116												$elm$html$Html$text('i')
17117											])),
17118										$author$project$W$Notification$footer(
17119										_List_fromArray(
17120											[
17121												$elm$html$Html$text('Footer')
17122											]))
17123									])),
17124							_List_fromArray(
17125								[
17126									$elm$html$Html$text(label)
17127								]))
17128						])));
17129		},
17130		_List_fromArray(
17131			[
17132				_Utils_Tuple2(_List_Nil, 'Neutral'),
17133				_Utils_Tuple2(
17134				_List_fromArray(
17135					[$author$project$W$Notification$primary]),
17136				'Primary'),
17137				_Utils_Tuple2(
17138				_List_fromArray(
17139					[$author$project$W$Notification$secondary]),
17140				'Secondary'),
17141				_Utils_Tuple2(
17142				_List_fromArray(
17143					[$author$project$W$Notification$success]),
17144				'Success'),
17145				_Utils_Tuple2(
17146				_List_fromArray(
17147					[$author$project$W$Notification$warning]),
17148				'Warning'),
17149				_Utils_Tuple2(
17150				_List_fromArray(
17151					[$author$project$W$Notification$danger]),
17152				'Danger'),
17153				_Utils_Tuple2(
17154				_List_fromArray(
17155					[
17156						$author$project$W$Notification$color('purple')
17157					]),
17158				'Custom')
17159			])),
17160	$dtwrks$elm_book$ElmBook$Chapter$chapter('Notification'));
17161var $author$project$W$Pagination$Attribute = $elm$core$Basics$identity;
17162var $author$project$W$Pagination$separator = function (v) {
17163	return function (attrs) {
17164		return _Utils_update(
17165			attrs,
17166			{bl: v});
17167	};
17168};
17169var $author$project$W$Pagination$defaultAttrs = {
17170	b$: _List_Nil,
17171	bl: _List_fromArray(
17172		[
17173			A2(
17174			$elm$html$Html$span,
17175			_List_fromArray(
17176				[
17177					$elm$html$Html$Attributes$class('ew-relative -ew-top-px')
17178				]),
17179			_List_fromArray(
17180				[
17181					$elm$html$Html$text('—')
17182				]))
17183		])
17184};
17185var $author$project$W$Pagination$applyAttrs = function (attrs) {
17186	return A3(
17187		$elm$core$List$foldl,
17188		F2(
17189			function (_v0, a) {
17190				var fn = _v0;
17191				return fn(a);
17192			}),
17193		$author$project$W$Pagination$defaultAttrs,
17194		attrs);
17195};
17196var $author$project$W$Internal$Pagination$toPages = F2(
17197	function (active, total) {
17198		return ((active < 1) || (_Utils_cmp(active, total) > 0)) ? $elm$core$Result$Err('Active must be larger than 1 and less or equal length') : $elm$core$Result$Ok(
17199			(total <= 7) ? A2($elm$core$List$range, 1, total) : (((total - active) <= 3) ? _List_fromArray(
17200				[1, -1, total - 4, total - 3, total - 2, total - 1, total]) : ((active <= 4) ? _List_fromArray(
17201				[1, 2, 3, 4, 5, -1, total]) : _List_fromArray(
17202				[1, -1, active - 1, active, active + 1, -1, total]))));
17203	});
17204var $author$project$W$Pagination$viewWrapper = function (attrs) {
17205	return $elm$html$Html$div(
17206		A2(
17207			$elm$core$List$cons,
17208			$elm$html$Html$Attributes$class('ew-flex ew-items-center ew-font-primary ew-space-x-2 ew-text-base-aux'),
17209			attrs));
17210};
17211var $author$project$W$Pagination$view = F2(
17212	function (attrs_, props) {
17213		var _v0 = A2($author$project$W$Internal$Pagination$toPages, props.cS, props.dT);
17214		if (!_v0.$) {
17215			var pages = _v0.a;
17216			var attrs = $author$project$W$Pagination$applyAttrs(attrs_);
17217			return A2(
17218				$author$project$W$Pagination$viewWrapper,
17219				attrs.b$,
17220				A2(
17221					$elm$core$List$map,
17222					function (page) {
17223						return (!_Utils_eq(page, -1)) ? A2(
17224							$author$project$W$Button$view,
17225							_List_fromArray(
17226								[
17227									$author$project$W$Button$small,
17228									$author$project$W$Button$icon,
17229									_Utils_eq(page, props.cS) ? $author$project$W$Button$primary : $author$project$W$Button$invisible
17230								]),
17231							{
17232								aK: _List_fromArray(
17233									[
17234										$elm$html$Html$text(
17235										$elm$core$String$fromInt(page))
17236									]),
17237								s: props.s(page)
17238							}) : A2(
17239							$elm$html$Html$span,
17240							_List_fromArray(
17241								[
17242									$elm$html$Html$Attributes$class('ew-inline-flex ew-items-center ew-leading-none')
17243								]),
17244							attrs.bl);
17245					},
17246					pages));
17247		} else {
17248			var errorMessage = _v0.a;
17249			return $elm$html$Html$text(errorMessage);
17250		}
17251	});
17252var $author$project$Chapters$Information$Pagination$chapter_ = A2(
17253	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
17254	_List_fromArray(
17255		[
17256			_Utils_Tuple2(
17257			'Small amount of pages',
17258			A2(
17259				$author$project$W$Pagination$view,
17260				_List_Nil,
17261				{
17262					cS: 1,
17263					s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
17264					dT: 3
17265				})),
17266			_Utils_Tuple2(
17267			'medium amount of pages',
17268			A2(
17269				$author$project$W$Pagination$view,
17270				_List_Nil,
17271				{
17272					cS: 5,
17273					s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
17274					dT: 8
17275				})),
17276			_Utils_Tuple2(
17277			'big number of pages',
17278			A2(
17279				$author$project$W$Pagination$view,
17280				_List_fromArray(
17281					[
17282						$author$project$W$Pagination$separator(
17283						_List_fromArray(
17284							[
17285								$elm$html$Html$text('...')
17286							]))
17287					]),
17288				{
17289					cS: 10,
17290					s: A2($dtwrks$elm_book$ElmBook$Actions$logActionWith, $elm$core$String$fromInt, 'onClick'),
17291					dT: 9999
17292				}))
17293		]),
17294	$dtwrks$elm_book$ElmBook$Chapter$chapter('Pagination'));
17295var $author$project$Chapters$Information$Popover$Show = 0;
17296var $author$project$W$Popover$Attribute = $elm$core$Basics$identity;
17297var $author$project$W$Popover$BottomRight = 7;
17298var $author$project$W$Popover$bottomRight = function (attrs) {
17299	return _Utils_update(
17300		attrs,
17301		{Q: 7});
17302};
17303var $author$project$W$Popover$offset = function (v) {
17304	return function (attrs) {
17305		return _Utils_update(
17306			attrs,
17307			{cf: v});
17308	};
17309};
17310var $author$project$W$Popover$RightTop = 4;
17311var $author$project$W$Popover$right = function (attrs) {
17312	return _Utils_update(
17313		attrs,
17314		{Q: 4});
17315};
17316var $author$project$W$Popover$showOnHover = function (attrs) {
17317	return _Utils_update(
17318		attrs,
17319		{cE: true});
17320};
17321var $author$project$W$Button$viewDummy = F2(
17322	function (attrs_, children) {
17323		var attrs = $author$project$W$Button$applyAttrs(attrs_);
17324		return A2(
17325			$elm$html$Html$div,
17326			A2(
17327				$elm$core$List$cons,
17328				$elm$html$Html$Attributes$tabindex(0),
17329				A2(
17330					$elm$core$List$cons,
17331					$elm$html$Html$Attributes$class('ew-cursor-default'),
17332					$author$project$W$Button$attributes(attrs))),
17333			children);
17334	});
17335var $author$project$W$Menu$viewDummy = F2(
17336	function (attrs_, label) {
17337		var attrs = $author$project$W$Menu$applyAttrs(attrs_);
17338		return A2(
17339			$elm$html$Html$div,
17340			_Utils_ap(
17341				$author$project$W$Menu$baseAttrs(attrs),
17342				_List_fromArray(
17343					[
17344						$elm$html$Html$Attributes$class('ew-border-0 ew-focusable'),
17345						$elm$html$Html$Attributes$tabindex(0)
17346					])),
17347			A2($author$project$W$Menu$baseContent, attrs, label));
17348	});
17349var $author$project$W$Popover$BottomLeft = 6;
17350var $author$project$W$Popover$defaultAttrs = {
17351	bW: false,
17352	b$: _List_Nil,
17353	ad: $elm$core$Maybe$Nothing,
17354	cf: 0,
17355	aO: false,
17356	cs: false,
17357	Q: 6,
17358	cE: false,
17359	dW: false,
17360	bC: _Utils_Tuple2('width', 'auto')
17361};
17362var $author$project$W$Popover$applyAttrs = function (attrs) {
17363	return A3(
17364		$elm$core$List$foldl,
17365		F2(
17366			function (_v0, a) {
17367				var fn = _v0;
17368				return fn(a);
17369			}),
17370		$author$project$W$Popover$defaultAttrs,
17371		attrs);
17372};
17373var $author$project$W$Popover$view = F2(
17374	function (attrs_, props) {
17375		var offsetValue = '100%';
17376		var attrs = $author$project$W$Popover$applyAttrs(attrs_);
17377		var crossAnchor = function (x) {
17378			return attrs.bW ? A2($elm$html$Html$Attributes$style, x, '0') : A2($elm$html$Html$Attributes$style, x, 'auto');
17379		};
17380		var offsetIfOver = attrs.aO ? '0' : offsetValue;
17381		var offsetPx = attrs.aO ? '0' : ($elm$core$String$fromFloat(attrs.cf) + 'px');
17382		var positionAttrs = function () {
17383			var _v1 = attrs.Q;
17384			switch (_v1) {
17385				case 0:
17386					return _List_fromArray(
17387						[
17388							A2($elm$html$Html$Attributes$style, 'left', '0'),
17389							A2($elm$html$Html$Attributes$style, 'bottom', offsetIfOver),
17390							A2($elm$html$Html$Attributes$style, 'padding-bottom', offsetPx),
17391							crossAnchor('right')
17392						]);
17393				case 1:
17394					return _List_fromArray(
17395						[
17396							A2($elm$html$Html$Attributes$style, 'right', '0'),
17397							A2($elm$html$Html$Attributes$style, 'bottom', offsetIfOver),
17398							A2($elm$html$Html$Attributes$style, 'padding-bottom', offsetPx),
17399							crossAnchor('left')
17400						]);
17401				case 6:
17402					return _List_fromArray(
17403						[
17404							A2($elm$html$Html$Attributes$style, 'left', '0'),
17405							A2($elm$html$Html$Attributes$style, 'top', offsetIfOver),
17406							A2($elm$html$Html$Attributes$style, 'padding-top', offsetPx),
17407							crossAnchor('right')
17408						]);
17409				case 7:
17410					return _List_fromArray(
17411						[
17412							A2($elm$html$Html$Attributes$style, 'right', '0'),
17413							A2($elm$html$Html$Attributes$style, 'top', offsetIfOver),
17414							A2($elm$html$Html$Attributes$style, 'padding-top', offsetPx),
17415							crossAnchor('left')
17416						]);
17417				case 2:
17418					return _List_fromArray(
17419						[
17420							A2($elm$html$Html$Attributes$style, 'right', offsetValue),
17421							A2($elm$html$Html$Attributes$style, 'top', '0'),
17422							A2($elm$html$Html$Attributes$style, 'padding-right', offsetPx)
17423						]);
17424				case 3:
17425					return _List_fromArray(
17426						[
17427							A2($elm$html$Html$Attributes$style, 'right', offsetValue),
17428							A2($elm$html$Html$Attrib
17428utes$style, 'bottom', '0'),
17429							A2($elm$html$Html$Attributes$style, 'padding-right', offsetPx)
17430						]);
17431				case 4:
17432					return _List_fromArray(
17433						[
17434							A2($elm$html$Html$Attributes$style, 'left', offsetValue),
17435							A2($elm$html$Html$Attributes$style, 'top', '0'),
17436							A2($elm$html$Html$Attributes$style, 'padding-left', offsetPx)
17437						]);
17438				default:
17439					return _List_fromArray(
17440						[
17441							A2($elm$html$Html$Attributes$style, 'left', offsetValue),
17442							A2($elm$html$Html$Attributes$style, 'bottom', '0'),
17443							A2($elm$html$Html$Attributes$style, 'padding-left', offsetPx)
17444						]);
17445			}
17446		}();
17447		return A2(
17448			$elm$html$Html$div,
17449			_List_fromArray(
17450				[
17451					$elm$html$Html$Attributes$class('ew-popover ew-inline-flex ew-relative'),
17452					function () {
17453					var _v0 = attrs.ad;
17454					if (!_v0.$) {
17455						var isOpen_ = _v0.a;
17456						return $elm$html$Html$Attributes$classList(
17457							_List_fromArray(
17458								[
17459									_Utils_Tuple2('ew-is-open', isOpen_),
17460									_Utils_Tuple2('ew-is-closed', !isOpen_)
17461								]));
17462					} else {
17463						return $elm$html$Html$Attributes$classList(
17464							_List_fromArray(
17465								[
17466									_Utils_Tuple2('ew-show-on-hover', attrs.cE),
17467									_Utils_Tuple2('ew-persistent', attrs.cs)
17468								]));
17469					}
17470				}()
17471				]),
17472			_List_fromArray(
17473				[
17474					A2(
17475					$elm$html$Html$div,
17476					_List_fromArray(
17477						[
17478							$elm$html$Html$Attributes$class('ew-popover-trigger ew-w-full')
17479						]),
17480					props.cY),
17481					A2(
17482					$elm$html$Html$div,
17483					_Utils_ap(
17484						positionAttrs,
17485						_List_fromArray(
17486							[
17487								$elm$html$Html$Attributes$class('ew-popover-content ew-absolute ew-z-[9999] shrink-0'),
17488								$elm$html$Html$Attributes$classList(
17489								_List_fromArray(
17490									[
17491										_Utils_Tuple2('ew-min-w-full', attrs.aO)
17492									]))
17493							])),
17494					_List_fromArray(
17495						[
17496							A2(
17497							$elm$html$Html$div,
17498							_Utils_ap(
17499								attrs.b$,
17500								_List_fromArray(
17501									[
17502										$elm$html$Html$Attributes$class('ew-overflow-visible'),
17503										$uncover_co$elm_theme$Theme$styles(
17504										_List_fromArray(
17505											[attrs.bC])),
17506										$elm$html$Html$Attributes$classList(
17507										_List_fromArray(
17508											[
17509												_Utils_Tuple2('ew-bg-base-bg ew-rounded-sm ew-border-solid ew-border ew-border-base-aux/20 ew-shadow-lg', !attrs.dW)
17510											]))
17511									])),
17512							props.c$)
17513						]))
17514				]));
17515	});
17516var $author$project$W$Popover$viewNext = F2(
17517	function (attrs, props) {
17518		return A2(
17519			$author$project$W$Popover$view,
17520			attrs,
17521			{cY: props.dU, c$: props.c$});
17522	});
17523var $author$project$W$Popover$width = function (v) {
17524	return function (attrs) {
17525		return _Utils_update(
17526			attrs,
17527			{
17528				bC: _Utils_Tuple2(
17529					'width',
17530					$elm$core$String$fromInt(v) + 'px')
17531			});
17532	};
17533};
17534var $author$project$Chapters$Information$Popover$children = function (label) {
17535	return {
17536		c$: _List_fromArray(
17537			[
17538				A2(
17539				$author$project$W$Container$view,
17540				_List_fromArray(
17541					[$author$project$W$Container$card]),
17542				_List_fromArray(
17543					[
17544						$author$project$W$Menu$view(
17545						_List_fromArray(
17546							[
17547								A2(
17548								$author$project$W$Menu$viewButton,
17549								_List_Nil,
17550								{
17551									aK: _List_fromArray(
17552										[
17553											$elm$html$Html$text('Item')
17554										]),
17555									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
17556								}),
17557								A2(
17558								$author$project$W$Menu$viewButton,
17559								_List_Nil,
17560								{
17561									aK: _List_fromArray(
17562										[
17563											$elm$html$Html$text('Item')
17564										]),
17565									s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
17566								}),
17567								A2($author$project$W$Divider$view, _List_Nil, _List_Nil),
17568								A2(
17569								$author$project$W$Popover$viewNext,
17570								_List_fromArray(
17571									[
17572										$author$project$W$Popover$showOnHover,
17573										$author$project$W$Popover$right,
17574										$author$project$W$Popover$width(80),
17575										$author$project$W$Popover$offset(4)
17576									]),
17577								{
17578									c$: _List_fromArray(
17579										[
17580											A2(
17581											$author$project$W$Menu$viewButton,
17582											_List_Nil,
17583											{
17584												aK: _List_fromArray(
17585													[
17586														$elm$html$Html$text('Item')
17587													]),
17588												s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
17589											}),
17590											A2(
17591											$author$project$W$Menu$viewButton,
17592											_List_Nil,
17593											{
17594												aK: _List_fromArray(
17595													[
17596														$elm$html$Html$text('Item')
17597													]),
17598												s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
17599											})
17600										]),
17601									dU: _List_fromArray(
17602										[
17603											A2(
17604											$author$project$W$Menu$viewDummy,
17605											_List_Nil,
17606											_List_fromArray(
17607												[
17608													$elm$html$Html$text('Item')
17609												]))
17610										])
17611								})
17612							]))
17613					]))
17614			]),
17615		dU: _List_fromArray(
17616			[
17617				A2(
17618				$author$project$W$Button$viewDummy,
17619				_List_Nil,
17620				_List_fromArray(
17621					[
17622						$elm$html$Html$text(label)
17623					]))
17624			])
17625	};
17626};
17627var $author$project$W$Text$color = function (v) {
17628	return function (attrs) {
17629		return _Utils_update(
17630			attrs,
17631			{U: v});
17632	};
17633};
17634var $author$project$W$Popover$full = function (v) {
17635	return function (attrs) {
17636		return _Utils_update(
17637			attrs,
17638			{bW: v});
17639	};
17640};
17641var $author$project$W$Popover$LeftTop = 2;
17642var $author$project$W$Popover$left = function (attrs) {
17643	return _Utils_update(
17644		attrs,
17645		{Q: 2});
17646};
17647var $author$project$W$Popover$LeftBottom = 3;
17648var $author$project$W$Popover$leftBottom = function (attrs) {
17649	return _Utils_update(
17650		attrs,
17651		{Q: 3});
17652};
17653var $author$project$W$Popover$over = function (attrs) {
17654	return _Utils_update(
17655		attrs,
17656		{aO: true});
17657};
17658var $author$project$W$Popover$persistent = function (attrs) {
17659	return _Utils_update(
17660		attrs,
17661		{cs: true});
17662};
17663var $author$project$W$Popover$RightBottom = 5;
17664var $author$project$W$Popover$rightBottom = function (attrs) {
17665	return _Utils_update(
17666		attrs,
17667		{Q: 5});
17668};
17669var $author$project$W$Container$shadow = $author$project$W$Container$addClass('ew-shadow');
17670var $author$project$W$Popover$TopLeft = 0;
17671var $author$project$W$Popover$top = function (attrs) {
17672	return _Utils_update(
17673		attrs,
17674		{Q: 0});
17675};
17676var $author$project$W$Popover$TopRight = 1;
17677var $author$project$W$Popover$topRight = function (attrs) {
17678	return _Utils_update(
17679		attrs,
17680		{Q: 1});
17681};
17682var $author$project$Chapters$Information$Popover$Tick = 1;
17683var $author$project$Chapters$Information$Popover$scheduleTick = A2(
17684	$elm$core$Task$perform,
17685	function (_v0) {
17686		return 1;
17687	},
17688	$elm$core$Process$sleep(1000));
17689var $author$project$Chapters$Information$Popover$update = F2(
17690	function (msg, model) {
17691		if (!msg) {
17692			return _Utils_Tuple2(
17693				_Utils_update(
17694					model,
17695					{ad: true, ar: 5}),
17696				$author$project$Chapters$Information$Popover$scheduleTick);
17697		} else {
17698			return (model.ar === 1) ? _Utils_Tuple2(
17699				_Utils_update(
17700					model,
17701					{ad: false}),
17702				$elm$core$Platform$Cmd$none) : _Utils_Tuple2(
17703				_Utils_update(
17704					model,
17705					{ar: model.ar - 1}),
17706				$author$project$Chapters$Information$Popover$scheduleTick);
17707		}
17708	});
17709var $author$project$W$Popover$isOpen = function (v) {
17710	return function (attrs) {
17711		return _Utils_update(
17712			attrs,
17713			{
17714				ad: $elm$core$Maybe$Just(v)
17715			});
17716	};
17717};
17718var $author$project$W$Popover$viewControlled = F2(
17719	function (attrs, props) {
17720		return A2(
17721			$author$project$W$Popover$view,
17722			A2(
17723				$elm$core$List$cons,
17724				$author$project$W$Popover$isOpen(props.ad),
17725				attrs),
17726			{cY: props.dU, c$: props.c$});
17727	});
17728var $dtwrks$elm_book$ElmBook$Chapter$withStatefulComponent = F2(
17729	function (view_, _v0) {
17730		var builder = _v0;
17731		return _Utils_update(
17732			builder,
17733			{
17734				m: A2(
17735					$elm$core$List$cons,
17736					{
17737						aK: '',
17738						cP: $dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterComponentViewStateful(view_)
17739					},
17740					builder.m)
17741			});
17742	});
17743var $author$project$Chapters$Information$Popover$chapter_ = A2(
17744	$dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList,
17745	'',
17746	A2(
17747		$dtwrks$elm_book$ElmBook$Chapter$withStatefulComponent,
17748		function (_v1) {
17749			var popover = _v1.dx;
17750			return A2(
17751				$elm$html$Html$map,
17752				$dtwrks$elm_book$ElmBook$Actions$mapUpdateWithCmd(
17753					{
17754						fv: function ($) {
17755							return $.dx;
17756						},
17757						gu: F2(
17758							function (state, m) {
17759								return _Utils_update(
17760									state,
17761									{dx: m});
17762							}),
17763						gx: $author$project$Chapters$Information$Popover$update
17764					}),
17765				A2(
17766					$author$project$W$Popover$viewControlled,
17767					_List_fromArray(
17768						[
17769							$author$project$W$Popover$right,
17770							$author$project$W$Popover$offset(4),
17771							$author$project$W$Popover$width(160)
17772						]),
17773					{
17774						c$: _List_fromArray(
17775							[
17776								A2(
17777								$author$project$W$Container$view,
17778								_List_fromArray(
17779									[
17780										$author$project$W$Container$pad_4,
17781										$author$project$W$Container$shadow,
17782										$author$project$W$Container$extraRounded,
17783										$author$project$W$Container$background($uncover_co$elm_theme$Theme$warningBackground)
17784									]),
17785								_List_fromArray(
17786									[
17787										A2(
17788										$author$project$W$Text$view,
17789										_List_fromArray(
17790											[
17791												$author$project$W$Text$color($uncover_co$elm_theme$Theme$warningForeground)
17792											]),
17793										_List_fromArray(
17794											[
17795												$elm$html$Html$text('I\'ll only close when I want to.')
17796											]))
17797									]))
17798							]),
17799						ad: popover.ad,
17800						dU: _List_fromArray(
17801							[
17802								A2(
17803								$author$project$W$Button$view,
17804								_List_fromArray(
17805									[
17806										$author$project$W$Button$disabled(popover.ad)
17807									]),
17808								{
17809									aK: _List_fromArray(
17810										[
17811											(!popover.ad) ? $elm$html$Html$text('Show Popover') : $elm$html$Html$text(
17812											'Closing in… ' + $elm$core$String$fromInt(popover.ar))
17813										]),
17814									s: 0
17815								})
17816							])
17817					}));
17818		},
17819		A2(
17820			$dtwrks$elm_book$ElmBook$Chapter$withComponentList,
17821			A2(
17822				$elm$core$List$map,
17823				function (_v0) {
17824					var label = _v0.a;
17825					var attrs = _v0.b;
17826					return _Utils_Tuple2(
17827						label,
17828						$author$project$UI$hSpacer(
17829							_List_fromArray(
17830								[
17831									A2(
17832									$author$project$W$Popover$viewNext,
17833									attrs,
17834									$author$project$Chapters$Information$Popover$children('Default')),
17835									A2(
17836									$author$project$W$Popover$viewNext,
17837									A2($elm$core$List$cons, $author$project$W$Popover$over, attrs),
17838									$author$project$Chapters$Information$Popover$children('Over')),
17839									A2(
17840									$author$project$W$Popover$viewNext,
17841									A2(
17842										$elm$core$List$cons,
17843										$author$project$W$Popover$offset(4),
17844										attrs),
17845									$author$project$Chapters$Information$Popover$children('Offset')),
17846									A2(
17847									$author$project$W$Popover$viewNext,
17848									A2(
17849										$elm$core$List$cons,
17850										$author$project$W$Popover$full(true),
17851										attrs),
17852									$author$project$Chapters$Information$Popover$children('Full')),
17853									A2(
17854									$author$project$W$Popover$viewNext,
17855									A2(
17856										$elm$core$List$cons,
17857										$author$project$W$Popover$showOnHover,
17858										A2(
17859											$elm$core$List$cons,
17860											$author$project$W$Popover$offset(4),
17861											attrs)),
17862									$author$project$Chapters$Information$Popover$children('Hover'))
17863								])));
17864				},
17865				_List_fromArray(
17866					[
17867						_Utils_Tuple2(
17868						'Bottom (Persistent)',
17869						_List_fromArray(
17870							[$author$project$W$Popover$persistent])),
17871						_Utils_Tuple2(
17872						'Bottom Right',
17873						_List_fromArray(
17874							[$author$project$W$Popover$bottomRight])),
17875						_Utils_Tuple2(
17876						'Top',
17877						_List_fromArray(
17878							[$author$project$W$Popover$top])),
17879						_Utils_Tuple2(
17880						'Top Right',
17881						_List_fromArray(
17882							[$author$project$W$Popover$topRight])),
17883						_Utils_Tuple2(
17884						'Left',
17885						_List_fromArray(
17886							[$author$project$W$Popover$left])),
17887						_Utils_Tuple2(
17888						'Left Bottom',
17889						_List_fromArray(
17890							[$author$project$W$Popover$leftBottom])),
17891						_Utils_Tuple2(
17892						'Right',
17893						_List_fromArray(
17894							[$author$project$W$Popover$right])),
17895						_Utils_Tuple2(
17896						'Right Bottom',
17897						_List_fromArray(
17898							[$author$project$W$Popover$rightBottom]))
17899					])),
17900			$dtwrks$elm_book$ElmBook$Chapter$chapter('Popover'))));
17901var $author$project$W$Table$columnAttrs = F2(
17902	function (label, toHtml) {
17903		return {
17904			Z: $elm$html$Html$Attributes$class('ew-text-left'),
17905			bP: $elm$core$Maybe$Nothing,
17906			bQ: $elm$core$Maybe$Nothing,
17907			bR: $elm$core$Maybe$Nothing,
17908			b$: _List_Nil,
17909			aK: label,
17910			b7: '',
17911			b8: false,
17912			aY: $elm$core$Maybe$Nothing,
17913			e0: toHtml,
17914			y: $elm$html$Html$Attributes$class('')
17915		};
17916	});
17917var $author$project$W$Table$Column = $elm$core$Basics$identity;
17918var $author$project$W$Table$column_ = F2(
17919	function (_default, attrs) {
17920		return A3(
17921			$elm$core$List$foldl,
17922			F2(
17923				function (_v0, a) {
17924					var fn = _v0;
17925					return fn(a);
17926				}),
17927			_default,
17928			attrs);
17929	});
17930var $author$project$W$InputCheckbox$viewReadOnly = F2(
17931	function (attrs_, value) {
17932		return A2(
17933			$elm$html$Html$input,
17934			A2(
17935				$author$project$W$InputCheckbox$baseAttrs,
17936				A2(
17937					$elm$core$List$cons,
17938					$author$project$W$InputCheckbox$readOnly(true),
17939					attrs_),
17940				value),
17941			_List_Nil);
17942	});
17943var $author$project$W$Table$bool = F2(
17944	function (attrs_, props) {
17945		var _default = A2(
17946			$author$project$W$Table$columnAttrs,
17947			props.aK,
17948			function (a) {
17949				return A2(
17950					$author$project$W$InputCheckbox$viewReadOnly,
17951					_List_Nil,
17952					props.cN(a));
17953			});
17954		return A2(
17955			$author$project$W$Table$column_,
17956			_Utils_update(
17957				_default,
17958				{
17959					Z: $elm$html$Html$Attributes$class('ew-text-right')
17960				}),
17961			attrs_);
17962	});
17963var $author$project$W$Table$column = F2(
17964	function (attrs_, props) {
17965		return A2(
17966			$author$project$W$Table$column_,
17967			A2($author$project$W$Table$columnAttrs, props.aK, props.c$),
17968			attrs_);
17969	});
17970var $author$project$W$Table$ColumnAttribute = $elm$core$Basics$identity;
17971var $author$project$W$Table$customLabel = function (value) {
17972	return function (attrs) {
17973		return _Utils_update(
17974			attrs,
17975			{
17976				bP: $elm$core$Maybe$Just(value)
17977			});
17978	};
17979};
17980var $author$project$Chapters$Information$Table$data = $elm$core$List$concat(
17981	A2(
17982		$elm$core$List$repeat,
17983		10,
17984		_List_fromArray(
17985			[
17986				{S: 33, w: 'Georges Boris', ct: 'https://picsum.photos/100', cu: false, cB: 85},
17987				{S: 35, w: 'Janine Bonfadini', ct: 'https://picsum.photos/120', cu: true, cB: 904.6}
17988			])));
17989var $author$project$W$Table$float = F2(
17990	function (attrs_, props) {
17991		var _default = A2(
17992			$author$project$W$Table$columnAttrs,
17993			props.aK,
17994			function (a) {
17995				return $elm$html$Html$text(
17996					$elm$core$String$fromFloat(
17997						props.cN(a)));
17998			});
17999		return A2(
18000			$author$project$W$Table$column_,
18001			_Utils_update(
18002				_default,
18003				{
18004					Z: $elm$html$Html$Attributes$class('ew-text-right')
18005				}),
18006			attrs_);
18007	});
18008var $author$project$W$Table$Attribute = $elm$core$Basics$identity;
18009var $author$project$W$Table$groupBy = function (v) {
18010	return function (attrs) {
18011		return _Utils_update(
18012			attrs,
18013			{
18014				bX: $elm$core$Maybe$Just(v)
18015			});
18016	};
18017};
18018var $author$project$W$Table$groupCollapsed = function (fn) {
18019	return function (attrs) {
18020		return _Utils_update(
18021			attrs,
18022			{
18023				bY: $elm$core$Maybe$Just(fn)
18024			});
18025	};
18026};
18027var $author$project$W$Table$groupLabel = function (attrs) {
18028	return _Utils_update(
18029		attrs,
18030		{
18031			aY: $elm$core$Maybe$Just(
18032				F3(
18033					function (label, _v0, _v1) {
18034						return $elm$html$Html$text(label);
18035					}))
18036		});
18037};
18038var $author$project$W$Table$groupValue = function (fn) {
18039	return function (attrs) {
18040		return _Utils_update(
18041			attrs,
18042			{
18043				aY: $elm$core$Maybe$Just(
18044					F3(
18045						function (x, _v0, xs) {
18046							return A2(fn, x, xs);
18047						}))
18048			});
18049	};
18050};
18051var $elm$html$Html$Attributes$height = function (n) {
18052	return A2(
18053		_VirtualDom_attribute,
18054		'height',
18055		$elm$core$String$fromInt(n));
18056};
18057var $author$project$W$Table$highlight = function (v) {
18058	return function (attrs) {
18059		return _Utils_update(
18060			attrs,
18061			{b_: v});
18062	};
18063};
18064var $author$project$W$Table$htmlAttrs = function (v) {
18065	return function (attrs) {
18066		return _Utils_update(
18067			attrs,
18068			{b$: v});
18069	};
18070};
18071var $elm$html$Html$img = _VirtualDom_node('img');
18072var $author$project$W$Table$int = F2(
18073	function (attrs_, props) {
18074		var _default = A2(
18075			$author$project$W$Table$columnAttrs,
18076			props.aK,
18077			function (a) {
18078				return $elm$html$Html$text(
18079					$elm$core$String$fromInt(
18080						props.cN(a)));
18081			});
18082		return A2(
18083			$author$project$W$Table$column_,
18084			_Utils_update(
18085				_default,
18086				{
18087					Z: $elm$html$Html$Attributes$class('ew-text-right')
18088				}),
18089			attrs_);
18090	});
18091var $author$project$W$Table$labelLeft = function (value) {
18092	return function (attrs) {
18093		return _Utils_update(
18094			attrs,
18095			{
18096				bQ: $elm$core$Maybe$Just(value)
18097			});
18098	};
18099};
18100var $author$project$W$Table$labelRight = function (value) {
18101	return function (attrs) {
18102		return _Utils_update(
18103			attrs,
18104			{
18105				bR: $elm$core$Maybe$Just(value)
18106			});
18107	};
18108};
18109var $author$project$W$Table$largeScreenOnly = function (attrs) {
18110	return _Utils_update(
18111		attrs,
18112		{b8: true});
18113};
18114var $author$project$W$Table$onClick = function (v) {
18115	return function (attrs) {
18116		return _Utils_update(
18117			attrs,
18118			{
18119				s: $elm$core$Maybe$Just(v)
18120			});
18121	};
18122};
18123var $author$project$W$Table$onGroupClick = function (v) {
18124	return function (attrs) {
18125		return _Utils_update(
18126			attrs,
18127			{
18128				bi: $elm$core$Maybe$Just(v)
18129			});
18130	};
18131};
18132var $author$project$W$Table$onGroupMouseEnter = function (v) {
18133	return function (attrs) {
18134		return _Utils_update(
18135			attrs,
18136			{
18137				ck: $elm$core$Maybe$Just(v)
18138			});
18139	};
18140};
18141var $author$project$W$Table$onGroupMouseLeave = function (v) {
18142	return function (attrs) {
18143		return _Utils_update(
18144			attrs,
18145			{
18146				cl: $elm$core$Maybe$Just(v)
18147			});
18148	};
18149};
18150var $author$project$W$Table$onMouseEnter = function (v) {
18151	return function (attrs) {
18152		return _Utils_update(
18153			attrs,
18154			{
18155				cn: $elm$core$Maybe$Just(v)
18156			});
18157	};
18158};
18159var $author$project$W$Table$onMouseLeave = function (v) {
18160	return function (attrs) {
18161		return _Utils_update(
18162			attrs,
18163			{
18164				co: $elm$core$Maybe$Just(v)
18165			});
18166	};
18167};
18168var $elm$html$Html$Attributes$src = function (url) {
18169	return A2(
18170		$elm$html$Html$Attributes$stringProperty,
18171		'src',
18172		_VirtualDom_noJavaScriptOrHtmlUri(url));
18173};
18174var $author$project$W$Table$string = F2(
18175	function (attrs_, props) {
18176		return A2(
18177			$author$project$W$Table$column_,
18178			A2(
18179				$author$project$W$Table$columnAttrs,
18180				props.aK,
18181				function (a) {
18182					return $elm$html$Html$text(
18183						props.cN(a));
18184				}),
18185			attrs_);
18186	});
18187var $author$project$W$Table$defaultAttrs = {
18188	bX: $elm$core$Maybe$Nothing,
18189	bY: $elm$core$Maybe$Nothing,
18190	a8: $elm$core$Basics$identity,
18191	b_: function (_v0) {
18192		return false;
18193	},
18194	b$: _List_Nil,
18195	s: $elm$core$Maybe$Nothing,
18196	bi: $elm$core$Maybe$Nothing,
18197	ck: $elm$core$Maybe$Nothing,
18198	cl: $elm$core$Maybe$Nothing,
18199	cn: $elm$core$Maybe$Nothing,
18200	co: $elm$core$Maybe$Nothing,
18201	cD: true
18202};
18203var $author$project$W$Table$applyAttrs = function (attrs) {
18204	return A3(
18205		$elm$core$List$foldl,
18206		F2(
18207			function (_v0, a) {
18208				var fn = _v0;
18209				return fn(a);
18210			}),
18211		$author$project$W$Table$defaultAttrs,
18212		attrs);
18213};
18214var $elm$html$Html$Events$onMouseLeave = function (msg) {
18215	return A2(
18216		$elm$html$Html$Events$on,
18217		'mouseleave',
18218		$elm$json$Json$Decode$succeed(msg));
18219};
18220var $author$project$W$Internal$Helpers$or = F3(
18221	function (a, b, cond) {
18222		return cond ? a : b;
18223	});
18224var $elm$html$Html$table = _VirtualDom_node('table');
18225var $elm$html$Html$tbody = _VirtualDom_node('tbody');
18226var $elm$html$Html$thead = _VirtualDom_node('thead');
18227var $elm$core$Dict$getMin = function (dict) {
18228	getMin:
18229	while (true) {
18230		if ((dict.$ === -1) && (dict.d.$ === -1)) {
18231			var left = dict.d;
18232			var $temp$dict = left;
18233			dict = $temp$dict;
18234			continue getMin;
18235		} else {
18236			return dict;
18237		}
18238	}
18239};
18240var $elm$core$Dict$moveRedLeft = function (dict) {
18241	if (((dict.$ === -1) && (dict.d.$ === -1)) && (dict.e.$ === -1)) {
18242		if ((dict.e.d.$ === -1) && (!dict.e.d.a)) {
18243			var clr = dict.a;
18244			var k = dict.b;
18245			var v = dict.c;
18246			var _v1 = dict.d;
18247			var lClr = _v1.a;
18248			var lK = _v1.b;
18249			var lV = _v1.c;
18250			var lLeft = _v1.d;
18251			var lRight = _v1.e;
18252			var _v2 = dict.e;
18253			var rClr = _v2.a;
18254			var rK = _v2.b;
18255			var rV = _v2.c;
18256			var rLeft = _v2.d;
18257			var _v3 = rLeft.a;
18258			var rlK = rLeft.b;
18259			var rlV = rLeft.c;
18260			var rlL = rLeft.d;
18261			var rlR = rLeft.e;
18262			var rRight = _v2.e;
18263			return A5(
18264				$elm$core$Dict$RBNode_elm_builtin,
18265				0,
18266				rlK,
18267				rlV,
18268				A5(
18269					$elm$core$Dict$RBNode_elm_builtin,
18270					1,
18271					k,
18272					v,
18273					A5($elm$core$Dict$RBNode_elm_builtin, 0, lK, lV, lLeft, lRight),
18274					rlL),
18275				A5($elm$core$Dict$RBNode_elm_builtin, 1, rK, rV, rlR, rRight));
18276		} else {
18277			var clr = dict.a;
18278			var k = dict.b;
18279			var v = dict.c;
18280			var _v4 = dict.d;
18281			var lClr = _v4.a;
18282			var lK = _v4.b;
18283			var lV = _v4.c;
18284			var lLeft = _v4.d;
18285			var lRight = _v4.e;
18286			var _v5 = dict.e;
18287			var rClr = _v5.a;
18288			var rK = _v5.b;
18289			var rV = _v5.c;
18290			var rLeft = _v5.d;
18291			var rRight = _v5.e;
18292			if (clr === 1) {
18293				return A5(
18294					$elm$core$Dict$RBNode_elm_builtin,
18295					1,
18296					k,
18297					v,
18298					A5($elm$core$Dict$RBNode_elm_builtin, 0, lK, lV, lLeft, lRight),
18299					A5($elm$core$Dict$RBNode_elm_builtin, 0, rK, rV, rLeft, rRight));
18300			} else {
18301				return A5(
18302					$elm$core$Dict$RBNode_elm_builtin,
18303					1,
18304					k,
18305					v,
18306					A5($elm$core$Dict$RBNode_elm_builtin, 0, lK, lV, lLeft, lRight),
18307					A5($elm$core$Dict$RBNode_elm_builtin, 0, rK, rV, rLeft, rRight));
18308			}
18309		}
18310	} else {
18311		return dict;
18312	}
18313};
18314var $elm$core$Dict$moveRedRight = function (dict) {
18315	if (((dict.$ === -1) && (dict.d.$ === -1)) && (dict.e.$ === -1)) {
18316		if ((dict.d.d.$ === -1) && (!dict.d.d.a)) {
18317			var clr = dict.a;
18318			var k = dict.b;
18319			var v = dict.c;
18320			var _v1 = dict.d;
18321			var lClr = _v1.a;
18322			var lK = _v1.b;
18323			var lV = _v1.c;
18324			var _v2 = _v1.d;
18325			var _v3 = _v2.a;
18326			var llK = _v2.b;
18327			var llV = _v2.c;
18328			var llLeft = _v2.d;
18329			var llRight = _v2.e;
18330			var lRight = _v1.e;
18331			var _v4 = dict.e;
18332			var rClr = _v4.a;
18333			var rK = _v4.b;
18334			var rV = _v4.c;
18335			var rLeft = _v4.d;
18336			var rRight = _v4.e;
18337			return A5(
18338				$elm$core$Dict$RBNode_elm_builtin,
18339				0,
18340				lK,
18341				lV,
18342				A5($elm$core$Dict$RBNode_elm_builtin, 1, llK, llV, llLeft, llRight),
18343				A5(
18344					$elm$core$Dict$RBNode_elm_builtin,
18345					1,
18346					k,
18347					v,
18348					lRight,
18349					A5($elm$core$Dict$RBNode_elm_builtin, 0, rK, rV, rLeft, rRight)));
18350		} else {
18351			var clr = dict.a;
18352			var k = dict.b;
18353			var v = dict.c;
18354			var _v5 = dict.d;
18355			var lClr = _v5.a;
18356			var lK = _v5.b;
18357			var lV = _v5.c;
18358			var lLeft = _v5.d;
18359			var lRight = _v5.e;
18360			var _v6 = dict.e;
18361			var rClr = _v6.a;
18362			var rK = _v6.b;
18363			var rV = _v6.c;
18364			var rLeft = _v6.d;
18365			var rRight = _v6.e;
18366			if (clr === 1) {
18367				return A5(
18368					$elm$core$Dict$RBNode_elm_builtin,
18369					1,
18370					k,
18371					v,
18372					A5($elm$core$Dict$RBNode_elm_builtin, 0, lK, lV, lLeft, lRight),
18373					A5($elm$core$Dict$RBNode_elm_builtin, 0, rK, rV, rLeft, rRight));
18374			} else {
18375				return A5(
18376					$elm$core$Dict$RBNode_elm_builtin,
18377					1,
18378					k,
18379					v,
18380					A5($elm$core$Dict$RBNode_elm_builtin, 0, lK, lV, lLeft, lRight),
18381					A5($elm$core$Dict$RBNode_elm_builtin, 0, rK, rV, rLeft, rRight));
18382			}
18383		}
18384	} else {
18385		return dict;
18386	}
18387};
18388var $elm$core$Dict$removeHelpPrepEQGT = F7(
18389	function (targetKey, dict, color, key, value, left, right) {
18390		if ((left.$ === -1) && (!left.a)) {
18391			var _v1 = left.a;
18392			var lK = left.b;
18393			var lV = left.c;
18394			var lLeft = left.d;
18395			var lRight = left.e;
18396			return A5(
18397				$elm$core$Dict$RBNode_elm_builtin,
18398				color,
18399				lK,
18400				lV,
18401				lLeft,
18402				A5($elm$core$Dict$RBNode_elm_builtin, 0, key, value, lRight, right));
18403		} else {
18404			_v2$2:
18405			while (true) {
18406				if ((right.$ === -1) && (right.a === 1)) {
18407					if (right.d.$ === -1) {
18408						if (right.d.a === 1) {
18409							var _v3 = right.a;
18410							var _v4 = right.d;
18411							var _v5 = _v4.a;
18412							return $elm$core$Dict$moveRedRight(dict);
18413						} else {
18414							break _v2$2;
18415						}
18416					} else {
18417						var _v6 = right.a;
18418						var _v7 = right.d;
18419						return $elm$core$Dict$moveRedRight(dict);
18420					}
18421				} else {
18422					break _v2$2;
18423				}
18424			}
18425			return dict;
18426		}
18427	});
18428var $elm$core$Dict$removeMin = function (dict) {
18429	if ((dict.$ === -1) && (dict.d.$ === -1)) {
18430		var color = dict.a;
18431		var key = dict.b;
18432		var value = dict.c;
18433		var left = dict.d;
18434		var lColor = left.a;
18435		var lLeft = left.d;
18436		var right = dict.e;
18437		if (lColor === 1) {
18438			if ((lLeft.$ === -1) && (!lLeft.a)) {
18439				var _v3 = lLeft.a;
18440				return A5(
18441					$elm$core$Dict$RBNode_elm_builtin,
18442					color,
18443					key,
18444					value,
18445					$elm$core$Dict$removeMin(left),
18446					right);
18447			} else {
18448				var _v4 = $elm$core$Dict$moveRedLeft(dict);
18449				if (_v4.$ === -1) {
18450					var nColor = _v4.a;
18451					var nKey = _v4.b;
18452					var nValue = _v4.c;
18453					var nLeft = _v4.d;
18454					var nRight = _v4.e;
18455					return A5(
18456						$elm$core$Dict$balance,
18457						nColor,
18458						nKey,
18459						nValue,
18460						$elm$core$Dict$removeMin(nLeft),
18461						nRight);
18462				} else {
18463					return $elm$core$Dict$RBEmpty_elm_builtin;
18464				}
18465			}
18466		} else {
18467			return A5(
18468				$elm$core$Dict$RBNode_elm_builtin,
18469				color,
18470				key,
18471				value,
18472				$elm$core$Dict$removeMin(left),
18473				right);
18474		}
18475	} else {
18476		return $elm$core$Dict$RBEmpty_elm_builtin;
18477	}
18478};
18479var $elm$core$Dict$removeHelp = F2(
18480	function (targetKey, dict) {
18481		if (dict.$ === -2) {
18482			return $elm$core$Dict$RBEmpty_elm_builtin;
18483		} else {
18484			var color = dict.a;
18485			var key = dict.b;
18486			var value = dict.c;
18487			var left = dict.d;
18488			var right = dict.e;
18489			if (_Utils_cmp(targetKey, key) < 0) {
18490				if ((left.$ === -1) && (left.a === 1)) {
18491					var _v4 = left.a;
18492					var lLeft = left.d;
18493					if ((lLeft.$ === -1) && (!lLeft.a)) {
18494						var _v6 = lLeft.a;
18495						return A5(
18496							$elm$core$Dict$RBNode_elm_builtin,
18497							color,
18498							key,
18499							value,
18500							A2($elm$core$Dict$removeHelp, targetKey, left),
18501							right);
18502					} else {
18503						var _v7 = $elm$core$Dict$moveRedLeft(dict);
18504						if (_v7.$ === -1) {
18505							var nColor = _v7.a;
18506							var nKey = _v7.b;
18507							var nValue = _v7.c;
18508							var nLeft = _v7.d;
18509							var nRight = _v7.e;
18510							return A5(
18511								$elm$core$Dict$balance,
18512								nColor,
18513								nKey,
18514								nValue,
18515								A2($elm$core$Dict$removeHelp, targetKey, nLeft),
18516								nRight);
18517						} else {
18518							return $elm$core$Dict$RBEmpty_elm_builtin;
18519						}
18520					}
18521				} else {
18522					return A5(
18523						$elm$core$Dict$RBNode_elm_builtin,
18524						color,
18525						key,
18526						value,
18527						A2($elm$core$Dict$removeHelp, targetKey, left),
18528						right);
18529				}
18530			} else {
18531				return A2(
18532					$elm$core$Dict$removeHelpEQGT,
18533					targetKey,
18534					A7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right));
18535			}
18536		}
18537	});
18538var $elm$core$Dict$removeHelpEQGT = F2(
18539	function (targetKey, dict) {
18540		if (dict.$ === -1) {
18541			var color = dict.a;
18542			var key = dict.b;
18543			var value = dict.c;
18544			var left = dict.d;
18545			var right = dict.e;
18546			if (_Utils_eq(targetKey, key)) {
18547				var _v1 = $elm$core$Dict$getMin(right);
18548				if (_v1.$ === -1) {
18549					var minKey = _v1.b;
18550					var minValue = _v1.c;
18551					return A5(
18552						$elm$core$Dict$balance,
18553						color,
18554						minKey,
18555						minValue,
18556						left,
18557						$elm$core$Dict$removeMin(right));
18558				} else {
18559					return $elm$core$Dict$RBEmpty_elm_builtin;
18560				}
18561			} else {
18562				return A5(
18563					$elm$core$Dict$balance,
18564					color,
18565					key,
18566					value,
18567					left,
18568					A2($elm$core$Dict$removeHelp, targetKey, right));
18569			}
18570		} else {
18571			return $elm$core$Dict$RBEmpty_elm_builtin;
18572		}
18573	});
18574var $elm$core$Dict$remove = F2(
18575	function (key, dict) {
18576		var _v0 = A2($elm$core$Dict$removeHelp, key, dict);
18577		if ((_v0.$ === -1) && (!_v0.a)) {
18578			var _v1 = _v0.a;
18579			var k = _v0.b;
18580			var v = _v0.c;
18581			var l = _v0.d;
18582			var r = _v0.e;
18583			return A5($elm$core$Dict$RBNode_elm_builtin, 1, k, v, l, r);
18584		} else {
18585			var x = _v0;
18586			return x;
18587		}
18588	});
18589var $elm$core$Dict$update = F3(
18590	function (targetKey, alter, dictionary) {
18591		var _v0 = alter(
18592			A2($elm$core$Dict$get, targetKey, dictionary));
18593		if (!_v0.$) {
18594			var value = _v0.a;
18595			return A3($elm$core$Dict$insert, targetKey, value, dictionary);
18596		} else {
18597			return A2($elm$core$Dict$remove, targetKey, dictionary);
18598		}
18599	});
18600var $author$project$W$Table$toGroupedRows = F3(
18601	function (attrs, groupBy_, data) {
18602		return attrs.a8(
18603			A2(
18604				$elm$core$List$map,
18605				function (_v2) {
18606					var label = _v2.a;
18607					var _v3 = _v2.b;
18608					var a = _v3.a;
18609					var items = _v3.b;
18610					return _Utils_Tuple3(label, a, items);
18611				},
18612				$elm$core$Dict$toList(
18613					A3(
18614						$elm$core$List$foldl,
18615						F2(
18616							function (row, acc) {
18617								var key = groupBy_(row);
18618								return A3(
18619									$elm$core$Dict$update,
18620									key,
18621									function (items) {
18622										if (!items.$) {
18623											var _v1 = items.a;
18624											var a = _v1.a;
18625											var items_ = _v1.b;
18626											return $elm$core$Maybe$Just(
18627												_Utils_Tuple2(
18628													a,
18629													_Utils_ap(
18630														items_,
18631														_List_fromArray(
18632															[row]))));
18633										} else {
18634											return $elm$core$Maybe$Just(
18635												_Utils_Tuple2(
18636													row,
18637													_List_fromArray(
18638														[row])));
18639										}
18640									},
18641									acc);
18642							}),
18643						$elm$core$Dict$empty,
18644						data))));
18645	});
18646var $elm$html$Html$tr = _VirtualDom_node('tr');
18647var $author$project$W$Table$columnStyles = function (attrs) {
18648	return _List_fromArray(
18649		[
18650			attrs.Z,
18651			attrs.y,
18652			$elm$html$Html$Attributes$classList(
18653			_List_fromArray(
18654				[
18655					_Utils_Tuple2('ew-hidden lg:ew-table-cell', attrs.b8)
18656				]))
18657		]);
18658};
18659var $elm$html$Html$Events$onMouseEnter = function (msg) {
18660	return A2(
18661		$elm$html$Html$Events$on,
18662		'mouseenter',
18663		$elm$json$Json$Decode$succeed(msg));
18664};
18665var $elm$html$Html$td = _VirtualDom_node('td');
18666var $author$project$W$Table$viewGroupHeader = F5(
18667	function (attrs, columns, groupLabel_, groupItem, groupColumns) {
18668		return A2(
18669			$elm$html$Html$tr,
18670			_List_fromArray(
18671				[
18672					$elm$html$Html$Attributes$class('ew-table-group-header'),
18673					$elm$html$Html$Attributes$class('ew-p-0 ew-font-semibold ew-bg-base-aux/[0.07]'),
18674					A2(
18675					$author$project$W$Internal$Helpers$maybeAttr,
18676					function (fn) {
18677						return $elm$html$Html$Events$onClick(
18678							fn(groupItem));
18679					},
18680					attrs.bi),
18681					A2(
18682					$author$project$W$Internal$Helpers$maybeAttr,
18683					function (fn) {
18684						return $elm$html$Html$Events$onMouseEnter(
18685							fn(groupItem));
18686					},
18687					attrs.ck),
18688					A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onMouseEnter, attrs.cl),
18689					$elm$html$Html$Attributes$classList(
18690					_List_fromArray(
18691						[
18692							_Utils_Tuple2(
18693							'hover:ew-bg-base-aux/10 active:ew-bg-base-aux/[0.07]',
18694							!_Utils_eq(attrs.bi, $elm$core$Maybe$Nothing))
18695						]))
18696				]),
18697			A2(
18698				$elm$core$List$map,
18699				function (_v0) {
18700					var col = _v0;
18701					return A2(
18702						$elm$html$Html$td,
18703						_Utils_ap(
18704							$author$project$W$Table$columnStyles(col),
18705							_Utils_ap(
18706								col.b$,
18707								_List_fromArray(
18708									[
18709										$elm$html$Html$Attributes$class('ew-shrink-0 ew-m-0 ew-break-words')
18710									]))),
18711						_List_fromArray(
18712							[
18713								A2(
18714								$elm$core$Maybe$withDefault,
18715								$elm$html$Html$text(''),
18716								A2(
18717									$elm$core$Maybe$map,
18718									function (fn) {
18719										return A3(fn, groupLabel_, groupItem, groupColumns);
18720									},
18721									col.aY))
18722							]));
18723				},
18724				columns));
18725	});
18726var $elm$html$Html$th = _VirtualDom_node('th');
18727var $author$project$W$Table$viewTableHeaderColumn = function (_v0) {
18728	var col = _v0;
18729	return A2(
18730		$elm$html$Html$th,
18731		_Utils_ap(
18732			$author$project$W$Table$columnStyles(col),
18733			_List_fromArray(
18734				[
18735					$elm$html$Html$Attributes$class('ew-m-0 ew-font-semibold ew-text-sm ew-text-base-aux')
18736				])),
18737		_List_fromArray(
18738			[
18739				A2(
18740				$elm$html$Html$div,
18741				_List_fromArray(
18742					[
18743						$elm$html$Html$Attributes$class('ew-flex ew-items-center gap-1'),
18744						$elm$html$Html$Attributes$class('ew-p-2'),
18745						$elm$html$Html$Attributes$class('ew-border-b-2 ew-border-base-aux/[0.2]'),
18746						$elm$html$Html$Attributes$class(col.b7)
18747					]),
18748				_List_fromArray(
18749					[
18750						A2(
18751						$elm$core$Maybe$withDefault,
18752						$elm$html$Html$text(''),
18753						A2(
18754							$elm$core$Maybe$map,
18755							$elm$html$Html$span(
18756								_List_fromArray(
18757									[
18758										$elm$html$Html$Attributes$class('ew-shrink-0')
18759									])),
18760							col.bQ)),
18761						A2(
18762						$elm$html$Html$span,
18763						_List_fromArray(
18764							[
18765								$elm$html$Html$Attributes$class('ew-grow')
18766							]),
18767						A2(
18768							$elm$core$Maybe$withDefault,
18769							_List_fromArray(
18770								[
18771									$elm$html$Html$text(col.aK)
18772								]),
18773							col.bP)),
18774						A2(
18775						$elm$core$Maybe$withDefault,
18776						$elm$html$Html$text(''),
18777						A2(
18778							$elm$core$Maybe$map,
18779							$elm$html$Html$span(
18780								_List_fromArray(
18781									[
18782										$elm$html$Html$Attributes$class('ew-shrink-0')
18783									])),
18784							col.bR))
18785					]))
18786			]));
18787};
18788var $author$project$W$Table$viewTableRow = F3(
18789	function (attrs, columns, datum) {
18790		return A2(
18791			$elm$html$Html$tr,
18792			_List_fromArray(
18793				[
18794					$elm$html$Html$Attributes$class('ew-p-0'),
18795					attrs.b_(datum) ? $elm$html$Html$Attributes$classList(
18796					_List_fromArray(
18797						[
18798							_Utils_Tuple2('ew-bg-base-aux/10', true),
18799							_Utils_Tuple2(
18800							'hover:ew-bg-base-aux/[0.07] active:ew-bg-base-aux/10',
18801							!_Utils_eq(attrs.s, $elm$core$Maybe$Nothing))
18802						])) : $elm$html$Html$Attributes$classList(
18803					_List_fromArray(
18804						[
18805							_Utils_Tuple2(
18806							'hover:ew-bg-base-aux/[0.04] active:ew-bg-base-aux/[0.07]',
18807							!_Utils_eq(attrs.s, $elm$core$Maybe$Nothing))
18808						])),
18809					A2(
18810					$author$project$W$Internal$Helpers$maybeAttr,
18811					function (onClick_) {
18812						return $elm$html$Html$Events$onClick(
18813							onClick_(datum));
18814					},
18815					attrs.s),
18816					A2(
18817					$author$project$W$Internal$Helpers$maybeAttr,
18818					function (onMouseEnter_) {
18819						return $elm$html$Html$Events$onMouseEnter(
18820							onMouseEnter_(datum));
18821					},
18822					attrs.cn)
18823				]),
18824			A2(
18825				$elm$core$List$map,
18826				function (_v0) {
18827					var col = _v0;
18828					return A2(
18829						$elm$html$Html$td,
18830						_Utils_ap(
18831							$author$project$W$Table$columnStyles(col),
18832							_Utils_ap(
18833								col.b$,
18834								_List_fromArray(
18835									[
18836										$elm$html$Html$Attributes$class('ew-shrink-0 ew-m-0 ew-break-words')
18837									]))),
18838						_List_fromArray(
18839							[
18840								col.e0(datum)
18841							]));
18842				},
18843				columns));
18844	});
18845var $author$project$W$Table$view = F3(
18846	function (attrs_, columns, data) {
18847		var attrs = $author$project$W$Table$applyAttrs(attrs_);
18848		var rows = function () {
18849			var _v0 = attrs.bX;
18850			if (!_v0.$) {
18851				var groupBy_ = _v0.a;
18852				return A2(
18853					$elm$core$List$concatMap,
18854					function (_v1) {
18855						var groupLabel_ = _v1.a;
18856						var groupItem = _v1.b;
18857						var groupItems = _v1.c;
18858						var groupRows = A3(
18859							$author$project$W$Internal$Helpers$or,
18860							_List_Nil,
18861							groupItems,
18862							A2(
18863								$elm$core$Maybe$withDefault,
18864								false,
18865								A2(
18866									$elm$core$Maybe$map,
18867									function (fn) {
18868										return A2(fn, groupItem, groupLabel_);
18869									},
18870									attrs.bY)));
18871						return A2(
18872							$elm$core$List$cons,
18873							A5($author$project$W$Table$viewGroupHeader, attrs, columns, groupLabel_, groupItem, groupItems),
18874							A2(
18875								$elm$core$List$map,
18876								A2($author$project$W$Table$viewTableRow, attrs, columns),
18877								groupRows));
18878					},
18879					A3($author$project$W$Table$toGroupedRows, attrs, groupBy_, data));
18880			} else {
18881				return A2(
18882					$elm$core$List$map,
18883					A2($author$project$W$Table$viewTableRow, attrs, columns),
18884					data);
18885			}
18886		}();
18887		return A2(
18888			$elm$html$Html$table,
18889			_Utils_ap(
18890				attrs.b$,
18891				_List_fromArray(
18892					[
18893						$elm$html$Html$Attributes$class('ew-table ew-table-fixed ew-indent-0'),
18894						$elm$html$Html$Attributes$class('ew-w-full ew-overflow-auto'),
18895						$elm$html$Html$Attributes$class('ew-bg-base-bg ew-font-text ew-text-base-fg')
18896					])),
18897			_List_fromArray(
18898				[
18899					attrs.cD ? A2(
18900					$elm$html$Html$thead,
18901					_List_fromArray(
18902						[
18903							$elm$html$Html$Attributes$class('ew-sticky ew-z-20 ew-top-0 ew-z-10'),
18904							$elm$html$Html$Attributes$class('ew-bg-base-bg')
18905						]),
18906					_List_fromArray(
18907						[
18908							A2(
18909							$elm$html$Html$tr,
18910							_List_Nil,
18911							A2($elm$core$List$map, $author$project$W$Table$viewTableHeaderColumn, columns))
18912						])) : $elm$html$Html$text(''),
18913					A2(
18914					$elm$html$Html$tbody,
18915					_List_fromArray(
18916						[
18917							A2($author$project$W$Internal$Helpers$maybeAttr, $elm$html$Html$Events$onMouseLeave, attrs.co)
18918						]),
18919					rows)
18920				]));
18921	});
18922var $author$project$W$Tooltip$Default = 1;
18923var $author$project$W$Tooltip$Top = 0;
18924var $author$project$W$Tooltip$defaultAttrs = {_: false, b$: _List_Nil, Q: 0, bm: 1};
18925var $author$project$W$Tooltip$applyAttrs = function (attrs) {
18926	return A3(
18927		$elm$core$List$foldl,
18928		F2(
18929			function (_v0, a) {
18930				var fn = _v0;
18931				return fn(a);
18932			}),
18933		$author$project$W$Tooltip$defaultAttrs,
18934		attrs);
18935};
18936var $author$project$W$Tooltip$view = F2(
18937	function (attrs_, props) {
18938		var attrs = $author$project$W$Tooltip$applyAttrs(attrs_);
18939		var posAttrs = function () {
18940			var _v1 = attrs.Q;
18941			switch (_v1) {
18942				case 0:
18943					return _List_fromArray(
18944						[
18945							$elm$html$Html$Attributes$class('ew-tooltip-top ew-bottom-full ew-mb-1'),
18946							$elm$html$Html$Attributes$class('group-hover:ew-translate-y-0'),
18947							$elm$html$Html$Attributes$classList(
18948							_List_fromArray(
18949								[
18950									_Utils_Tuple2('ew-translate-y-0.5', !attrs._)
18951								]))
18952						]);
18953				case 2:
18954					return _List_fromArray(
18955						[
18956							$elm$html$Html$Attributes$class('ew-tooltip-bottom ew-top-full ew-mt-1'),
18957							$elm$html$Html$Attributes$class('group-hover:ew-translate-y-0'),
18958							$elm$html$Html$Attributes$classList(
18959							_List_fromArray(
18960								[
18961									_Utils_Tuple2('-ew-translate-y-0.5', !attrs._)
18962								]))
18963						]);
18964				case 1:
18965					return _List_fromArray(
18966						[
18967							$elm$html$Html$Attributes$class('ew-tooltip-left ew-top-1/2 ew-right-full ew-mr-1'),
18968							$elm$html$Html$Attributes$class('-ew-translate-y-1/2 group-hover:ew-translate-x-0'),
18969							$elm$html$Html$Attributes$classList(
18970							_List_fromArray(
18971								[
18972									_Utils_Tuple2('ew-translate-x-0.5', !attrs._)
18973								]))
18974						]);
18975				default:
18976					return _List_fromArray(
18977						[
18978							$elm$html$Html$Attributes$class('ew-tooltip-right ew-top-1/2 ew-left-full ew-ml-1'),
18979							$elm$html$Html$Attributes$class('-ew-translate-y-1/2 group-hover:ew-translate-x-0'),
18980							$elm$html$Html$Attributes$classList(
18981							_List_fromArray(
18982								[
18983									_Utils_Tuple2('-ew-translate-x-0.5', !attrs._)
18984								]))
18985						]);
18986			}
18987		}();
18988		var tooltip = A2(
18989			$elm$html$Html$span,
18990			_Utils_ap(
18991				attrs.b$,
18992				_Utils_ap(
18993					posAttrs,
18994					_List_fromArray(
18995						[
18996							$elm$html$Html$Attributes$class('ew-tooltip ew-pointer-events-none'),
18997							$elm$html$Html$Attributes$class('ew-z-[9999] ew-absolute ew-px-2 ew-py-1'),
18998							$elm$html$Html$Attributes$class('ew-w-max ew-rounded'),
18999							$elm$html$Html$Attributes$class('ew-font-text ew-text-sm'),
19000							$elm$html$Html$Attributes$class('ew-bg-neutral-bg ew-text-neutral-aux'),
19001							$elm$html$Html$Attributes$class('ew-transition'),
19002							$elm$html$Html$Attributes$class('group-hover:ew-opacity-100'),
19003							$elm$html$Html$Attributes$classList(
19004							_List_fromArray(
19005								[
19006									_Utils_Tuple2('ew-opacity-0', !attrs._)
19007								])),
19008							function () {
19009							var _v0 = attrs.bm;
19010							switch (_v0) {
19011								case 2:
19012									return $elm$html$Html$Attributes$class('group-hover:ew-delay-100');
19013								case 1:
19014									return $elm$html$Html$Attributes$class('group-hover:ew-delay-500');
19015								default:
19016									return $elm$html$Html$Attributes$class('group-hover:ew-delay-1000');
19017							}
19018						}()
19019						]))),
19020			props.e1);
19021		return A2(
19022			$elm$html$Html$span,
19023			_List_Nil,
19024			_List_fromArray(
19025				[
19026					A2(
19027					$elm$html$Html$span,
19028					_List_fromArray(
19029						[
19030							$elm$html$Html$Attributes$class('ew-group ew-relative ew-inline-flex ew-flex-col ew-items-center')
19031						]),
19032					A2($elm$core$List$cons, tooltip, props.cY))
19033				]));
19034	});
19035var $author$project$W$Table$pxString = function (v) {
19036	return $elm$core$String$fromInt(v) + 'px';
19037};
19038var $author$project$W$Table$width = function (v) {
19039	return function (attrs) {
19040		return _Utils_update(
19041			attrs,
19042			{
19043				y: A2(
19044					$elm$html$Html$Attributes$style,
19045					'width',
19046					$author$project$W$Table$pxString(v))
19047			});
19048	};
19049};
19050var $author$project$Chapters$Information$Table$chapter_ = A2(
19051	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
19052	_List_fromArray(
19053		[
19054			_Utils_Tuple2(
19055			'Default',
19056			A3(
19057				$author$project$W$Table$view,
19058				_List_fromArray(
19059					[
19060						$author$project$W$Table$onClick(
19061						A2(
19062							$elm$core$Basics$composeL,
19063							$dtwrks$elm_book$ElmBook$Actions$logActionWithString('onClick'),
19064							function ($) {
19065								return $.w;
19066							})),
19067						$author$project$W$Table$onMouseEnter(
19068						A2(
19069							$elm$core$Basics$composeL,
19070							$dtwrks$elm_book$ElmBook$Actions$logActionWithString('onMouseEnter'),
19071							function ($) {
19072								return $.w;
19073							})),
19074						$author$project$W$Table$onMouseLeave(
19075						$dtwrks$elm_book$ElmBook$Actions$logAction('onMouseLeave')),
19076						$author$project$W$Table$highlight(
19077						A2(
19078							$elm$core$Basics$composeR,
19079							function ($) {
19080								return $.S;
19081							},
19082							$elm$core$Basics$eq(35)))
19083					]),
19084				_List_fromArray(
19085					[
19086						A2(
19087						$author$project$W$Table$column,
19088						_List_fromArray(
19089							[
19090								$author$project$W$Table$width(60),
19091								$author$project$W$Table$largeScreenOnly
19092							]),
19093						{
19094							c$: function (_v0) {
19095								var picture = _v0.ct;
19096								return A2(
19097									$elm$html$Html$img,
19098									_List_fromArray(
19099										[
19100											$elm$html$Html$Attributes$src(picture),
19101											$elm$html$Html$Attributes$height(60)
19102										]),
19103									_List_Nil);
19104							},
19105							aK: 'Image'
19106						}),
19107						A2(
19108						$author$project$W$Table$string,
19109						_List_fromArray(
19110							[
19111								$author$project$W$Table$labelLeft(
19112								_List_fromArray(
19113									[
19114										$elm$html$Html$text('L')
19115									])),
19116								$author$project$W$Table$labelRight(
19117								_List_fromArray(
19118									[
19119										$elm$html$Html$text('R')
19120									]))
19121							]),
19122						{
19123							aK: 'Name',
19124							cN: function ($) {
19125								return $.w;
19126							}
19127						}),
19128						A2(
19129						$author$project$W$Table$int,
19130						_List_fromArray(
19131							[
19132								$author$project$W$Table$width(40)
19133							]),
19134						{
19135							aK: 'Age',
19136							cN: function ($) {
19137								return $.S;
19138							}
19139						}),
19140						A2(
19141						$author$project$W$Table$float,
19142						_List_fromArray(
19143							[
19144								$author$project$W$Table$width(80)
19145							]),
19146						{
19147							aK: 'Score',
19148							cN: function ($) {
19149								return $.cB;
19150							}
19151						}),
19152						A2(
19153						$author$project$W$Table$bool,
19154						_List_fromArray(
19155							[
19156								$author$project$W$Table$width(80)
19157							]),
19158						{
19159							aK: 'Ready?',
19160							cN: function ($) {
19161								return $.cu;
19162							}
19163						})
19164					]),
19165				$author$project$Chapters$Information$Table$data)),
19166			_Utils_Tuple2(
19167			'Groups',
19168			A3(
19169				$author$project$W$Table$view,
19170				_List_fromArray(
19171					[
19172						$author$project$W$Table$groupBy(
19173						function ($) {
19174							return $.w;
19175						}),
19176						$author$project$W$Table$groupCollapsed(
19177						F2(
19178							function (_v1, n) {
19179								return n === 'Janine Bonfadini';
19180							})),
19181						$author$project$W$Table$onGroupClick(
19182						A2(
19183							$elm$core$Basics$composeL,
19184							$dtwrks$elm_book$ElmBook$Actions$logActionWithString('onGroupClick'),
19185							function ($) {
19186								return $.w;
19187							})),
19188						$author$project$W$Table$onGroupMouseEnter(
19189						A2(
19190							$elm$core$Basics$composeL,
19191							$dtwrks$elm_book$ElmBook$Actions$logActionWithString('onGroupMouseEnter'),
19192							function ($) {
19193								return $.w;
19194							})),
19195						$author$project$W$Table$onGroupMouseLeave(
19196						$dtwrks$elm_book$ElmBook$Actions$logAction('onGroupMouseLeave')),
19197						$author$project$W$Table$htmlAttrs(
19198						_List_fromArray(
19199							[
19200								A2($elm$html$Html$Attributes$style, 'max-height', '400px')
19201							]))
19202					]),
19203				_List_fromArray(
19204					[
19205						A2(
19206						$author$project$W$Table$column,
19207						_List_fromArray(
19208							[
19209								$author$project$W$Table$width(60),
19210								$author$project$W$Table$largeScreenOnly
19211							]),
19212						{
19213							c$: function (_v2) {
19214								var picture = _v2.ct;
19215								return A2(
19216									$elm$html$Html$img,
19217									_List_fromArray(
19218										[
19219											$elm$html$Html$Attributes$src(picture),
19220											$elm$html$Html$Attributes$height(60)
19221										]),
19222									_List_Nil);
19223							},
19224							aK: 'Image'
19225						}),
19226						A2(
19227						$author$project$W$Table$string,
19228						_List_fromArray(
19229							[$author$project$W$Table$groupLabel]),
19230						{
19231							aK: 'Name',
19232							cN: function ($) {
19233								return $.w;
19234							}
19235						}),
19236						A2(
19237						$author$project$W$Table$int,
19238						_List_fromArray(
19239							[
19240								$author$project$W$Table$width(80),
19241								$author$project$W$Table$groupValue(
19242								F2(
19243									function (_v3, xs) {
19244										return $elm$html$Html$text(
19245											$elm$core$String$fromInt(
19246												A3(
19247													$elm$core$List$foldl,
19248													F2(
19249														function (x, acc) {
19250															return x.S + acc;
19251														}),
19252													0,
19253													xs)));
19254									}))
19255							]),
19256						{
19257							aK: 'Age',
19258							cN: function ($) {
19259								return $.S;
19260							}
19261						}),
19262						A2(
19263						$author$project$W$Table$float,
19264						_List_fromArray(
19265							[
19266								$author$project$W$Table$width(80)
19267							]),
19268						{
19269							aK: 'Score',
19270							cN: function ($) {
19271								return $.cB;
19272							}
19273						}),
19274						A2(
19275						$author$project$W$Table$bool,
19276						_List_fromArray(
19277							[
19278								$author$project$W$Table$width(80)
19279							]),
19280						{
19281							aK: 'Ready?',
19282							cN: function ($) {
19283								return $.cu;
19284							}
19285						})
19286					]),
19287				$author$project$Chapters$Information$Table$data)),
19288			_Utils_Tuple2(
19289			'Custom Column Label',
19290			A3(
19291				$author$project$W$Table$view,
19292				_List_fromArray(
19293					[
19294						$author$project$W$Table$htmlAttrs(
19295						_List_fromArray(
19296							[
19297								A2($elm$html$Html$Attributes$style, 'max-height', '400px')
19298							]))
19299					]),
19300				_List_fromArray(
19301					[
19302						A2(
19303						$author$project$W$Table$string,
19304						_List_fromArray(
19305							[
19306								$author$project$W$Table$customLabel(
19307								_List_fromArray(
19308									[
19309										A2(
19310										$author$project$W$Tooltip$view,
19311										_List_Nil,
19312										{
19313											cY: _List_fromArray(
19314												[
19315													$elm$html$Html$text('Name')
19316												]),
19317											e1: _List_fromArray(
19318												[
19319													$elm$html$Html$text('Person name')
19320												])
19321										})
19322									]))
19323							]),
19324						{
19325							aK: 'Name',
19326							cN: function ($) {
19327								return $.w;
19328							}
19329						}),
19330						A2(
19331						$author$project$W$Table$int,
19332						_List_fromArray(
19333							[
19334								$author$project$W$Table$width(80),
19335								$author$project$W$Table$customLabel(
19336								_List_fromArray(
19337									[
19338										A2(
19339										$author$project$W$Tooltip$view,
19340										_List_Nil,
19341										{
19342											cY: _List_fromArray(
19343												[
19344													$elm$html$Html$text('Age')
19345												]),
19346											e1: _List_fromArray(
19347												[
19348													$elm$html$Html$text('Person age')
19349												])
19350										})
19351									]))
19352							]),
19353						{
19354							aK: 'Age',
19355							cN: function ($) {
19356								return $.S;
19357							}
19358						})
19359					]),
19360				_List_fromArray(
19361					[
19362						{S: 28, w: 'João'},
19363						{S: 29, w: 'Maria'}
19364					])))
19365		]),
19366	$dtwrks$elm_book$ElmBook$Chapter$chapter('Table'));
19367var $author$project$W$Tag$Attribute = $elm$core$Basics$identity;
19368var $author$project$W$Tag$color = function (v) {
19369	return function (attrs) {
19370		return _Utils_update(
19371			attrs,
19372			{U: v});
19373	};
19374};
19375var $author$project$W$Tag$danger = function (attrs) {
19376	return _Utils_update(
19377		attrs,
19378		{U: $uncover_co$elm_theme$Theme$dangerForeground});
19379};
19380var $author$project$W$Tag$Large = 0;
19381var $author$project$W$Tag$large = function (attrs) {
19382	return _Utils_update(
19383		attrs,
19384		{n: 0});
19385};
19386var $author$project$W$Tag$primary = function (attrs) {
19387	return _Utils_update(
19388		attrs,
19389		{U: $uncover_co$elm_theme$Theme$primaryForeground});
19390};
19391var $author$project$W$Tag$secondary = function (attrs) {
19392	return _Utils_update(
19393		attrs,
19394		{U: $uncover_co$elm_theme$Theme$secondaryForeground});
19395};
19396var $author$project$W$Tag$Small = 2;
19397var $author$project$W$Tag$small = function (v) {
19398	return function (attrs) {
19399		return _Utils_update(
19400			attrs,
19401			{
19402				n: v ? 2 : attrs.n
19403			});
19404	};
19405};
19406var $author$project$W$Tag$success = function (attrs) {
19407	return _Utils_update(
19408		attrs,
19409		{U: $uncover_co$elm_theme$Theme$successForeground});
19410};
19411var $author$project$W$Tag$onClick = function (v) {
19412	return function (attrs) {
19413		return _Utils_update(
19414			attrs,
19415			{
19416				s: $elm$core$Maybe$Just(v)
19417			});
19418	};
19419};
19420var $author$project$W$Tag$viewButton = F2(
19421	function (attrs_, props) {
19422		return A2(
19423			$author$project$W$Tag$view,
19424			A2(
19425				$elm$core$List$cons,
19426				$author$project$W$Tag$onClick(props.s),
19427				attrs_),
19428			props.aK);
19429	});
19430var $author$project$W$Tag$href = function (v) {
19431	return function (attrs) {
19432		return _Utils_update(
19433			attrs,
19434			{
19435				ei: $elm$core$Maybe$Just(v)
19436			});
19437	};
19438};
19439var $author$project$W$Tag$viewLink = F2(
19440	function (attrs_, props) {
19441		return A2(
19442			$author$project$W$Tag$view,
19443			A2(
19444				$elm$core$List$cons,
19445				$author$project$W$Tag$href(props.ei),
19446				attrs_),
19447			props.aK);
19448	});
19449var $author$project$W$Tag$warning = function (attrs) {
19450	return _Utils_update(
19451		attrs,
19452		{U: $uncover_co$elm_theme$Theme$warningForeground});
19453};
19454var $author$project$Chapters$Information$Tag$chapter_ = A2(
19455	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
19456	A2(
19457		$elm$core$List$map,
19458		function (_v0) {
19459			var attrs = _v0.a;
19460			var label = _v0.b;
19461			return _Utils_Tuple2(
19462				label,
19463				$author$project$UI$hSpacer(
19464					_List_fromArray(
19465						[
19466							A2(
19467							$author$project$W$Tag$view,
19468							attrs,
19469							_List_fromArray(
19470								[
19471									$elm$html$Html$text(label)
19472								])),
19473							A2(
19474							$author$project$W$Tag$viewButton,
19475							attrs,
19476							{
19477								aK: _List_fromArray(
19478									[
19479										$elm$html$Html$text(label)
19480									]),
19481								s: $dtwrks$elm_book$ElmBook$Actions$logAction('onClick')
19482							}),
19483							A2(
19484							$author$project$W$Tag$viewLink,
19485							attrs,
19486							{
19487								ei: '/logAction/#',
19488								aK: _List_fromArray(
19489									[
19490										$elm$html$Html$text(label)
19491									])
19492							}),
19493							A2(
19494							$author$project$W$Tag$view,
19495							A2(
19496								$elm$core$List$cons,
19497								$author$project$W$Tag$small(true),
19498								attrs),
19499							_List_fromArray(
19500								[
19501									$elm$html$Html$text(label)
19502								])),
19503							A2(
19504							$author$project$W$Tag$view,
19505							A2($elm$core$List$cons, $author$project$W$Tag$large, attrs),
19506							_List_fromArray(
19507								[
19508									$elm$html$Html$text(label)
19509								]))
19510						])));
19511		},
19512		_List_fromArray(
19513			[
19514				_Utils_Tuple2(_List_Nil, 'Neutral'),
19515				_Utils_Tuple2(
19516				_List_fromArray(
19517					[$author$project$W$Tag$primary]),
19518				'Primary'),
19519				_Utils_Tuple2(
19520				_List_fromArray(
19521					[$author$project$W$Tag$secondary]),
19522				'Secondary'),
19523				_Utils_Tuple2(
19524				_List_fromArray(
19525					[$author$project$W$Tag$success]),
19526				'Success'),
19527				_Utils_Tuple2(
19528				_List_fromArray(
19529					[$author$project$W$Tag$warning]),
19530				'Warning'),
19531				_Utils_Tuple2(
19532				_List_fromArray(
19533					[$author$project$W$Tag$danger]),
19534				'Danger'),
19535				_Utils_Tuple2(
19536				_List_fromArray(
19537					[
19538						$author$project$W$Tag$color('purple')
19539					]),
19540				'Custom')
19541			])),
19542	$dtwrks$elm_book$ElmBook$Chapter$chapter('Tag'));
19543var $author$project$W$Tooltip$Attribute = $elm$core$Basics$identity;
19544var $author$project$W$Tooltip$alwaysVisible = function (attrs) {
19545	return _Utils_update(
19546		attrs,
19547		{_: true});
19548};
19549var $author$project$W$Tooltip$Bottom = 2;
19550var $author$project$W$Tooltip$bottom = function (attrs) {
19551	return _Utils_update(
19552		attrs,
19553		{Q: 2});
19554};
19555var $author$project$W$Tooltip$Fast = 2;
19556var $author$project$W$Tooltip$fast = function (attrs) {
19557	return _Utils_update(
19558		attrs,
19559		{bm: 2});
19560};
19561var $author$project$W$Tooltip$Left = 1;
19562var $author$project$W$Tooltip$left = function (attrs) {
19563	return _Utils_update(
19564		attrs,
19565		{Q: 1});
19566};
19567var $author$project$W$Tooltip$Right = 3;
19568var $author$project$W$Tooltip$right = function (attrs) {
19569	return _Utils_update(
19570		attrs,
19571		{Q: 3});
19572};
19573var $author$project$W$Tooltip$Slow = 0;
19574var $author$project$W$Tooltip$slow = function (attrs) {
19575	return _Utils_update(
19576		attrs,
19577		{bm: 0});
19578};
19579var $author$project$Chapters$Information$Tooltip$chapter_ = A2(
19580	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
19581	_List_fromArray(
19582		[
19583			_Utils_Tuple2(
19584			'Different Positions',
19585			$author$project$UI$hSpacer(
19586				_List_fromArray(
19587					[
19588						A2(
19589						$author$project$W$Tooltip$view,
19590						_List_Nil,
19591						{
19592							cY: _List_fromArray(
19593								[
19594									$elm$html$Html$text('Top!')
19595								]),
19596							e1: _List_fromArray(
19597								[
19598									$elm$html$Html$text('This is a top tooltip!')
19599								])
19600						}),
19601						A2(
19602						$author$project$W$Tooltip$view,
19603						_List_fromArray(
19604							[$author$project$W$Tooltip$bottom]),
19605						{
19606							cY: _List_fromArray(
19607								[
19608									$elm$html$Html$text('Bottom?')
19609								]),
19610							e1: _List_fromArray(
19611								[
19612									$elm$html$Html$text('A bottom one!')
19613								])
19614						}),
19615						A2(
19616						$author$project$W$Tooltip$view,
19617						_List_fromArray(
19618							[$author$project$W$Tooltip$right]),
19619						{
19620							cY: _List_fromArray(
19621								[
19622									$elm$html$Html$text('Right!')
19623								]),
19624							e1: _List_fromArray(
19625								[
19626									$elm$html$Html$text('A right one!')
19627								])
19628						}),
19629						A2(
19630						$author$project$W$Tooltip$view,
19631						_List_fromArray(
19632							[$author$project$W$Tooltip$left]),
19633						{
19634							cY: _List_fromArray(
19635								[
19636									$elm$html$Html$text('Left??')
19637								]),
19638							e1: _List_fromArray(
19639								[
19640									$elm$html$Html$text('A left one!')
19641								])
19642						})
19643					]))),
19644			_Utils_Tuple2(
19645			'Bottom',
19646			A2(
19647				$author$project$W$Tooltip$view,
19648				_List_fromArray(
19649					[$author$project$W$Tooltip$bottom]),
19650				{
19651					cY: _List_fromArray(
19652						[
19653							$elm$html$Html$text('Hello!')
19654						]),
19655					e1: _List_fromArray(
19656						[
19657							$elm$html$Html$text('This is a tooltip!')
19658						])
19659				})),
19660			_Utils_Tuple2(
19661			'Left',
19662			A2(
19663				$author$project$W$Tooltip$view,
19664				_List_fromArray(
19665					[$author$project$W$Tooltip$left]),
19666				{
19667					cY: _List_fromArray(
19668						[
19669							$elm$html$Html$text('Hello!')
19670						]),
19671					e1: _List_fromArray(
19672						[
19673							$elm$html$Html$text('This is a tooltip!')
19674						])
19675				})),
19676			_Utils_Tuple2(
19677			'Right',
19678			A2(
19679				$author$project$W$Tooltip$view,
19680				_List_fromArray(
19681					[$author$project$W$Tooltip$right]),
19682				{
19683					cY: _List_fromArray(
19684						[
19685							$elm$html$Html$text('Hello!')
19686						]),
19687					e1: _List_fromArray(
19688						[
19689							$elm$html$Html$text('This is a tooltip!')
19690						])
19691				})),
19692			_Utils_Tuple2(
19693			'Always Visible',
19694			A2(
19695				$author$project$W$Tooltip$view,
19696				_List_fromArray(
19697					[$author$project$W$Tooltip$alwaysVisible]),
19698				{
19699					cY: _List_fromArray(
19700						[
19701							$elm$html$Html$text('Hello!')
19702						]),
19703					e1: _List_fromArray(
19704						[
19705							$elm$html$Html$text('Helloo!')
19706						])
19707				})),
19708			_Utils_Tuple2(
19709			'Fast',
19710			A2(
19711				$author$project$W$Tooltip$view,
19712				_List_fromArray(
19713					[$author$project$W$Tooltip$fast]),
19714				{
19715					cY: _List_fromArray(
19716						[
19717							$elm$html$Html$text('Hello!')
19718						]),
19719					e1: _List_fromArray(
19720						[
19721							$elm$html$Html$text('This is a blazingly fast tooltip!')
19722						])
19723				})),
19724			_Utils_Tuple2(
19725			'Slow',
19726			A2(
19727				$author$project$W$Tooltip$view,
19728				_List_fromArray(
19729					[$author$project$W$Tooltip$slow]),
19730				{
19731					cY: _List_fromArray(
19732						[
19733							$elm$html$Html$text('Hello!')
19734						]),
19735					e1: _List_fromArray(
19736						[
19737							$elm$html$Html$text('This is a sloow tooltip!')
19738						])
19739				}))
19740		]),
19741	$dtwrks$elm_book$ElmBook$Chapter$chapter('Tooltip'));
19742var $author$project$W$Modal$Attribute = $elm$core$Basics$identity;
19743var $author$project$W$Modal$absolute = function (attrs) {
19744	return _Utils_update(
19745		attrs,
19746		{a_: true});
19747};
19748var $author$project$W$Container$Left = 0;
19749var $author$project$W$Container$alignLeft = function (attr) {
19750	return _Utils_update(
19751		attr,
19752		{
19753			L: $elm$core$Maybe$Just(0)
19754		});
19755};
19756var $author$project$W$Container$fill = $author$project$W$Container$addClass('ew-grow');
19757var $author$project$W$Modal$noBlur = function (attrs) {
19758	return _Utils_update(
19759		attrs,
19760		{bG: false});
19761};
19762var $author$project$W$Container$styleAttrs = function (v) {
19763	return function (attr) {
19764		return _Utils_update(
19765			attr,
19766			{bu: v});
19767	};
19768};
19769var $author$project$W$Modal$Stateful = function (a) {
19770	return {$: 1, a: a};
19771};
19772var $author$project$W$Modal$defaultAttrs = {a_: false, bG: true, b$: _List_Nil, cb: 480, cR: 1000};
19773var $author$project$W$Modal$applyAttrs = function (attrs) {
19774	return A3(
19775		$elm$core$List$foldl,
19776		F2(
19777			function (_v0, a) {
19778				var fn = _v0;
19779				return fn(a);
19780			}),
19781		$author$project$W$Modal$defaultAttrs,
19782		attrs);
19783};
19784var $elm$html$Html$Attributes$for = $elm$html$Html$Attributes$stringProperty('htmlFor');
19785var $author$project$W$Modal$toClosable = function (modal) {
19786	if (!modal.$) {
19787		var closeOnBackgroundClick = modal.a.bL;
19788		return closeOnBackgroundClick;
19789	} else {
19790		var onClose = modal.a.eD;
19791		return !_Utils_eq(onClose, $elm$core$Maybe$Nothing);
19792	}
19793};
19794var $author$project$W$Modal$toContent = function (modal) {
19795	if (!modal.$) {
19796		var content = modal.a.c$;
19797		return content;
19798	} else {
19799		var content = modal.a.c$;
19800		return content;
19801	}
19802};
19803var $author$project$W$Modal$view_ = F2(
19804	function (attrs_, props) {
19805		var viewCloseTrigger = function () {
19806			if (!props.$) {
19807				var id = props.a.fE;
19808				var closeOnBackgroundClick = props.a.bL;
19809				return closeOnBackgroundClick ? A2(
19810					$elm$html$Html$label,
19811					_List_fromArray(
19812						[
19813							$elm$html$Html$Attributes$for(id),
19814							$elm$html$Html$Attributes$class('ew-block'),
19815							$elm$html$Html$Attributes$class('ew-absolute ew-inset-0')
19816						]),
19817					_List_Nil) : $elm$html$Html$text('');
19818			} else {
19819				var onClose = props.a.eD;
19820				if (!onClose.$) {
19821					var onClose_ = onClose.a;
19822					return A2(
19823						$elm$html$Html$label,
19824						_List_fromArray(
19825							[
19826								$elm$html$Html$Events$onClick(onClose_),
19827								$elm$html$Html$Attributes$class('ew-absolute ew-inset-0')
19828							]),
19829						_List_Nil);
19830				} else {
19831					return $elm$html$Html$text('');
19832				}
19833			}
19834		}();
19835		var attrs = $author$project$W$Modal$applyAttrs(attrs_);
19836		var wrapper = A2(
19837			$elm$html$Html$div,
19838			_List_fromArray(
19839				[
19840					A2($elm$html$Html$Attributes$attribute, 'role', 'dialog'),
19841					$elm$html$Html$Attributes$class('ew-modal ew-hidden ew-opacity-0 ew-inset-0 ew-border-0 ew-bg-black/30'),
19842					A2(
19843					$elm$html$Html$Attributes$style,
19844					'z-index',
19845					$elm$core$String$fromInt(attrs.cR)),
19846					$elm$html$Html$Attributes$classList(
19847					_List_fromArray(
19848						[
19849							_Utils_Tuple2('ew-absolute', attrs.a_),
19850							_Utils_Tuple2('ew-fixed', !attrs.a_),
19851							_Utils_Tuple2(
19852							'ew-modal--is-open',
19853							function () {
19854								if (props.$ === 1) {
19855									var isOpen = props.a.ad;
19856									return isOpen;
19857								} else {
19858									return false;
19859								}
19860							}())
19861						])),
19862					attrs.bG ? A2($elm$html$Html$Attributes$style, 'backdrop-filter', 'blur(1px)') : $elm$html$Html$Attributes$class('')
19863				]),
19864			_List_fromArray(
19865				[
19866					viewCloseTrigger,
19867					A2(
19868					$elm$html$Html$div,
19869					_List_fromArray(
19870						[
19871							$elm$html$Html$Attributes$class('ew-modal-content'),
19872							$elm$html$Html$Attributes$class('ew-flex ew-absolute ew-inset-0'),
19873							$elm$html$Html$Attributes$classList(
19874							_List_fromArray(
19875								[
19876									_Utils_Tuple2(
19877									'ew-pointer-events-none',
19878									$author$project$W$Modal$toClosable(props))
19879								])),
19880							A2($elm$html$Html$Attributes$style, 'overflow-y', 'auto')
19881						]),
19882					_List_fromArray(
19883						[
19884							A2(
19885							$elm$html$Html$div,
19886							_List_fromArray(
19887								[
19888									$elm$html$Html$Attributes$class('ew-relative ew-overflow-visible'),
19889									$elm$html$Html$Attributes$class('ew-m-auto ew-max-w-full ew-p-4'),
19890									A2(
19891									$elm$html$Html$Attributes$style,
19892									'width',
19893									$elm$core$String$fromInt(attrs.cb) + 'px')
19894								]),
19895							_List_fromArray(
19896								[
19897									A2(
19898									$elm$html$Html$div,
19899									_Utils_ap(
19900										attrs.b$,
19901										_List_fromArray(
19902											[
19903												$elm$html$Html$Attributes$class('ew-relative ew-overflow-visible ew-pointer-events-auto'),
19904												$elm$html$Html$Attributes$class('ew-w-full ew-bg-base-bg ew-shadow-lg ew-rounded-lg')
19905											])),
19906									$author$project$W$Modal$toContent(props))
19907								]))
19908						]))
19909				]));
19910		if (!props.$) {
19911			var id = props.a.fE;
19912			return A2(
19913				$elm$html$Html$div,
19914				_List_Nil,
19915				_List_fromArray(
19916					[
19917						A3(
19918						$elm$html$Html$node,
19919						'input',
19920						_List_fromArray(
19921							[
19922								$elm$html$Html$Attributes$id(id),
19923								$elm$html$Html$Attributes$type_('checkbox'),
19924								$elm$html$Html$Attributes$class('ew-hidden ew-modal-toggle')
19925							]),
19926						_List_Nil),
19927						wrapper
19928					]));
19929		} else {
19930			return wrapper;
19931		}
19932	});
19933var $author$project$W$Modal$view = F2(
19934	function (attrs, props) {
19935		return A2(
19936			$author$project$W$Modal$view_,
19937			attrs,
19938			$author$project$W$Modal$Stateful(props));
19939	});
19940var $author$project$W$Modal$Stateless = function (a) {
19941	return {$: 0, a: a};
19942};
19943var $author$project$W$Modal$viewToggable = F2(
19944	function (attrs, props) {
19945		return A2(
19946			$author$project$W$Modal$view_,
19947			attrs,
19948			$author$project$W$Modal$Stateless(
19949				{bL: false, c$: props.c$, fE: props.fE}));
19950	});
19951var $author$project$W$Modal$viewToggableWithAutoClose = F2(
19952	function (attrs, props) {
19953		return A2(
19954			$author$project$W$Modal$view_,
19955			attrs,
19956			$author$project$W$Modal$Stateless(
19957				{bL: true, c$: props.c$, fE: props.fE}));
19958	});
19959var $author$project$W$Modal$viewToggle = F2(
19960	function (id_, content) {
19961		return A2(
19962			$elm$html$Html$label,
19963			_List_fromArray(
19964				[
19965					$elm$html$Html$Attributes$for(id_)
19966				]),
19967			content);
19968	});
19969var $author$project$Chapters$Layout$Modal$chapter_ = function () {
19970	var wrapper = $author$project$W$Container$view(
19971		_List_fromArray(
19972			[
19973				$author$project$W$Container$background(
19974				$uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.07)),
19975				$author$project$W$Container$alignCenterY,
19976				$author$project$W$Container$alignCenterX,
19977				$author$project$W$Container$styleAttrs(
19978				_List_fromArray(
19979					[
19980						_Utils_Tuple2('height', '400px')
19981					]))
19982			]));
19983	var content = A2(
19984		$author$project$W$Container$view,
19985		_List_fromArray(
19986			[
19987				$author$project$W$Container$fill,
19988				$author$project$W$Container$alignLeft,
19989				$author$project$W$Container$pad_4,
19990				$author$project$W$Container$styleAttrs(
19991				_List_fromArray(
19992					[
19993						_Utils_Tuple2('height', '600px')
19994					]))
19995			]),
19996		_List_fromArray(
19997			[
19998				A2(
19999				$author$project$W$Popover$viewNext,
20000				_List_fromArray(
20001					[
20002						$author$project$W$Popover$right,
20003						$author$project$W$Popover$offset(4),
20004						$author$project$W$Popover$width(100)
20005					]),
20006				{
20007					c$: _List_fromArray(
20008						[
20009							A2(
20010							$author$project$W$Text$view,
20011							_List_Nil,
20012							_List_fromArray(
20013								[
20014									$elm$html$Html$text('This should be visible')
20015								]))
20016						]),
20017					dU: _List_fromArray(
20018						[
20019							A2(
20020							$author$project$W$Button$viewDummy,
20021							_List_Nil,
20022							_List_fromArray(
20023								[
20024									$elm$html$Html$text('Popovers should be usable inside modals')
20025								]))
20026						])
20027				})
20028			]));
20029	return A2(
20030		$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
20031		_List_fromArray(
20032			[
20033				_Utils_Tuple2(
20034				'Modal',
20035				wrapper(
20036					_List_fromArray(
20037						[
20038							A2(
20039							$author$project$W$Modal$view,
20040							_List_fromArray(
20041								[$author$project$W$Modal$absolute, $author$project$W$Modal$noBlur]),
20042							{
20043								c$: _List_fromArray(
20044									[content]),
20045								ad: true,
20046								eD: $elm$core$Maybe$Nothing
20047							})
20048						]))),
20049				_Utils_Tuple2(
20050				'Modal with onClose',
20051				wrapper(
20052					_List_fromArray(
20053						[
20054							A2(
20055							$author$project$W$Modal$view,
20056							_List_fromArray(
20057								[$author$project$W$Modal$absolute, $author$project$W$Modal$noBlur]),
20058							{
20059								c$: _List_fromArray(
20060									[content]),
20061								ad: true,
20062								eD: $elm$core$Maybe$Just(
20063									$dtwrks$elm_book$ElmBook$Actions$logAction('onClose'))
20064							})
20065						]))),
20066				_Utils_Tuple2(
20067				'Modal with toggle',
20068				wrapper(
20069					_List_fromArray(
20070						[
20071							A2(
20072							$author$project$W$Modal$viewToggable,
20073							_List_fromArray(
20074								[$author$project$W$Modal$absolute, $author$project$W$Modal$noBlur]),
20075							{
20076								c$: _List_fromArray(
20077									[content]),
20078								fE: 'my-modal'
20079							}),
20080							A2(
20081							$author$project$W$Modal$viewToggle,
20082							'my-modal',
20083							_List_fromArray(
20084								[
20085									A2(
20086									$author$project$W$Button$viewDummy,
20087									_List_Nil,
20088									_List_fromArray(
20089										[
20090											$elm$html$Html$text('Toggle Modal')
20091										]))
20092								]))
20093						]))),
20094				_Utils_Tuple2(
20095				'Modal with toggle + close on background',
20096				wrapper(
20097					_List_fromArray(
20098						[
20099							A2(
20100							$author$project$W$Modal$viewToggableWithAutoClose,
20101							_List_fromArray(
20102								[$author$project$W$Modal$absolute, $author$project$W$Modal$noBlur]),
20103							{
20104								c$: _List_fromArray(
20105									[content]),
20106								fE: 'my-modal-auto-close'
20107							}),
20108							A2(
20109							$author$project$W$Modal$viewToggle,
20110							'my-modal-auto-close',
20111							_List_fromArray(
20112								[
20113									A2(
20114									$author$project$W$Button$viewDummy,
20115									_List_Nil,
20116									_List_fromArray(
20117										[
20118											$elm$html$Html$text('Toggle Modal')
20119										]))
20120								]))
20121						])))
20122			]),
20123		$dtwrks$elm_book$ElmBook$Chapter$chapter('Modal'));
20124}();
20125var $author$project$Chapters$Overview$Admin = 2;
20126var $author$project$Chapters$Overview$Editor = 1;
20127var $author$project$Chapters$Overview$OnInputMask = F2(
20128	function (a, b) {
20129		return {$: 0, a: a, b: b};
20130	});
20131var $author$project$Chapters$Overview$OnSelect = function (a) {
20132	return {$: 1, a: a};
20133};
20134var $author$project$Chapters$Overview$OnSelectTime = function (a) {
20135	return {$: 2, a: a};
20136};
20137var $author$project$Chapters$Overview$Viewer = 0;
20138var $author$project$W$Heading$alignCenter = function (attrs) {
20139	return _Utils_update(
20140		attrs,
20141		{aX: 'ew-text-center'});
20142};
20143var $author$project$W$Text$alignCenter = function (attrs) {
20144	return _Utils_update(
20145		attrs,
20146		{aX: 'ew-text-center'});
20147};
20148var $author$project$W$Container$Top = 0;
20149var $author$project$W$Container$alignTop = function (attr) {
20150	return _Utils_update(
20151		attr,
20152		{
20153			as: $elm$core$Maybe$Just(0)
20154		});
20155};
20156var $uncover_co$elm_theme$Theme$baseForegroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('base-fg');
20157var $uncover_co$elm_theme$Theme$ClassStrategy = function (a) {
20158	return {$: 1, a: a};
20159};
20160var $uncover_co$elm_theme$Theme$classStrategy = $uncover_co$elm_theme$Theme$ClassStrategy;
20161var $uncover_co$elm_theme$Theme$ThemeBuilder = $elm$core$Basics$identity;
20162var $uncover_co$elm_theme$Theme$Theme = $elm$core$Basics$identity;
20163var $elm$core$String$concat = function (strings) {
20164	return A2($elm$core$String$join, '', strings);
20165};
20166var $avh4$elm_color$Color$toCssString = function (_v0) {
20167	var r = _v0.a;
20168	var g = _v0.b;
20169	var b = _v0.c;
20170	var a = _v0.d;
20171	var roundTo = function (x) {
20172		return $elm$core$Basics$round(x * 1000) / 1000;
20173	};
20174	var pct = function (x) {
20175		return $elm$core$Basics$round(x * 10000) / 100;
20176	};
20177	return $elm$core$String$concat(
20178		_List_fromArray(
20179			[
20180				'rgba(',
20181				$elm$core$String$fromFloat(
20182				pct(r)),
20183				'%,',
20184				$elm$core$String$fromFloat(
20185				pct(g)),
20186				'%,',
20187				$elm$core$String$fromFloat(
20188				pct(b)),
20189				'%,',
20190				$elm$core$String$fromFloat(
20191				roundTo(a)),
20192				')'
20193			]));
20194};
20195var $uncover_co$elm_theme$Theme$toThemeString = function (_v0) {
20196	var data = _v0.c;
20197	var extra = _v0.c5;
20198	var colorChannels = function (color) {
20199		var c = $avh4$elm_color$Color$toRgba(color);
20200		return A2(
20201			$elm$core$String$join,
20202			' ',
20203			A2(
20204				$elm$core$List$map,
20205				function (c_) {
20206					return $elm$core$String$fromInt(
20207						$elm$core$Basics$ceiling(c_ * 255));
20208				},
20209				_List_fromArray(
20210					[c.gh, c.fx, c.fd])));
20211	};
20212	var colorVars = F2(
20213		function (name, color) {
20214			return _List_fromArray(
20215				[
20216					_Utils_Tuple2(
20217					name,
20218					$avh4$elm_color$Color$toCssString(color)),
20219					_Utils_Tuple2(
20220					name + '-ch',
20221					colorChannels(color))
20222				]);
20223		});
20224	var colorSpec = F2(
20225		function (name, color) {
20226			return $elm$core$List$concat(
20227				_List_fromArray(
20228					[
20229						A2(colorVars, name + '-bg', color.bF),
20230						A2(colorVars, name + '-fg', color.da),
20231						A2(colorVars, name + '-aux', color.cV)
20232					]));
20233		});
20234	return A2(
20235		$elm$core$String$join,
20236		';',
20237		A2(
20238			$elm$core$List$map,
20239			function (_v1) {
20240				var k = _v1.a;
20241				var v = _v1.b;
20242				return '--' + (k + (':' + v));
20243			},
20244			A2(
20245				$elm$core$List$map,
20246				$elm$core$Tuple$mapFirst(
20247					function (v) {
20248						return $uncover_co$elm_theme$Theme$namespace + ('-' + v);
20249					}),
20250				$elm$core$List$concat(
20251					_List_fromArray(
20252						[
20253							_List_fromArray(
20254							[
20255								_Utils_Tuple2('font-heading', data.z.dd),
20256								_Utils_Tuple2('font-text', data.z.j),
20257								_Utils_Tuple2('font-code', data.z.a4)
20258							]),
20259							A2(colorSpec, 'base', data.d1),
20260							A2(colorSpec, 'neutral', data.dq),
20261							A2(colorSpec, 'primary', data.dz),
20262							A2(colorSpec, 'secondary', data.dC),
20263							A2(colorSpec, 'success', data.gr),
20264							A2(colorSpec, 'warning', data.dX),
20265							A2(colorSpec, 'danger', data.c0),
20266							extra
20267						])))));
20268};
20269var $uncover_co$elm_theme$Theme$toTheme = function (builder) {
20270	return {
20271		cX: builder,
20272		eY: $uncover_co$elm_theme$Theme$toThemeString(builder)
20273	};
20274};
20275var $uncover_co$elm_theme$Theme$new = function (data) {
20276	return $uncover_co$elm_theme$Theme$toTheme(
20277		{c: data, c5: _List_Nil});
20278};
20279var $uncover_co$elm_theme$Theme$darkTheme = $uncover_co$elm_theme$Theme$new(
20280	{
20281		d1: {
20282			cV: A3($avh4$elm_color$Color$rgb255, 150, 154, 162),
20283			bF: A3($avh4$elm_color$Color$rgb255, 37, 40, 48),
20284			da: A3($avh4$elm_color$Color$rgb255, 240, 240, 240)
20285		},
20286		c0: {
20287			cV: A3($avh4$elm_color$Color$rgb255, 56, 27, 0),
20288			bF: A3($avh4$elm_color$Color$rgb255, 255, 92, 95),
20289			da: A3($avh4$elm_color$Color$rgb255, 251, 116, 116)
20290		},
20291		z: {a4: 'monospace', dd: 'system-ui, sans-serif', j: 'system-ui, sans-serif'},
20292		dq: {
20293			cV: A3($avh4$elm_color$Color$rgb255, 255, 255, 255),
20294			bF: A3($avh4$elm_color$Color$rgb255, 96, 110, 123),
20295			da: A3($avh4$elm_color$Color$rgb255, 199, 206, 214)
20296		},
20297		dz: {
20298			cV: A3($avh4$elm_color$Color$rgb255, 255, 255, 255),
20299			bF: A3($avh4$elm_color$Color$rgb255, 0, 122, 204),
20300			da: A3($avh4$elm_color$Color$rgb255, 105, 171, 247)
20301		},
20302		dC: {
20303			cV: A3($avh4$elm_color$Color$rgb255, 255, 255, 255),
20304			bF: A3($avh4$elm_color$Color$rgb255, 199, 51, 186),
20305			da: A3($avh4$elm_color$Color$rgb255, 248, 142, 239)
20306		},
20307		gr: {
20308			cV: A3($avh4$elm_color$Color$rgb255, 119, 223, 59),
20309			bF: A3($avh4$elm_color$Color$rgb255, 74, 200, 0),
20310			da: A3($avh4$elm_color$Color$rgb255, 119, 223, 59)
20311		},
20312		dX: {
20313			cV: A3($avh4$elm_color$Color$rgb255, 91, 65, 0),
20314			bF: A3($avh4$elm_color$Color$rgb255, 251, 179, 0),
20315			da: A3($avh4$elm_color$Color$rgb255, 255, 215, 114)
20316		}
20317	});
20318var $author$project$W$InputText$exactLength = function (v) {
20319	return function (attrs) {
20320		return _Utils_update(
20321			attrs,
20322			{
20323				N: $elm$core$Maybe$Just(v),
20324				aL: $elm$core$Maybe$Just(v)
20325			});
20326	};
20327};
20328var $uncover_co$elm_theme$Theme$fromTheme = function (_v0) {
20329	var theme = _v0;
20330	return theme.cX;
20331};
20332var $author$project$W$Container$gap_4 = $author$project$W$Container$addClass('ew-gap-4');
20333var $dtwrks$elm_book$ElmBook$ComponentOptions$hiddenLabel = F2(
20334	function (hiddenLabel_, _v0) {
20335		var settings = _v0;
20336		return _Utils_update(
20337			settings,
20338			{
20339				fC: $elm$core$Maybe$Just(hiddenLabel_)
20340			});
20341	});
20342var $author$project$W$Container$htmlAttrs = function (v) {
20343	return function (attr) {
20344		return _Utils_update(
20345			attr,
20346			{b$: v});
20347	};
20348};
20349var $author$project$W$Container$padTop_2 = $author$project$W$Container$addClass('ew-pt-2');
20350var $author$project$W$Heading$primary = function (attrs) {
20351	return _Utils_update(
20352		attrs,
20353		{U: $uncover_co$elm_theme$Theme$primaryForeground});
20354};
20355var $uncover_co$elm_theme$Internal$Hash$HashData = F4(
20356	function (shift, seed, hash, charsProcessed) {
20357		return {ay: charsProcessed, aC: hash, aq: seed, aU: shift};
20358	});
20359var $uncover_co$elm_theme$Internal$Hash$c1 = 3432918353;
20360var $uncover_co$elm_theme$Internal$Hash$c2 = 461845907;
20361var $uncover_co$elm_theme$Internal$Hash$multiplyBy = F2(
20362	function (b, a) {
20363		return ((a & 65535) * b) + ((((a >>> 16) * b) & 65535) << 16);
20364	});
20365var $elm$core$Bitwise$or = _Bitwise_or;
20366var $uncover_co$elm_theme$Internal$Hash$rotlBy = F2(
20367	function (b, a) {
20368		return (a << b) | (a >>> (32 - b));
20369	});
20370var $elm$core$Bitwise$xor = _Bitwise_xor;
20371var $uncover_co$elm_theme$Internal$Hash$finalize = function (data) {
20372	var acc = (!(!data.aC)) ? (data.aq ^ A2(
20373		$uncover_co$elm_theme$Internal$Hash$multiplyBy,
20374		$uncover_co$elm_theme$Internal$Hash$c2,
20375		A2(
20376			$uncover_co$elm_theme$Internal$Hash$rotlBy,
20377			15,
20378			A2($uncover_co$elm_theme$Internal$Hash$multiplyBy, $uncover_co$elm_theme$Internal$Hash$c1, data.aC)))) : data.aq;
20379	var h0 = acc ^ data.ay;
20380	var h1 = A2($uncover_co$elm_theme$Internal$Hash$multiplyBy, 2246822507, h0 ^ (h0 >>> 16));
20381	var h2 = A2($uncover_co$elm_theme$Internal$Hash$multiplyBy, 3266489909, h1 ^ (h1 >>> 13));
20382	return (h2 ^ (h2 >>> 16)) >>> 0;
20383};
20384var $elm$core$String$foldl = _String_foldl;
20385var $uncover_co$elm_theme$Internal$Hash$mix = F2(
20386	function (h1, k1) {
20387		return A2(
20388			$uncover_co$elm_theme$Internal$Hash$multiplyBy,
20389			5,
20390			A2(
20391				$uncover_co$elm_theme$Internal$Hash$rotlBy,
20392				13,
20393				h1 ^ A2(
20394					$uncover_co$elm_theme$Internal$Hash$multiplyBy,
20395					$uncover_co$elm_theme$Internal$Hash$c2,
20396					A2(
20397						$uncover_co$elm_theme$Internal$Hash$rotlBy,
20398						15,
20399						A2($uncover_co$elm_theme$Internal$Hash$multiplyBy, $uncover_co$elm_theme$Internal$Hash$c1, k1))))) + 3864292196;
20400	});
20401var $uncover_co$elm_theme$Internal$Hash$hashFold = F2(
20402	function (c, data) {
20403		var res = data.aC | ((255 & $elm$core$Char$toCode(c)) << data.aU);
20404		var _v0 = data.aU;
20405		if (_v0 === 24) {
20406			return {
20407				ay: data.ay + 1,
20408				aC: 0,
20409				aq: A2($uncover_co$elm_theme$Internal$Hash$mix, data.aq, res),
20410				aU: 0
20411			};
20412		} else {
20413			return {ay: data.ay + 1, aC: res, aq: data.aq, aU: data.aU + 8};
20414		}
20415	});
20416var $uncover_co$elm_theme$Internal$Hash$hashString = F2(
20417	function (seed, str) {
20418		return $uncover_co$elm_theme$Internal$Hash$finalize(
20419			A3(
20420				$elm$core$String$foldl,
20421				$uncover_co$elm_theme$Internal$Hash$hashFold,
20422				A4($uncover_co$elm_theme$Internal$Hash$HashData, 0, seed, 0, 0),
20423				str));
20424	});
20425var $uncover_co$elm_theme$Theme$hashString = $uncover_co$elm_theme$Internal$Hash$hashString(0);
20426var $uncover_co$elm_theme$Theme$toString = function (_v0) {
20427	var theme = _v0;
20428	return theme.eY;
20429};
20430var $uncover_co$elm_theme$Theme$provider_ = function (props) {
20431	var targetClass = 'theme-' + $elm$core$String$fromInt(
20432		$uncover_co$elm_theme$Theme$hashString(
20433			_Utils_ap(
20434				$uncover_co$elm_theme$Theme$toString(props.ey),
20435				A2(
20436					$elm$core$Maybe$withDefault,
20437					'',
20438					A2($elm$core$Maybe$map, $uncover_co$elm_theme$Theme$toString, props.d7)))));
20439	var _v0 = props.d7;
20440	if (!_v0.$) {
20441		var dark = _v0.a;
20442		var _v1 = props.eX;
20443		if (_v1.$ === 1) {
20444			var darkClass = _v1.a;
20445			return {
20446				aQ: F2(
20447					function (attrs, children) {
20448						return A2(
20449							$elm$html$Html$div,
20450							A2(
20451								$elm$core$List$cons,
20452								$elm$html$Html$Attributes$class(targetClass),
20453								attrs),
20454							children);
20455					}),
20456				bu: A3(
20457					$elm$html$Html$node,
20458					'style',
20459					_List_Nil,
20460					_List_fromArray(
20461						[
20462							$elm$html$Html$text(
20463							'.' + (targetClass + (' { ' + ($uncover_co$elm_theme$Theme$toString(props.ey) + (' } .' + (darkClass + (' .' + (targetClass + (' { ' + ($uncover_co$elm_theme$Theme$toString(dark) + '; color-scheme: dark; }'))))))))))
20464						]))
20465			};
20466		} else {
20467			return {
20468				aQ: F2(
20469					function (attrs, children) {
20470						return A2(
20471							$elm$html$Html$div,
20472							A2(
20473								$elm$core$List$cons,
20474								$elm$html$Html$Attributes$class(targetClass),
20475								attrs),
20476							children);
20477					}),
20478				bu: A3(
20479					$elm$html$Html$node,
20480					'style',
20481					_List_Nil,
20482					_List_fromArray(
20483						[
20484							$elm$html$Html$text(
20485							'.' + (targetClass + (' { ' + ($uncover_co$elm_theme$Theme$toString(props.ey) + (' } @media (prefers-color-scheme: dark) { .' + (targetClass + (' { ' + ($uncover_co$elm_theme$Theme$toString(dark) + '; color-scheme: dark; } }'))))))))
20486						]))
20487			};
20488		}
20489	} else {
20490		return {
20491			aQ: F2(
20492				function (attrs, children) {
20493					return A2(
20494						$elm$html$Html$div,
20495						A2(
20496							$elm$core$List$cons,
20497							$elm$html$Html$Attributes$class(targetClass),
20498							attrs),
20499						children);
20500				}),
20501			bu: A3(
20502				$elm$html$Html$node,
20503				'style',
20504				_List_Nil,
20505				_List_fromArray(
20506					[
20507						$elm$html$Html$text(
20508						'.' + (targetClass + (' { ' + ($uncover_co$elm_theme$Theme$toString(props.ey) + ' }'))))
20509					]))
20510		};
20511	}
20512};
20513var $uncover_co$elm_theme$Theme$providerWithDarkMode = F3(
20514	function (props, attrs, children) {
20515		return function (data) {
20516			return A2(
20517				data.aQ,
20518				attrs,
20519				A2($elm$core$List$cons, data.bu, children));
20520		}(
20521			$uncover_co$elm_theme$Theme$provider_(
20522				{
20523					d7: $elm$core$Maybe$Just(props.d7),
20524					ey: props.ey,
20525					eX: props.eX
20526				}));
20527	});
20528var $dtwrks$elm_book$ElmBook$Chapter$render = F2(
20529	function (body, _v0) {
20530		var builder = _v0;
20531		return _Utils_update(
20532			builder,
20533			{
20534				fe: _Utils_ap(builder.fe, body)
20535			});
20536	});
20537var $author$project$W$InputText$required = function (v) {
20538	return function (attrs) {
20539		return _Utils_update(
20540			attrs,
20541			{cw: v});
20542	};
20543};
20544var $author$project$Chapters$Overview$roleToString = function (role) {
20545	switch (role) {
20546		case 0:
20547			return 'Viewer';
20548		case 1:
20549			return 'Editor';
20550		default:
20551			return 'Admin';
20552	}
20553};
20554var $Massolari$elm_mask$Mask$maskStringHelper = F3(
20555	function (pattern, value, result) {
20556		maskStringHelper:
20557		while (true) {
20558			var _v0 = $elm$core$String$uncons(pattern);
20559			if (!_v0.$) {
20560				var _v1 = _v0.a;
20561				var headPattern = _v1.a;
20562				var tailPattern = _v1.b;
20563				var _v2 = $elm$core$String$uncons(value);
20564				if (!_v2.$) {
20565					var _v3 = _v2.a;
20566					var charValue = _v3.a;
20567					var rest = _v3.b;
20568					if ('#' === headPattern) {
20569						var $temp$pattern = tailPattern,
20570							$temp$value = rest,
20571							$temp$result = _Utils_ap(
20572							result,
20573							$elm$core$String$fromChar(charValue));
20574						pattern = $temp$pattern;
20575						value = $temp$value;
20576						result = $temp$result;
20577						continue maskStringHelper;
20578					} else {
20579						var notHashtagHeadPattern = headPattern;
20580						var $temp$pattern = tailPattern,
20581							$temp$value = value,
20582							$temp$result = _Utils_ap(
20583							result,
20584							$elm$core$String$fromChar(notHashtagHeadPattern));
20585						pattern = $temp$pattern;
20586						value = $temp$value;
20587						result = $temp$result;
20588						continue maskStringHelper;
20589					}
20590				} else {
20591					return A2($elm$core$String$contains, '#', pattern) ? result : _Utils_ap(result, pattern);
20592				}
20593			} else {
20594				return result;
20595			}
20596		}
20597	});
20598var $Massolari$elm_mask$Mask$string = F2(
20599	function (pattern, value) {
20600		return A3($Massolari$elm_mask$Mask$maskStringHelper, pattern, value, '');
20601	});
20602var $dtwrks$elm_book$ElmBook$Actions$mapUpdate = F2(
20603	function (config, msg) {
20604		var update_ = F2(
20605			function (msg_, state) {
20606				return function (model) {
20607					return _Utils_Tuple2(
20608						A2(config.gu, state, model),
20609						$elm$core$Platform$Cmd$none);
20610				}(
20611					A2(
20612						config.gx,
20613						msg_,
20614						config.fv(state)));
20615			});
20616		return A2($dtwrks$elm_book$ElmBook$Actions$updateStateWithCmdWith, update_, msg);
20617	});
20618var $author$project$Chapters$Overview$update = F2(
20619	function (msg, model) {
20620		switch (msg.$) {
20621			case 0:
20622				var result = msg.a;
20623				var v = msg.b;
20624				return _Utils_update(
20625					model,
20626					{
20627						b2: v,
20628						b3: $elm$core$Maybe$Just(result)
20629					});
20630			case 1:
20631				var v = msg.a;
20632				return _Utils_update(
20633					model,
20634					{cC: v});
20635			default:
20636				var v = msg.a;
20637				return _Utils_update(
20638					model,
20639					{cG: v});
20640		}
20641	});
20642var $author$project$Chapters$Overview$toMsg = $dtwrks$elm_book$ElmBook$Actions$mapUpdate(
20643	{
20644		fv: function ($) {
20645			return $.aP;
20646		},
20647		gu: F2(
20648			function (s, m) {
20649				return _Utils_update(
20650					s,
20651					{aP: m});
20652			}),
20653		gx: $author$project$Chapters$Overview$update
20654	});
20655var $uncover_co$elm_theme$Theme$toThemeData = function (_v0) {
20656	var theme = _v0;
20657	var _v1 = theme.cX;
20658	var builder = _v1;
20659	return builder.c;
20660};
20661var $author$project$W$Container$vertical = function (attr) {
20662	return _Utils_update(
20663		attr,
20664		{aN: 0});
20665};
20666var $uncover_co$elm_theme$Theme$withBaseBackground = F2(
20667	function (v, _v0) {
20668		var theme = _v0;
20669		var data = theme.c;
20670		var colorSet = data.d1;
20671		return _Utils_update(
20672			theme,
20673			{
20674				c: _Utils_update(
20675					data,
20676					{
20677						d1: _Utils_update(
20678							colorSet,
20679							{bF: v})
20680					})
20681			});
20682	});
20683var $uncover_co$elm_theme$Theme$withBaseForeground = F2(
20684	function (v, _v0) {
20685		var theme = _v0;
20686		var data = theme.c;
20687		var colorSet = data.d1;
20688		return _Utils_update(
20689			theme,
20690			{
20691				c: _Utils_update(
20692					data,
20693					{
20694						d1: _Utils_update(
20695							colorSet,
20696							{da: v})
20697					})
20698			});
20699	});
20700var $dtwrks$elm_book$ElmBook$Internal$Helpers$applyAttributes = F2(
20701	function (fns, a) {
20702		return A3($elm$core$List$foldl, $elm$core$Basics$apL, a, fns);
20703	});
20704var $dtwrks$elm_book$ElmBook$Chapter$withComponentOptions = F2(
20705	function (attributes, _v0) {
20706		var config = _v0;
20707		return _Utils_update(
20708			config,
20709			{
20710				d6: A2($dtwrks$elm_book$ElmBook$Internal$Helpers$applyAttributes, attributes, config.d6)
20711			});
20712	});
20713var $uncover_co$elm_theme$Theme$withFontHeading = F2(
20714	function (v, _v0) {
20715		var theme = _v0;
20716		var data = theme.c;
20717		var fonts = data.z;
20718		return _Utils_update(
20719			theme,
20720			{
20721				c: _Utils_update(
20722					data,
20723					{
20724						z: _Utils_update(
20725							fonts,
20726							{dd: v})
20727					})
20728			});
20729	});
20730var $uncover_co$elm_theme$Theme$withFontText = F2(
20731	function (v, _v0) {
20732		var theme = _v0;
20733		var data = theme.c;
20734		var fonts = data.z;
20735		return _Utils_update(
20736			theme,
20737			{
20738				c: _Utils_update(
20739					data,
20740					{
20741						z: _Utils_update(
20742							fonts,
20743							{j: v})
20744					})
20745			});
20746	});
20747var $uncover_co$elm_theme$Theme$withPrimary = F2(
20748	function (v, _v0) {
20749		var theme = _v0;
20750		var data = theme.c;
20751		return _Utils_update(
20752			theme,
20753			{
20754				c: _Utils_update(
20755					data,
20756					{dz: v})
20757			});
20758	});
20759var $uncover_co$elm_theme$Theme$withPrimaryForeground = F2(
20760	function (v, _v0) {
20761		var theme = _v0;
20762		var data = theme.c;
20763		var colorSet = data.dz;
20764		return _Utils_update(
20765			theme,
20766			{
20767				c: _Utils_update(
20768					data,
20769					{
20770						dz: _Utils_update(
20771							colorSet,
20772							{da: v})
20773					})
20774			});
20775	});
20776var $uncover_co$elm_theme$Theme$withSecondary = F2(
20777	function (v, _v0) {
20778		var theme = _v0;
20779		var data = theme.c;
20780		return _Utils_update(
20781			theme,
20782			{
20783				c: _Utils_update(
20784					data,
20785					{dC: v})
20786			});
20787	});
20788var $dtwrks$elm_book$ElmBook$Chapter$withStatefulComponentList = F2(
20789	function (componentList, _v0) {
20790		var builder = _v0;
20791		return _Utils_update(
20792			builder,
20793			{
20794				m: _Utils_ap(
20795					A2($elm$core$List$map, $dtwrks$elm_book$ElmBook$Chapter$fromTupleStateful, componentList),
20796					builder.m)
20797			});
20798	});
20799var $author$project$Chapters$Overview$chapter_ = A2(
20800	$dtwrks$elm_book$ElmBook$Chapter$render,
20801	'\n**elm-widgets** is a collection of stateless widgets designed to make your experience building elm applications easier and even more delightful.\n\n---\n\n## Stateless Views\n\nEasy to plug-n-play. No state management. No glue code.\n\n<component with-label="modal" />\n\n```elm\nW.Modal.viewToggable []\n    { id = "my-modal"\n    , content = [ ... ]\n    }\n\nW.Modal.viewToggle "my-modal"\n    [ W.Button.viewDummy []\n        [ H.text "Toggle Modal" ]\n    ]\n```\n\n\n## Let\'s use the platform\n\nWe\'re trying to push the boundaries of what is currently possible by the use of HTML, CSS and Elm\'s views and event decoders.\n\n<component with-label="input-mask" />\n\n```elm\nW.InputText.viewWithValidation\n    [ W.InputText.mask (Mask.string "(##) ####-####")\n    , W.InputText.required True\n    , W.InputText.exactLength 10\n    , W.InputText.placeholder "(55) 9999-9999"\n    ]\n    { onInput = GotInput\n    , value = model.input\n    }\n```\n\n> Note that the `Mask.string` function used in this example is not actually part of **elm-widgets** but you can find one such package [here](https://package.elm-lang.org/packages/Massolari/elm-mask/latest/).\n\n## Type-safe inputs and outputs\n\nKeep using your Elm types on your view boundaries.\n\n<component with-label="select" />\n\n```elm\ntype Msg\n    = SelectedTime (Maybe Time.Posix)\n    | SelectedRole Role.Role\n\nW.InputTime.view []\n    { value = currentDate\n    , timeZone = Time.utc\n    , onInput = SelectedDate\n    }\n\nW.InputSelect.view\n    [ W.InputSelect.prefix "Role"\n    ]\n    { value = Role.Viewer\n    , options = [ Role.Viewer, Role.Editor, Role.Admin ]\n    , toLabel = Role.toString\n    , onInput = SelectedRole\n    }\n```\n\n---\n\n## Responsive Layouts\n\nBecoming the most powerful layout DSL is not the goal of elm-widgets. However, we want to give you a batteries included experience so you don\'t need to worry about extra dependencies, CSS integration, tailwind, etc.\n\nWith our [W.Container](https://package.elm-lang.org/packages/uncover-co/elm-widgets/latest/W-Container) widget you should be able to create most of what you want and we even give you a few responsive possibilities:\n\n<component with-label="layout" />\n\n```elm\nW.Container.view\n    [ W.Container.gap_4\n    , W.Container.pad_4\n    , W.Container.horizontal\n    , W.Container.alignTop\n    , W.Container.alignRight\n    , W.Container.largeScreen\n        [ W.Container.vertical\n        , W.Container.alignCenterX\n        , W.Container.alignCenterY\n        ]\n    ]\n    [ square, square ]\n```\n\n> If you\'re using Elm, you probably already know we have some pretty powerful layouting engines like [elm-ui](todo). We\'re not aiming to replace that in any way! You should be able to easily use elm-widgets along side it. 🎉 \n\n---\n\n## Themable\n\nAll your widgets should be able to fit your app\'s look and feel.\n\n<component with-label="themable" />\n\nDark mode? Yeah! That too. Press that small moon up at the top! ☝️\n\n---\n\n## Next Steps\n\nOur goal with elm-widgets is to build a large collection of stateless, themable, accessible and type-safe widgets. The platform is constantly evolving and so the list of things we can do with plain HTML, CSS (and Elm pure functions and event decoders).\n\nIf you know of a particular CSS/HTML/Elm feature we could use to build something interesting or improve our current widgets, [open an issue](https://github.com/uncover-co/elm-widgets/issues) and let\'s discuss! \n\nWe care a lot about backwards compatibility, so we try to make things as stable as possible. With that in mind, we also maintain a second package called [uncover-co/elm-widgets-alpha](https://github.com/uncover-co/elm-widgets-alpha) where we may experiment with new widgets before their API is stable enough for release.\n\n',
20802	A2(
20803		$dtwrks$elm_book$ElmBook$Chapter$withStatefulComponentList,
20804		_List_fromArray(
20805			[
20806				_Utils_Tuple2(
20807				'modal',
20808				function (_v0) {
20809					return A2(
20810						$elm$html$Html$div,
20811						_List_fromArray(
20812							[
20813								A2(
20814								$elm$html$Html$Attributes$attribute,
20815								'style',
20816								'display: flex; align-items: center; justify-content: center; border-radius: 4px; padding: 40px 20px; background:' + $uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.1))
20817							]),
20818						_List_fromArray(
20819							[
20820								A2(
20821								$author$project$W$Modal$viewToggle,
20822								'my-modal-toggle',
20823								_List_fromArray(
20824									[
20825										A2(
20826										$author$project$W$Button$viewDummy,
20827										_List_Nil,
20828										_List_fromArray(
20829											[
20830												$elm$html$Html$text('Toggle Modal')
20831											]))
20832									])),
20833								A2(
20834								$author$project$W$Modal$viewToggableWithAutoClose,
20835								_List_Nil,
20836								{
20837									c$: _List_fromArray(
20838										[
20839											A2(
20840											$author$project$W$Container$view,
20841											_List_fromArray(
20842												[$author$project$W$Container$pad_8, $author$project$W$Container$gap_2]),
20843											_List_fromArray(
20844												[
20845													A2(
20846													$author$project$W$Heading$view,
20847													_List_fromArray(
20848														[$author$project$W$Heading$alignCenter, $author$project$W$Heading$primary]),
20849													_List_fromArray(
20850														[
20851															$elm$html$Html$text('Oh no... a modal package?')
20852														])),
20853													A2(
20854													$author$project$W$Text$view,
20855													_List_fromArray(
20856														[$author$project$W$Text$alignCenter]),
20857													_List_fromArray(
20858														[
20859															$elm$html$Html$text('Don\'t worry! No messages were harmed in the toggling of this modal!')
20860														]))
20861												]))
20862										]),
20863									fE: 'my-modal-toggle'
20864								})
20865							]));
20866				}),
20867				_Utils_Tuple2(
20868				'input-mask',
20869				function (state) {
20870					return A2(
20871						$elm$html$Html$map,
20872						$author$project$Chapters$Overview$toMsg,
20873						A2(
20874							$author$project$W$InputField$view,
20875							_List_fromArray(
20876								[
20877									$author$project$W$InputField$hint(
20878									_List_fromArray(
20879										[
20880											$elm$html$Html$text('Natively validates strings based on html attrs.')
20881										]))
20882								]),
20883							{
20884								en: _List_fromArray(
20885									[
20886										A2(
20887										$author$project$W$InputText$viewWithValidation,
20888										_List_fromArray(
20889											[
20890												$author$project$W$InputText$mask(
20891												$Massolari$elm_mask$Mask$string('(##) ####-####')),
20892												$author$project$W$InputText$required(true),
20893												$author$project$W$InputText$exactLength(10),
20894												$author$project$W$InputText$placeholder('(55) 9999-9999')
20895											]),
20896										{cm: $author$project$Chapters$Overview$OnInputMask, cN: state.aP.b2}),
20897										function () {
20898										var _v1 = state.aP.b3;
20899										if (!_v1.$) {
20900											var result = _v1.a;
20901											return A2(
20902												$author$project$W$Container$view,
20903												_List_fromArray(
20904													[$author$project$W$Container$padTop_2]),
20905												_List_fromArray(
20906													[
20907														function () {
20908														if (!result.$) {
20909															var value = result.a;
20910															return A2(
20911																$author$project$W$Message$view,
20912																_List_fromArray(
20913																	[$author$project$W$Message$success]),
20914																_List_fromArray(
20915																	[
20916																		$elm$html$Html$text('You got it! \"'),
20917																		$elm$html$Html$text(value),
20918																		$elm$html$Html$text('\" is a valid value!')
20919																	]));
20920														} else {
20921															var errors = result.a;
20922															return A2(
20923																$elm$core$Maybe$withDefault,
20924																$elm$html$Html$text(''),
20925																A2(
20926																	$elm$core$Maybe$map,
20927																	function (error) {
20928																		return A2(
20929																			$author$project$W$Message$view,
20930																			_List_fromArray(
20931																				[$author$project$W$Message$danger]),
20932																			_List_fromArray(
20933																				[
20934																					$elm$html$Html$text(
20935																					$author$project$W$InputText$errorToString(error))
20936																				]));
20937																	},
20938																	$elm$core$List$head(errors)));
20939														}
20940													}()
20941													]));
20942										} else {
20943											return $elm$html$Html$text('');
20944										}
20945									}()
20946									]),
20947								aK: _List_fromArray(
20948									[
20949										$elm$html$Html$text('Pattern Language')
20950									])
20951							}));
20952				}),
20953				_Utils_Tuple2(
20954				'select',
20955				function (state) {
20956					return A2(
20957						$elm$html$Html$map,
20958						$author$project$Chapters$Overview$toMsg,
20959						A2(
20960							$author$project$W$Container$view,
20961							_List_fromArray(
20962								[$author$project$W$Container$gap_2, $author$project$W$Container$horizontal]),
20963							_List_fromArray(
20964								[
20965									A2(
20966									$author$project$W$InputSelect$view,
20967									_List_Nil,
20968									{
20969										cm: $author$project$Chapters$Overview$OnSelect,
20970										f9: _List_fromArray(
20971											[0, 1, 2]),
20972										u: $author$project$Chapters$Overview$roleToString,
20973										cN: state.aP.cC
20974									}),
20975									A2(
20976									$author$project$W$InputTime$view,
20977									_List_Nil,
20978									{cm: $author$project$Chapters$Overview$OnSelectTime, cN: state.aP.cG})
20979								])));
20980				}),
20981				_Utils_Tuple2(
20982				'layout',
20983				function (_v3) {
20984					var square = A2(
20985						$elm$html$Html$div,
20986						_List_fromArray(
20987							[
20988								$author$project$W$Internal$Helpers$styles(
20989								_List_fromArray(
20990									[
20991										_Utils_Tuple2('width', '40px'),
20992										_Utils_Tuple2('height', '40px'),
20993										_Utils_Tuple2(
20994										'background',
20995										$uncover_co$elm_theme$Theme$primaryForegroundWithAlpha(0.8)),
20996										_Utils_Tuple2('border-radius', '4px')
20997									]))
20998							]),
20999						_List_Nil);
21000					return A2(
21001						$author$project$W$Container$view,
21002						_List_fromArray(
21003							[
21004								$author$project$W$Container$background(
21005								$uncover_co$elm_theme$Theme$baseForegroundWithAlpha(0.07)),
21006								$author$project$W$Container$horizontal,
21007								$author$project$W$Container$gap_4,
21008								$author$project$W$Container$pad_4,
21009								$author$project$W$Container$alignTop,
21010								$author$project$W$Container$alignRight,
21011								$author$project$W$Container$largeScreen(
21012								_List_fromArray(
21013									[$author$project$W$Container$vertical, $author$project$W$Container$alignCenterX, $author$project$W$Container$alignCenterY])),
21014								$author$project$W$Container$htmlAttrs(
21015								_List_fromArray(
21016									[
21017										A2($elm$html$Html$Attributes$style, 'height', '200px')
21018									]))
21019							]),
21020						_List_fromArray(
21021							[square, square]));
21022				}),
21023				_Utils_Tuple2(
21024				'themable',
21025				function (_v4) {
21026					var pinkTheme = $uncover_co$elm_theme$Theme$toTheme(
21027						A2(
21028							$uncover_co$elm_theme$Theme$withSecondary,
21029							$uncover_co$elm_theme$Theme$toThemeData($uncover_co$elm_theme$Theme$darkTheme).d1,
21030							A2(
21031								$uncover_co$elm_theme$Theme$withPrimaryForeground,
21032								A3($avh4$elm_color$Color$rgb255, 0, 88, 190),
21033								A2(
21034									$uncover_co$elm_theme$Theme$withBaseForeground,
21035									A3($avh4$elm_color$Color$rgb255, 109, 13, 101),
21036									A2(
21037										$uncover_co$elm_theme$Theme$withBaseBackground,
21038										A3($avh4$elm_color$Color$rgb255, 255, 77, 241),
21039										A2(
21040											$uncover_co$elm_theme$Theme$withFontText,
21041											'Patrick Hand',
21042											A2(
21043												$uncover_co$elm_theme$Theme$withFontHeading,
21044												'Leckerli One',
21045												$uncover_co$elm_theme$Theme$fromTheme($uncover_co$elm_theme$Theme$darkTheme))))))));
21046					var pinkDarkTheme = $uncover_co$elm_theme$Theme$toTheme(
21047						A2(
21048							$uncover_co$elm_theme$Theme$withSecondary,
21049							$uncover_co$elm_theme$Theme$toThemeData($uncover_co$elm_theme$Theme$darkTheme).d1,
21050							A2(
21051								$uncover_co$elm_theme$Theme$withBaseForeground,
21052								A3($avh4$elm_color$Color$rgb255, 255, 115, 243),
21053								A2(
21054									$uncover_co$elm_theme$Theme$withBaseBackground,
21055									A3($avh4$elm_color$Color$rgb255, 85, 2, 79),
21056									A2(
21057										$uncover_co$elm_theme$Theme$withFontText,
21058										'Patrick Hand',
21059										A2(
21060											$uncover_co$elm_theme$Theme$withFontHeading,
21061											'Leckerli One',
21062											$uncover_co$elm_theme$Theme$fromTheme($uncover_co$elm_theme$Theme$darkTheme)))))));
21063					var card = A2(
21064						$author$project$W$Container$view,
21065						_List_fromArray(
21066							[$author$project$W$Container$horizontal, $author$project$W$Container$card, $author$project$W$Container$spaceBetween, $author$project$W$Container$pad_4]),
21067						_List_fromArray(
21068							[
21069								A2(
21070								$author$project$W$Container$view,
21071								_List_Nil,
21072								_List_fromArray(
21073									[
21074										A2(
21075										$author$project$W$Heading$view,
21076										_List_Nil,
21077										_List_fromArray(
21078											[
21079												$elm$html$Html$text('Heading')
21080											])),
21081										A2(
21082										$author$project$W$Text$view,
21083										_List_Nil,
21084										_List_fromArray(
21085											[
21086												$elm$html$Html$text('Some text')
21087											]))
21088									])),
21089								A2(
21090								$author$project$W$Container$view,
21091								_List_fromArray(
21092									[$author$project$W$Container$horizontal, $author$project$W$Container$gap_2]),
21093								_List_fromArray(
21094									[
21095										A2(
21096										$author$project$W$Tag$view,
21097										_List_fromArray(
21098											[$author$project$W$Tag$primary]),
21099										_List_fromArray(
21100											[
21101												$elm$html$Html$text('Stateless')
21102											])),
21103										A2(
21104										$author$project$W$Tag$view,
21105										_List_fromArray(
21106											[$author$project$W$Tag$secondary]),
21107										_List_fromArray(
21108											[
21109												$elm$html$Html$text('Tasteful')
21110											]))
21111									]))
21112							]));
21113					var blueTheme = $uncover_co$elm_theme$Theme$toTheme(
21114						A2(
21115							$uncover_co$elm_theme$Theme$withPrimary,
21116							$uncover_co$elm_theme$Theme$toThemeData($uncover_co$elm_theme$Theme$darkTheme).gr,
21117							A2(
21118								$uncover_co$elm_theme$Theme$withBaseBackground,
21119								A3($avh4$elm_color$Color$rgb255, 18, 133, 233),
21120								A2(
21121									$uncover_co$elm_theme$Theme$withFontText,
21122									'Raleway',
21123									A2(
21124										$uncover_co$elm_theme$Theme$withFontHeading,
21125										'\'Press Start 2P\'',
21126										$uncover_co$elm_theme$Theme$fromTheme($uncover_co$elm_theme$Theme$darkTheme))))));
21127					var blueDarkTheme = $uncover_co$elm_theme$Theme$toTheme(
21128						A2(
21129							$uncover_co$elm_theme$Theme$withBaseForeground,
21130							A3($avh4$elm_color$Color$rgb255, 101, 173, 235),
21131							A2(
21132								$uncover_co$elm_theme$Theme$withBaseBackground,
21133								A3($avh4$elm_color$Color$rgb255, 0, 34, 63),
21134								$uncover_co$elm_theme$Theme$fromTheme(blueTheme))));
21135					return A2(
21136						$author$project$W$Container$view,
21137						_List_fromArray(
21138							[$author$project$W$Container$gap_4]),
21139						_List_fromArray(
21140							[
21141								card,
21142								A3(
21143								$uncover_co$elm_theme$Theme$providerWithDarkMode,
21144								{
21145									d7: blueDarkTheme,
21146									ey: blueTheme,
21147									eX: $uncover_co$elm_theme$Theme$classStrategy('elm-book-dark-mode')
21148								},
21149								_List_Nil,
21150								_List_fromArray(
21151									[card])),
21152								A3(
21153								$uncover_co$elm_theme$Theme$providerWithDarkMode,
21154								{
21155									d7: pinkDarkTheme,
21156									ey: pinkTheme,
21157									eX: $uncover_co$elm_theme$Theme$classStrategy('elm-book-dark-mode')
21158								},
21159								_List_Nil,
21160								_List_fromArray(
21161									[card]))
21162							]));
21163				})
21164			]),
21165		A2(
21166			$dtwrks$elm_book$ElmBook$Chapter$withComponentOptions,
21167			_List_fromArray(
21168				[
21169					$dtwrks$elm_book$ElmBook$ComponentOptions$hiddenLabel(true)
21170				]),
21171			$dtwrks$elm_book$ElmBook$Chapter$chapter('Overview'))));
21172var $author$project$Chapters$Theme$updateColor = F3(
21173	function (colorSet, detail, value) {
21174		switch (detail) {
21175			case 0:
21176				return _Utils_update(
21177					colorSet,
21178					{bF: value});
21179			case 1:
21180				return _Utils_update(
21181					colorSet,
21182					{da: value});
21183			default:
21184				return _Utils_update(
21185					colorSet,
21186					{cV: value});
21187		}
21188	});
21189var $author$project$Chapters$Theme$update = F2(
21190	function (msg, model) {
21191		if (!msg.$) {
21192			return model;
21193		} else {
21194			var color = msg.a;
21195			var detail = msg.b;
21196			var value = msg.c;
21197			switch (color) {
21198				case 0:
21199					return _Utils_update(
21200						model,
21201						{
21202							d1: A3($author$project$Chapters$Theme$updateColor, model.d1, detail, value)
21203						});
21204				case 1:
21205					return _Utils_update(
21206						model,
21207						{
21208							dz: A3($author$project$Chapters$Theme$updateColor, model.dz, detail, value)
21209						});
21210				case 2:
21211					return _Utils_update(
21212						model,
21213						{
21214							dC: A3($author$project$Chapters$Theme$updateColor, model.dC, detail, value)
21215						});
21216				case 3:
21217					return _Utils_update(
21218						model,
21219						{
21220							dq: A3($author$project$Chapters$Theme$updateColor, model.dq, detail, value)
21221						});
21222				case 4:
21223					return _Utils_update(
21224						model,
21225						{
21226							gr: A3($author$project$Chapters$Theme$updateColor, model.gr, detail, value)
21227						});
21228				case 5:
21229					return _Utils_update(
21230						model,
21231						{
21232							c0: A3($author$project$Chapters$Theme$updateColor, model.c0, detail, value)
21233						});
21234				default:
21235					return _Utils_update(
21236						model,
21237						{
21238							dX: A3($author$project$Chapters$Theme$updateColor, model.dX, detail, value)
21239						});
21240			}
21241		}
21242	});
21243var $author$project$Chapters$Theme$Base = 0;
21244var $author$project$Chapters$Theme$Danger = 5;
21245var $author$project$Chapters$Theme$Neutral = 3;
21246var $author$project$Chapters$Theme$Primary = 1;
21247var $author$project$Chapters$Theme$Secondary = 2;
21248var $author$project$Chapters$Theme$Success = 4;
21249var $author$project$Chapters$Theme$Update = F3(
21250	function (a, b, c) {
21251		return {$: 1, a: a, b: b, c: c};
21252	});
21253var $author$project$Chapters$Theme$Warning = 6;
21254var $uncover_co$elm_theme$Theme$baseBackgroundWithAlpha = $uncover_co$elm_theme$Theme$cssVarWithAlpha('base-bg');
21255var $uncover_co$elm_theme$Theme$base = {cV: $uncover_co$elm_theme$Theme$baseAux, ab: $uncover_co$elm_theme$Theme$baseAuxWithAlpha, bF: $uncover_co$elm_theme$Theme$baseBackground, T: $uncover_co$elm_theme$Theme$baseBackgroundWithAlpha, da: $uncover_co$elm_theme$Theme$baseForeground, fs: $uncover_co$elm_theme$Theme$baseForegroundWithAlpha};
21256var $author$project$Chapters$Theme$Aux = 2;
21257var $author$project$Chapters$Theme$Background = 0;
21258var $author$project$Chapters$Theme$Foreground = 1;
21259var $author$project$W$Heading$color = function (v) {
21260	return function (attrs) {
21261		return _Utils_update(
21262			attrs,
21263			{U: v});
21264	};
21265};
21266var $author$project$W$Heading$extraSmall = function (attrs) {
21267	return _Utils_update(
21268		attrs,
21269		{fp: 'ew-text-lg'});
21270};
21271var $tesk9$palette$SolidColor$Accessibility$AA = 1;
21272var $tesk9$palette$SolidColor$Accessibility$AAA = 2;
21273var $tesk9$palette$SolidColor$Accessibility$AAA_ = 1;
21274var $tesk9$palette$SolidColor$Accessibility$AA_ = 0;
21275var $tesk9$palette$SolidColor$Accessibility$Inaccessible = 0;
21276var $elm$core$Basics$pow = _Basics_pow;
21277var $tesk9$palette$SolidColor$luminance = function (color) {
21278	var toSRBG = function (rgb8bit) {
21279		return rgb8bit / 255;
21280	};
21281	var fromSRGB = function (srgb) {
21282		return (srgb <= 0.03928) ? (srgb / 12.92) : A2($elm$core$Basics$pow, (srgb + 0.055) / 1.055, 2.4);
21283	};
21284	var _v0 = $tesk9$palette$SolidColor$toRGB(color);
21285	var rRaw = _v0.a;
21286	var gRaw = _v0.b;
21287	var bRaw = _v0.c;
21288	var blue = fromSRGB(
21289		toSRBG(bRaw));
21290	var green = fromSRGB(
21291		toSRBG(gRaw));
21292	var red = fromSRGB(
21293		toSRBG(rRaw));
21294	return ((0.2126 * red) + (0.7152 * green)) + (0.0722 * blue);
21295};
21296var $tesk9$palette$SolidColor$Accessibility$contrast = F2(
21297	function (color1, color2) {
21298		var luminance2 = $tesk9$palette$SolidColor$luminance(color2);
21299		var luminance1 = $tesk9$palette$SolidColor$luminance(color1);
21300		return (_Utils_cmp(luminance1, luminance2) > 0) ? ((luminance1 + 0.05) / (luminance2 + 0.05)) : ((luminance2 + 0.05) / (luminance1 + 0.05));
21301	});
21302var $tesk9$palette$SolidColor$Accessibility$sufficientContrast = F4(
21303	function (wcagLevel, _v0, color1, color2) {
21304		var fontSize = _v0.fp;
21305		var fontWeight = _v0.fq;
21306		var colorContrast = A2($tesk9$palette$SolidColor$Accessibility$contrast, color1, color2);
21307		if (!wcagLevel) {
21308			return (((fontSize > 14) && (fontWeight >= 700)) || (fontSize > 18)) ? (colorContrast >= 3) : (colorContrast >= 4.5);
21309		} else {
21310			return (((fontSize > 14) && (fontWeight >= 700)) || (fontSize > 18)) ? (colorContrast >= 4.5) : (colorContrast >= 7);
21311		}
21312	});
21313var $tesk9$palette$SolidColor$Accessibility$checkContrast = F3(
21314	function (font, color1, color2) {
21315		return A4($tesk9$palette$SolidColor$Accessibility$sufficientContrast, 1, font, color1, color2) ? 2 : (A4($tesk9$palette$SolidColor$Accessibility$sufficientContrast, 0, font, color1, color2) ? 1 : 0);
21316	});
21317var $author$project$Chapters$Theme$a11yStatus = F2(
21318	function (fg, bg) {
21319		var _v0 = A3(
21320			$tesk9$palette$SolidColor$Accessibility$checkContrast,
21321			{fp: 12, fq: 500},
21322			fg,
21323			bg);
21324		switch (_v0) {
21325			case 0:
21326				return $elm$html$Html$text('');
21327			case 1:
21328				return A2(
21329					$author$project$W$Badge$viewInline,
21330					_List_fromArray(
21331						[$author$project$W$Badge$small, $author$project$W$Badge$neutral]),
21332					_List_fromArray(
21333						[
21334							$elm$html$Html$text('AA')
21335						]));
21336			default:
21337				return A2(
21338					$author$project$W$Badge$viewInline,
21339					_List_fromArray(
21340						[$author$project$W$Badge$small, $author$project$W$Badge$success]),
21341					_List_fromArray(
21342						[
21343							$elm$html$Html$text('AAA')
21344						]));
21345		}
21346	});
21347var $author$project$W$Text$alignRight = function (attrs) {
21348	return _Utils_update(
21349		attrs,
21350		{aX: 'ew-text-right'});
21351};
21352var $author$project$W$Text$extraSmall = function (attrs) {
21353	return _Utils_update(
21354		attrs,
21355		{fp: 'ew-text-xs'});
21356};
21357var $author$project$Chapters$Theme$contrast = F2(
21358	function (c1, c2) {
21359		return function (str) {
21360			return A2(
21361				$author$project$W$Tooltip$view,
21362				_List_Nil,
21363				{
21364					cY: _List_fromArray(
21365						[
21366							A2(
21367							$author$project$W$Text$view,
21368							_List_fromArray(
21369								[$author$project$W$Text$extraSmall, $author$project$W$Text$aux]),
21370							_List_fromArray(
21371								[
21372									$elm$html$Html$text(str)
21373								]))
21374						]),
21375					e1: _List_fromArray(
21376						[
21377							$elm$html$Html$text('some contrast ratio')
21378						])
21379				});
21380		}(
21381			function (xs) {
21382				if (!xs.b) {
21383					return '';
21384				} else {
21385					if (xs.b.b && (!xs.b.b.b)) {
21386						var h = xs.a;
21387						var _v1 = xs.b;
21388						var t = _v1.a;
21389						return h + ('.' + A2($elm$core$String$left, 2, t));
21390					} else {
21391						var h = xs.a;
21392						return h;
21393					}
21394				}
21395			}(
21396				A2(
21397					$elm$core$String$split,
21398					'.',
21399					$elm$core$String$fromFloat(
21400						A2($tesk9$palette$SolidColor$Accessibility$contrast, c1, c2)))));
21401	});
21402var $author$project$W$Container$gap_1 = $author$project$W$Container$addClass('ew-gap-1');
21403var $author$project$W$Container$padBottom_1 = $author$project$W$Container$addClass('ew-pb-1');
21404var $author$project$W$Container$padX_3 = $author$project$W$Container$addClass('ew-px-3');
21405var $author$project$W$Container$padY_2 = $author$project$W$Container$addClass('ew-py-2');
21406var $author$project$W$Container$rounded = $author$project$W$Container$addClass('ew-rounded');
21407var $author$project$W$Text$addClass = function (_class) {
21408	return function (attr) {
21409		return _Utils_update(
21410			attr,
21411			{F: attr.F + (' ' + _class)});
21412	};
21413};
21414var $author$project$W$Text$semibold = $author$project$W$Text$addClass('ew-font-semibold');
21415var $author$project$Chapters$Theme$themeColorDetailLabel = function (value) {
21416	switch (value) {
21417		case 0:
21418			return 'Background';
21419		case 1:
21420			return 'Foreground';
21421		default:
21422			return 'Aux';
21423	}
21424};
21425var $tesk9$palette$Internal$RGBA$toStringWithoutOpacity = function (_v0) {
21426	var red = _v0.gh;
21427	var green = _v0.fx;
21428	var blue = _v0.fd;
21429	return 'rgb(' + ($elm$core$String$fromFloat(red) + (',' + ($elm$core$String$fromFloat(green) + (',' + ($elm$core$String$fromFloat(blue) + ')')))));
21430};
21431var $tesk9$palette$SolidColor$toRGBString = function (_v0) {
21432	var color = _v0;
21433	return $tesk9$palette$Internal$RGBA$toStringWithoutOpacity(
21434		$tesk9$palette$Internal$Color$asRGBA(color));
21435};
21436var $author$project$Chapters$Theme$input = F4(
21437	function (color, contrastColor, msg, themeColorDetail) {
21438		return A2(
21439			$author$project$W$Container$view,
21440			_List_Nil,
21441			_List_fromArray(
21442				[
21443					A2(
21444					$author$project$W$Container$view,
21445					_List_fromArray(
21446						[$author$project$W$Container$padBottom_1, $author$project$W$Container$alignLeft, $author$project$W$Container$horizontal, $author$project$W$Container$gap_1]),
21447					_List_fromArray(
21448						[
21449							A2(
21450							$author$project$W$Text$view,
21451							_List_fromArray(
21452								[$author$project$W$Text$small, $author$project$W$Text$semibold]),
21453							_List_fromArray(
21454								[
21455									$elm$html$Html$text(
21456									$author$project$Chapters$Theme$themeColorDetailLabel(themeColorDetail))
21457								])),
21458							A2($author$project$Chapters$Theme$contrast, color, contrastColor),
21459							A2($author$project$Chapters$Theme$a11yStatus, color, contrastColor)
21460						])),
21461					A2(
21462					$author$project$W$Container$view,
21463					_List_fromArray(
21464						[
21465							$author$project$W$Container$background(
21466							$uncover_co$elm_theme$Theme$baseForegroundWithAlpha(0.07)),
21467							$author$project$W$Container$padX_3,
21468							$author$project$W$Container$padY_2,
21469							$author$project$W$Container$gap_2,
21470							$author$project$W$Container$rounded,
21471							$author$project$W$Container$alignRight,
21472							$author$project$W$Container$horizontal
21473						]),
21474					_List_fromArray(
21475						[
21476							A2(
21477							$elm$html$Html$div,
21478							_List_Nil,
21479							_List_fromArray(
21480								[
21481									A2(
21482									$author$project$W$Text$view,
21483									_List_fromArray(
21484										[$author$project$W$Text$small, $author$project$W$Text$alignRight]),
21485									_List_fromArray(
21486										[
21487											$elm$html$Html$text(
21488											$tesk9$palette$SolidColor$toHex(color))
21489										])),
21490									A2(
21491									$author$project$W$Text$view,
21492									_List_fromArray(
21493										[$author$project$W$Text$small, $author$project$W$Text$alignRight]),
21494									_List_fromArray(
21495										[
21496											$elm$html$Html$text(
21497											$tesk9$palette$SolidColor$toRGBString(color))
21498										]))
21499								])),
21500							A2(
21501							$author$project$W$InputColor$view,
21502							_List_Nil,
21503							{
21504								cm: msg(themeColorDetail),
21505								cN: $author$project$W$Internal$Color$fromSolidColor(color)
21506							})
21507						]))
21508				]));
21509	});
21510var $author$project$W$Container$node = function (v) {
21511	return function (attr) {
21512		return _Utils_update(
21513			attr,
21514			{ce: v});
21515	};
21516};
21517var $author$project$W$Container$padX_4 = $author$project$W$Container$addClass('ew-px-4');
21518var $author$project$W$Container$padY_8 = $author$project$W$Container$addClass('ew-py-8');
21519var $author$project$Chapters$Theme$themeColorLabel = function (themeColor) {
21520	switch (themeColor) {
21521		case 0:
21522			return 'Base';
21523		case 1:
21524			return 'Primary';
21525		case 2:
21526			return 'Secondary';
21527		case 3:
21528			return 'Neutral';
21529		case 4:
21530			return 'Success';
21531		case 5:
21532			return 'Danger';
21533		default:
21534			return 'Warning';
21535	}
21536};
21537var $author$project$Chapters$Theme$colorSelector = F4(
21538	function (baseBg, msg, _v0, children) {
21539		var themeColor = _v0.a;
21540		var color_ = _v0.b;
21541		var color = _v0.c;
21542		var fg = $author$project$W$Internal$Color$toSolidColor(color_.da);
21543		var bg = $author$project$W$Internal$Color$toSolidColor(color_.bF);
21544		var aux = $author$project$W$Internal$Color$toSolidColor(color_.cV);
21545		return A2(
21546			$author$project$W$Container$view,
21547			_List_fromArray(
21548				[
21549					$author$project$W$Container$node('section'),
21550					$author$project$W$Container$vertical,
21551					$author$project$W$Container$spaceBetween,
21552					$author$project$W$Container$padX_4,
21553					$author$project$W$Container$padY_8,
21554					$author$project$W$Container$gap_4
21555				]),
21556			_List_fromArray(
21557				[
21558					A2(
21559					$author$project$W$Container$view,
21560					_List_fromArray(
21561						[$author$project$W$Container$fill]),
21562					_List_fromArray(
21563						[
21564							A2(
21565							$author$project$W$Heading$view,
21566							_List_fromArray(
21567								[
21568									$author$project$W$Heading$extraSmall,
21569									$author$project$W$Heading$color(
21570									$tesk9$palette$SolidColor$toHex(fg))
21571								]),
21572							_List_fromArray(
21573								[
21574									$elm$html$Html$text(
21575									$author$project$Chapters$Theme$themeColorLabel(themeColor))
21576								])),
21577							A2($elm$html$Html$div, _List_Nil, children)
21578						])),
21579					A2(
21580					$author$project$W$Container$view,
21581					_List_fromArray(
21582						[$author$project$W$Container$horizontal, $author$project$W$Container$gap_2, $author$project$W$Container$pad_2, $author$project$W$Container$card]),
21583					_List_fromArray(
21584						[
21585							A4(
21586							$author$project$Chapters$Theme$input,
21587							fg,
21588							baseBg,
21589							msg(themeColor),
21590							1),
21591							A4(
21592							$author$project$Chapters$Theme$input,
21593							bg,
21594							aux,
21595							msg(themeColor),
21596							0),
21597							A4(
21598							$author$project$Chapters$Theme$input,
21599							aux,
21600							bg,
21601							msg(themeColor),
21602							2)
21603						]))
21604				]));
21605	});
21606var $author$project$W$Divider$light = function (attrs) {
21607	return _Utils_update(
21608		attrs,
21609		{
21610			U: $uncover_co$elm_theme$Theme$baseAuxWithAlpha(0.07)
21611		});
21612};
21613var $uncover_co$elm_theme$Theme$SystemStrategy = {$: 0};
21614var $uncover_co$elm_theme$Theme$provider = F3(
21615	function (theme, attrs, children) {
21616		return function (data) {
21617			return A2(
21618				data.aQ,
21619				attrs,
21620				A2($elm$core$List$cons, data.bu, children));
21621		}(
21622			$uncover_co$elm_theme$Theme$provider_(
21623				{d7: $elm$core$Maybe$Nothing, ey: theme, eX: $uncover_co$elm_theme$Theme$SystemStrategy}));
21624	});
21625var $author$project$Chapters$Theme$view = function (model) {
21626	var theme = $uncover_co$elm_theme$Theme$new(model);
21627	var baseBg = $author$project$W$Internal$Color$toSolidColor(model.d1.bF);
21628	return A3(
21629		$uncover_co$elm_theme$Theme$provider,
21630		theme,
21631		_List_Nil,
21632		_List_fromArray(
21633			[
21634				A2(
21635				$author$project$W$Container$view,
21636				_List_fromArray(
21637					[
21638						$author$project$W$Container$pad_4,
21639						$author$project$W$Container$background('linear-gradient(rgba(0,0,0,0.1), rgba(0,0,0,0.1)), ' + $uncover_co$elm_theme$Theme$baseBackgroun
21639d)
21640					]),
21641				_List_fromArray(
21642					[
21643						A2(
21644						$author$project$W$Container$view,
21645						_List_fromArray(
21646							[
21647								$author$project$W$Container$rounded,
21648								$author$project$W$Container$background($uncover_co$elm_theme$Theme$baseBackground),
21649								$author$project$W$Container$shadow
21650							]),
21651						A2(
21652							$elm$core$List$cons,
21653							A4(
21654								$author$project$Chapters$Theme$colorSelector,
21655								baseBg,
21656								$author$project$Chapters$Theme$Update,
21657								_Utils_Tuple3(0, model.d1, $uncover_co$elm_theme$Theme$base),
21658								_List_fromArray(
21659									[
21660										A2(
21661										$author$project$W$Text$view,
21662										_List_Nil,
21663										_List_fromArray(
21664											[
21665												$elm$html$Html$text('This is the default text color.')
21666											])),
21667										A2(
21668										$author$project$W$Text$view,
21669										_List_fromArray(
21670											[$author$project$W$Text$aux]),
21671										_List_fromArray(
21672											[
21673												$elm$html$Html$text('And this is the auxiliary text color.')
21674											]))
21675									])),
21676							A2(
21677								$elm$core$List$map,
21678								function (_v0) {
21679									var a = _v0.a;
21680									var b = _v0.b;
21681									var c = _v0.c;
21682									return A2(
21683										$elm$html$Html$div,
21684										_List_Nil,
21685										_List_fromArray(
21686											[
21687												A2(
21688												$author$project$W$Divider$view,
21689												_List_fromArray(
21690													[$author$project$W$Divider$light]),
21691												_List_Nil),
21692												A4(
21693												$author$project$Chapters$Theme$colorSelector,
21694												baseBg,
21695												$author$project$Chapters$Theme$Update,
21696												_Utils_Tuple3(a, b, c),
21697												_List_fromArray(
21698													[
21699														A2(
21700														$author$project$W$Container$view,
21701														_List_fromArray(
21702															[$author$project$W$Container$gap_2, $author$project$W$Container$padTop_2]),
21703														_List_fromArray(
21704															[
21705																A2(
21706																$author$project$W$Container$view,
21707																_List_fromArray(
21708																	[
21709																		$author$project$W$Container$background(c.bF),
21710																		$author$project$W$Container$padX_4,
21711																		$author$project$W$Container$padY_2,
21712																		$author$project$W$Container$extraRounded
21713																	]),
21714																_List_fromArray(
21715																	[
21716																		A2(
21717																		$author$project$W$Text$view,
21718																		_List_fromArray(
21719																			[
21720																				$author$project$W$Text$color(c.cV)
21721																			]),
21722																		_List_fromArray(
21723																			[
21724																				$elm$html$Html$text('Aux on background')
21725																			]))
21726																	])),
21727																A2(
21728																$author$project$W$Container$view,
21729																_List_fromArray(
21730																	[
21731																		$author$project$W$Container$background(
21732																		c.fs(0.05)),
21733																		$author$project$W$Container$padX_4,
21734																		$author$project$W$Container$padY_2,
21735																		$author$project$W$Container$extraRounded
21736																	]),
21737																_List_fromArray(
21738																	[
21739																		A2(
21740																		$author$project$W$Text$view,
21741																		_List_fromArray(
21742																			[
21743																				$author$project$W$Text$color(c.da)
21744																			]),
21745																		_List_fromArray(
21746																			[
21747																				$elm$html$Html$text('Foreground on tinted base background')
21748																			]))
21749																	]))
21750															]))
21751													]))
21752											]));
21753								},
21754								_List_fromArray(
21755									[
21756										_Utils_Tuple3(3, model.dq, $uncover_co$elm_theme$Theme$neutral),
21757										_Utils_Tuple3(1, model.dz, $uncover_co$elm_theme$Theme$primary),
21758										_Utils_Tuple3(2, model.dC, $uncover_co$elm_theme$Theme$secondary),
21759										_Utils_Tuple3(4, model.gr, $uncover_co$elm_theme$Theme$success),
21760										_Utils_Tuple3(6, model.dX, $uncover_co$elm_theme$Theme$warning),
21761										_Utils_Tuple3(5, model.c0, $uncover_co$elm_theme$Theme$danger)
21762									]))))
21763					]))
21764			]));
21765};
21766var $author$project$Chapters$Theme$chapter_ = A2(
21767	$dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList,
21768	'\nThis package uses [elm-theme](https://package.elm-lang.org/packages/uncover-co/elm-theme/latest/) as it\'s theming library. It will use the currently active theme\'s colors wherever you use it.\n\n---\n\nYou can use the theme generator below to test out the colors of your theme and their accessibility ratings. (Note that this generator is still quite WIP as we have lots of ideas to improve it in the short term.)\n',
21769	A2(
21770		$dtwrks$elm_book$ElmBook$Chapter$withStatefulComponent,
21771		function (state) {
21772			return A2(
21773				$elm$html$Html$map,
21774				$dtwrks$elm_book$ElmBook$Actions$mapUpdate(
21775					{
21776						fv: function ($) {
21777							return $.dQ;
21778						},
21779						gu: F2(
21780							function (state_, theme) {
21781								return _Utils_update(
21782									state_,
21783									{dQ: theme});
21784							}),
21785						gx: $author$project$Chapters$Theme$update
21786					}),
21787				$author$project$Chapters$Theme$view(state.dQ));
21788		},
21789		$dtwrks$elm_book$ElmBook$Chapter$chapter('Themes')));
21790var $author$project$W$InputCode$Attribute = $elm$core$Basics$identity;
21791var $author$project$W$InputCode$hiddenCharacters = function (attrs) {
21792	return _Utils_update(
21793		attrs,
21794		{bZ: true});
21795};
21796var $author$project$W$InputCode$uppercase = function (attrs) {
21797	return _Utils_update(
21798		attrs,
21799		{cJ: true});
21800};
21801var $author$project$W$InputCode$defaultAttrs = {bZ: false, b$: _List_Nil, cJ: false};
21802var $author$project$W$InputCode$applyAttrs = function (attrs) {
21803	return A3(
21804		$elm$core$List$foldl,
21805		F2(
21806			function (_v0, a) {
21807				var fn = _v0;
21808				return fn(a);
21809			}),
21810		$author$project$W$InputCode$defaultAttrs,
21811		attrs);
21812};
21813var $elm$core$Array$length = function (_v0) {
21814	var len = _v0.a;
21815	return len;
21816};
21817var $elm$core$List$takeReverse = F3(
21818	function (n, list, kept) {
21819		takeReverse:
21820		while (true) {
21821			if (n <= 0) {
21822				return kept;
21823			} else {
21824				if (!list.b) {
21825					return kept;
21826				} else {
21827					var x = list.a;
21828					var xs = list.b;
21829					var $temp$n = n - 1,
21830						$temp$list = xs,
21831						$temp$kept = A2($elm$core$List$cons, x, kept);
21832					n = $temp$n;
21833					list = $temp$list;
21834					kept = $temp$kept;
21835					continue takeReverse;
21836				}
21837			}
21838		}
21839	});
21840var $elm$core$List$takeTailRec = F2(
21841	function (n, list) {
21842		return $elm$core$List$reverse(
21843			A3($elm$core$List$takeReverse, n, list, _List_Nil));
21844	});
21845var $elm$core$List$takeFast = F3(
21846	function (ctr, n, list) {
21847		if (n <= 0) {
21848			return _List_Nil;
21849		} else {
21850			var _v0 = _Utils_Tuple2(n, list);
21851			_v0$1:
21852			while (true) {
21853				_v0$5:
21854				while (true) {
21855					if (!_v0.b.b) {
21856						return list;
21857					} else {
21858						if (_v0.b.b.b) {
21859							switch (_v0.a) {
21860								case 1:
21861									break _v0$1;
21862								case 2:
21863									var _v2 = _v0.b;
21864									var x = _v2.a;
21865									var _v3 = _v2.b;
21866									var y = _v3.a;
21867									return _List_fromArray(
21868										[x, y]);
21869								case 3:
21870									if (_v0.b.b.b.b) {
21871										var _v4 = _v0.b;
21872										var x = _v4.a;
21873										var _v5 = _v4.b;
21874										var y = _v5.a;
21875										var _v6 = _v5.b;
21876										var z = _v6.a;
21877										return _List_fromArray(
21878											[x, y, z]);
21879									} else {
21880										break _v0$5;
21881									}
21882								default:
21883									if (_v0.b.b.b.b && _v0.b.b.b.b.b) {
21884										var _v7 = _v0.b;
21885										var x = _v7.a;
21886										var _v8 = _v7.b;
21887										var y = _v8.a;
21888										var _v9 = _v8.b;
21889										var z = _v9.a;
21890										var _v10 = _v9.b;
21891										var w = _v10.a;
21892										var tl = _v10.b;
21893										return (ctr > 1000) ? A2(
21894											$elm$core$List$cons,
21895											x,
21896											A2(
21897												$elm$core$List$cons,
21898												y,
21899												A2(
21900													$elm$core$List$cons,
21901													z,
21902													A2(
21903														$elm$core$List$cons,
21904														w,
21905														A2($elm$core$List$takeTailRec, n - 4, tl))))) : A2(
21906											$elm$core$List$cons,
21907											x,
21908											A2(
21909												$elm$core$List$cons,
21910												y,
21911												A2(
21912													$elm$core$List$cons,
21913													z,
21914													A2(
21915														$elm$core$List$cons,
21916														w,
21917														A3($elm$core$List$takeFast, ctr + 1, n - 4, tl)))));
21918									} else {
21919										break _v0$5;
21920									}
21921							}
21922						} else {
21923							if (_v0.a === 1) {
21924								break _v0$1;
21925							} else {
21926								break _v0$5;
21927							}
21928						}
21929					}
21930				}
21931				return list;
21932			}
21933			var _v1 = _v0.b;
21934			var x = _v1.a;
21935			return _List_fromArray(
21936				[x]);
21937		}
21938	});
21939var $elm$core$List$take = F2(
21940	function (n, list) {
21941		return A3($elm$core$List$takeFast, 0, n, list);
21942	});
21943var $elm$core$String$toUpper = _String_toUpper;
21944var $author$project$W$InputCode$view = F2(
21945	function (attrs_, props) {
21946		if (props.dj <= 0) {
21947			return A2($elm$html$Html$div, _List_Nil, _List_Nil);
21948		} else {
21949			var valueLetters = $elm$core$Array$fromList(
21950				A2(
21951					$elm$core$List$take,
21952					props.dj,
21953					A2($elm$core$String$split, '', props.cN)));
21954			var attrs = $author$project$W$InputCode$applyAttrs(attrs_);
21955			var activeIndex = $elm$core$Array$length(valueLetters);
21956			return A2(
21957				$elm$html$Html$label,
21958				_List_fromArray(
21959					[
21960						$elm$html$Html$Attributes$class('ew-group/ew')
21961					]),
21962				_List_fromArray(
21963					[
21964						A2(
21965						$elm$html$Html$input,
21966						_Utils_ap(
21967							attrs.b$,
21968							_List_fromArray(
21969								[
21970									$elm$html$Html$Attributes$class('ew-h-0 ew-p-0 ew-m-0 ew-border-0 ew-opacity-0'),
21971									$elm$html$Html$Attributes$value(props.cN),
21972									$elm$html$Html$Events$onFocus(
21973									props.cm('')),
21974									$elm$html$Html$Events$onInput(
21975									function (v) {
21976										var value = A2($elm$core$String$left, props.dj, v);
21977										return attrs.cJ ? props.cm(
21978											$elm$core$String$toUpper(value)) : props.cm(value);
21979									})
21980								])),
21981						_List_Nil),
21982						A2(
21983						$elm$html$Html$div,
21984						_List_fromArray(
21985							[
21986								$elm$html$Html$Attributes$class('ew-flex ew-gap-2')
21987							]),
21988						A2(
21989							$elm$core$List$map,
21990							function (index) {
21991								return A2(
21992									$elm$html$Html$div,
21993									_List_fromArray(
21994										[
21995											$elm$html$Html$Attributes$class('ew-border-solid ew-border-base-aux/30 ew-border-2'),
21996											$elm$html$Html$Attributes$class('ew-w-10 ew-h-14 ew-rounded-md'),
21997											$elm$html$Html$Attributes$class('ew-flex ew-items-center ew-justify-center'),
21998											$elm$html$Html$Attributes$class('ew-font-heading ew-text-3xl ew-text-base-fg'),
21999											$elm$html$Html$Attributes$classList(
22000											_List_fromArray(
22001												[
22002													_Utils_Tuple2(
22003													'group-focus-within/ew:ew-border-base-fg',
22004													_Utils_eq(index, activeIndex))
22005												]))
22006										]),
22007									_List_fromArray(
22008										[
22009											$elm$html$Html$text(
22010											A2(
22011												$elm$core$Maybe$withDefault,
22012												'',
22013												A2(
22014													$elm$core$Maybe$map,
22015													function (c) {
22016														return attrs.bZ ? '*' : c;
22017													},
22018													A2($elm$core$Array$get, index, valueLetters))))
22019										]));
22020							},
22021							A2($elm$core$List$range, 0, props.dj - 1)))
22022					]));
22023		}
22024	});
22025var $author$project$W$Docs$InputCode$docs = A2(
22026	$dtwrks$elm_book$ElmBook$Chapter$renderStatefulComponentList,
22027	_List_fromArray(
22028		[
22029			_Utils_Tuple2(
22030			'Default',
22031			function (_v0) {
22032				var inputCode = _v0.eo;
22033				return A2(
22034					$author$project$W$InputCode$view,
22035					_List_Nil,
22036					{
22037						dj: 6,
22038						cm: function (input) {
22039							return $dtwrks$elm_book$ElmBook$Actions$updateState(
22040								function (state) {
22041									return _Utils_update(
22042										state,
22043										{eo: input});
22044								});
22045						},
22046						cN: inputCode
22047					});
22048			}),
22049			_Utils_Tuple2(
22050			'Hidden Characters',
22051			function (_v1) {
22052				var inputCode = _v1.eo;
22053				return A2(
22054					$author$project$W$InputCode$view,
22055					_List_fromArray(
22056						[$author$project$W$InputCode$hiddenCharacters]),
22057					{
22058						dj: 6,
22059						cm: function (input) {
22060							return $dtwrks$elm_book$ElmBook$Actions$updateState(
22061								function (state) {
22062									return _Utils_update(
22063										state,
22064										{eo: input});
22065								});
22066						},
22067						cN: inputCode
22068					});
22069			}),
22070			_Utils_Tuple2(
22071			'Uppercase',
22072			function (_v2) {
22073				var inputCode = _v2.eo;
22074				return A2(
22075					$author$project$W$InputCode$view,
22076					_List_fromArray(
22077						[$author$project$W$InputCode$uppercase]),
22078					{
22079						dj: 6,
22080						cm: function (input) {
22081							return $dtwrks$elm_book$ElmBook$Actions$updateState(
22082								function (state) {
22083									return _Utils_update(
22084										state,
22085										{eo: input});
22086								});
22087						},
22088						cN: inputCode
22089					});
22090			})
22091		]),
22092	$dtwrks$elm_book$ElmBook$Chapter$chapter('Input Code'));
22093var $author$project$W$Skeleton$Attribute = $elm$core$Basics$identity;
22094var $author$project$W$Skeleton$circle = function (size) {
22095	return function (attrs) {
22096		return _Utils_update(
22097			attrs,
22098			{
22099				bH: '100%',
22100				aD: $author$project$W$Internal$Helpers$formatPx(size),
22101				y: $author$project$W$Internal$Helpers$formatPx(size)
22102			});
22103	};
22104};
22105var $author$project$W$Skeleton$height = function (v) {
22106	return function (attrs) {
22107		return _Utils_update(
22108			attrs,
22109			{
22110				aD: $author$project$W$Internal$Helpers$formatPx(v)
22111			});
22112	};
22113};
22114var $author$project$W$Skeleton$noAnimation = function (attrs) {
22115	return _Utils_update(
22116		attrs,
22117		{cK: false});
22118};
22119var $author$project$W$Internal$Helpers$formatPct = function (v) {
22120	return $elm$core$String$fromFloat(v * 100) + '%';
22121};
22122var $author$project$W$Skeleton$relativeWidth = function (v) {
22123	return function (attrs) {
22124		return _Utils_update(
22125			attrs,
22126			{
22127				y: $author$project$W$Internal$Helpers$formatPct(v)
22128			});
22129	};
22130};
22131var $author$project$W$Skeleton$defaultAttrs = {bH: '4px', aD: '16px', b$: _List_Nil, cK: true, y: 'auto'};
22132var $author$project$W$Skeleton$applyAttrs = function (attrs) {
22133	return A3(
22134		$elm$core$List$foldl,
22135		F2(
22136			function (_v0, a) {
22137				var fn = _v0;
22138				return fn(a);
22139			}),
22140		$author$project$W$Skeleton$defaultAttrs,
22141		attrs);
22142};
22143var $author$project$W$Skeleton$view = function (attrs_) {
22144	var attrs = $author$project$W$Skeleton$applyAttrs(attrs_);
22145	return A2(
22146		$elm$html$Html$div,
22147		_Utils_ap(
22148			attrs.b$,
22149			_List_fromArray(
22150				[
22151					A2($elm$html$Html$Attributes$style, 'border-radius', attrs.bH),
22152					A2($elm$html$Html$Attributes$style, 'width', attrs.y),
22153					A2($elm$html$Html$Attributes$style, 'height', attrs.aD),
22154					$elm$html$Html$Attributes$class('ew-bg-base-aux/30'),
22155					$elm$html$Html$Attributes$classList(
22156					_List_fromArray(
22157						[
22158							_Utils_Tuple2('ew-animate-pulse', attrs.cK)
22159						]))
22160				])),
22161		_List_Nil);
22162};
22163var $author$project$W$Docs$Skeleton$docs = A2(
22164	$dtwrks$elm_book$ElmBook$Chapter$renderComponentList,
22165	_List_fromArray(
22166		[
22167			_Utils_Tuple2(
22168			'Default',
22169			$author$project$W$Skeleton$view(_List_Nil)),
22170			_Utils_Tuple2(
22171			'Circle',
22172			$author$project$W$Skeleton$view(
22173				_List_fromArray(
22174					[
22175						$author$project$W$Skeleton$circle(48)
22176					]))),
22177			_Utils_Tuple2(
22178			'Composition',
22179			A2(
22180				$author$project$W$Container$view,
22181				_List_fromArray(
22182					[$author$project$W$Container$gap_4]),
22183				_List_fromArray(
22184					[
22185						$author$project$W$Skeleton$view(
22186						_List_fromArray(
22187							[
22188								$author$project$W$Skeleton$circle(48)
22189							])),
22190						$author$project$W$Skeleton$view(
22191						_List_fromArray(
22192							[
22193								$author$project$W$Skeleton$height(120)
22194							])),
22195						$author$project$W$Skeleton$view(
22196						_List_fromArray(
22197							[
22198								$author$project$W$Skeleton$relativeWidth(0.8)
22199							])),
22200						$author$project$W$Skeleton$view(
22201						_List_fromArray(
22202							[
22203								$author$project$W$Skeleton$relativeWidth(0.3)
22204							]))
22205					]))),
22206			_Utils_Tuple2(
22207			'Composition (without animation)',
22208			A2(
22209				$author$project$W$Container$view,
22210				_List_fromArray(
22211					[$author$project$W$Container$gap_4]),
22212				_List_fromArray(
22213					[
22214						$author$project$W$Skeleton$view(
22215						_List_fromArray(
22216							[
22217								$author$project$W$Skeleton$noAnimation,
22218								$author$project$W$Skeleton$circle(48)
22219							])),
22220						$author$project$W$Skeleton$view(
22221						_List_fromArray(
22222							[
22223								$author$project$W$Skeleton$noAnimation,
22224								$author$project$W$Skeleton$height(120)
22225							])),
22226						$author$project$W$Skeleton$view(
22227						_List_fromArray(
22228							[
22229								$author$project$W$Skeleton$noAnimation,
22230								$author$project$W$Skeleton$relativeWidth(0.8)
22231							])),
22232						$author$project$W$Skeleton$view(
22233						_List_fromArray(
22234							[
22235								$author$project$W$Skeleton$noAnimation,
22236								$author$project$W$Skeleton$relativeWidth(0.3)
22237							]))
22238					])))
22239		]),
22240	$dtwrks$elm_book$ElmBook$Chapter$chapter('Skeleton'));
22241var $uncover_co$elm_theme$Theme$globalProvider_ = function (props) {
22242	return A2(
22243		$elm$html$Html$div,
22244		_List_Nil,
22245		_List_fromArray(
22246			[
22247				A3(
22248				$elm$html$Html$node,
22249				'style',
22250				_List_Nil,
22251				_List_fromArray(
22252					[
22253						$elm$html$Html$text(
22254						'body { ' + ($uncover_co$elm_theme$Theme$toString(props.ey) + ' }'))
22255					])),
22256				function () {
22257				var _v0 = props.d7;
22258				if (!_v0.$) {
22259					var dark = _v0.a;
22260					var _v1 = props.eX;
22261					if (_v1.$ === 1) {
22262						var darkClass = _v1.a;
22263						return A3(
22264							$elm$html$Html$node,
22265							'style',
22266							_List_Nil,
22267							_List_fromArray(
22268								[
22269									$elm$html$Html$text(
22270									'.' + (darkClass + (' { ' + ($uncover_co$elm_theme$Theme$toString(dark) + '; color-scheme: dark; }'))))
22271								]));
22272					} else {
22273						return A3(
22274							$elm$html$Html$node,
22275							'style',
22276							_List_Nil,
22277							_List_fromArray(
22278								[
22279									$elm$html$Html$text(
22280									'@media (prefers-color-scheme: dark) { body { ' + ($uncover_co$elm_theme$Theme$toString(dark) + '; color-scheme: dark; } }'))
22281								]));
22282					}
22283				} else {
22284					return $elm$html$Html$text('');
22285				}
22286			}()
22287			]));
22288};
22289var $uncover_co$elm_theme$Theme$globalProviderWithDarkMode = function (props) {
22290	return $uncover_co$elm_theme$Theme$globalProvider_(
22291		{
22292			d7: $elm$core$Maybe$Just(props.d7),
22293			ey: props.ey,
22294			eX: props.eX
22295		});
22296};
22297var $author$project$W$Styles$globalStyles = A3(
22298	$elm$html$Html$node,
22299	'style',
22300	_List_Nil,
22301	_List_fromArray(
22302		[
22303			$elm$html$Html$text('*,: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:rgba(59,130,246,.5);--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:rgba(59,130,246,.5);--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: }.ew-btn{align-items:center;box-sizing:border-box;display:inline-flex;font-family:var(--theme-font-text);font-weight:600;justify-content:center;letter-spacing:.05em;line-height:1;padding-bottom:0;padding-top:0;position:relative;text-decoration-line:none}.ew-btn:before{--tw-content:"";background-color:transparent;content:var(--tw-content);display:block;inset:0;pointer-events:none;position:absolute;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);z-index:0}.ew-btn:hover:before{background-color:rgba(0,0,0,.1);content:var(--tw-content)}.ew-btn-like{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:8px;border-width:0;box-sizing:border-box;text-decoration-line:none}input[type=radio].ew-radio{--tw-bg-opacity:1;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-ring-color:rgb(var(--theme-primary-fg-ch)/0.5);--tw-ring-offset-width:0px;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgb(var(--theme-base-bg-ch)/var(--tw-bg-opacity));border-color:rgb(var(--theme-base-aux-ch)/.3);border-style:solid;border-width:2px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-sha
22303dow);display:inline-flex;height:1.75rem;justify-content:center;margin:0;outline:2px solid transparent;outline-offset:2px;width:1.75rem}input[type=radio].ew-radio,input[type=radio].ew-radio:before{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}input[type=radio].ew-radio:before{--tw-content:"";--tw-scale-x:0;--tw-scale-y:0;background-color:currentColor;content:var(--tw-content);display:block;height:1rem;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));transition-timing-function:cubic-bezier(0,0,.2,1);width:1rem}input[type=radio].ew-radio:hover{opacity:.9}input[type=radio].ew-radio:active{opacity:.75}input[type=radio].ew-radio:checked{--tw-bg-opacity:1;background-color:rgb(var(--theme-base-bg-ch)/var(--tw-bg-opacity))}input[type=radio].ew-radio:focus{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);background-color:rgb(var(--theme-base-bg-ch)/var(--tw-bg-opacity));border-color:rgb(var(--theme-primary-fg-ch)/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
22303dow,0 0 #0000)}input[type=radio].ew-radio:checked:before{--tw-scale-x:1;--tw-scale-y:1;content:var(--tw-content);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))}input[type=radio].ew-radio:disabled{background-color:rgb(var(--theme-base-aux-ch)/.25)}input[type=radio].ew-radio.ew-small{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:1.25rem;width:1.25rem}input[type=radio].ew-radio.ew-small:before{content:var(--tw-content);height:.625rem;width:.625rem}input[type=checkbox].ew-checkbox{--tw-bg-opacity:1;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-ring-color:rgb(var(--theme-primary-fg-ch)/0.5);--tw-ring-offset-width:0px;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgb(var(--theme-base-bg-ch)/var(--tw-bg-opacity));background-image:none;border-color:rgb(var(--theme-base-aux-ch)/.3);border-style:solid;border-width:2px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-sha
22303dow);display:inline-flex;justify-content:center;margin:0;outline:2px solid transparent;outline-offset:2px}input[type=checkbox].ew-checkbox,input[type=checkbox].ew-checkbox:before{height:1.75rem;width:1.75rem}input[type=checkbox].ew-checkbox:before{--tw-content:"";content:var(--tw-content);display:none}input[type=checkbox].ew-checkbox:hover{opacity:.9}input[type=checkbox].ew-checkbox:active{opacity:.75}input[type=checkbox].ew-checkbox:checked{background-color:currentColor;border-width:0}input[type=checkbox].ew-checkbox:checked:before{content:var(--tw-content);display:block}input[type=checkbox].ew-checkbox:disabled{background-color:rgb(var(--theme-base-aux-ch)/.25)}input[type=checkbox].ew-checkbox:focus{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);background-color:rgb(var(--theme-base-bg-ch)/var(--tw-bg-opacity));border-color:rgb(var(--theme-primary-fg-ch)/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
22303dow,0 0 #0000)}input[type=checkbox].ew-checkbox.ew-small{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:1.25rem;width:1.25rem}input[type=checkbox].ew-checkbox.ew-small:before{content:var(--tw-content);height:1.25rem;width:1.25rem}input[type=checkbox].ew-checkbox.ew-colorful{border-color:currentColor}input[type=checkbox].ew-toggle{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-ring-color:rgb(var(--theme-primary-fg-ch)/0.5);--tw-ring-offset-width:0px;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:none;border-radius:9999px;border-style:solid;border-width:2px;box-sizing:content-box;display:inline-flex;height:auto;justify-content:flex-start;margin:0;outline:2px solid transparent;outline-offset:2px;padding:.125rem;width:2.75rem}input[type=checkbox].ew-toggle,input[type=checkbox].ew-toggle:before{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}input[type=checkbox].ew-toggle:before{--tw-content:"";--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);
22303--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);--tw-bg-opacity:1;background-color:rgb(var(--theme-base-bg-ch)/var(--tw-bg-opacity));border-color:rgb(var(--theme-base-aux-ch)/.3);border-radius:9999px;border-style:solid;border-width:1px;display:block;height:1.25rem;transition-timing-function:cubic-bezier(0,0,.2,1);width:1.25rem}input[type=checkbox].ew-toggle:hover{opacity:.9}input[type=checkbox].ew-toggle:active{opacity:.75}input[type=checkbox].ew-toggle{background-color:rgb(var(--theme-base-aux-ch)/.2);border-color:rgb(var(--theme-base-aux-ch)/.3)}input[type=checkbox].ew-toggle:checked{background-color:currentColor;border-color:rgb(var(--theme-base-bg-ch)/.3)}input[type=checkbox].ew-toggle:before{--tw-translate-x:0px}input[type=checkbox].ew-toggle:before,input[type=checkbox].ew-toggle:checked:before{content:var(--tw-content);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))}input[type=checkbox].ew-toggle:checked:before{--tw-translate-x:100%}input[type=checkbox].ew-toggle:focus-visible{--tw-border-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:rgb(var(--theme-primary-fg-ch)/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
22303dow,0 0 #0000)}input[type=checkbox].ew-toggle:disabled{background-color:rgb(var(--theme-base-aux-ch)/.25)}input[type=checkbox].ew-toggle.ew-small{width:2.25rem}input[type=checkbox].ew-toggle.ew-small:before{content:var(--tw-content);height:1rem;width:1rem}.ew-pointer-events-none{pointer-events:none}.ew-pointer-events-auto{pointer-events:auto}.ew-visible{visibility:visible}.ew-fixed{position:fixed}.ew-absolute{position:absolute}.ew-relative{position:relative}.ew-sticky{position:sticky}.ew-inset-0{inset:0}.ew-inset-1{inset:.25rem}.ew-inset-x-0{left:0;right:0}.ew-inset-x-1{left:.25rem;right:.25rem}.ew-inset-x-2{left:.5rem;right:.5rem}.ew-inset-x-3{left:.75rem;right:.75rem}.ew-inset-x-\\[12px\\]{left:12px;right:12px}.ew-inset-y-0{bottom:0;top:0}.ew-inset-y-1{bottom:.25rem;top:.25rem}.ew-inset-y-3{bottom:.75rem;top:.75rem}.-ew-left-1{left:-.25rem}.-ew-left-2{left:-.5rem}.-ew-left-4{left:-1rem}.-ew-top-2{top:-.5rem}.-ew-top-4{top:-1rem}.-ew-top-px{top:-1px}.ew-bottom-0{bottom:0}.ew-bottom-1{bottom:.25rem}.ew-bottom-2{bottom:.5rem}.ew-bottom-3{bottom:.75rem}.ew-bottom-4{bottom:1rem}.ew-bottom-auto{bottom:auto}.ew-bottom-full{bottom:100%}.ew-left-0{left:0}.ew-left-1{left:.25rem}.ew-left-3{left:.75rem}.ew-left-4{left:1rem}.ew-left-full{left:100%}.ew-right-0{right:0}.ew-right-1{right:.25rem}.ew-right-2{right:.5rem}.ew-right-3{right:.75rem}.ew-right-4{right:1rem}.ew-right-full{right:100%}.ew-top-0{top:0}.ew-top-1{top:.25rem}.ew-top-1\\/2{top:50%}.ew-top-2{top:.5rem}.ew-top-4{top:1rem}.ew-top-6{top:1.5rem}.ew-top-8{top:2rem}.ew-top-\\[28px\\]{top:28px}.ew-top-full{top:100%}.ew-z-0{z-index:0}.ew-z-10{z-index:10}.ew-z-20{z-index:20}.ew-z-\\[9999\\]{z-index:9999}.ew-col-span-1{grid-column:span 1/span 1}.ew-col-span-11{grid-column:span 11/span 11}.ew-col-span-12{grid-column:span 12/span 12}.ew-col-span-2{grid-column:span 2/span 2}.ew-col-span-3{grid-column:span 3/span 3}.ew-col-span-4{grid-column:span 4/span 4}.ew-col-span-5{grid-column:span 5/span 5}.ew-col-span-6{grid-column:span 6/span 6}.ew-col-span-7{grid-column:span 7/span 7}.ew-col-span-8{grid-column:span 8/span 8}.ew-col-span-9{grid-column:span 9/span 9}.ew-m-0{margin:0}.ew-m-4{margin:1rem}.ew-m-5{margin:1.25rem}.ew-m-auto{margin:auto}.-ew-mx-px{margin-left:-1px;margin-right:-1px}.ew-mx-auto{margin-left:auto;margin-right:auto}.-ew-mb-1{margin-bottom:-.25rem}.-ew-mb-2{margin-bottom:-.5rem}.-ew-mb-2\\.5{margin-bottom:-.625rem}.-ew-ml-1{margin-left:-.25rem}.-ew-ml-2{margin-left:-.5rem}.-ew-ml-2\\.5{margin-left:-.625rem}.-ew-ml-3{margin-left:-.75rem}.-ew-ml-4{margin-left:-1rem}.-ew-ml-5{margin-left:-1.25rem}.-ew-ml-6{margin-left:-1.5rem}.-ew-mt-0{margin-top:0}.-ew-mt-0\\.5{margin-top:-.125rem}.-ew-mt-3{margin-top:-.75rem}.-ew-mt-4{margin-top:-1rem}.-ew-mt-5{margin-top:-1.25rem}.-ew-mt-6{margin-top:-1.5rem}.-ew-mt-\\[3px\\]{margin-top:-3px}.ew-mb-1{margin-bottom:.25rem}.ew-mb-2{margin-bottom:.5rem}.ew-ml-1{margin-left:.25rem}.ew-mr-1{margin-right:.25rem}.ew-mt-1{margin-top:.25rem}.ew-mt-2{margin-top:.5rem}.ew-box-border{box-sizing:border-box}.ew-block{display:block}.ew-inline-block{display:inline-block}.ew-flex{display:flex}.ew-inline-flex{display:inline-flex}.ew-table{display:table}.ew-grid{display:grid}.ew-hidden{display:none}.ew-h-0{height:0}.ew-h-1{height:.25rem}.ew-h-1\\.5{height:.375rem}.ew-h-10{height:2.5rem}.ew-h-12{height:3rem}.ew-h-14{height:3.5rem}.ew-h-16{height:4rem}.ew-h-2{height:.5rem}.ew-h-20{height:5rem}.ew-h-24{height:6rem}.ew-h-32{height:8rem}.ew-h-4{height:1rem}.ew-h-5{height:1.25rem}.ew-h-6{height:1.5rem}.ew-h-7{height:1.75rem}.ew-h-8{height:2rem}.ew-h-9{height:2.25rem}.ew-h-\\[20px\\]{height:20px}.ew-h-\\[24px\\]{height:24px}.ew-h-\\[32px\\]{height:32px}.ew-h-\\[40px\\]{height:40px}.ew-h-\\[48px\\]{height:48px}.ew-h-\\[6px\\]{height:6px}.ew-h-fit{height:-moz-fit-content;height:fit-content}.ew-h-full{height:100%}.ew-h-px{height:1px}.ew-max-h-64{max-height:16rem}.ew-min-h-\\[32px\\]{min-height:32px}.ew-min-h-\\[48px\\]{min-height:48px}.ew-min-h-\\[50px\\]{min-height:50px}.ew-min-h-\\[60px\\]{min-height:60px}.ew-min-h-min{min-height:-moz-min-content;min-height:min-content}.ew-w-0{width:0}.ew-w-1{width:.25rem}.ew-w-1\\.5{width:.375rem}.ew-w-10{width:2.5rem}.ew-w-12{width:3rem}.ew-w-2{width:.5rem}.ew-w-4{width:1rem}.ew-w-6{width:1.5rem}.ew-w-8{width:2rem}.ew-w-\\[40\\%\\]{width:40%}.ew-w-\\[60\\%\\]{width:60%}.ew-w-fit{width:-moz-fit-content;width:fit-content}.ew-w-full{width:100%}.ew-w-max{width:-moz-max-content;width:max-content}.ew-min-w-\\[24px\\]{min-width:24px}.ew-min-w-\\[32px\\]{min-width:32px}.ew-min-w-\\[40px\\]{min-width:40px}.ew-min-w-\\[48px\\]{min-width:48px}.ew-min-w-full{min-width:100%}.ew-max-w-full{max-width:100%}.ew-max-w-lg{max-width:32rem}.ew-max-w-md{max-width:28rem}.ew-max-w-xl{max-width:36rem}.ew-shrink-0{flex-shrink:0}.ew-grow{flex-grow:1}.ew-table-fixed{table-layout:fixed}.-ew-translate-x-0{--tw-translate-x:-0px}.-ew-translate-x-0,.-ew-translate-x-0\\.5{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))}.-ew-translate-x-0\\.5{--tw-translate-x:-0.125rem}.-ew-translate-y-0{--tw-translate-y:-0px}.-ew-translate-y-0,.-ew-translate-y-0\\.5{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))}.-ew-translate-y-0\\.5{--tw-translate-y:-0.125rem}.-ew-translate-y-1{--tw-translate-y:-0.25rem}.-ew-translate-y-1,.-ew-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))}.-ew-translate-y-1\\/2{--tw-translate-y:-50%}.ew-translate-x-0{--tw-translate-x:0px}.ew-translate-x-0,.ew-translate-x-0\\.5{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))}.ew-translate-x-0\\.5{--tw-translate-x:0.125rem}.ew-translate-y-0{--tw-translate-y:0px}.ew-translate-y-0,.ew-translate-y-0\\.5{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))}.ew-translate-y-0\\.5{--tw-translate-y:0.125rem}.ew-rotate-\\[45deg\\]{--tw-rotate:45deg}.ew-rotate-\\[45deg\\],.ew-scale-0{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))}.ew-scale-0{--tw-scale-x:0;--tw-scale-y:0}.ew-scale-100{--tw-scale-x:1;--tw-scale-y:1}.ew-scale-100,.ew-scale-90{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))}.ew-scale-90{--tw-scale-x:.9;--tw-scale-y:.9}@keyframes ew-ew-animation-fade-slide{0%{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.ew-animate-fade-slide{animation:ew-ew-animation-fade-slide .4s ease-out}@keyframes ew-pulse{50%{opacity:.5}}.ew-animate-pulse{animation:ew-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.ew-cursor-default{cursor:default}.ew-cursor-text{cursor:text}.ew-list-none{list-style-type:none}.ew-appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.ew-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.ew-grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.ew-flex-row{flex-direction:row}.ew-flex-col{flex-direction:column}.ew-flex-wrap{flex-wrap:wrap}.ew-place-content-center{place-content:center}.ew-place-items-center{place-items:center}.ew-content-center{align-content:center}.ew-content-start{align-content:flex-start}.ew-items-start{align-items:flex-start}.ew-items-end{align-items:flex-end}.ew-items-center{align-items:center}
22303.ew-items-baseline{align-items:baseline}.ew-items-stretch{align-items:stretch}.ew-justify-start{justify-content:flex-start}.ew-justify-end{justify-content:flex-end}.ew-justify-center{justify-content:center}.ew-justify-between{justify-content:space-between}.ew-justify-around{justify-content:space-around}.ew-justify-stretch{justify-content:stretch}.ew-justify-items-stretch{justify-items:stretch}.ew-gap-0{gap:0}.ew-gap-1{gap:.25rem}.ew-gap-1\\.5{gap:.375rem}.ew-gap-12{gap:3rem}.ew-gap-16{gap:4rem}.ew-gap-2{gap:.5rem}.ew-gap-3{gap:.75rem}.ew-gap-4{gap:1rem}.ew-gap-5{gap:1.25rem}.ew-gap-6{gap:1.5rem}.ew-gap-8{gap:2rem}.ew-gap-px{gap:1px}.ew--space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-.5rem*var(--tw-space-x-reverse))}.ew-space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(0px*(1 - var(--tw-space-x-reverse)));margin-right:calc(0px*var(--tw-space-x-reverse))}.ew-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.ew-space-x-12>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(3rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(3rem*var(--tw-space-x-reverse))}.ew-space-x-16>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(4rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(4rem*var(--tw-space-x-reverse))}.ew-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.ew-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.ew-space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.ew-space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.ew-space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.ew-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.ew-space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.ew-space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(4rem*var(--tw-space-y-reverse));margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)))}.ew-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.ew-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.ew-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.ew-space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.ew-self-end{align-self:flex-end}.ew-self-stretch{align-self:stretch}.ew-overflow-auto{overflow:auto}.ew-overflow-hidden{overflow:hidden}.ew-overflow-visible{overflow:visible}.ew-overflow-y-auto{overflow-y:auto}.ew-overflow-x-hidden{overflow-x:hidden}.ew-overflow-x-visible{overflow-x:visible}.ew-overflow-y-visible{overflow-y:visible}.ew-overflow-y-scroll{overflow-y:scroll}.ew-overscroll-contain{overscroll-behavior:contain}.ew-whitespace-pre-wrap{white-space:pre-wrap}.ew-break-words{overflow-wrap:break-word}.ew-rounded{border-radius:4px}.ew-rounded-\\[12px\\]{border-radius:12px}.ew-rounded-\\[16px\\]{border-radius:16px}.ew-rounded-\\[20px\\]{border-radius:20px}.ew-rounded-full{border-radius:9999px}.ew-rounded-lg{border-radius:8px}.ew-rounded-md{border-radius:6px}.ew-rounded-sm{border-radius:2px}.ew-rounded-xl{border-radius:12px}.ew-rounded-t{border-top-left-radius:4px;border-top-right-radius:4px}.ew-border{border-width:1px}.ew-border-0{border-width:0}.ew-border-2{border-width:2px}.ew-border-\\[3px\\]{border-width:3px}.ew-border-y{border-top-width:1px}.ew-border-b,.ew-border-y{border-bottom-width:1px}.ew-border-b-2{border-bottom-width:2px}.ew-border-l{border-left-width:1px}.ew-border-l-0{border-left-width:0}.ew-border-l-2{border-left-width:2px}.ew-border-l-4{border-left-width:4px}.ew-border-l-\\[6px\\]{border-left-width:6px}.ew-border-r{border-right-width:1px}.ew-border-r-0{border-right-width:0}.ew-border-t{border-top-width:1px}.ew-border-t-2{border-top-width:2px}.ew-border-t-4{border-top-width:4px}.ew-border-t-8{border-top-width:8px}.ew-border-solid{border-style:solid}.ew-border-none{border-style:none}.ew-border-base-aux{--tw-border-opacity:1;border-color:rgb(var(--theme-base-aux-ch)/var(--tw-border-opacity))}.ew-border-base-aux\\/10{border-color:rgb(var(--theme-base-aux-ch)/.1)}.ew-border-base-aux\\/20{border-color:rgb(var(--theme-base-aux-ch)/.2)}.ew-border-base-aux\\/30{border-color:rgb(var(--theme-base-aux-ch)/.3)}.ew-border-base-aux\\/\\[0\\.2\\]{border-color:rgb(var(--theme-base-aux-ch)/.2)}.ew-border-base-bg{--tw-border-opacity:1;border-color:rgb(var(--theme-base-bg-ch)/var(--tw-border-opacity))}.ew-border-base-fg{--tw-border-opacity:1;border-color:rgb(var(--theme-base-fg-ch)/var(--tw-border-opacity))}.ew-border-current{border-color:currentColor}.ew-border-neutral-fg{--tw-border-opacity:1;border-color:rgb(var(--theme-neutral-fg-ch)/var(--tw-border-opacity))}.ew-border-primary-fg{--tw-border-opacity:1;border-color:rgb(var(--theme-primary-fg-ch)/var(--tw-border-opacity))}.ew-border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.ew-border-opacity-30{--tw-border-opacity:0.3}.ew-border-opacity-50{--tw-border-opacity:0.5}.ew-bg-base-aux{--tw-bg-opacity:1;background-color:rgb(var(--theme-base-aux-ch)/var(--tw-bg-opacity))}.ew-bg-base-aux\\/10{background-color:rgb(var(--theme-base-aux-ch)/.1)}.ew-bg-base-aux\\/30{background-color:rgb(var(--theme-base-aux-ch)/.3)}.ew-bg-base-aux\\/\\[0\\.07\\]{background-color:rgb(var(--theme-base-aux-ch)/.07)}.ew-bg-base-bg{--tw-bg-opacity:1;background-color:rgb(var(--theme-base-bg-ch)/var(--tw-bg-opacity))}.ew-bg-base-fg{--tw-bg-opacity:1;background-color:rgb(var(--theme-base-fg-ch)/var(--tw-bg-opacity))}.ew-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.ew-bg-black\\/30{background-color:rgba(0,0,0,.3)}.ew-bg-current{background-color:currentColor}.ew-bg-danger-bg{--tw-bg-opacity:1;background-color:rgb(var(--theme-danger-bg-ch)/var(--tw-bg-opacity))}.ew-bg-danger-fg{--tw-bg-opacity:1;background-color:rgb(var(--theme-danger-fg-ch)/var(--tw-bg-opacity))}.ew-bg-neutral-aux{--tw-bg-opacity:1;background-color:rgb(var(--theme-neutral-aux-ch)/var(--tw-bg-opacity))}.ew-bg-neutral-bg{--tw-bg-opacity:1;background-color:rgb(var(--theme-neutral-bg-ch)/var(--tw-bg-opacity))}.ew-bg-neutral-fg{--tw-bg-opacity:1;background-color:rgb(var(--theme-neutral-fg-ch)/var(--tw-bg-opacity))}.ew-bg-neutral-fg\\/\\[0\\.07\\]{background-color:rgb(var(--theme-neutral-fg-ch)/.07)}.ew-bg-primary-bg{--tw-bg-opacity:1;background-color:rgb(var(--theme-primary-bg-ch)/var(--tw-bg-opacity))}.ew-bg-primary-fg{--tw-bg-opacity:1;background-color:rgb(var(--theme-primary-fg-ch)/var(--tw-bg-opacity))}.ew-bg-primary-fg\\/10,.ew-bg-primary-fg\\/\\[0\\.1\\]{background-color:rgb(var(--theme-primary-fg-ch)/.1)}.ew-bg-success-fg{--tw-bg-opacity:1;background-color:rgb(var(--theme-success-fg-ch)/var(--tw-bg-opacity))}.ew-bg-transparent{background-color:transparent}.ew-bg-warning-fg{--tw-bg-opacity:1;background-color:rgb(var(--theme-warning-fg-ch)/var(--tw-bg-opacity))}.ew-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.ew-bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(253 224 71/var(--tw-bg-opacity))}.ew-bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity))}.ew-p-0{padding:0}.ew-p-1{padding:.25rem}.ew-p-12{padding:3rem}.ew-p-16{padding:4rem}.ew-p-2{padding:.5rem}.ew-p-3{padding:.75rem}.ew-p-4{padding:1rem}.ew-p-5{padding:1.25rem}.ew-p-6{padding:1.5rem}.ew-p-8{padding:2rem}.ew-p-px{padding:1px}.ew-px-0{padding-left:0;padding-right:0}.ew-px-1{padding-left:.25rem;padding-right:.25rem}.ew-px-1\\.5{padding-left:.375rem;padding-right:.375rem}.ew-px-12{padding-left:3rem;padding-right:3rem}.ew-px-16{padding-left:4rem;padding-right:4rem}.ew-px-2{padding-left:.5rem;padding-right:.5rem}.ew-px-2\\.5{padding-left:.625rem;padding-right:.625rem}.ew-px-3{padding-left:.75rem;padding-right:.75rem}.ew-px-4{padding-left:1rem;padding-right:1rem}.ew-px-5{padding-left:1.25rem;padding-right:1.25rem}.ew-px-6{padding-left:1.5rem;padding-right:1.5rem}.ew-px-8{padding-left:2rem;padding-right:2rem}.ew-px-px{padding-left:1px;padding-right:1px}.ew-py-0{padding-bottom:0;padding-top:0}.ew-py-1{padding-bottom:.25rem;padding-top:.25rem}.ew-py-12{padding-bottom:3rem;padding-top:3rem}.ew-py-16{padding-bottom:4rem;padding-top:4rem}.ew-py-2{padding-bottom:.5rem;padding-top:.5rem}.ew-py-3{padding-bottom:.75rem;padding-top:.75rem}.ew-py-4{padding-bottom:1rem;padding-top:1rem}.ew-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.ew-py-8{padding-bottom:2rem;padding-top:2rem}.ew-py-px{padding-bottom:1px;padding-top:1px}.ew-pb-0{padding-bottom:0}.ew-pb-1{padding-bottom:.25rem}.ew-pb-12{padding-bottom:3rem}.ew-pb-16{padding-bottom:4rem}.ew-pb-2{padding-bottom:.5rem}.ew-pb-3{padding-bottom:.75rem}.ew-pb-4{padding-bottom:1rem}.ew-pb-5{padding-bottom:1.25rem}.ew-pb-6{padding-bottom:1.5rem}.ew-pb-8{padding-bottom:2rem}.ew-pl-0{padding-left:0}.ew-pl-1{padding-left:.25rem}.ew-pl-12{padding-left:3rem}.ew-pl-16{padding-left:4rem}.ew-pl-2{padding-left:.5rem}.ew-pl-3{padding-left:.75rem}.ew-pl-4{padding-left:1rem}.ew-pl-6{padding-left:1.5rem}.ew-pl-8{padding-left:2rem}.ew-pl-px{padding-left:1px}.ew-pr-0{padding-right:0}.ew-pr-1{padding-right:.25rem}.ew-pr-10{padding-right:2.5rem}.ew-pr-12{padding-right:3rem}.ew-pr-16{padding-right:4rem}.ew-pr-2{padding-right:.5rem}.ew-pr-24{padding-right:6rem}.ew-pr-3{padding-right:.75rem}.ew-pr-4{padding-right:1rem}.ew-pr-6{padding-right:1.5rem}.ew-pr-8{padding-right:2rem}.ew-pr-px{padding-right:1px}.ew-pt-0{padding-top:0}.ew-pt-0\\.5{padding-top:.125rem}.ew-pt-1{padding-top:.25rem}.ew-pt-12{padding-top:3rem}.ew-pt-16{padding-top:4rem}.ew-pt-2{padding-top:.5rem}.ew-pt-3{padding-top:.75rem}.ew-pt-3\\.5{padding-top:.875rem}.ew-pt-4{padding-top:1rem}.ew-pt-5{padding-top:1.25rem}.ew-pt-6{padding-top:1.5rem}.ew-pt-64{padding-top:16rem}.ew-pt-8{padding-top:2rem}.ew-pt-\\[10px\\]{padding-top:10px}.ew-pt-px{padding-top:1px}.ew-text-left{text-align:left}.ew-text-center{text-align:center}.ew-text-right{text-align:right}.ew-indent-0{text-indent:0}.ew-font-heading{font-family:var(--theme-font-heading)}.ew-font-text{font-family:var(--theme-font-text)}.ew-text-2xl{font-size:1.5rem;line-height:2rem}.ew-text-3xl{font-size:1.875rem;line-height:2.25rem}.ew-text-4xl{font-size:2.25rem;line-height:2.5rem}.ew-text-5xl{font-size:3rem;line-height:1}.ew-text-base{font-size:1rem;line-height:1.5rem}.ew-text-lg{font-size:1.125rem;line-height:1.75rem}.ew-text-sm{font-size:.875rem;line-height:1.25rem}.ew-text-xl{font-size:1.25rem;line-height:1.75rem}.ew-text-xs{font-size:.75rem;line-height:1rem}.ew-font-bold{font-weight:700}.ew-font-light{font-weight:300}.ew-font-medium{font-weight:500}.ew-font-normal{font-weight:400}.ew-font-semibold{font-weight:600}.ew-uppercase{text-transform:uppercase}.ew-italic{font-style:italic}.ew-leading-none{line-height:1}.ew-leading-relaxed{line-height:1.625}.ew-tracking-wider{letter-spacing:.05em}.ew-text-base-aux{--tw-text-opacity:1;color:rgb(var(--theme-base-aux-ch)/var(--tw-text-opacity))}.ew-text-base-aux\\/80{color:rgb(var(--theme-base-aux-ch)/.8)}.ew-text-base-bg{--tw-text-opacity:1;color:rgb(var(--theme-base-bg-ch)/var(--tw-text-opacity))}.ew-text-base-fg{--tw-text-opacity:1;color:rgb(var(--theme-base-fg-ch)/var(--tw-text-opacity))}.ew-text-danger-aux{--tw-text-opacity:1;color:rgb(var(--theme-danger-aux-ch)/var(--tw-text-opacity))}.ew-text-danger-fg{--tw-text-opacity:1;color:rgb(var(--theme-danger-fg-ch)/var(--tw-text-opacity))}.ew-text-inherit{color:inherit}.ew-text-neutral-aux{--tw-text-opacity:1;color:rgb(var(--theme-neutral-aux-ch)/var(--tw-text-opacity))}.ew-text-neutral-bg{--tw-text-opacity:1;color:rgb(var(--theme-neutral-bg-ch)/var(--tw-text-opacity))}.ew-text-neutral-fg{--tw-text-opacity:1;color:rgb(var(--theme-neutral-fg-ch)/var(--tw-text-opacity))}.ew-text-primary-aux{--tw-text-opacity:1;color:rgb(var(--theme-primary-aux-ch)/var(--tw-text-opacity))}.ew-text-primary-fg{--tw-text-opacity:1;color:rgb(var(--theme-primary-fg-ch)/var(--tw-text-opacity))}.ew-text-success-fg{--tw-text-opacity:1;color:rgb(var(--theme-success-fg-ch)/var(--tw-text-opacity))}.ew-text-transparent{color:transparent}.ew-text-warning-fg{--tw-text-opacity:1;color:rgb(var(--theme-warning-fg-ch)/var(--tw-text-opacity))}.ew-underline{text-decoration-line:underline}.ew-line-through{text-decoration-line:line-through}.ew-no-underline{text-decoration-line:none}.ew-placeholder-base-aux::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(var(--theme-base-aux-ch)/var(--tw-placeholder-opacity))}.ew-placeholder-base-aux::placeholder{--tw-placeholder-opacity:1;color:rgb(var(--theme-base-aux-ch)/var(--tw-placeholder-opacity))}.ew-placeholder-base-aux\\/80::-moz-placeholder{color:rgb(var(--theme-base-aux-ch)/.8)}.ew-placeholder-base-aux\\/80::placeholder{color:rgb(var(--theme-base-aux-ch)/.8)}.ew-opacity-0{opacity:0}
22303.ew-opacity-100{opacity:1}.ew-opacity-20{opacity:.2}.ew-opacity-30{opacity:.3}.ew-opacity-40{opacity:.4}.ew-opacity-50{opacity:.5}.ew-opacity-60{opacity:.6}.ew-opacity-80{opacity:.8}.ew-opacity-\\[0\\.60\\]{opacity:.6}.ew-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.ew-shadow,.ew-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ew-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.ew-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.ew-shadow-md,.ew-shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ew-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.ew-shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);
22303--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ew-shadow-black{--tw-shadow-color:#000;--tw-shadow:var(--tw-shadow-colored)}.ew-outline-none{outline:2px solid transparent;outline-offset:2px}.ew-outline-0{outline-width:0}.ew-outline-primary-fg{outline-color:rgb(var(--theme-primary-fg-ch))}.ew-ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ew-ring,.ew-ring-0{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ew-ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ew-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
22303dow,0 0 #0000)}.ew-ring-primary-fg{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--theme-primary-fg-ch)/var(--tw-ring-opacity))}.ew-ring-primary-fg\\/50{--tw-ring-color:rgb(var(--theme-primary-fg-ch)/0.5)}.ew-ring-offset-0{--tw-ring-offset-width:0px}.ew-blur{--tw-blur:blur(8px);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)}.ew-backdrop-blur{--tw-backdrop-blur:blur(8px)}.ew-backdrop-blur,.ew-backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.ew-backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.ew-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ew-transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ew-transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ew-delay-1000{transition-delay:1s}.ew-delay-500{transition-delay:.5s}.ew-duration-300{transition-duration:.3s}.ew-focusable,.ew-focusable-reset{--tw-ring-color:rgb(var(--theme-primary-fg-ch)/0.5);--tw-ring-offset-width:0px;outline:2px solid transparent;outline-offset:2px}.ew-focusable{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ew-focusable:focus-visible{--tw-border-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:rgb(var(--theme-primary-fg-ch)/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
22303dow,0 0 #0000)}.ew-focusable-inset{--tw-ring-inset:inset;--tw-ring-color:rgb(var(--theme-primary-fg-ch)/0.5);outline:2px solid transparent;outline-offset:2px;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ew-focusable-inset:focus-visible{--tw-border-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:rgb(var(--theme-primary-fg-ch)/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
22303dow,0 0 #0000)}.ew-focusable-outline{--tw-ring-color:rgb(var(--theme-primary-fg-ch)/0.5);--tw-ring-offset-width:0px;outline:2px solid transparent;outline-offset:2px;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ew-focusable-outline:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ew-relative-background:before{bottom:0;content:" ";display:block;left:0;position:absolute;right:0;top:0}.ew-justify-stretch>*{flex-grow:1;flex-shrink:0}input[type=color].ew-input-color::-webkit-color-swatch,input[type=color].ew-input-color::-webkit-color-swatch-wrapper{display:none}.ew-input-icon{display:none}.ew-input input:focus-visible,.ew-input select:focus-visible,textarea.ew-input:focus-visible{outline:none}.ew-input input:focus-visible,.ew-input select:focus-visible{border:0;box-shadow:none}textarea.ew-input:focus{--tw-ring-color:rgb(var(--theme-primary-fg-ch)/0.5)}.ew-input select option{background-color:var(--theme-base-bg);color:var(--theme-base-fg)}.ew-input input+.ew-input-icon:before,.ew-input select+.ew-input-icon:before{background:rgb(var(--theme-base-aux-ch)/.07)}.ew-input input:focus+.ew-input-icon:before,.ew-input select:focus+.ew-input-icon:before{background:var(--theme-base-bg)}.ew-input input:disabled+.ew-input-icon:before,.ew-input select:disabled+.ew-input-icon:before{background:rgb(var(--theme-base-aux-ch)/.3)}.ew-input input[aria-readonly]:disabled+.ew-input-icon:before,.ew-input select[aria-readonly]:disabled+.ew-input-icon:before{background:rgb(var(--theme-base-aux-ch)/.07)}.ew-input input[aria-readonly]:-moz-read-only:focus+.ew-input-icon:before,.ew-input select[aria-readonly]:-moz-read-only:focus+.ew-input-icon:before{background:rgb(var(--theme-base-aux-ch)/.1)}.ew-input input[aria-readonly]:read-only:focus+.ew-input-icon:before,.ew-input select[aria-readonly]:read-only:focus+.ew-input-icon:before{background:rgb(var(--theme-base-aux-ch)/.1)}.ew-input-autocomplete--options{display:none}.ew-input-autocomplete:focus-within+.ew-input-autocomplete--options{display:block}.ew-input-autocomplete--options:active{display:block}input[type=range].ew-slider{-webkit-appearance:none;background:transparent;height:auto;left:0;margin:0;opacity:1;outline:initial;position:relative;right:0;width:100%;z-index:0}input[type=range].ew-slider:disabled{pointer-events:none}input[type=range].ew-slider::-webkit-slider-runnable-track{background:initial;cursor:auto}input[type=range].ew-slider::-moz-range-track{background:initial;cursor:auto}input[type=range].ew-slider::-ms-track{background:initial;cursor:auto}input[type=range].ew-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:currentColor;border:2px solid #fff;border-radius:50%;box-shadow:0 0 4px rgba(0,0,0,.1);height:24px;-webkit-transition:.12s ease-in;transition:.12s ease-in;width:24px}input[type=range].ew-slider:hover::-webkit-slider-thumb{box-shadow:0 0 4px rgba(0,0,0,.1),0 0 4px currentColor}input[type=range].ew-slider:active::-webkit-slider-thumb{box-shadow:0 0 4px rgba(0,0,0,.1),0 0 2px currentColor;-webkit-transition:none;transition:none}input[type=range].ew-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 4px rgba(0,0,0,.1),0 0 4px currentColor}input[type=range].ew-slider::-moz-range-thumb{-moz-appearance:none;appearance:none;background:currentColor;border:2px solid #fff;border-radius:50%;box-shadow:0 0 4px rgba(0,0,0,.1);height:24px;-moz-transition:.12s ease-in;transition:.12s ease-in;width:24px}input[type=range].ew-slider:hover::-moz-range-thumb{box-shadow:0 0 4px rgba(0,0,0,.1),0 0 4px currentColor}input[type=range].ew-slider:active::-moz-range-thumb{box-shadow:0 0 4px rgba(0,0,0,.1),0 0 2px currentColor;-moz-transition:none;transition:none}input[type=range].ew-slider:focus-visible::-moz-range-thumb{box-shadow:0 0 4px rgba(0,0,0,.1),0 0 4px currentColor}.ew-popover-content{display:none}.ew-popover-trigger:focus-within+.ew-popover-content{animation:ew-animation-fade .2s forwards;display:block}.ew-popover.ew-is-open>.ew-popover-content{animation:ew-animation-fade .2s forwards;display:block}.ew-popover.ew-is-closed .ew-popover-trigger:focus-within+.ew-popover-content{display:none}.ew-popover.ew-persistent:focus-within>.ew-popover-content{display:block}.ew-popover.ew-show-on-hover .ew-popover-trigger:hover+.ew-popover-content{animation:ew-animation-fade .2s forwards;display:block}.ew-popover.ew-show-on-hover>.ew-popover-content:hover{display:block}.ew-popover-content:active{display:block!important}.ew-modal-toggle:checked+.ew-modal,.ew-modal.ew-modal--is-open{display:block;opacity:1}.ew-modal-toggle:checked+.ew-modal>.ew-modal-content,.ew-modal.ew-modal--is-open>.ew-modal-content{animation:ew-animation-fade-slide-scale .2s ease-out forwards}input[type=checkbox].ew-checkbox:before{background-image:linear-gradient(-45deg,transparent 65%,currentColor 65.99%),linear-gradient(45deg,transparent 75%,currentColor 75.99%),linear-gradient(-45deg,currentColor 40%,transparent 40.99%),linear-gradient(45deg,currentColor 30%,var(--fg-color) 30.99%,var(--fg-color) 40%,transparent 40.99%),linear-gradient(-45deg,var(--fg-color) 50%,currentColor 50.99%)}input[type=checkbox].ew-checkbox:disabled:before{opacity:.4}.ew-tooltip:after{border-style:solid;content:"";display:block;position:absolute}.ew-tooltip.ew-tooltip-top:after{border-color:var(--theme-neutral-bg) transparent transparent transparent;border-width:4px 4px 0;left:50%;margin-left:-2px;top:100%}.ew-tooltip.ew-tooltip-bottom:after{border-color:transparent transparent var(--theme-neutral-bg) transparent;border-width:0 4px 4px;bottom:100%;left:50%;margin-left:-2px}.ew-tooltip.ew-tooltip-left:after{border-color:transparent transparent transparent var(--theme-neutral-bg);border-width:4px 0 4px 4px;left:100%;margin-top:-2px;top:50%}.ew-tooltip.ew-tooltip-right:after{border-color:transparent var(--theme-neutral-bg) transparent transparent;border-width:4px 4px 4px 0;margin-top:-2px;right:100%;top:50%}.ew-table,.ew-table tbody,.ew-table td,.ew-table th,.ew-table thead,.ew-table tr{border:0;border-collapse:collapse;margin:0;padding:0}.ew-table tr{border-bottom:1px solid rgb(var(--theme-base-aux-ch)/.2)}.ew-table thead tr{border-bottom:none}.ew-table tbody tr:last-child{border-bottom:0}.ew-table td{padding:12px 8px}.ew-table-group-header td{padding:16px 8px}@keyframes ew-animation-fade{0%{opacity:0}
22303to{opacity:1}}@keyframes ew-animation-fade-slide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes ew-animation-fade-slide-scale{0%{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.ew-loading-dots{display:inline-block;height:var(--size);position:relative;width:var(--size)}.ew-loading-dots div{animation-timing-function:cubic-bezier(0,1,1,0);background:var(--color);border-radius:calc(var(--size)*.2);height:calc(var(--size)*.2);position:absolute;top:calc(var(--size)*.4);width:calc(var(--size)*.2)}.ew-loading-dots>div:first-child{animation:ew-loading-dots-1 .6s infinite;left:0}.ew-loading-dots>div:nth-child(2){animation:ew-loading-dots-2 .6s infinite;left:0}.ew-loading-dots>div:nth-child(3){animation:ew-loading-dots-2 .6s infinite;left:calc(var(--size)*.4)}.ew-loading-dots>div:nth-child(4){animation:ew-loading-dots-3 .6s infinite;left:calc(var(--size)*.8)}@keyframes ew-loading-dots-1{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes ew-loading-dots-2{0%{transform:translate(0)}to{transform:translate(calc(var(--size)*.4))}}@keyframes ew-loading-dots-3{0%{transform:scale(1)}to{transform:scale(0)}}.ew-loading-ripples{display:inline-block;height:var(--size);position:relative;width:var(--size)}.ew-loading-ripples>div{animation:ew-loading-ripples 1.2s cubic-bezier(0,.2,.8,1) infinite;border:calc(var(--size)*.06) solid var(--color);border-radius:50%;opacity:1;position:absolute}.ew-loading-ripples>div:nth-child(2){animation-delay:-.6s}@keyframes ew-loading-ripples{0%{height:0;left:calc(var(--size)*.5);opacity:1;top:calc(var(--size)*.5);width:0}to{height:var(--size);left:0;opacity:0;top:0;width:var(--size)}}.before\\:ew-pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\\:ew-absolute:before{content:var(--tw-content);position:absolute}.before\\:ew-inset-0:before{content:var(--tw-content);inset:0}.before\\:ew-inset-1:before{content:var(--tw-content);inset:.25rem}.before\\:ew-z-0:before{content:var(--tw-content);z-index:0}.before\\:ew-block:before{content:var(--tw-content);display:block}.before\\:ew-h-0:before{content:var(--tw-content);height:0}.before\\:ew-h-0\\.5:before{content:var(--tw-content);height:.125rem}.before\\:ew-w-0:before{content:var(--tw-content);width:0}.before\\:ew-w-0\\.5:before{content:var(--tw-content);width:.125rem}.before\\:ew-grow:before{content:var(--tw-content);flex-grow:1}.before\\:ew-rounded:before{border-radius:4px;content:var(--tw-content)}.before\\:ew-rounded-\\[12px\\]:before{border-radius:12px;content:var(--tw-content)}.before\\:ew-rounded-\\[14px\\]:before{border-radius:14px;content:var(--tw-content)}.before\\:ew-rounded-\\[16px\\]:before{border-radius:16px;content:var(--tw-content)}.before\\:ew-rounded-\\[18px\\]:before{border-radius:18px;content:var(--tw-content)}.before\\:ew-rounded-\\[20px\\]:before{border-radius:20px;content:var(--tw-content)}.before\\:ew-rounded-full:before{border-radius:9999px;content:var(--tw-content)}.before\\:ew-rounded-lg:before{border-radius:8px;content:var(--tw-content)}.before\\:ew-rounded-sm:before{border-radius:2px;content:var(--tw-content)}.before\\:ew-rounded-r:before{border-bottom-right-radius:4px;border-top-right-radius:4px;content:var(--tw-content)}.before\\:ew-bg-current:before{background-color:currentColor;content:var(--tw-content)}.before\\:ew-bg-neutral-aux:before{--tw-bg-opacity:1;background-color:rgb(var(--theme-neutral-aux-ch)/var(--tw-bg-opacity));content:var(--tw-content)}.before\\:ew-bg-neutral-fg:before{--tw-bg-opacity:1;background-color:rgb(var(--theme-neutral-fg-ch)/var(--tw-bg-opacity));content:var(--tw-content)}.before\\:ew-bg-primary-aux:before{--tw-bg-opacity:1;background-color:rgb(var(--theme-primary-aux-ch)/var(--tw-bg-opacity));content:var(--tw-content)}.before\\:ew-bg-primary-fg:before{--tw-bg-opacity:1;background-color:rgb(var(--theme-primary-fg-ch)/var(--tw-bg-opacity));content:var(--tw-content)}.before\\:ew-opacity-0:before{content:var(--tw-content);opacity:0}.before\\:ew-opacity-10:before{content:var(--tw-content);opacity:.1}.before\\:ew-opacity-\\[0\\.07\\]:before{content:var(--tw-content);opacity:.07}.before\\:ew-transition:before{content:var(--tw-content);transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.before\\:ew-duration-200:before{content:var(--tw-content);transition-duration:.2s}.before\\:ew-content-\\[\\\'\\\'\\]:before{--tw-content:"";content:var(--tw-content)}.after\\:ew-absolute:after{content:var(--tw-content);position:absolute}.after\\:ew-inset-x-0:after{content:var(--tw-content);left:0;right:0}.after\\:ew-top-0:after{content:var(--tw-content);top:0}.after\\:ew-block:after{content:var(--tw-content);display:block}.after\\:ew-h-0:after{content:var(--tw-content);height:0}.after\\:ew-h-0\\.5:after{content:var(--tw-content);height:.125rem}.after\\:ew-h-1:after{content:var(--tw-content);height:.25rem}.after\\:ew-h-1\\.5:after{content:var(--tw-content);height:.375rem}.after\\:ew-w-0:after{content:var(--tw-content);width:0}.after\\:ew-w-0\\.5:after{content:var(--tw-content);width:.125rem}.after\\:ew-grow:after{content:var(--tw-content);flex-grow:1}.after\\:ew-rounded-t:after{border-top-left-radius:4px;border-top-right-radius:4px;content:var(--tw-content)}.after\\:ew-bg-current:after{background-color:currentColor;content:var(--tw-content)}.after\\:ew-content-\\[\\\'\\\'\\]:after{--tw-content:"";content:var(--tw-content)}.first\\:ew-ml-0:first-child{margin-left:0}.first\\:ew-rounded-l-\\[16px\\]:first-child{border-bottom-left-radius:16px;border-top-left-radius:16px}.first\\:ew-rounded-l-\\[20px\\]:first-child{border-bottom-left-radius:20px;border-top-left-radius:20px}.first\\:ew-rounded-l-lg:first-child{border-bottom-left-radius:8px;border-top-left-radius:8px}.last\\:ew-mr-0:last-child{margin-right:0}.last\\:ew-rounded-r-\\[16px\\]:last-child{border-bottom-right-radius:16px;border-top-right-radius:16px}.last\\:ew-rounded-r-\\[20px\\]:last-child{border-bottom-right-radius:20px;border-top-right-radius:20px}.last\\:ew-rounded-r-lg:last-child{border-bottom-right-radius:8px;border-top-right-radius:8px}.focus-within\\:ew-border-primary-fg:focus-within{--tw-border-opacity:1;border-color:rgb(var(--theme-primary-fg-ch)/var(--tw-border-opacity))}.focus-within\\:ew-bg-base-aux\\/10:focus-within{background-color:rgb(var(--theme-base-aux-ch)/.1)}.focus-within\\:ew-bg-base-bg:focus-within{--tw-bg-opacity:1;background-color:rgb(var(--theme-base-bg-ch)/var(--tw-bg-opacity))}.focus-within\\:ew-text-base-fg:focus-within{--tw-text-opacity:1;color:rgb(var(--theme-base-fg-ch)/var(--tw-text-opacity))}.focus-within\\:ew-ring:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
22303dow,0 0 #0000)}.hover\\:ew-bg-base-aux\\/10:hover{background-color:rgb(var(--theme-base-aux-ch)/.1)}.hover\\:ew-bg-base-aux\\/\\[0\\.04\\]:hover{background-color:rgb(var(--theme-base-aux-ch)/.04)}.hover\\:ew-bg-base-aux\\/\\[0\\.07\\]:hover{background-color:rgb(var(--theme-base-aux-ch)/.07)}.hover\\:ew-bg-primary-fg\\/\\[0\\.15\\]:hover{background-color:rgb(var(--theme-primary-fg-ch)/.15)}.hover\\:before\\:ew-opacity-10:hover:before{content:var(--tw-content);opacity:.1}.hover\\:before\\:ew-opacity-\\[0\\.05\\]:hover:before{content:var(--tw-content);opacity:.05}.hover\\:before\\:ew-opacity-\\[0\\.07\\]:hover:before{content:var(--tw-content);opacity:.07}.focus\\:ew-z-10:focus{z-index:10}.focus\\:ew-border-primary-fg:focus{--tw-border-opacity:1;border-color:rgb(var(--theme-primary-fg-ch)/var(--tw-border-opacity))}.focus\\:ew-bg-base-aux\\/\\[0\\.07\\]:focus{background-color:rgb(var(--theme-base-aux-ch)/.07)}.focus\\:ew-bg-base-bg:focus{--tw-bg-opacity:1;background-color:rgb(var(--theme-base-bg-ch)/var(--tw-bg-opacity))}.focus\\:ew-bg-primary-fg\\/\\[0\\.15\\]:focus{background-color:rgb(var(--theme-primary-fg-ch)/.15)}.focus\\:ew-shadow-none:focus{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-sha
22303dow)}.focus\\:ew-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ew-ring:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.read-only\\:focus\\:ew-bg-base-aux\\/10:focus:-moz-read-only{background-color:rgb(var(--theme-base-aux-ch)/.1)}.read-only\\:focus\\:ew-bg-base-aux\\/10:focus:read-only{background-color:rgb(var(--theme-base-aux-ch)/.1)}.focus-visible\\:ew-border-primary-fg:focus-visible{--tw-border-opacity:1;border-color:rgb(var(--theme-primary-fg-ch)/var(--tw-border-opacity))}.focus-visible\\:ew-bg-base-bg:focus-visible{--tw-bg-opacity:1;background-color:rgb(var(--theme-base-bg-ch)/var(--tw-bg-opacity))}.focus-visible\\:ew-outline-0:focus-visible{outline-width:0}.focus-visible\\:ew-ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
22303dow,0 0 #0000)}.active\\:ew-bg-base-aux\\/10:active{background-color:rgb(var(--theme-base-aux-ch)/.1)}.active\\:ew-bg-base-aux\\/\\[0\\.07\\]:active{background-color:rgb(var(--theme-base-aux-ch)/.07)}.active\\:ew-bg-primary-fg\\/20:active{background-color:rgb(var(--theme-primary-fg-ch)/.2)}.active\\:before\\:ew-opacity-10:active:before{content:var(--tw-content);opacity:.1}.active\\:before\\:ew-opacity-20:active:before{content:var(--tw-content);opacity:.2}.active\\:before\\:ew-opacity-\\[0\\.03\\]:active:before{content:var(--tw-content);opacity:.03}.active\\:before\\:ew-opacity-\\[0\\.15\\]:active:before{content:var(--tw-content);opacity:.15}.disabled\\:ew-pointer-events-none:disabled{pointer-events:none}.disabled\\:ew-border-base-aux\\/\\[0\\.25\\]:disabled{border-color:rgb(var(--theme-base-aux-ch)/.25)}.disabled\\:ew-bg-base-aux\\/\\[0\\.25\\]:disabled{background-color:rgb(var(--theme-base-aux-ch)/.25)}.disabled\\:ew-opacity-60:disabled{opacity:.6}.ew-group:focus-within .group-focus-within\\:ew-relative{position:relative}.ew-group:focus-within .group-focus-within\\:ew-rounded{border-radius:4px}.ew-group\\/ew:focus-within .group-focus-within\\/ew\\:ew-border-base-fg{--tw-border-opacity:1;border-color:rgb(var(--theme-base-fg-ch)/var(--tw-border-opacity))}.ew-group:focus-within .group-focus-within\\:ew-bg-neutral-bg{--tw-bg-opacity:1;background-color:rgb(var(--theme-neutral-bg-ch)/var(--tw-bg-opacity))}.ew-group:focus-within .group-focus-within\\:ew-px-2{padding-left:.5rem;padding-right:.5rem}.ew-group:focus-within .group-focus-within\\:ew-text-sm{font-size:.875rem;line-height:1.25rem}.ew-group:focus-within .group-focus-within\\:ew-leading-relaxed{line-height:1.625}.ew-group:focus-within .group-focus-within\\:ew-text-neutral-aux{--tw-text-opacity:1;color:rgb(var(--theme-neutral-aux-ch)/var(--tw-text-opacity))}.ew-group:hover .group-hover\\:ew-translate-x-0{--tw-translate-x:0px}.ew-group:hover .group-hover\\:ew-translate-x-0,.ew-group:hover .group-hover\\:ew-translate-y-0{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))}.ew-group:hover .group-hover\\:ew-translate-y-0{--tw-translate-y:0px}.ew-group:hover .group-hover\\:ew-opacity-100{opacity:1}.ew-group:hover .group-hover\\:ew-delay-100{transition-delay:.1s}.ew-group:hover .group-hover\\:ew-delay-1000{transition-delay:1s}.ew-group:hover .group-hover\\:ew-delay-500{transition-delay:.5s}@media (min-width:1024px){.lg\\:ew-table-cell{display:table-cell}.lg\\:ew-flex-row{flex-direction:row}.lg\\:ew-flex-col{flex-direction:column}.lg\\:ew-items-start{align-items:flex-start}.lg\\:ew-items-end{align-items:flex-end}.lg\\:ew-items-center{align-items:center}.lg\\:ew-justify-start{justify-content:flex-start}.lg\\:ew-justify-end{justify-content:flex-end}.lg\\:ew-justify-center{justify-content:center}.lg\\:ew-justify-between{justify-content:space-between}.lg\\:ew-justify-around{justify-content:space-around}.lg\\:ew-gap-0{gap:0}.lg\\:ew-gap-1{gap:.25rem}.lg\\:ew-gap-12{gap:3rem}.lg\\:ew-gap-16{gap:4rem}.lg\\:ew-gap-2{gap:.5rem}.lg\\:ew-gap-4{gap:1rem}.lg\\:ew-gap-6{gap:1.5rem}.lg\\:ew-gap-8{gap:2rem}.lg\\:ew-p-0{padding:0}.lg\\:ew-p-1{padding:.25rem}.lg\\:ew-p-12{padding:3rem}.lg\\:ew-p-16{padding:4rem}.lg\\:ew-p-2{padding:.5rem}.lg\\:ew-p-4{padding:1rem}.lg\\:ew-p-6{padding:1.5rem}.lg\\:ew-p-8{padding:2rem}.lg\\:ew-px-0{padding-left:0;padding-right:0}.lg\\:ew-px-1{padding-left:.25rem;padding-right:.25rem}.lg\\:ew-px-12{padding-left:3rem;padding-right:3rem}.lg\\:ew-px-16{padding-left:4rem;padding-right:4rem}.lg\\:ew-px-2{padding-left:.5rem;padding-right:.5rem}.lg\\:ew-px-4{padding-left:1rem;padding-right:1rem}.lg\\:ew-px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\\:ew-px-8{padding-left:2rem;padding-right:2rem}.lg\\:ew-py-0{padding-bottom:0;padding-top:0}.lg\\:ew-py-1{padding-bottom:.25rem;padding-top:.25rem}.lg\\:ew-py-12{padding-bottom:3rem;padding-top:3rem}.lg\\:ew-py-16{padding-bottom:4rem;padding-top:4rem}.lg\\:ew-py-2{padding-bottom:.5rem;padding-top:.5rem}.lg\\:ew-py-4{padding-bottom:1rem;padding-top:1rem}.lg\\:ew-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.lg\\:ew-py-8{padding-bottom:2rem;padding-top:2rem}.lg\\:ew-pl-0{padding-left:0}.lg\\:ew-pl-1{padding-left:.25rem}.lg\\:ew-pl-12{padding-left:3rem}.lg\\:ew-pl-16{padding-left:4rem}.lg\\:ew-pl-2{padding-left:.5rem}.lg\\:ew-pl-4{padding-left:1rem}.lg\\:ew-pl-6{padding-left:1.5rem}.lg\\:ew-pl-8{padding-left:2rem}.lg\\:ew-pr-0{padding-right:0}.lg\\:ew-pr-1{padding-right:.25rem}.lg\\:ew-pr-12{padding-right:3rem}.lg\\:ew-pr-16{padding-right:4rem}.lg\\:ew-pr-2{padding-right:.5rem}.lg\\:ew-pr-4{padding-right:1rem}.lg\\:ew-pr-6{padding-right:1.5rem}.lg\\:ew-pr-8{padding-right:2rem}.lg\\:ew-pt-0{padding-top:0}.lg\\:ew-pt-1{padding-top:.25rem}.lg\\:ew-pt-12{padding-top:3rem}.lg\\:ew-pt-16{padding-top:4rem}.lg\\:ew-pt-2{padding-top:.5rem}.lg\\:ew-pt-4{padding-top:1rem}.lg\\:ew-pt-6{padding-top:1.5rem}.lg\\:ew-pt-8{padding-top:2rem}}')
22304		]));
22305var $dtwrks$elm_book$ElmBook$ThemeOptions$globals = F2(
22306	function (globals_, options) {
22307		return _Utils_update(
22308			options,
22309			{
22310				ee: $elm$core$Maybe$Just(
22311					A2(
22312						$elm$core$Maybe$withDefault,
22313						globals_,
22314						A2(
22315							$elm$core$Maybe$map,
22316							$elm$core$Basics$append(globals_),
22317							options.ee)))
22318			});
22319	});
22320var $author$project$W$InputAutocomplete$init = function (props) {
22321	return $author$project$W$InputAutocomplete$initInput(
22322		{K: false, am: 0, en: '', gv: props.gv, cN: props.cN});
22323};
22324var $author$project$Chapters$Form$InputAutocomplete$init = {
22325	bS: $elm$core$Maybe$Nothing,
22326	aJ: false,
22327	f9: $elm$core$Maybe$Nothing,
22328	ai: _List_Nil,
22329	cN: $author$project$W$InputAutocomplete$init(
22330		{
22331			gv: function ($) {
22332				return $.w;
22333			},
22334			cN: $elm$core$Maybe$Nothing
22335		})
22336};
22337var $author$project$W$InputFloat$init = function (value) {
22338	return A2(
22339		$author$project$W$InputFloat$Value,
22340		A2(
22341			$elm$core$Maybe$withDefault,
22342			'',
22343			A2($elm$core$Maybe$map, $elm$core$String$fromFloat, value)),
22344		value);
22345};
22346var $author$project$Chapters$Form$InputFloat$init = {
22347	cM: $elm$core$Maybe$Nothing,
22348	cN: $author$project$W$InputFloat$init(
22349		$elm$core$Maybe$Just(1.2)),
22350	cO: $author$project$W$InputFloat$init($elm$core$Maybe$Nothing)
22351};
22352var $author$project$W$InputInt$init = function (value) {
22353	return A2(
22354		$author$project$W$InputInt$Value,
22355		A2(
22356			$elm$core$Maybe$withDefault,
22357			'',
22358			A2($elm$core$Maybe$map, $elm$core$String$fromInt, value)),
22359		value);
22360};
22361var $author$project$Chapters$Form$InputInt$init = $author$project$W$InputInt$init(
22362	$elm$core$Maybe$Just(4));
22363var $author$project$Chapters$Form$InputSlider$init = {bO: 5, bU: 5};
22364var $author$project$Chapters$Form$InputText$init = {cL: '', bB: _List_Nil, cN: 'S
22364ome text'};
22365var $author$project$Chapters$Form$InputTextArea$init = 'Testing a long\n long\n long\n text?';
22366var $author$project$Chapters$Information$Popover$init = {ad: false, ar: 0};
22367var $author$project$Chapters$Overview$init = {
22368	b2: '',
22369	b3: $elm$core$Maybe$Nothing,
22370	cC: 0,
22371	cG: A2($author$project$W$InputTime$init, $elm$time$Time$utc, $elm$core$Maybe$Nothing)
22372};
22373var $uncover_co$elm_theme$Theme$lightTheme = $uncover_co$elm_theme$Theme$new(
22374	{
22375		d1: {
22376			cV: A3($avh4$elm_color$Color$rgb255, 99, 119, 136),
22377			bF: A3($avh4$elm_color$Color$rgb255, 253, 253, 253),
22378			da: A3($avh4$elm_color$Color$rgb255, 43, 52, 59)
22379		},
22380		c0: {
22381			cV: A3($avh4$elm_color$Color$rgb255, 255, 255, 255),
22382			bF: A3($avh4$elm_color$Color$rgb255, 220, 50, 84),
22383			da: A3($avh4$elm_color$Color$rgb255, 230, 25, 66)
22384		},
22385		z: {a4: 'monospace', dd: 'system-ui, sans-serif', j: 'system-ui, sans-serif'},
22386		dq: {
22387			cV: A3($avh4$elm_color$Color$rgb255, 255, 255, 255),
22388			bF: A3($avh4$elm_color$Color$rgb255, 91, 111, 125),
22389			da: A3($avh4$elm_color$Color$rgb255, 99, 119, 136)
22390		},
22391		dz: {
22392			cV: A3($avh4$elm_color$Color$rgb255, 255, 255, 255),
22393			bF: A3($avh4$elm_color$Color$rgb255, 0, 122, 204),
22394			da: A3($avh4$elm_color$Color$rgb255, 0, 119, 199)
22395		},
22396		dC: {
22397			cV: A3($avh4$elm_color$Color$rgb255, 255, 255, 255),
22398			bF: A3($avh4$elm_color$Color$rgb255, 192, 57, 181),
22399			da: A3($avh4$elm_color$Color$rgb255, 209, 0, 192)
22400		},
22401		gr: {
22402			cV: A3($avh4$elm_color$Color$rgb255, 0, 66, 38),
22403			bF: A3($avh4$elm_color$Color$rgb255, 150, 230, 71),
22404			da: A3($avh4$elm_color$Color$rgb255, 34, 128, 0)
22405		},
22406		dX: {
22407			cV: A3($avh4$elm_color$Color$rgb255, 87, 46, 0),
22408			bF: A3($avh4$elm_color$Color$rgb255, 250, 192, 56),
22409			da: A3($avh4$elm_color$Color$rgb255, 182, 91, 7)
22410		}
22411	});
22412var $author$project$Chapters$Theme$init = $uncover_co$elm_theme$Theme$toThemeData($uncover_co$elm_theme$Theme$lightTheme);
22413var $author$project$W$Docs$InputCode$init = '';
22414var $dtwrks$elm_book$ElmBook$StatefulOptions$initialState = F2(
22415	function (state, options) {
22416		return _Utils_update(
22417			options,
22418			{
22419				fG: $elm$core$Maybe$Just(state)
22420			});
22421	});
22422var $dtwrks$elm_book$ElmBook$ThemeOptions$subtitle = F2(
22423	function (subtitle_, theme) {
22424		return _Utils_update(
22425			theme,
22426			{
22427				dJ: $elm$core$Maybe$Just(subtitle_)
22428			});
22429	});
22430var $dtwrks$elm_book$ElmBook$Internal$Msg$OnUrlChange = function (a) {
22431	return {$: 2, a: a};
22432};
22433var $dtwrks$elm_book$ElmBook$Internal$Msg$OnUrlRequest = function (a) {
22434	return {$: 1, a: a};
22435};
22436var $elm$browser$Browser$External = function (a) {
22437	return {$: 1, a: a};
22438};
22439var $elm$browser$Browser$Internal = function (a) {
22440	return {$: 0, a: a};
22441};
22442var $elm$browser$Browser$Dom$NotFound = $elm$core$Basics$identity;
22443var $elm$url$Url$Http = 0;
22444var $elm$url$Url$Https = 1;
22445var $elm$url$Url$Url = F6(
22446	function (protocol, host, port_, path, query, fragment) {
22447		return {ft: fragment, eh: host, dw: path, eH: port_, eK: protocol, eL: query};
22448	});
22449var $elm$core$String$dropLeft = F2(
22450	function (n, string) {
22451		return (n < 1) ? string : A3(
22452			$elm$core$String$slice,
22453			n,
22454			$elm$core$String$length(string),
22455			string);
22456	});
22457var $elm$core$String$indexes = _String_indexes;
22458var $elm$url$Url$chompBeforePath = F5(
22459	function (protocol, path, params, frag, str) {
22460		if ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) {
22461			return $elm$core$Maybe$Nothing;
22462		} else {
22463			var _v0 = A2($elm$core$String$indexes, ':', str);
22464			if (!_v0.b) {
22465				return $elm$core$Maybe$Just(
22466					A6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag));
22467			} else {
22468				if (!_v0.b.b) {
22469					var i = _v0.a;
22470					var _v1 = $elm$core$String$toInt(
22471						A2($elm$core$String$dropLeft, i + 1, str));
22472					if (_v1.$ === 1) {
22473						return $elm$core$Maybe$Nothing;
22474					} else {
22475						var port_ = _v1;
22476						return $elm$core$Maybe$Just(
22477							A6(
22478								$elm$url$Url$Url,
22479								protocol,
22480								A2($elm$core$String$left, i, str),
22481								port_,
22482								path,
22483								params,
22484								frag));
22485					}
22486				} else {
22487					return $elm$core$Maybe$Nothing;
22488				}
22489			}
22490		}
22491	});
22492var $elm$url$Url$chompBeforeQuery = F4(
22493	function (protocol, params, frag, str) {
22494		if ($elm$core$String$isEmpty(str)) {
22495			return $elm$core$Maybe$Nothing;
22496		} else {
22497			var _v0 = A2($elm$core$String$indexes, '/', str);
22498			if (!_v0.b) {
22499				return A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str);
22500			} else {
22501				var i = _v0.a;
22502				return A5(
22503					$elm$url$Url$chompBeforePath,
22504					protocol,
22505					A2($elm$core$String$dropLeft, i, str),
22506					params,
22507					frag,
22508					A2($elm$core$String$left, i, str));
22509			}
22510		}
22511	});
22512var $elm$url$Url$chompBeforeFragment = F3(
22513	function (protocol, frag, str) {
22514		if ($elm$core$String$isEmpty(str)) {
22515			return $elm$core$Maybe$Nothing;
22516		} else {
22517			var _v0 = A2($elm$core$String$indexes, '?', str);
22518			if (!_v0.b) {
22519				return A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str);
22520			} else {
22521				var i = _v0.a;
22522				return A4(
22523					$elm$url$Url$chompBeforeQuery,
22524					protocol,
22525					$elm$core$Maybe$Just(
22526						A2($elm$core$String$dropLeft, i + 1, str)),
22527					frag,
22528					A2($elm$core$String$left, i, str));
22529			}
22530		}
22531	});
22532var $elm$url$Url$chompAfterProtocol = F2(
22533	function (protocol, str) {
22534		if ($elm$core$String$isEmpty(str)) {
22535			return $elm$core$Maybe$Nothing;
22536		} else {
22537			var _v0 = A2($elm$core$String$indexes, '#', str);
22538			if (!_v0.b) {
22539				return A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str);
22540			} else {
22541				var i = _v0.a;
22542				return A3(
22543					$elm$url$Url$chompBeforeFragment,
22544					protocol,
22545					$elm$core$Maybe$Just(
22546						A2($elm$core$String$dropLeft, i + 1, str)),
22547					A2($elm$core$String$left, i, str));
22548			}
22549		}
22550	});
22551var $elm$core$String$startsWith = _String_startsWith;
22552var $elm$url$Url$fromString = function (str) {
22553	return A2($elm$core$String$startsWith, 'http://', str) ? A2(
22554		$elm$url$Url$chompAfterProtocol,
22555		0,
22556		A2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2(
22557		$elm$url$Url$chompAfterProtocol,
22558		1,
22559		A2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing);
22560};
22561var $elm$core$Basics$never = function (_v0) {
22562	never:
22563	while (true) {
22564		var nvr = _v0;
22565		var $temp$_v0 = nvr;
22566		_v0 = $temp$_v0;
22567		continue never;
22568	}
22569};
22570var $elm$browser$Browser$application = _Browser_application;
22571var $elm$core$Platform$Sub$batch = _Platform_batch;
22572var $dtwrks$elm_book$ElmBook$Internal$Chapter$chapterUrl = function (_v0) {
22573	var url = _v0.gy;
22574	return url;
22575};
22576var $elm$core$Elm$JsArray$push = _JsArray_push;
22577var $elm$core$Elm$JsArray$singleton = _JsArray_singleton;
22578var $elm$core$Elm$JsArray$unsafeSet = _JsArray_unsafeSet;
22579var $elm$core$Array$insertTailInTree = F4(
22580	function (shift, index, tail, tree) {
22581		var pos = $elm$core$Array$bitMask & (index >>> shift);
22582		if (_Utils_cmp(
22583			pos,
22584			$elm$core$Elm$JsArray$length(tree)) > -1) {
22585			if (shift === 5) {
22586				return A2(
22587					$elm$core$Elm$JsArray$push,
22588					$elm$core$Array$Leaf(tail),
22589					tree);
22590			} else {
22591				var newSub = $elm$core$Array$SubTree(
22592					A4($elm$core$Array$insertTailInTree, shift - $elm$core$Array$shiftStep, index, tail, $elm$core$Elm$JsArray$empty));
22593				return A2($elm$core$Elm$JsArray$push, newSub, tree);
22594			}
22595		} else {
22596			var value = A2($elm$core$Elm$JsArray$unsafeGet, pos, tree);
22597			if (!value.$) {
22598				var subTree = value.a;
22599				var newSub = $elm$core$Array$SubTree(
22600					A4($elm$core$Array$insertTailInTree, shift - $elm$core$Array$shiftStep, index, tail, subTree));
22601				return A3($elm$core$Elm$JsArray$unsafeSet, pos, newSub, tree);
22602			} else {
22603				var newSub = $elm$core$Array$SubTree(
22604					A4(
22605						$elm$core$Array$insertTailInTree,
22606						shift - $elm$core$Array$shiftStep,
22607						index,
22608						tail,
22609						$elm$core$Elm$JsArray$singleton(value)));
22610				return A3($elm$core$Elm$JsArray$unsafeSet, pos, newSub, tree);
22611			}
22612		}
22613	});
22614var $elm$core$Array$unsafeReplaceTail = F2(
22615	function (newTail, _v0) {
22616		var len = _v0.a;
22617		var startShift = _v0.b;
22618		var tree = _v0.c;
22619		var tail = _v0.d;
22620		var originalTailLen = $elm$core$Elm$JsArray$length(tail);
22621		var newTailLen = $elm$core$Elm$JsArray$length(newTail);
22622		var newArrayLen = len + (newTailLen - originalTailLen);
22623		if (_Utils_eq(newTailLen, $elm$core$Array$branchFactor)) {
22624			var overflow = _Utils_cmp(newArrayLen >>> $elm$core$Array$shiftStep, 1 << startShift) > 0;
22625			if (overflow) {
22626				var newShift = startShift + $elm$core$Array$shiftStep;
22627				var newTree = A4(
22628					$elm$core$Array$insertTailInTree,
22629					newShift,
22630					len,
22631					newTail,
22632					$elm$core$Elm$JsArray$singleton(
22633						$elm$core$Array$SubTree(tree)));
22634				return A4($elm$core$Array$Array_elm_builtin, newArrayLen, newShift, newTree, $elm$core$Elm$JsArray$empty);
22635			} else {
22636				return A4(
22637					$elm$core$Array$Array_elm_builtin,
22638					newArrayLen,
22639					startShift,
22640					A4($elm$core$Array$insertTailInTree, startShift, len, newTail, tree),
22641					$elm$core$Elm$JsArray$empty);
22642			}
22643		} else {
22644			return A4($elm$core$Array$Array_elm_builtin, newArrayLen, startShift, tree, newTail);
22645		}
22646	});
22647var $elm$core$Array$push = F2(
22648	function (a, array) {
22649		var tail = array.d;
22650		return A2(
22651			$elm$core$Array$unsafeReplaceTail,
22652			A2($elm$core$Elm$JsArray$push, a, tail),
22653			array);
22654	});
22655var $dtwrks$elm_book$ElmBook$Internal$Book$configFromBuilder = F2(
22656	function (chapterGroups_, _v0) {
22657		var data = _v0;
22658		var chapterGroups = function () {
22659			var toIndexedGroup = F2(
22660				function (initialIndex, _v6) {
22661					var groupTitle = _v6.a;
22662					var groupChapters = _v6.b;
22663					return _Utils_Tuple2(
22664						groupTitle,
22665						A2(
22666							$elm$core$List$indexedMap,
22667							F2(
22668								function (i, _v5) {
22669									return i + initialIndex;
22670								}),
22671							groupChapters));
22672				});
22673			return $elm$core$List$reverse(
22674				A3(
22675					$elm$core$List$foldl,
22676					F2(
22677						function (_v3, _v4) {
22678							var label = _v3.a;
22679							var xs = _v3.b;
22680							var acc = _v4.a;
22681							var lastIndex = _v4.b;
22682							return _Utils_Tuple2(
22683								A2(
22684									$elm$core$List$cons,
22685									A2(
22686										toIndexedGroup,
22687										lastIndex,
22688										_Utils_Tuple2(label, xs)),
22689									acc),
22690								lastIndex + $elm$core$List$length(xs));
22691						}),
22692					_Utils_Tuple2(_List_Nil, 0),
22693					chapterGroups_).a);
22694		}();
22695		var chapterData = A3(
22696			$elm$core$List$foldl,
22697			F2(
22698				function (_v2, acc) {
22699					var chapters_ = _v2.b;
22700					return A3(
22701						$elm$core$List$foldl,
22702						F2(
22703							function (c, acc_) {
22704								return {
22705									fh: A3(
22706										$elm$core$Dict$insert,
22707										$dtwrks$elm_book$ElmBook$Internal$Chapter$chapterUrl(c),
22708										acc_.ax,
22709										acc_.fh),
22710									aw: A2($elm$core$Array$push, c, acc_.aw),
22711									ax: acc_.ax + 1
22712								};
22713							}),
22714						{fh: acc.fh, aw: acc.aw, ax: acc.ax},
22715						chapters_);
22716				}),
22717			{fh: $elm$core$Dict$empty, aw: $elm$core$Array$empty, ax: 0},
22718			chapterGroups_);
22719		var _v1 = chapterData;
22720		var chapters = _v1.aw;
22721		var chapterByUrl = _v1.fh;
22722		return {fh: chapterByUrl, fi: chapterGroups, d4: data.d4, aw: chapters, d6: data.d6, eW: data.eW, dR: data.dR, gt: data.gt, e0: data.e0};
22723	});
22724var $dtwrks$elm_book$ElmBook$Internal$Book$chapterFromUrl = F2(
22725	function (config, url) {
22726		return A2(
22727			$elm$core$Maybe$andThen,
22728			function (i) {
22729				return A2($elm$core$Array$get, i, config.aw);
22730			},
22731			A2($elm$core$Dict$get, url, config.fh));
22732	});
22733var $dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl = F2(
22734	function (hashBasedNavigation, _v0) {
22735		var url = _v0.gy;
22736		var internal = _v0.er;
22737		return (internal && hashBasedNavigation) ? ('#' + url) : url;
22738	});
22739var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultOverrides = {e9: $elm$core$Maybe$Nothing, bF: $elm$core$Maybe$Nothing, f_: $elm$core$Maybe$Nothing, f$: $elm$core$Maybe$Nothing, f0: $elm$core$Maybe$Nothing};
22740var $dtwrks$elm_book$ElmBook$Internal$Application$extractPath = F2(
22741	function (hashBasedNavigation, url) {
22742		return hashBasedNavigation ? A2($elm$core$Maybe$withDefault, '/', url.ft) : url.dw;
22743	});
22744var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$hashBasedNavigation = function ($) {
22745	return $.fy;
22746};
22747var $dtwrks$elm_book$ElmBook$Internal$Chapter$init = function (_v0) {
22748	var chapter = _v0;
22749	return chapter.di;
22750};
22751var $elm$browser$Browser$Navigation$replaceUrl = _Browser_replaceUrl;
22752var $dtwrks$elm_book$ElmBook$Internal$Application$init = F4(
22753	function (config, _v0, url_, navKey) {
22754		var url = A2($dtwrks$elm_book$ElmBook$Internal$Application$extractPath, c
22754onfig.dR.fy, url_);
22755		var hashBasedNavigation_ = $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$hashBasedNavigation(config.dR);
22756		var darkMode = config.dR.gd;
22757		var initialState = A2(
22758			$elm$core$Maybe$map,
22759			config.eW.eE(darkMode),
22760			config.eW.fG);
22761		var activeChapter = A2(
22762			$dtwrks$elm_book$ElmBook$Internal$Book$chapterFromUrl,
22763			config,
22764			A2($dtwrks$elm_book$ElmBook$Internal$Application$extractPath, hashBasedNavigation_, url_));
22765		var _v1 = A2(
22766			$elm$core$Maybe$withDefault,
22767			_Utils_Tuple2(initialState, $elm$core$Platform$Cmd$none),
22768			A2(
22769				$elm$core$Maybe$andThen,
22770				function (chapter) {
22771					return A2(
22772						$elm$core$Maybe$map,
22773						$elm$core$Tuple$mapFirst($elm$core$Maybe$Just),
22774						A3(
22775							$elm$core$Maybe$map2,
22776							F2(
22777								function (state_, chapterInit) {
22778									return chapterInit(state_);
22779								}),
22780							initialState,
22781							$dtwrks$elm_book$ElmBook$Internal$Chapter$init(chapter)));
22782				},
22783				activeChapter));
22784		var initialState_ = _v1.a;
22785		var cmd = _v1.b;
22786		return _Utils_Tuple2(
22787			{Y: _List_Nil, a$: false, d0: $elm$core$Maybe$Nothing, J: 0, az: darkMode, M: false, bb: false, bc: false, b5: false, aM: navKey, aT
22787: '', R: initialState_, bx: $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultOverrides, gy: url},
22788			function () {
22789				if (!activeChapter.$) {
22790					return cmd;
22791				} else {
22792					return A2(
22793						$elm$core$Maybe$withDefault,
22794						A2($elm$browser$Browser$Navigation$replaceUrl, navKey, '/'),
22795						A2(
22796							$elm$core$Maybe$map,
22797							A2(
22798								$elm$core$Basics$composeL,
22799								$elm$browser$Browser$Navigation$replaceUrl(navKey),
22800								$dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl(hashBasedNavigation_)),
22801							A2($elm$core$Array$get, 0, config.aw)));
22802				}
22803			}());
22804	});
22805var $dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing = {$: 0};
22806var $dtwrks$elm_book$ElmBook$Internal$Msg$KeyArrowDown = {$: 12};
22807var $dtwrks$elm_book$ElmBook$Internal$Msg$KeyArrowUp = {$: 13};
22808var $dtwrks$elm_book$ElmBook$Internal$Msg$KeyEnter = {$: 18};
22809var $dtwrks$elm_book$ElmBook$Internal$Msg$KeyK = {$: 19};
22810var $dtwrks$elm_book$ElmBook$Internal$Msg$KeyMetaOn = {$: 16};
22811var $dtwrks$elm_book$ElmBook$Internal$Msg$KeyShiftOn = {$: 14};
22812var $dtwrks$elm_book$ElmBook$Internal$Application$keyDownDecoder = A2(
22813	$elm$json$Json$Decode$map,
22814	function (string) {
22815		var _v0 = $elm$core$String$toLower(string);
22816		switch (_v0) {
22817			case 'arrowdown':
22818				return $dtwrks$elm_book$ElmBook$Internal$Msg$KeyArrowDown;
22819			case 'arrowup':
22820				return $dtwrks$elm_book$ElmBook$Internal$Msg$KeyArrowUp;
22821			case 'shift':
22822				return $dtwrks$elm_book$ElmBook$Internal$Msg$KeyShiftOn;
22823			case 'meta':
22824				return $dtwrks$elm_book$ElmBook$Internal$Msg$KeyMetaOn;
22825			case 'enter':
22826				return $dtwrks$elm_book$ElmBook$Internal$Msg$KeyEnter;
22827			case 'k':
22828				return $dtwrks$elm_book$ElmBook$Internal$Msg$KeyK;
22829			default:
22830				return $dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing;
22831		}
22832	},
22833	A2($elm$json$Json$Decode$field, 'key', $elm$json$Json$Decode$string));
22834var $dtwrks$elm_book$ElmBook$Internal$Msg$KeyMetaOff = {$: 17};
22835var $dtwrks$elm_book$ElmBook$Internal$Msg$KeyShiftOff = {$: 15};
22836var $dtwrks$elm_book$ElmBook$Internal$Application$keyUpDecoder = A2(
22837	$elm$json$Json$Decode$map,
22838	function (string) {
22839		var _v0 = $elm$core$String$toLower(string);
22840		switch (_v0) {
22841			case 'shift':
22842				return $dtwrks$elm_book$ElmBook$Internal$Msg$KeyShiftOff;
22843			case 'meta':
22844				return $dtwrks$elm_book$ElmBook$Internal$Msg$KeyMetaOff;
22845			default:
22846				return $dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing;
22847		}
22848	},
22849	A2($elm$json$Json$Decode$field, 'key', $elm$json$Json$Decode$string));
22850var $elm$browser$Browser$Events$Document = 0;
22851var $elm$browser$Browser$Events$MySub = F3(
22852	function (a, b, c) {
22853		return {$: 0, a: a, b: b, c: c};
22854	});
22855var $elm$browser$Browser$Events$State = F2(
22856	function (subs, pids) {
22857		return {eG: pids, eZ: subs};
22858	});
22859var $elm$browser$Browser$Events$init = $elm$core$Task$succeed(
22860	A2($elm$browser$Browser$Events$State, _List_Nil, $elm$core$Dict$empty));
22861var $elm$browser$Browser$Events$nodeToKey = function (node) {
22862	if (!node) {
22863		return 'd_';
22864	} else {
22865		return 'w_';
22866	}
22867};
22868var $elm$browser$Browser$Events$addKey = function (sub) {
22869	var node = sub.a;
22870	var name = sub.b;
22871	return _Utils_Tuple2(
22872		_Utils_ap(
22873			$elm$browser$Browser$Events$nodeToKey(node),
22874			name),
22875		sub);
22876};
22877var $elm$core$Process$kill = _Scheduler_kill;
22878var $elm$core$Dict$foldl = F3(
22879	function (func, acc, dict) {
22880		foldl:
22881		while (true) {
22882			if (dict.$ === -2) {
22883				return acc;
22884			} else {
22885				var key = dict.b;
22886				var value = dict.c;
22887				var left = dict.d;
22888				var right = dict.e;
22889				var $temp$func = func,
22890					$temp$acc = A3(
22891					func,
22892					key,
22893					value,
22894					A3($elm$core$Dict$foldl, func, acc, left)),
22895					$temp$dict = right;
22896				func = $temp$func;
22897				acc = $temp$acc;
22898				dict = $temp$dict;
22899				continue foldl;
22900			}
22901		}
22902	});
22903var $elm$core$Dict$merge = F6(
22904	function (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) {
22905		var stepState = F3(
22906			function (rKey, rValue, _v0) {
22907				stepState:
22908				while (true) {
22909					var list = _v0.a;
22910					var result = _v0.b;
22911					if (!list.b) {
22912						return _Utils_Tuple2(
22913							list,
22914							A3(rightStep, rKey, rValue, result));
22915					} else {
22916						var _v2 = list.a;
22917						var lKey = _v2.a;
22918						var lValue = _v2.b;
22919						var rest = list.b;
22920						if (_Utils_cmp(lKey, rKey) < 0) {
22921							var $temp$rKey = rKey,
22922								$temp$rValue = rValue,
22923								$temp$_v0 = _Utils_Tuple2(
22924								rest,
22925								A3(leftStep, lKey, lValue, result));
22926							rKey = $temp$rKey;
22927							rValue = $temp$rValue;
22928							_v0 = $temp$_v0;
22929							continue stepState;
22930						} else {
22931							if (_Utils_cmp(lKey, rKey) > 0) {
22932								return _Utils_Tuple2(
22933									list,
22934									A3(rightStep, rKey, rValue, result));
22935							} else {
22936								return _Utils_Tuple2(
22937									rest,
22938									A4(bothStep, lKey, lValue, rValue, result));
22939							}
22940						}
22941					}
22942				}
22943			});
22944		var _v3 = A3(
22945			$elm$core$Dict$foldl,
22946			stepState,
22947			_Utils_Tuple2(
22948				$elm$core$Dict$toList(leftDict),
22949				initialResult),
22950			rightDict);
22951		var leftovers = _v3.a;
22952		var intermediateResult = _v3.b;
22953		return A3(
22954			$elm$core$List$foldl,
22955			F2(
22956				function (_v4, result) {
22957					var k = _v4.a;
22958					var v = _v4.b;
22959					return A3(leftStep, k, v, result);
22960				}),
22961			intermediateResult,
22962			leftovers);
22963	});
22964var $elm$browser$Browser$Events$Event = F2(
22965	function (key, event) {
22966		return {ea: event, ev: key};
22967	});
22968var $elm$core$Platform$sendToSelf = _Platform_sendToSelf;
22969var $elm$browser$Browser$Events$spawn = F3(
22970	function (router, key, _v0) {
22971		var node = _v0.a;
22972		var name = _v0.b;
22973		var actualNode = function () {
22974			if (!node) {
22975				return _Browser_doc;
22976			} else {
22977				return _Browser_window;
22978			}
22979		}();
22980		return A2(
22981			$elm$core$Task$map,
22982			function (value) {
22983				return _Utils_Tuple2(key, value);
22984			},
22985			A3(
22986				_Browser_on,
22987				actualNode,
22988				name,
22989				function (event) {
22990					return A2(
22991						$elm$core$Platform$sendToSelf,
22992						router,
22993						A2($elm$browser$Browser$Events$Event, key, event));
22994				}));
22995	});
22996var $elm$core$Dict$union = F2(
22997	function (t1, t2) {
22998		return A3($elm$core$Dict$foldl, $elm$core$Dict$insert, t2, t1);
22999	});
23000var $elm$browser$Browser$Events$onEffects = F3(
23001	function (router, subs, state) {
23002		var stepRight = F3(
23003			function (key, sub, _v6) {
23004				var deads = _v6.a;
23005				var lives = _v6.b;
23006				var news = _v6.c;
23007				return _Utils_Tuple3(
23008					deads,
23009					lives,
23010					A2(
23011						$elm$core$List$cons,
23012						A3($elm$browser$Browser$Events$spawn, router, key, sub),
23013						news));
23014			});
23015		var stepLeft = F3(
23016			function (_v4, pid, _v5) {
23017				var deads = _v5.a;
23018				var lives = _v5.b;
23019				var news = _v5.c;
23020				return _Utils_Tuple3(
23021					A2($elm$core$List$cons, pid, deads),
23022					lives,
23023					news);
23024			});
23025		var stepBoth = F4(
23026			function (key, pid, _v2, _v3) {
23027				var deads = _v3.a;
23028				var lives = _v3.b;
23029				var news = _v3.c;
23030				return _Utils_Tuple3(
23031					deads,
23032					A3($elm$core$Dict$insert, key, pid, lives),
23033					news);
23034			});
23035		var newSubs = A2($elm$core$List$map, $elm$browser$Browser$Events$addKey, subs);
23036		var _v0 = A6(
23037			$elm$core$Dict$merge,
23038			stepLeft,
23039			stepBoth,
23040			stepRight,
23041			state.eG,
23042			$elm$core$Dict$fromList(newSubs),
23043			_Utils_Tuple3(_List_Nil, $elm$core$Dict$empty, _List_Nil));
23044		var deadPids = _v0.a;
23045		var livePids = _v0.b;
23046		var makeNewPids = _v0.c;
23047		return A2(
23048			$elm$core$Task$andThen,
23049			function (pids) {
23050				return $elm$core$Task$succeed(
23051					A2(
23052						$elm$browser$Browser$Events$State,
23053						newSubs,
23054						A2(
23055							$elm$core$Dict$union,
23056							livePids,
23057							$elm$core$Dict$fromList(pids))));
23058			},
23059			A2(
23060				$elm$core$Task$andThen,
23061				function (_v1) {
23062					return $elm$core$Task$sequence(makeNewPids);
23063				},
23064				$elm$core$Task$sequence(
23065					A2($elm$core$List$map, $elm$core$Process$kill, deadPids))));
23066	});
23067var $elm$browser$Browser$Events$onSelfMsg = F3(
23068	function (router, _v0, state) {
23069		var key = _v0.ev;
23070		var event = _v0.ea;
23071		var toMessage = function (_v2) {
23072			var subKey = _v2.a;
23073			var _v3 = _v2.b;
23074			var node = _v3.a;
23075			var name = _v3.b;
23076			var decoder = _v3.c;
23077			return _Utils_eq(subKey, key) ? A2(_Browser_decodeEvent, decoder, event) : $elm$core$Maybe$Nothing;
23078		};
23079		var messages = A2($elm$core$List$filterMap, toMessage, state.eZ);
23080		return A2(
23081			$elm$core$Task$andThen,
23082			function (_v1) {
23083				return $elm$core$Task$succeed(state);
23084			},
23085			$elm$core$Task$sequence(
23086				A2(
23087					$elm$core$List$map,
23088					$elm$core$Platform$sendToApp(router),
23089					messages)));
23090	});
23091var $elm$browser$Browser$Events$subMap = F2(
23092	function (func, _v0) {
23093		var node = _v0.a;
23094		var name = _v0.b;
23095		var decoder = _v0.c;
23096		return A3(
23097			$elm$browser$Browser$Events$MySub,
23098			node,
23099			name,
23100			A2($elm$json$Json$Decode$map, func, decoder));
23101	});
23102_Platform_effectManagers['Browser.Events'] = _Platform_createManager($elm$browser$Browser$Events$init, $elm$browser$Browser$Events$onEffects, $elm$browser$Browser$Events$onSelfMsg, 0, $elm$browser$Browser$Events$subMap);
23103var $elm$browser$Browser$Events$subscription = _Platform_leaf('Browser.Events');
23104var $elm$browser$Browser$Events$on = F3(
23105	function (node, name, decoder) {
23106		return $elm$browser$Browser$Events$subscription(
23107			A3($elm$browser$Browser$Events$MySub, node, name, decoder));
23108	});
23109var $elm$browser$Browser$Events$onKeyDown = A2($elm$browser$Browser$Events$on, 0, 'keydown');
23110var $elm$browser$Browser$Events$onKeyUp = A2($elm$browser$Browser$Events$on, 0, 'keyup');
23111var $dtwrks$elm_book$ElmBook$Internal$Chapter$chapterInternal = function (_v0) {
23112	var internal = _v0.er;
23113	return internal;
23114};
23115var $dtwrks$elm_book$ElmBook$Internal$Chapter$chapterTitle = function (_v0) {
23116	var title = _v0.gt;
23117	return title;
23118};
23119var $elm$browser$Browser$Dom$focus = _Browser_call('focus');
23120var $elm$core$Array$isEmpty = function (_v0) {
23121	var len = _v0.a;
23122	return !len;
23123};
23124var $elm$browser$Browser$Navigation$load = _Browser_load;
23125var $elm$browser$Browser$Navigation$pushUrl = _Browser_pushUrl;
23126var $elm$core$Array$filter = F2(
23127	function (isGood, array) {
23128		return $elm$core$Array$fromList(
23129			A3(
23130				$elm$core$Array$foldr,
23131				F2(
23132					function (x, xs) {
23133						return isGood(x) ? A2($elm$core$List$cons, x, xs) : xs;
23134					}),
23135				_List_Nil,
23136				array));
23137	});
23138var $dtwrks$elm_book$ElmBook$Internal$Application$searchChapters = F2(
23139	function (search, chapters) {
23140		if (search === '') {
23141			return chapters;
23142		} else {
23143			var searchLowerCase = $elm$core$String$toLower(search);
23144			var titleMatchesSearch = function (_v1) {
23145				var title = _v1.gt;
23146				return A2(
23147					$elm$core$String$contains,
23148					searchLowerCase,
23149					$elm$core$String$toLower(title));
23150			};
23151			return A2($elm$core$Array$filter, titleMatchesSearch, chapters);
23152		}
23153	});
23154var $elm$browser$Browser$Dom$setViewportOf = _Browser_setViewportOf;
23155var $elm$url$Url$addPort = F2(
23156	function (maybePort, starter) {
23157		if (maybePort.$ === 1) {
23158			return starter;
23159		} else {
23160			var port_ = maybePort.a;
23161			return starter + (':' + $elm$core$String$fromInt(port_));
23162		}
23163	});
23164var $elm$url$Url$addPrefixed = F3(
23165	function (prefix, maybeSegment, starter) {
23166		if (maybeSegment.$ === 1) {
23167			return starter;
23168		} else {
23169			var segment = maybeSegment.a;
23170			return _Utils_ap(
23171				starter,
23172				_Utils_ap(prefix, segment));
23173		}
23174	});
23175var $elm$url$Url$toString = function (url) {
23176	var http = function () {
23177		var _v0 = url.eK;
23178		if (!_v0) {
23179			return 'http://';
23180		} else {
23181			return 'https://';
23182		}
23183	}();
23184	return A3(
23185		$elm$url$Url$addPrefixed,
23186		'#',
23187		url.ft,
23188		A3(
23189			$elm$url$Url$addPrefixed,
23190			'?',
23191			url.eL,
23192			_Utils_ap(
23193				A2(
23194					$elm$url$Url$addPort,
23195					url.eH,
23196					_Utils_ap(http, url.eh)),
23197				url.dw)));
23198};
23199var $dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides = F2(
23200	function (model, fn) {
23201		return _Utils_Tuple2(
23202			_Utils_update(
23203				model,
23204				{
23205					bx: fn(model.bx)
23206				}),
23207			$elm$core$Platform$Cmd$none);
23208	});
23209var $dtwrks$elm_book$ElmBook$Internal$Application$update = F3(
23210	function (config, msg, model) {
23211		var logAction_ = F2(
23212			function (context, action) {
23213				return _Utils_Tuple2(
23214					_Utils_update(
23215						model,
23216						{
23217							Y: A2(
23218								$elm$core$List$cons,
23219								_Utils_Tuple2(context, action),
23220								model.Y)
23221						}),
23222					$elm$core$Platform$Cmd$none);
23223			});
23224		var hashBasedNavigation_ = $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$hashBasedNavigation(config.dR);
23225		var activeChapter = A2($dtwrks$elm_book$ElmBook$Internal$Book$chapterFromUrl, config, model.gy);
23226		var defaultLogContext = A2(
23227			$elm$core$Maybe$withDefault,
23228			'',
23229			A2(
23230				$elm$core$Maybe$map,
23231				function (s) {
23232					return s + ' / ';
23233				},
23234				A2($elm$core$Maybe$map, $dtwrks$elm_book$ElmBook$Internal$Chapter$chapterTitle, activeChapter)));
23235		switch (msg.$) {
23236			case 1:
23237				var request = msg.a;
23238				if (request.$ === 1) {
23239					var url = request.a;
23240					return _Utils_Tuple2(
23241						model,
23242						$elm$browser$Browser$Navigation$load(url));
23243				} else {
23244					var url = request.a;
23245					return A2($elm$core$String$contains, '/logAction', url.dw) ? A2(
23246						logAction_,
23247						defaultLogContext,
23248						'Navigate to: ' + A3($elm$core$String$replace, '/logAction', '', url.dw)) : _Utils_Tuple2(
23249						model,
23250						A2(
23251							$elm$browser$Browser$Navigation$pushUrl,
23252							model.aM,
23253							$elm$url$Url$toString(url)));
23254				}
23255			case 2:
23256				var url_ = msg.a;
23257				var url = A2($dtwrks$elm_book$ElmBook$Internal$Application$extractPath, hashBasedNavigation_, url_);
23258				if (url === '/') {
23259					return A2(
23260						$elm$core$Maybe$withDefault,
23261						_Utils_Tuple2(
23262							_Utils_update(
23263								model,
23264								{gy: '/'}),
23265							$elm$core$Platform$Cmd$none),
23266						A2(
23267							$elm$core$Maybe$map,
23268							function (fallback) {
23269								return _Utils_Tuple2(
23270									model,
23271									A2(
23272										$elm$browser$Browser$Navigation$pushUrl,
23273										model.aM,
23274										$dtwrks$elm_book$ElmBook$Internal$Chapter$chapterUrl(fallback)));
23275							},
23276							A2($elm$core$Array$get, 0, config.aw)));
23277				} else {
23278					var urlChapter = A2(
23279						$elm$core$Maybe$andThen,
23280						function (i) {
23281							return A2($elm$core$Array$get, i, config.aw);
23282						},
23283						A2($elm$core$Dict$get, url, config.fh));
23284					if (!urlChapter.$) {
23285						var chapter = urlChapter.a;
23286						var _v4 = A2(
23287							$elm$core$Maybe$withDefault,
23288							_Utils_Tuple2(model.R, $elm$core$Platform$Cmd$none),
23289							A2(
23290								$elm$core$Maybe$map,
23291								$elm$core$Tuple$mapFirst($elm$core$Maybe$Just),
23292								A3(
23293									$elm$core$Maybe$map2,
23294									F2(
23295										function (state_, chapterInit) {
23296											return chapterInit(state_);
23297										}),
23298									model.R,
23299									$dtwrks$elm_book$ElmBook$Internal$Chapter$init(chapter))));
23300						var state = _v4.a;
23301						var cmd = _v4.b;
23302						return _Utils_Tuple2(
23303							_Utils_update(
23304								model,
23305								{M: false, R: state, gy: url}),
23306							$elm$core$Platform$Cmd$batch(
23307								_List_fromArray(
23308									[
23309										cmd,
23310										A2(
23311										$elm$core$Task$attempt,
23312										function (_v5) {
23313											return $dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing;
23314										},
23315										A3($elm$browser$Browser$Dom$setViewportOf, 'elm-book-main', 0, 0
23315))
23316									])));
23317					} else {
23318						return _Utils_Tuple2(
23319							_Utils_update(
23320								model,
23321								{M: false, gy: url}),
23322							A2(
23323								$elm$browser$Browser$Navigation$replaceUrl,
23324								model.aM,
23325								hashBasedNavigation_ ? '#/' : '/'));
23326					}
23327				}
23328			case 5:
23329				var darkMode = !model.az;
23330				return _Utils_Tuple2(
23331					_Utils_update(
23332						model,
23333						{
23334							az: darkMode,
23335							R: A2(
23336								$elm$core$Maybe$map,
23337								config.eW.eE(darkMode),
23338								model.R)
23339						}),
23340					$elm$core$Platform$Cmd$none);
23341			case 3:
23342				var fn = msg.a;
23343				return A2(
23344					$elm$core$Maybe$withDefault,
23345					_Utils_Tuple2(model, $elm$core$Platform$Cmd$none),
23346					A2(
23347						$elm$core$Maybe$map,
23348						$elm$core$Tuple$mapFirst(
23349							function (s) {
23350								return _Utils_update(
23351									model,
23352									{
23353										R: $elm$core$Maybe$Just(s)
23354									});
23355							}),
23356						A2($elm$core$Maybe$map, fn, model.R)));
23357			case 4:
23358				var context = msg.a;
23359				var action = msg.b;
23360				return A2(logAction_, context, action);
23361			case 6:
23362				return _Utils_Tuple2(
23363					_Utils_update(
23364						model,
23365						{a$: true}),
23366					$elm$core$Platform$Cmd$none);
23367			case 7:
23368				return _Utils_Tuple2(
23369					_Utils_update(
23370						model,
23371						{a$: false}),
23372					$elm$core$Platform$Cmd$none);
23373			case 8:
23374				return _Utils_Tuple2(
23375					_Utils_update(
23376						model,
23377						{J: 0, bc: true}),
23378					$elm$core$Platform$Cmd$none);
23379			case 9:
23380				return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
23381			case 10:
23382				var value = msg.a;
23383				return _Utils_Tuple2(
23384					_Utils_update(
23385						model,
23386						{J: 0, aT: value}),
23387					$elm$core$Platform$Cmd$none);
23388			case 11:
23389				return _Utils_Tuple2(
23390					_Utils_update(
23391						model,
23392						{M: !model.M}),
23393					$elm$core$Platform$Cmd$none);
23394			case 12:
23395				return _Utils_Tuple2(
23396					_Utils_update(
23397						model,
23398						{J: model.J + 1}),
23399					$elm$core$Platform$Cmd$none);
23400			case 13:
23401				return _Utils_Tuple2(
23402					_Utils_update(
23403						model,
23404						{J: model.J - 1}),
23405					$elm$core$Platform$Cmd$none);
23406			case 14:
23407				return _Utils_Tuple2(
23408					_Utils_update(
23409						model,
23410						{b5: true}),
23411					$elm$core$Platform$Cmd$none);
23412			case 15:
23413				return _Utils_Tuple2(
23414					_Utils_update(
23415						model,
23416						{b5: false}),
23417					$elm$core$Platform$Cmd$none);
23418			case 16:
23419				return _Utils_Tuple2(
23420					_Utils_update(
23421						model,
23422						{bb: true}),
23423					$elm$core$Platform$Cmd$none);
23424			case 17:
23425				return _Utils_Tuple2(
23426					_Utils_update(
23427						model,
23428						{bb: false}),
23429					$elm$core$Platform$Cmd$none);
23430			case 19:
23431				return model.bb ? _Utils_Tuple2(
23432					model,
23433					A2(
23434						$elm$core$Task$attempt,
23435						function (_v6) {
23436							return $dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing;
23437						},
23438						$elm$browser$Browser$Dom$focus('elm-book-search'))) : _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
23439			case 18:
23440				if (!model.bc) {
23441					return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
23442				} else {
23443					var filteredChapters = A2($dtwrks$elm_book$ElmBook$Internal$Application$searchChapter
23443s, model.aT, config.aw);
23444					var targetChapter = $elm$core$Array$isEmpty(filteredChapters) ? $elm$core$Maybe$Nothing : A2(
23445						$elm$core$Array$get,
23446						A2(
23447							$elm$core$Basics$modBy,
23448							$elm$core$Array$length(filteredChapters),
23449							model.J),
23450						filteredChapters);
23451					if (!targetChapter.$) {
23452						var chapter_ = targetChapter.a;
23453						return $dtwrks$elm_book$ElmBook$Internal$Chapter$chapterInternal(chapter_) ? _Utils_Tuple2(
23454							model,
23455							A2(
23456								$elm$browser$Browser$Navigation$pushUrl,
23457								model.aM,
23458								A2($dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl, hashBasedNavigation_, chapter_))) : _Utils_Tuple2(
23459							model,
23460							$elm$browser$Browser$Navigation$load(
23461								$dtwrks$elm_book$ElmBook$Internal$Chapter$chapterUrl(chapter_)));
23462					} else {
23463						return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
23464					}
23465				}
23466			case 20:
23467				var startColor = msg.a;
23468				var endColor = msg.b;
23469				return A2(
23470					$dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides,
23471					model,
23472					function (t) {
23473						return _Utils_update(
23474							t,
23475							{
23476								bF: $elm$core$Maybe$Just('linear-gradient(150deg, ' + (startColor + (' 0%, ' + (endColor + ' 100%)'))))
23477							});
23478					});
23479			case 21:
23480				var background = msg.a;
23481				return A2(
23482					$dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides,
23483					model,
23484					function (t) {
23485						return _Utils_update(
23486							t,
23487							{
23488								bF: $elm$core$Maybe$Just(background)
23489							});
23490					});
23491			case 22:
23492				var accent = msg.a;
23493				return A2(
23494					$dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides,
23495					model,
23496					function (t) {
23497						return _Utils_update(
23498							t,
23499							{
23500								e9: $elm$core$Maybe$Just(accent)
23501							});
23502					});
23503			case 23:
23504				var navBackground = msg.a;
23505				return A2(
23506					$dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides,
23507					model,
23508					function (t) {
23509						return _Utils_update(
23510							t,
23511							{
23512								f0: $elm$core$Maybe$Just(navBackground)
23513							});
23514					});
23515			case 24:
23516				var navAccent = msg.a;
23517				return A2(
23518					$dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides,
23519					model,
23520					function (t) {
23521						return _Utils_update(
23522							t,
23523							{
23524								f_: $elm$core$Maybe$Just(navAccent)
23525							});
23526					});
23527			case 25:
23528				var navAccentHighlight = msg.a;
23529				return A2(
23530					$dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides,
23531					model,
23532					function (t) {
23533						return _Utils_update(
23534							t,
23535							{
23536								f$: $elm$core$Maybe$Just(navAccentHighlight)
23537							});
23538					});
23539			default:
23540				return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
23541		}
23542	});
23543var $dtwrks$elm_book$ElmBook$Internal$Msg$ActionLogHide = {$: 7};
23544var $dtwrks$elm_book$ElmBook$Internal$Msg$ActionLogShow = {$: 6};
23545var $dtwrks$elm_book$ElmBook$Internal$Msg$Search = function (a) {
23546	return {$: 10, a: a};
23547};
23548var $dtwrks$elm_book$ElmBook$Internal$Msg$SearchBlur = {$: 9};
23549var $dtwrks$elm_book$ElmBook$Internal$Msg$SearchFocus = {$: 8};
23550var $dtwrks$elm_book$ElmBook$Internal$Msg$ToggleDarkMode = {$: 5};
23551var $dtwrks$elm_book$ElmBook$Internal$Msg$ToggleMenu = {$: 11};
23552var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$applyOverrides = F2(
23553	function (theme, overrides) {
23554		return _Utils_update(
23555			theme,
23556			{
23557				e9: A2($elm$core$Maybe$withDefault, theme.e9, overrides.e9),
23558				bF: A2($elm$core$Maybe$withDefault, theme.bF, overrides.bF),
23559				f_: A2($elm$core$Maybe$withDefault, theme.f_, overrides.f_),
23560				f$: A2($elm$core$Maybe$withDefault, theme.f$, overrides.f$),
23561				f0: A2($elm$core$Maybe$withDefault, theme.f0, overrides.f0)
23562			});
23563	});
23564var $dtwrks$elm_book$ElmBook$Internal$Chapter$chapterBreadcrumb = function (_v0) {
23565	var chapter = _v0;
23566	return function (t) {
23567		return _Utils_ap(t, chapter.gt);
23568	}(
23569		A2(
23570			$elm$core$Maybe$withDefault,
23571			'',
23572			A2(
23573				$elm$core$Maybe$map,
23574				function (t) {
23575					return t + ' / ';
23576				},
23577				chapter.ef)));
23578};
23579var $dtwrks$elm_book$ElmBook$Internal$Application$componentView = F3(
23580	function (toHtml, state_, componentView_) {
23581		if (!componentView_.$) {
23582			var html = componentView_.a;
23583			return toHtml(html);
23584		} else {
23585			var html = componentView_.a;
23586			return A2(
23587				$elm$core$Maybe$withDefault,
23588				$elm$html$Html$text(''),
23589				A2(
23590					$elm$core$Maybe$map,
23591					A2($elm$core$Basics$composeL, toHtml, html),
23592					state_));
23593		}
23594	});
23595var $dtwrks$elm_book$ElmBook$UI$ActionLog$item = F2(
23596	function (index, _v0) {
23597		var preffix = _v0.a;
23598		var label = _v0.b;
23599		return A2(
23600			$elm$html$Html$div,
23601			_List_fromArray(
23602				[
23603					$elm$html$Html$Attributes$class('elm-book-wrapper elm-book-action-log-item-wrapper elm-book-monospace')
23604				]),
23605			_List_fromArray(
23606				[
23607					A2(
23608					$elm$html$Html$p,
23609					_List_fromArray(
23610						[
23611							$elm$html$Html$Attributes$class('elm-book-action-log-item-index')
23612						]),
23613					_List_fromArray(
23614						[
23615							$elm$html$Html$text(
23616							'(' + ($elm$core$String$fromInt(index + 1) + ')'))
23617						])),
23618					A2(
23619					$elm$html$Html$div,
23620					_List_fromArray(
23621						[
23622							$elm$html$Html$Attributes$class('elm-book-action-log__main')
23623						]),
23624					_List_fromArray(
23625						[
23626							A2(
23627							$elm$html$Html$p,
23628							_List_fromArray(
23629								[
23630									$elm$html$Html$Attributes$class('elm-book-action-log-item-preffix')
23631								]),
23632							_List_fromArray(
23633								[
23634									$elm$html$Html$text(preffix)
23635								])),
23636							A2(
23637							$elm$html$Html$p,
23638							_List_fromArray(
23639								[
23640									$elm$html$Html$Attributes$class('elm-book-action-log-item-label')
23641								]),
23642							_List_fromArray(
23643								[
23644									$elm$html$Html$text(label)
23645								]))
23646						]))
23647				]));
23648	});
23649var $dtwrks$elm_book$ElmBook$UI$Helpers$themeBackgroundVar = '--elm-book-background';
23650var $dtwrks$elm_book$ElmBook$UI$Helpers$var_ = function (v) {
23651	return 'var(' + (v + ')');
23652};
23653var $dtwrks$elm_book$ElmBook$UI$Helpers$themeBackground = $dtwrks$elm_book$ElmBook$UI$Helpers$var_($dtwrks$elm_book$ElmBook$UI$Helpers$themeBackgroundVar);
23654var $dtwrks$elm_book$ElmBook$UI$ActionLog$list = function (props) {
23655	return A2(
23656		$elm$html$Html$div,
23657		_List_fromArray(
23658			[
23659				$elm$html$Html$Attributes$class('elm-book elm-book-action-log-list-wrapper')
23660			]),
23661		_List_fromArray(
23662			[
23663				A2(
23664				$elm$html$Html$p,
23665				_List_fromArray(
23666					[
23667						$elm$html$Html$Attributes$class('elm-book elm-book-action-log-list-header elm-book-sans'),
23668						A2($elm$html$Html$Attributes$style, 'background', $dtwrks$elm_book$ElmBook$UI$Helpers$themeBackground)
23669					]),
23670				_List_fromArray(
23671					[
23672						$elm$html$Html$text('Action log')
23673					])),
23674				A2(
23675				$elm$html$Html$ul,
23676				_List_fromArray(
23677					[
23678						$elm$html$Html$Attributes$class('elm-book elm-book-action-log-list')
23679					]),
23680				A2(
23681					$elm$core$List$map,
23682					function (item_) {
23683						return A2(
23684							$elm$html$Html$li,
23685							_List_fromArray(
23686								[
23687									$elm$html$Html$Attributes$class('elm-book elm-book-action-log-list-item')
23688								]),
23689							_List_fromArray(
23690								[item_]));
23691					},
23692					$elm$core$List$reverse(
23693						A2($elm$core$List$indexedMap, $dtwrks$elm_book$ElmBook$UI$ActionLog$item, props))))
23694			]));
23695};
23696var $elm$core$List$any = F2(
23697	function (isOkay, list) {
23698		any:
23699		while (true) {
23700			if (!list.b) {
23701				return false;
23702			} else {
23703				var x = list.a;
23704				var xs = list.b;
23705				if (isOkay(x)) {
23706					return true;
23707				} else {
23708					var $temp$isOkay = isOkay,
23709						$temp$list = xs;
23710					isOkay = $temp$isOkay;
23711					list = $temp$list;
23712					continue any;
23713				}
23714			}
23715		}
23716	});
23717var $elm$core$List$member = F2(
23718	function (x, xs) {
23719		return A2(
23720			$elm$core$List$any,
23721			function (a) {
23722				return _Utils_eq(a, x);
23723			},
23724			xs);
23725	});
23726var $dtwrks$elm_book$ElmBook$UI$ActionLog$preview = function (props) {
23727	return A2(
23728		$elm$html$Html$div,
23729		_List_fromArray(
23730			[
23731				$elm$html$Html$Attributes$class('elm-book-action-log-preview-wrapper')
23732			]),
23733		_List_fromArray(
23734			[
23735				A2(
23736				$elm$html$Html$button,
23737				_List_fromArray(
23738					[
23739						$elm$html$Html$Attributes$class('elm-book-action-log-preview'),
23740						$elm$html$Html$Events$onClick(props.s)
23741					]),
23742				_List_fromArray(
23743					[
23744						A2($dtwrks$elm_book$ElmBook$UI$ActionLog$item, props.fM, props.fL)
23745					]))
23746			]));
23747};
23748var $dtwrks$elm_book$ElmBook$UI$ActionLog$previewEmpty = A2(
23749	$elm$html$Html$div,
23750	_List_fromArray(
23751		[
23752			$elm$html$Html$Attributes$class('elm-book-monospace elm-book-action-log-preview-empty-wrapper')
23753		]),
23754	_List_fromArray(
23755		[
23756			A2(
23757			$elm$html$Html$div,
23758			_List_fromArray(
23759				[
23760					$elm$html$Html$Attributes$class('elm-book-action-log-preview-empty')
23761				]),
23762			_List_fromArray(
23763				[
23764					$elm$html$Html$text('Your logged actions will appear here.')
23765				]))
23766		]));
23767var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$subtitle = function (theme) {
23768	return theme.dJ;
23769};
23770var $dtwrks$elm_book$ElmBook$Internal$Chapter$toValidOptions = F2(
23771	function (valid, _v0) {
23772		var options = _v0;
23773		return {
23774			fD: A2($elm$core$Maybe$withDefault, valid.fD, options.fD)
23775		};
23776	});
23777var $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$toValidOptions = F2(
23778	function (validSettings, _v0) {
23779		var settings = _v0;
23780		return {
23781			bF: A2($elm$core$Maybe$withDefault, validSettings.bF, settings.bF),
23782			c2: A2($elm$core$Maybe$withDefault, validSettings.c2, settings.c2),
23783			fw: A2($elm$core$Maybe$withDefault, validSettings.fw, settings.fw),
23784			fC: A2($elm$core$Maybe$withDefault, validSettings.fC, settings.fC)
23785		};
23786	});
23787var $elm$html$Html$article = _VirtualDom_node('article');
23788var $elm$core$Result$andThen = F2(
23789	function (callback, result) {
23790		if (!result.$) {
23791			var value = result.a;
23792			return callback(value);
23793		} else {
23794			var msg = result.a;
23795			return $elm$core$Result$Err(msg);
23796		}
23797	});
23798var $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Inline = 1;
23799var $elm$html$Html$Attributes$align = $elm$html$Html$Attributes$stringProperty('align');
23800var $elm$html$Html$Attributes$alt = $elm$html$Html$Attributes$stringProperty('alt');
23801var $elm$html$Html$blockquote = _VirtualDom_node('blockquote');
23802var $elm$html$Html$br = _VirtualDom_node('br');
23803var $elm$html$Html$code = _VirtualDom_node('code');
23804var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$HCode = $elm$core$Basics$identity;
23805var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style1 = 2;
23806var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style2 = 3;
23807var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3 = 4;
23808var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style4 = 5;
23809var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style5 = 6;
23810var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleToFragment = function (a) {
23811	switch (a) {
23812		case 0:
23813			return _Utils_Tuple2(4, 'css-ar-i');
23814		case 1:
23815			return _Utils_Tuple2(6, 'css-ar-p');
23816		case 2:
23817			return _Utils_Tuple2(4, 'css-ar-k');
23818		default:
23819			return _Utils_Tuple2(5, 'css-ar-v');
23820	}
23821};
23822var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default = 0;
23823var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style7 = 8;
23824var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelectorToFragment = function (att) {
23825	switch (att) {
23826		case 0:
23827			return _Utils_Tuple2(6, 'css-s-a-an');
23828		case 1:
23829			return _Utils_Tuple2(3, 'css-s-a-av');
23830		default:
23831			return _Utils_Tuple2(4, 'css-s-a-o');
23832	}
23833};
23834var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selectorToFragment = function (s) {
23835	switch (s.$) {
23836		case 0:
23837			return _Utils_Tuple2(4, 'css-s-e');
23838		case 1:
23839			return _Utils_Tuple2(6, 'css-s-i');
23840		case 2:
23841			return _Utils_Tuple2(6, 'css-s-cl');
23842		case 3:
23843			return _Utils_Tuple2(8, 'css-s-c');
23844		case 4:
23845			return _Utils_Tuple2(4, 'css-s-u');
23846		case 5:
23847			var att = s.a;
23848			return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelectorToFragment(att);
23849		case 6:
23850			return _Utils_Tuple2(0, 'css-s-pe');
23851		default:
23852			return _Utils_Tuple2(0, 'css-s-pc');
23853	}
23854};
23855var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$syntaxToStyle = function (syntax) {
23856	switch (syntax.$) {
23857		case 0:
23858			return _Utils_Tuple2(3, 'css-s');
23859		case 1:
23860			var a = syntax.a;
23861			return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleToFragment(a);
23862		case 2:
23863			var s = syntax.a;
23864			return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selectorToFragment(s);
23865		case 3:
23866			return _Utils_Tuple2(5, 'css-p');
23867		case 4:
23868			return _Utils_Tuple2(5, 'css-pv');
23869		case 5:
23870			return _Utils_Tuple2(2, 'css-n');
23871		default:
23872			return _Utils_Tuple2(4, 'css-u');
23873	}
23874};
23875var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$newLine = function (fragments) {
23876	return {fu: fragments, b_: $elm$core$Maybe$Nothing};
23877};
23878var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak = {$: 2};
23879var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Comment = 1;
23880var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toFragment = F2(
23881	function (toStyle, _v0) {
23882		var syntax = _v0.a;
23883		var text = _v0.b;
23884		switch (syntax.$) {
23885			case 0:
23886				return {fa: '', gi: 0, j: text};
23887			case 1:
23888				return {fa: '', gi: 1, j: text};
23889			case 2:
23890				return {fa: '', gi: 0, j: text};
23891			default:
23892				var c = syntax.a;
23893				var _v2 = toStyle(c);
23894				var requiredStyle = _v2.a;
23895				var additionalClass = _v2.b;
23896				return {fa: additionalClass, gi: requiredStyle, j: text};
23897		}
23898	});
23899var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLinesHelp = F3(
23900	function (toStyle, _v0, _v1) {
23901		var syntax = _v0.a;
23902		var text = _v0.b;
23903		var lines = _v1.a;
23904		var fragments = _v1.b;
23905		var maybeLastSyntax = _v1.c;
23906		if (_Utils_eq(syntax, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak)) {
23907			return _Utils_Tuple3(
23908				A2(
23909					$elm$core$List$cons,
23910					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$newLine(fragments),
23911					lines),
23912				_List_fromArray(
23913					[
23914						A2(
23915						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toFragment,
23916						toStyle,
23917						_Utils_Tuple2(syntax, text))
23918					]),
23919				$elm$core$Maybe$Nothing);
23920		} else {
23921			if (_Utils_eq(
23922				$elm$core$Maybe$Just(syntax),
23923				maybeLastSyntax)) {
23924				if (fragments.b) {
23925					var headFrag = fragments.a;
23926					var tailFrags = fragments.b;
23927					return _Utils_Tuple3(
23928						lines,
23929						A2(
23930							$elm$core$List$cons,
23931							_Utils_update(
23932								headFrag,
23933								{
23934									j: _Utils_ap(text, headFrag.j)
23935								}),
23936							tailFrags),
23937						maybeLastSyntax);
23938				} else {
23939					return _Utils_Tuple3(
23940						lines,
23941						A2(
23942							$elm$core$List$cons,
23943							A2(
23944								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toFragment,
23945								toStyle,
23946								_Utils_Tuple2(syntax, text)),
23947							fragments),
23948						maybeLastSyntax);
23949				}
23950			} else {
23951				return _Utils_Tuple3(
23952					lines,
23953					A2(
23954						$elm$core$List$cons,
23955						A2(
23956							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toFragment,
23957							toStyle,
23958							_Utils_Tuple2(syntax, text)),
23959						fragments),
23960					$elm$core$Maybe$Just(syntax));
23961			}
23962		}
23963	});
23964var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines = F2(
23965	function (toStyle, revTokens) {
23966		return function (_v0) {
23967			var lines = _v0.a;
23968			var frags = _v0.b;
23969			return A2(
23970				$elm$core$List$cons,
23971				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$newLine(frags),
23972				lines);
23973		}(
23974			A3(
23975				$elm$core$List$foldl,
23976				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLinesHelp(toStyle),
23977				_Utils_Tuple3(_List_Nil, _List_Nil, $elm$core$Maybe$Nothing),
23978				revTokens));
23979	});
23980var $elm$parser$Parser$Advanced$loopHelp = F4(
23981	function (p, state, callback, s0) {
23982		loopHelp:
23983		while (true) {
23984			var _v0 = callback(state);
23985			var parse = _v0;
23986			var _v1 = parse(s0);
23987			if (!_v1.$) {
23988				var p1 = _v1.a;
23989				var step = _v1.b;
23990				var s1 = _v1.c;
23991				if (!step.$) {
23992					var newState = step.a;
23993					var $temp$p = p || p1,
23994						$temp$state = newState,
23995						$temp$callback = callback,
23996						$temp$s0 = s1;
23997					p = $temp$p;
23998					state = $temp$state;
23999					callback = $temp$callback;
24000					s0 = $temp$s0;
24001					continue loopHelp;
24002				} else {
24003					var result = step.a;
24004					return A3($elm$parser$Parser$Advanced$Good, p || p1, result, s1);
24005				}
24006			} else {
24007				var p1 = _v1.a;
24008				var x = _v1.b;
24009				return A2($elm$parser$Parser$Advanced$Bad, p || p1, x);
24010			}
24011		}
24012	});
24013var $elm$parser$Parser$Advanced$loop = F2(
24014	function (state, callback) {
24015		return function (s) {
24016			return A4($elm$parser$Parser$Advanced$loopHelp, false, state, callback, s);
24017		};
24018	});
24019var $elm$parser$Parser$Advanced$Done = function (a) {
24020	return {$: 1, a: a};
24021};
24022var $elm$parser$Parser$Advanced$Loop = function (a) {
24023	return {$: 0, a: a};
24024};
24025var $elm$parser$Parser$toAdvancedStep = function (step) {
24026	if (!step.$) {
24027		var s = step.a;
24028		return $elm$parser$Parser$Advanced$Loop(s);
24029	} else {
24030		var a = step.a;
24031		return $elm$parser$Parser$Advanced$Done(a);
24032	}
24033};
24034var $elm$parser$Parser$loop = F2(
24035	function (state, callback) {
24036		return A2(
24037			$elm$parser$Parser$Advanced$loop,
24038			state,
24039			function (s) {
24040				return A2(
24041					$elm$parser$Parser$map,
24042					$elm$parser$Parser$toAdvancedStep,
24043					callback(s));
24044			});
24045	});
24046var $elm$parser$Parser$Done = function (a) {
24047	return {$: 1, a: a};
24048};
24049var $elm$parser$Parser$Loop = function (a) {
24050	return {$: 0, a: a};
24051};
24052var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal = {$: 0};
24053var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule = function (a) {
24054	return {$: 1, a: a};
24055};
24056var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C = function (a) {
24057	return {$: 3, a: a};
24058};
24059var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Identifier = 0;
24060var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Prefix = 1;
24061var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$String = {$: 0};
24062var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRuleValue = 3;
24063var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Keyword = 2;
24064var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile = function (isNotRelevant) {
24065	return A2(
24066		$elm$parser$Parser$ignorer,
24067		A2(
24068			$elm$parser$Parser$ignorer,
24069			$elm$parser$Parser$succeed(0),
24070			$elm$parser$Parser$chompIf(isNotRelevant)),
24071		$elm$parser$Parser$chompWhile(isNotRelevant));
24072};
24073var $elm$core$Set$Set_elm_builtin = $elm$core$Basics$identity;
24074var $elm$core$Set$empty = $elm$core$Dict$empty;
24075var $elm$core$Set$insert = F2(
24076	function (key, _v0) {
24077		var dict = _v0;
24078		return A3($elm$core$Dict$insert, key, 0, dict);
24079	});
24080var $elm$core$Set$fromList = function (list) {
24081	return A3($elm$core$List$foldl, $elm$core$Set$insert, $elm$core$Set$empty, list);
24082};
24083var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleKeywordSet = $elm$core$Set$fromList(
24084	_List_fromArray(
24085		['and', 'or', 'not', 'only']));
24086var $elm$core$Dict$member = F2(
24087	function (key, dict) {
24088		var _v0 = A2($elm$core$Dict$get, key, dict);
24089		if (!_v0.$) {
24090			return true;
24091		} else {
24092			return false;
24093		}
24094	});
24095var $elm$core$Set$member = F2(
24096	function (key, _v0) {
24097		var dict = _v0;
24098		return A2($elm$core$Dict$member, key, dict);
24099	});
24100var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isAtRuleKeyword = function (n) {
24101	return A2($elm$core$Set$member, n, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleKeywordSet);
24102};
24103var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isCommentChar = function (c) {
24104	return c === '/';
24105};
24106var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak = function (c) {
24107	return c === '\n';
24108};
24109var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace = function (c) {
24110	return (c === ' ') || (c === '\t');
24111};
24112var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace = function (c) {
24113	return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace(c) || $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c);
24114};
24115var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selectorNameInvalidCharSet = $elm$core$Set$fromList(
24116	_List_fromArray(
24117		[':', '{', '}', ',', '.', '#', '>', '+', '~', '*', '[', ']', '|', ';', '(', ')']));
24118var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar = function (c) {
24119	return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isCommentChar(c) || A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selectorNameInvalidCharSet)));
24120};
24121var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleKeywordOrValue = function (revTokens) {
24122	return A2(
24123		$elm$parser$Parser$map,
24124		function (n) {
24125			return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isAtRuleKeyword(n) ? A2(
24126				$elm$core$List$cons,
24127				_Utils_Tuple2(
24128					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24129						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(2)),
24130					n),
24131				revTokens) : A2(
24132				$elm$core$List$cons,
24133				_Utils_Tuple2(
24134					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24135						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(3)),
24136					n),
24137				revTokens);
24138		},
24139		$elm$parser$Parser$getChompedString(
24140			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar)));
24141};
24142var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleSet = $elm$core$Set$fromList(
24143	_List_fromArray(
24144		['@page', '@font-face', '@swash', '@annotation', '@ornaments', '@stylistic', '@styleset', '@character-variant']));
24145var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment = {$: 1};
24146var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$addThen = F3(
24147	function (f, list, plist) {
24148		return A2(
24149			$elm$parser$Parser$andThen,
24150			function (n) {
24151				return f(
24152					_Utils_ap(n, list));
24153			},
24154			plist);
24155	});
24156var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$consThen = F3(
24157	function (f, list, pn) {
24158		return A2(
24159			$elm$parser$Parser$andThen,
24160			function (n) {
24161				return f(
24162					A2($elm$core$List$cons, n, list));
24163			},
24164			pn);
24165	});
24166var $elm$parser$Parser$ExpectingSymbol = function (a) {
24167	return {$: 8, a: a};
24168};
24169var $elm$parser$Parser$Advanced$symbol = $elm$parser$Parser$Advanced$token;
24170var $elm$parser$Parser$symbol = function (str) {
24171	return $elm$parser$Parser$Advanced$symbol(
24172		A2(
24173			$elm$parser$Parser$Advanced$Token,
24174			str,
24175			$elm$parser$Parser$ExpectingSymbol(str)));
24176};
24177var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile = F2(
24178	function (isNotRelevant, previousParser) {
24179		return A2(
24180			$elm$parser$Parser$ignorer,
24181			previousParser,
24182			$elm$parser$Parser$chompWhile(isNotRelevant));
24183	});
24184var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedUnne
24184stable = F2(
24185	function (options, revAList) {
24186		var defaultMap = options.d9;
24187		var isNotRelevant = options.et;
24188		var end = options.g;
24189		var innerParsers = options.em;
24190		return $elm$parser$Parser$oneOf(
24191			_List_fromArray(
24192				[
24193					A2(
24194					$elm$parser$Parser$map,
24195					$elm$core$Basics$always(
24196						A2(
24197							$elm$core$List$cons,
24198							defaultMap(end),
24199							revAList)),
24200					$elm$parser$Parser$symbol(end)),
24201					A2(
24202					$elm$parser$Parser$map,
24203					$elm$core$Basics$always(revAList),
24204					$elm$parser$Parser$end),
24205					A3(
24206					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$addThen,
24207					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedUnnestable(options),
24208					revAList,
24209					$elm$parser$Parser$oneOf(innerParsers)),
24210					A3(
24211					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$consThen,
24212					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedUnnestable(options),
24213					revAList,
24214					A2(
24215						$elm$parser$Parser$map,
24216						defaultMap,
24217						$elm$parser$Parser$getChompedString(
24218							A2(
24219								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
24220								isNotRelevant,
24221								$elm$parser$Parser$chompIf(
24222									$elm$core$Basics$always(true))))))
24223				]));
24224	});
24225var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedNestable = F3(
24226	function (nestLevel, options, revAList) {
24227		var defaultMap = options.d9;
24228		var isNotRelevant = options.et;
24229		var start = options.i;
24230		var end = options.g;
24231		var innerParsers = options.em;
24232		return $elm$parser$Parser$oneOf(
24233			_List_fromArray(
24234				[
24235					A2(
24236					$elm$parser$Parser$andThen,
24237					function (n) {
24238						return (nestLevel === 1) ? $elm$parser$Parser$succeed(n) : A3($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedNestable, nestLevel - 1, options, n);
24239					},
24240					A2(
24241						$elm$parser$Parser$map,
24242						$elm$core$Basics$always(
24243							A2(
24244								$elm$core$List$cons,
24245								defaultMap(end),
24246								revAList)),
24247						$elm$parser$Parser$symbol(end))),
24248					A3(
24249					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$consThen,
24250					A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedNestable, nestLevel + 1, options),
24251					revAList,
24252					A2(
24253						$elm$parser$Parser$map,
24254						defaultMap,
24255						$elm$parser$Parser$getChompedString(
24256							A2(
24257								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
24258								isNotRelevant,
24259								$elm$parser$Parser$symbol(start))))),
24260					A3(
24261					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$addThen,
24262					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedUnne
24262stable(options),
24263					revAList,
24264					$elm$parser$Parser$oneOf(innerParsers)),
24265					A2(
24266					$elm$parser$Parser$map,
24267					$elm$core$Basics$always(revAList),
24268					$elm$parser$Parser$end),
24269					A3(
24270					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$consThen,
24271					A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedNestable, nestLevel, options),
24272					revAList,
24273					A2(
24274						$elm$parser$Parser$map,
24275						defaultMap,
24276						$elm$parser$Parser$getChompedString(
24277							A2(
24278								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
24279								isNotRelevant,
24280								$elm$parser$Parser$chompIf(
24281									$elm$core$Basics$always(true))))))
24282				]));
24283	});
24284var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedHelp = F2(
24285	function (options, revAList) {
24286		var start = options.i;
24287		var end = options.g;
24288		var isNotRelevant = options.et;
24289		var _v0 = _Utils_Tuple2(
24290			$elm$core$String$uncons(options.i),
24291			$elm$core$String$uncons(options.g));
24292		if (_v0.a.$ === 1) {
24293			var _v1 = _v0.a;
24294			return $elm$parser$Parser$problem('Trying to parse a delimited helper, but the start token cannot be an empty string!');
24295		} else {
24296			if (_v0.b.$ === 1) {
24297				var _v2 = _v0.b;
24298				return $elm$parser$Parser$problem('Trying to parse a delimited helper, but the end token cannot be an empty string!');
24299			} else {
24300				var _v3 = _v0.a.a;
24301				var startChar = _v3.a;
24302				var _v4 = _v0.b.a;
24303				var endChar = _v4.a;
24304				return options.es ? A3(
24305					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedNestable,
24306					1,
24307					_Utils_update(
24308						options,
24309						{
24310							et: function (c) {
24311								return isNotRelevant(c) && ((!_Utils_eq(c, startChar)) && (!_Utils_eq(c, endChar)));
24312							}
24313						}),
24314					revAList) : A2(
24315					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedUnne
24315stable,
24316					_Utils_update(
24317						options,
24318						{
24319							et: function (c) {
24320								return isNotRelevant(c) && (!_Utils_eq(c, endChar));
24321							}
24322						}),
24323					revAList);
24324			}
24325		}
24326	});
24327var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited = function (options) {
24328	var start = options.i;
24329	var isNotRelevant = options.et;
24330	var defaultMap = options.d9;
24331	return A2(
24332		$elm$parser$Parser$andThen,
24333		function (n) {
24334			return A2(
24335				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedHelp,
24336				options,
24337				_List_fromArray(
24338					[n]));
24339		},
24340		A2(
24341			$elm$parser$Parser$map,
24342			$elm$core$Basics$always(
24343				defaultMap(start)),
24344			$elm$parser$Parser$symbol(start)));
24345};
24346var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$lineBreak = A2(
24347	$elm$parser$Parser$map,
24348	function (_v0) {
24349		return _List_fromArray(
24350			[
24351				_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n')
24352			]);
24353	},
24354	$elm$parser$Parser$symbol('\n'));
24355var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$comment = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(
24356	{
24357		d9: function (b) {
24358			return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment, b);
24359		},
24360		g: '*/',
24361		em: _List_fromArray(
24362			[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$lineBreak]),
24363		es: false,
24364		et: function (c) {
24365			return !$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c);
24366		},
24367		i: '/*'
24368	});
24369var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep = function (revTokens) {
24370	return $elm$parser$Parser$oneOf(
24371		_List_fromArray(
24372			[
24373				A2(
24374				$elm$parser$Parser$map,
24375				function (b) {
24376					return $elm$parser$Parser$Loop(
24377						A2(
24378							$elm$core$List$cons,
24379							_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
24380							revTokens));
24381				},
24382				$elm$parser$Parser$getChompedString(
24383					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace))),
24384				A2(
24385				$elm$parser$Parser$map,
24386				function (ns) {
24387					return $elm$parser$Parser$Loop(
24388						_Utils_ap(ns, revTokens));
24389				},
24390				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$lineBreak),
24391				A2(
24392				$elm$parser$Parser$map,
24393				function (ns) {
24394					return $elm$parser$Parser$Loop(
24395						_Utils_ap(ns, revTokens));
24396				},
24397				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$comment)
24398			]));
24399};
24400var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$keyframesOrCounterStyle = function (a) {
24401	return A2(
24402		$elm$parser$Parser$loop,
24403		_List_fromArray(
24404			[
24405				_Utils_Tuple2(
24406				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24407					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(0)),
24408				a)
24409			]),
24410		function (ns) {
24411			return $elm$parser$Parser$oneOf(
24412				_List_fromArray(
24413					[
24414						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns),
24415						A2(
24416						$elm$parser$Parser$map,
24417						function (b) {
24418							return $elm$parser$Parser$Loop(
24419								A2(
24420									$elm$core$List$cons,
24421									_Utils_Tuple2(
24422										$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24423											$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(1)),
24424										b),
24425									ns));
24426						},
24427						$elm$parser$Parser$getChompedString(
24428							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar))),
24429						A2(
24430						$elm$parser$Parser$map,
24431						function (b) {
24432							return $elm$parser$Parser$Loop(
24433								A2(
24434									$elm$core$List$cons,
24435									_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
24436									ns));
24437						},
24438						$elm$parser$Parser$getChompedString(
24439							$elm$parser$Parser$chompIf(
24440								function (c) {
24441									return c !== '{';
24442								}))),
24443						$elm$parser$Parser$succeed(
24444						$elm$parser$Parser$Done(ns))
24445					]));
24446		});
24447};
24448var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$nestableAtRuleOpener = function (ns) {
24449	return $elm$parser$Parser$oneOf(
24450		_List_fromArray(
24451			[
24452				A2(
24453				$elm$parser$Parser$map,
24454				$elm$core$Basics$always(
24455					A2(
24456						$elm$core$List$cons,
24457						_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '{'),
24458						ns)),
24459				$elm$parser$Parser$symbol('{')),
24460				$elm$parser$Parser$succeed(ns)
24461			]));
24462};
24463var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Number = {$: 5};
24464var $elm$parser$Parser$Advanced$backtrackable = function (_v0) {
24465	var parse = _v0;
24466	return function (s0) {
24467		var _v1 = parse(s0);
24468		if (_v1.$ === 1) {
24469			var x = _v1.b;
24470			return A2($elm$parser$Parser$Advanced$Bad, false, x);
24471		} else {
24472			var a = _v1.b;
24473			var s1 = _v1.c;
24474			return A3($elm$parser$Parser$Advanced$Good, false, a, s1);
24475		}
24476	};
24477};
24478var $elm$parser$Parser$backtrackable = $elm$parser$Parser$Advanced$backtrackable;
24479var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapableSet = $elm$core$Set$fromList(
24480	_List_fromArray(
24481		['\'', '\"', '\\', 'n', 'r', 't', 'b', 'f', 'v']));
24482var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapableChar = function (c) {
24483	return A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapableSet);
24484};
24485var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapable = A2(
24486	$elm$parser$Parser$ignorer,
24487	A2(
24488		$elm$parser$Parser$ignorer,
24489		$elm$parser$Parser$succeed(0),
24490		$elm$parser$Parser$backtrackable(
24491			$elm$parser$Parser$symbol('\\'))),
24492	$elm$parser$Parser$chompIf($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapableChar));
24493var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$cssEscapable = A2(
24494	$elm$parser$Parser$map,
24495	function (b) {
24496		return _List_fromArray(
24497			[
24498				_Utils_Tuple2(
24499				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Number),
24500				b)
24501			]);
24502	},
24503	$elm$parser$Parser$getChompedString($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapable));
24504var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable = function (c) {
24505	return c === '\\';
24506};
24507var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$quoteDelimiter = {
24508	d9: function (b) {
24509		return _Utils_Tuple2(
24510			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$String),
24511			b);
24512	},
24513	g: '\'',
24514	em: _List_fromArray(
24515		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$lineBreak, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$cssEscapable]),
24516	es: false,
24517	et: function (c) {
24518		return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable(c));
24519	},
24520	i: '\''
24521};
24522var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$doubleQuote = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(
24523	_Utils_update(
24524		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$quoteDelimiter,
24525		{g: '\"', i: '\"'}));
24526var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$quote = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$quoteDelimiter);
24527var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral = function (revTokens) {
24528	return A2(
24529		$elm$parser$Parser$map,
24530		function (n) {
24531			return _Utils_ap(n, revTokens);
24532		},
24533		$elm$parser$Parser$oneOf(
24534			_List_fromArray(
24535				[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$quote, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$doubleQuote])));
24536};
24537var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$mediaOrSupports = function (a) {
24538	return A2(
24539		$elm$parser$Parser$andThen,
24540		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$nestableAtRuleOpener,
24541		A2(
24542			$elm$parser$Parser$loop,
24543			_List_fromArray(
24544				[
24545					_Utils_Tuple2(
24546					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24547						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(0)),
24548					a)
24549				]),
24550			function (ns) {
24551				return $elm$parser$Parser$oneOf(
24552					_List_fromArray(
24553						[
24554							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns),
24555							A2(
24556							$elm$parser$Parser$map,
24557							$elm$parser$Parser$Loop,
24558							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(ns)),
24559							A2(
24560							$elm$parser$Parser$map,
24561							$elm$parser$Parser$Loop,
24562							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleKeywordOrValue(ns)),
24563							A2(
24564							$elm$parser$Parser$map,
24565							function (b) {
24566								return $elm$parser$Parser$Loop(
24567									A2(
24568										$elm$core$List$cons,
24569										_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
24570										ns));
24571							},
24572							$elm$parser$Parser$getChompedString(
24573								$elm$parser$Parser$chompIf(
24574									function (c) {
24575										return c !== '{';
24576									}))),
24577							$elm$parser$Parser$succeed(
24578							$elm$parser$Parser$Done(ns))
24579						]));
24580			}));
24581};
24582var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PropertyValue = {$: 4};
24583var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg = F2(
24584	function (fnStr, revTokens) {
24585		return A2(
24586			$elm$parser$Parser$andThen,
24587			function (revT_) {
24588				return $elm$parser$Parser$oneOf(
24589					_List_fromArray(
24590						[
24591							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(revT_),
24592							A2(
24593							$elm$parser$Parser$map,
24594							function (n) {
24595								return A2(
24596									$elm$core$List$cons,
24597									_Utils_Tuple2(
24598										$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$String),
24599										n),
24600									revT_);
24601							},
24602							$elm$parser$Parser$getChompedString(
24603								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
24604									function (c) {
24605										return c !== ')';
24606									}))),
24607							$elm$parser$Parser$succeed(revT_)
24608						]));
24609			},
24610			A2(
24611				$elm$parser$Parser$map,
24612				$elm$core$Basics$always(
24613					A2(
24614						$elm$core$List$cons,
24615						_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('),
24616						A2(
24617							$elm$core$List$cons,
24618							_Utils_Tuple2(
24619								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PropertyValue),
24620								fnStr),
24621							revTokens))),
24622				$elm$parser$Parser$symbol(fnStr + '(')));
24623	});
24624var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleHelper = function (a) {
24625	switch (a) {
24626		case '@import':
24627			return A2(
24628				$elm$parser$Parser$loop,
24629				_List_fromArray(
24630					[
24631						_Utils_Tuple2(
24632						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24633							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(0)),
24634						a)
24635					]),
24636				function (ns) {
24637					return $elm$parser$Parser$oneOf(
24638						_List_fromArray(
24639							[
24640								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns),
24641								A2(
24642								$elm$parser$Parser$map,
24643								$elm$parser$Parser$Loop,
24644								A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg, 'url', ns)),
24645								A2(
24646								$elm$parser$Parser$map,
24647								$elm$parser$Parser$Loop,
24648								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(ns)),
24649								A2(
24650								$elm$parser$Parser$map,
24651								$elm$parser$Parser$Loop,
24652								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleKeywordOrValue(ns)),
24653								A2(
24654								$elm$parser$Parser$map,
24655								function (b) {
24656									return $elm$parser$Parser$Loop(
24657										A2(
24658											$elm$core$List$cons,
24659											_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
24660											ns));
24661								},
24662								$elm$parser$Parser$getChompedString(
24663									$elm$parser$Parser$chompIf(
24664										function (c) {
24665											return c !== ';';
24666										}))),
24667								$elm$parser$Parser$succeed(
24668								$elm$parser$Parser$Done(ns))
24669							]));
24670				});
24671		case '@namespace':
24672			return A2(
24673				$elm$parser$Parser$loop,
24674				_List_fromArray(
24675					[
24676						_Utils_Tuple2(
24677						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24678							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(0)),
24679						a)
24680					]),
24681				function (ns) {
24682					return $elm$parser$Parser$oneOf(
24683						_List_fromArray(
24684							[
24685								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns),
24686								A2(
24687								$elm$parser$Parser$map,
24688								$elm$parser$Parser$Loop,
24689								A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg, 'url', ns)),
24690								A2(
24691								$elm$parser$Parser$map,
24692								$elm$parser$Parser$Loop,
24693								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(ns)),
24694								A2(
24695								$elm$parser$Parser$map,
24696								function (b) {
24697									return $elm$parser$Parser$Loop(
24698										A2(
24699											$elm$core$List$cons,
24700											_Utils_Tuple2(
24701												$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24702													$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(1)),
24703												b),
24704											ns));
24705								},
24706								$elm$parser$Parser$getChompedString(
24707									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar))),
24708								A2(
24709								$elm$parser$Parser$map,
24710								function (b) {
24711									return $elm$parser$Parser$Loop(
24712										A2(
24713											$elm$core$List$cons,
24714											_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
24715											ns));
24716								},
24717								$elm$parser$Parser$getChompedString(
24718									$elm$parser$Parser$chompIf(
24719										function (c) {
24720											return c !== ';';
24721										}))),
24722								$elm$parser$Parser$succeed(
24723								$elm$parser$Parser$Done(ns))
24724							]));
24725				});
24726		case '@charset':
24727			return A2(
24728				$elm$parser$Parser$loop,
24729				_List_fromArray(
24730					[
24731						_Utils_Tuple2(
24732						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24733							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(0)),
24734						a)
24735					]),
24736				function (ns) {
24737					return $elm$parser$Parser$oneOf(
24738						_List_fromArray(
24739							[
24740								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns),
24741								A2(
24742								$elm$parser$Parser$map,
24743								$elm$parser$Parser$Loop,
24744								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(ns)),
24745								A2(
24746								$elm$parser$Parser$map,
24747								function (b) {
24748									return $elm$parser$Parser$Loop(
24749										A2(
24750											$elm$core$List$cons,
24751											_Utils_Tuple2(
24752												$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$String),
24753												b),
24754											ns));
24755								},
24756								$elm$parser$Parser$getChompedString(
24757									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar))),
24758								A2(
24759								$elm$parser$Parser$map,
24760								function (b) {
24761									return $elm$parser$Parser$Loop(
24762										A2(
24763											$elm
24763$core$List$cons,
24764											_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
24765											ns));
24766								},
24767								$elm$parser$Parser$getChompedString(
24768									$elm$parser$Parser$chompIf(
24769										function (c) {
24770											return c !== ';';
24771										}))),
24772								$elm$parser$Parser$succeed(
24773								$elm$parser$Parser$Done(ns))
24774							]));
24775				});
24776		case '@media':
24777			return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$mediaOrSupports(a);
24778		case '@supports':
24779			return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$mediaOrSupports(a);
24780		case '@keyframes':
24781			return A2(
24782				$elm$parser$Parser$andThen,
24783				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$nestableAtRuleOpener,
24784				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$keyframesOrCounterStyle(a));
24785		case '@counter-style':
24786			return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$keyframesOrCounterStyle(a);
24787		case '@font-feature-values':
24788			return A2(
24789				$elm$parser$Parser$andThen,
24790				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$nestableAtRuleOpener,
24791				A2(
24792					$elm$parser$Parser$loop,
24793					_List_fromArray(
24794						[
24795							_Utils_Tuple2(
24796							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24797								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(0)),
24798							a)
24799						]),
24800					function (ns) {
24801						return $elm$parser$Parser$oneOf(
24802							_List_fromArray(
24803								[
24804									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns),
24805									A2(
24806									$elm$parser$Parser$map,
24807									function (b) {
24808										return $elm$parser$Parser$Loop(
24809											A2(
24810												$elm$core$List$cons,
24811												_Utils_Tuple2(
24812													$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24813														$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(1)),
24814													b),
24815												ns));
24816									},
24817									$elm$parser$Parser$getChompedString(
24818										$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar))),
24819									A2(
24820									$elm$parser$Parser$map,
24821									function (b) {
24822										return $elm$parser$Parser$Loop(
24823											A2(
24824												$elm$core$List$cons,
24825												_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
24826												ns));
24827									},
24828									$elm$parser$Parser$getChompedString(
24829										$elm$parser$Parser$chompIf(
24830											function (c) {
24831												return c !== '{';
24832											}))),
24833									$elm$parser$Parser$succeed(
24834									$elm$parser$Parser$Done(ns))
24835								]));
24836					}));
24837		default:
24838			return A2($elm$core$Set$member, a, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleSet) ? $elm$parser$Parser$succeed(
24839				_List_fromArray(
24840					[
24841						_Utils_Tuple2(
24842						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
24843							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(0)),
24844						a)
24845					])) : $elm$parser$Parser$succeed(
24846				_List_fromArray(
24847					[
24848						_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, a)
24849					]));
24850	}
24851};
24852var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRule = A2(
24853	$elm$parser$Parser$andThen,
24854	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleHelper,
24855	$elm$parser$Parser$getChompedString(
24856		A2(
24857			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
24858			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar,
24859			$elm$parser$Parser$symbol('@'))));
24860var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Property = {$: 3};
24861var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyChar = function (c) {
24862	return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isCommentChar(c) || ((c === ':') || ((c === ';') || (c === '}')))));
24863};
24864var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Unit = {$: 6};
24865var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$operatorCharSet = $elm$core$Set$fromList(
24866	_List_fromArray(
24867		['+', '-', '%', '*', '/']));
24868var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isOperatorChar = function (c) {
24869	return A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$operatorCharSet);
24870};
24871var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyValueChar = function (c) {
24872	return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyChar(c) && (!((c === '(') || ((c === ')') || ((c === ',') || $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isOperatorChar(c)))));
24873};
24874var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$hexColor = function (revTokens) {
24875	return A2(
24876		$elm$parser$Parser$map,
24877		function (n) {
24878			return A2(
24879				$elm$core$List$cons,
24880				_Utils_Tuple2(
24881					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Number),
24882					n),
24883				revTokens);
24884		},
24885		$elm$parser$Parser$getChompedString(
24886			A2(
24887				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
24888				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyValueChar,
24889				$elm$parser$Parser$symbol('#'))));
24890};
24891var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isNotPropertyValueChar = function (c) {
24892	return (c === '(') || ((c === ')') || ((c === ':') || ((c === ',') || (c === '/'))));
24893};
24894var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$unitSet = $elm$core$Set$fromList(
24895	_List_fromArray(
24896		['em', 'ex', 'ch', 'rem', 'vw', 'vh', 'vmin', 'vmax', 'cm', 'mm', 'q', 'in', 'pt', 'pc', 'px', 'deg', 'grad', 'rad', 'turn', 's', 'ms', 'Hz', 'kHz', 'dpi', 'dpcm', 'dppx']));
24897var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isUnit = function (n) {
24898	return A2($elm$core$Set$member, n, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$unitSet);
24899};
24900var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isNumber = function (c) {
24901	return $elm$core$Char$isDigit(c) || (c === '.');
24902};
24903var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumber = A2(
24904	$elm$parser$Parser$ignorer,
24905	A2(
24906		$elm$parser$Parser$ignorer,
24907		$elm$parser$Parser$succeed(0),
24908		$elm$parser$Parser$chompIf($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isNumber)),
24909	$elm$parser$Parser$chompWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isNumber));
24910var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$negativeNumber = A2(
24911	$elm$parser$Parser$ignorer,
24912	A2(
24913		$elm$parser$Parser$ignorer,
24914		$elm$parser$Parser$succeed(0),
24915		$elm$parser$Parser$backtrackable(
24916			$elm$parser$Parser$symbol('-'))),
24917	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumber);
24918var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$number = $elm$parser$Parser$oneOf(
24919	_List_fromArray(
24920		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumber, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$negativeNumber]));
24921var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$number = A2(
24922	$elm$parser$Parser$map,
24923	function (b) {
24924		return _Utils_Tuple2(
24925			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Number),
24926			b);
24927	},
24928	$elm$parser$Parser$getChompedString($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$number));
24929var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$valueLoop = function (revTokens) {
24930	return $elm$parser$Parser$oneOf(
24931		_List_fromArray(
24932			[
24933				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(revTokens),
24934				A2(
24935				$elm$parser$Parser$map,
24936				$elm$parser$Parser$Loop,
24937				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(revTokens)),
24938				A2(
24939				$elm$parser$Parser$map,
24940				function (n) {
24941					return $elm$parser$Parser$Loop(
24942						A2($elm$core$List$cons, n, revTokens));
24943				},
24944				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$number),
24945				A2(
24946				$elm$parser$Parser$map,
24947				$elm$parser$Parser$Loop,
24948				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$hexColor(revTokens)),
24949				A2(
24950				$elm$parser$Parser$map,
24951				$elm$parser$Parser$Loop,
24952				A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg, 'url', revTokens)),
24953				A2(
24954				$elm$parser$Parser$map,
24955				$elm$parser$Parser$Loop,
24956				A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg, 'format', revTokens)),
24957				A2(
24958				$elm$parser$Parser$map,
24959				$elm$parser$Parser$Loop,
24960				A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg, 'local', revTokens)),
24961				A2(
24962				$elm$parser$Parser$map,
24963				function (n) {
24964					return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isUnit(n) ? $elm$parser$Parser$Loop(
24965						A2(
24966							$elm$core$List$cons,
24967							_Utils_Tuple2(
24968								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Unit),
24969								n),
24970							revTokens)) : $elm$parser$Parser$Loop(
24971						A2(
24972							$elm$core$List$cons,
24973							_Utils_Tuple2(
24974								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PropertyValue),
24975								n),
24976							revTokens));
24977				},
24978				$elm$parser$Parser$getChompedString(
24979					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyValueChar))),
24980				A2(
24981				$elm$parser$Parser$map,
24982				function (b) {
24983					return $elm$parser$Parser$Loop(
24984						A2(
24985							$elm$core$List$cons,
24986							_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
24987							revTokens));
24988				},
24989				$elm$parser$Parser$getChompedString(
24990					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isNotPropertyValueChar))),
24991				A2(
24992				$elm$parser$Parser$map,
24993				function (b) {
24994					return $elm$parser$Parser$Loop(
24995						A2(
24996							$elm$core$List$cons,
24997							_Utils_Tuple2(
24998								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Unit),
24999								b),
25000							revTokens));
25001				},
25002				$elm$parser$Parser$getChompedString(
25003					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isOperatorChar))),
25004				$elm$parser$Parser$succeed(
25005				$elm$parser$Parser$Done(revTokens))
25006			]));
25007};
25008var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$valueHelper = function (opener) {
25009	return A2(
25010		$elm$parser$Parser$loop,
25011		_List_fromArray(
25012			[opener]),
25013		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$valueLoop);
25014};
25015var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$value = A2(
25016	$elm$parser$Parser$andThen,
25017	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$valueHelper,
25018	A2(
25019		$elm$parser$Parser$map,
25020		function (b) {
25021			return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
25022		},
25023		$elm$parser$Parser$getChompedString(
25024			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
25025				$elm$core$Basics$eq(':')))));
25026var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationLoop = function (revTokens) {
25027	return $elm$parser$Parser$oneOf(
25028		_List_fromArray(
25029			[
25030				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(revTokens),
25031				A2(
25032				$elm$parser$Parser$map,
25033				function (b) {
25034					return $elm$parser$Parser$Loop(
25035						A2(
25036							$elm$core$List$cons,
25037							_Utils_Tuple2(
25038								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Property),
25039								b),
25040							revTokens));
25041				},
25042				$elm$parser$Parser$getChompedString(
25043					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyChar))),
25044				A2(
25045				$elm$parser$Parser$map,
25046				function (b) {
25047					return $elm$parser$Parser$Loop(
25048						A2(
25049							$elm$core$List$cons,
25050							_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
25051							revTokens));
25052				},
25053				$elm$parser$Parser$getChompedString(
25054					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
25055						function (c) {
25056							return (c === ';') || (c === '/');
25057						}))),
25058				A2(
25059				$elm$parser$Parser$map,
25060				function (n) {
25061					return $elm$parser$Parser$Loop(
25062						_Utils_ap(n, revTokens));
25063				},
25064				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$value),
25065				$elm$parser$Parser$succeed(
25066				$elm$parser$Parser$Done(revTokens))
25067			]));
25068};
25069var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationBlockHelper = function (opener) {
25070	return A2(
25071		$elm$parser$Parser$loop,
25072		_List_fromArray(
25073			[opener]),
25074		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationLoop);
25075};
25076var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationBlock = A2(
25077	$elm$parser$Parser$andThen,
25078	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationBlockHelper,
25079	A2(
25080		$elm$parser$Parser$map,
25081		function (b) {
25082			return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
25083		},
25084		$elm$parser$Parser$getChompedString(
25085			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
25086				function (c) {
25087					return c === '{';
25088				}))));
25089var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Selector = function (a) {
25090	return {$: 2, a: a};
25091};
25092var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeName = 0;
25093var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeSelector = function (a) {
25094	return {$: 5, a: a};
25095};
25096var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attSelOperatorCharSet = $elm$core$Set$fromList(
25097	_List_fromArray(
25098		['=', '~', '|', '^', '$', '*']));
25099var $elm$core$Set$union = F2(
25100	function (_v0, _v1) {
25101		var dict1 = _v0;
25102		var dict2 = _v1;
25103		return A2($elm$core$Dict$union, dict1, dict2);
25104	});
25105var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$whitespaceCharSet = $elm$core$Set$fromList(
25106	_List_fromArray(
25107		[' ', '\t', '\n']));
25108var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attSelNameInvalidCharSet = A2(
25109	$elm$core$Set$insert,
25110	']',
25111	A2($elm$core$Set$union, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attSelOperatorCharSet, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$whitespaceCharSet));
25112var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeName = A2(
25113	$elm$parser$Parser$map,
25114	function (b) {
25115		return _Utils_Tuple2(
25116			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
25117				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Selector(
25118					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeSelector(0))),
25119			b);
25120	},
25121	$elm$parser$Parser$getChompedString(
25122		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
25123			function (c) {
25124				return !A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attSelNameInvalidCharSet);
25125			})));
25126var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeOperator = 2;
25127var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeOperator = A2(
25128	$elm$parser$Parser$map,
25129	function (b) {
25130		return _Utils_Tuple2(
25131			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
25132				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Selector(
25133					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeSelector(2))),
25134			b);
25135	},
25136	$elm$parser$Parser$getChompedString(
25137		$elm$parser$Parser$oneOf(
25138			_List_fromArray(
25139				[
25140					$elm$parser$Parser$symbol('~='),
25141					$elm$parser$Parser$symbol('|='),
25142					$elm$parser$Parser$symbol('^='),
25143					$elm$parser$Parser$symbol('$='),
25144					$elm$parser$Parser$symbol('*='),
25145					$elm$parser$Parser$symbol('=')
25146				]))));
25147var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeValue = 1;
25148var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeValue = function (revTokens) {
25149	return $elm$parser$Parser$oneOf(
25150		_List_fromArray(
25151			[
25152				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(revTokens),
25153				A2(
25154				$elm$parser$Parser$map,
25155				$elm$parser$Parser$Done,
25156				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(revTokens)),
25157				A2(
25158				$elm$parser$Parser$map,
25159				$elm$parser$Parser$Done,
25160				A2(
25161					$elm$parser$Parser$map,
25162					function (b) {
25163						return A2(
25164							$elm$core$List$cons,
25165							_Utils_Tuple2(
25166								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
25167									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Selector(
25168										$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeSelector(1))),
25169								b),
25170							revTokens);
25171					},
25172					$elm$parser$Parser$getChompedString(
25173						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
25174							function (c) {
25175								return (c !== ']') && (!$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c));
25176							})))),
25177				$elm$parser$Parser$succeed(
25178				$elm$parser$Parser$Done(revTokens))
25179			]));
25180};
25181var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelectorLoop = function (revTokens) {
25182	return $elm$parser$Parser$oneOf(
25183		_List_fromArray(
25184			[
25185				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(revTokens),
25186				A2(
25187				$elm$parser$Parser$map,
25188				function (n) {
25189					return $elm$parser$Parser$Loop(
25190						A2($elm$core$List$cons, n, revTokens));
25191				},
25192				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeName),
25193				A2(
25194				$elm$parser$Parser$andThen,
25195				function (operator) {
25196					return A2(
25197						$elm$parser$Parser$map,
25198						function (n) {
25199							return $elm$parser$Parser$Loop(
25200								_Utils_ap(n, revTokens));
25201						},
25202						A2(
25203							$elm$parser$Parser$loop,
25204							_List_fromArray(
25205								[operator]),
25206							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeValue));
25207				},
25208				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeOperator),
25209				$elm$parser$Parser$succeed(
25210				$elm$parser$Parser$Done(revTokens))
25211			]));
25212};
25213var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelector = A2(
25214	$elm$parser$Parser$andThen,
25215	function (opener) {
25216		return A2(
25217			$elm$parser$Parser$loop,
25218			_List_fromArray(
25219				[opener]),
25220			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelectorLoop);
25221	},
25222	A2(
25223		$elm$parser$Parser$map,
25224		$elm$core$Basics$always(
25225			_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '[')),
25226		$elm$parser$Parser$symbol('[')));
25227var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Class = {$: 2};
25228var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$class = A2(
25229	$elm$parser$Parser$map,
25230	function (b) {
25231		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Class, b);
25232	},
25233	$elm$parser$Parser$getChompedString(
25234		A2(
25235			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
25236			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar,
25237			$elm$parser$Parser$symbol('.'))));
25238var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Combinator = {$: 3};
25239var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$combinator = A2(
25240	$elm$parser$Parser$map,
25241	function (b) {
25242		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Combinator, b);
25243	},
25244	$elm$parser$Parser$getChompedString(
25245		$elm$parser$Parser$oneOf(
25246			_List_fromArray(
25247				[
25248					$elm$parser$Parser$symbol('+'),
25249					$elm$parser$Parser$symbol('~'),
25250					$elm$parser$Parser$symbol('>')
25251				]))));
25252var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Element = {$: 0};
25253var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$element = A2(
25254	$elm$parser$Parser$map,
25255	function (b) {
25256		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Element, b);
25257	},
25258	$elm$parser$Parser$getChompedString(
25259		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar)));
25260var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Id = {$: 1};
25261var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$id = A2(
25262	$elm$parser$Parser$map,
25263	function (b) {
25264		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Id, b);
25265	},
25266	$elm$parser$Parser$getChompedString(
25267		A2(
25268			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
25269			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar,
25270			$elm$parser$Parser$symbol('#'))));
25271var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PseudoClass = {$: 7};
25272var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$pseudoClass = A2(
25273	$elm$parser$Parser$map,
25274	function (b) {
25275		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PseudoClass, b);
25276	},
25277	$elm$parser$Parser$getChompedString(
25278		A2(
25279			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
25280			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar,
25281			$elm$parser$Parser$symbol(':'))));
25282var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PseudoElement = {$: 6};
25283var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$pseudoElement = A2(
25284	$elm$parser$Parser$map,
25285	function (b) {
25286		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PseudoElement, b);
25287	},
25288	$elm$parser$Parser$getChompedString(
25289		A2(
25290			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
25291			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar,
25292			$elm$parser$Parser$symbol('::'))));
25293var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Universal = {$: 4};
25294var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$universal = A2(
25295	$elm$parser$Parser$map,
25296	$elm$core$Basics$always(
25297		_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Universal, '*')),
25298	$elm$parser$Parser$symbol('*'));
25299var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selector = $elm$parser$Parser$oneOf(
25300	_List_fromArray(
25301		[
25302			A2(
25303			$elm$parser$Parser$map,
25304			function (_v0) {
25305				var n = _v0.a;
25306				var s = _v0.b;
25307				return _List_fromArray(
25308					[
25309						_Utils_Tuple2(
25310						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(
25311							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Selector(n)),
25312						s)
25313					]);
25314			},
25315			$elm$parser$Parser$oneOf(
25316				_List_fromArray(
25317					[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$id, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$class, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$element, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$universal, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$combinator, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$pseudoElement, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$pseudoClass]))),
25318			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelector
25319		]));
25320var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$mainLoop = function (revTokens) {
25321	return $elm$parser$Parser$oneOf(
25322		_List_fromArray(
25323			[
25324				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(revTokens),
25325				A2(
25326				$elm$parser$Parser$map,
25327				function (n) {
25328					return $elm$parser$Parser$Loop(
25329						_Utils_ap(n, revTokens));
25330				},
25331				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRule),
25332				A2(
25333				$elm$parser$Parser$map,
25334				function (n) {
25335					return $elm$parser$Parser$Loop(
25336						_Utils_ap(n, revTokens));
25337				},
25338				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selector),
25339				A2(
25340				$elm$parser$Parser$map,
25341				function (n) {
25342					return $elm$parser$Parser$Loop(
25343						_Utils_ap(n, revTokens));
25344				},
25345				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationBlock),
25346				A2(
25347				$elm$parser$Parser$map,
25348				function (b) {
25349					return $elm$parser$Parser$Loop(
25350						A2(
25351							$elm$core$List$cons,
25352							
25352_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
25353							revTokens));
25354				},
25355				$elm$parser$Parser$getChompedString(
25356					$elm$parser$Parser$chompIf(
25357						$elm$core$Basics$always(true)))),
25358				$elm$parser$Parser$succeed(
25359				$elm$parser$Parser$Done(revTokens))
25360			]));
25361};
25362var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$toRevTokens = A2($elm$parser$Parser$loop, _List_Nil, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$mainLoop);
25363var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$toLines = A2(
25364	$elm$core$Basics$composeR,
25365	$elm$parser$Parser$run($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$toRevTokens),
25366	$elm$core$Result$map(
25367		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$syntaxToStyle)));
25368var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$css = A2(
25369	$elm$core$Basics$composeR,
25370	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$toLines,
25371	$elm$core$Result$map($elm$core$Basics$identity));
25372var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style6 = 7;
25373var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$syntaxToStyle = function (syntax) {
25374	switch (syntax) {
25375		case 0:
25376			return _Utils_Tuple2(3, 'elm-s');
25377		case 1:
25378			return _Utils_Tuple2(4, 'elm-bs');
25379		case 2:
25380			return _Utils_Tuple2(5, 'elm-gs');
25381		case 3:
25382			return _Utils_Tuple2(7, 'elm-c');
25383		case 4:
25384			return _Utils_Tuple2(4, 'elm-k');
25385		case 5:
25386			return _Utils_Tuple2(6, 'elm-f');
25387		case 6:
25388			return _Utils_Tuple2(5, 'elm-ts');
25389		default:
25390			return _Utils_Tuple2(2, 'elm-n');
25391	}
25392};
25393var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$inlineComment = A2(
25394	$elm$parser$Parser$map,
25395	function (b) {
25396		return _List_fromArray(
25397			[
25398				_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment, b)
25399			]);
25400	},
25401	$elm$parser$Parser$getChompedString(
25402		A2(
25403			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
25404			A2($elm$core$Basics$composeL, $elm$core$Basics$not, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak),
25405			$elm$parser$Parser$symbol('--'))));
25406var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreakList = A2(
25407	$elm$parser$Parser$map,
25408	function (_v0) {
25409		return _List_fromArray(
25410			[
25411				_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n')
25412			]);
25413	},
25414	$elm$parser$Parser$symbol('\n'));
25415var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$multilineComment = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(
25416	{
25417		d9: function (b) {
25418			return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment, b);
25419		},
25420		g: '-}',
25421		em: _List_fromArray(
25422			[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreakList]),
25423		es: true,
25424		et: function (c) {
25425			return !$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c);
25426		},
25427		i: '{-'
25428	});
25429var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$comment = $elm$parser$Parser$oneOf(
25430	_List_fromArray(
25431		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$inlineComment, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$multilineComment]));
25432var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$BasicSymbol = 1;
25433var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Capitalized = 3;
25434var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$GroupSymbol = 2;
25435var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Keyword = 4;
25436var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Number = 7;
25437var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$basicSymbols = $elm$core$Set$fromList(
25438	_List_fromArray(
25439		['|', '.', '=', '\\', '/', '(', ')', '-', '>', '<', ':', '+', '!', '$', '%', '&', '*']));
25440var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isBasicSymbol = function (c) {
25441	return A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$basicSymbols);
25442};
25443var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$basicSymbol = $elm$parser$Parser$getChompedString(
25444	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isBasicSymbol));
25445var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$groupSymbols = $elm$core$Set$fromList(
25446	_List_fromArray(
25447		[',', '[', ']', '{', '}']));
25448var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isGroupSymbol = function (c) {
25449	return A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$groupSymbols);
25450};
25451var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isStringLiteralChar = function (c) {
25452	return (c === '\"') || (c === '\'');
25453};
25454var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isVariableChar = function (c) {
25455	return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isBasicSymbol(c) || ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isGroupSymbol(c) || $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isStringLiteralChar(c))));
25456};
25457var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$capitalized = $elm$parser$Parser$getChompedString(
25458	A2(
25459		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
25460		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isVariableChar,
25461		$elm$parser$Parser$chompIf($elm$core$Char$isUpper)));
25462var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$groupSymbol = $elm$parser$Parser$getChompedString(
25463	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isGroupSymbol));
25464var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Function = 5;
25465var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$infixSet = $elm$core$Set$fromList(
25466	_List_fromArray(
25467		['+', '-', '/', '*', '=', '.', '$', '<', '>', ':', '&', '|', '^', '?', '%', '#', '@', '~', '!', ',']));
25468var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isInfixChar = function (c) {
25469	return A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$infixSet);
25470};
25471var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$infixParser = A2(
25472	$elm$parser$Parser$map,
25473	function (b) {
25474		return _Utils_Tuple2(
25475			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(5),
25476			b);
25477	},
25478	$elm$parser$Parser$getChompedString(
25479		A2(
25480			$elm$parser$Parser$ignorer,
25481			A2(
25482				$elm$parser$Parser$ignorer,
25483				A2(
25484					$elm$parser$Parser$ignorer,
25485					$elm$parser$Parser$succeed(0),
25486					$elm$parser$Parser$backtrackable(
25487						$elm$parser$Parser$symbol('('))),
25488				$elm$parser$Parser$backtrackable(
25489					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isInfixChar))),
25490			$elm$parser$Parser$backtrackable(
25491				$elm$parser$Parser$symbol(')')))));
25492var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$keywordSet = $elm$core$Set$fromList(
25493	_List_fromArray(
25494		['as', 'where', 'let', 'in', 'if', 'else', 'then', 'case', 'of', 'type', 'alias']));
25495var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isKeyword = function (str) {
25496	return A2($elm$core$Set$member, str, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$keywordSet);
25497};
25498var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$variable = $elm$parser$Parser$getChompedString(
25499	A2(
25500		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
25501		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isVariableChar,
25502		$elm$parser$Parser$chompIf($elm$core$Char$isLower)));
25503var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$weirdText = $elm$parser$Parser$getChompedString(
25504	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isVariableChar));
25505var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBodyContent = $elm$parser$Parser$oneOf(
25506	_List_fromArray(
25507		[
25508			A2(
25509			$elm$parser$Parser$map,
25510			function (b) {
25511				return _Utils_Tuple2(
25512					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(7),
25513					b);
25514			},
25515			$elm$parser$Parser$getChompedString($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$number)),
25516			A2(
25517			$elm$parser$Parser$map,
25518			$elm$core$Basics$always(
25519				_Utils_Tuple2(
25520					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(3),
25521					'()')),
25522			$elm$parser$Parser$symbol('()')),
25523			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$infixParser,
25524			A2(
25525			$elm$parser$Parser$map,
25526			function (b) {
25527				return _Utils_Tuple2(
25528					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(1),
25529					b);
25530			},
25531			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$basicSymbol),
25532			A2(
25533			$elm$parser$Parser$map,
25534			function (b) {
25535				return _Utils_Tuple2(
25536					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(2),
25537					b);
25538			},
25539			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$groupSymbol),
25540			A2(
25541			$elm$parser$Parser$map,
25542			function (b) {
25543				return _Utils_Tuple2(
25544					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(3),
25545					b);
25546			},
25547			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$capitalized),
25548			A2(
25549			$elm$parser$Parser$map,
25550			function (n) {
25551				return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isKeyword(n) ? _Utils_Tuple2(
25552					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(4),
25553					n) : _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, n);
25554			},
25555			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$variable),
25556			A2(
25557			$elm$parser$Parser$map,
25558			function (b) {
25559				return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
25560			},
25561			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$weirdText)
25562		]));
25563var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$String = 0;
25564var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$elmEscapable = A2(
25565	$elm$parser$Parser$map,
25566	function (b) {
25567		return _List_fromArray(
25568			[
25569				_Utils_Tuple2(
25570				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(3),
25571				b)
25572			]);
25573	},
25574	$elm$parser$Parser$getChompedString($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapable));
25575var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringDelimiter = {
25576	d9: function (b) {
25577		return _Utils_Tuple2(
25578			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(0),
25579			b);
25580	},
25581	g: '\"',
25582	em: _List_fromArray(
25583		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreakList, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$elmEscapable]),
25584	es: false,
25585	et: function (c) {
25586		return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable(c));
25587	},
25588	i: '\"'
25589};
25590var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$doubleQuote = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringDelimiter);
25591var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$quote = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(
25592	_Utils_update(
25593		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringDelimiter,
25594		{g: '\'', i: '\''}));
25595var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$tripleDoubleQuote = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(
25596	_Utils_update(
25597		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringDelimiter,
25598		{g: '\"\"\"', i: '\"\"\"'}));
25599var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringLiteral = $elm$parser$Parser$oneOf(
25600	_List_fromArray(
25601		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$tripleDoubleQuote, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$doubleQuote, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$quote]));
25602var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreak = A2(
25603	$elm$parser$Parser$map,
25604	function (_v0) {
25605		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n');
25606	},
25607	$elm$parser$Parser$symbol('\n'));
25608var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$space = A2(
25609	$elm$parser$Parser$map,
25610	function (b) {
25611		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
25612	},
25613	$elm$parser$Parser$getChompedString(
25614		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace)));
25615var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$checkContext = function (revTokens) {
25616	return $elm$parser$Parser$oneOf(
25617		_List_fromArray(
25618			[
25619				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens),
25620				$elm$parser$Parser$succeed(
25621				$elm$parser$Parser$Done(revTokens))
25622			]));
25623};
25624var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep = function (revTokens) {
25625	return $elm$parser$Parser$oneOf(
25626		_List_fromArray(
25627			[
25628				A2(
25629				$elm$parser$Parser$map,
25630				function (n) {
25631					return $elm$parser$Parser$Loop(
25632						A2($elm$core$List$cons, n, revTokens));
25633				},
25634				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$space),
25635				A2(
25636				$elm$parser$Parser$andThen,
25637				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$checkContext,
25638				A2(
25639					$elm$parser$Parser$map,
25640					function (n) {
25641						return A2($elm$core$List$cons, n, revTokens);
25642					},
25643					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreak)),
25644				A2(
25645				$elm$parser$Parser$map,
25646				function (n) {
25647					return $elm$parser$Parser$Loop(
25648						_Utils_ap(n, revTokens));
25649				},
25650				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$comment)
25651			]));
25652};
25653var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody = function (revTokens) {
25654	return $elm$parser$Parser$oneOf(
25655		_List_fromArray(
25656			[
25657				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens),
25658				A2(
25659				$elm$parser$Parser$map,
25660				function (ns) {
25661					return $elm$parser$Parser$Loop(
25662						_Utils_ap(ns, revTokens));
25663				},
25664				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringLiteral),
25665				A2(
25666				$elm$parser$Parser$map,
25667				function (n) {
25668					return $elm$parser$Parser$Loop(
25669						A2($elm$core$List$cons, n, revTokens));
25670				},
25671				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBodyContent),
25672				$elm$parser$Parser$succeed(
25673				$elm$parser$Parser$Done(revTokens))
25674			]));
25675};
25676var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$TypeSignature = 6;
25677var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigIsNotRelevant = function (c) {
25678	return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || ((c === '(') || ((c === ')') || ((c === '-') || (c === ',')))));
25679};
25680var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigContentHelp = $elm$parser$Parser$oneOf(
25681	_List_fromArray(
25682		[
25683			
25683A2(
25684			$elm$parser$Parser$map,
25685			$elm$core$Basics$always(
25686				_Utils_Tuple2(
25687					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(6),
25688					'()')),
25689			$elm$parser$Parser$symbol('()')),
25690			A2(
25691			$elm$parser$Parser$map,
25692			$elm$core$Basics$always(
25693				_Utils_Tuple2(
25694					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(1),
25695					'->')),
25696			$elm$parser$Parser$symbol('->')),
25697			A2(
25698			$elm$parser$Parser$map,
25699			function (b) {
25700				return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
25701			},
25702			$elm$parser$Parser$getChompedString(
25703				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
25704					function (c) {
25705						return (c === '(') || ((c === ')') || ((c === '-') || (c === ',')));
25706					}))),
25707			A2(
25708			$elm$parser$Parser$map,
25709			function (b) {
25710				return _Utils_Tuple2(
25711					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(6),
25712					b);
25713			},
25714			$elm$parser$Parser$getChompedString(
25715				A2(
25716					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
25717					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigIsNotRelevant,
25718					$elm$parser$Parser$chompIf($elm$core$Char$isUpper)))),
25719			A2(
25720			$elm$parser$Parser$map,
25721			function (b) {
25722				return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
25723			},
25724			$elm$parser$Parser$getChompedString(
25725				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigIsNotRelevant)))
25726		]));
25727var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigContent = function (revTokens) {
25728	return $elm$parser$Parser$oneOf(
25729		_List_fromArray(
25730			[
25731				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens),
25732				A2(
25733				$elm$parser$Parser$map,
25734				function (n) {
25735					return $elm$parser$Parser$Loop(
25736						A2($elm$core$List$cons, n, revTokens));
25737				},
25738				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigContentHelp),
25739				$elm$parser$Parser$succeed(
25740				$elm$parser$Parser$Done(revTokens))
25741			]));
25742};
25743var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionSignature = function (revTokens) {
25744	return $elm$parser$Parser$oneOf(
25745		_List_fromArray(
25746			[
25747				A2(
25748				$elm$parser$Parser$map,
25749				$elm$parser$Parser$Done,
25750				A2(
25751					$elm$parser$Parser$andThen,
25752					function (ns) {
25753						return A2($elm$parser$Parser$loop, ns, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigContent);
25754					},
25755					A2(
25756						$elm$parser$Parser$map,
25757						$elm$core$Basics$always(
25758							A2(
25759								$elm$core$List$cons,
25760								_Utils_Tuple2(
25761									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(1),
25762									':'),
25763								revTokens)),
25764						$elm$parser$Parser$symbol(':')))),
25765				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens),
25766				A2(
25767				$elm$parser$Parser$map,
25768				$elm$parser$Parser$Done,
25769				A2($elm$parser$Parser$loop, revTokens, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody)),
25770				$elm$parser$Parser$succeed(
25771				$elm$parser$Parser$Done(revTokens))
25772			]));
25773};
25774var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isCommentChar = function (c) {
25775	return (c === '-') || (c === '{');
25776};
25777var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$commentChar = $elm$parser$Parser$getChompedString(
25778	$elm$parser$Parser$chompIf($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isCommentChar));
25779var $elm$parser$Parser$ExpectingKeyword = function (a) {
25780	return {$: 9, a: a};
25781};
25782var $elm$parser$Parser$Advanced$keyword = function (_v0) {
25783	var kwd = _v0.a;
25784	var expecting = _v0.b;
25785	var progress = !$elm$core$String$isEmpty(kwd);
25786	return function (s) {
25787		var _v1 = A5($elm$parser$Parser$Advanced$isSubString, kwd, s.cf, s.gm, s.d5, s.dE);
25788		var newOffset = _v1.a;
25789		var newRow = _v1.b;
25790		var newCol = _v1.c;
25791		return (_Utils_eq(newOffset, -1) || (0 <= A3(
25792			$elm$parser$Parser$Advanced$isSubChar,
25793			function (c) {
25794				return $elm$core$Char$isAlphaNum(c) || (c === '_');
25795			},
25796			newOffset,
25797			s.dE))) ? A2(
25798			$elm$parser$Parser$Advanced$Bad,
25799			false,
25800			A2($elm$parser$Parser$Advanced$fromState, s, expecting)) : A3(
25801			$elm$parser$Parser$Advanced$Good,
25802			progress,
25803			0,
25804			{d5: newCol, f: s.f, h: s.h, cf: newOffset, gm: newRow, dE: s.dE});
25805	};
25806};
25807var $elm$parser$Parser$keyword = function (kwd) {
25808	return $elm$parser$Parser$Advanced$keyword(
25809		A2(
25810			$elm$parser$Parser$Advanced$Token,
25811			kwd,
25812			$elm$parser$Parser$ExpectingKeyword(kwd)));
25813};
25814var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecIsNotRelevant = function (c) {
25815	return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isCommentChar(c) || (c === '(')));
25816};
25817var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mdpIsNotRelevant = function (c) {
25818	return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isCommentChar(c) || ((c === '(') || ((c === ')') || ((c === ',') || (c === '.'))))));
25819};
25820var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mdpnIsSpecialChar = function (c) {
25821	return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isCommentChar(c) || ((c === '(') || (c === ')')));
25822};
25823var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$checkContextNested = function (_v1) {
25824	var nestLevel = _v1.a;
25825	var revTokens = _v1.b;
25826	return $elm$parser$Parser$oneOf(
25827		_List_fromArray(
25828			[
25829				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStepNested(
25830				_Utils_Tuple2(nestLevel, revTokens)),
25831				$elm$parser$Parser$succeed(
25832				$elm$parser$Parser$Done(revTokens))
25833			]));
25834};
25835var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStepNested = function (_v0) {
25836	var nestLevel = _v0.a;
25837	var revTokens = _v0.b;
25838	return $elm$parser$Parser$oneOf(
25839		_List_fromArray(
25840			[
25841				A2(
25842				$elm$parser$Parser$map,
25843				function (n) {
25844					return $elm$parser$Parser$Loop(
25845						_Utils_Tuple2(
25846							nestLevel,
25847							A2($elm$core$List$cons, n, revTokens)));
25848				},
25849				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$space),
25850				A2(
25851				$elm$parser$Parser$andThen,
25852				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$checkContextNested,
25853				A2(
25854					$elm$parser$Parser$map,
25855					function (n) {
25856						return _Utils_Tuple2(
25857							nestLevel,
25858							A2($elm$core$List$cons, n, revTokens));
25859					},
25860					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreak)),
25861				A2(
25862				$elm$parser$Parser$map,
25863				function (n) {
25864					return $elm$parser$Parser$Loop(
25865						_Utils_Tuple2(
25866							nestLevel,
25867							_Utils_ap(n, revTokens)));
25868				},
25869				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$comment)
25870			]));
25871};
25872var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecParNest = function (_v0) {
25873	var nestLevel = _v0.a;
25874	var revTokens = _v0.b;
25875	return $elm$parser$Parser$oneOf(
25876		_List_fromArray(
25877			[
25878				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStepNested(
25879				_Utils_Tuple2(nestLevel, revTokens)),
25880				A2(
25881				$elm$parser$Parser$map,
25882				function (ns) {
25883					return $elm$parser$Parser$Loop(
25884						_Utils_Tuple2(nestLevel + 1, ns));
25885				},
25886				A2(
25887					$elm$parser$Parser$map,
25888					$elm$core$Basics$always(
25889						A2(
25890							$elm$core$List$cons,
25891							_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('),
25892							revTokens)),
25893					$elm$parser$Parser$symbol('('))),
25894				A2(
25895				$elm$parser$Parser$map,
25896				function (ns) {
25897					return (!nestLevel) ? $elm$parser$Parser$Done(ns) : $elm$parser$Parser$Loop(
25898						_Utils_Tuple2(nestLevel - 1, ns));
25899				},
25900				A2(
25901					$elm$parser$Parser$map,
25902					$elm$core$Basics$always(
25903						A2(
25904							$elm$core$List$cons,
25905							_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, ')'),
25906							revTokens)),
25907					$elm$parser$Parser$symbol(')'))),
25908				A2(
25909				$elm$parser$Parser$map,
25910				function (n) {
25911					return $elm$parser$Parser$Loop(
25912						_Utils_Tuple2(
25913							nestLevel,
25914							A2($elm$core$List$cons, n, revTokens)));
25915				},
25916				$elm$parser$Parser$oneOf(
25917					_List_fromArray(
25918						[
25919							A2(
25920							$elm$parser$Parser$map,
25921							function (b) {
25922								return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
25923							},
25924							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$commentChar),
25925							A2(
25926							$elm$parser$Parser$map,
25927							function (s) {
25928								return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, s);
25929							},
25930							$elm$parser$Parser$getChompedString(
25931								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
25932									A2($elm$core$Basics$composeL, $elm$core$Basics$not, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mdpnIsSpecialChar))))
25933						]))),
25934				$elm$parser$Parser$succeed(
25935				$elm$parser$Parser$Done(revTokens))
25936			]));
25937};
25938var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecParentheses = function (revTokens) {
25939	return $elm$parser$Parser$oneOf(
25940		_List_fromArray(
25941			[
25942				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens),
25943				A2(
25944				$elm$parser$Parser$map,
25945				$elm$parser$Parser$Done,
25946				A2(
25947					$elm$parser$Parser$map,
25948					$elm$core$Basics$always(
25949						A2(
25950							$elm$core$List$cons,
25951							_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, ')'),
25952							revTokens)),
25953					$elm$parser$Parser$symbol(')'))),
25954				A2(
25955				$elm$parser$Parser$map,
25956				function (n) {
25957					return $elm$parser$Parser$Loop(
25958						A2($elm$core$List$cons, n, revTokens));
25959				},
25960				$elm$parser$Parser$oneOf(
25961					_List_fromArray(
25962						[
25963							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$infixParser,
25964							A2(
25965							$elm$parser$Parser$map,
25966							function (b) {
25967								return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
25968							},
25969							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$commentChar),
25970							A2(
25971							$elm$parser$Parser$map,
25972							function (b) {
25973								return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
25974							},
25975							$elm$parser$Parser$getChompedString(
25976								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
25977									function (c) {
25978										return (c === ',') || (c === '.');
25979									}))),
25980							A2(
25981							$elm$parser$Parser$map,
25982							function (b) {
25983								return _Utils_Tuple2(
25984									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(6),
25985									b);
25986							},
25987							$elm$parser$Parser$getChompedString(
25988								A2(
25989									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
25990									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mdpIsNotRelevant,
25991									$elm$parser$Parser$chompIf($elm$core$Char$isUpper)))),
25992							A2(
25993							$elm$parser$Parser$map,
25994							function (b) {
25995								return _Utils_Tuple2(
25996									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(5),
25997									b);
25998							},
25999							$elm$parser$Parser$getChompedString(
26000								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mdpIsNotRelevant)))
26001						]))),
26002				A2(
26003				$elm$parser$Parser$map,
26004				$elm$parser$Parser$Loop,
26005				A2(
26006					$elm$parser$Parser$andThen,
26007					function (n) {
26008						return A2(
26009							$elm$parser$Parser$loop,
26010							_Utils_Tuple2(0, n),
26011							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecParNest);
26012					},
26013					A2(
26014						$elm$parser$Parser$map,
26015						$elm$core$Basics$always(
26016							A2(
26017								$elm$core$List$cons,
26018								_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('),
26019								revTokens)),
26020						$elm$parser$Parser$symbol('(')))),
26021				$elm$parser$Parser$succeed(
26022				$elm$parser$Parser$Done(revTokens))
26023			]));
26024};
26025var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$moduleDeclaration = function (revTokens) {
26026	return $elm$parser$Parser$oneOf(
26027		_List_fromArray(
26028			[
26029				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens),
26030				A2(
26031				$elm$parser$Parser$map,
26032				$elm$parser$Parser$Loop,
26033				A2(
26034					$elm$parser$Parser$andThen,
26035					function (n) {
26036						return A2($elm$parser$Parser$loop, n, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecParentheses);
26037					},
26038					A2(
26039						$elm$parser$Parser$map,
26040						$elm$core$Basics$always(
26041							A2(
26042								$elm$core$List$cons,
26043								_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('),
26044								revTokens)),
26045						$elm$parser$Parser$symbol('(')))),
26046				A2(
26047				$elm$parser$Parser$map,
26048				function (n) {
26049					return $elm$parser$Parser$Loop(
26050						A2($elm$core$List$cons, n, revTokens));
26051				},
26052				$elm$parser$Parser$oneOf(
26053					_List_fromArray(
26054						[
26055							A2(
26056							$elm$parser$Parser$map,
26057							function (b) {
26058								return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
26059							},
26060							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$commentChar),
26061							A2(
26062							$elm$parser$Parser$map,
26063							$elm$core$Basics$always(
26064								_Utils_Tuple2(
26065									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(4),
26066									'exposing')),
26067							$elm$parser$Parser$keyword('exposing')),
26068							A2(
26069							$elm$parser$Parser$map,
26070							$elm$core$Basics$always(
26071								_Utils_Tuple2(
26072									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(4),
26073									'as')),
26074							$elm$parser$Parser$keyword('as')),
26075							A2(
26076							$elm$parser$Parser$map,
26077							function (b) {
26078								return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
26079							},
26080							$elm$parser$Parser$getChompedString(
26081								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecIsNotRelevant)))
26082						]))),
26083				$elm$parser$Parser$succeed(
26084				$elm$parser$Parser$Done(revTokens))
26085			]));
26086};
26087var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$portDeclarationHelp = F2(
26088	function (revTokens, str) {
26089		return (str === 'module') ? A2(
26090			$elm$parser$Parser$loop,
26091			A2(
26092				$elm$core$List$cons,
26093				_Utils_Tuple2(
26094					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(4),
26095					str),
26096				revTokens),
26097			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$moduleDeclaration) : A2(
26098			$elm$parser$Parser$loop,
26099			A2(
26100				$elm$core$List$cons,
26101				_Utils_Tuple2(
26102					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(5),
26103					str),
26104				revTokens),
26105			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionSignature);
26106	});
26107var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$portDeclaration = function (revTokens) {
26108	return $elm$parser$Parser$oneOf(
26109		_List_fromArray(
26110			[
26111				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens),
26112				A2(
26113				$elm$parser$Parser$map,
26114				$elm$parser$Parser$Done,
26115				A2(
26116					$elm$parser$Parser$andThen,
26117					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$portDeclarationHelp(revTokens),
26118					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$variable)),
26119				A2(
26120				$elm$parser$Parser$map,
26121				$elm$parser$Parser$Done,
26122				A2($elm$parser$Parser$loop, r
26122evTokens, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody)),
26123				$elm$parser$Parser$succeed(
26124				$elm$parser$Parser$Done(revTokens))
26125			]));
26126};
26127var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineStartVariable = F2(
26128	function (revTokens, n) {
26129		return ((n === 'module') || (n === 'import')) ? A2(
26130			$elm$parser$Parser$loop,
26131			A2(
26132				$elm$core$List$cons,
26133				_Utils_Tuple2(
26134					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(4),
26135					n),
26136				revTokens),
26137			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$moduleDeclaration) : ((n === 'port') ? A2(
26138			$elm$parser$Parser$loop,
26139			A2(
26140				$elm$core$List$cons,
26141				_Utils_Tuple2(
26142					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(4),
26143					n),
26144				revTokens),
26145			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$portDeclaration) : ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isKeyword(n) ? A2(
26146			$elm$parser$Parser$loop,
26147			A2(
26148				$elm$core$List$cons,
26149				_Utils_Tuple2(
26150					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(4),
26151					n),
26152				revTokens),
26153			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody) : A2(
26154			$elm$parser$Parser$loop,
26155			A2(
26156				$elm$core$List$cons,
26157				_Utils_Tuple2(
26158					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(5),
26159					n),
26160				revTokens),
26161			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionSignature)));
26162	});
26163var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mainLoop = function (revTokens) {
26164	return $elm$parser$Parser$oneOf(
26165		_List_fromArray(
26166			[
26167				A2(
26168				$elm$parser$Parser$map,
26169				function (n) {
26170					return $elm$parser$Parser$Loop(
26171						A2($elm$core$List$cons, n, revTokens));
26172				},
26173				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$space),
26174				A2(
26175				$elm$parser$Parser$map,
26176				function (n) {
26177					return $elm$parser$Parser$Loop(
26178						A2($elm$core$List$cons, n, revTokens));
26179				},
26180				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreak),
26181				A2(
26182				$elm$parser$Parser$map,
26183				function (n) {
26184					return $elm$parser$Parser$Loop(
26185						_Utils_ap(n, revTokens));
26186				},
26187				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$comment),
26188				A2(
26189				$elm$parser$Parser$map,
26190				$elm$parser$Parser$Loop,
26191				A2(
26192					$elm$parser$Parser$andThen,
26193					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineStartVariable(revTokens),
26194					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$variable)),
26195				A2(
26196				$elm$parser$Parser$map,
26197				$elm$parser$Parser$Loop,
26198				A2(
26199					$elm$parser$Parser$andThen,
26200					function (s) {
26201						return A2(
26202							$elm$parser$Parser$loop,
26203							_Utils_ap(s, revTokens),
26204							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody);
26205					},
26206					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringLiteral)),
26207				A2(
26208				$elm$parser$Parser$map,
26209				$elm$parser$Parser$Loop,
26210				A2(
26211					$elm$parser$Parser$andThen,
26212					function (s) {
26213						return A2(
26214							$elm$parser$Parser$loop,
26215							A2($elm$core$List$cons, s, revTokens),
26216							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody);
26217					},
26218					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBodyContent)),
26219				$elm$parser$Parser$succeed(
26220				$elm$parser$Parser$Done(revTokens))
26221			]));
26222};
26223var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$toRevTokens = A2($elm$parser$Parser$loop, _List_Nil, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mainLoop);
26224var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$toLines = A2(
26225	$elm$core$Basics$composeR,
26226	$elm$parser$Parser$run($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$toRevTokens),
26227	$elm$core$Result$map(
26228		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$syntaxToStyle)));
26229var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$elm = A2(
26230	$elm$core$Basics$composeR,
26231	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$toLines,
26232	$elm$core$Result$map($elm$core$Basics$identity));
26233var $elm$html$Html$em = _VirtualDom_node('em');
26234var $elm$html$Html$h2 = _VirtualDom_node('h2');
26235var $elm$html$Html$h3 = _VirtualDom_node('h3');
26236var $elm$html$Html$h4 = _VirtualDom_node('h4');
26237var $elm$html$Html$h5 = _VirtualDom_node('h5');
26238var $elm$html$Html$h6 = _VirtualDom_node('h6');
26239var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$syntaxToStyle = function (syntax) {
26240	switch (syntax) {
26241		case 0:
26242			return _Utils_Tuple2(2, 'js-n');
26243		case 1:
26244			return _Utils_Tuple2(3, 'js-s');
26245		case 2:
26246			return _Utils_Tuple2(4, 'js-k');
26247		case 3:
26248			return _Utils_Tuple2(5, 'js-dk');
26249		case 4:
26250			return _Utils_Tuple2(5, 'js-fe');
26251		case 5:
26252			return _Utils_Tuple2(6, 'js-f');
26253		case 6:
26254			return _Utils_Tuple2(7, 'js-lk');
26255		case 7:
26256			return _Utils_Tuple2(8, 'js-p');
26257		default:
26258			return _Utils_Tuple2(6, 'js-ce');
26259	}
26260};
26261var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$groupSet = $elm$core$Set$fromList(
26262	_List_fromArray(
26263		['{', '}', '(', ')', '[', ']', ',', ';']));
26264var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isGroupChar = function (c) {
26265	return A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$groupSet);
26266};
26267var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$groupChar = A2(
26268	$elm$parser$Parser$map,
26269	function (b) {
26270		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
26271	},
26272	$elm$parser$Parser$getChompedString(
26273		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isGroupChar)));
26274var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isCommentChar = function (c) {
26275	return c === '/';
26276};
26277var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$operatorSet = $elm$core$Set$fromList(
26278	_List_fromArray(
26279		['+', '-', '*', '/', '=', '!', '<', '>', '&', '|', '?', '^', ':', '~', '%', '.']));
26280var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$punctuactorSet = A2($elm$core$Set$union, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$operatorSet, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$groupSet);
26281var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isPunctuaction = function (c) {
26282	return A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$punctuactorSet);
26283};
26284var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isStringLiteralChar = function (c) {
26285	return (c === '\"') || ((c === '\'') || (c === '`'));
26286};
26287var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isIdentifierNameChar = function (c) {
26288	return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isPunctuaction(c) || ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isStringLiteralChar(c) || ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isCommentChar(c) || $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c))));
26289};
26290var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$DeclarationKeyword = 3;
26291var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Function = 5;
26292var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Keyword = 2;
26293var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$LiteralKeyword = 6;
26294var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Param = 7;
26295var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$ClassExtends = 8;
26296var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$inlineComment = A2(
26297	$elm$parser$Parser$map,
26298	function (b) {
26299		return _List_fromArray(
26300			[
26301				_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment, b)
26302			]);
26303	},
26304	$elm$parser$Parser$getChompedString(
26305		A2(
26306			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile,
26307			A2($elm$core$Basics$composeL, $elm$core$Basics$not, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak),
26308			$elm$parser$Parser$symbol('//'))));
26309var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$lineBreakList = A2(
26310	$elm$parser$Parser$map,
26311	function (_v0) {
26312		return _List_fromArray(
26313			[
26314				_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n')
26315			]);
26316	},
26317	$elm$parser$Parser$symbol('\n'));
26318var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$multilineComment = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(
26319	{
26320		d9: function (b) {
26321			return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment, b);
26322		},
26323		g: '*/',
26324		em: _List_fromArray(
26325			[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$lineBreakList]),
26326		es: false,
26327		et: function (c) {
26328			return !$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c);
26329		},
26330		i: '/*'
26331	});
26332var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$comment = $elm$parser$Parser$oneOf(
26333	_List_fromArray(
26334		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$inlineComment, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$multilineComment]));
26335var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep = function (revTokens) {
26336	return $elm$parser$Parser$oneOf(
26337		_List_fromArray(
26338			[
26339				A2(
26340				$elm$parser$Parser$map,
26341				function (b) {
26342					return $elm$parser$Parser$Loop(
26343						A2(
26344							$elm$core$List$cons,
26345							_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
26346							revTokens));
26347				},
26348				$elm$parser$Parser$getChompedString(
26349					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace))),
26350				A2(
26351				$elm$parser$Parser$map,
26352				function (ns) {
26353					return $elm$parser$Parser$Loop(
26354						_Utils_ap(ns, revTokens));
26355				},
26356				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$lineBreakList),
26357				A2(
26358				$elm$parser$Parser$map,
26359				function (ns) {
26360					return $elm$parser$Parser$Loop(
26361						_Utils_ap(ns, revTokens));
26362				},
26363				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$comment)
26364			]));
26365};
26366var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$classExtendsLoop = function (revTokens) {
26367	return $elm$parser$Parser$oneOf(
26368		_List_fromArray(
26369			[
26370				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(revTokens),
26371				A2(
26372				$elm$parser$Parser$map,
26373				function (b) {
26374					return $elm$parser$Parser$Loop(
26375						A2(
26376							$elm$core$List$cons,
26377							_Utils_Tuple2(
26378								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(8),
26379								b),
26380							revTokens));
26381				},
26382				$elm$parser$Parser$getChompedString(
26383					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isIdentifierNameChar))),
26384				$elm$parser$Parser$succeed(
26385				$elm$parser$Parser$Done(revTokens))
26386			]));
26387};
26388var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$classDeclarationLoop = function (revTokens) {
26389	return $elm$parser$Parser$oneOf(
26390		_List_fromArray(
26391			[
26392				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(revTokens),
26393				A2(
26394				$elm$parser$Parser$andThen,
26395				function (n) {
26396					return (n === 'extends') ? A2(
26397						$elm$parser$Parser$map,
26398						$elm$parser$Parser$Loop,
26399						A2(
26400							$elm$parser$Parser$loop,
26401							A2(
26402								$elm$core$List$cons,
26403								_Utils_Tuple2(
26404									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(2),
26405									n),
26406								revTokens),
26407							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$classExtendsLoop)) : $elm$parser$Parser$succeed(
26408						$elm$parser$Parser$Loop(
26409							A2(
26410								$elm$core$List$cons,
26411								_Utils_Tuple2(
26412									$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(5),
26413									n),
26414								revTokens)));
26415				},
26416				$elm$parser$Parser$getChompedString(
26417					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isIdentifierNameChar))),
26418				$elm$parser$Parser$succeed(
26419				$elm$parser$Parser$Done(revTokens))
26420			]));
26421};
26422var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$argLoop = function (revTokens) {
26423	return $elm$parser$Parser$oneOf(
26424		_List_fromArray(
26425			[
26426				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(revTokens),
26427				A2(
26428				$elm$parser$Parser$map,
26429				function (b) {
26430					return $elm$parser$Parser$Loop(
26431						A2(
26432							$elm$core$List$cons,
26433							_Utils_Tuple2(
26434								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(7),
26435								b),
26436							revTokens));
26437				},
26438				$elm$parser$Parser$getChompedString(
26439					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
26440						function (c) {
26441							return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isCommentChar(c) || ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || ((c === ',') || (c === ')'))));
26442						}))),
26443				A2(
26444				$elm$parser$Parser$map,
26445				function (b) {
26446					return $elm$parser$Parser$Loop(
26447						A2(
26448							$elm$core$List$cons,
26449							_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
26450							revTokens));
26451				},
26452				$elm$parser$Parser$getChompedString(
26453					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(
26454						function (c) {
26455							return (c === '/') || (c === ',');
26456						}))),
26457				$elm$parser$Parser$succeed(
26458				$elm$parser$Parser$Done(revTokens))
26459			]));
26460};
26461var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$functionDeclarationLoop = function (revTokens) {
26462	return $elm$parser$Parser$oneOf(
26463		_List_fromArray(
26464			[
26465				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(revTokens),
26466				A2(
26467				$elm$parser$Parser$map,
26468				function (b) {
26469					return $elm$parser$Parser$Loop(
26470						A2(
26471							$elm$core$List$cons,
26472							_Utils_Tuple2(
26473								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(5),
26474								b),
26475							revTokens));
26476				},
26477				$elm$parser$Parser$getChompedString(
26478					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isIdentifierNameChar))),
26479				A2(
26480				$elm$parser$Parser$map,
26481				function (_v0) {
26482					return $elm$parser$Parser$Loop(
26483						A2(
26484							$elm$core$List$cons,
26485							_Utils_Tuple2(
26486								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(2),
26487								'*'),
26488							revTokens));
26489				},
26490				$elm$parser$Parser$symbol('*')),
26491				A2(
26492				$elm$parser$Parser$map,
26493				$elm$parser$Parser$Loop,
26494				A2(
26495					$elm$parser$Parser$andThen,
26496					function (_v1) {
26497						return A2(
26498							$elm$parser$Parser$loop,
26499							A2(
26500								$elm$core$List$cons,
26501								_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('),
26502								revTokens),
26503							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$argLoop);
26504					},
26505					$elm$parser$Parser$symbol('('))),
26506				$elm$parser$Parser$succeed(
26507				$elm$parser$Parser$Done(revTokens))
26508			]));
26509};
26510var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$FunctionEval = 4;
26511var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$functionEvalLoop = F3(
26512	function (identifier, revTokens, thisRevToken) {
26513		return $elm$parser$Parser$oneOf(
26514			_List_fromArray(
26515				[
26516					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(thisRevToken),
26517					A2(
26518					$elm$parser$Parser$map,
26519					function (_v0) {
26520						return $elm$parser$Parser$Done(
26521							_Utils_ap(
26522								A2(
26523									$elm$core$List$cons,
26524									_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('),
26525									thisRevToken),
26526								A2(
26527									$elm$core$List$cons,
26528									_Utils_Tuple2(
26529										$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(4),
26530										identifier),
26531									revTokens)));
26532					},
26533					$elm$parser$Parser$symbol('(')),
26534					$elm$parser$Parser$succeed(
26535					$elm$parser$Parser$Done(
26536						_Utils_ap(
26537							thisRevToken,
26538							A2(
26539								$elm$core$List$cons,
26540								_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, identifier),
26541								revTokens))))
26542				]));
26543	});
26544var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$declarationKeywordSet = $elm$core$Set$fromList(
26545	_List_fromArray(
26546		['var', 'const', 'let']));
26547var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isDeclarationKeyword = function (str) {
26548	return A2($elm$core$Set$member, str, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$declarationKeywordSet);
26549};
26550var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$keywordSet = $elm$core$Set$fromList(
26551	_List_fromArray(
26552		['break', 'do', 'instanceof', 'typeof', 'case', 'else', 'new', 'catch', 'finally', 'return', 'void', 'continue', 'for', 'switch', 'while', 'debugger', 'this', 'with', 'default', 'if', 'throw', 'delete', 'in', 'try', 'enum', 'extends', 'export', 'import', 'implements', 'private', 'public', 'yield', 'interface', 'package', 'protected']));
26553var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isKeyword = function (str) {
26554	return A2($elm$core$Set$member, str, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$keywordSet);
26555};
26556var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$literalKeywordSet = $elm$core$Set$fromList(
26557	_List_fromArray(
26558		['true', 'false', 'null', 'undefined', 'NaN', 'Infinity']));
26559var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isLiteralKeyword = function (str) {
26560	return A2($elm$core$Set$member, str, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$literalKeywordSet);
26561};
26562var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$keywordParser = F2(
26563	function (revTokens, n) {
26564		return ((n === 'function') || (n === 'static')) ? A2(
26565			$elm$parser$Parser$loop,
26566			A2(
26567				$elm$core$List$cons,
26568				_Utils_Tuple2(
26569					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(3),
26570					n),
26571				revTokens),
26572			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$functionDeclarationLoop) : ((n === 'class') ? A2(
26573			$elm$parser$Parser$loop,
26574			A2(
26575				$elm$core$List$cons,
26576				_Utils_Tuple2(
26577					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(3),
26578					n),
26579				revTokens),
26580			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$classDeclarationLoop) : (((n === 'this') || (n === 'super')) ? $elm$parser$Parser$succeed(
26581			A2(
26582				$elm$core$List$cons,
26583				_Utils_Tuple2(
26584					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(7),
26585					n),
26586				revTokens)) : ((n === 'constructor') ? A2(
26587			$elm$parser$Parser$loop,
26588			A2(
26589				$elm$core$List$cons,
26590				_Utils_Tuple2(
26591					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(5),
26592					n),
26593				revTokens),
26594			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$functionDeclarationLoop) : ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isKeyword(n) ? $elm$parser$Parser$succeed(
26595			A2(
26596				$elm$core$List$cons,
26597				_Utils_Tuple2(
26598					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(2),
26599					n),
26600				revTokens)) : ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isDeclarationKeyword(n) ? $elm$parser$Parser$succeed(
26601			A2(
26602				$elm$core$List$cons,
26603				_Utils_Tuple2(
26604					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(3),
26605					n),
26606				revTokens)) : ($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isLiteralKeyword(n) ? $elm$parser$Parser$succeed(
26607			A2(
26608				$elm$core$List$cons,
26609				_Utils_Tuple2(
26610					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(6),
26611					n),
26612				revTokens)) : A2(
26613			$elm$parser$Parser$loop,
26614			_List_Nil,
26615			A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$functionEvalLoop, n, revTokens))))))));
26616	});
26617var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Number = 0;
26618var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$number = A2(
26619	$elm$parser$Parser$map,
26620	function (b) {
26621		return _Utils_Tuple2(
26622			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(0),
26623			b);
26624	},
26625	$elm$parser$Parser$getChompedString($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$number));
26626var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isOperatorChar = function (c) {
26627	return A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$operatorSet);
26628};
26629var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$operatorChar = A2(
26630	$elm$parser$Parser$map,
26631	function (b) {
26632		return _Utils_Tuple2(
26633			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(2),
26634			b);
26635	},
26636	$elm$parser$Parser$getChompedString(
26637		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isOperatorChar)));
26638var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$String = 1;
26639var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$jsEscapable = A2(
26640	$elm$parser$Parser$map,
26641	function (b) {
26642		return _List_fromArray(
26643			[
26644				_Utils_Tuple2(
26645				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(6),
26646				b)
26647			]);
26648	},
26649	$elm$parser$Parser$getChompedString($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapable));
26650var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quoteDelimiter = {
26651	d9: function (b) {
26652		return _Utils_Tuple2(
26653			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(1),
26654			b);
26655	},
26656	g: '\'',
26657	em: _List_fromArray(
26658		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$lineBreakList, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$jsEscapable]),
26659	es: false,
26660	et: function (c) {
26661		return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable(c));
26662	},
26663	i: '\''
26664};
26665var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$doubleQuote = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(
26666	_Utils_update(
26667		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quoteDelimiter,
26668		{g: '\"', i: '\"'}));
26669var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quote = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quoteDelimiter);
26670var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$templateString = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(
26671	_Utils_update(
26672		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quoteDelimiter,
26673		{
26674			g: '`',
26675			em: _List_fromArray(
26676				[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$lineBreakList, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$jsEscapable]),
26677			et: function (c) {
26678				return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable(c));
26679			},
26680			i: '`'
26681		}));
26682var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$stringLiteral = $elm$parser$Parser$oneOf(
26683	_List_fromArray(
26684		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quote, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$doubleQuote, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$templateString]));
26685var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$mainLoop = function (revTokens) {
26686	return $elm$parser$Parser$oneOf(
26687		_List_fromArray(
26688			[
26689				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(revTokens),
26690				A2(
26691				$elm$parser$Parser$map,
26692				function (s) {
26693					return $elm$parser$Parser$Loop(
26694						_Utils_ap(s, revTokens));
26695				},
26696				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$stringLiteral),
26697				A2(
26698				$elm$parser$Parser$map,
26699				function (s) {
26700					return $elm$parser$Parser$Loop(
26701						A2($elm$core$List$cons, s, revTokens));
26702				},
26703				$elm$parser$Parser$oneOf(
26704					_List_fromArray(
26705						[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$operatorChar, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$groupChar, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$number]))),
26706				A2(
26707				$elm$parser$Parser$map,
26708				$elm$parser$Parser$Loop,
26709				A2(
26710					$elm$parser$Parser$andThen,
26711					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$keywordParser(revTokens),
26712					$elm$parser$Parser$getChompedString(
26713						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isIdentifierNameChar)))),
26714				$elm$parser$Parser$succeed(
26715				$elm$parser$Parser$Done(revTokens))
26716			]));
26717};
26718var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$toRevTokens = A2($elm$parser$Parser$loop, _List_Nil, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$mainLoop);
26719var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$toLines = A2(
26720	$elm$core$Basics$composeR,
26721	$elm$parser$Parser$run($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$toRevTokens),
26722	$elm$core$Result$map(
26723		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$syntaxToStyle)));
26724var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$javascript = A2(
26725	$elm$core$Basics$composeR,
26726	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$toLines,
26727	$elm$core$Result$map($elm$core$Basics$identity));
26728var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$syntaxToStyle = function (syntax) {
26729	switch (syntax) {
26730		case 0:
26731			return _Utils_Tuple2(3, 'json-s');
26732		case 1:
26733			return _Utils_Tuple2(2, 'json-e');
26734		case 2:
26735			return _Utils_Tuple2(2, 'json-n');
26736		case 3:
26737			return _Utils_Tuple2(4, 'json-b');
26738		case 4:
26739			return _Utils_Tuple2(4, 'json-null');
26740		case 5:
26741			return _Utils_Tuple2(5, 'json-k');
26742		case 6:
26743			return _Utils_Tuple2(0, 'json-o');
26744		default:
26745			return _Utils_Tuple2(0, 'json-a');
26746	}
26747};
26748var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Array = 7;
26749var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Boolean = 3;
26750var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Null = 4;
26751var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Object = 6;
26752var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$ObjectKey = 5;
26753var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$String = 0;
26754var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Number = 2;
26755var $elm$parser$Parser$ExpectingFloat = {$: 5};
26756var $elm$parser$Parser$Advanced$consumeBase = _Parser_consumeBase;
26757var $elm$parser$Parser$Advanced$consumeBase16 = _Parser_consumeBase16;
26758var $elm$parser$Parser$Advanced$bumpOffset = F2(
26759	function (newOffset, s) {
26760		return {d5: s.d5 + (newOffset - s.cf), f: s.f, h: s.h, cf: newOffset, gm: s.gm, dE: s.dE};
26761	});
26762var $elm$parser$Parser$Advanced$chompBase10 = _Parser_chompBase10;
26763var $elm$parser$Parser$Advanced$isAsciiCode = _Parser_isAsciiCode;
26764var $elm$parser$Parser$Advanced$consumeExp = F2(
26765	function (offset, src) {
26766		if (A3($elm$parser$Parser$Advanced$isAsciiCode, 101, offset, src) || A3($elm$parser$Parser$Advanced$isAsciiCode, 69, offset, src)) {
26767			var eOffset = offset + 1;
26768			var expOffset = (A3($elm$parser$Parser$Advanced$isAsciiCode, 43, eOffset, src) || A3($elm$parser$Parser$Advanced$isAsciiCode, 45, eOffset, src)) ? (eOffset + 1) : eOff
26768set;
26769			var newOffset = A2($elm$parser$Parser$Advanced$chompBase10, expOffset, src);
26770			return _Utils_eq(expOffset, newOffset) ? (-newOffset) : newOffset;
26771		} else {
26772			return offset;
26773		}
26774	});
26775var $elm$parser$Parser$Advanced$consumeDotAndExp = F2(
26776	function (offset, src) {
26777		return A3($elm$parser$Parser$Advanced$isAsciiCode, 46, offset, src) ? A2(
26778			$elm$parser$Parser$Advanced$consumeExp,
26779			A2($elm$parser$Parser$Advanced$chompBase10, offset + 1, src),
26780			src) : A2($elm$parser$Parser$Advanced$consumeExp, offset, src);
26781	});
26782var $elm$parser$Parser$Advanced$finalizeInt = F5(
26783	function (invalid, handler, startOffset, _v0, s) {
26784		var endOffset = _v0.a;
26785		var n = _v0.b;
26786		if (handler.$ === 1) {
26787			var x = handler.a;
26788			return A2(
26789				$elm$parser$Parser$Advanced$Bad,
26790				true,
26791				A2($elm$parser$Parser$Advanced$fromState, s, x));
26792		} else {
26793			var toValue = handler.a;
26794			return _Utils_eq(startOffset, endOffset) ? A2(
26795				$elm$parser$Parser$Advanced$Bad,
26796				_Utils_cmp(s.cf, startOffset) < 0,
26797				A2($elm$parser$Parser$Advanced$fromState, s, invalid)) : A3(
26798				$elm$parser$Parser$Advanced$Good,
26799				true,
26800				toValue(n),
26801				A2($elm$parser$Parser$Advanced$bumpOffset, endOffset, s));
26802		}
26803	});
26804var $elm$parser$Parser$Advanced$fromInfo = F4(
26805	function (row, col, x, context) {
26806		return A2(
26807			$elm$parser$Parser$Advanced$AddRight,
26808			$elm$parser$Parser$Advanced$Empty,
26809			A4($elm$parser$Parser$Advanced$DeadEnd, row, col, x, context));
26810	});
26811var $elm$parser$Parser$Advanced$finalizeFloat = F6(
26812	function (invalid, expecting, intSettings, floatSettings, intPair, s) {
26813		var intOffset = intPair.a;
26814		var floatOffset = A2($elm$parser$Parser$Advanced$consumeDotAndExp, intOffset, s.dE);
26815		if (floatOffset < 0) {
26816			return A2(
26817				$elm$parser$Parser$Advanced$Bad,
26818				true,
26819				A4($elm$parser$Parser$Advanced$fromInfo, s.gm, s.d5 - (floatOffset + s.cf), invalid, s.f));
26820		} else {
26821			if (_Utils_eq(s.cf, floatOffset)) {
26822				return A2(
26823					$elm$parser$Parser$Advanced$Bad,
26824					false,
26825					A2($elm$parser$Parser$Advanced$fromState, s, expecting));
26826			} else {
26827				if (_Utils_eq(intOffset, floatOffset)) {
26828					return A5($elm$parser$Parser$Advanced$finalizeInt, invalid, intSettings, s.cf, intPair, s);
26829				} else {
26830					if (floatSettings.$ === 1) {
26831						var x = floatSettings.a;
26832						return A2(
26833							$elm$parser$Parser$Advanced$Bad,
26834							true,
26835							A2($elm$parser$Parser$Advanced$fromState, s, invalid));
26836					} else {
26837						var toValue = floatSettings.a;
26838						var _v1 = $elm$core$String$toFloat(
26839							A3($elm$core$String$slice, s.cf, floatOffset, s.dE));
26840						if (_v1.$ === 1) {
26841							return A2(
26842								$elm$parser$Parser$Advanced$Bad,
26843								true,
26844								A2($elm$parser$Parser$Advanced$fromState, s, invalid));
26845						} else {
26846							var n = _v1.a;
26847							return A3(
26848								$elm$parser$Parser$Advanced$Good,
26849								true,
26850								toValue(n),
26851								A2($elm$parser$Parser$Advanced$bumpOffset, floatOffset, s));
26852						}
26853					}
26854				}
26855			}
26856		}
26857	});
26858var $elm$parser$Parser$Advanced$number = function (c) {
26859	return function (s) {
26860		if (A3($elm$parser$Parser$Advanced$isAsciiCode, 48, s.cf, s.dE)) {
26861			var zeroOffset = s.cf + 1;
26862			var baseOffset = zeroOffset + 1;
26863			return A3($elm$parser$Parser$Advanced$isAsciiCode, 120, zeroOffset, s.dE) ? A5(
26864				$elm$parser$Parser$Advanced$finalizeInt,
26865				c.fI,
26866				c.fA,
26867				baseOffset,
26868				A2($elm$parser$Parser$Advanced$consumeBase16, baseOffset, s.dE),
26869				s) : (A3($elm$parser$Parser$Advanced$isAsciiCode, 111, zeroOffset, s.dE) ? A5(
26870				$elm$parser$Parser$Advanced$finalizeInt,
26871				c.fI,
26872				c.eC,
26873				baseOffset,
26874				A3($elm$parser$Parser$Advanced$consumeBase, 8, baseOffset, s.dE),
26875				s) : (A3($elm$parser$Parser$Advanced$isAsciiCode, 98, zeroOffset, s.dE) ? A5(
26876				$elm$parser$Parser$Advanced$finalizeInt,
26877				c.fI,
26878				c.d2,
26879				baseOffset,
26880				A3($elm$parser$Parser$Advanced$consumeBase, 2, baseOffset, s.dE),
26881				s) : A6(
26882				$elm$parser$Parser$Advanced$finalizeFloat,
26883				c.fI,
26884				c.eb,
26885				c.eq,
26886				c.ec,
26887				_Utils_Tuple2(zeroOffset, 0),
26888				s)));
26889		} else {
26890			return A6(
26891				$elm$parser$Parser$Advanced$finalizeFloat,
26892				c.fI,
26893				c.eb,
26894				c.eq,
26895				c.ec,
26896				A3($elm$parser$Parser$Advanced$consumeBase, 10, s.cf, s.dE),
26897				s);
26898		}
26899	};
26900};
26901var $elm$parser$Parser$Advanced$float = F2(
26902	function (expecting, invalid) {
26903		return $elm$parser$Parser$Advanced$number(
26904			{
26905				d2: $elm$core$Result$Err(invalid),
26906				eb: expecting,
26907				ec: $elm$core$Result$Ok($elm$core$Basics$identity),
26908				fA: $elm$core$Result$Err(invalid),
26909				eq: $elm$core$Result$Ok($elm$core$Basics$toFloat),
26910				fI: invalid,
26911				eC: $elm$core$Result$Err(invalid)
26912			});
26913	});
26914var $elm$parser$Parser$float = A2($elm$parser$Parser$Advanced$float, $elm$parser$Parser$ExpectingFloat, $elm$parser$Parser$ExpectingFloat);
26915var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumberExponentialNotation = A2(
26916	$elm$parser$Parser$ignorer,
26917	$elm$parser$Parser$succeed(0),
26918	$elm$parser$Parser$backtrackable($elm$parser$Parser$float));
26919var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$negativeNumberExponentialNotation = A2(
26920	$elm$parser$Parser$ignorer,
26921	A2(
26922		$elm$parser$Parser$ignorer,
26923		$elm$parser$Parser$succeed(0),
26924		$elm$parser$Parser$backtrackable(
26925			$elm$parser$Parser$symbol('-'))),
26926	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumberExponentialNotation);
26927var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$numberExponentialNotation = $elm$parser$Parser$oneOf(
26928	_List_fromArray(
26929		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumberExponentialNotation, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$negativeNumberExponentialNotation, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$number]));
26930var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$number = A2(
26931	$elm$parser$Parser$map,
26932	function (b) {
26933		return _Utils_Tuple2(
26934			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(2),
26935			b);
26936	},
26937	$elm$parser$Parser$getChompedString($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$numberExponentialNotation));
26938var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$lineBreak = A2(
26939	$elm$parser$Parser$map,
26940	function (_v0) {
26941		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n');
26942	},
26943	$elm$parser$Parser$symbol('\n'));
26944var $elm$core$List$singleton = function (value) {
26945	return _List_fromArray(
26946		[value]);
26947};
26948var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Escapable = 1;
26949var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$escapableSet = $elm$core$Set$fromList(
26950	_List_fromArray(
26951		['\"', '\\', '/', 'b', 'f', 'n', 'r', 't', 'u']));
26952var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$isEscapableChar = function (c) {
26953	return A2($elm$core$Set$member, c, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$escapableSet);
26954};
26955var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$escapable = A2(
26956	$elm$parser$Parser$ignorer,
26957	A2(
26958		$elm$parser$Parser$ignorer,
26959		$elm$parser$Parser$succeed(0),
26960		$elm$parser$Parser$backtrackable(
26961			$elm$parser$Parser$symbol('\\'))),
26962	$elm$parser$Parser$chompIf($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$isEscapableChar));
26963var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$stringEscapable = A2(
26964	$elm$parser$Parser$map,
26965	function (b) {
26966		return _List_fromArray(
26967			[
26968				_Utils_Tuple2(
26969				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(1),
26970				b)
26971			]);
26972	},
26973	$elm$parser$Parser$getChompedString($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$escapable));
26974var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$doubleQuoteDelimiter = function (syntax_) {
26975	return {
26976		d9: function (b) {
26977			return _Utils_Tuple2(
26978				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(syntax_),
26979				b);
26980		},
26981		g: '\"',
26982		em: _List_fromArray(
26983			[
26984				A2($elm$parser$Parser$map, $elm$core$List$singleton, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$lineBreak),
26985				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$stringEscapable
26986			]),
26987		es: false,
26988		et: function (c) {
26989			return !($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable(c));
26990		},
26991		i: '\"'
26992	};
26993};
26994var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$stringLiteral = F2(
26995	function (syntax_, revTokens) {
26996		return A2(
26997			$elm$parser$Parser$map,
26998			function (n) {
26999				return _Utils_ap(n, revTokens);
27000			},
27001			$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(
27002				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$doubleQuoteDelimiter(syntax_)));
27003	});
27004var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$space = A2(
27005	$elm$parser$Parser$map,
27006	function (b) {
27007		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
27008	},
27009	$elm$parser$Parser$getChompedString(
27010		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace)));
27011var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$whitespace = $elm$parser$Parser$oneOf(
27012	_List_fromArray(
27013		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$space, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$lineBreak]));
27014var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$arrayLoop = function (revTokens) {
27015	return $elm$parser$Parser$oneOf(
27016		_List_fromArray(
27017			[
27018				A2(
27019				$elm$parser$Parser$map,
27020				function (n) {
27021					return $elm$parser$Parser$Loop(
27022						A2($elm$core$List$cons, n, revTokens));
27023				},
27024				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$whitespace),
27025				A2(
27026				$elm$parser$Parser$map,
27027				function (n) {
27028					return $elm$parser$Parser$Loop(
27029						A2($elm$core$List$cons, n, revTokens));
27030				},
27031				A2(
27032					$elm$parser$Parser$map,
27033					function (_v4) {
27034						return _Utils_Tuple2(
27035							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(7),
27036							',');
27037					},
27038					$elm$parser$Parser$symbol(','))),
27039				A2(
27040				$elm$parser$Parser$map,
27041				function (n) {
27042					return $elm$parser$Parser$Done(
27043						A2($elm$core$List$cons, n, revTokens));
27044				},
27045				A2(
27046					$elm$parser$Parser$map,
27047					function (_v5) {
27048						return _Utils_Tuple2(
27049							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(7),
27050							']');
27051					},
27052					$elm$parser$Parser$symbol(']'))),
27053				A2(
27054				$elm$parser$Parser$map,
27055				function (ns) {
27056					return $elm$parser$Parser$Loop(
27057						_Utils_ap(ns, revTokens));
27058				},
27059				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value(
27059)),
27060				$elm$parser$Parser$succeed(
27061				$elm$parser$Parser$Done(revTokens))
27062			]));
27063};
27064var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$objectLoop = function (revTokens) {
27065	return $elm$parser$Parser$oneOf(
27066		_List_fromArray(
27067			[
27068				A2(
27069				$elm$parser$Parser$map,
27070				function (n) {
27071					return $elm$parser$Parser$Loop(
27072						A2($elm$core$List$cons, n, revTokens));
27073				},
27074				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$whitespace),
27075				A2(
27076				$elm$parser$Parser$map,
27077				$elm$parser$Parser$Loop,
27078				A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$stringLiteral, 5, revTokens)),
27079				A2(
27080				$elm$parser$Parser$map,
27081				$elm$parser$Parser$Loop,
27082				A2(
27083					$elm$parser$Parser$andThen,
27084					function (_v0) {
27085						var revTokens_ = A2(
27086							$elm$core$List$cons,
27087							_Utils_Tuple2(
27088								$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(6),
27089								':'),
27090							revTokens);
27091						return A2(
27092							$elm$parser$Parser$map,
27093							function (ns) {
27094								return _Utils_ap(ns, revTokens_);
27095							},
27096							$elm$parser$Parser$oneOf(
27097								_List_fromArray(
27098									[
27099										A2(
27100										$elm$parser$Parser$andThen,
27101										function (ws) {
27102											return $elm$parser$Parser$oneOf(
27103												_List_fromArray(
27104													[
27105														A2(
27106														$elm$parser$Parser$map,
27107														function (v) {
27108															return _Utils_ap(
27109																v,
27110																_List_fromArray(
27111																	[ws]));
27112														},
27113														$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value()),
27114														$elm$parser$Parser$succeed(
27115														_List_fromArray(
27116															[ws]))
27117													]));
27118										},
27119										$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$whitespace),
27120										$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value(),
27121										$elm$parser$Parser$succeed(_List_Nil)
27122									])));
27123					},
27124					$elm$parser$Parser$symbol(':'))),
27125				A2(
27126				$elm$parser$Parser$map,
27127				function (n) {
27128					return $elm$parser$Parser$Loop(
27129						A2($elm$core$List$cons, n, revTokens));
27130				},
27131				A2(
27132					$elm$parser$Parser$map,
27133					function (_v1) {
27134						return _Utils_Tuple2(
27135							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(6),
27136							',');
27137					},
27138					$elm$parser$Parser$symbol(','))),
27139				A2(
27140				$elm$parser$Parser$map,
27141				function (n) {
27142					return $elm$parser$Parser$Done(
27143						A2($elm$core$List$cons, n, revTokens));
27144				},
27145				A2(
27146					$elm$parser$Parser$map,
27147					function (_v2) {
27148						return _Utils_Tuple2(
27149							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(6),
27150							'}');
27151					},
27152					$elm$parser$Parser$symbol('}'))),
27153				$elm$parser$Parser$succeed(
27154				$elm$parser$Parser$Done(revTokens))
27155			]));
27156};
27157function $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value() {
27158	return $elm$parser$Parser$oneOf(
27159		_List_fromArray(
27160			[
27161				A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$stringLiteral, 0, _List_Nil),
27162				A2(
27163				$elm$parser$Parser$map,
27164				function (n) {
27165					return _List_fromArray(
27166						[n]);
27167				},
27168				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$number),
27169				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$object(),
27170				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$array(),
27171				A2(
27172				$elm$parser$Parser$map,
27173				function (s) {
27174					return _List_fromArray(
27175						[
27176							_Utils_Tuple2(
27177							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(4),
27178							s)
27179						]);
27180				},
27181				$elm$parser$Parser$getChompedString(
27182					$elm$parser$Parser$keyword('null'))),
27183				A2(
27184				$elm$parser$Parser$map,
27185				function (s) {
27186					return _List_fromArray(
27187						[
27188							_Utils_Tuple2(
27189							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(3),
27190							s)
27191						]);
27192				},
27193				$elm$parser$Parser$getChompedString(
27194					$elm$parser$Parser$oneOf(
27195						_List_fromArray(
27196							[
27197								$elm$parser$Parser$keyword('true'),
27198								$elm$parser$Parser$keyword('false')
27199							]))))
27200			]));
27201}
27202function $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$array() {
27203	return A2(
27204		$elm$parser$Parser$andThen,
27205		function (_v6) {
27206			return A2(
27207				$elm$parser$Parser$loop,
27208				_List_fromArray(
27209					[
27210						_Utils_Tuple2(
27211						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(7),
27212						'[')
27213					]),
27214				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$arrayLoop);
27215		},
27216		$elm$parser$Parser$symbol('['));
27217}
27218function $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$object() {
27219	return A2(
27220		$elm$parser$Parser$andThen,
27221		function (_v3) {
27222			return A2(
27223				$elm$parser$Parser$loop,
27224				_List_fromArray(
27225					[
27226						_Utils_Tuple2(
27227						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(6),
27228						'{')
27229					]),
27230				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$objectLoop);
27231		},
27232		$elm$parser$Parser$symbol('{'));
27233}
27234var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$value = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value(
27234);
27235$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value = function () {
27236	return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$value;
27237};
27238var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$array = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$array();
27239$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$array = function () {
27240	return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$array;
27241};
27242var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$object = $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$object();
27243$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$object = function () {
27244	return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$object;
27245};
27246var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$mainLoop = function (revTokens) {
27247	return $elm$parser$Parser$oneOf(
27248		_List_fromArray(
27249			[
27250				A2(
27251				$elm$parser$Parser$map,
27252				function (n) {
27253					return $elm$parser$Parser$Loop(
27254						A2($elm$core$List$cons, n, revTokens));
27255				},
27256				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$whitespace),
27257				A2(
27258				$elm$parser$Parser$map,
27259				function (n) {
27260					return $elm$parser$Parser$Loop(
27261						_Utils_ap(n, revTokens));
27262				},
27263				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$object),
27264				A2(
27265				$elm$parser$Parser$map,
27266				function (b) {
27267					return $elm$parser$Parser$Loop(
27268						A2(
27269							$elm$core$List$cons,
27270							_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
27271							revTokens));
27272				},
27273				$elm$parser$Parser$getChompedString(
27274					$elm$parser$Parser$chompIf(
27275						$elm$core$Basics$always(true)))),
27276				$elm$parser$Parser$succeed(
27277				$elm$parser$Parser$Done(revTokens))
27278			]));
27279};
27280var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$toRevTokens = A2($elm$parser$Parser$loop, _List_Nil, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$mainLoop);
27281var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$toLines = A2(
27282	$elm$core$Basics$composeR,
27283	$elm$parser$Parser$run($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$toRevTokens),
27284	$elm$core$Result$map(
27285		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$syntaxToStyle)));
27286var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$json = A2(
27287	$elm$core$Basics$composeR,
27288	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$toLines,
27289	$elm$core$Result$map($elm$core$Basics$identity));
27290var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$syntaxToStyle = function (syntax) {
27291	return _Utils_Tuple2(0, 'nolang');
27292};
27293var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$lineBreak = A2(
27294	$elm$parser$Parser$map,
27295	function (_v0) {
27296		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n');
27297	},
27298	$elm$parser$Parser$symbol('\n'));
27299var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$space = A2(
27300	$elm$parser$Parser$map,
27301	function (b) {
27302		return _Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b);
27303	},
27304	$elm$parser$Parser$getChompedString(
27305		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace)));
27306var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$whitespace = $elm$parser$Parser$oneOf(
27307	_List_fromArray(
27308		[$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$space, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$lineBreak]));
27309var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$mainLoop = function (revTokens) {
27310	return $elm$parser$Parser$oneOf(
27311		_List_fromArray(
27312			[
27313				A2(
27314				$elm$parser$Parser$map,
27315				function (n) {
27316					return $elm$parser$Parser$Loop(
27317						A2($elm$core$List$cons, n, revTokens));
27318				},
27319				$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$whitespace),
27320				A2(
27321				$elm$parser$Parser$map,
27322				function (b) {
27323					return $elm$parser$Parser$Loop(
27324						A2(
27325							$elm$core$List$cons,
27326							_Utils_Tuple2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b),
27327							revTokens));
27328				},
27329				$elm$parser$Parser$getChompedString(
27330					$elm$parser$Parser$chompIf(
27331						$elm$core$Basics$always(true)))),
27332				$elm$parser$Parser$succeed(
27333				$elm$parser$Parser$Done(revTokens))
27334			]));
27335};
27336var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$toRevTokens = A2($elm$parser$Parser$loop, _List_Nil, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$mainLoop);
27337var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$toLines = A2(
27338	$elm$core$Basics$composeR,
27339	$elm$parser$Parser$run($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$toRevTokens),
27340	$elm$core$Result$map(
27341		$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$syntaxToStyle)));
27342var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$noLang = A2(
27343	$elm$core$Basics$composeR,
27344	$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$toLines,
27345	$elm$core$Result$map($elm$core$Basics$identity));
27346var $elm$html$Html$ol = _VirtualDom_node('ol');
27347var $dillonkearns$elm_markdown$Markdown$HtmlRenderer$HtmlRenderer = $elm$core$Basics$identity;
27348var $elm$core$Result$mapError = F2(
27349	function (f, result) {
27350		if (!result.$) {
27351			var v = result.a;
27352			return $elm$core$Result$Ok(v);
27353		} else {
27354			var e = result.a;
27355			return $elm$core$Result$Err(
27356				f(e));
27357		}
27358	});
27359var $dillonkearns$elm_markdown$Markdown$Html$resultOr = F2(
27360	function (ra, rb) {
27361		if (ra.$ === 1) {
27362			var singleError = ra.a;
27363			if (!rb.$) {
27364				var okValue = rb.a;
27365				return $elm$core$Result$Ok(okValue);
27366			} else {
27367				var errorsSoFar = rb.a;
27368				return $elm$core$Result$Err(
27369					A2($elm$core$List$cons, singleError, errorsSoFar));
27370			}
27371		} else {
27372			var okValue = ra.a;
27373			return $elm$core$Result$Ok(okValue);
27374		}
27375	});
27376var $dillonkearns$elm_markdown$Markdown$Html$attributesToString = function (attributes) {
27377	return A2(
27378		$elm$core$String$join,
27379		' ',
27380		A2(
27381			$elm$core$List$map,
27382			function (_v0) {
27383				var name = _v0.w;
27384				var value = _v0.cN;
27385				return name + ('=\"' + (value + '\"'));
27386			},
27387			attributes));
27388};
27389var $dillonkearns$elm_markdown$Markdown$Html$tagToString = F2(
27390	function (tagName, attributes) {
27391		return $elm$core$List$isEmpty(attributes) ? ('<' + (tagName + '>')) : ('<' + (tagName + (' ' + ($dillonkearns$elm_markdown$Markdown$Html$attributesToString(attributes) + '>'))));
27392	});
27393var $dillonkearns$elm_markdown$Markdown$Html$oneOf = function (decoders) {
27394	var unwrappedDecoders = A2(
27395		$elm$core$List$map,
27396		function (_v4) {
27397			var rawDecoder = _v4;
27398			return rawDecoder;
27399		},
27400		decoders);
27401	return function (rawDecoder) {
27402		return F3(
27403			function (tagName, attributes, innerBlocks) {
27404				return A2(
27405					$elm$core$Result$mapError,
27406					function (errors) {
27407						if (!errors.b) {
27408							return 'Ran into a oneOf with no possibilities!';
27409						} else {
27410							if (!errors.b.b) {
27411								var singleError = errors.a;
27412								return 'Problem with the given value:\n\n' + (A2($dillonkearns$elm_markdown$Markdown$Html$tagToString, tagName, attributes) + ('\n\n' + (singleError + '\n')));
27413							} else {
27414								return 'oneOf failed parsing this value:\n    ' + (A2($dillonkearns$elm_markdown$Markdown$Html$tagToString, tagName, attributes) + ('\n\nParsing failed in the following 2 ways:\n\n\n' + (A2(
27415									$elm$core$String$join,
27416									'\n\n',
27417									A2(
27418										$elm$core$List$indexedMap,
27419										F2(
27420											function (index, error) {
27421												return '(' + ($elm$core$String$fromInt(index + 1) + (') ' + error));
27422											}),
27423										errors)) + '\n')));
27424							}
27425						}
27426					},
27427					A3(rawDecoder, tagName, attributes, innerBlocks));
27428			});
27429	}(
27430		A3(
27431			$elm$core$List$foldl,
27432			F2(
27433				function (decoder, soFar) {
27434					return F3(
27435						function (tagName, attributes, children) {
27436							return A2(
27437								$dillonkearns$elm_markdown$Markdown$Html$resultOr,
27438								A3(decoder, tagName, attributes, children),
27439								A3(soFar, tagName, attributes, children));
27440						});
27441				}),
27442			F3(
27443				function (_v0, _v1, _v2) {
27444					return $elm$core$Result$Err(_List_Nil);
27445				}),
27446			unwrappedDecoders));
27447};
27448var $elm$html$Html$pre = _VirtualDom_node('pre');
27449var $elm$html$Html$Attributes$start = function (n) {
27450	return A2(
27451		$elm$html$Html$Attributes$stringProperty,
27452		'start',
27453		$elm$core$String$fromInt(n));
27454};
27455var $elm$html$Html$strong = _VirtualDom_node('strong');
27456var $elm$html$Html$Attributes$title = $elm$html$Html$Attributes$stringProperty('title');
27457var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Add = 1;
27458var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Del = 2;
27459var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Normal = 0;
27460var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$requiredStyleToString = function (required) {
27461	return 'elmsh' + function () {
27462		switch (required) {
27463			case 0:
27464				return '0';
27465			case 1:
27466				return '-comm';
27467			case 2:
27468				return '1';
27469			case 3:
27470				return '2';
27471			case 4:
27472				return '3';
27473			case 5:
27474				return '4';
27475			case 6:
27476				return '5';
27477			case 7:
27478				return '6';
27479			default:
27480				return '7';
27481		}
27482	}();
27483};
27484var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$fragmentView = function (_v0) {
27485	var text = _v0.j;
27486	var requiredStyle = _v0.gi;
27487	var additionalClass = _v0.fa;
27488	return ((!requiredStyle) && $elm$core$String$isEmpty(additionalClass)) ? $elm$html$Html$text(text) : A2(
27489		$elm$html$Html$span,
27490		_List_fromArray(
27491			[
27492				$elm$html$Html$Attributes$classList(
27493				_List_fromArray(
27494					[
27495						_Utils_Tuple2(
27496						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$requiredStyleToString(requiredStyle),
27497						!(!requiredStyle)),
27498						_Utils_Tuple2('elmsh-' + additionalClass, additionalClass !== '')
27499					]))
27500			]),
27501		_List_fromArray(
27502			[
27503				$elm$html$Html$text(text)
27504			]));
27505};
27506var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$lineView = F3(
27507	function (start, index, _v0) {
27508		var fragments = _v0.fu;
27509		var highlight = _v0.b_;
27510		return A2(
27511			$elm$html$Html$div,
27512			_List_fromArray(
27513				[
27514					$elm$html$Html$Attributes$classList(
27515					_List_fromArray(
27516						[
27517							_Utils_Tuple2('elmsh-line', true),
27518							_Utils_Tuple2(
27519							'elmsh-hl',
27520							_Utils_eq(
27521								highlight,
27522								$elm$core$Maybe$Just(0))),
27523							_Utils_Tuple2(
27524							'elmsh-add',
27525							_Utils_eq(
27526								highlight,
27527								$elm$core$Maybe$Just(1))),
27528							_Utils_Tuple2(
27529							'elmsh-del',
27530							_Utils_eq(
27531								highlight,
27532								$elm$core$Maybe$Just(2)))
27533						])),
27534					A2(
27535					$elm$html$Html$Attributes$attribute,
27536					'data-elmsh-lc',
27537					$elm$core$String$fromInt(start + index))
27538				]),
27539			A2($elm$core$List$map, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$fragmentView, fragments));
27540	});
27541var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$toInlineHtml = function (lines) {
27542	return A2(
27543		$elm$html$Html$code,
27544		_List_fromArray(
27545			[
27546				$elm$html$Html$Attributes$class('elmsh')
27547			]),
27548		$elm$core$List$concat(
27549			A2(
27550				$elm$core$List$map,
27551				function (_v0) {
27552					var highlight = _v0.b_;
27553					var fragments = _v0.fu;
27554					return _Utils_eq(highlight, $elm$core$Maybe$Nothing) ? A2($elm$core$List$map, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$fragmentView, fragments) : _List_fromArray(
27555						[
27556							A2(
27557							$elm$html$Html$span,
27558							_List_fromArray(
27559								[
27560									$elm$html$Html$Attributes$classList(
27561									_List_fromArray(
27562										[
27563											_Utils_Tuple2(
27564											'elmsh-hl',
27565											_Utils_eq(
27566												highlight,
27567												$elm$core$Maybe$Just(0))),
27568											_Utils_Tuple2(
27569											'elmsh-add',
27570											_Utils_eq(
27571												highlight,
27572												$elm$core$Maybe$Just(1))),
27573											_Utils_Tuple2(
27574											'elmsh-del',
27575											_Utils_eq(
27576												highlight,
27577												$elm$core$Maybe$Just(2)))
27578										]))
27579								]),
27580							A2($elm$core$List$map, $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$fragmentView, fragments))
27581						]);
27582				},
27583				lines)));
27584};
27585var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$toBlockHtml = F2(
27586	function (maybeStart, lines) {
27587		if (maybeStart.$ === 1) {
27588			return A2(
27589				$elm$html$Html$pre,
27590				_List_fromArray(
27591					[
27592						$elm$html$Html$Attributes$class('elmsh')
27593					]),
27594				_List_fromArray(
27595					[
27596						$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$toInlineHtml(lines)
27597					]));
27598		} else {
27599			var start = maybeStart.a;
27600			return A2(
27601				$elm$html$Html$pre,
27602				_List_fromArray(
27603					[
27604						$elm$html$Html$Attributes$class('elmsh')
27605					]),
27606				$elm$core$List$singleton(
27607					A2(
27608						$elm$html$Html$code,
27609						_List_Nil,
27610						A2(
27611							$elm$core$List$indexedMap,
27612							$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$lineView(start),
27613							lines))));
27614		}
27615	});
27616var $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$toBlockHtml = F2(
27617	function (maybeStart, _v0) {
27618		var lines = _v0;
27619		return A2($pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$toBlockHtml, maybeStart, lines);
27620	});
27621var $dtwrks$elm_book$ElmBook$UI$Markdown$defaultRenderer = {
27622	cW: function (children) {
27623		return A2(
27624			$elm$html$Html$div,
27625			_List_fromArray(
27626				[
27627					$elm$html$Html$Attributes$class('elm-book-md elm-book-serif')
27628				]),
27629			_List_fromArray(
27630				[
27631					A2($elm$html$Html$blockquote, _List_Nil, children)
27632				]));
27633	},
27634	cZ: function (_v0) {
27635		var body = _v0.fe;
27636		var language = _v0.fK;
27637		var hCode = function () {
27638			var _v1 = A2($elm$core$Maybe$withDefault, 'elm', language);
27639			switch (_v1) {
27640				case 'elm':
27641					return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$elm(body);
27642				case 'js':
27643					return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$javascript(body);
27644				case 'json':
27645					return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$json(body);
27646				case 'css':
27647					return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$css(body);
27648				default:
27649					return $pablohirafuji$elm_syntax_highlight$SyntaxHighlight$noLang(body);
27650			}
27651		}();
27652		return A2(
27653			$elm$core$Result$withDefault,
27654			A2(
27655				$elm$html$Html$div,
27656				_List_fromArray(
27657					[
27658						$elm$html$Html$Attributes$class('elm-book-md')
27659					]),
27660				_List_fromArray(
27661					[
27662						A2(
27663						$elm$html$Html$pre,
27664						_List_fromArray(
27665							[
27666								$elm$html$Html$Attributes$class('elm-book-md__code-default elm-book-monospace elm-book-shadows-light')
27667							]),
27668						_List_fromArray(
27669							[
27670								$elm$html$Html$text(body)
27671							]))
27672					])),
27673			A2(
27674				$elm$core$Result$map,
27675				function (content) {
27676					return A2(
27677						$elm$html$Html$div,
27678						_List_fromArray(
27679							[
27680								$elm$html$Html$Attributes$class('elm-book-md')
27681							]),
27682						_List_fromArray(
27683							[
27684								A2(
27685								$elm$html$Html$div,
27686								_List_fromArray(
27687									[
27688										$elm$html$Html$Attributes$class('elm-book-md__code elm-book-monospace elm-book-shadows-light')
27689									]),
27690								_List_fromArray(
27691									[content]))
27692							]));
27693				},
27694				A2(
27695					$elm$core$Result$map,
27696					$pablohirafuji$elm_syntax_highlight$SyntaxHighlight$toBlockHtml($elm$core$Maybe$Nothing),
27697					hCode)));
27698	},
27699	c_: function (children) {
27700		return A2(
27701			$elm$html$Html$span,
27702			_List_fromArray(
27703				[
27704					$elm$html$Html$Attributes$class('elm-book-md')
27705				]),
27706			_List_fromArray(
27707				[
27708					A2(
27709					$elm$html$Html$code,
27710					_List_fromArray(
27711						[
27712							$elm$html$Html$Attributes$class('elm-book-monospace')
27713						]),
27714					_List_fromArray(
27715						[
27716							$elm$html$Html$text(children)
27717						]))
27718				]));
27719	},
27720	c3: $elm$html$Html$em(_List_Nil),
27721	dc: A2(
27722		$elm$html$Html$div,
27723		_List_fromArray(
27724			[
27725				$elm$html$Html$Attributes$class('elm-book-md')
27726			]),
27727		_List_fromArray(
27728			[
27729				A2($elm$html$Html$br, _List_Nil, _List_Nil)
27730			])),
27731	dd: function (_v2) {
27732		var level = _v2.ex;
27733		var children = _v2.cY;
27734		var tag = function () {
27735			switch (level) {
27736			
27736	case 0:
27737					return $elm$html$Html$h1(
27738						_List_fromArray(
27739							[
27740								$elm$html$Html$Attributes$class('elm-book-serif')
27741							]));
27742				case 1:
27743					return $elm$html$Html$h2(
27744						_List_fromArray(
27745							[
27746								$elm$html$Html$Attributes$class('elm-book-serif')
27747							]));
27748				case 2:
27749					return $elm$html$Html$h3(
27750						_List_fromArray(
27751							[
27752								$elm$html$Html$Attributes$class('elm-book-serif')
27753							]));
27754				case 3:
27755					return $elm$html$Html$h4(
27756						_List_fromArray(
27757							[
27758								$elm$html$Html$Attributes$class('elm-book-sans')
27759							]));
27760				case 4:
27761					return $elm$html$Html$h5(
27762						_List_fromArray(
27763							[
27764								$elm$html$Html$Attributes$class('elm-book-sans')
27765							]));
27766				default:
27767					return $elm$html$Html$h6(
27768						_List_fromArray(
27769							[
27770								$elm$html$Html$Attributes$class('elm-book-sans')
27771							]));
27772			}
27773		}();
27774		return A2(
27775			$elm$html$Html$div,
27776			_List_fromArray(
27777				[
27778					$elm$html$Html$Attributes$class('elm-book-md')
27779				]),
27780			_List_fromArray(
27781				[
27782					tag(children)
27783				]));
27784	},
27785	df: $dillonkearns$elm_markdown$Markdown$Html$oneOf(_List_Nil),
27786	dg: function (image) {
27787		return A2(
27788			$elm$html$Html$div,
27789			_List_fromArray(
27790				[
27791					$elm$html$Html$Attributes$class('elm-book-md')
27792				]),
27793			_List_fromArray(
27794				[
27795					A2(
27796					$elm$html$Html$img,
27797					_List_fromArray(
27798						[
27799							$elm$html$Html$Attributes$src(image.dE),
27800							$elm$html$Html$Attributes$alt(image.cT),
27801							$elm$html$Html$Attributes$title(
27802							A2($elm$core$Maybe$withDefault, '', image.gt))
27803						]),
27804					_List_Nil)
27805				]));
27806	},
27807	dk: F2(
27808		function (link, children) {
27809			return A2(
27810				$elm$html$Html$a,
27811				_List_fromArray(
27812					[
27813						$elm$html$Html$Attributes$href(link.fm),
27814						$elm$html$Html$Attributes$title(
27815						A2($elm$core$Maybe$withDefault, '', link.gt))
27816					]),
27817				children);
27818		}),
27819	dt: F2(
27820		function (startingIndex, items) {
27821			return A2(
27822				$elm$html$Html$div,
27823				_List_fromArray(
27824					[
27825						$elm$html$Html$Attributes$class('elm-book-md elm-book-serif elm-book-md__default')
27826					]),
27827				_List_fromArray(
27828					[
27829						A2(
27830						$elm$html$Html$ol,
27831						_List_fromArray(
27832							[
27833								$elm$html$Html$Attributes$start(startingIndex)
27834							]),
27835						A2(
27836							$elm$core$List$map,
27837							$elm$html$Html$li(_List_Nil),
27838							items))
27839					]));
27840		}),
27841	dv: function (children) {
27842		return A2(
27843			$elm$html$Html$div,
27844			_List_fromArray(
27845				[
27846					$elm$html$Html$Attributes$class('elm-book-md elm-book-serif elm-book-md__default')
27847				]),
27848			_List_fromArray(
27849				[
27850					A2($elm$html$Html$p, _List_Nil, children)
27851				]));
27852	},
27853	dG: $elm$html$Html$span(_List_Nil),
27854	dH: $elm$html$Html$strong(_List_Nil),
27855	dK: function (children) {
27856		return A2(
27857			$elm$html$Html$div,
27858			_List_fromArray(
27859				[
27860					$elm$html$Html$Attributes$class('elm-book-md elm-book-md__default elm-book-sans')
27861				]),
27862			_List_fromArray(
27863				[
27864					A2($elm$html$Html$table, _List_Nil, children)
27865				]));
27866	},
27867	dL: $elm$html$Html$tbody(_List_Nil),
27868	dM: F2(
27869		function (_v4, children_) {
27870			return A2($elm$html$Html$td, _List_Nil, children_);
27871		}),
27872	dN: $elm$html$Html$thead(_List_Nil),
27873	dO: function (maybeAlignment) {
27874		var attrs = A2(
27875			$elm$core$Maybe$withDefault,
27876			_List_Nil,
27877			A2(
27878				$elm$core$Maybe$map,
27879				$elm$core$List$singleton,
27880				A2(
27881					$elm$core$Maybe$map,
27882					$elm$html$Html$Attributes$align,
27883					A2(
27884						$elm$core$Maybe$map,
27885						function (alignment) {
27886							switch (alignment) {
27887								case 0:
27888									return 'left';
27889								case 2:
27890									return 'center';
27891								default:
27892									return 'right';
27893							}
27894						},
27895						maybeAlignment))));
27896		return $elm$html$Html$th(attrs);
27897	},
27898	cF: $elm$html$Html$tr(_List_Nil),
27899	j: $elm$html$Html$text,
27900	dP: A2(
27901		$elm$html$Html$div,
27902		_List_fromArray(
27903			[
27904				$elm$html$Html$Attributes$class('elm-book-md')
27905			]),
27906		_List_fromArray(
27907			[
27908				A2($elm$html$Html$hr, _List_Nil, _List_Nil)
27909			])),
27910	dV: function (items) {
27911		return A2(
27912			$elm$html$Html$div,
27913			_List_fromArray(
27914				[
27915					$elm$html$Html$Attributes$class('elm-book-md elm-book-serif elm-book-md__default')
27916				]),
27917			_List_fromArray(
27918				[
27919					A2(
27920					$elm$html$Html$ul,
27921					_List_Nil,
27922					A2(
27923						$elm$core$List$map,
27924						function (item) {
27925							var task = item.a;
27926							var children = item.b;
27927							var checkbox = function () {
27928								switch (task) {
27929									case 0:
27930										return $elm$html$Html$text('');
27931									case 1:
27932										return A2(
27933											$elm$html$Html$input,
27934											_List_fromArray(
27935												[
27936													$elm$html$Html$Attributes$disabled(true),
27937													$elm$html$Html$Attributes$checked(false),
27938													$elm$html$Html$Attributes$type_('checkbox')
27939												]),
27940											_List_Nil);
27941									default:
27942										return A2(
27943											$elm$html$Html$input,
27944											_List_fromArray(
27945												[
27946													$elm$html$Html$Attributes$disabled(true),
27947													$elm$html$Html$Attributes$checked(true),
27948													$elm$html$Html$Attributes$type_('checkbox')
27949												]),
27950											_List_Nil);
27951								}
27952							}();
27953							return A2(
27954								$elm$html$Html$li,
27955								_List_Nil,
27956								A2($elm$core$List$cons, checkbox, children));
27957						},
27958						items))
27959				]));
27960	}
27961};
27962var $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$parseBool = function (v) {
27963	if ((!v.$) && (v.a === 'true')) {
27964		return $elm$core$Maybe$Just(true);
27965	} else {
27966		return $elm$core$Maybe$Nothing;
27967	}
27968};
27969var $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Block = 0;
27970var $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$parseDisplay = function (displayString) {
27971	_v0$3:
27972	while (true) {
27973		if (!displayString.$) {
27974			switch (displayString.a) {
27975				case 'block':
27976					return $elm$core$Maybe$Just(0);
27977				case 'inline':
27978					return $elm$core$Maybe$Just(1);
27979				case 'card':
27980					return $elm$core$Maybe$Just(2);
27981				default:
27982					break _v0$3;
27983			}
27984		} else {
27985			break _v0$3;
27986		}
27987	}
27988	return $elm$core$Maybe$Nothing;
27989};
27990var $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$markdownOptions = F2(
27991	function (validOptions, options) {
27992		return A2(
27993			$dtwrks$elm_book$ElmBook$Internal$ComponentOptions$toValidOptions,
27994			validOptions,
27995			{
27996				bF: options.bF,
27997				c2: $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$parseDisplay(options.c2),
27998				fw: $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$parseBool(options.fw),
27999				fC: $dtwrks$elm_book$ElmBook$Internal$ComponentOptions$parseBool(options.fC)
28000			});
28001	});
28002var $dillonkearns$elm_markdown$Markdown$Html$tag = F2(
28003	function (expectedTag, a) {
28004		return F3(
28005			function (tagName, _v0, _v1) {
28006				return _Utils_eq(tagName, expectedTag) ? $elm$core$Result$Ok(a) : $elm$core$Result$Err('Expected ' + (expectedTag + (' but was ' + tagName)));
28007			});
28008	});
28009var $dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewLabel = F2(
28010	function (options_, label) {
28011		var _v0 = _Utils_Tuple3(label, options_.fC, options_.c2);
28012		if (_v0.a === '') {
28013			return $elm$html$Html$text('');
28014		} else {
28015			if (_v0.b) {
28016				return $elm$html$Html$text('');
28017			} else {
28018				if (_v0.c === 1) {
28019					var _v1 = _v0.c;
28020					return $elm$html$Html$text('');
28021				} else {
28022					return A2(
28023						$elm$html$Html$p,
28024						_List_fromArray(
28025							[
28026								$elm$html$Html$Attributes$class('elm-book elm-book__chapter-component__title elm-book-sans')
28027							]),
28028						_List_fromArray(
28029							[
28030								$elm$html$Html$text(label)
28031							]));
28032				}
28033			}
28034		}
28035	});
28036var $dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewBlock = F2(
28037	function (options_, _v0) {
28038		var label = _v0.a;
28039		var html = _v0.b;
28040		return A2(
28041			$elm$html$Html$article,
28042			_List_fromArray(
28043				[
28044					$elm$html$Html$Attributes$class('elm-book__chapter-component')
28045				]),
28046			_List_fromArray(
28047				[
28048					A2($dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewLabel, options_, label),
28049					A2(
28050					$elm$html$Html$div,
28051					_List_Nil,
28052					_List_fromArray(
28053						[html]))
28054				]));
28055	});
28056var $dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewCard = F2(
28057	function (options_, _v0) {
28058		var label = _v0.a;
28059		var html = _v0.b;
28060		return A2(
28061			$elm$html$Html$article,
28062			_List_fromArray(
28063				[
28064					$elm$html$Html$Attributes$class('elm-book__chapter-component')
28065				]),
28066			_List_fromArray(
28067				[
28068					A2($dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewLabel, options_, label),
28069					A2(
28070					$elm$html$Html$div,
28071					_List_fromArray(
28072						[
28073							$elm$html$Html$Attributes$class('elm-book__chapter-component__background elm-book-shadows-light'),
28074							A2($elm$html$Html$Attributes$style, 'background', options_.bF)
28075						]),
28076					_List_fromArray(
28077						[
28078							A2(
28079							$elm$html$Html$div,
28080							_List_fromArray(
28081								[
28082									$elm$html$Html$Attributes$class('elm-book__chapter-component__content')
28083								]),
28084							_List_fromArray(
28085								[html]))
28086						]))
28087				]));
28088	});
28089var $dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewDisplay = F2(
28090	function (options_, _v0) {
28091		var label = _v0.a;
28092		var html = _v0.b;
28093		var _v1 = options_.c2;
28094		switch (_v1) {
28095			case 1:
28096				return html;
28097			case 0:
28098				return A2(
28099					$dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewBlock,
28100					options_,
28101					_Utils_Tuple2(label, html));
28102			default:
28103				return A2(
28104					$dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewCard,
28105					options_,
28106					_Utils_Tuple2(label, html));
28107		}
28108	});
28109var $dtwrks$elm_book$ElmBook$UI$ChapterComponent$view = F3(
28110	function (chapterTitle, options_, _v0) {
28111		var label = _v0.a;
28112		var html = _v0.b;
28113		return A2(
28114			$elm$html$Html$map,
28115			function (msg) {
28116				var actionContext = (label !== '') ? (chapterTitle + (' / ' + (label + ' / '))) : (chapterTitle + ' / ');
28117				if (msg.$ === 4) {
28118					var label_ = msg.b;
28119					return A2($dtwrks$elm_book$ElmBook$Internal$Msg$LogAction, actionContext, label_);
28120				} else {
28121					return msg;
28122				}
28123			},
28124			A2(
28125				$dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewDisplay,
28126				options_,
28127				_Utils_Tuple2(label, html)));
28128	});
28129var $dillonkearns$elm_markdown$List$Helpers$find = F2(
28130	function (predicate, list) {
28131		find:
28132		while (true) {
28133			if (!list.b) {
28134				return $elm$core$Maybe$Nothing;
28135			} else {
28136				var first = list.a;
28137				var rest = list.b;
28138				if (predicate(first)) {
28139					return $elm$core$Maybe$Just(first);
28140				} else {
28141					var $temp$predicate = predicate,
28142						$temp$list = rest;
28143					predicate = $temp$predicate;
28144					list = $temp$list;
28145					continue find;
28146				}
28147			}
28148		}
28149	});
28150var $dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute = F2(
28151	function (attributeName, _v0) {
28152		var renderer = _v0;
28153		return F3(
28154			function (tagName, attributes, innerBlocks) {
28155				return function () {
28156					var _v1 = A2(
28157						$dillonkearns$elm_markdown$List$Helpers$find,
28158						function (_v2) {
28159							var name = _v2.w;
28160							return _Utils_eq(name, attributeName);
28161						},
28162						attributes);
28163					if (!_v1.$) {
28164						var value = _v1.a.cN;
28165						return $elm$core$Result$map(
28166							$elm$core$Basics$apR(
28167								$elm$core$Maybe$Just(value)));
28168					} else {
28169						return $elm$core$Result$map(
28170							$elm$core$Basics$apR($elm$core$Maybe$Nothing));
28171					}
28172				}()(
28173					A3(renderer, tagName, attributes, innerBlocks));
28174			});
28175	});
28176var $dtwrks$elm_book$ElmBook$UI$Markdown$componentRenderer = F3(
28177	function (chapterTitle, chapterComponents, componentOptions) {
28178		return _Utils_update(
28179			$dtwrks$elm_book$ElmBook$UI$Markdown$defaultRenderer,
28180			{
28181				df: $dillonkearns$elm_markdown$Markdown$Html$oneOf(
28182					_List_fromArray(
28183						[
28184							A2(
28185							$dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute,
28186							'with-full-width',
28187							A2(
28188								$dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute,
28189								'with-display',
28190								A2(
28191									$dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute,
28192									'with-background',
28193									A2(
28194										$dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute,
28195										'with-hidden-label',
28196										A2(
28197											$dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute,
28198											'with-label',
28199											A2(
28200												$dillonkearns$elm_markdown$Markdown$Html$tag,
28201												'component',
28202												F6(
28203													function (labelFilter, hiddenLabel_, background_, display_, fullWidth_, _v0) {
28204														var section_ = function () {
28205															if (!labelFilter.$) {
28206																var label_ = labelFilter.a;
28207																return A2(
28208																	$elm$core$Maybe$map,
28209																	function (v) {
28210																		return _Utils_Tuple2(label_, v);
28211																	},
28212																	A2(
28213																		$elm$core$Dict$get,
28214																		label_,
28215																		$elm$core$Dict$fromList(chapterComponents)));
28216															} else {
28217																return $elm$core$List$head(chapterComponents);
28218															}
28219														}();
28220														var options_ = A2(
28221															$dtwrks$elm_book$ElmBook$Internal$ComponentOptions$markdownOptions,
28222															componentOptions,
28223															{bF: background_, c2: display_, fw: fullWidth_, fC: hiddenLabel_});
28224														return A2(
28225															$elm$core$Maybe$withDefault,
28226															A2(
28227																$elm$html$Html$div,
28228																_List_fromArray(
28229																	[
28230																		$elm$html$Html$Attributes$class('elm-book__component-wrapper')
28231																	]),
28232																_List_fromArray(
28233																	[
28234																		A2(
28235																		$elm$html$Html$div,
28236																		_List_fromArray(
28237																			[
28238																				$elm$html$Html$Attributes$class('elm-book-sans elm-book__component-error')
28239																			]),
28240																		_List_fromArray(
28241																			[
28242																				$elm$html$Html$text(
28243																				'Oops!… \"' + (A2($elm$core$Maybe$withDefault, '', labelFilter) + '\" component not found.'))
28244																			]))
28245																	])),
28246															A2(
28247																$elm$core$Maybe$map,
28248																function (c) {
28249																	return (options_.c2 === 1) ? c : A2(
28250																		$elm$html$Html$div,
28251																		_List_fromArray(
28252																			[
28253																				$elm$html$Html$Attributes$classList(
28254																				_List_fromArray(
28255																					[
28256																						_Utils_Tuple2('elm-book__component-wrapper', true),
28257																						_Utils_Tuple2('full', options_.fw)
28258																					]))
28259																			]),
28260																		_List_fromArray(
28261																			[c]));
28262																},
28263																A2(
28264																	$elm$core$Maybe$map,
28265																	A2($dtwrks$elm_book$ElmBook$UI$ChapterComponent$view, chapterTitle, options_),
28266																	section_)));
28267													}))))))),
28268							A2(
28269							$dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute,
28270							'with-full-width',
28271							A2(
28272								$dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute,
28273								'with-display',
28274								A2(
28275									$dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute,
28276									'with-background',
28277									A2(
28278										$dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute,
28279										'with-hidden-label',
28280										A2(
28281											$dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute,
28282											'with-label',
28283											A2(
28284												$dillonkearns$elm_markdown$Markdown$Html$tag,
28285												'component-list',
28286												F6(
28287													function (labelFilter, hiddenLabel_, background_, display_, fullWidth_, _v2) {
28288														var options_ = A2(
28289															$dtwrks$elm_book$ElmBook$Internal$ComponentOptions$markdownOptions,
28290															componentOptions,
28291															{bF: background_, c2: display_, fw: fullWidth_, fC: hiddenLabel_});
28292														var components = function () {
28293															if (!labelFilter.$) {
28294																var s = labelFilter.a;
28295																return A2(
28296																	$elm$core$List$filter,
28297																	A2(
28298																		$elm$core$Basics$composeR,
28299																		$elm$core$Tuple$first,
28300																		$elm$core$String$startsWith(s)),
28301																	chapterComponents);
28302															} else {
28303																return chapterComponents;
28304															}
28305														}();
28306														return A2(
28307															$elm$html$Html$div,
28308															_List_fromArray(
28309																[
28310																	$elm$html$Html$Attributes$classList(
28311																	_List_fromArray(
28312																		[
28313																			_Utils_Tuple2('elm-book__component-wrapper', true),
28314																			_Utils_Tup
28314le2('full', options_.fw)
28315																		]))
28316																]),
28317															_List_fromArray(
28318																[
28319																	A2(
28320																	$elm$html$Html$ul,
28321																	_List_fromArray(
28322																		[
28323																			$elm$html$Html$Attributes$class('elm-book-md__component-list')
28324																		]),
28325																	A2(
28326																		$elm$core$List$map,
28327																		function (section) {
28328																			return A2(
28329																				$elm$html$Html$li,
28330																				_List_fromArray(
28331																					[
28332																						$elm$html$Html$Attributes$class('elm-book elm-book-md__component-list__item')
28333																					]),
28334																				_List_fromArray(
28335																					[
28336																						A3($dtwrks$elm_book$ElmBook$UI$ChapterComponent$view, chapterTitle, options_, section)
28337																					]));
28338																		},
28339																		components))
28340																]));
28341													})))))))
28342						]))
28343			});
28344	});
28345var $dillonkearns$elm_markdown$Markdown$Parser$problemToString = function (problem) {
28346	switch (problem.$) {
28347		case 0:
28348			var string = problem.a;
28349			return 'Expecting ' + string;
28350		case 1:
28351			return 'Expecting int';
28352		case 2:
28353			return 'Expecting hex';
28354		case 3:
28355			return 'Expecting octal';
28356		case 4:
28357			return 'Expecting binary';
28358		case 5:
28359			return 'Expecting float';
28360		case 6:
28361			return 'Expecting number';
28362		case 7:
28363			return 'Expecting variable';
28364		case 8:
28365			var string = problem.a;
28366			return 'Expecting symbol ' + string;
28367		case 9:
28368			var string = problem.a;
28369			return 'Expecting keyword ' + string;
28370		case 10:
28371			return 'Expecting keyword end';
28372		case 11:
28373			return 'Unexpected char';
28374		case 12:
28375			var problemDescription = problem.a;
28376			return problemDescription;
28377		default:
28378			return 'Bad repeat';
28379	}
28380};
28381var $dillonkearns$elm_markdown$Markdown$Parser$deadEndToString = function (deadEnd) {
28382	return 'Problem at row ' + ($elm$core$String$fromInt(deadEnd.gm) + ('\n' + $dillonkearns$elm_markdown$Markdown$Parser$problemToString(deadEnd.ge)));
28383};
28384var $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine = {$: 10};
28385var $dillonkearns$elm_markdown$Markdown$Block$BlockQuote = function (a) {
28386	return {$: 3, a: a};
28387};
28388var $dillonkearns$elm_markdown$Markdown$RawBlock$BlockQuote = function (a) {
28389	return {$: 11, a: a};
28390};
28391var $dillonkearns$elm_markdown$Markdown$Block$Cdata = function (a) {
28392	return {$: 4, a: a};
28393};
28394var $dillonkearns$elm_markdown$Markdown$Block$CodeBlock = function (a) {
28395	return {$: 7, a: a};
28396};
28397var $dillonkearns$elm_markdown$Markdown$RawBlock$CodeBlock = function (a) {
28398	return {$: 5, a: a};
28399};
28400var $dillonkearns$elm_markdown$Markdown$Block$CodeSpan = function (a) {
28401	return {$: 6, a: a};
28402};
28403var $dillonkearns$elm_markdown$Markdown$Block$CompletedTask = 2;
28404var $dillonkearns$elm_markdown$Markdown$Block$Emphasis = function (a) {
28405	return {$: 3, a: a};
28406};
28407var $dillonkearns$elm_markdown$Markdown$Inline$Emphasis = F2(
28408	function (a, b) {
28409		return {$: 6, a: a, b: b};
28410	});
28411var $dillonkearns$elm_markdown$Markdown$Parser$EmptyBlock = {$: 0};
28412var $dillonkearns$elm_markdown$Markdown$Block$HardLineBreak = {$: 8};
28413var $dillonkearns$elm_markdown$Markdown$Block$Heading = F2(
28414	function (a, b) {
28415		return {$: 4, a: a, b: b};
28416	});
28417var $dillonkearns$elm_markdown$Markdown$RawBlock$Heading = F2(
28418	function (a, b) {
28419		return {$: 0, a: a, b: b};
28420	});
28421var $dillonkearns$elm_markdown$Markdown$RawBlock$Html = function (a) {
28422	return {$: 2, a: a};
28423};
28424var $dillonkearns$elm_markdown$Markdown$Block$HtmlBlock = function (a) {
28425	return {$: 0, a: a};
28426};
28427var $dillonkearns$elm_markdown$Markdown$Block$HtmlComment = function (a) {
28428	return {$: 1, a: a};
28429};
28430var $dillonkearns$elm_markdown$Markdown$Block$HtmlDeclaration = F2(
28431	function (a, b) {
28432		return {$: 3, a: a, b: b};
28433	});
28434var $dillonkearns$elm_markdown$Markdown$Block$HtmlElement = F3(
28435	function (a, b, c) {
28436		return {$: 0, a: a, b: b, c: c};
28437	});
28438var $dillonkearns$elm_markdown$Markdown$Block$HtmlInline = function (a) {
28439	return {$: 0, a: a};
28440};
28441var $dillonkearns$elm_markdown$Markdown$Block$Image = F3(
28442	function (a, b, c) {
28443		return {$: 2, a: a, b: b, c: c};
28444	});
28445var $dillonkearns$elm_markdown$Markdown$Block$IncompleteTask = 1;
28446var $dillonkearns$elm_markdown$Markdown$RawBlock$IndentedCodeBlock = function (a) {
28447	return {$: 6, a: a};
28448};
28449var $dillonkearns$elm_markdown$Markdown$Parser$InlineProblem = function (a) {
28450	return {$: 2, a: a};
28451};
28452var $dillonkearns$elm_markdown$Markdown$Block$Link = F3(
28453	function (a, b, c) {
28454		return {$: 1, a: a, b: b, c: c};
28455	});
28456var $dillonkearns$elm_markdown$Markdown$Block$ListItem = F2(
28457	function (a, b) {
28458		return {$: 0, a: a, b: b};
28459	});
28460var $dillonkearns$elm_markdown$Markdown$Block$NoTask = 0;
28461var $dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph = function (a) {
28462	return {$: 1, a: a};
28463};
28464var $dillonkearns$elm_markdown$Markdown$Block$OrderedList = F3(
28465	function (a, b, c) {
28466		return {$: 2, a: a, b: b, c: c};
28467	});
28468var $dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock = F6(
28469	function (a, b, c, d, e, f) {
28470		return {$: 4, a: a, b: b, c: c, d: d, e: e, f: f};
28471	});
28472var $dillonkearns$elm_markdown$Markdown$Block$Paragraph = function (a) {
28473	return {$: 5, a: a};
28474};
28475var $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock = function (a) {
28476	return {$: 1, a: a};
28477};
28478var $dillonkearns$elm_markdown$Markdown$RawBlock$ParsedBlockQuote = function (a) {
28479	return {$: 12, a: a};
28480};
28481var $dillonkearns$elm_markdown$Markdown$Block$ProcessingInstruction = function (a) {
28482	return {$: 2, a: a};
28483};
28484var $dillonkearns$elm_markdown$Markdown$Block$Strikethrough = function (a) {
28485	return {$: 5, a: a};
28486};
28487var $dillonkearns$elm_markdown$Markdown$Block$Strong = function (a) {
28488	return {$: 4, a: a};
28489};
28490var $dillonkearns$elm_markdown$Markdown$Block$Table = F2(
28491	function (a, b) {
28492		return {$: 6, a: a, b: b};
28493	});
28494var $dillonkearns$elm_markdown$Markdown$RawBlock$Table = function (a) {
28495	return {$: 8, a: a};
28496};
28497var $dillonkearns$elm_markdown$Markdown$Table$Table = F2(
28498	function (a, b) {
28499		return {$: 0, a: a, b: b};
28500	});
28501var $dillonkearns$elm_markdown$Markdown$Table$TableDelimiterRow = F2(
28502	function (a, b) {
28503		return {$: 0, a: a, b: b};
28504	});
28505var $dillonkearns$elm_markdown$Markdown$Block$Text = function (a) {
28506	return {$: 7, a: a};
28507};
28508var $dillonkearns$elm_markdown$Markdown$Block$ThematicBreak = {$: 8};
28509var $dillonkearns$elm_markdown$Markdown$RawBlock$ThematicBreak = {$: 7};
28510var $dillonkearns$elm_markdown$Markdown$Block$UnorderedList = F2(
28511	function (a, b) {
28512		return {$: 1, a: a, b: b};
28513	});
28514var $dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock = F4(
28515	function (a, b, c, d) {
28516		return {$: 3, a: a, b: b, c: c, d: d};
28517	});
28518var $dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines = $elm$core$Basics$identity;
28519var $dillonkearns$elm_markdown$Markdown$Parser$addReference = F2(
28520	function (state, linkRef) {
28521		return {
28522			a: A2($elm$core$List$cons, linkRef, state.a),
28523			b: state.b
28524		};
28525	});
28526var $dillonkearns$elm_markdown$Whitespace$isSpaceOrTab = function (_char) {
28527	switch (_char) {
28528		case ' ':
28529			return true;
28530		case '\t':
28531			return true;
28532		default:
28533			return false;
28534	}
28535};
28536var $dillonkearns$elm_markdown$Parser$Token$carriageReturn = A2(
28537	$elm$parser$Parser$Advanced$Token,
28538	'\u000D',
28539	$elm$parser$Parser$Expecting('a carriage return'));
28540var $dillonkearns$elm_markdown$Parser$Token$newline = A2(
28541	$elm$parser$Parser$Advanced$Token,
28542	'\n',
28543	$elm$parser$Parser$Expecting('a newline'));
28544var $dillonkearns$elm_markdown$Whitespace$lineEnd = $elm$parser$Parser$Advanced$oneOf(
28545	_List_fromArray(
28546		[
28547			$elm$parser$Parser$Advanced$token($dillonkearns$elm_markdown$Parser$Token$newline),
28548			A2(
28549			$elm$parser$Parser$Advanced$ignorer,
28550			$elm$parser$Parser$Advanced$token($dillonkearns$elm_markdown$Parser$Token$carriageReturn),
28551			$elm$parser$Parser$Advanced$oneOf(
28552				_List_fromArray(
28553					[
28554						$elm$parser$Parser$Advanced$token($dillonkearns$elm_markdown$Parser$Token$newline),
28555						$elm$parser$Parser$Advanced$succeed(0)
28556					])))
28557		]));
28558var $dillonkearns$elm_markdown$Markdown$Parser$blankLine = A2(
28559	$elm$parser$Parser$Advanced$map,
28560	function (_v0) {
28561		return $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine;
28562	},
28563	A2(
28564		$elm$parser$Parser$Advanced$ignorer,
28565		$elm$parser$Parser$Advanced$backtrackable(
28566			$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$Whitespace$isSpaceOrTab)),
28567		$dillonkearns$elm_markdown$Whitespace$lineEnd));
28568var $dillonkearns$elm_markdown$Parser$Token$space = A2(
28569	$elm$parser$Parser$Advanced$Token,
28570	' ',
28571	$elm$parser$Parser$Expecting('a space'));
28572var $dillonkearns$elm_markdown$Markdown$Parser$blockQuoteStarts = _List_fromArray(
28573	[
28574		$elm$parser$Parser$Advanced$symbol(
28575		A2(
28576			$elm$parser$Parser$Advanced$Token,
28577			'>',
28578			$elm$parser$Parser$Expecting('>'))),
28579		A2(
28580		$elm$parser$Parser$Advanced$ignorer,
28581		$elm$parser$Parser$Advanced$backtrackable(
28582			$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$space)),
28583		$elm$parser$Parser$Advanced$oneOf(
28584			_List_fromArray(
28585				[
28586					$elm$parser$Parser$Advanced$symbol(
28587					A2(
28588						$elm$parser$Parser$Advanced$Token,
28589						'>',
28590						$elm$parser$Parser$Expecting(' >'))),
28591					$elm$parser$Parser$Advanced$symbol(
28592					A2(
28593						$elm$parser$Parser$Advanced$Token,
28594						' >',
28595						$elm$parser$Parser$Expecting('  >'))),
28596					$elm$parser$Parser$Advanced$symbol(
28597					A2(
28598						$elm$parser$Parser$Advanced$Token,
28599						'  >',
28600						$elm$parser$Parser$Expecting('   >')))
28601				])))
28602	]);
28603var $dillonkearns$elm_markdown$Whitespace$isLineEnd = function (_char) {
28604	switch (_char) {
28605		case '\n':
28606			return true;
28607		case '\u000D':
28608			return true;
28609		default:
28610			return false;
28611	}
28612};
28613var $dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd = $elm$parser$Parser$Advanced$chompWhile(
28614	A2($elm$core$Basics$composeL, $elm$core$Basics$not, $dillonkearns$elm_markdown$Whitespace$isLineEnd));
28615var $dillonkearns$elm_markdown$Helpers$endOfFile = $elm$parser$Parser$Advanced$end(
28616	$elm$parser$Parser$Expecting('the end of the input'));
28617var $dillonkearns$elm_markdown$Helpers$lineEndOrEnd = $elm$parser$Parser$Advanced$oneOf(
28618	_List_fromArray(
28619		[$dillonkearns$elm_markdown$Whitespace$lineEnd, $dillonkearns$elm_markdown$Helpers$endOfFile]));
28620var $dillonkearns$elm_markdown$Markdown$Parser$blockQuote = A2(
28621	$elm$parser$Parser$Advanced$keeper,
28622	A2(
28623		$elm$parser$Parser$Advanced$ignorer,
28624		A2(
28625			$elm$parser$Parser$Advanced$ignorer,
28626			$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$Markdown$RawBlock$BlockQuote),
28627			$elm$parser$Parser$Advanced$oneOf($dillonkearns$elm_markdown$Markdown$Parser$blockQuoteStarts)),
28628		$elm$parser$Parser$Advanced$oneOf(
28629			_List_fromArray(
28630				[
28631					$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$space),
28632					$elm$parser$Parser$Advanced$succeed(0)
28633				]))),
28634	A2(
28635		$elm$parser$Parser$Advanced$ignorer,
28636		$elm$parser$Parser$Advanced$getChompedString($dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd),
28637		$dillonkearns$elm_markdown$Helpers$lineEndOrEnd));
28638var $dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString = function (deadEnds) {
28639	return A2(
28640		$elm$core$String$join,
28641		'\n',
28642		A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Parser$deadEndToString, deadEnds));
28643};
28644var $elm$core$String$endsWith = _String_endsWith;
28645var $dillonkearns$elm_markdown$Markdown$Parser$endWithOpenBlockOrParagraph = function (block) {
28646	endWithOpenBlockOrParagraph:
28647	while (true) {
28648		switch (block.$) {
28649			case 1:
28650				var str = block.a;
28651				return !A2($elm$core$String$endsWith, str, '\n');
28652			case 12:
28653				var blocks = block.a;
28654				if (blocks.b) {
28655					var last = blocks.a;
28656					var $temp$block = last;
28657					block = $temp$block;
28658					continue endWithOpenBlockOrParagraph;
28659				} else {
28660					return false;
28661				}
28662			case 4:
28663				var blockslist = block.e;
28664				if (blockslist.b) {
28665					var blocks = blockslist.a;
28666					if (blocks.b) {
28667						var last = blocks.a;
28668						var $temp$block = last;
28669						block = $temp$block;
28670						continue endWithOpenBlockOrParagraph;
28671					} else {
28672						return false;
28673					}
28674				} else {
28675					return false;
28676				}
28677			case 0:
28678				return true;
28679			default:
28680				return false;
28681		}
28682	}
28683};
28684var $dillonkearns$elm_markdown$HtmlParser$Cdata = function (a) {
28685	return {$: 3, a: a};
28686};
28687var $dillonkearns$elm_markdown$HtmlParser$Element = F3(
28688	function (a, b, c) {
28689		return {$: 0, a: a, b: b, c: c};
28690	});
28691var $dillonkearns$elm_markdown$HtmlParser$Text = function (a) {
28692	return {$: 1, a: a};
28693};
28694var $dillonkearns$elm_markdown$HtmlParser$expectTagNameCharacter = $elm$parser$Parser$Expecting('at least 1 tag name character');
28695var $dillonkearns$elm_markdown$HtmlParser$tagNameCharacter = function (c) {
28696	switch (c) {
28697		case ' ':
28698			return false;
28699		case '\u000D':
28700			return false;
28701		case '\n':
28702			return false;
28703		case '\t':
28704			return false;
28705		case '/':
28706			return false;
28707		case '<':
28708			return false;
28709		case '>':
28710			return false;
28711		case '\"':
28712			return false;
28713		case '\'':
28714			return false;
28715		case '=':
28716			return false;
28717		default:
28718			return true;
28719	}
28720};
28721var $dillonkearns$elm_markdown$HtmlParser$tagName = A2(
28722	$elm$parser$Parser$Advanced$mapChompedString,
28723	F2(
28724		function (name, _v0) {
28725			return $elm$core$String$toLower(name);
28726		}),
28727	A2(
28728		$elm$parser$Parser$Advanced$ignorer,
28729		A2($elm$parser$Parser$Advanced$chompIf, $dillonkearns$elm_markdown$HtmlParser$tagNameCharacter, $dillonkearns$elm_markdown$HtmlParser$expectTagNameCharacter),
28730		$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$HtmlParser$tagNameCharacter)));
28731var $dillonkearns$elm_markdown$HtmlParser$attributeName = $dillonkearns$elm_markdown$HtmlParser$tagName;
28732var $dillonkearns$elm_markdown$HtmlParser$symbol = function (str) {
28733	return $elm$parser$Parser$Advanced$token(
28734		A2(
28735			$elm$parser$Parser$Advanced$Token,
28736			str,
28737			$elm$parser$Parser$ExpectingSymbol(str)));
28738};
28739var $dillonkearns$elm_markdown$HtmlParser$entities = $elm$core$Dict$fromList(
28740	_List_fromArray(
28741		[
28742			_Utils_Tuple2('amp', '&'),
28743			_Utils_Tuple2('lt', '<'),
28744			_Utils_Tuple2('gt', '>'),
28745			_Utils_Tuple2('apos', '\''),
28746			_Utils_Tuple2('quot', '\"')
28747		]));
28748var $elm$core$Char$fromCode = _Char_fromCode;
28749var $elm$core$Result$fromMaybe = F2(
28750	function (err, maybe) {
28751		if (!maybe.$) {
28752			var v = maybe.a;
28753			return $elm$core$Result$Ok(v);
28754		} else {
28755			return $elm$core$Result$Err(err);
28756		}
28757	});
28758var $rtfeldman$elm_hex$Hex$fromStringHelp = F3(
28759	function (position, chars, accumulated) {
28760		fromStringHelp:
28761		while (true) {
28762			if (!chars.b) {
28763				return $elm$core$Result$Ok(accumulated);
28764			} else {
28765				var _char = chars.a;
28766				var rest = chars.b;
28767				switch (_char) {
28768					case '0':
28769						var $temp$position = position - 1,
28770							$temp$chars = rest,
28771							$temp$accumulated = accumulated;
28772						position = $temp$position;
28773						chars = $temp$chars;
28774						accumulated = $temp$accumulated;
28775						continue fromStringHelp;
28776					case '1':
28777						var $temp$position = position - 1,
28778							$temp$chars = rest,
28779							$temp$accumulated = accumulated + A2($elm$core$Basics$pow, 16, position);
28780						position = $temp$position;
28781						chars = $temp$chars;
28782						accumulated = $temp$accumulated;
28783						continue fromStringHelp;
28784					case '2':
28785						var $temp$position = position - 1,
28786							$temp$chars = rest,
28787							$temp$accumulated = accumulated + (2 * A2($elm$core$Basics$pow, 16, position));
28788						position = $temp$position;
28789						chars = $temp$chars;
28790						accumulated = $temp$accumulated;
28791						continue fromStringHelp;
28792					case '3':
28793						var $temp$position = position - 1,
28794							$temp$chars = rest,
28795							$temp$accumulated = accumulated + (3 * A2($elm$core$Basics$pow, 16, position));
28796						position = $temp$position;
28797						chars = $temp$chars;
28798						accumulated = $temp$accumulated;
28799						continue fromStringHelp;
28800					case '4':
28801						var $temp$position = position - 1,
28802							$temp$chars = rest,
28803							$temp$accumulated = accumulated + (4 * A2($elm$core$Basics$pow, 16, position));
28804						position = $temp$position;
28805						chars = $temp$chars;
28806						accumulated = $temp$accumulated;
28807						continue fromStringHelp;
28808					case '5':
28809						var $temp$position = position - 1,
28810							$temp$chars = rest,
28811							$temp$accumulated = accumulated + (5 * A2($elm$core$Basics$pow, 16, position));
28812						position = $temp$position;
28813						chars = $temp$chars;
28814						accumulated = $temp$accumulated;
28815						continue fromStringHelp;
28816					case '6':
28817						var $temp$position = position - 1,
28818							$temp$chars = rest,
28819							$temp$accumulated = accumulated + (6 * A2($elm$core$Basics$pow, 16, position));
28820						position = $temp$position;
28821						chars = $temp$chars;
28822						accumulated = $temp$accumulated;
28823						continue fromStringHelp;
28824					case '7':
28825						var $temp$position = position - 1,
28826							$temp$chars = rest,
28827							$temp$accumulated = accumulated + (7 * A2($elm$core$Basics$pow, 16, position));
28828						position = $temp$position;
28829						chars = $temp$chars;
28830						accumulated = $temp$accumulated;
28831						continue fromStringHelp;
28832					case '8':
28833						var $temp$position = position - 1,
28834							$temp$chars = rest,
28835							$temp$accumulated = accumulated + (8 * A2($elm$core$Basics$pow, 16, position));
28836						position = $temp$position;
28837						chars = $temp$chars;
28838						accumulated = $temp$accumulated;
28839						continue fromStringHelp;
28840					case '9':
28841						var $temp$position = position - 1,
28842							$temp$chars = rest,
28843							$temp$accumulated = accumulated + (9 * A2($elm$core$Basics$pow, 16, position));
28844						position = $temp$position;
28845						chars = $temp$chars;
28846						accumulated = $temp$accumulated;
28847						continue fromStringHelp;
28848					case 'a':
28849						var $temp$position = position - 1,
28850							$temp$chars = rest,
28851							$temp$accumulated = accumulated + (10 * A2($elm$core$Basics$pow, 16, position));
28852						position = $temp$position;
28853						chars = $temp$chars;
28854						accumulated = $temp$accumulated;
28855						continue fromStringHelp;
28856					case 'b':
28857						var $temp$position = position - 1,
28858							$temp$chars = rest,
28859							$temp$accumulated = accumulated + (11 * A2($elm$core$Basics$pow, 16, position));
28860						position = $temp$position;
28861						chars = $temp$chars;
28862						accumulated = $temp$accumulated;
28863						continue fromStringHelp;
28864					case 'c':
28865						var $temp$position = position - 1,
28866							$temp$chars = rest,
28867							$temp$accumulated = accumulated + (12 * A2($elm$core$Basics$pow, 16, position));
28868						position = $temp$position;
28869						chars = $temp$chars;
28870						accumulated = $temp$accumulated;
28871						continue fromStringHelp;
28872					case 'd':
28873						var $temp$position = position - 1,
28874							$temp$chars = rest,
28875							$temp$accumulated = accumulated + (13 * A2($elm$core$Basics$pow, 16, position));
28876						position = $temp$position;
28877						chars = $temp$chars;
28878						accumulated = $temp$accumulated;
28879						continue fromStringHelp;
28880					case 'e':
28881						var $temp$position = position - 1,
28882							$temp$chars = rest,
28883							$temp$accumulated = accumulated + (14 * A2($elm$core$Basics$pow, 16, position));
28884						position = $temp$position;
28885						chars = $temp$chars;
28886						accumulated = $temp$accumulated;
28887						continue fromStringHelp;
28888					case 'f':
28889						var $temp$position = position - 1,
28890							$temp$chars = rest,
28891							$temp$accumulated = accumulated + (15 * A2($elm$core$Basics$pow, 16, position));
28892						position = $temp$position;
28893						chars = $temp$chars;
28894						accumulated = $temp$accumulated;
28895						continue fromStringHelp;
28896					default:
28897						var nonHex = _char;
28898						return $elm$core$Result$Err(
28899							$elm$core$String$fromChar(nonHex) + ' is not a valid hexadecimal character.');
28900				}
28901			}
28902		}
28903	});
28904var $elm$core$List$tail = function (list) {
28905	if (list.b) {
28906		var x = list.a;
28907		var xs = list.b;
28908		return $elm$core$Maybe$Just(xs);
28909	} else {
28910		return $elm$core$Maybe$Nothing;
28911	}
28912};
28913var $rtfeldman$elm_hex$Hex$fromString = function (str) {
28914	if ($elm$core$String$isEmpty(str)) {
28915		return $elm$core$Result$Err('Empty strings are not valid hexadecimal strings.');
28916	} else {
28917		var result = function () {
28918			if (A2($elm$core$String$startsWith, '-', str)) {
28919				var list = A2(
28920					$elm$core$Maybe$withDefault,
28921					_List_Nil,
28922					$elm$core$List$tail(
28923						$elm$core$String$toList(str)));
28924				return A2(
28925					$elm$core$Result$map,
28926					$elm$core$Basics$negate,
28927					A3(
28928						$rtfeldman$elm_hex$Hex$fromStringHelp,
28929						$elm$core$List$length(list) - 1,
28930						list,
28931						0));
28932			} else {
28933				return A3(
28934					$rtfeldman$elm_hex$Hex$fromStringHelp,
28935					$elm$core$String$length(str) - 1,
28936					$elm$core$String$toList(str),
28937					0);
28938			}
28939		}();
28940		var formatError = function (err) {
28941			return A2(
28942				$elm$core$String$join,
28943				' ',
28944				_List_fromArray(
28945					['\"' + (str + '\"'), 'is not a valid hexadecimal string because', err]));
28946		};
28947		return A2($elm$core$Result$mapError, formatError, result);
28948	}
28949};
28950var $dillonkearns$elm_markdown$HtmlParser$decodeEscape = function (s) {
28951	return A2($elm$core$String$startsWith, '#x', s) ? A2(
28952		$elm$core$Result$mapError,
28953		$elm$parser$Parser$Problem,
28954		A2(
28955			$elm$core$Result$map,
28956			$elm$core$Char$fromCode,
28957			$rtfeldman$elm_hex$Hex$fromString(
28958				A2($elm$core$String$dropLeft, 2, s)))) : (A2($elm$core$String$startsWith, '#', s) ? A2(
28959		$elm$core$Result$fromMaybe,
28960		$elm$parser$Parser$Problem('Invalid escaped character: ' + s),
28961		A2(
28962			$elm$core$Maybe$map,
28963			$elm$core$Char$fromCode,
28964			$elm$core$String$toInt(
28965				A2($elm$core$String$dropLeft, 1, s)))) : A2(
28966		$elm$core$Result$fromMaybe,
28967		$elm$parser$Parser$Problem('No entity named \"&' + (s + ';\" found.')),
28968		A2($elm$core$Dict$get, s, $dillonkearns$elm_markdown$HtmlParser$entities)));
28969};
28970var $dillonkearns$elm_markdown$HtmlParser$escapedChar = function (end_) {
28971	var process = function (entityStr) {
28972		var _v0 = $dillonkearns$elm_markdown$HtmlParser$decodeEscape(entityStr);
28973		if (!_v0.$) {
28974			var c = _v0.a;
28975			return $elm$parser$Parser$Advanced$succeed(c);
28976		} else {
28977			var e = _v0.a;
28978			return $elm$parser$Parser$Advanced$problem(e);
28979		}
28980	};
28981	var isEntityChar = function (c) {
28982		return (!_Utils_eq(c, end_)) && (c !== ';');
28983	};
28984	return A2(
28985		$elm$parser$Parser$Advanced$keeper,
28986		A2(
28987			$elm$parser$Parser$Advanced$ignorer,
28988			$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
28989			$dillonkearns$elm_markdown$HtmlParser$symbol('&')),
28990		A2(
28991			$elm$parser$Parser$Advanced$ignorer,
28992			A2(
28993				$elm$parser$Parser$Advanced$andThen,
28994				process,
28995				$elm$parser$Parser$Advanced$getChompedString(
28996					A2(
28997						$elm$parser$Parser$Advanced$ignorer,
28998						A2(
28999							$elm$parser$Parser$Advanced$chompIf,
29000							isEntityChar,
29001							$elm$parser$Parser$Expecting('an entity character')),
29002						$elm$parser$Parser$Advanced$chompWhile(isEntityChar)))),
29003			$dillonkearns$elm_markdown$HtmlParser$symbol(';')));
29004};
29005var $dillonkearns$elm_markdown$HtmlParser$textStringStep = F3(
29006	function (closingChar, predicate, accum) {
29007		return A2(
29008			$elm$parser$Parser$Advanced$andThen,
29009			function (soFar) {
29010				return $elm$parser$Parser$Advanced$oneOf(
29011					_List_fromArray(
29012						[
29013							A2(
29014							$elm$parser$Parser$Advanced$map,
29015							function (escaped) {
29016								return $elm$parser$Parser$Advanced$Loop(
29017									_Utils_ap(
29018										accum,
29019										_Utils_ap(
29020											soFar,
29021											$elm$core$String$fromChar(escaped))));
29022							},
29023							$dillonkearns$elm_markdown$HtmlParser$escapedChar(closingChar)),
29024							$elm$parser$Parser$Advanced$succeed(
29025							$elm$parser$Parser$Advanced$Done(
29026								_Utils_ap(accum, soFar)))
29027						]));
29028			},
29029			$elm$parser$Parser$Advanced$getChompedString(
29030				$elm$parser$Parser$Advanced$chompWhile(predicate)));
29031	});
29032var $dillonkearns$elm_markdown$HtmlParser$textString = function (closingChar) {
29033	var predicate = function (c) {
29034		return (!_Utils_eq(c, closingChar)) && (c !== '&');
29035	};
29036	return A2(
29037		$elm$parser$Parser$Advanced$loop,
29038		'',
29039		A2($dillonkearns$elm_markdown$HtmlParser$textStringStep, closingChar, predicate));
29040};
29041var $dillonkearns$elm_markdown$HtmlParser$attributeValue = $elm$parser$Parser$Advanced$oneOf(
29042	_List_fromArray(
29043		[
29044			A2(
29045			$elm$parser$Parser$Advanced$keeper,
29046			A2(
29047				$elm$parser$Parser$Advanced$ignorer,
29048				$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
29049				$dillonkearns$elm_markdown$HtmlParser$symbol('\"')),
29050			A2(
29051				$elm$parser$Parser$Advanced$ignorer,
29052				$dillonkearns$elm_markdown$HtmlParser$textString('\"'),
29053				$dillonkearns$elm_markdown$HtmlParser$symbol('\"'))),
29054			A2(
29055			$elm$parser$Parser$Advanced$keeper,
29056			A2(
29057				$elm$parser$Parser$Advanced$ignorer,
29058				$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
29059				$dillonkearns$elm_markdown$HtmlParser$symbol('\'')),
29060			A2(
29061				$elm$parser$Parser$Advanced$ignorer,
29062				$dillonkearns$elm_markdown$HtmlParser$textString('\''),
29063				$dillonkearns$elm_markdown$HtmlParser$symbol('\'')))
29064		]));
29065var $dillonkearns$elm_markdown$HtmlParser$keepOldest = F2(
29066	function (_new, mValue) {
29067		if (!mValue.$) {
29068			var v = mValue.a;
29069			return $elm$core$Maybe$Just(v);
29070		} else {
29071			return $elm$core$Maybe$Just(_new);
29072		}
29073	});
29074var $dillonkearns$elm_markdown$HtmlParser$isWhitespace = function (c) {
29075	switch (c) {
29076		case ' ':
29077			return true;
29078		case '\u000D':
29079			return true;
29080		case '\n':
29081			return true;
29082		case '\t':
29083			return true;
29084		default:
29085			return false;
29086	}
29087};
29088var $dillonkearns$elm_markdown$HtmlParser$whiteSpace = $elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$HtmlParser$isWhitespace);
29089var $dillonkearns$elm_markdown$HtmlParser$attributesStep = function (attrs) {
29090	var process = F2(
29091		function (name, value) {
29092			return $elm$parser$Parser$Advanced$Loop(
29093				A3(
29094					$elm$core$Dict$update,
29095					$elm$core$String$toLower(name),
29096					$dillonkearns$elm_markdown$HtmlParser$keepOldest(value),
29097					attrs));
29098		});
29099	return $elm$parser$Parser$Advanced$oneOf(
29100		_List_fromArray(
29101			[
29102				A2(
29103				$elm$parser$Parser$Advanced$keeper,
29104				A2(
29105					$elm$parser$Parser$Advanced$keeper,
29106					$elm$parser$Parser$Advanced$succeed(process),
29107					A2(
29108						$elm$parser$Parser$Advanced$ignorer,
29109						A2(
29110							$elm$parser$Parser$Advanced$ignorer,
29111							A2($elm$parser$Parser$Advanced$ignorer, $dillonkearns$elm_markdown$HtmlParser$attributeName, $dillonkearns$elm_markdown$HtmlParser$whiteSpace),
29112							$dillonkearns$elm_markdown$HtmlParser$symbol('=')),
29113						$dillonkearns$elm_markdown$HtmlParser$whiteSpace)),
29114				A2($elm$parser$Parser$Advanced$ignorer, $dillonkearns$elm_markdown$HtmlParser$attributeValue, $dillonkearns$elm_markdown$HtmlParser$whiteSpace)),
29115				$elm$parser$Parser$Advanced$succeed(
29116				$elm$parser$Parser$Advanced$Done(attrs))
29117			]));
29118};
29119var $dillonkearns$elm_markdown$HtmlParser$attributes = A2(
29120	$elm$parser$Parser$Advanced$map,
29121	A2(
29122		$elm$core$Dict$foldl,
29123		F3(
29124			function (key, value, accum) {
29125				return A2(
29126					$elm$core$List$cons,
29127					{w: key, cN: value},
29128					accum);
29129			}),
29130		_List_Nil),
29131	A2($elm$parser$Parser$Advanced$loop, $elm$core$Dict$empty, $dillonkearns$elm_markdown$HtmlParser$attributesStep));
29132var $elm$parser$Parser$Advanced$chompUntilEndOr = function (str) {
29133	return function (s) {
29134		var _v0 = A5(_Parser_findSubString, str, s.cf, s.gm, s.d5, s.dE);
29135		var newOffset = _v0.a;
29136		var newRow = _v0.b;
29137		var newCol = _v0.c;
29138		var adjustedOffset = (newOffset < 0) ? $elm$core$String$length(s.dE) : newOffset;
29139		return A3(
29140			$elm$parser$Parser$Advanced$Good,
29141			_Utils_cmp(s.cf, adjustedOffset) < 0,
29142			0,
29143			{d5: newCol, f: s.f, h: s.h, cf: adjustedOffset, gm: newRow, dE: s.dE});
29144	};
29145};
29146var $dillonkearns$elm_markdown$HtmlParser$cdata = A2(
29147	$elm$parser$Parser$Advanced$keeper,
29148	A2(
29149		$elm$parser$Parser$Advanced$ignorer,
29150		$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
29151		$dillonkearns$elm_markdown$HtmlParser$symbol('<![CDATA[')),
29152	A2(
29153		$elm$parser$Parser$Advanced$ignorer,
29154		$elm$parser$Parser$Advanced$getChompedString(
29155			$elm$parser$Parser$Advanced$chompUntilEndOr(']]>')),
29156		$dillonkearns$elm_markdown$HtmlParser$symbol(']]>')));
29157var $dillonkearns$elm_markdown$HtmlParser$childrenStep = F2(
29158	function (options, accum) {
29159		return A2(
29160			$elm$parser$Parser$Advanced$map,
29161			function (f) {
29162				return f(accum);
29163			},
29164			$elm$parser$Parser$Advanced$oneOf(options));
29165	});
29166var $dillonkearns$elm_markdown$HtmlParser$fail = function (str) {
29167	return $elm$parser$Parser$Advanced$problem(
29168		$elm$parser$Parser$Problem(str));
29169};
29170var $dillonkearns$elm_markdown$HtmlParser$closingTag = function (startTagName) {
29171	var closingTagName = A2(
29172		$elm$parser$Parser$Advanced$andThen,
29173		function (endTagName) {
29174			return _Utils_eq(startTagName, endTagName) ? $elm$parser$Parser$Advanced$succeed(0) : $dillonkearns$elm_markdown$HtmlParser$fail('tag name mismatch: ' + (startTagName + (' and ' + endTagName)));
29175		},
29176		$dillonkearns$elm_markdown$HtmlParser$tagName);
29177	return A2(
29178		$elm$parser$Parser$Advanced$ignorer,
29179		A2(
29180			$elm$parser$Parser$Advanced$ignorer,
29181			A2(
29182				$elm$parser$Parser$Advanced$ignorer,
29183				A2(
29184					$elm$parser$Parser$Advanced$ignorer,
29185					$dillonkearns$elm_markdown$HtmlParser$symbol('</'),
29186					$dillonkearns$elm_markdown$HtmlParser$whiteSpace),
29187				closingTagName),
29188			$dillonkearns$elm_markdown$HtmlParser$whiteSpace),
29189		$dillonkearns$elm_markdown$HtmlParser$symbol('>'));
29190};
29191var $dillonkearns$elm_markdown$HtmlParser$Comment = function (a) {
29192	return {$: 2, a: a};
29193};
29194var $dillonkearns$elm_markdown$HtmlParser$toToken = function (str) {
29195	return A2(
29196		$elm$parser$Parser$Advanced$Token,
29197		str,
29198		$elm$parser$Parser$Expecting(str));
29199};
29200var $dillonkearns$elm_markdown$HtmlParser$comment = A2(
29201	$elm$parser$Parser$Advanced$keeper,
29202	A2(
29203		$elm$parser$Parser$Advanced$ignorer,
29204		$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$HtmlParser$Comment),
29205		$elm$parser$Parser$Advanced$token(
29206			$dillonkearns$elm_markdown$HtmlParser$toToken('<!--'))),
29207	A2(
29208		$elm$parser$Parser$Advanced$ignorer,
29209		$elm$parser$Parser$Advanced$getChompedString(
29210			$elm$parser$Parser$Advanced$chompUntilEndOr('-->')),
29211		$elm$parser$Parser$Advanced$token(
29212			$dillonkearns$elm_markdown$HtmlParser$toToken('-->'))));
29213var $dillonkearns$elm_markdown$HtmlParser$Declaration = F2(
29214	function (a, b) {
29215		return {$: 5, a: a, b: b};
29216	});
29217var $dillonkearns$elm_markdown$HtmlParser$expectUppercaseCharacter = $elm$parser$Parser$Expecting('at least 1 uppercase character');
29218var $dillonkearns$elm_markdown$HtmlParser$allUppercase = $elm$parser$Parser$Advanced$getChompedString(
29219	A2(
29220		$elm$parser$Parser$Advanced$ignorer,
29221		A2($elm$parser$Parser$Advanced$chompIf, $elm$core$Char$isUpper, $dillonkearns$elm_markdown$HtmlParser$expectUppercaseCharacter),
29222		$elm$parser$Parser$Advanced$chompWhile($elm$core$Char$isUpper)));
29223var $dillonkearns$elm_markdown$HtmlParser$oneOrMoreWhiteSpace = A2(
29224	$elm$parser$Parser$Advanced$ignorer,
29225	A2(
29226		$elm$parser$Parser$Advanced$chompIf,
29227		$dillonkearns$elm_markdown$HtmlParser$isWhitespace,
29228		$elm$parser$Parser$Expecting('at least one whitespace')),
29229	$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$HtmlParser$isWhitespace));
29230var $dillonkearns$elm_markdown$HtmlParser$docType = A2(
29231	$elm$parser$Parser$Advanced$keeper,
29232	A2(
29233		$elm$parser$Parser$Advanced$keeper,
29234		A2(
29235			$elm$parser$Parser$Advanced$ignorer,
29236			$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$HtmlParser$Declaration),
29237			$dillonkearns$elm_markdown$HtmlParser$symbol('<!')),
29238		A2($elm$parser$Parser$Advanced$ignorer, $dillonkearns$elm_markdown$HtmlParser$allUppercase, $dillonkearns$elm_markdown$HtmlParser$oneOrMoreWhiteSpace)),
29239	A2(
29240		$elm$parser$Parser$Advanced$ignorer,
29241		$elm$parser$Parser$Advanced$getChompedString(
29242			$elm$parser$Parser$Advanced$chompUntilEndOr('>')),
29243		$dillonkearns$elm_markdown$HtmlParser$symbol('>')));
29244var $dillonkearns$elm_markdown$HtmlParser$ProcessingInstruction = function (a) {
29245	return {$: 4, a: a};
29246};
29247var $dillonkearns$elm_markdown$HtmlParser$processingInstruction = A2(
29248	$elm$parser$Parser$Advanced$keeper,
29249	A2(
29250		$elm$parser$Parser$Advanced$ignorer,
29251		$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$HtmlParser$ProcessingInstruction),
29252		$dillonkearns$elm_markdown$HtmlParser$symbol('<?')),
29253	A2(
29254		$elm$parser$Parser$Advanced$ignorer,
29255		$elm$parser$Parser$Advanced$getChompedString(
29256			$elm$parser$Parser$Advanced$chompUntilEndOr('?>')),
29257		$dillonkearns$elm_markdown$HtmlParser$symbol('?>')));
29258var $dillonkearns$elm_markdown$HtmlParser$isNotTextNodeIgnoreChar = function (c) {
29259	switch (c) {
29260		case '<':
29261			return false;
29262		case '&':
29263			return false;
29264		default:
29265			return true;
29266	}
29267};
29268var $dillonkearns$elm_markdown$HtmlParser$textNodeStringStepOptions = _List_fromArray(
29269	[
29270		A2(
29271		$elm$parser$Parser$Advanced$map,
29272		function (_v0) {
29273			return $elm$parser$Parser$Advanced$Loop(0);
29274		},
29275		A2(
29276			$elm$parser$Parser$Advanced$ignorer,
29277			A2(
29278				$elm$parser$Parser$Advanced$chompIf,
29279				$dillonkearns$elm_markdown$HtmlParser$isNotTextNodeIgnoreChar,
29280				$elm$parser$Parser$Expecting('is not & or <')),
29281			$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$HtmlParser$isNotTextNodeIgnoreChar))),
29282		A2(
29283		$elm$parser$Parser$Advanced$map,
29284		function (_v1) {
29285			return $elm$parser$Parser$Advanced$Loop(0);
29286		},
29287		$dillonkearns$elm_markdown$HtmlParser$escapedChar('<')),
29288		$elm$parser$Parser$Advanced$succeed(
29289		$elm$parser$Parser$Advanced$Done(0))
29290	]);
29291var $dillonkearns$elm_markdown$HtmlParser$textNodeStringStep = function (_v0) {
29292	return $elm$parser$Parser$Advanced$oneOf($dillonkearns$elm_markdown$HtmlParser$textNodeStringStepOptions);
29293};
29294var $dillonkearns$elm_markdown$HtmlParser$textNodeString = $elm$parser$Parser$Advanced$getChompedString(
29295	A2($elm$parser$Parser$Advanced$loop, 0, $dillonkearns$elm_markdown$HtmlParser$textNodeStringStep));
29296var $dillonkearns$elm_markdown$HtmlParser$children = function (startTagName) {
29297	return A2(
29298		$elm$parser$Parser$Advanced$loop,
29299		_List_Nil,
29300		$dillonkearns$elm_markdown$HtmlParser$childrenStep(
29301			$dillonkearns$elm_markdown$HtmlParser$childrenStepOptions(startTagName)));
29302};
29303var $dillonkearns$elm_markdown$HtmlParser$childrenStepOptions = function (startTagName) {
29304	return _List_fromArray(
29305		[
29306			A2(
29307			$elm$parser$Parser$Advanced$map,
29308			F2(
29309				function (_v1, accum) {
29310					return $elm$parser$Parser$Advanced$Done(
29311						$elm$core$List$reverse(accum));
29312				}),
29313			$dillonkearns$elm_markdown$HtmlParser$closingTag(startTagName)),
29314			A2(
29315			$elm$parser$Parser$Advanced$andThen,
29316			function (text) {
29317				return $elm$core$String$isEmpty(text) ? A2(
29318					$elm$parser$Parser$Advanced$map,
29319					F2(
29320						function (_v2, accum) {
29321							return $elm$parser$Parser$Advanced$Done(
29322								$elm$core$List$reverse(accum));
29323						}),
29324					$dillonkearns$elm_markdown$HtmlParser$closingTag(startTagName)) : $elm$parser$Parser$Advanced$succeed(
29325					function (accum) {
29326						return $elm$parser$Parser$Advanced$Loop(
29327							A2(
29328								$elm$core$List$cons,
29329								$dillonkearns$elm_markdown$HtmlParser$Text(text),
29330								accum));
29331					});
29332			},
29333			$dillonkearns$elm_markdown$HtmlParser$textNodeString),
29334			A2(
29335			$elm$parser$Parser$Advanced$map,
29336			F2(
29337				function (_new, accum) {
29338					return $elm$parser$Parser$Advanced$Loop(
29339						A2($elm$core$List$cons, _new, accum));
29340				}),
29341			$dillonkearns$elm_markdown$HtmlParser$cyclic$html())
29342		]);
29343};
29344var $dillonkearns$elm_markdown$HtmlParser$elementContinuation = function (startTagName) {
29345	return A2(
29346		$elm$parser$Parser$Advanced$keeper,
29347		A2(
29348			$elm$parser$Parser$Advanced$keeper,
29349			A2(
29350				$elm$parser$Parser$Advanced$ignorer,
29351				$elm$parser$Parser$Advanced$succeed(
29352					$dillonkearns$elm_markdown$HtmlParser$Element(startTagName)),
29353				$dillonkearns$elm_markdown$HtmlParser$whiteSpace),
29354			A2($elm$parser$Parser$Advanced$ignorer, $dillonkearns$elm_markdown$HtmlParser$attributes, $dillonkearns$elm_markdown$HtmlParser$whiteSpace)),
29355		$elm$parser$Parser$Advanced$oneOf(
29356			_List_fromArray(
29357				[
29358					A2(
29359					$elm$parser$Parser$Advanced$map,
29360					function (_v0) {
29361						return _List_Nil;
29362					},
29363					$dillonkearns$elm_markdown$HtmlParser$symbol('/>')),
29364					A2(
29365					$elm$parser$Parser$Advanced$keeper,
29366					A2(
29367						$elm$parser$Parser$Advanced$ignorer,
29368						$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
29369						$dillonkearns$elm_markdown$HtmlParser$symbol('>')),
29370					$dillonkearns$elm_markdown$HtmlParser$children(startTagName))
29371				])));
29372};
29373function $dillonkearns$elm_markdown$HtmlParser$cyclic$html() {
29374	return $elm$parser$Parser$Advanced$oneOf(
29375		_List_fromArray(
29376			[
29377				A2($elm$parser$Parser$Advanced$map, $dillonkearns$elm_markdown$HtmlParser$Cdata, $dillonkearns$elm_markdown$HtmlParser$cdata),
29378				$dillonkearns$elm_markdown$HtmlParser$processingInstruction,
29379				$dillonkearns$elm_markdown$HtmlParser$comment,
29380				$dillonkearns$elm_markdown$HtmlParser$docType,
29381				$dillonkearns$elm_markdown$HtmlParser$cyclic$element()
29382			]));
29383}
29384function $dillonkearns$elm_markdown$HtmlParser$cyclic$element() {
29385	return A2(
29386		$elm$parser$Parser$Advanced$keeper,
29387		A2(
29388			$elm$parser$Parser$Advanced$ignorer,
29389			$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
29390			$dillonkearns$elm_markdown$HtmlParser$symbol('<')),
29391		A2($elm$parser$Parser$Advanced$andThen, $dillonkearns$elm_markdown$HtmlParser$elementContinuation, $dillonkearns$elm_markdown$HtmlParser$tagName));
29392}
29393var $dillonkearns$elm_markdown$HtmlParser$html = $dillonkearns$elm_markdown$HtmlParser$cyclic$html();
29394$dillonkearns$elm_markdown$HtmlParser$cyclic$html = function () {
29395	return $dillonkearns$elm_markdown$HtmlParser$html;
29396};
29397var $dillonkearns$elm_markdown$HtmlParser$element = $dillonkearns$elm_markdown$HtmlParser$cyclic$element();
29398$dillonkearns$elm_markdown$HtmlParser$cyclic$element = function () {
29399	return $dillonkearns$elm_markdown$HtmlParser$element;
29400};
29401var $dillonkearns$elm_markdown$Parser$Token$tab = A2(
29402	$elm$parser$Parser$Advanced$Token,
29403	'\t',
29404	$elm$parser$Parser$Expecting('a tab'));
29405var $dillonkearns$elm_markdown$Markdown$Parser$exactlyFourSpaces = $elm$parser$Parser$Advanced$oneOf(
29406	_List_fromArray(
29407		[
29408			$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$tab),
29409			A2(
29410			$elm$parser$Parser$Advanced$ignorer,
29411			$elm$parser$Parser$Advanced$backtrackable(
29412				$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$space)),
29413			$elm$parser$Parser$Advanced$oneOf(
29414				_List_fromArray(
29415					[
29416						$elm$parser$Parser$Advanced$symbol(
29417						A2(
29418							$elm$parser$Parser$Advanced$Token,
29419							'   ',
29420							$elm$parser$Parser$ExpectingSymbol('Indentation'))),
29421						$elm$parser$Parser$Advanced$symbol(
29422						A2(
29423							$elm$parser$Parser$Advanced$Token,
29424							' \t',
29425							$elm$parser$Parser$ExpectingSymbol('Indentation'))),
29426						$elm$parser$Parser$Advanced$symbol(
29427						A2(
29428							$elm$parser$Parser$Advanced$Token,
29429							'  \t',
29430							$elm$parser$Parser$ExpectingSymbol('Indentation')))
29431					])))
29432		]));
29433var $dillonkearns$elm_markdown$Markdown$Parser$indentedCodeBlock = A2(
29434	$elm$parser$Parser$Advanced$keeper,
29435	A2(
29436		$elm$parser$Parser$Advanced$ignorer,
29437		$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$Markdown$RawBlock$IndentedCodeBlock),
29438		$dillonkearns$elm_markdown$Markdown$Parser$exactlyFourSpaces),
29439	A2(
29440		$elm$parser$Parser$Advanced$ignorer,
29441		$elm$parser$Parser$Advanced$getChompedString($dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd),
29442		$dillonkearns$elm_markdown$Helpers$lineEndOrEnd));
29443var $dillonkearns$elm_markdown$Markdown$Helpers$isEven = function (_int) {
29444	return !A2($elm$core$Basics$modBy, 2, _int);
29445};
29446var $dillonkearns$elm_markdown$Markdown$Block$Loose = 0;
29447var $dillonkearns$elm_markdown$Markdown$Block$Tight = 1;
29448var $dillonkearns$elm_markdown$Markdown$Parser$isTightBoolToListDisplay = function (isTight) {
29449	return isTight ? 1 : 0;
29450};
29451var $dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith = F3(
29452	function (joinWith, string1, string2) {
29453		var _v0 = _Utils_Tuple2(string1, string2);
29454		if (_v0.a === '') {
29455			return string2;
29456		} else {
29457			if (_v0.b === '') {
29458				return string1;
29459			} else {
29460				return _Utils_ap(
29461					string1,
29462					_Utils_ap(joinWith, string2));
29463			}
29464		}
29465	});
29466var $dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll = F2(
29467	function (string1, string2) {
29468		return string1 + ('\n' + string2);
29469	});
29470var $dillonkearns$elm_markdown$Markdown$Parser$innerParagraphParser = A2(
29471	$elm$parser$Parser$Advanced$mapChompedString,
29472	F2(
29473		function (rawLine, _v0) {
29474			return $dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph(rawLine);
29475		}),
29476	$dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd);
29477var $dillonkearns$elm_markdown$Markdown$Parser$openBlockOrParagraphParser = A2($elm$parser$Parser$Advanced$ignorer, $dillonkearns$elm_markdown$Markdown$Parser$innerParagraphParser, $dillonkearns$elm_markdown$Helpers$lineEndOrEnd);
29478var $dillonkearns$elm_markdown$Markdown$OrderedList$ListItem = F4(
29479	function (order, intended, marker, body) {
29480		return {fe: body, fH: intended, fP: marker, ga: order};
29481	});
29482var $elm$parser$Parser$Advanced$getCol = function (s) {
29483	return A3($elm$parser$Parser$Advanced$Good, false, s.d5, s);
29484};
29485var $dillonkearns$elm_markdown$Markdown$OrderedList$orderedListEmptyItemParser = A2(
29486	$elm$parser$Parser$Advanced$keeper,
29487	$elm$parser$Parser$Advanced$succeed(
29488		function (bodyStartPos) {
29489			return _Utils_Tuple2(bodyStartPos, '');
29490		}),
29491	A2($elm$parser$Parser$Advanced$ignorer, $elm$parser$Parser$Advanced$getCol, $dillonkearns$elm_markdown$Helpers$lineEndOrEnd));
29492var $dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore = function (condition) {
29493	return A2(
29494		$elm$parser$Parser$Advanced$ignorer,
29495		A2(
29496			$elm$parser$Parser$Advanced$chompIf,
29497			condition,
29498			$elm$parser$Parser$Problem('Expected one or more character')),
29499		$elm$parser$Parser$Advanced$chompWhile(condition));
29500};
29501var $dillonkearns$elm_markdown$Markdown$OrderedList$orderedListItemBodyParser = A2(
29502	$elm$parser$Parser$Advanced$keeper,
29503	A2(
29504		$elm$parser$Parser$Advanced$keeper,
29505		A2(
29506			$elm$parser$Parser$Advanced$ignorer,
29507			$elm$parser$Parser$Advanced$succeed(
29508				F2(
29509					function (bodyStartPos, item) {
29510						return _Utils_Tuple2(bodyStartPos, item);
29511					})),
29512			$dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore($dillonkearns$elm_markdown$Whitespace$isSpaceOrTab)),
29513		$elm$parser$Parser$Advanced$getCol),
29514	A2(
29515		$elm$parser$Parser$Advanced$ignorer,
29516		$elm$parser$Parser$Advanced$getChompedString($dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd),
29517		$dillonkearns$elm_markdown$Helpers$lineEndOrEnd));
29518var $dillonkearns$elm_markdown$Markdown$OrderedList$Dot = 0;
29519var $dillonkearns$elm_markdown$Markdown$OrderedList$Paren = 1;
29520var $dillonkearns$elm_markdown$Parser$Token$closingParen = A2(
29521	$elm$parser$Parser$Advanced$Token,
29522	')',
29523	$elm$parser$Parser$Expecting('a `)`'));
29524var $dillonkearns$elm_markdown$Parser$Token$dot = A2(
29525	$elm$parser$Parser$Advanced$Token,
29526	'.',
29527	$elm$parser$Parser$Expecting('a `.`'));
29528var $dillonkearns$elm_markdown$Markdown$OrderedList$orderedListMarkerParser = $elm$parser$Parser$Advanced$oneOf(
29529	_List_fromArray(
29530		[
29531			A2(
29532			$elm$parser$Parser$Advanced$ignorer,
29533			$elm$parser$Parser$Advanced$succeed(0),
29534			$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$dot)),
29535			A2(
29536			$elm$parser$Parser$Advanced$ignorer,
29537			$elm$parser$Parser$Advanced$succeed(1),
29538			$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$closingParen))
29539		]));
29540var $dillonkearns$elm_markdown$Parser$Extra$positiveInteger = A2(
29541	$elm$parser$Parser$Advanced$mapChompedString,
29542	F2(
29543		function (str, _v0) {
29544			return A2(
29545				$elm$core$Maybe$withDefault,
29546				0,
29547				$elm$core$String$toInt(str));
29548		}),
29549	$dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore($elm$core$Char$isDigit));
29550var $dillonkearns$elm_markdown$Markdown$OrderedList$positiveIntegerMaxOf9Digits = A2(
29551	$elm$parser$Parser$Advanced$andThen,
29552	function (parsed) {
29553		return (parsed <= 999999999) ? $elm$parser$Parser$Advanced$succeed(parsed) : $elm$parser$Parser$Advanced$problem(
29554			$elm$parser$Parser$Problem('Starting numbers must be nine digits or less.'));
29555	},
29556	$dillonkearns$elm_markdown$Parser$Extra$positiveInteger);
29557var $dillonkearns$elm_markdown$Whitespace$space = $elm$parser$Parser$Advanced$token($dillonkearns$elm_markdown$Parser$Token$space);
29558var $dillonkearns$elm_markdown$Parser$Extra$upTo = F2(
29559	function (n, parser) {
29560		var _v0 = A2($elm$core$List$repeat, n, parser);
29561		if (!_v0.b) {
29562			return $elm$parser$Parser$Advanced$succeed(0);
29563		} else {
29564			var firstParser = _v0.a;
29565			var remainingParsers = _v0.b;
29566			return A3(
29567				$elm$core$List$foldl,
29568				F2(
29569					function (p, parsers) {
29570						return $elm$parser$Parser$Advanced$oneOf(
29571							_List_fromArray(
29572								[
29573									A2($elm$parser$Parser$Advanced$ignorer, p, parsers),
29574									$elm$parser$Parser$Advanced$succeed(0)
29575								]));
29576					}),
29577				$elm$parser$Parser$Advanced$oneOf(
29578					_List_fromArray(
29579						[
29580							firstParser,
29581							$elm$parser$Parser$Advanced$succeed(0)
29582						])),
29583				remainingParsers);
29584		}
29585	});
29586var $dillonkearns$elm_markdown$Markdown$OrderedList$validateStartsWith1 = function (parsed) {
29587	if (parsed === 1) {
29588		return $elm$parser$Parser$Advanced$succeed(parsed);
29589	} else {
29590		return $elm$parser$Parser$Advanced$problem(
29591			$elm$parser$Parser$Problem('Lists inside a paragraph or after a paragraph without a blank line must start with 1'));
29592	}
29593};
29594var $dillonkearns$elm_markdown$Markdown$OrderedList$orderedListOrderParser = function (previousWasBody) {
29595	return previousWasBody ? A2(
29596		$elm$parser$Parser$Advanced$andThen,
29597		$dillonkearns$elm_markdown$Markdown$OrderedList$validateStartsWith1,
29598		A2(
29599			$elm$parser$Parser$Advanced$keeper,
29600			A2(
29601				$elm$parser$Parser$Advanced$ignorer,
29602				$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
29603				A2($dillonkearns$elm_markdown$Parser$Extra$upTo, 3, $dillonkearns$elm_markdown$Whitespace$space)),
29604			$dillonkearns$elm_markdown$Markdown$OrderedList$positiveIntegerMaxOf9Digits)) : A2(
29605		$elm$parser$Parser$Advanced$keeper,
29606		A2(
29607			$elm$parser$Parser$Advanced$ignorer,
29608			$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
29609			A2($dillonkearns$elm_markdown$Parser$Extra$upTo, 3, $dillonkearns$elm_markdown$Whitespace$space)),
29610		$dillonkearns$elm_markdown$Markdown$OrderedList$positiveIntegerMaxOf9Digits);
29611};
29612var $dillonkearns$elm_markdown$Markdown$OrderedList$parser = function (previousWasBody) {
29613	var parseSubsequentItem = F5(
29614		function (start, order, marker, mid, _v0) {
29615			var end = _v0.a;
29616			var body = _v0.b;
29617			return ((end - mid) <= 4) ? A4($dillonkearns$elm_markdown$Markdown$OrderedList$ListItem, order, end 
29617- start, marker, body) : A4(
29618				$dillonkearns$elm_markdown$Markdown$OrderedList$ListItem,
29619				order,
29620				(mid - start) + 1,
29621				marker,
29622				_Utils_ap(
29623					A2($elm$core$String$repeat, (end - mid) - 1, ' '),
29624					body));
29625		});
29626	return A2(
29627		$elm$parser$Parser$Advanced$keeper,
29628		A2(
29629			$elm$parser$Parser$Advanced$keeper,
29630			A2(
29631				$elm$parser$Parser$Advanced$keeper,
29632				A2(
29633					$elm$parser$Parser$Advanced$keeper,
29634					A2(
29635						$elm$parser$Parser$Advanced$keeper,
29636						$elm$parser$Parser$Advanced$succeed(parseSubsequentItem),
29637						$elm$parser$Parser$Advanced$getCol),
29638					$elm$parser$Parser$Advanced$backtrackable(
29639						$dillonkearns$elm_markdown$Markdown$OrderedList$orderedListOrderParser(previousWasBody))),
29640				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$OrderedList$orderedListMarkerParser)),
29641			$elm$parser$Parser$Advanced$getCol),
29642		previousWasBody ? $dillonkearns$elm_markdown$Markdown$OrderedList$orderedListItemBodyParser : $elm$parser$Parser$Advanced$oneOf(
29643			_List_fromArray(
29644				[$dillonkearns$elm_markdown$Markdown$OrderedList$orderedListEmptyItemParser, $dillonkearns$elm_markdown$Markdown$OrderedList$orderedListItemBodyParser])));
29645};
29646var $dillonkearns$elm_markdown$Markdown$Parser$orderedListBlock = function (previousWasBody) {
29647	return A2(
29648		$elm$parser$Parser$Advanced$map,
29649		function (item) {
29650			return A6($dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, true, item.fH, item.fP, item.ga, _List_Nil, item.fe);
29651		},
29652		$dillonkearns$elm_markdown$Markdown$OrderedList$parser(previousWasBody));
29653};
29654var $dillonkearns$elm_markdown$Markdown$Inline$CodeInline = function (a) {
29655	return {$: 2, a: a};
29656};
29657var $dillonkearns$elm_markdown$Markdown$Inline$HardLineBreak = {$: 1};
29658var $dillonkearns$elm_markdown$Markdown$Inline$HtmlInline = function (a) {
29659	return {$: 5, a: a};
29660};
29661var $dillonkearns$elm_markdown$Markdown$Inline$Image = F3(
29662	function (a, b, c) {
29663		return {$: 4, a: a, b: b, c: c};
29664	});
29665var $dillonkearns$elm_markdown$Markdown$Inline$Link = F3(
29666	function (a, b, c) {
29667		return {$: 3, a: a, b: b, c: c};
29668	});
29669var $dillonkearns$elm_markdown$Markdown$Inline$Strikethrough = function (a) {
29670	return {$: 7, a: a};
29671};
29672var $dillonkearns$elm_markdown$Markdown$Inline$Text = function (a) {
29673	return {$: 0, a: a};
29674};
29675var $dillonkearns$elm_markdown$Markdown$InlineParser$matchToInline = function (_v0) {
29676	var match = _v0;
29677	var _v1 = match.H;
29678	switch (_v1.$) {
29679		case 0:
29680			return $dillonkearns$elm_markdown$Markdown$Inline$Text(match.j);
29681		case 1:
29682			return $dillonkearns$elm_markdown$Markdown$Inline$HardLineBreak;
29683		case 2:
29684			return $dillonkearns$elm_markdown$Markdown$Inline$CodeInline(match.j);
29685		case 3:
29686			var _v2 = _v1.a;
29687			var text = _v2.a;
29688			var url = _v2.b;
29689			return A3(
29690				$dillonkearns$elm_markdown$Markdown$Inline$Link,
29691				url,
29692				$elm$core$Maybe$Nothing,
29693				_List_fromArray(
29694					[
29695						$dillonkearns$elm_markdown$Markdown$Inline$Text(text)
29696					]));
29697		case 4:
29698			var _v3 = _v1.a;
29699			var url = _v3.a;
29700			var maybeTitle = _v3.b;
29701			return A3(
29702				$dillonkearns$elm_markdown$Markdown$Inline$Link,
29703				url,
29704				maybeTitle,
29705				$dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines(match.q));
29706		case 5:
29707			var _v4 = _v1.a;
29708			var url = _v4.a;
29709			var maybeTitle = _v4.b;
29710			return A3(
29711				$dillonkearns$elm_markdown$Markdown$Inline$Image,
29712				url,
29713				maybeTitle,
29714				$dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines(match.q));
29715		case 6:
29716			var model = _v1.a;
29717			return $dillonkearns$elm_markdown$Markdown$Inline$HtmlInline(model);
29718		case 7:
29719			var length = _v1.a;
29720			return A2(
29721				$dillonkearns$elm_markdown$Markdown$Inline$Emphasis,
29722				length,
29723				$dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines(match.q));
29724		default:
29725			return $dillonkearns$elm_markdown$Markdown$Inline$Strikethrough(
29726				$dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines(match.q));
29727	}
29728};
29729var $dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines = function (matches) {
29730	return A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$InlineParser$matchToInline, matches);
29731};
29732var $dillonkearns$elm_markdown$Markdown$InlineParser$Match = $elm$core$Basics$identity;
29733var $dillonkearns$elm_markdown$Markdown$InlineParser$prepareChildMatch = F2(
29734	function (parentMatch, childMatch) {
29735		return {g: childMatch.g - parentMatch.t, q: childMatch.q, i: childMatch.i - parentMatch.t, j: childMatch.j, B: childMatch.B - parentMatch.t, t: childMatch.t - parentMatch.t, H: childMatch.H};
29736	});
29737var $dillonkearns$elm_markdown$Markdown$InlineParser$addChild = F2(
29738	function (parentMatch, childMatch) {
29739		return {
29740			g: parentMatch.g,
29741			q: A2(
29742				$elm$core$List$cons,
29743				A2($dillonkearns$elm_markdown$Markdown$InlineParser$prepareChildMatch, parentMatch, childMatch),
29744				parentMatch.q),
29745			i: parentMatch.i,
29746			j: parentMatch.j,
29747			B: parentMatch.B,
29748			t: parentMatch.t,
29749			H: parentMatch.H
29750		};
29751	});
29752var $elm$core$List$sortBy = _List_sortBy;
29753var $dillonkearns$elm_markdown$Markdown$InlineParser$organizeChildren = function (_v4) {
29754	var match = _v4;
29755	return {
29756		g: match.g,
29757		q: $dillonkearns$elm_markdown$Markdown$InlineParser$organizeMatches(match.q),
29758		i: match.i,
29759		j: match.j,
29760		B: match.B,
29761		t: match.t,
29762		H: match.H
29763	};
29764};
29765var $dillonkearns$elm_markdown$Markdown$InlineParser$organizeMatches = function (matches) {
29766	var _v2 = A2(
29767		$elm$core$List$sortBy,
29768		function (_v3) {
29769			var match = _v3;
29770			return match.i;
29771		},
29772		matches);
29773	if (!_v2.b) {
29774		return _List_Nil;
29775	} else {
29776		var first = _v2.a;
29777		var rest = _v2.b;
29778		return A3($dillonkearns$elm_markdown$Markdown$InlineParser$organizeMatchesHelp, rest, first, _List_Nil);
29779	}
29780};
29781var $dillonkearns$elm_markdown$Markdown$InlineParser$organizeMatchesHelp = F3(
29782	function (remaining, _v0, matchesTail) {
29783		organizeMatchesHelp:
29784		while (true) {
29785			var prevMatch = _v0;
29786			if (!remaining.b) {
29787				return A2(
29788					$elm$core$List$cons,
29789					$dillonkearns$elm_markdown$Markdown$InlineParser$organizeChildren(prevMatch),
29790					matchesTail);
29791			} else {
29792				var match = remaining.a;
29793				var rest = remaining.b;
29794				if (_Utils_cmp(prevMatch.g, match.i) < 1) {
29795					var $temp$remaining = rest,
29796						$temp$_v0 = match,
29797						$temp$matchesTail = A2(
29798						$elm$core$List$cons,
29799						$dillonkearns$elm_markdown$Markdown$InlineParser$organizeChildren(prevMatch),
29800						matchesTail);
29801					remaining = $temp$remaining;
29802					_v0 = $temp$_v0;
29803					matchesTail = $temp$matchesTail;
29804					continue organizeMatchesHelp;
29805				} else {
29806					if ((_Utils_cmp(prevMatch.i, match.i) < 0) && (_Utils_cmp(prevMatch.g, match.g) > 0)) {
29807						var $temp$remaining = rest,
29808							$temp$_v0 = A2($dillonkearns$elm_markdown$Markdown$InlineParser$addChild, prevMatch, match),
29809							$temp$matchesTail = matchesTail;
29810						remaining = $temp$remaining;
29811						_v0 = $temp$_v0;
29812						matchesTail = $temp$matchesTail;
29813						continue organizeMatchesHelp;
29814					} else {
29815						var $temp$remaining = rest,
29816							$temp$_v0 = prevMatch,
29817							$temp$matchesTail = matchesTail;
29818						remaining = $temp$remaining;
29819						_v0 = $temp$_v0;
29820						matchesTail = $temp$matchesTail;
29821						continue organizeMatchesHelp;
29822					}
29823				}
29824			}
29825		}
29826	});
29827var $dillonkearns$elm_markdown$Markdown$InlineParser$NormalType = {$: 0};
29828var $dillonkearns$elm_markdown$Markdown$Helpers$containsAmpersand = function (string) {
29829	return A2($elm$core$String$contains, '&', string);
29830};
29831var $elm$regex$Regex$Match = F4(
29832	function (match, index, number, submatches) {
29833		return {d: index, bf: match, f1: number, dI: submatches};
29834	});
29835var $elm$regex$Regex$fromStringWith = _Regex_fromStringWith;
29836var $elm$regex$Regex$fromString = function (string) {
29837	return A2(
29838		$elm$regex$Regex$fromStringWith,
29839		{ff: false, fZ: false},
29840		string);
29841};
29842var $elm$regex$Regex$never = _Regex_never;
29843var $dillonkearns$elm_markdown$Markdown$Entity$decimalRegex = A2(
29844	$elm$core$Maybe$withDefault,
29845	$elm$regex$Regex$never,
29846	$elm$regex$Regex$fromString('&#([0-9]{1,8});'));
29847var $elm$regex$Regex$replace = _Regex_replaceAtMost(_Regex_infinity);
29848var $dillonkearns$elm_markdown$Markdown$Entity$isBadEndUnicode = function (_int) {
29849	var remain_ = A2($elm$core$Basics$modBy, 16, _int);
29850	var remain = A2($elm$core$Basics$modBy, 131070, _int);
29851	return (_int >= 131070) && ((((0 <= remain) && (remain <= 15)) || ((65536 <= remain) && (remain <= 65551))) && ((remain_ === 14) || (remain_ === 15)));
29852};
29853var $dillonkearns$elm_markdown$Markdown$Entity$isValidUnicode = function (_int) {
29854	return (_int === 9) || ((_int === 10) || ((_int === 13) || ((_int === 133) || (((32 <= _int) && (_int <= 126)) || (((160 <= _int) && (_int <= 55295)) || (((57344 <= _int) && (_int <= 64975)) || (((65008 <= _int) && (_int <= 65533)) || ((65536 <= _int) && (_int <= 1114109)))))))));
29855};
29856var $dillonkearns$elm_markdown$Markdown$Entity$validUnicode = function (_int) {
29857	return ($dillonkearns$elm_markdown$Markdown$Entity$isValidUnicode(_int) && (!$dillonkearns$elm_markdown$Markdown$Entity$isBadEndUnicode(_int))) ? $elm$core$String$fromChar(
29858		$elm$core$Char$fromCode(_int)) : $elm$core$String$fromChar(
29859		$elm$core$Char$fromCode(65533));
29860};
29861var $dillonkearns$elm_markdown$Markdown$Entity$replaceDecimal = function (match) {
29862	var _v0 = match.dI;
29863	if (_v0.b && (!_v0.a.$)) {
29864		var first = _v0.a.a;
29865		var _v1 = $elm$core$String$toInt(first);
29866		if (!_v1.$) {
29867			var v = _v1.a;
29868			return $dillonkearns$elm_markdown$Markdown$Entity$validUnicode(v);
29869		} else {
29870			return match.bf;
29871		}
29872	} else {
29873		return match.bf;
29874	}
29875};
29876var $dillonkearns$elm_markdown$Markdown$Entity$replaceDecimals = A2($elm$regex$Regex$replace, $dillonkearns$elm_markdown$Markdown$Entity$decimalRegex, $dillonkearns$elm_markdown$Markdown$Entity$replaceDecimal);
29877var $dillonkearns$elm_markdown$Markdown$Entity$entitiesRegex = A2(
29878	$elm$core$Maybe$withDefault,
29879	$elm$regex$Regex$never,
29880	$elm$regex$Regex$fromString('&([0-9a-zA-Z]+);'));
29881var $dillonkearns$elm_markdown$Markdown$Entity$entities = $elm$core$Dict$fromList(
29882	_List_fromArray(
29883		[
29884			_Utils_Tuple2('quot', 34),
29885			_Utils_Tuple2('amp', 38),
29886			_Utils_Tuple2('apos', 39),
29887			_Utils_Tuple2('lt', 60),
29888			_Utils_Tuple2('gt', 62),
29889			_Utils_Tuple2('nbsp', 160),
29890			_Utils_Tuple2('iexcl', 161),
29891			_Utils_Tuple2('cent', 162),
29892			_Utils_Tuple2('pound', 163),
29893			_Utils_Tuple2('curren', 164),
29894			_Utils_Tuple2('yen', 165),
29895			_Utils_Tuple2('brvbar', 166),
29896			_Utils_Tuple2('sect', 167),
29897			_Utils_Tuple2('uml', 168),
29898			_Utils_Tuple2('copy', 169),
29899			_Utils_Tuple2('ordf', 170),
29900			_Utils_Tuple2('laquo', 171),
29901			_Utils_Tuple2('not', 172),
29902			_Utils_Tuple2('shy', 173),
29903			_Utils_Tuple2('reg', 174),
29904			_Utils_Tuple2('macr', 175),
29905			_Utils_Tuple2('deg', 176),
29906			_Utils_Tuple2('plusmn', 177),
29907			_Utils_Tuple2('sup2', 178),
29908			_Utils_Tuple2('sup3', 179),
29909			_Utils_Tuple2('acute', 180),
29910			_Utils_Tuple2('micro', 181),
29911			_Utils_Tuple2('para', 182),
29912			_Utils_Tuple2('middot', 183),
29913			_Utils_Tuple2('cedil', 184),
29914			_Utils_Tuple2('sup1', 185),
29915			_Utils_Tuple2('ordm', 186),
29916			_Utils_Tuple2('raquo', 187),
29917			_Utils_Tuple2('frac14', 188),
29918			_Utils_Tuple2('frac12', 189),
29919			_Utils_Tuple2('frac34', 190),
29920			_Utils_Tuple2('iquest', 191),
29921			_Utils_Tuple2('Agrave', 192),
29922			_Utils_Tuple2('Aacute', 193),
29923			_Utils_Tuple2('Acirc', 194),
29924			_Utils_Tuple2('Atilde', 195),
29925			_Utils_Tuple2('Auml', 196),
29926			_Utils_Tuple2('Aring', 197),
29927			_Utils_Tuple2('AElig', 198),
29928			_Utils_Tuple2('Ccedil', 199),
29929			_Utils_Tuple2('Egrave', 200),
29930			_Utils_Tuple2('Eacute', 201),
29931			_Utils_Tuple2('Ecirc', 202),
29932			_Utils_Tuple2('Euml', 203),
29933			_Utils_Tuple2('Igrave', 204),
29934			_Utils_Tuple2('Iacute', 205),
29935			_Utils_Tuple2('Icirc', 206),
29936			_Utils_Tuple2('Iuml', 207),
29937			_Utils_Tuple2('ETH', 208),
29938			_Utils_Tuple2('Ntilde', 209),
29939			_Utils_Tuple2('Ograve', 210),
29940			_Utils_Tuple2('Oacute', 211),
29941			_Utils_Tuple2('Ocirc', 212),
29942			_Utils_Tuple2('Otilde', 213),
29943			_Utils_Tuple2('Ouml', 214),
29944			_Utils_Tuple2('times', 215),
29945			_Utils_Tuple2('Oslash', 216),
29946			_Utils_Tuple2('Ugrave', 217),
29947			_Utils_Tuple2('Uacute', 218),
29948			_Utils_Tuple2('Ucirc', 219),
29949			_Utils_Tuple2('Uuml', 220),
29950			_Utils_Tuple2('Yacute', 221),
29951			_Utils_Tuple2('THORN', 222),
29952			_Utils_Tuple2('szlig', 223),
29953			_Utils_Tuple2('agrave', 224),
29954			_Utils_Tuple2('aacute', 225),
29955			_Utils_Tuple2('acirc', 226),
29956			_Utils_Tuple2('atilde', 227),
29957			_Utils_Tuple2('auml', 228),
29958			_Utils_Tuple2('aring', 229),
29959			_Utils_Tuple2('aelig', 230),
29960			_Utils_Tuple2('ccedil', 231),
29961			_Utils_Tuple2('egrave', 232),
29962			_Utils_Tuple2('eacute', 233),
29963			_Utils_Tuple2('ecirc', 234),
29964			_Utils_Tuple2('euml', 235),
29965			_Utils_Tuple2('igrave', 236),
29966			_Utils_Tuple2('iacute', 237),
29967			_Utils_Tuple2('icirc', 238),
29968			_Utils_Tuple2('iuml', 239),
29969			_Utils_Tuple2('eth', 240),
29970			_Utils_Tuple2('ntilde', 241),
29971			_Utils_Tuple2('ograve', 242),
29972			_Utils_Tuple2('oacute', 243),
29973			_Utils_Tuple2('ocirc', 244),
29974			_Utils_Tuple2('otilde', 245),
29975			_Utils_Tuple2('ouml', 246),
29976			_Utils_Tuple2('divide', 247),
29977			_Utils_Tuple2('oslash', 248),
29978			_Utils_Tuple2('ugrave', 249),
29979			_Utils_Tuple2('uacute', 250),
29980			_Utils_Tuple2('ucirc', 251),
29981			_Utils_Tuple2('uuml', 252),
29982			_Utils_Tuple2('yacute', 253),
29983			_Utils_Tuple2('thorn', 254),
29984			_Utils_Tuple2('yuml', 255),
29985			_Utils_Tuple2('OElig', 338),
29986			_Utils_Tuple2('oelig', 339),
29987			_Utils_Tuple2('Scaron', 352),
29988			_Utils_Tuple2('scaron', 353),
29989			_Utils_Tuple2('Yuml', 376),
29990			_Utils_Tuple2('fnof', 402),
29991			_Utils_Tuple2('circ', 710),
29992			_Utils_Tuple2('tilde', 732),
29993			_Utils_Tuple2('Alpha', 913),
29994			_Utils_Tuple2('Beta', 914),
29995			_Utils_Tuple2('Gamma', 915),
29996			_Utils_Tuple2('Delta', 916),
29997			_Utils_Tuple2('Epsilon', 917),
29998			_Utils_Tuple2('Zeta', 918),
29999			_Utils_Tuple2('Eta', 919),
30000			_Utils_Tuple2('Theta', 920),
30001			_Utils_Tuple2('Iota', 921),
30002			_Utils_Tuple2('Kappa', 922),
30003			_Utils_Tuple2('Lambda', 923),
30004			_Utils_Tuple2('Mu', 924),
30005			_Utils_Tuple2('Nu', 925),
30006			_Utils_Tuple2('Xi', 926),
30007			_Utils_Tuple2('Omicron', 927),
30008			_Utils_Tuple2('Pi', 928),
30009			_Utils_Tuple2('Rho', 929),
30010			_Utils_Tuple2('Sigma', 931),
30011			_Utils_Tuple2('Tau', 932),
30012			_Utils_Tuple2('Upsilon', 933),
30013			_Utils_Tuple2('Phi', 934),
30014			_Utils_Tuple2('Chi', 935),
30015			_Utils_Tuple2('Psi', 936),
30016			_Utils_Tuple2('Omega', 937),
30017			_Utils_Tuple2('alpha', 945),
30018			_Utils_Tuple2('beta', 946),
30019			_Utils_Tuple2('gamma', 947),
30020			_Utils_Tuple2('delta', 948),
30021			_Utils_Tuple2('epsilon', 949),
30022			_Utils_Tuple2('zeta', 950),
30023			_Utils_Tuple2('eta', 951),
30024			_Utils_Tuple2('theta', 952),
30025			_Utils_Tuple2('iota', 953),
30026			_Utils_Tuple2('kappa', 954),
30027			_Utils_Tuple2('lambda', 955),
30028			_Utils_Tuple2('mu', 956),
30029			_Utils_Tuple2('nu', 957),
30030			_Utils_Tuple2('xi', 958),
30031			_Utils_Tuple2('omicron', 959),
30032			_Utils_Tuple2('pi', 960),
30033			_Utils_Tuple2('rho', 961),
30034			_Utils_Tuple2('sigmaf', 962),
30035			_Utils_Tuple2('sigma', 963),
30036			_Utils_Tuple2('tau', 964),
30037			_Utils_Tuple2('upsilon', 965),
30038			_Utils_Tuple2('phi', 966),
30039			_Utils_Tuple2('chi', 967),
30040			_Utils_Tuple2('psi', 968),
30041			_Utils_Tuple2('omega', 969),
30042			_Utils_Tuple2('thetasym', 977),
30043			_Utils_Tuple2('upsih', 978),
30044			_Utils_Tuple2('piv', 982),
30045			_Utils_Tuple2('ensp', 8194),
30046			_Utils_Tuple2('emsp', 8195),
30047			_Utils_Tuple2('thinsp', 8201),
30048			_Utils_Tuple2('zwnj', 8204),
30049			_Utils_Tuple2('zwj', 8205),
30050			_Utils_Tuple2('lrm', 8206),
30051			_Utils_Tuple2('rlm', 8207),
30052			_Utils_Tuple2('ndash', 8211),
30053			_Utils_Tuple2('mdash', 8212),
30054			_Utils_Tuple2('lsquo', 8216),
30055			_Utils_Tuple2('rsquo', 8217),
30056			_Utils_Tuple2('sbquo', 8218),
30057			_Utils_Tuple2('ldquo', 8220),
30058			_Utils_Tuple2('rdquo', 8221),
30059			_Utils_Tuple2('bdquo', 8222),
30060			_Utils_Tuple2('dagger', 8224),
30061			_Utils_Tuple2('Dagger', 8225),
30062			_Utils_Tuple2('bull', 8226),
30063			_Utils_Tuple2('hellip', 8230),
30064			_Utils_Tuple2('permil', 8240),
30065			_Utils_Tuple2('prime', 8242),
30066			_Utils_Tuple2('Prime', 8243),
30067			_Utils_Tuple2('lsaquo', 8249),
30068			_Utils_Tuple2('rsaquo', 8250),
30069			_Utils_Tuple2('oline', 8254),
30070			_Utils_Tuple2('frasl', 8260),
30071			_Utils_Tuple2('euro', 8364),
30072			_Utils_Tuple2('image', 8465),
30073			_Utils_Tuple2('weierp', 8472),
30074			_Utils_Tuple2('real', 8476),
30075			_Utils_Tuple2('trade', 8482),
30076			_Utils_Tuple2('alefsym', 8501),
30077			_Utils_Tuple2('larr', 8592),
30078			_Utils_Tuple2('uarr', 8593),
30079			_Utils_Tuple2('rarr', 8594),
30080			_Utils_Tuple2('darr', 8595),
30081			_Utils_Tuple2('harr', 8596),
30082			_Utils_Tuple2('crarr', 8629),
30083			_Utils_Tuple2('lArr', 8656),
30084			_Utils_Tuple2('uArr', 8657),
30085			_Utils_Tuple2('rArr', 8658),
30086			_Utils_Tuple2('dArr', 8659),
30087			_Utils_Tuple2('hArr', 8660),
30088			_Utils_Tuple2('forall', 8704),
30089			_Utils_Tuple2('part', 8706),
30090			_Utils_Tuple2('exist', 8707),
30091			_Utils_Tuple2('empty', 8709),
30092			_Utils_Tuple2('nabla', 8711),
30093			_Utils_Tuple2('isin', 8712),
30094			_Utils_Tuple2('notin', 8713),
30095			_Utils_Tuple2('ni', 8715),
30096			_Utils_Tuple2('prod', 8719),
30097			_Utils_Tuple2('sum', 8721),
30098			_Utils_Tuple2('minus', 8722),
30099			_Utils_Tuple2('lowast', 8727),
30100			_Utils_Tuple2('radic', 8730),
30101			_Utils_Tuple2('prop', 8733),
30102			_Utils_Tuple2('infin', 8734),
30103			_Utils_Tuple2('ang', 8736),
30104			_Utils_Tuple2('and', 8743),
30105			_Utils_Tuple2('or', 8744),
30106			_Utils_Tuple2('cap', 8745),
30107			_Utils_Tuple2('cup', 8746),
30108			_Utils_Tuple2('int', 8747),
30109			_Utils_Tuple2('there4', 8756),
30110			_Utils_Tuple2('sim', 8764),
30111			_Utils_Tuple2('cong', 8773),
30112			_Utils_Tuple2('asymp', 8776),
30113			_Utils_Tuple2('ne', 8800),
30114			_Utils_Tuple2('equiv', 8801),
30115			_Utils_Tuple2('le', 8804),
30116			_Utils_Tuple2('ge', 8805),
30117			_Utils_Tuple2('sub', 8834),
30118			_Utils_Tuple2('sup', 8835),
30119			_Utils_Tuple2('nsub', 8836),
30120			_Utils_Tuple2('sube', 8838),
30121			_Utils_Tuple2('supe', 8839),
30122			_Utils_Tuple2('oplus', 8853),
30123			_Utils_Tuple2('otimes', 8855),
30124			_Utils_Tuple2('perp', 8869),
30125			_Utils_Tuple2('sdot', 8901),
30126			_Utils_Tuple2('lceil', 8968),
30127			_Utils_Tuple2('rceil', 8969),
30128			_Utils_Tuple2('lfloor', 8970),
30129			_Utils_Tuple2('rfloor', 8971),
30130			_Utils_Tuple2('lang', 9001),
30131			_Utils_Tuple2('rang', 9002),
30132			_Utils_Tuple2('loz', 9674),
30133			_Utils_Tuple2('spades', 9824),
30134			_Utils_Tuple2('clubs', 9827),
30135			_Utils_Tuple2('hearts', 9829),
30136			_Utils_Tuple2('diams', 9830)
30137		]));
30138var $dillonkearns$elm_markdown$Markdown$Entity$replaceEntity = function (match) {
30139	var _v0 = match.dI;
30140	if (_v0.b && (!_v0.a.$)) {
30141		var first = _v0.a.a;
30142		var _v1 = A2($elm$core$Dict$get, first, $dillonkearns$elm_markdown$Markdown$Entity$entities);
30143		if (!_v1.$) {
30144			var code = _v1.a;
30145			return $elm$core$String$fromChar(
30146				$elm$core$Char$fromCode(code));
30147		} else {
30148			return match.bf;
30149		}
30150	} else {
30151		return match.bf;
30152	}
30153};
30154var $dillonkearns$elm_markdown$Markdown$Entity$replaceEntities = A2($elm$regex$Regex$replace, $dillonkearns$elm_markdown$Markdown$Entity$entitiesRegex, $dillonkearns$elm_markdown$Markdown$Entity$replaceEntity);
30155var $dillonkearns$elm_markdown$Markdown$Helpers$escapableRegex = A2(
30156	$elm$core$Maybe$withDefault,
30157	$elm$regex$Regex$never,
30158	$elm$regex$Regex$fromString('(\\\\+)([!\"#$%&\\\'()*+,./:;<=>?@[\\\\\\]^_`{|}~-])'));
30159var $dillonkearns$elm_markdown$Markdown$Helpers$replaceEscapable = A2(
30160	$elm$regex$Regex$replace,
30161	$dillonkearns$elm_markdown$Markdown$Helpers$escapableRegex,
30162	function (regexMatch) {
30163		var _v0 = regexMatch.dI;
30164		if (((_v0.b && (!_v0.a.$)) && _v0.b.b) && (!_v0.b.a.$)) {
30165			var backslashes = _v0.a.a;
30166			var _v1 = _v0.b;
30167			var escapedStr = _v1.a.a;
30168			return _Utils_ap(
30169				A2(
30170					$elm$core$String$repeat,
30171					($elm$core$String$length(backslashes) / 2) | 0,
30172					'\\'),
30173				escapedStr);
30174		} else {
30175			return regexMatch.bf;
30176		}
30177	});
30178var $dillonkearns$elm_markdown$Markdown$Entity$hexadecimalRegex = A2(
30179	$elm$core$Maybe$withDefault,
30180	$elm$regex$Regex$never,
30181	$elm$regex$Regex$fromString('&#[Xx]([0-9a-fA-F]{1,8});'));
30182var $dillonkearns$elm_markdown$Markdown$Entity$hexToInt = function (string) {
30183	var folder = F2(
30184		function (hexDigit, _int) {
30185			return ((_int * 16) + A2(
30186				$elm$core$Basics$modBy,
30187				39,
30188				$elm$core$Char$toCode(hexDigit))) - 9;
30189		});
30190	return A3(
30191		$elm$core$String$foldl,
30192		folder,
30193		0,
30194		$elm$core$String$toLower(string));
30195};
30196var $dillonkearns$elm_markdown$Markdown$Entity$replaceHexadecimal = function (match) {
30197	var _v0 = match.dI;
30198	if (_v0.b && (!_v0.a.$)) {
30199		var first = _v0.a.a;
30200		return $dillonkearns$elm_markdown$Markdown$Entity$validUnicode(
30201			$dillonkearns$elm_markdown$Markdown$Entity$hexToInt(first));
30202	} else {
30203		return match.bf;
30204	}
30205};
30206var $dillonkearns$elm_markdown$Markdown$Entity$replaceHexadecimals = A2($elm$regex$Regex$replace, $dillonkearns$elm_markdown$Markdown$Entity$hexadecimalRegex, $dillonkearns$elm_markdown$Markdown$Entity$replaceHexadecimal);
30207var $dillonkearns$elm_markdown$Markdown$Helpers$formatStr = function (str) {
30208	var withEscapes = $dillonkearns$elm_markdown$Markdown$Helpers$replaceEscapable(str);
30209	return $dillonkearns$elm_markdown$Markdown$Helpers$containsAmpersand(withEscapes) ? $dillonkearns$elm_markdown$Markdown$Entity$replaceHexadecimals(
30210		$dillonkearns$elm_markdown$Markdown$Entity$replaceDecimals(
30211			$dillonkearns$elm_markdown$Markdown$Entity$replaceEntities(withEscapes))) : withEscapes;
30212};
30213var $dillonkearns$elm_markdown$Markdown$InlineParser$normalMatch = function (text) {
30214	return {
30215		g: 0,
30216		q: _List_Nil,
30217		i: 0,
30218		j: $dillonkearns$elm_markdown$Markdown$Helpers$formatStr(text),
30219		B: 0,
30220		t: 0,
30221		H: $dillonkearns$elm_markdown$Markdown$InlineParser$NormalType
30222	};
30223};
30224var $dillonkearns$elm_markdown$Markdown$InlineParser$parseTextMatch = F3(
30225	function (rawText, _v2, parsedMatches) {
30226		var matchModel = _v2;
30227		var updtMatch = {
30228			g: matchModel.g,
30229			q: A3($dillonkearns$elm_markdown$Markdown$InlineParser$parseTextMatches, matchModel.j, _List_Nil, matchModel.q),
30230			i: matchModel.i,
30231			j: matchModel.j,
30232			B: matchModel.B,
30233			t: matchModel.t,
30234			H: matchModel.H
30235		};
30236		if (!parsedMatches.b) {
30237			var finalStr = A2($elm$core$String$dropLeft, matchModel.g, rawText);
30238			return $elm$core$String$isEmpty(finalStr) ? _List_fromArray(
30239				[updtMatch]) : _List_fromArray(
30240				[
30241					updtMatch,
30242					$dillonkearns$elm_markdown$Markdown$InlineParser$normalMatch(finalStr)
30243				]);
30244		} else {
30245			var matchHead = parsedMatches.a;
30246			var _v4 = matchHead.H;
30247			if (!_v4.$) {
30248				return A2($elm$core$List$cons, updtMatch, parsedMatches);
30249			} else {
30250				return _Utils_eq(matchModel.g, matchHead.i) ? A2($elm$core$List$cons, updtMatch, parsedMatches) : ((_Utils_cmp(matchModel.g, matchHead.i) < 0) ? A2(
30251					$elm$core$List$cons,
30252					updtMatch,
30253					A2(
30254						$elm$core$List$cons,
30255						$dillonkearns$elm_markdown$Markdown$InlineParser$normalMatch(
30256							A3($elm$core$String$slice, matchModel.g, matchHead.i, rawText)),
30257						parsedMatches)) : parsedMatches);
30258			}
30259		}
30260	});
30261var $dillonkearns$elm_markdown$Markdown$InlineParser$parseTextMatches = F3(
30262	function (rawText, parsedMatches, matches) {
30263		parseTextMatches:
30264		while (true) {
30265			if (!matches.b) {
30266				if (!parsedMatches.b) {
30267					return $elm$core$String$isEmpty(rawText) ? _List_Nil : _List_fromArray(
30268						[
30269							$dillonkearns$elm_markdown$Markdown$InlineParser$normalMatch(rawText)
30270						]);
30271				} else {
30272					var matchModel = parsedMatches.a;
30273					return (matchModel.i > 0) ? A2(
30274						$elm$core$List$cons,
30275						$dillonkearns$elm_markdown$Markdown$InlineParser$normalMatch(
30276							A2($elm$core$String$left, matchModel.i, rawText)),
30277						parsedMatches) : parsedMatches;
30278				}
30279			} else {
30280				var match = matches.a;
30281				var matchesTail = matches.b;
30282				var $temp$rawText = rawText,
30283					$temp$parsedMatches = A3($dillonkearns$elm_markdown$Markdown$InlineParser$parseTextMatch, rawText, match, parsedMatches),
30284					$temp$matches = matchesTail;
30285				rawText = $temp$rawText;
30286				parsedMatches = $temp$parsedMatches;
30287				matches = $temp$matches;
30288				continue parseTextMatches;
30289			}
30290		}
30291	});
30292var $dillonkearns$elm_markdown$Markdown$InlineParser$cleanAngleBracketTokens = F3(
30293	function (tokensL, tokensR, countL) {
30294		cleanAngleBracketTokens:
30295		while (true) {
30296			if (!tokensR.b) {
30297				return _List_Nil;
30298			} else {
30299				var hd1 = tokensR.a;
30300				var rest1 = tokensR.b;
30301				if (!tokensL.b) {
30302					if (countL > 1) {
30303						var $temp$tokensL = tokensL,
30304							$temp$tokensR = rest1,
30305							$temp$countL = countL - 1;
30306						tokensL = $temp$tokensL;
30307						tokensR = $temp$tokensR;
30308						countL = $temp$countL;
30309						continue cleanAngleBracketTokens;
30310					} else {
30311						if (countL === 1) {
30312							return A2(
30313								$elm$core$List$cons,
30314								hd1,
30315								A3($dillonkearns$elm_markdown$Markdown$InlineParser$cleanAngleBracketTokens, tokensL, rest1, countL - 1));
30316						} else {
30317							var $temp$tokensL = tokensL,
30318								$temp$tokensR = rest1,
30319								$temp$countL = 0;
30320							tokensL = $temp$tokensL;
30321							tokensR = $temp$tokensR;
30322							countL = $temp$countL;
30323							continue cleanAngleBracketTokens;
30324						}
30325					}
30326				} else {
30327					var hd = tokensL.a;
30328					var rest = tokensL.b;
30329					if (_Utils_cmp(hd.d, hd1.d) < 0) {
30330						if (!countL) {
30331							return A2(
30332								$elm$core$List$cons,
30333								hd,
30334								A3($dillonkearns$elm_markdown$Markdown$InlineParser$cleanAngleBracketTokens, rest, tokensR, countL + 1));
30335						} else {
30336							var $temp$tokensL = rest,
30337								$temp$tokensR = tokensR,
30338								$temp$countL = countL + 1;
30339							tokensL = $temp$tokensL;
30340							tokensR = $temp$tokensR;
30341							countL = $temp$countL;
30342							continue cleanAngleBracketTokens;
30343						}
30344					} else {
30345						if (countL > 1) {
30346							var $temp$tokensL = tokensL,
30347								$temp$tokensR = rest1,
30348								$temp$countL = countL - 1;
30349							tokensL = $temp$tokensL;
30350							tokensR = $temp$tokensR;
30351							countL = $temp$countL;
30352							continue cleanAngleBracketTokens;
30353						} else {
30354							if (countL === 1) {
30355								return A2(
30356									$elm$core$List$cons,
30357									hd1,
30358									A3($dillonkearns$elm_markdown$Markdown$InlineParser$cleanAngleBracketTokens, tokensL, rest1, countL - 1));
30359							} else {
30360								var $temp$tokensL = tokensL,
30361									$temp$tokensR = rest1,
30362									$temp$countL = 0;
30363								tokensL = $temp$tokensL;
30364								tokensR = $temp$tokensR;
30365								countL = $temp$countL;
30366								continue cleanAngleBracketTokens;
30367							}
30368						}
30369					}
30370				}
30371			}
30372		}
30373	});
30374var $dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketLToken
30374Regex = A2(
30375	$elm$core$Maybe$withDefault,
30376	$elm$regex$Regex$never,
30377	$elm$regex$Regex$fromString('(\\\\*)(\\<)'));
30378var $elm$regex$Regex$find = _Regex_findAtMost(_Regex_infinity);
30379var $dillonkearns$elm_markdown$Markdown$InlineParser$AngleBracketOpen = {$: 4};
30380var $dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToAngleBracketLToken = function (regMatch) {
30381	var _v0 = regMatch.dI;
30382	if ((_v0.b && _v0.b.b) && (!_v0.b.a.$)) {
30383		var maybeBackslashes = _v0.a;
30384		var _v1 = _v0.b;
30385		var backslashesLength = A2(
30386			$elm$core$Maybe$withDefault,
30387			0,
30388			A2($elm$core$Maybe$map, $elm$core$String$length, maybeBackslashes));
30389		return $dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? $elm$core$Maybe$Just(
30390			{d: regMatch.d + backslashesLength, dj: 1, e: $dillonkearns$elm_markdown$Markdown$InlineParser$AngleBracketOpen}) : $elm$core$Maybe$Nothing;
30391	} else {
30392		return $elm$core$Maybe$Nothing;
30393	}
30394};
30395var $dillonkearns$elm_markdown$Markdown$InlineParser$findAngleBracketLTokens = function (str) {
30396	return A2(
30397		$elm$core$List$filterMap,
30398		$dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToAngleBracketLToken,
30399		A2($elm$regex$Regex$find, $dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketLTokenRegex, str));
30400};
30401var $dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketRTokenRegex = A2(
30402	$elm$core$Maybe$withDefault,
30403	$elm$regex$Regex$never,
30404	$elm$regex$Regex$fromString('(\\\\*)(\\>)'));
30405var $dillonkearns$elm_markdown$Markdown$InlineParser$AngleBracketClose = function (a) {
30406	return {$: 5, a: a};
30407};
30408var $dillonkearns$elm_markdown$Markdown$InlineParser$Escaped = 0;
30409var $dillonkearns$elm_markdown$Markdown$InlineParser$NotEscaped = 1;
30410var $dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToAngleBracketRToken = function (regMatch) {
30411	var _v0 = regMatch.dI;
30412	if ((_v0.b && _v0.b.b) && (!_v0.b.a.$)) {
30413		var maybeBackslashes = _v0.a;
30414		var _v1 = _v0.b;
30415		var backslashesLength = A2(
30416			$elm$core$Maybe$withDefault,
30417			0,
30418			A2($elm$core$Maybe$map, $elm$core$String$length, maybeBackslashes));
30419		return $elm$core$Maybe$Just(
30420			{
30421				d: regMatch.d + backslashesLength,
30422				dj: 1,
30423				e: $dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? $dillonkearns$elm_markdown$Markdown$InlineParser$AngleBracketClose(1) : $dillonkearns$elm_markdown$Markdown$InlineParser$AngleBracketClose(0)
30424			});
30425	} else {
30426		return $elm$core$Maybe$Nothing;
30427	}
30428};
30429var $dillonkearns$elm_markdown$Markdown$InlineParser$findAngleBracketRTokens = function (str) {
30430	return A2(
30431		$elm$core$List$filterMap,
30432		$dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToAngleBracketRToken,
30433		A2($elm$regex$Regex$find, $dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketRTokenRegex, str));
30434};
30435var $dillonkearns$elm_markdown$Markdown$InlineParser$asteriskEmphasisTokenRegex = A2(
30436	$elm$core$Maybe$withDefault,
30437	$elm$regex$Regex$never,
30438	$elm$regex$Regex$fromString('(\\\\*)([^*])?(\\*+)([^*])?'));
30439var $dillonkearns$elm_markdown$Markdown$InlineParser$EmphasisToken = F2(
30440	function (a, b) {
30441		return {$: 7, a: a, b: b};
30442	});
30443var $dillonkearns$elm_markdown$Markdown$InlineParser$isPunctuation = function (c) {
30444	switch (c) {
30445		case '!':
30446			return true;
30447		case '\"':
30448			return true;
30449		case '#':
30450			return true;
30451		case '%':
30452			return true;
30453		case '&':
30454			return true;
30455		case '\'':
30456			return true;
30457		case '(':
30458			return true;
30459		case ')':
30460			return true;
30461		case '*':
30462			return true;
30463		case ',':
30464			return true;
30465		case '-':
30466			return true;
30467		case '.':
30468			return true;
30469		case '/':
30470			return true;
30471		case ':':
30472			return true;
30473		case ';':
30474			return true;
30475		case '?':
30476			return true;
30477		case '@':
30478			return true;
30479		case '[':
30480			return true;
30481		case ']':
30482			return true;
30483		case '_':
30484			return true;
30485		case '{':
30486			return true;
30487		case '}':
30488			return true;
30489		case '~':
30490			return true;
30491		default:
30492			return false;
30493	}
30494};
30495var $dillonkearns$elm_markdown$Markdown$InlineParser$containPunctuation = A2(
30496	$elm$core$String$foldl,
30497	F2(
30498		function (c, accum) {
30499			return accum || $dillonkearns$elm_markdown$Markdown$InlineParser$isPunctuation(c);
30500		}),
30501	false);
30502var $dillonkearns$elm_markdown$Markdown$InlineParser$isWhitespace = function (c) {
30503	switch (c) {
30504		case ' ':
30505			return true;
30506		case '\u000C':
30507			return true;
30508		case '\n':
30509			return true;
30510		case '\u000D':
30511			return true;
30512		case '\t':
30513			return true;
30514		case '\u000B':
30515			return true;
30516		case '\u00A0':
30517			return true;
30518		case '\u2028':
30519			return true;
30520		case '\u2029':
30521			return true;
30522		default:
30523			return false;
30524	}
30525};
30526var $dillonkearns$elm_markdown$Markdown$InlineParser$containSpace = A2(
30527	$elm$core$String$foldl,
30528	F2(
30529		function (c, accum) {
30530			return accum || $dillonkearns$elm_markdown$Markdown$InlineParser$isWhitespace(c);
30531		}),
30532	false);
30533var $dillonkearns$elm_markdown$Markdown$InlineParser$getFringeRank = function (mstring) {
30534	if (!mstring.$) {
30535		var string = mstring.a;
30536		return ($elm$core$String$isEmpty(string) || $dillonkearns$elm_markdown$Markdown$InlineParser$containSpace(string)) ? 0 : ($dillonkearns$elm_markdown$Markdown$InlineParser$containPunctuation(string) ? 1 : 2);
30537	} else {
30538		return 0;
30539	}
30540};
30541var $dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToEmphasisToken = F3(
30542	function (_char, rawText, regMatch) {
30543		var _v0 = regMatch.dI;
30544		if ((((_v0.b && _v0.b.b) && _v0.b.b.b) && (!_v0.b.b.a.$)) && _v0.b.b.b.b) {
30545			var maybeBackslashes = _v0.a;
30546			var _v1 = _v0.b;
30547			var maybeLeftFringe = _v1.a;
30548			var _v2 = _v1.b;
30549			var delimiter = _v2.a.a;
30550			var _v3 = _v2.b;
30551			var maybeRightFringe = _v3.a;
30552			var rFringeRank = $dillonkearns$elm_markdown$Markdown$InlineParser$getFringeRank(maybeRightFringe);
30553			var leftFringeLength = function () {
30554				if (!maybeLeftFringe.$) {
30555					var left = maybeLeftFringe.a;
30556					return $elm$core$String$length(left);
30557				} else {
30558					return 0;
30559				}
30560			}();
30561			var mLeftFringe = ((!(!regMatch.d)) && (!leftFringeLength)) ? $elm$core$Maybe$Just(
30562				A3($elm$core$String$slice, regMatch.d - 1, regMatch.d, rawText)) : maybeLeftFringe;
30563			var backslashesLength = function () {
30564				if (!maybeBackslashes.$) {
30565					var backslashes = maybeBackslashes.a;
30566					return $elm$core$String$length(backslashes);
30567				} else {
30568					return 0;
30569				}
30570			}();
30571			var isEscaped = ((!$dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength)) && (!leftFringeLength)) || function () {
30572				if ((!mLeftFringe.$) && (mLeftFringe.a === '\\')) {
30573					return true;
30574				} else {
30575					return false;
30576				}
30577			}();
30578			var delimiterLength = isEscaped ? ($elm$core$String$length(delimiter) - 1) : $elm$core$String$length(delimiter);
30579			var lFringeRank = isEscaped ? 1 : $dillonkearns$elm_markdown$Markdown$InlineParser$getFringeRank(mLeftFringe);
30580			if ((delimiterLength <= 0) || ((_char === '_') && ((lFringeRank === 2) && (rFringeRank === 2)))) {
30581				return $elm$core$Maybe$Nothing;
30582			} else {
30583				var index = ((regMatch.d + backslashesLength) + leftFringeLength) + (isEscaped ? 1 : 0);
30584				return $elm$core$Maybe$Just(
30585					{
30586						d: index,
30587						dj: delimiterLength,
30588						e: A2(
30589							$dillonkearns$elm_markdown$Markdown$InlineParser$EmphasisToken,
30590							_char,
30591							{b9: lFringeRank, cy: rFringeRank})
30592					});
30593			}
30594		} else {
30595			return $elm$core$Maybe$Nothing;
30596		}
30597	});
30598var $dillonkearns$elm_markdown$Markdown$InlineParser$findAsteriskEmphasisTokens = function (str) {
30599	return A2(
30600		$elm$core$List$filterMap,
30601		A2($dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToEmphasisToken, '*', str),
30602		A2($elm$regex$Regex$find, $dillonkearns$elm_markdown$Markdown$InlineParser$asteriskEmphasisTokenRegex, str));
30603};
30604var $dillonkearns$elm_markdown$Markdown$InlineParser$codeTokenRegex = A2(
30605	$elm$core$Maybe$withDefault,
30606	$elm$regex$Regex$never,
30607	$elm$regex$Regex$fromString('(\\\\*)(\\`+)'));
30608var $dillonkearns$elm_markdown$Markdown$InlineParser$CodeToken = function (a) {
30609	return {$: 0, a: a};
30610};
30611var $dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToCodeToken = function (regMatch) {
30612	var _v0 = regMatch.dI;
30613	if ((_v0.b && _v0.b.b) && (!_v0.b.a.$)) {
30614		var maybeBackslashes = _v0.a;
30615		var _v1 = _v0.b;
30616		var backtick = _v1.a.a;
30617		var backslashesLength = A2(
30618			$elm$core$Maybe$withDefault,
30619			0,
30620			A2($elm$core$Maybe$map, $elm$core$String$length, maybeBackslashes));
30621		return $elm$core$Maybe$Just(
30622			{
30623				d: regMatch.d + backslashesLength,
30624				dj: $elm$core$String$length(backtick),
30625				e: $dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? $dillonkearns$elm_markdown$Markdown$InlineParser$CodeToken(1) : $dillonkearns$elm_markdown$Markdown$InlineParser$CodeToken(0)
30626			});
30627	} else {
30628		return $elm$core$Maybe$Nothing;
30629	}
30630};
30631var $dillonkearns$elm_markdown$Markdown$InlineParser$findCodeTokens = function (str) {
30632	return A2(
30633		$elm$core$List$filterMap,
30634		$dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToCodeToken,
30635		A2($elm$regex$Regex$find, $dillonkearns$elm_markdown$Markdown$InlineParser$codeTokenRegex, str));
30636};
30637var $dillonkearns$elm_markdown$Markdown$InlineParser$hardBreakTokenRegex = A2(
30638	$elm$core$Maybe$withDefault,
30639	$elm$regex$Regex$never,
30640	$elm$regex$Regex$fromString('(?:(\\\\+)|( {2,}))\\n'));
30641var $dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken = {$: 8};
30642var $dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToHardBreakToken = function (regMatch) {
30643	var _v0 = regMatch.dI;
30644	_v0$2:
30645	while (true) {
30646		if (_v0.b) {
30647			if (!_v0.a.$) {
30648				var backslashes = _v0.a.a;
30649				var backslashesLength = $elm$core$String$length(backslashes);
30650				return (!$dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength)) ? $elm$core$Maybe$Just(
30651					{d: (regMatch.d + backslashesLength) - 1, dj: 2, e: $dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken}) : $elm$core$Maybe$Nothing;
30652			} else {
30653				if (_v0.b.b && (!_v0.b.a.$)) {
30654					var _v1 = _v0.b;
30655					return $elm$core$Maybe$Just(
30656						{
30657							d: regMatch.d,
30658							dj: $elm$core$String$length(regMatch.bf),
30659							e: $dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken
30660						});
30661				} else {
30662					break _v0$2;
30663				}
30664			}
30665		} else {
30666			break _v0$2;
30667		}
30668	}
30669	return $elm$core$Maybe$Nothing;
30670};
30671var $dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToSoftHardBreakToken = function (regMatch) {
30672	var _v0 = regMatch.dI;
30673	_v0$2:
30674	while (true) {
30675		if (_v0.b) {
30676			if (!_v0.a.$) {
30677				var backslashes = _v0.a.a;
30678				var backslashesLength = $elm$core$String$length(backslashes);
30679				return $dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? $elm$core$Maybe$Just(
30680					{d: regMatch.d + backslashesLength, dj: 1, e: $dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken}) : $elm$core$Maybe$Just(
30681					{d: (regMatch.d + backslashesLength) - 1, dj: 2, e: $dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken});
30682			} else {
30683				if (_v0.b.b) {
30684					var _v1 = _v0.b;
30685					return $elm$core$Maybe$Just(
30686						{
30687							d: regMatch.d,
30688							dj: $elm$core$String$length(regMatch.bf),
30689							e: $dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken
30690						});
30691				} else {
30692					break _v0$2;
30693				}
30694			}
30695		} else {
30696			break _v0$2;
30697		}
30698	}
30699	return $elm$core$Maybe$Nothing;
30700};
30701var $dillonkearns$elm_markdown$Markdown$InlineParser$softAsHardLineBreak = false;
30702var $dillonkearns$elm_markdown$Markdown$InlineParser$softAsHardLineBreakTokenRegex = A2(
30703	$elm$core$Maybe$withDefault,
30704	$elm$regex$Regex$never,
30705	$elm$regex$Regex$fromString('(?:(\\\\+)|( *))\\n'));
30706var $dillonkearns$elm_markdown$Markdown$InlineParser$findHardBreakTokens = function (str) {
30707	return $dillonkearns$elm_markdown$Markdown$InlineParser$softAsHardLineBreak ? A2(
30708		$elm$core$List$filterMap,
30709		$dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToSoftHardBreakToken,
30710		A2($elm$regex$Regex$find, $dillonkearns$elm_markdown$Markdown$InlineParser$softAsHardLineBreakTokenRegex, str)) : A2(
30711		$elm$core$List$filterMap,
30712		$dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToHardBreakToken,
30713		A2($elm$regex$Regex$find, $dillonkearns$elm_markdown$Markdown$InlineParser$hardBreakTokenRegex, str));
30714};
30715var $dillonkearns$elm_markdown$Markdown$InlineParser$linkImageCloseTokenRegex = A2(
30716	$elm$core$Maybe$withDefault,
30717	$elm$regex$Regex$never,
30718	$elm$regex$Regex$fromString('(\\\\*)(\\])'));
30719var $dillonkearns$elm_markdown$Markdown$InlineParser$SquareBracketClose = {$: 3};
30720var $dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToLinkImageCloseToken = function (regMatch) {
30721	var _v0 = regMatch.dI;
30722	if ((_v0.b && _v0.b.b) && (!_v0.b.a.$)) {
30723		var maybeBackslashes = _v0.a;
30724		var _v1 = _v0.b;
30725		var backslashesLength = A2(
30726			$elm$core$Maybe$withDefault,
30727			0,
30728			A2($elm$core$Maybe$map, $elm$core$String$length, maybeBackslashes));
30729		return $dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? $elm$core$Maybe$Just(
30730			{d: regMatch.d + backslashesLength, dj: 1, e: $dillonkearns$elm_markdown$Markdown$InlineParser$SquareBracketClose}) : $elm$core$Maybe$Nothing;
30731	} else {
30732		return $elm$core$Maybe$Nothing;
30733	}
30734};
30735var $dillonkearns$elm_markdown$Markdown$InlineParser$findLinkImageCloseTokens = function (str) {
30736	return A2(
30737		$elm$core$List$filterMap,
30738		$dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToLinkImageCloseToken,
30739		A2($elm$regex$Regex$find, $dillonkearns$elm_markdown$Markdown$InlineParser$linkImageCloseTokenRegex, str));
30740};
30741var $dillonkearns$elm_markdown$Markdown$InlineParser$linkImageOpenTokenRegex = A2(
30742	$elm$core$Maybe$withDefault,
30743	$elm$regex$Regex$never,
30744	$elm$regex$Regex$fromString('(\\\\*)(\\!)?(\\[)'));
30745var $dillonkearns$elm_markdown$Markdown$InlineParser$Active = 0;
30746var $dillonkearns$elm_markdown$Markdown$InlineParser$ImageOpenToken = {$: 2};
30747var $dillonkearns$elm_markdown$Markdown$InlineParser$LinkOpenToken = function (a) {
30748	return {$: 1, a: a};
30749};
30750var $dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToLinkImageOpenToken = function (regMatch) {
30751	var _v0 = regMatch.dI;
30752	if (((_v0.b && _v0.b.b) && _v0.b.b.b) && (!_v0.b.b.a.$)) {
30753		var maybeBackslashes = _v0.a;
30754		var _v1 = _v0.b;
30755		var maybeImageOpen = _v1.a;
30756		var _v2 = _v1.b;
30757		var backslashesLength = A2(
30758			$elm$core$Maybe$withDefault,
30759			0,
30760			A2($elm$core$Maybe$map, $elm$core$String$length, maybeBackslashes));
30761		var isEscaped = !$dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength);
30762		var index = isEscaped ? ((regMatch.d + backslashesLength) + 1) : (regMatch.d + backslashesLength);
30763		if (isEscaped) {
30764			if (!maybeImageOpen.$) {
30765				return $elm$core$Maybe$Just(
30766					{
30767						d: index,
30768						dj: 1,
30769						e: $dillonkearns$elm_markdown$Markdown$InlineParser$LinkOpenToken(0)
30770					});
30771			} else {
30772				return $elm$core$Maybe$Nothing;
30773			}
30774		} else {
30775			if (!maybeImageOpen.$) {
30776				return $elm$core$Maybe$Just(
30777					{d: index, dj: 2, e: $dillonkearns$elm_markdown$Markdown$InlineParser$ImageOpenToken});
30778			} else {
30779				return $elm$core$Maybe$Just(
30780					{
30781						d: index,
30782						dj: 1,
30783						e: $dillonkearns$elm_markdown$Markdown$InlineParser$LinkOpenToken(0)
30784					});
30785			}
30786		}
30787	} else {
30788		return $elm$core$Maybe$Nothing;
30789	}
30790};
30791var $dillonkearns$elm_markdown$Markdown$InlineParser$findLinkImageOpenTokens = function (str) {
30792	return A2(
30793		$elm$core$List$filterMap,
30794		$dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToLinkImageOpenToken,
30795		A2($elm$regex$Regex$find, $dillonkearns$elm_markdown$Markdown$InlineParser$linkImageOpenToken
30795Regex, str));
30796};
30797var $dillonkearns$elm_markdown$Markdown$InlineParser$StrikethroughToken = function (a) {
30798	return {$: 9, a: a};
30799};
30800var $dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToStrikethroughToken = function (regMatch) {
30801	var _v0 = regMatch.dI;
30802	if ((_v0.b && _v0.b.b) && (!_v0.b.a.$)) {
30803		var maybeBackslashes = _v0.a;
30804		var _v1 = _v0.b;
30805		var tilde = _v1.a.a;
30806		var backslashesLength = A2(
30807			$elm$core$Maybe$withDefault,
30808			0,
30809			A2($elm$core$Maybe$map, $elm$core$String$length, maybeBackslashes));
30810		var _v2 = $dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? _Utils_Tuple2(
30811			$elm$core$String$length(tilde),
30812			$dillonkearns$elm_markdown$Markdown$InlineParser$StrikethroughToken(1)) : _Utils_Tuple2(
30813			$elm$core$String$length(tilde),
30814			$dillonkearns$elm_markdown$Markdown$InlineParser$StrikethroughToken(0));
30815		var length = _v2.a;
30816		var meaning = _v2.b;
30817		return $elm$core$Maybe$Just(
30818			{d: regMatch.d + backslashesLength, dj: length, e: meaning});
30819	} else {
30820		return $elm$core$Maybe$Nothing;
30821	}
30822};
30823var $dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughTokenRegex = A2(
30824	$elm$core$Maybe$withDefault,
30825	$elm$regex$Regex$never,
30826	$elm$regex$Regex$fromString('(\\\\*)(~{2,})([^~])?'));
30827var $dillonkearns$elm_markdown$Markdown$InlineParser$findStrikethroughTokens = function (str) {
30828	return A2(
30829		$elm$core$List$filterMap,
30830		$dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToStrikethroughToken,
30831		A2($elm$regex$Regex$find, $dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughTokenRegex, str));
30832};
30833var $dillonkearns$elm_markdown$Markdown$InlineParser$underlineEmphasisTokenRegex = A2(
30834	$elm$core$Maybe$withDefault,
30835	$elm$regex$Regex$never,
30836	$elm$regex$Regex$fromString('(\\\\*)([^_])?(\\_+)([^_])?'));
30837var $dillonkearns$elm_markdown$Markdown$InlineParser$findUnderlineEmphasisTokens = function (str) {
30838	return A2(
30839		$elm$core$List$filterMap,
30840		A2($dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToEmphasisToken, '_', str),
30841		A2($elm$regex$Regex$find, $dillonkearns$elm_markdown$Markdown$InlineParser$underlineEmphasisTokenRegex, str));
30842};
30843var $dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex = F2(
30844	function (left, right) {
30845		if (left.b) {
30846			var lfirst = left.a;
30847			var lrest = left.b;
30848			if (right.b) {
30849				var rfirst = right.a;
30850				var rrest = right.b;
30851				return (_Utils_cmp(lfirst.d, rfirst.d) < 0) ? A2(
30852					$elm$core$List$cons,
30853					lfirst,
30854					A2($dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, lrest, right)) : A2(
30855					$elm$core$List$cons,
30856					rfirst,
30857					A2($dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, left, rrest));
30858			} else {
30859				return left;
30860			}
30861		} else {
30862			return right;
30863		}
30864	});
30865var $dillonkearns$elm_markdown$Markdown$InlineParser$tokenize = function (rawText) {
30866	return A2(
30867		$dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex,
30868		A3(
30869			$dillonkearns$elm_markdown$Markdown$InlineParser$cleanAngleBracketTokens,
30870			A2(
30871				$elm$core$List$sortBy,
30872				function ($) {
30873					return $.d;
30874				},
30875				$dillonkearns$elm_markdown$Markdown$InlineParser$findAngleBracketLTokens(rawText)),
30876			A2(
30877				$elm$core$List$sortBy,
30878				function ($) {
30879					return $.d;
30880				},
30881				$dillonkearns$elm_markdown$Markdown$InlineParser$findAngleBracketRTokens(rawText)),
30882			0),
30883		A2(
30884			$dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex,
30885			$dillonkearns$elm_markdown$Markdown$InlineParser$findHardBreakTokens(rawText),
30886			A2(
30887				$dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex,
30888				$dillonkearns$elm_markdown$Markdown$InlineParser$findLinkImageCloseTokens(rawText),
30889				A2(
30890					$dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex,
30891					$dillonkearns$elm_markdown$Markdown$InlineParser$findLinkImageOpenTokens(rawText),
30892					A2(
30893						$dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex,
30894						$dillonkearns$elm_markdown$Markdown$InlineParser$findStrikethroughTokens(rawText),
30895						A2(
30896							$dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex,
30897							$dillonkearns$elm_markdown$Markdown$InlineParser$findUnderlineEmphasisTokens(rawText),
30898							A2(
30899								$dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex,
30900								$dillonkearns$elm_markdown$Markdown$InlineParser$findAsteriskEmphasisTokens(rawText),
30901								$dillonkearns$elm_markdown$Markdown$InlineParser$findCodeTokens(rawText))))))));
30902};
30903var $dillonkearns$elm_markdown$Markdown$InlineParser$CodeType = {$: 2};
30904var $dillonkearns$elm_markdown$Markdown$InlineParser$EmphasisType = function (a) {
30905	return {$: 7, a: a};
30906};
30907var $dillonkearns$elm_markdown$Markdown$InlineParser$HtmlType = function (a) {
30908	return {$: 6, a: a};
30909};
30910var $dillonkearns$elm_markdown$Markdown$InlineParser$ImageType = function (a) {
30911	return {$: 5, a: a};
30912};
30913var $dillonkearns$elm_markdown$Markdown$InlineParser$Inactive = 1;
30914var $dillonkearns$elm_markdown$Markdown$InlineParser$LinkType = function (a) {
30915	return {$: 4, a: a};
30916};
30917var $dillonkearns$elm_markdown$Markdown$InlineParser$StrikethroughType = {$: 8};
30918var $dillonkearns$elm_markdown$Markdown$InlineParser$AutolinkType = function (a) {
30919	return {$: 3, a: a};
30920};
30921var $elm$regex$Regex$contains = _Regex_contains;
30922var $dillonkearns$elm_markdown$Markdown$InlineParser$decodeUrlRegex = A2(
30923	$elm$core$Maybe$withDefault,
30924	$elm$regex$Regex$never,
30925	$elm$regex$Regex$fromString('%(?:3B|2C|2F|3F|3A|40|26|3D|2B|24|23|25)'));
30926var $elm$url$Url$percentDecode = _Url_percentDecode;
30927var $elm$url$Url$percentEncode = _Url_percentEncode;
30928var $dillonkearns$elm_markdown$Markdown$InlineParser$encodeUrl = A2(
30929	$elm$core$Basics$composeR,
30930	$elm$url$Url$percentEncode,
30931	A2(
30932		$elm$regex$Regex$replace,
30933		$dillonkearns$elm_markdown$Markdown$InlineParser$decodeUrlRegex,
30934		function (match) {
30935			return A2(
30936				$elm$core$Maybe$withDefault,
30937				match.bf,
30938				$elm$url$Url$percentDecode(match.bf));
30939		}));
30940var $dillonkearns$elm_markdown$Markdown$InlineParser$urlRegex = A2(
30941	$elm$core$Maybe$withDefault,
30942	$elm$regex$Regex$never,
30943	$elm$regex$Regex$fromString('^([A-Za-z][A-Za-z0-9.+\\-]{1,31}:[^<>\\x00-\\x20]*)$'));
30944var $dillonkearns$elm_markdown$Markdown$InlineParser$autolinkToMatch = function (_v0) {
30945	var match = _v0;
30946	return A2($elm$regex$Regex$contains, $dillonkearns$elm_markdown$Markdown$InlineParser$urlRegex, match.j) ? $elm$core$Result$Ok(
30947		_Utils_update(
30948			match,
30949			{
30950				H: $dillonkearns$elm_markdown$Markdown$InlineParser$AutolinkType(
30951					_Utils_Tuple2(
30952						match.j,
30953						$dillonkearns$elm_markdown$Markdown$InlineParser$encodeUrl(match.j)))
30954			})) : $elm$core$Result$Err(match);
30955};
30956var $elm$regex$Regex$findAtMost = _Regex_findAtMost;
30957var $dillonkearns$elm_markdown$Markdown$Helpers$insideSquareBracketRegex = '[^\\[\\]\\\\]*(?:\\\\.[^\\[\\]\\\\]*)*';
30958var $dillonkearns$elm_markdown$Markdown$InlineParser$refLabelRegex = A2(
30959	$elm$core$Maybe$withDefault,
30960	$elm$regex$Regex$never,
30961	$elm$regex$Regex$fromString('^\\[\\s*(' + ($dillonkearns$elm_markdown$Markdown$Helpers$insideSquareBracketRegex + ')\\s*\\]')));
30962var $dillonkearns$elm_markdown$Markdown$Helpers$cleanWhitespaces = function (original) {
30963	return original;
30964};
30965var $dillonkearns$elm_markdown$Markdown$Helpers$prepareRefLabel = A2($elm$core$Basics$composeR, $dillonkearns$elm_markdown$Markdown$Helpers$cleanWhitespaces, $elm$core$String$toLower);
30966var $dillonkearns$elm_markdown$Markdown$InlineParser$prepareUrlAndTitle = F2(
30967	function (rawUrl, maybeTitle) {
30968		return _Utils_Tuple2(
30969			$dillonkearns$elm_markdown$Markdown$InlineParser$encodeUrl(
30970				$dillonkearns$elm_markdown$Markdown$Helpers$formatStr(rawUrl)),
30971			A2($elm$core$Maybe$map, $dillonkearns$elm_markdown$Markdown$Helpers$formatStr, maybeTitle));
30972	});
30973var $dillonkearns$elm_markdown$Markdown$InlineParser$refRegexToMatch = F3(
30974	function (matchModel, references, maybeRegexMatch) {
30975		var refLabel = function (str) {
30976			return $elm$core$String$isEmpty(str) ? matchModel.j : str;
30977		}(
30978			A2(
30979				$elm$core$Maybe$withDefault,
30980				matchModel.j,
30981				A2(
30982					$elm$core$Maybe$withDefault,
30983					$elm$core$Maybe$Nothing,
30984					A2(
30985						$elm$core$Maybe$andThen,
30986						A2(
30987							$elm$core$Basics$composeR,
30988							function ($) {
30989								return $.dI;
30990							},
30991							$elm$core$List$head),
30992						maybeRegexMatch))));
30993		var _v0 = A2(
30994			$elm$core$Dict$get,
30995			$dillonkearns$elm_markdown$Markdown$Helpers$prepareRefLabel(refLabel),
30996			references);
30997		if (_v0.$ === 1) {
30998			return $elm$core$Maybe$Nothing;
30999		} else {
31000			var _v1 = _v0.a;
31001			var rawUrl = _v1.a;
31002			var maybeTitle = _v1.b;
31003			var type_ = function () {
31004				var _v3 = matchModel.H;
31005				if (_v3.$ === 5) {
31006					return $dillonkearns$elm_markdown$Markdown$InlineParser$ImageType(
31007						A2($dillonkearns$elm_markdown$Markdown$InlineParser$prepareUrlAndTitle, rawUrl, maybeTitle));
31008				} else {
31009					return $dillonkearns$elm_markdown$Markdown$InlineParser$LinkType(
31010						A2($dillonkearns$elm_markdown$Markdown$InlineParser$prepareUrlAndTitle, rawUrl, maybeTitle));
31011				}
31012			}();
31013			var regexMatchLength = function () {
31014				if (!maybeRegexMatch.$) {
31015					var match = maybeRegexMatch.a.bf;
31016					return $elm$core$String$length(match);
31017				} else {
31018					return 0;
31019				}
31020			}();
31021			return $elm$core$Maybe$Just(
31022				_Utils_update(
31023					matchModel,
31024					{g: matchModel.g + regexMatchLength, H: type_}));
31025		}
31026	});
31027var $dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineReferences = F3(
31028	function (remainText, _v0, references) {
31029		var tempMatch = _v0;
31030		var matches = A3($elm$regex$Regex$findAtMost, 1, $dillonkearns$elm_markdown$Markdown$InlineParser$refLabelRegex, remainText);
31031		return A3(
31032			$dillonkearns$elm_markdown$Markdown$InlineParser$refRegexToMatch,
31033			tempMatch,
31034			references,
31035			$elm$core$List$head(matches));
31036	});
31037var $dillonkearns$elm_markdown$Markdown$Helpers$lineEndChars = '\\f\\v\\r\\n';
31038var $dillonkearns$elm_markdown$Markdown$Helpers$whiteSpaceChars = ' \\t\\f\\v\\r\\n';
31039var $dillonkearns$elm_markdown$Markdown$InlineParser$hrefRegex = '(?:<([^<>' + ($dillonkearns$elm_markdown$Markdown$Helpers$lineEndChars + (']*)>|([^' + ($dillonkearns$elm_markdown$Markdown$Helpers$whiteSpaceChars + ('\\(\\)\\\\]*(?:\\\\.[^' + ($dillonkearns$elm_markdown$Markdown$Helpers$whiteSpaceChars + '\\(\\)\\\\]*)*))')))));
31040var $dillonkearns$elm_markdown$Markdown$Helpers$titleRegex = '(?:[' + ($dillonkearns$elm_markdown$Markdown$Helpers$whiteSpaceChars + (']+' + ('(?:\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\'|' + ('\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"|' + '\\(([^\\)\\\\]*(?:\\\\.[^\\)\\\\]*)*)\\)))?'))));
31041var $dillonkearns$elm_markdown$Markdown$InlineParser$inlineLinkTypeOrImageTypeRegex = A2(
31042	$elm$core$Maybe$withDefault,
31043	$elm$regex$Regex$never,
31044	$elm$regex$Regex$fromString('^\\(\\s*' + ($dillonkearns$elm_markdown$Markdown$InlineParser$hrefRegex + ($dillonkearns$elm_markdown$Markdown$Helpers$titleRegex + '\\s*\\)'))));
31045var $dillonkearns$elm_markdown$Markdown$Helpers$returnFirstJust = function (maybes) {
31046	var process = F2(
31047		function (a, maybeFound) {
31048			if (!maybeFound.$) {
31049				var found = maybeFound.a;
31050				return $elm$core$Maybe$Just(found);
31051			} else {
31052				return a;
31053			}
31054		});
31055	return A3($elm$core$List$foldl, process, $elm$core$Maybe$Nothing, maybes);
31056};
31057var $dillonkearns$elm_markdown$Markdown$InlineParser$inlineLinkTypeOrImageTypeRegexToMatch = F2(
31058	function (matchModel, regexMatch) {
31059		var _v0 = regexMatch.dI;
31060		if ((((_v0.b && _v0.b.b) && _v0.b.b.b) && _v0.b.b.b.b) && _v0.b.b.b.b.b) {
31061			var maybeRawUrlAngleBrackets = _v0.a;
31062			var _v1 = _v0.b;
31063			var maybeRawUrlWithoutBrackets = _v1.a;
31064			var _v2 = _v1.b;
31065			var maybeTitleSingleQuotes = _v2.a;
31066			var _v3 = _v2.b;
31067			var maybeTitleDoubleQuotes = _v3.a;
31068			var _v4 = _v3.b;
31069			var maybeTitleParenthesis = _v4.a;
31070			var maybeTitle = $dillonkearns$elm_markdown$Markdown$Helpers$returnFirstJust(
31071				_List_fromArray(
31072					[maybeTitleSingleQuotes, maybeTitleDoubleQuotes, maybeTitleParenthesis]));
31073			var toMatch = function (rawUrl) {
31074				return _Utils_update(
31075					matchModel,
31076					{
31077						g: matchModel.g + $elm$core$String$length(regexMatch.bf),
31078						H: function () {
31079							var _v5 = matchModel.H;
31080							if (_v5.$ === 5) {
31081								return $dillonkearns$elm_markdown$Markdown$InlineParser$ImageType;
31082							} else {
31083								return $dillonkearns$elm_markdown$Markdown$InlineParser$LinkType;
31084							}
31085						}()(
31086							A2($dillonkearns$elm_markdown$Markdown$InlineParser$prepareUrlAndTitle, rawUrl, maybeTitle))
31087					});
31088			};
31089			var maybeRawUrl = $dillonkearns$elm_markdown$Markdown$Helpers$returnFirstJust(
31090				_List_fromArray(
31091					[maybeRawUrlAngleBrackets, maybeRawUrlWithoutBrackets]));
31092			return $elm$core$Maybe$Just(
31093				toMatch(
31094					A2($elm$core$Maybe$withDefault, '', maybeRawUrl)));
31095		} else {
31096			return $elm$core$Maybe$Nothing;
31097		}
31098	});
31099var $dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineLinkTypeOrImageType = F3(
31100	function (remainText, _v0, refs) {
31101		var tempMatch = _v0;
31102		var _v1 = A3($elm$regex$Regex$findAtMost, 1, $dillonkearns$elm_markdown$Markdown$InlineParser$inlineLinkTypeOrImageTypeRegex, remainText);
31103		if (_v1.b) {
31104			var first = _v1.a;
31105			var _v2 = A2($dillonkearns$elm_markdown$Markdown$InlineParser$inlineLinkTypeOrImageTypeRegexToMatch, tempMatch, first);
31106			if (!_v2.$) {
31107				var match = _v2.a;
31108				return $elm$core$Maybe$Just(match);
31109			} else {
31110				return A3($dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineReferences, remainText, tempMatch, refs);
31111			}
31112		} else {
31113			return A3($dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineReferences, remainText, tempMatch, refs);
31114		}
31115	});
31116var $dillonkearns$elm_markdown$Markdown$InlineParser$checkParsedAheadOverlapping = F2(
31117	function (_v0, remainMatches) {
31118		var match = _v0;
31119		var overlappingMatches = $elm$core$List$filter(
31120			function (_v1) {
31121				var testMatch = _v1;
31122				return (_Utils_cmp(match.g, testMatch.i) > 0) && (_Utils_cmp(match.g, testMatch.g) < 0);
31123			});
31124		return ($elm$core$List$isEmpty(remainMatches) || $elm$core$List$isEmpty(
31125			overlappingMatches(remainMatches))) ? $elm$core$Maybe$Just(
31126			A2($elm$core$List$cons, match, remainMatches)) : $elm$core$Maybe$Nothing;
31127	});
31128var $dillonkearns$elm_markdown$Markdown$InlineParser$emailRegex = A2(
31129	$elm$core$Maybe$withDefault,
31130	$elm$regex$Regex$never,
31131	$elm$regex$Regex$fromString('^([a-zA-Z0-9.!#$%&\'*+\\/=?^_`{|}~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*)$'));
31132var $dillonkearns$elm_markdown$Markdown$InlineParser$emailAutolinkTypeToMatch = function (_v0) {
31133	var match = _v0;
31134	return A2($elm$regex$Regex$contains, $dillonkearns$elm_markdown$Markdown$InlineParser$emailRegex, match.j) ? $elm$core$Result$Ok(
31135		_Utils_update(
31136			match,
31137			{
31138				H: $dillonkearns$elm_markdown$Markdown$InlineParser$AutolinkType(
31139					_Utils_Tuple2(
31140						match.j,
31141						'mailto:' + $dillonkearns$elm_markdown$Markdown$InlineParser$encodeUrl(match.j)))
31142			})) : $elm$core$Result$Err(match);
31143};
31144var $dillonkearns$elm_markdown$Markdown$InlineParser$findTokenHelp = F3(
31145	function (innerTokens, isToken, tokens) {
31146		findTokenHelp:
31147		while (true) {
31148			if (!tokens.b) {
31149				return $elm$core$Maybe$Nothing;
31150			} else {
31151				var nextToken = tokens.a;
31152				var remainingTokens = tokens.b;
31153				if (isToken(nextToken)) {
31154					return $elm$core$Maybe$Just(
31155						_Utils_Tuple3(
31156							nextToken,
31157							$elm$core$List$reverse(innerTokens),
31158							remainingTokens));
31159				} else {
31160					var $temp$innerTokens = A2($elm$core$List$cons, nextToken, innerTokens),
31161						$temp$isToken = isToken,
31162						$temp$tokens = remainingTokens;
31163					innerTokens = $temp$innerTokens;
31164					isToken = $temp$isToken;
31165					tokens = $temp$tokens;
31166					continue findTokenHelp;
31167				}
31168			}
31169		}
31170	});
31171var $dillonkearns$elm_markdown$Markdown$InlineParser$findToken = F2(
31172	function (isToken, tokens) {
31173		return A3($dillonkearns$elm_markdown$Markdown$InlineParser$findTokenHelp, _List_Nil, isToken, tokens);
31174	});
31175var $dillonkearns$elm_markdown$Markdown$InlineParser$HtmlToken = F2(
31176	function (a, b) {
31177		return {$: 6, a: a, b: b};
31178	});
31179var $dillonkearns$elm_markdown$Markdown$InlineParser$NotOpening = 0;
31180var $dillonkearns$elm_markdown$Markdown$InlineParser$htmlToToken = F2(
31181	function (rawText, _v0) {
31182		var match = _v0;
31183		var consumedCharacters = A2(
31184			$elm$parser$Parser$Advanced$keeper,
31185			A2(
31186				$elm$parser$Parser$Advanced$keeper,
31187				A2(
31188					$elm$parser$Parser$Advanced$keeper,
31189					$elm$parser$Parser$Advanced$succeed(
31190						F3(
31191							function (startOffset, htmlTag, endOffset) {
31192								return {ej: htmlTag, dj: endOffset - startOffset};
31193							})),
31194					$elm$parser$Parser$Advanced$getOffset),
31195				$dillonkearns$elm_markdown$HtmlParser$html),
31196			$elm$parser$Parser$Advanced$getOffset);
31197		var parsed = A2(
31198			$elm$parser$Parser$Advanced$run,
31199			consumedCharacters,
31200			A2($elm$core$String$dropLeft, match.i, rawText));
31201		if (!parsed.$) {
31202			var htmlTag = parsed.a.ej;
31203			var length = parsed.a.dj;
31204			var htmlToken = A2($dillonkearns$elm_markdown$Markdown$InlineParser$HtmlToken, 0, htmlTag);
31205			return $elm$core$Maybe$Just(
31206				{d: match.i, dj: length, e: htmlToken});
31207		} else {
31208			return $elm$core$Maybe$Nothing;
31209		}
31210	});
31211var $dillonkearns$elm_markdown$Markdown$Helpers$ifError = F2(
31212	function (_function, result) {
31213		if (!result.$) {
31214			return result;
31215		} else {
31216			var err = result.a;
31217			return _function(err);
31218		}
31219	});
31220var $dillonkearns$elm_markdown$Markdown$InlineParser$isCodeTokenPair = F2(
31221	function (closeToken, openToken) {
31222		var _v0 = openToken.e;
31223		if (!_v0.$) {
31224			if (!_v0.a) {
31225				var _v1 = _v0.a;
31226				return _Utils_eq(openToken.dj - 1, closeToken.dj);
31227			} else {
31228				var _v2 = _v0.a;
31229				return _Utils_eq(openToken.dj, closeToken.dj);
31230			}
31231		} else {
31232			return false;
31233		}
31234	});
31235var $dillonkearns$elm_markdown$Markdown$InlineParser$isLinkTypeOrImageOpenToken = function (token) {
31236	var _v0 = token.e;
31237	switch (_v0.$) {
31238		case 1:
31239			return true;
31240		case 2:
31241			return true;
31242		default:
31243			return false;
31244	}
31245};
31246var $dillonkearns$elm_markdown$Markdown$InlineParser$isOpenEmphasisToken = F2(
31247	function (closeToken, openToken) {
31248		var _v0 = openToken.e;
31249		if (_v0.$ === 7) {
31250			var openChar = _v0.a;
31251			var open = _v0.b;
31252			var _v1 = closeToken.e;
31253			if (_v1.$ === 7) {
31254				var closeChar = _v1.a;
31255				var close = _v1.b;
31256				return _Utils_eq(openChar, closeChar) ? ((_Utils_eq(open.b9, open.cy) || _Utils_eq(close.b9, close.cy)) ? ((!(!A2($elm$core$Basics$modBy, 3, closeToken.dj + openToken.dj))) || ((!A2($elm$core$Basics$modBy, 3, closeToken.dj)) && (!A2($elm$core$Basics$modBy, 3, openToken.dj)))) : true) : false;
31257			} else {
31258				return false;
31259			}
31260		} else {
31261			return false;
31262		}
31263	});
31264var $dillonkearns$elm_markdown$Markdown$InlineParser$isStrikethroughTokenPair = F2(
31265	function (closeToken, openToken) {
31266		var _v0 = function () {
31267			var _v1 = openToken.e;
31268			if (_v1.$ === 9) {
31269				if (!_v1.a) {
31270					var _v2 = _v1.a;
31271					return _Utils_Tuple2(true, openToken.dj - 1);
31272				} else {
31273					var _v3 = _v1.a;
31274					return _Utils_Tuple2(true, openToken.dj);
31275				}
31276			} else {
31277				return _Utils_Tuple2(false, 0);
31278			}
31279		}();
31280		var openTokenIsStrikethrough = _v0.a;
31281		var openTokenLength = _v0.b;
31282		var _v4 = function () {
31283			var _v5 = closeToken.e;
31284			if (_v5.$ === 9) {
31285				if (!_v5.a) {
31286					var _v6 = _v5.a;
31287					return _Utils_Tuple2(true, closeToken.dj - 1);
31288				} else {
31289					var _v7 = _v5.a;
31290					return _Utils_Tuple2(true, closeToken.dj);
31291				}
31292			} else {
31293				return _Utils_Tuple2(false, 0);
31294			}
31295		}();
31296		var closeTokenIsStrikethrough = _v4.a;
31297		var closeTokenLength = _v4.b;
31298		return closeTokenIsStrikethrough && (openTokenIsStrikethrough && _Utils_eq(closeTokenLength, openTokenLength));
31299	});
31300var $dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakType = {$: 1};
31301var $dillonkearns$elm_markdown$Markdown$InlineParser$tokenToMatch = F2(
31302	function (token, type_) {
31303		return {g: token.d + token.dj, q: _List_Nil, i: token.d, j: '', B: 0, t: 0, H: type_};
31304	});
31305var $dillonkearns$elm_markdown$Markdown$InlineParser$lineBreakTTM = F2(
31306	function (remaining, matches) {
31307		lineBreakTTM:
31308		while (true) {
31309			if (!remaining.b) {
31310				return matches;
31311			} else {
31312				var token = remaining.a;
31313				var tokensTail = remaining.b;
31314				var _v1 = token.e;
31315				if (_v1.$ === 8) {
31316					var $temp$remaining = tokensTail,
31317						$temp$matches = A2(
31318						$elm$core$List$cons,
31319						A2($dillonkearns$elm_markdown$Markdown$InlineParser$tokenToMatch, token, $dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakType),
31320						matches);
31321					remaining = $temp$remaining;
31322					matches = $temp$matches;
31323					continue lineBreakTTM;
31324				} else {
31325					var $temp$remaining = tokensTail,
31326						$temp$matches = matches;
31327					remaining = $temp$remaining;
31328					matches = $temp$matches;
31329					continue lineBreakTTM;
31330				}
31331			}
31332		}
31333	});
31334var $dillonkearns$elm_markdown$Markdown$InlineParser$removeParsedAheadTokens = F2(
31335	function (_v0, tokensTail) {
31336		var match = _v0;
31337		return A2(
31338			$elm$core$List$filter,
31339			function (token) {
31340				return _Utils_cmp(token.d, match.g) > -1;
31341			},
31342			tokensTail);
31343	});
31344var $dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketsToMatch = F6(
31345	function (closeToken, escaped, matches, references, rawText, _v44) {
31346		var openToken = _v44.a;
31347		var remainTokens = _v44.c;
31348		var result = A2(
31349			$dillonkearns$elm_markdown$Markdown$Helpers$ifError,
31350			$dillonkearns$elm_markdown$Markdown$InlineParser$emailAutolinkTypeToMatch,
31351			$dillonkearns$elm_markdown$Markdown$InlineParser$autolinkToMatch(
31352				A7(
31353					$dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch,
31354					references,
31355					rawText,
31356					function (s) {
31357						return s;
31358					},
31359					$dillonkearns$elm_markdown$Markdown$InlineParser$CodeType,
31360					openToken,
31361					closeToken,
31362					_List_Nil)));
31363		if (result.$ === 1) {
31364			var tempMatch = result.a;
31365			if (escaped === 1) {
31366				var _v47 = A2($dillonkearns$elm_markdown$Markdown$InlineParser$htmlToToken, rawText, tempMatch);
31367				if (!_v47.$) {
31368					var newToken = _v47.a;
31369					return $elm$core$Maybe$Just(
31370						_Utils_Tuple2(
31371							A2($elm$core$List$cons, newToken, remainTokens),
31372							matches));
31373				} else {
31374					return $elm$core$Maybe$Nothing;
31375				}
31376			} else {
31377				return $elm$core$Maybe$Nothing;
31378			}
31379		} else {
31380			var newMatch = result.a;
31381			return $elm$core$Maybe$Just(
31382				_Utils_Tuple2(
31383					remainTokens,
31384					A2($elm$core$List$cons, newMatch, matches)));
31385		}
31386	});
31387var $dillonkearns$elm_markdown$Markdown$InlineParser$codeAutolinkTypeHtmlTagTTM = F5(
31388	function (remaining, tokens, matches, references, rawText) {
31389		codeAutolinkTypeHtmlTagTTM:
31390		while (true) {
31391			if (!remaining.b) {
31392				return A5(
31393					$dillonkearns$elm_markdown$Markdown$InlineParser$htmlElementTTM,
31394					$elm$core$List$reverse(tokens),
31395					_List_Nil,
31396					matches,
31397					references,
31398					rawText);
31399			} else {
31400				var token = remaining.a;
31401				var tokensTail = remaining.b;
31402				var _v36 = token.e;
31403				switch (_v36.$) {
31404					case 0:
31405						var _v37 = A2(
31406							$dillonkearns$elm_markdown$Markdown$InlineParser$findToken,
31407							$dillonkearns$elm_markdown$Markdown$InlineParser$isCodeTokenPair(token),
31408							tokens);
31409						if (!_v37.$) {
31410							var code = _v37.a;
31411							var _v38 = A5($dillonkearns$elm_markdown$Markdown$InlineParser$codeToMatch, token, matches, references, rawText, code);
31412							var newTokens = _v38.a;
31413							var newMatches = _v38.b;
31414							var $temp$remaining = tokensTail,
31415								$temp$tokens = newTokens,
31416								$temp$matches = newMatches,
31417								$temp$references = references,
31418								$temp$rawText = rawText;
31419							remaining = $temp$remaining;
31420							tokens = $temp$tokens;
31421							matches = $temp$matches;
31422							references = $temp$references;
31423							rawText = $temp$rawText;
31424							continue codeAutolinkTypeHtmlTagTTM;
31425						} else {
31426							var $temp$remaining = tokensTail,
31427								$temp$tokens = A2($elm$core$List$cons, token, tokens),
31428								$temp$matches = matches,
31429								$temp$references = references,
31430								$temp$rawText = rawText;
31431							remaining = $temp$remaining;
31432							tokens = $temp$tokens;
31433							matches = $temp$matches;
31434							references = $temp$references;
31435							rawText = $temp$rawText;
31436							continue codeAutolinkTypeHtmlTagTTM;
31437						}
31438					case 5:
31439						var isEscaped = _v36.a;
31440						var isAngleBracketOpen = function (_v43) {
31441							var meaning = _v43.e;
31442							if (meaning.$ === 4) {
31443								return true;
31444							} else {
31445								return false;
31446							}
31447						};
31448						var _v39 = A2($dillonkearns$elm_markdown$Markdown$InlineParser$findToken, isAngleBracketOpen, tokens);
31449						if (!_v39.$) {
31450							var found = _v39.a;
31451							var _v40 = A6($dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketsToMatch, token, isEscaped, matches, references, rawText, found);
31452							if (!_v40.$) {
31453								var _v41 = _v40.a;
31454								var newTokens = _v41.a;
31455								var newMatches = _v41.b;
31456								var $temp$remaining = tokensTail,
31457									$temp$tokens = A2(
31458									$elm$core$List$filter,
31459									A2($elm$core$Basics$composeL, $elm$core$Basics$not, isAngleBracketOpen),
31460									newTokens),
31461									$temp$matches = newMatches,
31462									$temp$references = references,
31463									$temp$rawText = rawText;
31464								remaining = $temp$remaining;
31465								tokens = $temp$tokens;
31466								matches = $temp$matches;
31467								references = $temp$references;
31468								rawText = $temp$rawText;
31469								continue codeAutolinkTypeHtmlTagTTM;
31470							} else {
31471								var $temp$remaining = tokensTail,
31472									$temp$tokens = A2(
31473									$elm$core$List$filter,
31474									A2($elm$core$Basics$composeL, $elm$core$Basics$not, isAngleBracketOpen),
31475									tokens),
31476									$temp$matches = matches,
31477									$temp$references = references,
31478									$temp$rawText = rawText;
31479								remaining = $temp$remaining;
31480								tokens = $temp$tokens;
31481								matches = $temp$matches;
31482								references = $temp$references;
31483								rawText = $temp$rawText;
31484								continue codeAutolinkTypeHtmlTagTTM;
31485							}
31486						} else {
31487							var $temp$remaining = tokensTail,
31488								$temp$tokens = A2(
31489								$elm$core$List$filter,
31490								A2($elm$core$Basics$composeL, $elm$core$Basics$not, isAngleBracketOpen),
31491								tokens),
31492								$temp$matches = matches,
31493								$temp$references = references,
31494								$temp$rawText = rawText;
31495							remaining = $temp$remaining;
31496							tokens = $temp$tokens;
31497							matches = $temp$matches;
31498							references = $temp$references;
31499							rawText = $temp$rawText;
31500							continue codeAutolinkTypeHtmlTagTTM;
31501						}
31502					default:
31503						var $temp$remaining = tokensTail,
31504							$temp$tokens = A2($elm$core$List$cons, token, tokens),
31505							$temp$matches = matches,
31506							$temp$references = references,
31507							$temp$rawText = rawText;
31508						remaining = $temp$remaining;
31509						tokens = $temp$tokens;
31510						matches = $temp$matches;
31511						references = $temp$references;
31512						rawText = $temp$rawText;
31513						continue codeAutolinkTypeHtmlTagTTM;
31514				}
31515			}
31516		}
31517	});
31518var $dillonkearns$elm_markdown$Markdown$InlineParser$codeToMatch = F5(
31519	function (closeToken, matches, references, rawText, _v32) {
31520		var openToken = _v32.a;
31521		var remainTokens = _v32.c;
31522		var updatedOpenToken = function () {
31523			var _v33 = openToken.e;
31524			if ((!_v33.$) && (!_v33.a)) {
31525				var _v34 = _v33.a;
31526				return _Utils_update(
31527					openToken,
31528					{d: openToken.d + 1, dj: openToken.dj - 1});
31529			} else {
31530				return openToken;
31531			}
31532		}();
31533		var match = A7($dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch, references, rawText, $dillonkearns$elm_markdown$Markdown$Helpers$cleanWhitespaces, $dillonkearns$elm_markdown$Markdown$InlineParser$CodeType, updatedOpenToken, closeToken, _List_Nil);
31534		return _Utils_Tuple2(
31535			remainTokens,
31536			A2($elm$core$List$cons, match, matches));
31537	});
31538var $dillonkearns$elm_markdown$Markdown$InlineParser$emphasisTTM = F5(
31539	function (remaining, tokens, matches, references, rawText) {
31540		emphasisTTM:
31541		while (true) {
31542			if (!remaining.b) {
31543				return A5(
31544					$dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughTTM,
31545					$elm$core$List$reverse(tokens),
31546					_List_Nil,
31547					matches,
31548					references,
31549					rawText);
31550			} else {
31551				var token = remaining.a;
31552				var tokensTail = remaining.b;
31553				var _v27 = token.e;
31554				if (_v27.$ === 7) {
31555					var _char = _v27.a;
31556					var leftFringeRank = _v27.b.b9;
31557					var rightFringeRank = _v27.b.cy;
31558					if (_Utils_eq(leftFringeRank, rightFringeRank)) {
31559						if ((!(!rightFringeRank)) && ((_char !== '_') || (rightFringeRank === 1))) {
31560							var _v28 = A2(
31561								$dillonkearns$elm_markdown$Markdown$InlineParser$findToken,
31562								$dillonkearns$elm_markdown$Markdown$InlineParser$isOpenEmphasisToken(token),
31563								tokens);
31564							if (!_v28.$) {
31565								var found = _v28.a;
31566								var _v29 = A5($dillonkearns$elm_markdown$Markdown$InlineParser$emphasisToMatch, references, rawText, token, tokensTail, found);
31567								var newRemaining = _v29.a;
31568								var match = _v29.b;
31569								var newTokens = _v29.c;
31570								var $temp$remaining = newRemaining,
31571									$temp$tokens = newTokens,
31572									$temp$matches = A2($elm$core$List$cons, match, matches),
31573									$temp$references = references,
31574									$temp$rawText = rawText;
31575								remaining = $temp$remaining;
31576								tokens = $temp$tokens;
31577								matches = $temp$matches;
31578								references = $temp$references;
31579								rawText = $temp$rawText;
31580								continue emphasisTTM;
31581							} else {
31582								var $temp$remaining = tokensTail,
31583									$temp$tokens = A2($elm$core$List$cons, token, tokens),
31584									$temp$matches = matches,
31585									$temp$references = references,
31586									$temp$rawText = rawText;
31587								remaining = $temp$remaining;
31588								tokens = $temp$tokens;
31589								matches = $temp$matches;
31590								references = $temp$references;
31591								rawText = $temp$rawText;
31592								continue emphasisTTM;
31593							}
31594						} else {
31595							var $temp$remaining = tokensTail,
31596								$temp$tokens = tokens,
31597								$temp$matches = matches,
31598								$temp$references = references,
31599								$temp$rawText = rawText;
31600							remaining = $temp$remaining;
31601							tokens = $temp$tokens;
31602							matches = $temp$matches;
31603							references = $temp$references;
31604							rawText = $temp$rawText;
31605							continue emphasisTTM;
31606						}
31607					} else {
31608						if (_Utils_cmp(leftFringeRank, rightFringeRank) < 0) {
31609							var $temp$remaining = tokensTail,
31610								$temp$tokens = A2($elm$core$List$cons, token, tokens),
31611								$temp$matches = matches,
31612								$temp$references = references,
31613								$temp$rawText = rawText;
31614							remaining = $temp$remaining;
31615							tokens = $temp$tokens;
31616							matches = $temp$matches;
31617							references = $temp$references;
31618							rawText = $temp$rawText;
31619							continue emphasisTTM;
31620						} else {
31621							var _v30 = A2(
31622								$dillonkearns$elm_markdown$Markdown$InlineParser$findToken,
31623								$dillonkearns$elm_markdown$Markdown$InlineParser$isOpenEmphasisToken(token),
31624								tokens);
31625							if (!_v30.$) {
31626								var found = _v30.a;
31627								var _v31 = A5($dillonkearns$elm_markdown$Markdown$InlineParser$emphasisToMatch, references, rawText, token, tokensTail, found);
31628								var newRemaining = _v31.a;
31629								var match = _v31.b;
31630								var newTokens = _v31.c;
31631								var $temp$remaining = newRemaining,
31632									$temp$tokens = newTokens,
31633									$temp$matches = A2($elm$core$List$cons, match, matches),
31634									$temp$references = references,
31635									$temp$rawText = rawText;
31636								remaining = $temp$remaining;
31637								tokens = $temp$tokens;
31638								matches = $temp$matches;
31639								references = $temp$references;
31640								rawText = $temp$rawText;
31641								continue emphasisTTM;
31642							} else {
31643								var $temp$remaining = tokensTail,
31644									$temp$tokens = tokens,
31645									$temp$matches = matches,
31646									$temp$references = references,
31647									$temp$rawText = rawText;
31648								remaining = $temp$remaining;
31649								tokens = $temp$tokens;
31650								matches = $temp$matches;
31651								references = $temp$references;
31652								rawText = $temp$rawText;
31653								continue emphasisTTM;
31654							}
31655						}
31656					}
31657				} else {
31658					var $temp$remaining = tokensTail,
31659						$temp$tokens = A2($elm$core$List$cons, token, tokens),
31660						$temp$matches = matches,
31661						$temp$references = references,
31662						$temp$rawText = rawText;
31663					remaining = $temp$remaining;
31664					tokens = $temp$tokens;
31665					matches = $temp$matches;
31666					references = $temp$references;
31667					rawText = $temp$rawText;
31668					continue emphasisTTM;
31669				}
31670			}
31671		}
31672	});
31673var $dillonkearns$elm_markdown$Markdown$InlineParser$emphasisToMatch = F5(
31674	function (references, rawText, closeToken, tokensTail, _v25) {
31675		var openToken = _v25.a;
31676		var innerTokens = _v25.b;
31677		var remainTokens = _v25.c;
31678		var remainLength = openToken.dj - closeToken.dj;
31679		var updt = (!remainLength) ? {bM: closeToken, bj: openToken, cv: remainTokens, cI: tokensTail} : ((remainLength > 0) ? {
31680			bM: closeToken,
31681			bj: _Utils_update(
31682				openToken,
31683				{d: openToken.d + remainLength, dj: closeToken.dj}),
31684			cv: A2(
31685				$elm$core$List$cons,
31686				_Utils_update(
31687					openToken,
31688					{dj: remainLength}),
31689				remainTokens),
31690			cI: tokensTail
31691		} : {
31692			bM: _Utils_update(
31693				closeToken,
31694				{dj: openToken.dj}),
31695			bj: openToken,
31696			cv: remainTokens,
31697			cI: A2(
31698				$elm$core$List$cons,
31699				_Utils_update(
31700					closeToken,
31701					{d: closeToken.d + openToken.dj, dj: -remainLength}),
31702				tokensTail)
31703		});
31704		var match = A7(
31705			$dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch,
31706			references,
31707			rawText,
31708			function (s) {
31709				return s;
31710			},
31711			$dillonkearns$elm_markdown$Markdown$InlineParser$EmphasisType(updt.bj.dj),
31712			updt.bj,
31713			updt.bM,
31714			$elm$core$List$reverse(innerTokens));
31715		return _Utils_Tuple3(updt.cI, match, updt.cv);
31716	});
31717var $dillonkearns$elm_markdown$Markdown$InlineParser$htmlElementTTM = F5(
31718	function (remaining, tokens, matches, references, rawText) {
31719		htmlElementTTM:
31720		while (true) {
31721			if (!remaining.b) {
31722				return A5(
31723					$dillonkearns$elm_markdown$Markdown$InlineParser$linkImageTypeTTM,
31724					$elm$core$List$reverse(tokens),
31725					_List_Nil,
31726					matches,
31727					references,
31728					rawText);
31729			} else {
31730				var token = remaining.a;
31731				var tokensTail = remaining.b;
31732				var _v23 = token.e;
31733				if (_v23.$ === 6) {
31734					var isOpen = _v23.a;
31735					var htmlModel = _v23.b;
31736					var $temp$remaining = tokensTail,
31737						$temp$tokens = tokens,
31738						$temp$matches = A2(
31739						$elm$core$List$cons,
31740						A2(
31741							$dillonkearns$elm_markdown$Markdown$InlineParser$tokenToMatch,
31742							token,
31743							$dillonkearns$elm_markdown$Markdown$InlineParser$HtmlType(htmlModel)),
31744						matches),
31745						$temp$references = references,
31746						$temp$rawText = rawText;
31747					remaining = $temp$remaining;
31748					tokens = $temp$tokens;
31749					matches = $temp$matches;
31750					references = $temp$references;
31751					rawText = $temp$rawText;
31752					continue htmlElementTTM;
31753				} else {
31754					var $temp$remaining = tokensTail,
31755						$temp$tokens = A2($elm$core$List$cons, token, tokens),
31756						$temp$matches = matches,
31757						$temp$references = references,
31758						$temp$rawText = rawText;
31759					remaining = $temp$remaining;
31760					tokens = $temp$tokens;
31761					matches = $temp$matches;
31762					references = $temp$references;
31763					rawText = $temp$rawText;
31764					continue htmlElementTTM;
31765				}
31766			}
31767		}
31768	});
31769var $dillonkearns$elm_markdown$Markdown$InlineParser$linkImageTypeTTM = F5(
31770	function (remaining, tokens, matches, references, rawText) {
31771		linkImageTypeTTM:
31772		while (true) {
31773			if (!remaining.b) {
31774				return A5(
31775					$dillonkearns$elm_markdown$Markdown$InlineParser$emphasisTTM,
31776					$elm$core$List$reverse(tokens),
31777					_List_Nil,
31778					matches,
31779					references,
31780					rawText);
31781			} else {
31782				var token = remaining.a;
31783				var tokensTail = remaining.b;
31784				var _v18 = token.e;
31785				if (_v18.$ === 3) {
31786					var _v19 = A2($dillonkearns$elm_markdown$Markdown$InlineParser$findToken, $dillonkearns$elm_markdown$Markdown$InlineParser$isLinkTypeOrImageOpenToken, tokens);
31787					if (!_v19.$) {
31788						var found = _v19.a;
31789						var _v20 = A6($dillonkearns$elm_markdown$Markdown$InlineParser$linkOrImageTypeToMatch, token, tokensTail, matches, references, rawText, found);
31790						if (!_v20.$) {
31791							var _v21 = _v20.a;
31792							var x = _v21.a;
31793							var newMatches = _v21.b;
31794							var newTokens = _v21.c;
31795							var $temp$remaining = x,
31796								$temp$tokens = newTokens,
31797								$temp$matches = newMatches,
31798								$temp$references = references,
31799								$temp$rawText = rawText;
31800							remaining = $temp$remaining;
31801							tokens = $temp$tokens;
31802							matches = $temp$matches;
31803							references = $temp$references;
31804							rawText = $temp$rawText;
31805							continue linkImageTypeTTM;
31806						} else {
31807							var $temp$remaining = tokensTail,
31808								$temp$tokens = tokens,
31809								$temp$matches = matches,
31810								$temp$references = references,
31811								$temp$rawText = rawText;
31812							remaining = $temp$remaining;
31813							tokens = $temp$tokens;
31814							matches = $temp$matches;
31815							references = $temp$references;
31816							rawText = $temp$rawText;
31817							continue linkImageTypeTTM;
31818						}
31819					} else {
31820						var $temp$remaining = tokensTail,
31821							$temp$tokens = tokens,
31822							$temp$matches = matches,
31823							$temp$references = references,
31824							$temp$rawText = rawText;
31825						remaining = $temp$remaining;
31826						tokens = $temp$tokens;
31827						matches = $temp$matches;
31828						references = $temp$references;
31829						rawText = $temp$rawText;
31830						continue linkImageTypeTTM;
31831					}
31832				} else {
31833					var $temp$remaining = tokensTail,
31834						$temp$tokens = A2($elm$core$List$cons, token, tokens),
31835						$temp$matches = matches,
31836						$temp$references = references,
31837						$temp$rawText = rawText;
31838					remaining = $temp$remaining;
31839					tokens = $temp$tokens;
31840					matches = $temp$matches;
31841					references = $temp$references;
31842					rawText = $temp$rawText;
31843					continue linkImageTypeTTM;
31844				}
31845			}
31846		}
31847	});
31848var $dillonkearns$elm_markdown$Markdown$InlineParser$linkOrImageTypeToMatch = F6(
31849	function (closeToken, tokensTail, oldMatches, references, rawText, _v8) {
31850		var openToken = _v8.a;
31851		var innerTokens = _v8.b;
31852		var remainTokens = _v8.c;
31853		var removeOpenToken = _Utils_Tuple3(
31854			tokensTail,
31855			oldMatches,
31856			_Utils_ap(innerTokens, remainTokens));
31857		var remainText = A2($elm$core$String$dropLeft, closeToken.d + 1, rawText);
31858		var inactivateLinkOpenToken = function (token) {
31859			var _v16 = token.e;
31860			if (_v16.$ === 1) {
31861				return _Utils_update(
31862					token,
31863					{
31864						e: $dillonkearns$elm_markdown$Markdown$InlineParser$LinkOpenToken(1)
31865					});
31866			} else {
31867				return token;
31868			}
31869		};
31870		var findTempMatch = function (isLinkType) {
31871			return A7(
31872				$dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch,
31873				references,
31874				rawText,
31875				function (s) {
31876					return s;
31877				},
31878				isLinkType ? $dillonkearns$elm_markdown$Markdown$InlineParser$LinkType(
31879					_Utils_Tuple2('', $elm$core$Maybe$Nothing)) : $dillonkearns$elm_markdown$Markdown$InlineParser$ImageType(
31880					_Utils_Tuple2('', $elm$core$Maybe$Nothing)),
31881				openToken,
31882				closeToken,
31883				$elm$core$List$reverse(innerTokens));
31884		};
31885		var _v9 = openToken.e;
31886		switch (_v9.$) {
31887			case 2:
31888				var tempMatch = findTempMatch(false);
31889				var _v10 = A3($dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineLinkTypeOrImageType, remainText, tempMatch, references);
31890				if (_v10.$ === 1) {
31891					return $elm$core$Maybe$Just(removeOpenToken);
31892				} else {
31893					var match = _v10.a;
31894					var _v11 = A2($dillonkearns$elm_markdown$Markdown$InlineParser$checkParsedAheadOverlapping, match, oldMatches);
31895					if (!_v11.$) {
31896						var matches = _v11.a;
31897						return $elm$core$Maybe$Just(
31898							_Utils_Tuple3(
31899								A2($dillonkearns$elm_markdown$Markdown$InlineParser$removeParsedAheadTokens, match, tokensTail),
31900								matches,
31901								remainTokens));
31902					} else {
31903						return $elm$core$Maybe$Just(removeOpenToken);
31904					}
31905				}
31906			case 1:
31907				if (!_v9.a) {
31908					var _v12 = _v9.a;
31909					var tempMatch = findTempMatch(true);
31910					var _v13 = A3($dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineLinkTypeOrImageType, remainText, tempMatch, references);
31911					if (_v13.$ === 1) {
31912						return $elm$core$Maybe$Just(removeOpenToken);
31913					} else {
31914						var match = _v13.a;
31915						var _v14 = A2($dillonkearns$elm_markdown$Markdown$InlineParser$checkParsedAheadOverlapping, match, oldMatches);
31916						if (!_v14.$) {
31917							var matches = _v14.a;
31918							return $elm$core$Maybe$Just(
31919								_Utils_Tuple3(
31920									A2($dillonkearns$elm_markdown$Markdown$InlineParser$removeParsedAheadTokens, match, tokensTail),
31921									matches,
31922									A2($elm$core$List$map, inactivateLinkOpenToken, remainTokens)));
31923						} else {
31924							return $elm$core$Maybe$Just(removeOpenToken);
31925						}
31926					}
31927				} else {
31928					var _v15 = _v9.a;
31929					return $elm$core$Maybe$Just(removeOpenToken);
31930				}
31931			default:
31932				return $elm$core$Maybe$Nothing;
31933		}
31934	});
31935var $dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughTTM = F5(
31936	function (remaining, tokens, matches, references, rawText) {
31937		strikethroughTTM:
31938		while (true) {
31939			if (!remaining.b) {
31940				return A2(
31941					$dillonkearns$elm_markdown$Markdown$InlineParser$lineBreakTTM,
31942					$elm$core$List$reverse(tokens),
31943					matches);
31944			} else {
31945				var token = remaining.a;
31946				var tokensTail = remaining.b;
31947				var _v5 = token.e;
31948				if (_v5.$ === 9) {
31949					var _v6 = A2(
31950						$dillonkearns$elm_markdown$Markdown$InlineParser$findToken,
31951						$dillonkearns$elm_markdown$Markdown$InlineParser$isStrikethroughTokenPair(token),
31952						tokens);
31953					if (!_v6.$) {
31954						var content = _v6.a;
31955						var _v7 = A5($dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughToMatch, token, matches, references, rawText, content);
31956						var newTokens = _v7.a;
31957						var newMatches = _v7.b;
31958						var $temp$remaining = tokensTail,
31959							$temp$tokens = newTokens,
31960							$temp$matches = newMatches,
31961							$temp$references = references,
31962							$temp$rawText = rawText;
31963						remaining = $temp$remaining;
31964						tokens = $temp$tokens;
31965						matches = $temp$matches;
31966						references = $temp$references;
31967						rawText = $temp$rawText;
31968						continue strikethroughTTM;
31969					} else {
31970						var $temp$remaining = tokensTail,
31971							$temp$tokens = A2($elm$core$List$cons, token, tokens),
31972							$temp$matches = matches,
31973							$temp$references = references,
31974							$temp$rawText = rawText;
31975						remaining = $temp$remaining;
31976						tokens = $temp$tokens;
31977						matches = $temp$matches;
31978						references = $temp$references;
31979						rawText = $temp$rawText;
31980						continue strikethroughTTM;
31981					}
31982				} else {
31983					var $temp$remaining = tokensTail,
31984						$temp$tokens = A2($elm$core$List$cons, token, tokens),
31985						$temp$matches = matches,
31986						$temp$references = references,
31987						$temp$rawText = rawText;
31988					remaining = $temp$remaining;
31989					tokens = $temp$tokens;
31990					matches = $temp$matches;
31991					references = $temp$references;
31992					rawText = $temp$rawText;
31993					continue strikethroughTTM;
31994				}
31995			}
31996		}
31997	});
31998var $dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughToMatch = F5(
31999	function (closeToken, matches, references, rawText, _v1) {
32000		var openToken = _v1.a;
32001		var remainTokens = _v1.c;
32002		var updatedOpenToken = function () {
32003			var _v2 = openToken.e;
32004			if ((_v2.$ === 9) && (!_v2.a)) {
32005				var _v3 = _v2.a;
32006				return _Utils_update(
32007					openToken,
32008					{d: openToken.d + 1, dj: openToken.dj - 1});
32009			} else {
32010				return openToken;
32011			}
32012		}();
32013		var match = A7($dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch, references, rawText, $dillonkearns$elm_markdown$Markdown$Helpers$cleanWhitespace
32013s, $dillonkearns$elm_markdown$Markdown$InlineParser$StrikethroughType, updatedOpenToken, closeToken, _List_Nil);
32014		return _Utils_Tuple2(
32015			remainTokens,
32016			A2($elm$core$List$cons, match, matches));
32017	});
32018var $dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch = F7(
32019	function (references, rawText, processText, type_, openToken, closeToken, innerTokens) {
32020		var textStart = openToken.d + openToken.dj;
32021		var textEnd = closeToken.d;
32022		var text = processText(
32023			A3($elm$core$String$slice, textStart, textEnd, rawText));
32024		var start = openToken.d;
32025		var end = closeToken.d + closeToken.dj;
32026		var match = {g: end, q: _List_Nil, i: start, j: text, B: textEnd, t: textStart, H: type_};
32027		var matches = A2(
32028			$elm$core$List$map,
32029			function (_v0) {
32030				var matchModel = _v0;
32031				return A2($dillonkearns$elm_markdown$Markdown$InlineParser$prepareChildMatch, match, matchModel);
32032			},
32033			A4($dillonkearns$elm_markdown$Markdown$InlineParser$tokensToMatches, innerTokens, _List_Nil, references, rawText));
32034		return {g: end, q: matches, i: start, j: text, B: textEnd, t: textStart, H: type_};
32035	});
32036var $dillonkearns$elm_markdown$Markdown$InlineParser$tokensToMatches = F4(
32037	function (tokens, matches, references, rawText) {
32038		return A5($dillonkearns$elm_markdown$Markdown$InlineParser$codeAutolinkTypeHtmlTagTTM, tokens, _List_Nil, matches, references, rawText);
32039	});
32040var $dillonkearns$elm_markdown$Markdown$InlineParser$parse = F2(
32041	function (refs, rawText_) {
32042		var rawText = $elm$core$String$trim(rawText_);
32043		var tokens = $dillonkearns$elm_markdown$Markdown$InlineParser$tokenize(rawText);
32044		return $dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines(
32045			A3(
32046				$dillonkearns$elm_markdown$Markdown$InlineParser$parseTextMatches,
32047				rawText,
32048				_List_Nil,
32049				$dillonkearns$elm_markdown$Markdown$InlineParser$organizeMatches(
32050					A4($dillonkearns$elm_markdown$Markdown$InlineParser$tokensToMatches, tokens, _List_Nil, refs, rawText))));
32051	});
32052var $dillonkearns$elm_markdown$Markdown$Parser$thisIsDefinitelyNotAnHtmlTag = $elm$parser$Parser$Advanced$oneOf(
32053	_List_fromArray(
32054		[
32055			$elm$parser$Parser$Advanced$token(
32056			A2(
32057				$elm$parser$Parser$Advanced$Token,
32058				' ',
32059				$elm$parser$Parser$Expecting(' '))),
32060			$elm$parser$Parser$Advanced$token(
32061			A2(
32062				$elm$parser$Parser$Advanced$Token,
32063				'>',
32064				$elm$parser$Parser$Expecting('>'))),
32065			A2(
32066			$elm$parser$Parser$Advanced$ignorer,
32067			A2(
32068				$elm$parser$Parser$Advanced$ignorer,
32069				A2(
32070					$elm$parser$Parser$Advanced$chompIf,
32071					$elm$core$Char$isAlpha,
32072					$elm$parser$Parser$Expecting('Alpha')),
32073				$elm$parser$Parser$Advanced$chompWhile(
32074					function (c) {
32075						return $elm$core$Char$isAlphaNum(c) || (c === '-');
32076					})),
32077			$elm$parser$Parser$Advanced$oneOf(
32078				_List_fromArray(
32079					[
32080						$elm$parser$Parser$Advanced$token(
32081						A2(
32082							$elm$parser$Parser$Advanced$Token,
32083							':',
32084							$elm$parser$Parser$Expecting(':'))),
32085						$elm$parser$Parser$Advanced$token(
32086						A2(
32087							$elm$parser$Parser$Advanced$Token,
32088							'@',
32089							$elm$parser$Parser$Expecting('@'))),
32090						$elm$parser$Parser$Advanced$token(
32091						A2(
32092							$elm$parser$Parser$Advanced$Token,
32093							'\\',
32094							$elm$parser$Parser$Expecting('\\'))),
32095						$elm$parser$Parser$Advanced$token(
32096						A2(
32097							$elm$parser$Parser$Advanced$Token,
32098							'+',
32099							$elm$parser$Parser$Expecting('+'))),
32100						$elm$parser$Parser$Advanced$token(
32101						A2(
32102							$elm$parser$Parser$Advanced$Token,
32103							'.',
32104							$elm$parser$Parser$Expecting('.')))
32105					])))
32106		]));
32107var $dillonkearns$elm_markdown$Markdown$Parser$parseAsParagraphInsteadOfHtmlBlock = $elm$parser$Parser$Advanced$backtrackable(
32108	A2(
32109		$elm$parser$Parser$Advanced$mapChompedString,
32110		F2(
32111			function (rawLine, _v0) {
32112				return $dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph(rawLine);
32113			}),
32114		A2(
32115			$elm$parser$Parser$Advanced$ignorer,
32116			A2(
32117				$elm$parser$Parser$Advanced$ignorer,
32118				A2(
32119					$elm$parser$Parser$Advanced$ignorer,
32120					$elm$parser$Parser$Advanced$token(
32121						A2(
32122							$elm$parser$Parser$Advanced$Token,
32123							'<',
32124							$elm$parser$Parser$Expecting('<'))),
32125					$dillonkearns$elm_markdown$Markdown$Parser$thisIsDefinitelyNotAnHtmlTag),
32126				$dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd),
32127			$dillonkearns$elm_markdown$Helpers$lineEndOrEnd)));
32128var $dillonkearns$elm_markdown$Markdown$Table$TableHeader = $elm$core$Basics$identity;
32129var $dillonkearns$elm_markdown$Parser$Token$parseString = function (str) {
32130	return $elm$parser$Parser$Advanced$token(
32131		A2(
32132			$elm$parser$Parser$Advanced$Token,
32133			str,
32134			$elm$parser$Parser$Expecting(str)));
32135};
32136var $dillonkearns$elm_markdown$Markdown$TableParser$parseCellHelper = function (_v0) {
32137	var curr = _v0.a;
32138	var acc = _v0.b;
32139	var _return = A2(
32140		$elm$core$Maybe$withDefault,
32141		$elm$parser$Parser$Advanced$Done(acc),
32142		A2(
32143			$elm$core$Maybe$map,
32144			function (cell) {
32145				return $elm$parser$Parser$Advanced$Done(
32146					A2($elm$core$List$cons, cell, acc));
32147			},
32148			curr));
32149	var finishCell = A2(
32150		$elm$core$Maybe$withDefault,
32151		$elm$parser$Parser$Advanced$Loop(
32152			_Utils_Tuple2($elm$core$Maybe$Nothing, acc)),
32153		A2(
32154			$elm$core$Maybe$map,
32155			function (cell) {
32156				return $elm$parser$Parser$Advanced$Loop(
32157					_Utils_Tuple2(
32158						$elm$core$Maybe$Nothing,
32159						A2($elm$core$List$cons, cell, acc)));
32160			},
32161			curr));
32162	var addToCurrent = function (c) {
32163		return _Utils_ap(
32164			A2($elm$core$Maybe$withDefault, '', curr),
32165			c);
32166	};
32167	var continueCell = function (c) {
32168		return $elm$parser$Parser$Advanced$Loop(
32169			_Utils_Tuple2(
32170				$elm$core$Maybe$Just(
32171					addToCurrent(c)),
32172				acc));
32173	};
32174	return $elm$parser$Parser$Advanced$oneOf(
32175		_List_fromArray(
32176			[
32177				A2(
32178				$elm$parser$Parser$Advanced$map,
32179				function (_v1) {
32180					return _return;
32181				},
32182				$dillonkearns$elm_markdown$Parser$Token$parseString('|\n')),
32183				A2(
32184				$elm$parser$Parser$Advanced$map,
32185				function (_v2) {
32186					return _return;
32187				},
32188				$dillonkearns$elm_markdown$Parser$Token$parseString('\n')),
32189				A2(
32190				$elm$parser$Parser$Advanced$map,
32191				function (_v3) {
32192					return _return;
32193				},
32194				$elm$parser$Parser$Advanced$end(
32195					$elm$parser$Parser$Expecting('end'))),
32196				A2(
32197				$elm$parser$Parser$Advanced$ignorer,
32198				$elm$parser$Parser$Advanced$backtrackable(
32199					$elm$parser$Parser$Advanced$succeed(
32200						continueCell('|'))),
32201				$dillonkearns$elm_markdown$Parser$Token$parseString('\\\\|')),
32202				A2(
32203				$elm$parser$Parser$Advanced$ignorer,
32204				$elm$parser$Parser$Advanced$backtrackable(
32205					$elm$parser$Parser$Advanced$succeed(
32206						continueCell('\\'))),
32207				$dillonkearns$elm_markdown$Parser$Token$parseString('\\\\')),
32208				A2(
32209				$elm$parser$Parser$Advanced$ignorer,
32210				$elm$parser$Parser$Advanced$backtrackable(
32211					$elm$parser$Parser$Advanced$succeed(
32212						continueCell('|'))),
32213				$dillonkearns$elm_markdown$Parser$Token$parseString('\\|')),
32214				A2(
32215				$elm$parser$Parser$Advanced$ignorer,
32216				$elm$parser$Parser$Advanced$backtrackable(
32217					$elm$parser$Parser$Advanced$succeed(finishCell)),
32218				$dillonkearns$elm_markdown$Parser$Token$parseString('|')),
32219				A2(
32220				$elm$parser$Parser$Advanced$mapChompedString,
32221				F2(
32222					function (_char, _v4) {
32223						return continueCell(_char);
32224					}),
32225				A2(
32226					$elm$parser$Parser$Advanced$chompIf,
32227					$elm$core$Basics$always(true),
32228					$elm$parser$Parser$Problem('No character found')))
32229			]));
32230};
32231var $dillonkearns$elm_markdown$Markdown$TableParser$parseCells = A2(
32232	$elm$parser$Parser$Advanced$map,
32233	A2(
32234		$elm$core$List$foldl,
32235		F2(
32236			function (cell, acc) {
32237				return A2(
32238					$elm$core$List$cons,
32239					$elm$core$String$trim(cell),
32240					acc);
32241			}),
32242		_List_Nil),
32243	A2(
32244		$elm$parser$Parser$Advanced$loop,
32245		_Utils_Tuple2($elm$core$Maybe$Nothing, _List_Nil),
32246		$dillonkearns$elm_markdown$Markdown$TableParser$parseCellHelper));
32247var $dillonkearns$elm_markdown$Markdown$TableParser$rowParser = A2(
32248	$elm$parser$Parser$Advanced$keeper,
32249	A2(
32250		$elm$parser$Parser$Advanced$ignorer,
32251		$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
32252		$elm$parser$Parser$Advanced$oneOf(
32253			_List_fromArray(
32254				[
32255					$dillonkearns$elm_markdown$Parser$Token$parseString('|'),
32256					$elm$parser$Parser$Advanced$succeed(0)
32257				]))),
32258	$dillonkearns$elm_markdown$Markdown$TableParser$parseCells);
32259var $dillonkearns$elm_markdown$Markdown$TableParser$parseHeader = F2(
32260	function (_v0, headersRow) {
32261		var columnAlignments = _v0.b;
32262		var headersWithAlignment = function (headers) {
32263			return A3(
32264				$elm$core$List$map2,
32265				F2(
32266					function (headerCell, alignment) {
32267						return {Z: alignment, aK: headerCell};
32268					}),
32269				headers,
32270				columnAlignments);
32271		};
32272		var combineHeaderAndDelimiter = function (headers) {
32273			return _Utils_eq(
32274				$elm$core$List$length(headers),
32275				$elm$core$List$length(columnAlignments)) ? $elm$core$Result$Ok(
32276				headersWithAlignment(headers)) : $elm$core$Result$Err(
32277				'Tables must have the same number of header columns (' + ($elm$core$String$fromInt(
32278					$elm$core$List$length(headers)) + (') as delimiter columns (' + ($elm$core$String$fromInt(
32279					$elm$core$List$length(columnAlignments)) + ')'))));
32280		};
32281		var _v1 = A2($elm$parser$Parser$Advanced$run, $dillonkearns$elm_markdown$Markdown$TableParser$rowParser, headersRow);
32282		if (!_v1.$) {
32283			var headers = _v1.a;
32284			return combineHeaderAndDelimiter(headers);
32285		} else {
32286			return $elm$core$Result$Err('Unable to parse previous line as a table header');
32287		}
32288	});
32289var $dillonkearns$elm_markdown$Markdown$CodeBlock$CodeBlock = F2(
32290	function (language, body) {
32291		return {fe: body, fK: language};
32292	});
32293var $dillonkearns$elm_markdown$Markdown$CodeBlock$infoString = function (fenceCharacter) {
32294	var toInfoString = F2(
32295		function (str, _v2) {
32296			var _v1 = $elm$core$String$trim(str);
32297			if (_v1 === '') {
32298				return $elm$core$Maybe$Nothing;
32299			} else {
32300				var trimmed = _v1;
32301				return $elm$core$Maybe$Just(trimmed);
32302			}
32303		});
32304	var _v0 = fenceCharacter.b6;
32305	if (!_v0) {
32306		return A2(
32307			$elm$parser$Parser$Advanced$mapChompedString,
32308			toInfoString,
32309			$elm$parser$Parser$Advanced$chompWhile(
32310				function (c) {
32311					return (c !== '`') && (!$dillonkearns$elm_markdown$Whitespace$isLineEnd(c));
32312				}));
32313	} else {
32314		return A2(
32315			$elm$parser$Parser$Advanced$mapChompedString,
32316			toInfoString,
32317			$elm$parser$Parser$Advanced$chompWhile(
32318				A2($elm$core$Basics$composeL, $elm$core$Basics$not, $dillonkearns$elm_markdown$Whitespace$isLineEnd)));
32319	}
32320};
32321var $dillonkearns$elm_markdown$Markdown$CodeBlock$Backtick = 0;
32322var $dillonkearns$elm_markdown$Parser$Token$backtick = A2(
32323	$elm$parser$Parser$Advanced$Token,
32324	'`',
32325	$elm$parser$Parser$Expecting('a \'`\''));
32326var $dillonkearns$elm_markdown$Markdown$CodeBlock$backtick = {bJ: '`', b6: 0, cH: $dillonkearns$elm_markdown$Parser$Token$backtick};
32327var $dillonkearns$elm_markdown$Markdown$CodeBlock$colToIndentation = function (_int) {
32328	switch (_int) {
32329		case 1:
32330			return $elm$parser$Parser$Advanced$succeed(0);
32331		case 2:
32332			return $elm$parser$Parser$Advanced$succeed(1);
32333		case 3:
32334			return $elm$parser$Parser$Advanced$succeed(2);
32335		case 4:
32336			return $elm$parser$Parser$Advanced$succeed(3);
32337		default:
32338			return $elm$parser$Parser$Advanced$problem(
32339				$elm$parser$Parser$Expecting('Fenced code blocks should be indented no more than 3 spaces'));
32340	}
32341};
32342var $dillonkearns$elm_markdown$Markdown$CodeBlock$fenceOfAtLeast = F2(
32343	function (minLength, fenceCharacter) {
32344		var builtTokens = A3(
32345			$elm$core$List$foldl,
32346			F2(
32347				function (t, p) {
32348					return A2($elm$parser$Parser$Advanced$ignorer, p, t);
32349				}),
32350			$elm$parser$Parser$Advanced$succeed(0),
32351			A2(
32352				$elm$core$List$repeat,
32353				minLength,
32354				$elm$parser$Parser$Advanced$token(fenceCharacter.cH)));
32355		return A2(
32356			$elm$parser$Parser$Advanced$mapChompedString,
32357			F2(
32358				function (str, _v0) {
32359					return _Utils_Tuple2(
32360						fenceCharacter,
32361						$elm$core$String$length(str));
32362				}),
32363			A2(
32364				$elm$parser$Parser$Advanced$ignorer,
32365				builtTokens,
32366				$elm$parser$Parser$Advanced$chompWhile(
32367					$elm$core$Basics$eq(fenceCharacter.bJ))));
32368	});
32369var $dillonkearns$elm_markdown$Markdown$CodeBlock$Tilde = 1;
32370var $dillonkearns$elm_markdown$Parser$Token$tilde = A2(
32371	$elm$parser$Parser$Advanced$Token,
32372	'~',
32373	$elm$parser$Parser$Expecting('a `~`'));
32374var $dillonkearns$elm_markdown$Markdown$CodeBlock$tilde = {bJ: '~', b6: 1, cH: $dillonkearns$elm_markdown$Parser$Token$tilde};
32375var $dillonkearns$elm_markdown$Whitespace$upToThreeSpaces = $elm$parser$Parser$Advanced$oneOf(
32376	_List_fromArray(
32377		[
32378			A2(
32379			$elm$parser$Parser$Advanced$ignorer,
32380			A2(
32381				$elm$parser$Parser$Advanced$ignorer,
32382				$dillonkearns$elm_markdown$Whitespace$space,
32383				$elm$parser$Parser$Advanced$oneOf(
32384					_List_fromArray(
32385						[
32386							$dillonkearns$elm_markdown$Whitespace$space,
32387							$elm$parser$Parser$Advanced$succeed(0)
32388						]))),
32389			$elm$parser$Parser$Advanced$oneOf(
32390				_List_fromArray(
32391					[
32392						$dillonkearns$elm_markdown$Whitespace$space,
32393						$elm$parser$Parser$Advanced$succeed(0)
32394					]))),
32395			$elm$parser$Parser$Advanced$succeed(0)
32396		]));
32397var $dillonkearns$elm_markdown$Markdown$CodeBlock$openingFence = A2(
32398	$elm$parser$Parser$Advanced$keeper,
32399	A2(
32400		$elm$parser$Parser$Advanced$keeper,
32401		A2(
32402			$elm$parser$Parser$Advanced$ignorer,
32403			$elm$parser$Parser$Advanced$succeed(
32404				F2(
32405					function (indent, _v0) {
32406						var character = _v0.a;
32407						var length = _v0.b;
32408						return {bK: character, dh: indent, dj: length};
32409					})),
32410			$dillonkearns$elm_markdown$Whitespace$upToThreeSpaces),
32411		A2($elm$parser$Parser$Advanced$andThen, $dillonkearns$elm_markdown$Markdown$CodeBlock$colToIndentation, $elm$parser$Parser$Advanced$getCol)),
32412	$elm$parser$Parser$Advanced$oneOf(
32413		_List_fromArray(
32414			[
32415				A2($dillonkearns$elm_markdown$Markdown$CodeBlock$fenceOfAtLeast, 3, $dillonkearns$elm_markdown$Markdown$CodeBlock$backtick),
32416				A2($dillonkearns$elm_markdown$Markdown$CodeBlock$fenceOfAtLeast, 3, $dillonkearns$elm_markdown$Markdown$CodeBlock$tilde)
32417			])));
32418var $dillonkearns$elm_markdown$Whitespace$isSpace = $elm$core$Basics$eq(' ');
32419var $dillonkearns$elm_markdown$Markdown$CodeBlock$closingFence = F2(
32420	function (minLength, fenceCharacter) {
32421		return A2(
32422			$elm$parser$Parser$Advanced$ignorer,
32423			A2(
32424				$elm$parser$Parser$Advanced$ignorer,
32425				A2(
32426					$elm$parser$Parser$Advanced$ignorer,
32427					A2(
32428						$elm$parser$Parser$Advanced$ignorer,
32429						$elm$parser$Parser$Advanced$succeed(0),
32430						$dillonkearns$elm_markdown$Whitespace$upToThreeSpaces),
32431					A2($dillonkearns$elm_markdown$Markdown$CodeBlock$fenceOfAtLeast, minLength, fenceCharacter)),
32432				$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$Whitespace$isSpace)),
32433			$dillonkearns$elm_markdown$Helpers$lineEndOrEnd);
32434	});
32435var $dillonkearns$elm_markdown$Markdown$CodeBlock$codeBlockLine = function (indented) {
32436	return A2(
32437		$elm$parser$Parser$Advanced$keeper,
32438		A2(
32439			$elm$parser$Parser$Advanced$ignorer,
32440			$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
32441			A2($dillonkearns$elm_markdown$Parser$Extra$upTo, indented, $dillonkearns$elm_markdown$Whitespace$space)),
32442		A2(
32443			$elm$parser$Parser$Advanced$ignorer,
32444			A2($elm$parser$Parser$Advanced$ignorer, $elm$parser$Parser$Advanced$getOffset, $dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd),
32445			$dillonkearns$elm_markdown$Helpers$lineEndOrEnd));
32446};
32447var $elm$parser$Parser$Advanced$getSource = function (s) {
32448	return A3($elm$parser$Parser$Advanced$Good, false, s.dE, s);
32449};
32450var $dillonkearns$elm_markdown$Markdown$CodeBlock$remainingBlockHelp = function (_v0) {
32451	var fence = _v0.a;
32452	var body = _v0.b;
32453	return $elm$parser$Parser$Advanced$oneOf(
32454		_List_fromArray(
32455			[
32456				A2(
32457				$elm$parser$Parser$Advanced$ignorer,
32458				$elm$parser$Parser$Advanced$succeed(
32459					$elm$parser$Parser$Advanced$Done(body)),
32460				$elm$parser$Parser$Advanced$end($elm$parser$Parser$ExpectingEnd)),
32461				A2(
32462				$elm$parser$Parser$Advanced$mapChompedString,
32463				F2(
32464					function (lineEnd, _v1) {
32465						return $elm$parser$Parser$Advanced$Loop(
32466							_Utils_Tuple2(
32467								fence,
32468								_Utils_ap(body, lineEnd)));
32469					}),
32470				$dillonkearns$elm_markdown$Whitespace$lineEnd),
32471				$elm$parser$Parser$Advanced$backtrackable(
32472				A2(
32473					$elm$parser$Parser$Advanced$ignorer,
32474					$elm$parser$Parser$Advanced$succeed(
32475						$elm$parser$Parser$Advanced$Done(body)),
32476					A2($dillonkearns$elm_markdown$Markdown$CodeBlock$closingFence, fence.dj, fence.bK))),
32477				A2(
32478				$e
32478lm$parser$Parser$Advanced$keeper,
32479				A2(
32480					$elm$parser$Parser$Advanced$keeper,
32481					A2(
32482						$elm$parser$Parser$Advanced$keeper,
32483						$elm$parser$Parser$Advanced$succeed(
32484							F3(
32485								function (start, end, source) {
32486									return $elm$parser$Parser$Advanced$Loop(
32487										_Utils_Tuple2(
32488											fence,
32489											_Utils_ap(
32490												body,
32491												A3($elm$core$String$slice, start, end, source))));
32492								})),
32493						$dillonkearns$elm_markdown$Markdown$CodeBlock$codeBlockLine(fence.dh)),
32494					$elm$parser$Parser$Advanced$getOffset),
32495				$elm$parser$Parser$Advanced$getSource)
32496			]));
32497};
32498var $dillonkearns$elm_markdown$Markdown$CodeBlock$remainingBlock = function (fence) {
32499	return A2(
32500		$elm$parser$Parser$Advanced$loop,
32501		_Utils_Tuple2(fence, ''),
32502		$dillonkearns$elm_markdown$Markdown$CodeBlock$remainingBlockHelp);
32503};
32504var $dillonkearns$elm_markdown$Markdown$CodeBlock$parser = A2(
32505	$elm$parser$Parser$Advanced$andThen,
32506	function (fence) {
32507		return A2(
32508			$elm$parser$Parser$Advanced$keeper,
32509			A2(
32510				$elm$parser$Parser$Advanced$keeper,
32511				$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$Markdown$CodeBlock$CodeBlock),
32512				A2(
32513					$elm$parser$Parser$Advanced$ignorer,
32514					$dillonkearns$elm_markdown$Markdown$CodeBlock$infoString(fence.bK),
32515					$dillonkearns$elm_markdown$Helpers$lineEndOrEnd)),
32516			$dillonkearns$elm_markdown$Markdown$CodeBlock$remainingBlock(fence));
32517	},
32518	$dillonkearns$elm_markdown$Markdown$CodeBlock$openingFence);
32519var $elm$core$String$dropRight = F2(
32520	function (n, string) {
32521		return (n < 1) ? string : A3($elm$core$String$slice, 0, -n, string);
32522	});
32523var $dillonkearns$elm_markdown$Markdown$Heading$dropTrailingHashes = function (headingString) {
32524	dropTrailingHashes:
32525	while (true) {
32526		if (A2($elm$core$String$endsWith, '#', headingString)) {
32527			var $temp$headingString = A2($elm$core$String$dropRight, 1, headingString);
32528			headingString = $temp$headingString;
32529			continue dropTrailingHashes;
32530		} else {
32531			return headingString;
32532		}
32533	}
32534};
32535var $elm$core$String$trimRight = _String_trimRight;
32536var $dillonkearns$elm_markdown$Markdown$Heading$dropClosingSequence = function (headingString) {
32537	var droppedTrailingHashesString = $dillonkearns$elm_markdown$Markdown$Heading$dropTrailingHashes(headingString);
32538	return (A2($elm$core$String$endsWith, ' ', droppedTrailingHashesString) || $elm$core$String$isEmpty(droppedTrailingHashesString)) ? $elm$core$String$trimRight(droppedTrailingHashesString) : headingString;
32539};
32540var $dillonkearns$elm_markdown$Parser$Token$hash = A2(
32541	$elm$parser$Parser$Advanced$Token,
32542	'#',
32543	$elm$parser$Parser$Expecting('a `#`'));
32544var $dillonkearns$elm_markdown$Markdown$Heading$isHash = function (c) {
32545	if ('#' === c) {
32546		return true;
32547	} else {
32548		return false;
32549	}
32550};
32551var $elm$parser$Parser$Advanced$spaces = $elm$parser$Parser$Advanced$chompWhile(
32552	function (c) {
32553		return (c === ' ') || ((c === '\n') || (c === '\r'));
32554	});
32555var $dillonkearns$elm_markdown$Markdown$Heading$parser = A2(
32556	$elm$parser$Parser$Advanced$keeper,
32557	A2(
32558		$elm$parser$Parser$Advanced$keeper,
32559		A2(
32560			$elm$parser$Parser$Advanced$ignorer,
32561			A2(
32562				$elm$parser$Parser$Advanced$ignorer,
32563				$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$Markdown$RawBlock$Heading),
32564				A2(
32565					$elm$parser$Parser$Advanced$andThen,
32566					function (startingSpaces) {
32567						var startSpace = $elm$core$String$length(startingSpaces);
32568						return (startSpace >= 4) ? $elm$parser$Parser$Advanced$problem(
32569							$elm$parser$Parser$Expecting('heading with < 4 spaces in front')) : $elm$parser$Parser$Advanced$succeed(startSpace);
32570					},
32571					$elm$parser$Parser$Advanced$getChompedString($elm$parser$Parser$Advanced$spaces))),
32572			$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$hash)),
32573		A2(
32574			$elm$parser$Parser$Advanced$andThen,
32575			function (additionalHashes) {
32576				var level = $elm$core$String$length(additionalHashes) + 1;
32577				return (level >= 7) ? $elm$parser$Parser$Advanced$problem(
32578					$elm$parser$Parser$Expecting('heading with < 7 #\'s')) : $elm$parser$Parser$Advanced$succeed(level);
32579			},
32580			$elm$parser$Parser$Advanced$getChompedString(
32581				$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$Markdown$Heading$isHash)))),
32582	$elm$parser$Parser$Advanced$oneOf(
32583		_List_fromArray(
32584			[
32585				A2(
32586				$elm$parser$Parser$Advanced$ignorer,
32587				$elm$parser$Parser$Advanced$succeed(''),
32588				$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$newline)),
32589				A2(
32590				$elm$parser$Parser$Advanced$keeper,
32591				A2(
32592					$elm$parser$Parser$Advanced$ignorer,
32593					$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
32594					$elm$parser$Parser$Advanced$oneOf(
32595						_List_fromArray(
32596							[
32597								$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$space),
32598								$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$tab)
32599							]))),
32600				A2(
32601					$elm$parser$Parser$Advanced$mapChompedString,
32602					F2(
32603						function (headingText, _v0) {
32604							return $dillonkearns$elm_markdown$Markdown$Heading$dropClosingSequence(
32605								$elm$core$String$trim(headingText));
32606						}),
32607					$dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd))
32608			])));
32609var $elm$parser$Parser$Advanced$findSubString = _Parser_findSubString;
32610var $elm$parser$Parser$Advanced$chompUntil = function (_v0) {
32611	var str = _v0.a;
32612	var expecting = _v0.b;
32613	return function (s) {
32614		var _v1 = A5($elm$parser$Parser$Advanced$findSubString, str, s.cf, s.gm, s.d5, s.dE);
32615		var newOffset = _v1.a;
32616		var newRow = _v1.b;
32617		var newCol = _v1.c;
32618		return _Utils_eq(newOffset, -1) ? A2(
32619			$elm$parser$Parser$Advanced$Bad,
32620			false,
32621			A4($elm$parser$Parser$Advanced$fromInfo, newRow, newCol, expecting, s.f)) : A3(
32622			$elm$parser$Parser$Advanced$Good,
32623			_Utils_cmp(s.cf, newOffset) < 0,
32624			0,
32625			{d5: newCol, f: s.f, h: s.h, cf: newOffset, gm: newRow, dE: s.dE});
32626	};
32627};
32628var $dillonkearns$elm_markdown$Parser$Token$greaterThan = A2(
32629	$elm$parser$Parser$Advanced$Token,
32630	'>',
32631	$elm$parser$Parser$Expecting('a `>`'));
32632var $elm$parser$Parser$Advanced$Located = F3(
32633	function (row, col, context) {
32634		return {d5: col, f: context, gm: row};
32635	});
32636var $elm$parser$Parser$Advanced$changeContext = F2(
32637	function (newContext, s) {
32638		return {d5: s.d5, f: newContext, h: s.h, cf: s.cf, gm: s.gm, dE: s.dE};
32639	});
32640var $elm$parser$Parser$Advanced$inContext = F2(
32641	function (context, _v0) {
32642		var parse = _v0;
32643		return function (s0) {
32644			var _v1 = parse(
32645				A2(
32646					$elm$parser$Parser$Advanced$changeContext,
32647					A2(
32648						$elm$core$List$cons,
32649						A3($elm$parser$Parser$Advanced$Located, s0.gm, s0.d5, context),
32650						s0.f),
32651					s0));
32652			if (!_v1.$) {
32653				var p = _v1.a;
32654				var a = _v1.b;
32655				var s1 = _v1.c;
32656				return A3(
32657					$elm$parser$Parser$Advanced$Good,
32658					p,
32659					a,
32660					A2($elm$parser$Parser$Advanced$changeContext, s0.f, s1));
32661			} else {
32662				var step = _v1;
32663				return step;
32664			}
32665		};
32666	});
32667var $dillonkearns$elm_markdown$Whitespace$isWhitespace = function (_char) {
32668	switch (_char) {
32669		case ' ':
32670			return true;
32671		case '\n':
32672			return true;
32673		case '\t':
32674			return true;
32675		case '\u000B':
32676			return true;
32677		case '\u000C':
32678			return true;
32679		case '\u000D':
32680			return true;
32681		default:
32682			return false;
32683	}
32684};
32685var $dillonkearns$elm_markdown$Parser$Token$lessThan = A2(
32686	$elm$parser$Parser$Advanced$Token,
32687	'<',
32688	$elm$parser$Parser$Expecting('a `<`'));
32689var $dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$destinationParser = A2(
32690	$elm$parser$Parser$Advanced$inContext,
32691	'link destination',
32692	$elm$parser$Parser$Advanced$oneOf(
32693		_List_fromArray(
32694			[
32695				A2(
32696				$elm$parser$Parser$Advanced$keeper,
32697				A2(
32698					$elm$parser$Parser$Advanced$ignorer,
32699					$elm$parser$Parser$Advanced$succeed($elm$url$Url$percentEncode),
32700					$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$lessThan)),
32701				A2(
32702					$elm$parser$Parser$Advanced$ignorer,
32703					$elm$parser$Parser$Advanced$getChompedString(
32704						$elm$parser$Parser$Advanced$chompUntil($dillonkearns$elm_markdown$Parser$Token$greaterThan)),
32705					$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$greaterThan))),
32706				$elm$parser$Parser$Advanced$getChompedString(
32707				$dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore(
32708					A2($elm$core$Basics$composeL, $elm$core$Basics$not, $dillonkearns$elm_markdown$Whitespace$isWhitespace)))
32709			])));
32710var $dillonkearns$elm_markdown$Parser$Token$closingSquareBracket = A2(
32711	$elm$parser$Parser$Advanced$Token,
32712	']',
32713	$elm$parser$Parser$Expecting('a `]`'));
32714var $dillonkearns$elm_markdown$Parser$Token$openingSquareBracket = A2(
32715	$elm$parser$Parser$Advanced$Token,
32716	'[',
32717	$elm$parser$Parser$Expecting('a `[`'));
32718var $dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$labelParser = A2(
32719	$elm$parser$Parser$Advanced$keeper,
32720	A2(
32721		$elm$parser$Parser$Advanced$ignorer,
32722		$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$Markdown$Helpers$prepareRefLabel),
32723		$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$openingSquareBracket)),
32724	A2(
32725		$elm$parser$Parser$Advanced$ignorer,
32726		$elm$parser$Parser$Advanced$getChompedString(
32727			$elm$parser$Parser$Advanced$chompUntil($dillonkearns$elm_markdown$Parser$Token$closingSquareBracket)),
32728		$elm$parser$Parser$Advanced$symbol(
32729			A2(
32730				$elm$parser$Parser$Advanced$Token,
32731				']:',
32732				$elm$parser$Parser$Expecting(']:')))));
32733var $dillonkearns$elm_markdown$Parser$Token$doubleQuote = A2(
32734	$elm$parser$Parser$Advanced$Token,
32735	'\"',
32736	$elm$parser$Parser$Expecting('a double quote'));
32737var $dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$hasNoBlankLine = function (str) {
32738	return A2($elm$core$String$contains, '\n\n', str) ? $elm$parser$Parser$Advanced$problem(
32739		$elm$parser$Parser$Expecting('no blank line')) : $elm$parser$Parser$Advanced$succeed(str);
32740};
32741var $dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$onlyWhitespaceTillNewline = A2(
32742	$elm$parser$Parser$Advanced$ignorer,
32743	$elm$parser$Parser$Advanced$chompWhile(
32744		function (c) {
32745			return (!$dillonkearns$elm_markdown$Whitespace$isLineEnd(c)) && $dillonkearns$elm_markdown$Whitespace$isWhitespace(c);
32746		}),
32747	$dillonkearns$elm_markdown$Helpers$lineEndOrEnd);
32748var $dillonkearns$elm_markdown$Whitespace$requiredWhitespace = A2(
32749	$elm$parser$Parser$Advanced$ignorer,
32750	A2(
32751		$elm$parser$Parser$Advanced$chompIf,
32752		$dillonkearns$elm_markdown$Whitespace$isWhitespace,
32753		$elm$parser$Parser$Expecting('Required whitespace')),
32754	$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$Whitespace$isWhitespace));
32755var $dillonkearns$elm_markdown$Parser$Token$singleQuote = A2(
32756	$elm$parser$Parser$Advanced$Token,
32757	'\'',
32758	$elm$parser$Parser$Expecting('a single quote'));
32759var $dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$titleParser = function () {
32760	var inSingleQuotes = A2(
32761		$elm$parser$Parser$Advanced$keeper,
32762		A2(
32763			$elm$parser$Parser$Advanced$ignorer,
32764			$elm$parser$Parser$Advanced$succeed($elm$core$Maybe$Just),
32765			$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$singleQuote)),
32766		A2(
32767			$elm$parser$Parser$Advanced$ignorer,
32768			A2(
32769				$elm$parser$Parser$Advanced$ignorer,
32770				A2(
32771					$elm$parser$Parser$Advanced$andThen,
32772					$dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$hasNoBlankLine,
32773					$elm$parser$Parser$Advanced$getChompedString(
32774						$elm$parser$Parser$Advanced$chompUntil($dillonkearns$elm_markdown$Parser$Token$singleQuote))),
32775				$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$singleQuote)),
32776			$dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$onlyWhitespaceTillNewline));
32777	var inDoubleQuotes = A2(
32778		$elm$parser$Parser$Advanced$keeper,
32779		A2(
32780			$elm$parser$Parser$Advanced$ignorer,
32781			$elm$parser$Parser$Advanced$succeed($elm$core$Maybe$Just),
32782			$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$doubleQuote)),
32783		A2(
32784			$elm$parser$Parser$Advanced$ignorer,
32785			A2(
32786				$elm$parser$Parser$Advanced$ignorer,
32787				A2(
32788					$elm$parser$Parser$Advanced$andThen,
32789					$dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$hasNoBlankLine,
32790					$elm$parser$Parser$Advanced$getChompedString(
32791						$elm$parser$Parser$Advanced$chompUntil($dillonkearns$elm_markdown$Parser$Token$doubleQuote))),
32792				$elm$parser$Parser$Advanced$symbol($dillonkearns$elm_markdown$Parser$Token$doubleQuote)),
32793			$dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$onlyWhitespaceTillNewline));
32794	return A2(
32795		$elm$parser$Parser$Advanced$inContext,
32796		'title',
32797		$elm$parser$Parser$Advanced$oneOf(
32798			_List_fromArray(
32799				[
32800					$elm$parser$Parser$Advanced$backtrackable(
32801					A2(
32802						$elm$parser$Parser$Advanced$keeper,
32803						A2(
32804							$elm$parser$Parser$Advanced$ignorer,
32805							$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
32806							$dillonkearns$elm_markdown$Whitespace$requiredWhitespace),
32807						$elm$parser$Parser$Advanced$oneOf(
32808							_List_fromArray(
32809								[
32810									inDoubleQuotes,
32811									inSingleQuotes,
32812									$elm$parser$Parser$Advanced$succeed($elm$core$Maybe$Nothing)
32813								])))),
32814					A2(
32815					$elm$parser$Parser$Advanced$ignorer,
32816					$elm$parser$Parser$Advanced$succeed($elm$core$Maybe$Nothing),
32817					$dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$onlyWhitespaceTillNewline)
32818				])));
32819}();
32820var $dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$parser = A2(
32821	$elm$parser$Parser$Advanced$inContext,
32822	'link reference definition',
32823	A2(
32824		$elm$parser$Parser$Advanced$keeper,
32825		A2(
32826			$elm$parser$Parser$Advanced$keeper,
32827			A2(
32828				$elm$parser$Parser$Advanced$keeper,
32829				A2(
32830					$elm$parser$Parser$Advanced$ignorer,
32831					$elm$parser$Parser$Advanced$succeed(
32832						F3(
32833							function (label, destination, title) {
32834								return _Utils_Tuple2(
32835									label,
32836									{fm: destination, gt: title});
32837							})),
32838					$dillonkearns$elm_markdown$Whitespace$upToThreeSpaces),
32839				A2(
32840					$elm$parser$Parser$Advanced$ignorer,
32841					A2(
32842						$elm$parser$Parser$Advanced$ignorer,
32843						A2(
32844							$elm$parser$Parser$Advanced$ignorer,
32845							$dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$labelParser,
32846							$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$Whitespace$isSpaceOrTab)),
32847						$elm$parser$Parser$Advanced$oneOf(
32848							_List_fromArray(
32849								[
32850									$dillonkearns$elm_markdown$Whitespace$lineEnd,
32851									$elm$parser$Parser$Advanced$succeed(0)
32852								]))),
32853					$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$Whitespace$isSpaceOrTab))),
32854			$dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$destinationParser),
32855		$dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$titleParser));
32856var $dillonkearns$elm_markdown$ThematicBreak$ThematicBreak = 0;
32857var $dillonkearns$elm_markdown$ThematicBreak$whitespace = $elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$Whitespace$isSpaceOrTab);
32858var $dillonkearns$elm_markdown$ThematicBreak$withChar = function (tchar) {
32859	var token = $dillonkearns$elm_markdown$Parser$Token$parseString(
32860		$elm$core$String$fromChar(tchar));
32861	return A2(
32862		$elm$parser$Parser$Advanced$ignorer,
32863		A2(
32864			$elm$parser$Parser$Advanced$ignorer,
32865			A2(
32866				$elm$parser$Parser$Advanced$ignorer,
32867				A2(
32868					$elm$parser$Parser$Advanced$ignorer,
32869					A2(
32870						$elm$parser$Parser$Advanced$ignorer,
32871						A2(
32872							$elm$parser$Parser$Advanced$ignorer,
32873							A2(
32874								$elm$parser$Parser$Advanced$ignorer,
32875								$elm$parser$Parser$Advanced$succeed(0),
32876								token),
32877							$dillonkearns$elm_markdown$ThematicBreak$whitespace),
32878						token),
32879					$dillonkearns$elm_markdown$ThematicBreak$whitespace),
32880				token),
32881			$elm$parser$Parser$Advanced$chompWhile(
32882				function (c) {
32883					return _Utils_eq(c, tchar) || $dillonkearns$elm_markdown$Whitespace$isSpaceOrTab(c);
32884				})),
32885		$dillonkearns$elm_markdown$Helpers$lineEndOrEnd);
32886};
32887var $dillonkearns$elm_markdown$ThematicBreak$parseThematicBreak = $elm$parser$Parser$Advanced$oneOf(
32888	_List_fromArray(
32889		[
32890			$dillonkearns$elm_markdown$ThematicBreak$withChar('-'),
32891			$dillonkearns$elm_markdown$ThematicBreak$withChar('*'),
32892			$dillonkearns$elm_markdown$ThematicBreak$withChar('_')
32893		]));
32894var $dillonkearns$elm_markdown$ThematicBreak$parser = $elm$parser$Parser$Advanced$oneOf(
32895	_List_fromArray(
32896		[
32897			A2(
32898			$elm$parser$Parser$Advanced$keeper,
32899			A2(
32900				$elm$parser$Parser$Advanced$ignorer,
32901				A2(
32902					$elm$parser$Parser$Advanced$ignorer,
32903					A2(
32904						$elm$parser$Parser$Advanced$ignorer,
32905						$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
32906						$dillonkearns$elm_markdown$Whitespace$space),
32907					$elm$parser$Parser$Advanced$oneOf(
32908						_List_fromArray(
32909							[
32910								$dillonkearns$elm_markdown$Whitespace$space,
32911								$elm$parser$Parser$Advanced$succeed(0)
32912							]))),
32913				$elm$parser$Parser$Advanced$oneOf(
32914					_List_fromArray(
32915						[
32916							$dillonkearns$elm_markdown$Whitespace$space,
32917							$elm$parser$Parser$Advanced$succeed(0)
32918						]))),
32919			$dillonkearns$elm_markdown$ThematicBreak$parseThematicBreak),
32920			$dillonkearns$elm_markdown$ThematicBreak$parseThematicBreak
32921		]));
32922var $dillonkearns$elm_markdown$Markdown$RawBlock$LevelOne = 0;
32923var $dillonkearns$elm_markdown$Markdown$RawBlock$LevelTwo = 1;
32924var $dillonkearns$elm_markdown$Markdown$RawBlock$SetextLine = F2(
32925	function (a, b) {
32926		return {$: 13, a: a, b: b};
32927	});
32928var $dillonkearns$elm_markdown$Parser$Token$equals = A2(
32929	$elm$parser$Parser$Advanced$Token,
32930	'=',
32931	$elm$parser$Parser$Expecting('a `=`'));
32932var $dillonkearns$elm_markdown$Parser$Token$minus = A2(
32933	$elm$parser$Parser$Advanced$Token,
32934	'-',
32935	$elm$parser$Parser$Expecting('a `-`'));
32936var $dillonkearns$elm_markdown$Markdown$Parser$setextLineParser = function () {
32937	var setextLevel = F3(
32938		function (level, levelToken, levelChar) {
32939			return A2(
32940				$elm$parser$Parser$Advanced$ignorer,
32941				A2(
32942					$elm$parser$Parser$Advanced$ignorer,
32943					$elm$parser$Parser$Advanced$succeed(level),
32944					$elm$parser$Parser$Advanced$token(levelToken)),
32945				$elm$parser$Parser$Advanced$chompWhile(
32946					$elm$core$Basics$eq(levelChar)));
32947		});
32948	return A2(
32949		$elm$parser$Parser$Advanced$mapChompedString,
32950		F2(
32951			function (raw, level) {
32952				return A2($dillonkearns$elm_markdown$Markdown$RawBlock$SetextLine, level, raw);
32953			}),
32954		A2(
32955			$elm$parser$Parser$Advanced$keeper,
32956			A2(
32957				$elm$parser$Parser$Advanced$ignorer,
32958				$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
32959				$dillonkearns$elm_markdown$Whitespace$upToThreeSpaces),
32960			A2(
32961				$elm$parser$Parser$Advanced$ignorer,
32962				A2(
32963					$elm$parser$Parser$Advanced$ignorer,
32964					$elm$parser$Parser$Advanced$oneOf(
32965						_List_fromArray(
32966							[
32967								A3(setextLevel, 0, $dillonkearns$elm_markdown$Parser$Token$equals, '='),
32968								A3(setextLevel, 1, $dillonkearns$elm_markdown$Parser$Token$minus, '-')
32969							])),
32970					$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$Whitespace$isSpaceOrTab)),
32971				$dillonkearns$elm_markdown$Helpers$lineEndOrEnd)));
32972}();
32973var $dillonkearns$elm_markdown$Markdown$RawBlock$TableDelimiter = function (a) {
32974	return {$: 9, a: a};
32975};
32976var $dillonkearns$elm_markdown$Markdown$TableParser$chompSinglelineWhitespace = $elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$Whitespace$isSpaceOrTab);
32977var $dillonkearns$elm_markdown$Parser$Extra$maybeChomp = function (condition) {
32978	return $elm$parser$Parser$Advanced$oneOf(
32979		_List_fromArray(
32980			[
32981				A2(
32982				$elm$parser$Parser$Advanced$chompIf,
32983				condition,
32984				$elm$parser$Parser$Problem('Character not found')),
32985				$elm$parser$Parser$Advanced$succeed(0)
32986			]));
32987};
32988var $dillonkearns$elm_markdown$Markdown$TableParser$requirePipeIfNotFirst = function (columns) {
32989	return $elm$core$List$isEmpty(columns) ? $elm$parser$Parser$Advanced$oneOf(
32990		_List_fromArray(
32991			[
32992				$dillonkearns$elm_markdown$Parser$Token$parseString('|'),
32993				$elm$parser$Parser$Advanced$succeed(0)
32994			])) : $dillonkearns$elm_markdown$Parser$Token$parseString('|');
32995};
32996var $dillonkearns$elm_markdown$Markdown$TableParser$delimiterRowHelp = function (revDelimiterColumns) {
32997	return $elm$parser$Parser$Advanced$oneOf(
32998		_List_fromArray(
32999			[
33000				$elm$parser$Parser$Advanced$backtrackable(
33001				A2(
33002					$elm$parser$Parser$Advanced$map,
33003					function (_v0) {
33004						return $elm$parser$Parser$Advanced$Done(revDelimiterColumns);
33005					},
33006					$dillonkearns$elm_markdown$Parser$Token$parseString('|\n'))),
33007				A2(
33008				$elm$parser$Parser$Advanced$map,
33009				function (_v1) {
33010					return $elm$parser$Parser$Advanced$Done(revDelimiterColumns);
33011				},
33012				$dillonkearns$elm_markdown$Parser$Token$parseString('\n')),
33013				A2(
33014				$elm$parser$Parser$Advanced$map,
33015				function (_v2) {
33016					return $elm$parser$Parser$Advanced$Done(revDelimiterColumns);
33017				},
33018				$elm$parser$Parser$Advanced$end(
33019					$elm$parser$Parser$Expecting('end'))),
33020				$elm$parser$Parser$Advanced$backtrackable(
33021				A2(
33022					$elm$parser$Parser$Advanced$ignorer,
33023					A2(
33024						$elm$parser$Parser$Advanced$ignorer,
33025						$elm$parser$Parser$Advanced$succeed(
33026							$elm$parser$Parser$Advanced$Done(revDelimiterColumns)),
33027						$dillonkearns$elm_markdown$Parser$Token$parseString('|')),
33028					$elm$parser$Parser$Advanced$end(
33029						$elm$parser$Parser$Expecting('end')))),
33030				A2(
33031				$elm$parser$Parser$Advanced$keeper,
33032				A2(
33033					$elm$parser$Parser$Advanced$ignorer,
33034					A2(
33035						$elm$parser$Parser$Advanced$ignorer,
33036						$elm$parser$Parser$Advanced$succeed(
33037							function (column) {
33038								return $elm$parser$Parser$Advanced$Loop(
33039									A2($elm$core$List$cons, column, revDelimiterColumns));
33040							}),
33041						$dillonkearns$elm_markdown$Markdown$TableParser$requirePipeIfNotFirst(revDelimiterColumns)),
33042					$dillonkearns$elm_markdown$Markdown$TableParser$chompSinglelineWhitespace),
33043				A2(
33044					$elm$parser$Parser$Advanced$ignorer,
33045					$elm$parser$Parser$Advanced$getChompedString(
33046						A2(
33047							$elm$parser$Parser$Advanced$ignorer,
33048							A2(
33049								$elm$parser$Parser$Advanced$ignorer,
33050								A2(
33051									$elm$parser$Parser$Advanced$ignorer,
33052									$elm$parser$Parser$Advanced$succeed(0),
33053									$dillonkearns$elm_markdown$Parser$Extra$maybeChomp(
33054										function (c) {
33055											return c === ':';
33056										})),
33057								$dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore(
33058									function (c) {
33059										return c === '-';
33060									})),
33061							$dillonkearns$elm_markdown$Parser$Extra$maybeChomp(
33062								function (c) {
33063									return c === ':';
33064								}))),
33065					$dillonkearns$elm_markdown$Markdown$TableParser$chompSinglelineWhitespace))
33066			]));
33067};
33068var $dillonkearns$elm_markdown$Markdown$Block$AlignCenter = 2;
33069var $dillonkearns$elm_markdown$Markdown$Block$AlignLeft = 0;
33070var $dillonkearns$elm_markdown$Markdown$Block$AlignRight = 1;
33071var $dillonkearns$elm_markdown$Markdown$TableParser$delimiterToAlignment = function (cell) {
33072	var _v0 = _Utils_Tuple2(
33073		A2($elm$core$String$startsWith, ':', cell),
33074		A2($elm$core$String$endsWith, ':', cell));
33075	if (_v0.a) {
33076		if (_v0.b) {
33077			return $elm$core$Maybe$Just(2);
33078		} else {
33079			return $elm$core$Maybe$Just(0);
33080		}
33081	} else {
33082		if (_v0.b) {
33083			return $elm$core$Maybe$Just(1);
33084		} else {
33085			return $elm$core$Maybe$Nothing;
33086		}
33087	}
33088};
33089var $dillonkearns$elm_markdown$Markdown$TableParser$delimiterRowParser = A2(
33090	$elm$parser$Parser$Advanced$andThen,
33091	function (delimiterRow) {
33092		var trimmed = delimiterRow.a.e4;
33093		var headers = delimiterRow.b;
33094		return $elm$core$List$isEmpty(headers) ? $elm$parser$Parser$Advanced$problem(
33095			$elm$parser$Parser$Expecting('Must have at least one column in delimiter row.')) : ((($elm$core$List$length(headers) === 1) && (!(A2($elm$core$String$startsWith, '|', trimmed) && A2($elm$core$String$endsWith, '|', trimmed)))) ? $elm$parser$Parser$Advanced$problem(
33096			$elm$parser$Parser$Problem('Tables with a single column must have pipes at the start and end of the delimiter row to avoid ambiguity.')) : $elm$parser$Parser$Advanced$succeed(delimiterRow));
33097	},
33098	A2(
33099		$elm$parser$Parser$Advanced$mapChompedString,
33100		F2(
33101			function (delimiterText, revDelimiterColumns) {
33102				return A2(
33103					$dillonkearns$elm_markdown$Markdown$Table$TableDelimiterRow,
33104					{
33105						eM: delimiterText,
33106						e4: $elm$core$String$trim(delimiterText)
33107					},
33108					A2(
33109						$elm$core$List$map,
33110						$dillonkearns$elm_markdown$Markdown$TableParser$delimiterToAlignment,
33111						$elm$core$List$reverse(revDelimiterColumns)));
33112			}),
33113		A2($elm$parser$Parser$Advanced$loop, _List_Nil, $dillonkearns$elm_markdown$Markdown$TableParser$delimiterRowHelp)));
33114var $dillonkearns$elm_markdown$Markdown$Parser$tableDelimiterInOpenParagraph = A2($elm$parser$Parser$Advanced$map, $dillonkearns$elm_markdown$Markdown$RawBlock$TableDelimiter, $dillonkearns$elm_markdown$Markdown$TableParser$delimiterRowParser);
33115var $elm$core$List$all = F2(
33116	function (isOkay, list) {
33117		return !A2(
33118			$elm$core$List$any,
33119			A2($elm$core$Basics$composeL, $elm$core$Basics$not, isOkay),
33120			list);
33121	});
33122var $dillonkearns$elm_markdown$Markdown$TableParser$standardizeRowLength = F2(
33123	function (expectedLength, row) {
33124		var rowLength = $elm$core$List$length(row);
33125		var _v0 = A2($elm$core$Basics$compare, expectedLength, rowLength);
33126		switch (_v0) {
33127			case 0:
33128				return A2($elm$core$List$take, expectedLength, row);
33129			case 1:
33130				return row;
33131			default:
33132				return _Utils_ap(
33133					row,
33134					A2($elm$core$List$repeat, expectedLength - rowLength, ''));
33135		}
33136	});
33137var $dillonkearns$elm_markdown$Markdown$TableParser$bodyRowParser = function (expectedRowLength) {
33138	return A2(
33139		$elm$parser$Parser$Advanced$andThen,
33140		function (row) {
33141			return ($elm$core$List$isEmpty(row) || A2($elm$core$List$all, $elm$core$String$isEmpty, row)) ? $elm$parser$Parser$Advanced$problem(
33142				$elm$parser$Parser$Problem('A line must have at least one column')) : $elm$parser$Parser$Advanced$succeed(
33143				A2($dillonkearns$elm_markdown$Markdown$TableParser$standardizeRowLength, expectedRowLength, row));
33144		},
33145		$dillonkearns$elm_markdown$Markdown$TableParser$rowParser);
33146};
33147var $dillonkearns$elm_markdown$Markdown$Parser$tableRowIfTableStarted = function (_v0) {
33148	var headers = _v0.a;
33149	var body = _v0.b;
33150	return A2(
33151		$elm$parser$Parser$Advanced$map,
33152		function (row) {
33153			return $dillonkearns$elm_markdown$Markdown$RawBlock$Table(
33154				A2(
33155					$dillonkearns$elm_markdown$Markdown$Table$Table,
33156					headers,
33157					_Utils_ap(
33158						body,
33159						_List_fromArray(
33160							[row]))));
33161		},
33162		$dillonkearns$elm_markdown$Markdown$TableParser$bodyRowParser(
33163			$elm$core$List$length(headers)));
33164};
33165var $dillonkearns$elm_markdown$Markdown$Block$H1 = 0;
33166var $dillonkearns$elm_markdown$Markdown$Block$H2 = 1;
33167var $dillonkearns$elm_markdown$Markdown$Block$H3 = 2;
33168var $dillonkearns$elm_markdown$Markdown$Block$H4 = 3;
33169var $dillonkearns$elm_markdown$Markdown$Block$H5 = 4;
33170var $dillonkearns$elm_markdown$Markdown$Block$H6 = 5;
33171var $dillonkearns$elm_markdown$Markdown$Parser$toHeading = function (level) {
33172	switch (level) {
33173		case 1:
33174			return $elm$core$Result$Ok(0);
33175		case 2:
33176			return $elm$core$Result$Ok(1);
33177		case 3:
33178			return $elm$core$Result$Ok(2);
33179		case 4:
33180			return $elm$core$Result$Ok(3);
33181		case 5:
33182			return $elm$core$Result$Ok(4);
33183		case 6:
33184			return $elm$core$Result$Ok(5);
33185		default:
33186			return $elm$core$Result$Err(
33187				$elm$parser$Parser$Expecting(
33188					'A heading with 1 to 6 #\'s, but found ' + $elm$core$String$fromInt(level)));
33189	}
33190};
33191var $dillonkearns$elm_markdown$Markdown$ListItem$EmptyItem = {$: 2};
33192var $dillonkearns$elm_markdown$Markdown$ListItem$PlainItem = function (a) {
33193	return {$: 1, a: a};
33194};
33195var $dillonkearns$elm_markdown$Markdown$ListItem$TaskItem = F2(
33196	function (a, b) {
33197		return {$: 0, a: a, b: b};
33198	});
33199var $dillonkearns$elm_markdown$Markdown$UnorderedList$getIntendedCodeItem = F4(
33200	function (markerStartPos, listMarker, markerEndPos, _v0) {
33201		var bodyStartPos = _v0.a;
33202		var item = _v0.b;
33203		var spaceNum = bodyStartPos - markerEndPos;
33204		if (spaceNum <= 4) {
33205			return _Utils_Tuple3(listMarker, bodyStartPos - markerStartPos, item);
33206		} else {
33207			var intendedCodeItem = function () {
33208				switch (item.$) {
33209					case 0:
33210						var completion = item.a;
33211						var string = item.b;
33212						return A2(
33213							$dillonkearns$elm_markdown$Markdown$ListItem$TaskItem,
33214							completion,
33215							_Utils_ap(
33216								A2($elm$core$String$repeat, spaceNum - 1, ' '),
33217								string));
33218					case 1:
33219						var string = item.a;
33220						return $dillonkearns$elm_markdown$Markdown$ListItem$PlainItem(
33221							_Utils_ap(
33222								A2($elm$core$String$repeat, spaceNum - 1, ' '),
33223								string));
33224					default:
33225						return $dillonkearns$elm_markdown$Markdown$ListItem$EmptyItem;
33226				}
33227			}();
33228			return _Utils_Tuple3(listMarker, (markerEndPos - markerStartPos) + 1, intendedCodeItem);
33229		}
33230	});
33231var $dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListEmptyItemParser = A2(
33232	$elm$parser$Parser$Advanced$keeper,
33233	$elm$parser$Parser$Advanced$succeed(
33234		function (bodyStartPos) {
33235			return _Utils_Tuple2(bodyStartPos, $dillonkearns$elm_markdown$Markdown$ListItem$EmptyItem);
33236		}),
33237	A2($elm$parser$Parser$Advanced$ignorer, $elm$parser$Parser$Advanced$getCol, $dillonkearns$elm_markdown$Helpers$lineEndOrEnd));
33238var $dillonkearns$elm_markdown$Markdown$ListItem$Complete = 1;
33239var $dillonkearns$elm_markdown$Markdown$ListItem$Incomplete = 0;
33240var $dillonkearns$elm_markdown$Markdown$ListItem$taskItemParser = $elm$parser$Parser$Advanced$oneOf(
33241	_List_fromArray(
33242		[
33243			A2(
33244			$elm$parser$Parser$Advanced$ignorer,
33245			$elm$parser$Parser$Advanced$succeed(1),
33246			$elm$parser$Parser$Advanced$symbol(
33247				A2(
33248					$elm$parser$Parser$Advanced$Token,
33249					'[x] ',
33250					$elm$parser$Parser$ExpectingSymbol('[x] ')))),
33251			A2(
33252			$elm$parser$Parser$Advanced$ignorer,
33253			$elm$parser$Parser$Advanced$succeed(1),
33254			$elm$parser$Parser$Advanced$symbol(
33255				A2(
33256					$elm$parser$Parser$Advanced$Token,
33257					'[X] ',
33258					$elm$parser$Parser$ExpectingSymbol('[X] ')))),
33259			A2(
33260			$elm$parser$Parser$Advanced$ignorer,
33261			$elm$parser$Parser$Advanced$succeed(0),
33262			$elm$parser$Parser$Advanced$symbol(
33263				A2(
33264					$elm$parser$Parser$Advanced$Token,
33265					'[ ] ',
33266					$elm$parser$Parser$ExpectingSymbol('[ ] '))))
33267		]));
33268var $dillonkearns$elm_markdown$Markdown$ListItem$parser = A2(
33269	$elm$parser$Parser$Advanced$keeper,
33270	$elm$parser$Parser$Advanced$oneOf(
33271		_List_fromArray(
33272			[
33273				A2(
33274				$elm$parser$Parser$Advanced$keeper,
33275				$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$Markdown$ListItem$TaskItem),
33276				A2(
33277					$elm$parser$Parser$Advanced$ignorer,
33278					$dillonkearns$elm_markdown$Markdown$ListItem$taskItemParser,
33279					$elm$parser$Parser$Advanced$chompWhile($dillonkearns$elm_markdown$Whitespace$isSpaceOrTab))),
33280				$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$Markdown$ListItem$PlainItem)
33281			])),
33282	A2(
33283		$elm$parser$Parser$Advanced$ignorer,
33284		$elm$parser$Parser$Advanced$getChompedString($dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd),
33285		$dillonkearns$elm_markdown$Helpers$lineEndOrEnd));
33286var $dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListItemBodyParser = A2(
33287	$elm$parser$Parser$Advanced$keeper,
33288	A2(
33289		$elm$parser$Parser$Advanced$keeper,
33290		A2(
33291			$elm$parser$Parser$Advanced$ignorer,
33292			$elm$parser$Parser$Advanced$succeed(
33293				F2(
33294					function (bodyStartPos, item) {
33295						return _Utils_Tuple2(bodyStartPos, item);
33296					})),
33297			$dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore($dillonkearns$elm_markdown$Whitespace$isSpaceOrTab)),
33298		$elm$parser$Parser$Advanced$getCol),
33299	$dillonkearns$elm_markdown$Markdown$ListItem$parser);
33300var $dillonkearns$elm_markdown$Markdown$UnorderedList$Asterisk = 2;
33301var $dillonkearns$elm_markdown$Markdown$UnorderedList$Minus = 0;
33302var $dillonkearns$elm_markdown$Markdown$UnorderedList$Plus = 1;
33303var $dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListMarkerParser = $elm$parser$Parser$Advanced$oneOf(
33304	_List_fromArray(
33305		[
33306			A2(
33307			$elm$parser$Parser$Advanced$ignorer,
33308			A2(
33309				$elm$parser$Parser$Advanced$ignorer,
33310				$elm$parser$Parser$Advanced$succeed(0),
33311				A2($dillonkearns$elm_markdown$Parser$Extra$upTo, 3, $dillonkearns$elm_markdown$Whitespace$space)),
33312			$elm$parser$Parser$Advanced$symbol(
33313				A2(
33314					$elm$parser$Parser$Advanced$Token,
33315					'-',
33316					$elm$parser$Parser$ExpectingSymbol('-')))),
33317			A2(
33318			$elm$parser$Parser$Advanced$ignorer,
33319			$elm$parser$Parser$Advanced$succeed(1),
33320			$elm$parser$Parser$Advanced$symbol(
33321				A2(
33322					$elm$parser$Parser$Advanced$Token,
33323					'+',
33324					$elm$parser$Parser$ExpectingSymbol('+')))),
33325			A2(
33326			$elm$parser$Parser$Advanced$ignorer,
33327			$elm$parser$Parser$Advanced$succeed(2),
33328			$elm$parser$Parser$Advanced$symbol(
33329				A2(
33330					$elm$parser$Parser$Advanced$Token,
33331					'*',
33332					$elm$parser$Parser$ExpectingSymbol('*'))))
33333		]));
33334var $dillonkearns$elm_markdown$Markdown$UnorderedList$parser = function (previousWasBody) {
33335	return A2(
33336		$elm$parser$Parser$Advanced$keeper,
33337		A2(
33338			$elm$parser$Parser$Advanced$keeper,
33339			A2(
33340				$elm$parser$Parser$Advanced$keeper,
33341				A2(
33342					$elm$parser$Parser$Advanced$keeper,
33343					$elm$parser$Parser$Advanced$succeed($dillonkearns$elm_markdown$Markdown$UnorderedList$getIntendedCodeItem),
33344					$elm$parser$Parser$Advanced$getCol),
33345				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListMarkerParser)),
33346			$elm$parser$Parser$Advanced$getCol),
33347		previousWasBody ? $dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListItemBodyParser : $elm$parser$Parser$Advanced$oneOf(
33348			_List_fromArray(
33349				[$dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListEmptyItemParser, $dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListItemBodyParser])));
33350};
33351var $dillonkearns$elm_markdown$Markdown$Parser$unorderedListBlock = function (previousWasBody) {
33352	var parseListItem = F2(
33353		function (listmarker, unparsedListItem) {
33354			switch (unparsedListItem.$) {
33355				case 0:
33356					var completion = unparsedListItem.a;
33357					var body = unparsedListItem.b;
33358					return {
33359						fe: body,
33360						fP: listmarker,
33361						k: $elm$core$Maybe$Just(
33362							function () {
33363								if (completion === 1) {
33364									return true;
33365								} else {
33366									return false;
33367								}
33368							}())
33369					};
33370				case 1:
33371					var body = unparsedListItem.a;
33372					return {fe: body, fP: listmarker, k: $elm$core$Maybe$Nothing};
33373				default:
33374					return {fe: '', fP: listmarker, k: $elm$core$Maybe$Nothing};
33375			}
33376		});
33377	return A2(
33378		$elm$parser$Parser$Advanced$map,
33379		function (_v0) {
33380			var listmarker = _v0.a;
33381			var intended = _v0.b;
33382			var unparsedListItem = _v0.c;
33383			return A4(
33384				$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
33385				true,
33386				intended,
33387				_List_Nil,
33388				A2(parseListItem, listmarker, unparsedListItem));
33389		},
33390		$dillonkearns$elm_markdown$Markdown$UnorderedList$parser(previousWasBody));
33391};
33392var $dillonkearns$elm_markdown$Markdown$Parser$childToBlocks = F2(
33393	function (node, blocks) {
33394		switch (node.$) {
33395			case 0:
33396				var tag = node.a;
33397				var attributes = node.b;
33398				var children = node.c;
33399				var _v106 = $dillonkearns$elm_markdown$Markdown$Parser$nodesToBlocks(children);
33400				if (!_v106.$) {
33401					var childrenAsBlocks = _v106.a;
33402					var block = $dillonkearns$elm_markdown$Markdown$Block$HtmlBlock(
33403						A3($dillonkearns$elm_markdown$Markdown$Block$HtmlElement, tag, attributes, childrenAsBlocks));
33404					return $elm$core$Result$Ok(
33405						A2($elm$core$List$cons, block, blocks));
33406				} else {
33407					var err = _v106.a;
33408					return $elm$core$Result$Err(err);
33409				}
33410			case 1:
33411				var innerText = node.a;
33412				var _v107 = $dillonkearns$elm_markdown$Markdown$Parser$parse(innerText);
33413				if (!_v107.$) {
33414					var value = _v107.a;
33415					return $elm$core$Result$Ok(
33416						_Utils_ap(
33417							$elm$core$List$reverse(value),
33418							blocks));
33419				} else {
33420					var error = _v107.a;
33421					return $elm$core$Result$Err(
33422						$elm$parser$Parser$Expecting(
33423							A2(
33424								$elm$core$String$join,
33425								'\n',
33426								A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Parser$deadEndToString, error))));
33427				}
33428			case 2:
33429				var string = node.a;
33430				return $elm$core$Result$Ok(
33431					A2(
33432						$elm$core$List$cons,
33433						$dillonkearns$elm_markdown$Markdown$Block$HtmlBlock(
33434							$dillonkearns$elm_markdown$Markdown$Block$HtmlComment(string)),
33435						blocks));
33436			case 3:
33437				var string = node.a;
33438				return $elm$core$Result$Ok(
33439					A2(
33440						$elm$core$List$cons,
33441						$dillonkearns$elm_markdown$Markdown$Block$HtmlBlock(
33442							$dillonkearns$elm_markdown$Markdown$Block$Cdata(string)),
33443						blocks));
33444			case 4:
33445				var string = node.a;
33446				return $elm$core$Result$Ok(
33447					A2(
33448						$elm$core$List$cons,
33449						$dillonkearns$elm_markdown$Markdown$Block$HtmlBlock(
33450							$dillonkearns$elm_markdown$Markdown$Block$ProcessingInstruction(string)),
33451						blocks));
33452			default:
33453				var declarationType = node.a;
33454				var content = node.b;
33455				return $elm$core$Result$Ok(
33456					A2(
33457						$elm$core$List$cons,
33458						$dillonkearns$elm_markdown$Markdown$Block$HtmlBlock(
33459							A2($dillonkearns$elm_markdown$Markdown$Block$HtmlDeclaration, declarationType, content)),
33460						blocks));
33461		}
33462	});
33463var $dillonkearns$elm_markdown$Markdown$Parser$completeBlocks = function (state) {
33464	var _v91 = state.b;
33465	_v91$5:
33466	while (true) {
33467		if (_v91.b) {
33468			switch (_v91.a.$) {
33469				case 11:
33470					var body2 = _v91.a.a;
33471					var rest = _v91.b;
33472					var _v92 = A2(
33473						$elm$parser$Parser$Advanced$run,
33474						$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33475						body2);
33476					if (!_v92.$) {
33477						var value = _v92.a;
33478						return $elm$parser$Parser$Advanced$succeed(
33479							{
33480								a: _Utils_ap(state.a, value.a),
33481								b: A2(
33482									$elm$core$List$cons,
33483									$dillonkearns$elm_markdown$Markdown$RawBlock$ParsedBlockQuote(value.b),
33484									rest)
33485							});
33486					} else {
33487						var error = _v92.a;
33488						return $elm$parser$Parser$Advanced$problem(
33489							$elm$parser$Parser$Problem(
33490								$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(error)));
33491					}
33492				case 3:
33493					var _v93 = _v91.a;
33494					var tight = _v93.a;
33495					var intended = _v93.b;
33496					var closeListItems = _v93.c;
33497					var openListItem = _v93.d;
33498					var rest = _v91.b;
33499					var _v94 = A2(
33500						$elm$parser$Parser$Advanced$run,
33501						$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33502						openListItem.fe);
33503					if (!_v94.$) {
33504						var value = _v94.a;
33505						var tight2 = A2($elm$core$List$member, $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.b) ? false : tight;
33506						return $elm$parser$Parser$Advanced$succeed(
33507							{
33508								a: _Utils_ap(state.a, value.a),
33509								b: A2(
33510									$elm$core$List$cons,
33511									A4(
33512										$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
33513										tight2,
33514										intended,
33515										A2(
33516											$elm$core$List$cons,
33517											{fe: value.b, k: openListItem.k},
33518											closeListItems),
33519										openListItem),
33520									rest)
33521							});
33522					} else {
33523						var e = _v94.a;
33524						return $elm$parser$Parser$Advanced$problem(
33525							$elm$parser$Parser$Problem(
33526								$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
33527					}
33528				case 4:
33529					var _v99 = _v91.a;
33530					var tight = _v99.a;
33531					var intended = _v99.b;
33532					var marker = _v99.c;
33533					var order = _v99.d;
33534					var closeListItems = _v99.e;
33535					var openListItem = _v99.f;
33536					var rest = _v91.b;
33537					var _v100 = A2(
33538						$elm$parser$Parser$Advanced$run,
33539						$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33540						openListItem);
33541					if (!_v100.$) {
33542						var value = _v100.a;
33543						var tight2 = A2($elm$core$List$member, $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.b) ? false : tight;
33544						return $elm$parser$Parser$Advanced$succeed(
33545							{
33546								a: _Utils_ap(state.a, value.a),
33547								b: A2(
33548									$elm$core$List$cons,
33549									A6(
33550										$dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock,
33551										tight2,
33552										intended,
33553										marker,
33554										order,
33555										A2($elm$core$List$cons, value.b, closeListItems),
33556										openListItem),
33557									rest)
33558							});
33559					} else {
33560						var e = _v100.a;
33561						return $elm$parser$Parser$Advanced$problem(
33562							$elm$parser$Parser$Problem(
33563								$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
33564					}
33565				case 10:
33566					if (_v91.b.b) {
33567						switch (_v91.b.a.$) {
33568							case 3:
33569								var _v95 = _v91.a;
33570								var _v96 = _v91.b;
33571								var _v97 = _v96.a;
33572								var tight = _v97.a;
33573								var intended = _v97.b;
33574								var closeListItems = _v97.c;
33575								var openListItem = _v97.d;
33576								var rest = _v96.b;
33577								var _v98 = A2(
33578									$elm$parser$Parser$Advanced$run,
33579									$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33580									openListItem.fe);
33581								if (!_v98.$) {
33582									var value = _v98.a;
33583									var tight2 = A2($elm$core$List$member, $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.b) ? false : tight;
33584									return $elm$parser$Parser$Advanced$succeed(
33585										{
33586											a: _Utils_ap(state.a, value.a),
33587											b: A2(
33588												$elm$core$List$cons,
33589												A4(
33590													$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
33591													tight2,
33592													intended,
33593													A2(
33594														$elm$core$List$cons,
33595														{fe: value.b, k: openListItem.k},
33596														closeListItems),
33597													openListItem),
33598												rest)
33599										});
33600								} else {
33601									var e = _v98.a;
33602									return $elm$parser$Parser$Advanced$problem(
33603										$elm$parser$Parser$Problem(
33604											$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
33605								}
33606							case 4:
33607								var _v101 = _v91.a;
33608								var _v102 = _v91.b;
33609								var _v103 = _v102.a;
33610								var tight = _v103.a;
33611								var intended = _v103.b;
33612								var marker = _v103.c;
33613								var order = _v103.d;
33614								var closeListItems = _v103.e;
33615								var openListItem = _v103.f;
33616								var rest = _v102.b;
33617								var _v104 = A2(
33618									$elm$parser$Parser$Advanced$run,
33619									$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33620									openListItem);
33621								if (!_v104.$) {
33622									var value = _v104.a;
33623									var tight2 = A2($elm$core$List$member, $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.b) ? false : tight;
33624									return $elm$parser$Parser$Advanced$succeed(
33625										{
33626											a: _Utils_ap(state.a, value.a),
33627											b: A2(
33628												$elm$core$List$cons,
33629												A6(
33630													$dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock,
33631													tight2,
33632													intended,
33633													marker,
33634													order,
33635													A2($elm$core$List$cons, value.b, closeListItems),
33636													openListItem),
33637												rest)
33638										});
33639								} else {
33640									var e = _v104.a;
33641									return $elm$parser$Parser$Advanced$problem(
33642										$elm$parser$Parser$Problem(
33643											$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
33644								}
33645							default:
33646								break _v91$5;
33647						}
33648					} else {
33649						break _v91$5;
33650					}
33651				default:
33652					break _v91$5;
33653			}
33654		} else {
33655			break _v91$5;
33656		}
33657	}
33658	return $elm$parser$Parser$Advanced$succeed(state);
33659};
33660var $dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks = F2(
33661	function (state, newRawBlock) {
33662		var _v41 = _Utils_Tuple2(newRawBlock, state.b);
33663		_v41$13:
33664		while (true) {
33665			if (_v41.b.b) {
33666				switch (_v41.b.a.$) {
33667					case 5:
33668						if (_v41.a.$ === 5) {
33669							var block1 = _v41.a.a;
33670							var _v42 = _v41.b;
33671							var block2 = _v42.a.a;
33672							var rest = _v42.b;
33673							return $elm$parser$Parser$Advanced$succeed(
33674								{
33675									a: state.a,
33676									b: A2(
33677										$elm$core$List$cons,
33678										$dillonkearns$elm_markdown$Markdown$RawBlock$CodeBlock(
33679											{
33680												fe: A2($dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll, block2.fe, block1.fe),
33681												fK: $elm$core$Maybe$Nothing
33682											}),
33683										rest)
33684								});
33685						} else {
33686							break _v41$13;
33687						}
33688					case 6:
33689						switch (_v41.a.$) {
33690							case 6:
33691								var block1 = _v41.a.a;
33692								var _v43 = _v41.b;
33693								var block2 = _v43.a.a;
33694								var rest = _v43.b;
33695								return $elm$parser$Parser$Advanced$succeed(
33696									{
33697										a: state.a,
33698										b: A2(
33699											$elm$core$List$cons,
33700											$dillonkearns$elm_markdown$Markdown$RawBlock$IndentedCodeBlock(
33701												A2($dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll, block2, block1)),
33702											rest)
33703									});
33704							case 10:
33705								var _v44 = _v41.a;
33706								var _v45 = _v41.b;
33707								var block = _v45.a.a;
33708								var rest = _v45.b;
33709								return $elm$parser$Parser$Advanced$succeed(
33710									{
33711										a: state.a,
33712										b: A2(
33713											$elm$core$List$cons,
33714											$dillonkearns$elm_markdown$Markdown$RawBlock$IndentedCodeBlock(
33715												A2($dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll, block, '\n')),
33716											rest)
33717									});
33718							default:
33719								break _v41$13;
33720						}
33721					case 11:
33722						var _v46 = _v41.b;
33723						var body2 = _v46.a.a;
33724						var rest = _v46.b;
33725						switch (newRawBlock.$) {
33726							case 11:
33727								var body1 = newRawBlock.a;
33728								return $elm$parser$Parser$Advanced$succeed(
33729									{
33730										a: state.a,
33731										b: A2(
33732											$elm$core$List$cons,
33733											$dillonkearns$elm_markdown$Markdown$RawBlock$BlockQuote(
33734												A2($dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll, body2, body1)),
33735											rest)
33736									});
33737							case 1:
33738								var body1 = newRawBlock.a;
33739								var _v48 = A2(
33740									$elm$parser$Parser$Advanced$run,
33741									$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33742									body2);
33743								if (!_v48.$) {
33744									var value = _v48.a;
33745									var _v49 = value.b;
33746									if (_v49.b) {
33747										var last = _v49.a;
33748										if ($dillonkearns$elm_markdown$Markdown$Parser$endWithOpenBlockOrParagraph(last) && (!A2($elm$core$String$endsWith, '\n', body2))) {
33749											return $elm$parser$Parser$Advanced$succeed(
33750												{
33751													a: state.a,
33752													b: A2(
33753														$elm$core$List$cons,
33754														$dillonkearns$elm_markdown$Markdown$RawBlock$BlockQuote(
33755															A2($dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll, body2, body1)),
33756														rest)
33757												});
33758										} else {
33759											var _v50 = A2(
33760												$elm$parser$Parser$Advanced$run,
33761												$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33762												body2);
33763											if (!_v50.$) {
33764												var value1 = _v50.a;
33765												return $elm$parser$Parser$Advanced$succeed(
33766													{
33767														a: _Utils_ap(state.a, value.a),
33768														b: A2(
33769															$elm$core$List$cons,
33770															newRawBlock,
33771															A2(
33772																$elm$core$List$cons,
33773																$dillonkearns$elm_markdown$Markdown$RawBlock$ParsedBlockQuote(value1.b),
33774																rest))
33775													});
33776											} else {
33777												var e1 = _v50.a;
33778												return $elm$parser$Parser$Advanced$problem(
33779													$elm$parser$Parser$Problem(
33780														$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e1)));
33781											}
33782										}
33783									} else {
33784										var _v51 = A2(
33785											$elm$parser$Parser$Advanced$run,
33786											$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33787											body2);
33788										if (!_v51.$) {
33789											var value1 = _v51.a;
33790											return $elm$parser$Parser$Advanced$succeed(
33791												{
33792													a: _Utils_ap(state.a, value.a),
33793													b: A2(
33794														$elm$core$List$cons,
33795														newRawBlock,
33796														A2(
33797															$elm$core$List$cons,
33798															$dillonkearns$elm_markdown$Markdown$RawBlock$ParsedBlockQuote(value1.b),
33799															rest))
33800												});
33801										} else {
33802											var e1 = _v51.a;
33803											return $elm$parser$Parser$Advanced$problem(
33804												$elm$parser$Parser$Problem(
33805													$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e1)));
33806										}
33807									}
33808								} else {
33809									var e = _v48.a;
33810									return $elm$parser$Parser$Advanced$problem(
33811										$elm$parser$Parser$Problem(
33812											$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
33813								}
33814							case 6:
33815								var body1 = newRawBlock.a;
33816								var _v52 = A2(
33817									$elm$parser$Parser$Advanced$run,
33818									$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33819									body2);
33820								if (!_v52.$) {
33821									var value = _v52.a;
33822									var _v53 = value.b;
33823									if (_v53.b && (_v53.a.$ === 1)) {
33824										return $elm$parser$Parser$Advanced$succeed(
33825											{
33826												a: state.a,
33827												b: A2(
33828													$elm$core$List$cons,
33829													$dillonkearns$elm_markdown$Markdown$RawBlock$BlockQuote(
33830														A3($dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, ' ', body2, body1)),
33831													rest)
33832											});
33833									} else {
33834										var _v54 = A2(
33835											$elm$parser$Parser$Advanced$run,
33836											$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33837											body2);
33838										if (!_v54.$) {
33839											var value1 = _v54.a;
33840											return $elm$parser$Parser$Advanced$succeed(
33841												{
33842													a: _Utils_ap(state.a, value.a),
33843													b: A2(
33844														$elm$core$List$cons,
33845														newRawBlock,
33846														A2(
33847															$elm$core$List$cons,
33848															$dillonkearns$elm_markdown$Markdown$RawBlock$ParsedBlockQuote(value1.b),
33849															rest))
33850												});
33851										} else {
33852											var e1 = _v54.a;
33853											return $elm$parser$Parser$Advanced$problem(
33854												$elm$parser$Parser$Problem(
33855													$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e1)));
33856										}
33857									}
33858								} else {
33859									var e = _v52.a;
33860									return $elm$parser$Parser$Advanced$problem(
33861										$elm$parser$Parser$Problem(
33862											$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
33863								}
33864							default:
33865								var _v55 = A2(
33866									$elm$parser$Parser$Advanced$run,
33867									$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33868									body2);
33869								if (!_v55.$) {
33870									var value = _v55.a;
33871									return $elm$parser$Parser$Advanced$succeed(
33872										{
33873											a: _Utils_ap(state.a, value.a),
33874											b: A2(
33875												$elm$core$List$cons,
33876												newRawBlock,
33877												A2(
33878													$elm$core$List$cons,
33879													$dillonkearns$elm_markdown$Markdown$RawBlock$ParsedBlockQuote(value.b),
33880													rest))
33881										});
33882								} else {
33883									var e = _v55.a;
33884									return $elm$parser$Parser$Advanced$problem(
33885										$elm$parser$Parser$Problem(
33886											$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
33887								}
33888						}
33889					case 3:
33890						var _v56 = _v41.b;
33891						var _v57 = _v56.a;
33892						var tight = _v57.a;
33893						var intended1 = _v57.b;
33894						var closeListItems2 = _v57.c;
33895						var openListItem2 = _v57.d;
33896						var rest = _v56.b;
33897						switch (newRawBlock.$) {
33898							case 3:
33899								var intended2 = newRawBlock.b;
33900								var openListItem1 = newRawBlock.d;
33901								if (_Utils_eq(openListItem2.fP, openListItem1.fP)) {
33902									var _v59 = A2(
33903										$elm$parser$Parser$Advanced$run,
33904										$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33905										openListItem2.fe);
33906									if (!_v59.$) {
33907										var value = _v59.a;
33908										return A2($elm$core$List$member, $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.b) ? $elm$parser$Parser$Advanced$succeed(
33909											{
33910												a: _Utils_ap(state.a, value.a),
33911												b: A2(
33912													$elm$core$List$cons,
33913													A4(
33914														$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
33915														false,
33916														intended2,
33917														A2(
33918															$elm$core$List$cons,
33919															{fe: value.b, k: openListItem2.k},
33920															closeListItems2),
33921														openListItem1),
33922													rest)
33923											}) : $elm$parser$Parser$Advanced$succeed(
33924											{
33925												a: _Utils_ap(state.a, value.a),
33926												b: A2(
33927													$elm$core$List$cons,
33928													A4(
33929														$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
33930														tight,
33931														intended2,
33932														A2(
33933															$elm$core$List$cons,
33934															{fe: value.b, k: openListItem2.k},
33935															closeListItems2),
33936														openListItem1),
33937													rest)
33938											});
33939									} else {
33940										var e = _v59.a;
33941										return $elm$parser$Parser$Advanced$problem(
33942											$elm$parser$Parser$Problem(
33943												$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
33944									}
33945								} else {
33946									var _v60 = A2(
33947										$elm$parser$Parser$Advanced$run,
33948										$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
33949										openListItem2.fe);
33950									if (!_v60.$) {
33951										var value = _v60.a;
33952										var tight2 = A2($elm$core$List$member, $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.b) ? false : tight;
33953										return $elm$parser$Parser$Advanced$succeed(
33954											{
33955												a: _Utils_ap(state.a, value.a),
33956												b: A2(
33957													$elm$core$List$cons,
33958													newRawBlock,
33959													A2(
33960														$elm$core$List$cons,
33961														A4(
33962															$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
33963															tight2,
33964															intended1,
33965															A2(
33966																$elm$core$List$cons,
33967																{fe: value.b, k: openListItem2.k},
33968																closeListItems2),
33969															openListItem1),
33970														rest))
33971											});
33972									} else {
33973										var e = _v60.a;
33974										return $elm$parser$Parser$Advanced$problem(
33975											$elm$parser$Parser$Problem(
33976												$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
33977									}
33978								}
33979							case 1:
33980								var body1 = newRawBlock.a;
33981								return $elm$parser$Parser$Advanced$succeed(
33982									{
33983										a: state.a,
33984										b: A2(
33985											$elm$core$List$cons,
33986											A4(
33987												$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
33988												tight,
33989												intended1,
33990												closeListItems2,
33991												_Utils_update(
33992													openListItem2,
33993													{
33994														fe: A3($dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', openListItem2.fe, body1)
33995													})),
33996											rest)
33997									});
33998							default:
33999								var _v61 = A2(
34000									$elm$parser$Parser$Advanced$run,
34001									$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
34002									openListItem2.fe);
34003								if (!_v61.$) {
34004									var value = _v61.a;
34005									var tight2 = A2($elm$core$List$member, $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.b) ? false : tight;
34006									return $elm$parser$Parser$Advanced$succeed(
34007										{
34008											a: _Utils_ap(state.a, value.a),
34009											b: A2(
34010												$elm$core$List$cons,
34011												newRawBlock,
34012												A2(
34013													$elm$core$List$cons,
34014													A4(
34015														$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
34016														tight2,
34017														intended1,
34018														A2(
34019															$elm$core$List$cons,
34020															{fe: value.b, k: openListItem2.k},
34021															closeListItems2),
34022														openListItem2),
34023													rest))
34024										});
34025								} else {
34026									var e = _v61.a;
34027									return $elm$parser$Parser$Advanced$problem(
34028										$elm$parser$Parser$Problem(
34029											$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
34030								}
34031						}
34032					case 4:
34033						var _v62 = _v41.b;
34034						var _v63 = _v62.a;
34035						var tight = _v63.a;
34036						var intended1 = _v63.b;
34037						var marker = _v63.c;
34038						var order = _v63.d;
34039						var closeListItems2 = _v63.e;
34040						var openListItem2 = _v63.f;
34041						var rest = _v62.b;
34042						switch (newRawBlock.$) {
34043							case 4:
34044								var intended2 = newRawBlock.b;
34045								var marker2 = newRawBlock.c;
34046								var openListItem1 = newRawBlock.f;
34047								if (_Utils_eq(marker, marker2)) {
34048									var _v65 = A2(
34049										$elm$parser$Parser$Advanced$run,
34050										$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
34051										openListItem2);
34052									if (!_v65.$) {
34053										var value = _v65.a;
34054										var tight2 = A2($elm$core$List$member, $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.b) ? false : tight;
34055										return $elm$parser$Parser$Advanced$succeed(
34056											{
34057												a: _Utils_ap(state.a, value.a),
34058												b: A2(
34059													$elm$core$List$cons,
34060													A6(
34061														$dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock,
34062														tight2,
34063														intended2,
34064														marker,
34065														order,
34066														A2($elm$core$List$cons, value.b, closeListItems2),
34067														openListItem1),
34068													rest)
34069											});
34070									} else {
34071										var e = _v65.a;
34072										return $elm$parser$Parser$Advanced$problem(
34073											$elm$parser$Parser$Problem(
34074												$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
34075									}
34076								} else {
34077									var _v66 = A2(
34078										$elm$parser$Parser$Advanced$run,
34079										$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
34080										openListItem2);
34081									if (!_v66.$) {
34082										var value = _v66.a;
34083										var tight2 = A2($elm$core$List$member, $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.b) ? false : tight;
34084										return $elm$parser$Parser$Advanced$succeed(
34085											{
34086												a: _Utils_ap(state.a, value.a),
34087												b: A2(
34088													$elm$core$List$cons,
34089													newRawBlock,
34090													A2(
34091														$elm$core$List$cons,
34092														A6(
34093															$dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock,
34094															tight2,
34095															intended1,
34096															marker,
34097															order,
34098															A2($elm$core$List$cons, value.b, closeListItems2),
34099															openListItem2),
34100														rest))
34101											});
34102									} else {
34103										var e = _v66.a;
34104										return $elm$parser$Parser$Advanced$problem(
34105											$elm$parser$Parser$Problem(
34106												$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
34107									}
34108								}
34109							case 1:
34110								var body1 = newRawBlock.a;
34111								return $elm$parser$Parser$Advanced$succeed(
34112									{
34113										a: state.a,
34114										b: A2(
34115											$elm$core$List$cons,
34116											A6($dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, tight, intended1, marker, order, closeListItems2, openListItem2 + ('\n' + body1)),
34117											rest)
34118									});
34119							default:
34120								var _v67 = A2(
34121									$elm$parser$Parser$Advanced$run,
34122									$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
34123									openListItem2);
34124								if (!_v67.$) {
34125									var value = _v67.a;
34126									var tight2 = A2($elm$core$List$member, $dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.b) ? false : tight;
34127									return $elm$parser$Parser$Advanced$succeed(
34128										{
34129											a: _Utils_ap(state.a, value.a),
34130											b: A2(
34131												$elm$core$List$cons,
34132												newRawBlock,
34133												A2(
34134													$elm$core$List$cons,
34135													A6(
34136														$dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock,
34137														tight2,
34138														intended1,
34139														marker,
34140														order,
34141														A2($elm$core$List$cons, value.b, closeListItems2),
34142														openListItem2),
34143													rest))
34144										});
34145								} else {
34146									var e = _v67.a;
34147									return $elm$parser$Parser$Advanced$problem(
34148										$elm$parser$Parser$Problem(
34149											$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
34150								}
34151						}
34152					case 1:
34153						switch (_v41.a.$) {
34154							case 1:
34155								var body1 = _v41.a.a;
34156								var _v68 = _v41.b;
34157								var body2 = _v68.a.a;
34158								var rest = _v68.b;
34159								return $elm$parser$Parser$Advanced$succeed(
34160									{
34161										a: state.a,
34162										b: A2(
34163											$elm$core$List$cons,
34164											$dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph(
34165												A3($dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', body2, body1)),
34166											rest)
34167									});
34168							case 13:
34169								if (!_v41.a.a) {
34170									var _v69 = _v41.a;
34171									var _v70 = _v69.a;
34172									var _v71 = _v41.b;
34173									var unparsedInlines = _v71.a.a;
34174									var rest = _v71.b;
34175									return $elm$parser$Parser$Advanced$succeed(
34176										{
34177											a: state.a,
34178											b: A2(
34179												$elm$core$List$cons,
34180												A2($dillonkearns$elm_markdown$Markdown$RawBlock$Heading, 1, unparsedInlines),
34181												rest)
34182										});
34183								} else {
34184									var _v72 = _v41.a;
34185									var _v73 = _v72.a;
34186									var _v74 = _v41.b;
34187									var unparsedInlines = _v74.a.a;
34188									var rest = _v74.b;
34189									return $elm$parser$Parser$Advanced$succeed(
34190										{
34191											a: state.a,
34192											b: A2(
34193												$elm$core$List$cons,
34194												A2($dillonkearns$elm_markdown$Markdown$RawBlock$Heading, 2, unparsedInlines),
34195												rest)
34196										});
34197								}
34198							case 9:
34199								var _v75 = _v41.a.a;
34200								var text = _v75.a;
34201								var alignments = _v75.b;
34202								var _v76 = _v41.b;
34203								var rawHeaders = _v76.a.a;
34204								var rest = _v76.b;
34205								var _v77 = A2(
34206									$dillonkearns$elm_markdown$Markdown$TableParser$parseHeader,
34207									A2($dillonkearns$elm_markdown$Markdown$Table$TableDelimiterRow, text, alignments),
34208									rawHeaders);
34209								if (!_v77.$) {
34210									var headers = _v77.a;
34211									return $elm$parser$Parser$Advanced$succeed(
34212										{
34213											a: state.a,
34214											b: A2(
34215												$elm$core$List$cons,
34216												$dillonkearns$elm_markdown$Markdown$RawBlock$Table(
34217													A2($dillonkearns$elm_markdown$Markdown$Table$Table, headers, _List_Nil)),
34218												rest)
34219										});
34220								} else {
34221									return $elm$parser$Parser$Advanced$succeed(
34222										{
34223											a: state.a,
34224											b: A2(
34225												$elm$core$List$cons,
34226												$dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph(
34227													A3($dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', rawHeaders, text.eM)),
34228												rest)
34229										});
34230								}
34231							default:
34232								break _v41$13;
34233						}
34234					case 8:
34235						if (_v41.a.$ === 8) {
34236							var updatedTable = _v41.a.a;
34237							var _v78 = _v41.b;
34238							var rest = _v78.b;
34239							return $elm$parser$Parser$Advanced$succeed(
34240								{
34241									a: state.a,
34242									b: A2(
34243										$elm$core$List$cons,
34244										$dillonkearns$elm_markdown$Markdown$RawBlock$Table(updatedTable),
34245										rest)
34246								});
34247						} else {
34248							break _v41$13;
34249						}
34250					case 10:
34251						if (_v41.b.b.b) {
34252							switch (_v41.b.b.a.$) {
34253								case 4:
34254									var _v79 = _v41.b;
34255									var _v80 = _v79.a;
34256									var _v81 = _v79.b;
34257									var _v82 = _v81.a;
34258									var tight = _v82.a;
34259									var intended1 = _v82.b;
34260									var marker = _v82.c;
34261									var order = _v82.d;
34262									var closeListItems2 = _v82.e;
34263									var openListItem2 = _v82.f;
34264									var rest = _v81.b;
34265									var _v83 = A2(
34266										$elm$parser$Parser$Advanced$run,
34267										$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
34268										openListItem2);
34269									if (!_v83.$) {
34270										var value = _v83.a;
34271										if (newRawBlock.$ === 4) {
34272											var intended2 = newRawBlock.b;
34273											var openListItem = newRawBlock.f;
34274											return $elm$parser$Parser$Advanced$succeed(
34275												{
34276													a: _Utils_ap(state.a, value.a),
34277													b: A2(
34278														$elm$core$List$cons,
34279														A6(
34280															$dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock,
34281															false,
34282															intended2,
34283															marker,
34284															order,
34285															A2($elm$core$List$cons, value.b, closeListItems2),
34286															openListItem),
34287														rest)
34288												});
34289										} else {
34290											return $elm$parser$Parser$Advanced$succeed(
34291												{
34292													a: _Utils_ap(state.a, value.a),
34293													b: A2(
34294														$elm$core$List$cons,
34295														newRawBlock,
34296														A2(
34297															$elm$core$List$cons,
34298															$dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine,
34299															A2(
34300																$elm$core$List$cons,
34301																A6(
34302																	$dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock,
34303																	tight,
34304																	intended1,
34305																	marker,
34306																	order,
34307																	A2($elm$core$List$cons, value.b, closeListItems2),
34308																	openListItem2),
34309																rest)))
34310												});
34311										}
34312									} else {
34313										var e = _v83.a;
34314										return $elm$parser$Parser$Advanced$problem(
34315											$elm$parser$Parser$Problem(
34316												$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
34317									}
34318								case 3:
34319									var _v85 = _v41.b;
34320									var _v86 = _v85.a;
34321									var _v87 = _v85.b;
34322									var _v88 = _v87.a;
34323									var tight = _v88.a;
34324									var intended1 = _v88.b;
34325									var closeListItems2 = _v88.c;
34326									var openListItem2 = _v88.d;
34327									var rest = _v87.b;
34328									var _v89 = A2(
34329										$elm$parser$Parser$Advanced$run,
34330										$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
34331										openListItem2.fe);
34332									if (!_v89.$) {
34333										var value = _v89.a;
34334										if (newRawBlock.$ === 3) {
34335											var openListItem = newRawBlock.d;
34336											return $elm$parser$Parser$Advanced$succeed(
34337												{
34338													a: _Utils_ap(state.a, value.a),
34339													b: A2(
34340														$elm$core$List$cons,
34341														A4(
34342															$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
34343															false,
34344															intended1,
34345															A2(
34346																$elm$core$List$cons,
34347																{fe: value.b, k: openListItem2.k},
34348																closeListItems2),
34349															openListItem),
34350														rest)
34351												});
34352										} else {
34353											return $elm$parser$Parser$Advanced$succeed(
34354												{
34355													a: _Utils_ap(state.a, value.a),
34356													b: A2(
34357														$elm$core$List$cons,
34358														newRawBlock,
34359														A2(
34360															$elm$core$List$cons,
34361															$dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine,
34362															A2(
34363																$elm$core$List$cons,
34364																A4(
34365																	$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
34366																	tight,
34367																	intended1,
34368																	A2(
34369																		$elm$core$List$cons,
34370																		{fe: value.b, k: openListItem2.k},
34371																		closeListItems2),
34372																	openListItem2),
34373																rest)))
34374												});
34375										}
34376									} else {
34377										var e = _v89.a;
34378										return $elm$parser$Parser$Advanced$problem(
34379											$elm$parser$Parser$Problem(
34380												$dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e)));
34381									}
34382								default:
34383									break _v41$13;
34384							}
34385						} else {
34386							break _v41$13;
34387						}
34388					default:
34389						break _v41$13;
34390				}
34391			} else {
34392				break _v41$13;
34393			}
34394		}
34395		return $elm$parser$Parser$Advanced$succeed(
34396			{
34397				a: state.a,
34398				b: A2($elm$core$List$cons, newRawBlock, state.b)
34399			});
34400	});
34401var $dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper = F2(
34402	function (referencesDict, _v36) {
34403		var unparsedInlines = _v36;
34404		var mappedReferencesDict = $elm$core$Dict$fromList(
34405			A2(
34406				$elm$core$List$map,
34407				$elm$core$Tuple$mapSecond(
34408					function (_v37) {
34409						var destination = _v37.fm;
34410						var title = _v37.gt;
34411						return _Utils_Tuple2(destination, title);
34412					}),
34413				referencesDict));
34414		return A2(
34415			$elm$core$List$map,
34416			$dillonkearns$elm_markdown$Markdown$Parser$mapInline,
34417			A2($dillonkearns$elm_markdown$Markdown$InlineParser$parse, mappedReferencesDict, unparsedInlines));
34418	});
34419var $dillonkearns$elm_markdown$Markdown$Parser$mapInline = function (inline) {
34420	switch (inline.$) {
34421		case 0:
34422			var string = inline.a;
34423			return $dillonkearns$elm_markdown$Markdown$Block$Text(string);
34424		case 1:
34425			return $dillonkearns$elm_markdown$Markdown$Block$HardLineBreak;
34426		case 2:
34427			var string = inline.a;
34428			return $dillonkearns$elm_markdown$Markdown$Block$CodeSpan(string);
34429		case 3:
34430			var string = inline.a;
34431			var maybeString = inline.b;
34432			var inlines = inline.c;
34433			return A3(
34434				$dillonkearns$elm_markdown$Markdown$Block$Link,
34435				string,
34436				maybeString,
34437				A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Parser$mapInline, inlines));
34438		case 4:
34439			var string = inline.a;
34440			var maybeString = inline.b;
34441			var inlines = inline.c;
34442			return A3(
34443				$dillonkearns$elm_markdown$Markdown$Block$Image,
34444				string,
34445				maybeString,
34446				A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Parser$mapInline, inlines));
34447		case 5:
34448			var node = inline.a;
34449			return $dillonkearns$elm_markdown$Markdown$Block$HtmlInline(
34450				$dillonkearns$elm_markdown$Markdown$Parser$nodeToRawBlock(node));
34451		case 6:
34452			var level = inline.a;
34453			var inlines = inline.b;
34454			switch (level) {
34455				case 1:
34456					return $dillonkearns$elm_markdown$Markdown$Block$Emphasis(
34457						A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Parser$mapInline, inlines));
34458				case 2:
34459					return $dillonkearns$elm_markdown$Markdown$Block$Strong(
34460						A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Parser$mapInline, inlines));
34461				default:
34462					return $dillonkearns$elm_markdown$Markdown$Helpers$isEven(level) ? $dillonkearns$elm_markdown$Markdown$Block$Strong(
34463						_List_fromArray(
34464							[
34465								$dillonkearns$elm_markdown$Markdown$Parser$mapInline(
34466								A2($dillonkearns$elm_markdown$Markdown$Inline$Emphasis, level - 2, inlines))
34467							])) : $dillonkearns$elm_markdown$Markdown$Block$Emphasis(
34468						_List_fromArray(
34469							[
34470								$dillonkearns$elm_markdown$Markdown$Parser$mapInline(
34471								A2($dillonkearns$elm_markdown$Markdown$Inline$Emphasis, level - 1, inlines))
34472							]));
34473			}
34474		default:
34475			var inlines = inline.a;
34476			return $dillonkearns$elm_markdown$Markdown$Block$Strikethrough(
34477				A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Parser$mapInline, inlines));
34478	}
34479};
34480var $dillonkearns$elm_markdown$Markdown$Parser$nodeToRawBlock = function (node) {
34481	switch (node.$) {
34482		case 1:
34483			return $dillonkearns$elm_markdown$Markdown$Block$HtmlComment('TODO this never happens, but use t
34483ypes to drop this case.');
34484		case 0:
34485			var tag = node.a;
34486			var attributes = node.b;
34487			var children = node.c;
34488			var parseChild = function (child) {
34489				if (child.$ === 1) {
34490					var text = child.a;
34491					return $dillonkearns$elm_markdown$Markdown$Parser$textNodeToBlocks(text);
34492				} else {
34493					return _List_fromArray(
34494						[
34495							$dillonkearns$elm_markdown$Markdown$Block$HtmlBlock(
34496							$dillonkearns$elm_markdown$Markdown$Parser$nodeToRawBlock(child))
34497						]);
34498				}
34499			};
34500			return A3(
34501				$dillonkearns$elm_markdown$Markdown$Block$HtmlElement,
34502				tag,
34503				attributes,
34504				A2($elm$core$List$concatMap, parseChild, children));
34505		case 2:
34506			var string = node.a;
34507			return $dillonkearns$elm_markdown$Markdown$Block$HtmlComment(string);
34508		case 3:
34509			var string = node.a;
34510			return $dillonkearns$elm_markdown$Markdown$Block$Cdata(string);
34511		case 4:
34512			var string = node.a;
34513			return $dillonkearns$elm_markdown$Markdown$Block$ProcessingInstruction(string);
34514		default:
34515			var declarationType = node.a;
34516			var content = node.b;
34517			return A2($dillonkearns$elm_markdown$Markdown$Block$HtmlDeclaration, declarationType, content);
34518	}
34519};
34520var $dillonkearns$elm_markdown$Markdown$Parser$nodesToBlocks = function (children) {
34521	return A2($dillonkearns$elm_markdown$Markdown$Parser$nodesToBlocksHelp, children, _List_Nil);
34522};
34523var $dillonkearns$elm_markdown$Markdown$Parser$nodesToBlocksHelp = F2(
34524	function (remaining, soFar) {
34525		nodesToBlocksHelp:
34526		while (true) {
34527			if (remaining.b) {
34528				var node = remaining.a;
34529				var rest = remaining.b;
34530				var _v31 = A2($dillonkearns$elm_markdown$Markdown$Parser$childToBlocks, node, soFar);
34531				if (!_v31.$) {
34532					var newSoFar = _v31.a;
34533					var $temp$remaining = rest,
34534						$temp$soFar = newSoFar;
34535					remaining = $temp$remaining;
34536					soFar = $temp$soFar;
34537					continue nodesToBlocksHelp;
34538				} else {
34539					var e = _v31.a;
34540					return $elm$core$Result$Err(e);
34541				}
34542			} else {
34543				return $elm$core$Result$Ok(
34544					$elm$core$List$reverse(soFar));
34545			}
34546		}
34547	});
34548var $dillonkearns$elm_markdown$Markdown$Parser$parse = function (input) {
34549	var _v27 = A2(
34550		$elm$parser$Parser$Advanced$run,
34551		A2(
34552			$elm$parser$Parser$Advanced$ignorer,
34553			$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(),
34554			$dillonkearns$elm_markdown$Helpers$endOfFile),
34555		input);
34556	if (_v27.$ === 1) {
34557		var e = _v27.a;
34558		return $elm$core$Result$Err(e);
34559	} else {
34560		var v = _v27.a;
34561		var _v28 = $dillonkearns$elm_markdown$Markdown$Parser$parseAllInlines(v);
34562		if (_v28.$ === 1) {
34563			var e = _v28.a;
34564			return A2(
34565				$elm$parser$Parser$Advanced$run,
34566				$elm$parser$Parser$Advanced$problem(e),
34567				'');
34568		} else {
34569			var blocks = _v28.a;
34570			var isNotEmptyParagraph = function (block) {
34571				if ((block.$ === 5) && (!block.a.b)) {
34572					return false;
34573				} else {
34574					return true;
34575				}
34576			};
34577			return $elm$core$Result$Ok(
34578				A2($elm$core$List$filter, isNotEmptyParagraph, blocks));
34579		}
34580	}
34581};
34582var $dillonkearns$elm_markdown$Markdown$Parser$parseAllInlines = function (state) {
34583	return A3($dillonkearns$elm_markdown$Markdown$Parser$parseAllInlinesHelp, state, state.b, _List_Nil);
34584};
34585var $dillonkearns$elm_markdown$Markdown$Parser$parseAllInlinesHelp = F3(
34586	function (state, rawBlocks, parsedBlocks) {
34587		parseAllInlinesHelp:
34588		while (true) {
34589			if (rawBlocks.b) {
34590				var rawBlock = rawBlocks.a;
34591				var rest = rawBlocks.b;
34592				var _v26 = A2($dillonkearns$elm_markdown$Markdown$Parser$parseInlines, state.a, rawBlock);
34593				switch (_v26.$) {
34594					case 1:
34595						var newParsedBlock = _v26.a;
34596						var $temp$state = state,
34597							$temp$rawBlocks = rest,
34598							$temp$parsedBlocks = A2($elm$core$List$cons, newParsedBlock, parsedBlocks);
34599						state = $temp$state;
34600						rawBlocks = $temp$rawBlocks;
34601						parsedBlocks = $temp$parsedBlocks;
34602						continue parseAllInlinesHelp;
34603					case 0:
34604						var $temp$state = state,
34605							$temp$rawBlocks = rest,
34606							$temp$parsedBlocks = parsedBlocks;
34607						state = $temp$state;
34608						rawBlocks = $temp$rawBlocks;
34609						parsedBlocks = $temp$parsedBlocks;
34610						continue parseAllInlinesHelp;
34611					default:
34612						var e = _v26.a;
34613						return $elm$core$Result$Err(e);
34614				}
34615			} else {
34616				return $elm$core$Result$Ok(parsedBlocks);
34617			}
34618		}
34619	});
34620var $dillonkearns$elm_markdown$Markdown$Parser$parseHeaderInlines = F2(
34621	function (linkReferences, header) {
34622		return A2(
34623			$elm$core$List$map,
34624			function (_v24) {
34625				var label = _v24.aK;
34626				var alignment = _v24.Z;
34627				return A3(
34628					$dillonkearns$elm_markdown$Markdown$Parser$parseRawInline,
34629					linkReferences,
34630					function (parsedHeaderLabel) {
34631						return {Z: alignment, aK: parsedHeaderLabel};
34632					},
34633					label);
34634			},
34635			header);
34636	});
34637var $dillonkearns$elm_markdown$Markdown$Parser$parseInlines = F2(
34638	function (linkReferences, rawBlock) {
34639		switch (rawBlock.$) {
34640			case 0:
34641				var level = rawBlock.a;
34642				var unparsedInlines = rawBlock.b;
34643				var _v17 = $dillonkearns$elm_markdown$Markdown$Parser$toHeading(level);
34644				if (!_v17.$) {
34645					var parsedLevel = _v17.a;
34646					return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34647						A2(
34648							$dillonkearns$elm_markdown$Markdown$Block$Heading,
34649							parsedLevel,
34650							A2($dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper, linkReferences, unparsedInlines)));
34651				} else {
34652					var e = _v17.a;
34653					return $dillonkearns$elm_markdown$Markdown$Parser$InlineProblem(e);
34654				}
34655			case 1:
34656				var unparsedInlines = rawBlock.a;
34657				return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34658					$dillonkearns$elm_markdown$Markdown$Block$Paragraph(
34659						A2($dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper, linkReferences, unparsedInlines)));
34660			case 2:
34661				var html = rawBlock.a;
34662				return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34663					$dillonkearns$elm_markdown$Markdown$Block$HtmlBlock(html));
34664			case 3:
34665				var tight = rawBlock.a;
34666				var unparsedItems = rawBlock.c;
34667				var parseItem = F2(
34668					function (rawBlockTask, rawBlocks) {
34669						var blocksTask = function () {
34670							if (!rawBlockTask.$) {
34671								if (!rawBlockTask.a) {
34672									return 1;
34673								} else {
34674									return 2;
34675								}
34676							} else {
34677								return 0;
34678							}
34679						}();
34680						var blocks = function () {
34681							var _v18 = $dillonkearns$elm_markdown$Markdown$Parser$parseAllInlines(
34682								{a: linkReferences, b: rawBlocks});
34683							if (!_v18.$) {
34684								var parsedBlocks = _v18.a;
34685								return parsedBlocks;
34686							} else {
34687								return _List_Nil;
34688							}
34689						}();
34690						return A2($dillonkearns$elm_markdown$Markdown$Block$ListItem, blocksTask, blocks);
34691					});
34692				return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34693					A2(
34694						$dillonkearns$elm_markdown$Markdown$Block$UnorderedList,
34695						$dillonkearns$elm_markdown$Markdown$Parser$isTightBoolToListDisplay(tight),
34696						$elm$core$List$reverse(
34697							A2(
34698								$elm$core$List$map,
34699								function (item) {
34700									return A2(parseItem, item.k, item.fe);
34701								},
34702								unparsedItems))));
34703			case 4:
34704				var tight = rawBlock.a;
34705				var startingIndex = rawBlock.d;
34706				var unparsedItems = rawBlock.e;
34707				var parseItem = function (rawBlocks) {
34708					var _v20 = $dillonkearns$elm_markdown$Markdown$Parser$parseAllInlines(
34709						{a: linkReferences, b: rawBlocks});
34710					if (!_v20.$) {
34711						var parsedBlocks = _v20.a;
34712						return parsedBlocks;
34713					} else {
34714						return _List_Nil;
34715					}
34716				};
34717				return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34718					A3(
34719						$dillonkearns$elm_markdown$Markdown$Block$OrderedList,
34720						$dillonkearns$elm_markdown$Markdown$Parser$isTightBoolToListDisplay(tight),
34721						startingIndex,
34722						$elm$core$List$reverse(
34723							A2($elm$core$List$map, parseItem, unparsedItems))));
34724			case 5:
34725				var codeBlock = rawBlock.a;
34726				return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34727					$dillonkearns$elm_markdown$Markdown$Block$CodeBlock(codeBlock));
34728			case 7:
34729				return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock($dillonkearns$elm_markdown$Markdown$Block$ThematicBreak);
34730			case 10:
34731				return $dillonkearns$elm_markdown$Markdown$Parser$EmptyBlock;
34732			case 11:
34733				return $dillonkearns$elm_markdown$Markdown$Parser$EmptyBlock;
34734			case 12:
34735				var rawBlocks = rawBlock.a;
34736				var _v21 = $dillonkearns$elm_markdown$Markdown$Parser$parseAllInlines(
34737					{a: linkReferences, b: rawBlocks});
34738				if (!_v21.$) {
34739					var parsedBlocks = _v21.a;
34740					return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34741						$dillonkearns$elm_markdown$Markdown$Block$BlockQuote(parsedBlocks));
34742				} else {
34743					var e = _v21.a;
34744					return $dillonkearns$elm_markdown$Markdown$Parser$InlineProblem(e);
34745				}
34746			case 6:
34747				var codeBlockBody = rawBlock.a;
34748				return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34749					$dillonkearns$elm_markdown$Markdown$Block$CodeBlock(
34750						{fe: codeBlockBody, fK: $elm$core$Maybe$Nothing}));
34751			case 8:
34752				var _v22 = rawBlock.a;
34753				var header = _v22.a;
34754				var rows = _v22.b;
34755				return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34756					A2(
34757						$dillonkearns$elm_markdown$Markdown$Block$Table,
34758						A2($dillonkearns$elm_markdown$Markdown$Parser$parseHeaderInlines, linkReferences, header),
34759						A2($dillonkearns$elm_markdown$Markdown$Parser$parseRowInlines, linkReferences, rows)));
34760			case 9:
34761				var _v23 = rawBlock.a;
34762				var text = _v23.a;
34763				return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34764					$dillonkearns$elm_markdown$Markdown$Block$Paragraph(
34765						A2($dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper, linkReferences, text.eM)));
34766			default:
34767				var raw = rawBlock.b;
34768				return $dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(
34769					$dillonkearns$elm_markdown$Markdown$Block$Paragraph(
34770						A2($dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper, linkReferences, raw)));
34771		}
34772	});
34773var $dillonkearns$elm_markdown$Markdown$Parser$parseRawInline = F3(
34774	function (linkReferences, wrap, unparsedInlines) {
34775		return wrap(
34776			A2($dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper, linkReferences, unparsedInlines));
34777	});
34778var $dillonkearns$elm_markdown$Markdown$Parser$parseRowInlines = F2(
34779	function (linkReferences, rows) {
34780		return A2(
34781			$elm$core$List$map,
34782			function (row) {
34783				return A2(
34784					$elm$core$List$map,
34785					function (column) {
34786						return A3($dillonkearns$elm_markdown$Markdown$Parser$parseRawInline, linkReferences, $elm$core$Basics$identity, column);
34787					},
34788					row);
34789			},
34790			rows);
34791	});
34792var $dillonkearns$elm_markdown$Markdown$Parser$stepRawBlock = function (revStmts) {
34793	return $elm$parser$Parser$Advanced$oneOf(
34794		_List_fromArray(
34795			[
34796				A2(
34797				$elm$parser$Parser$Advanced$map,
34798				function (_v2) {
34799					return $elm$parser$Parser$Advanced$Done(revStmts);
34800				},
34801				$dillonkearns$elm_markdown$Helpers$endOfFile),
34802				A2(
34803				$elm$parser$Parser$Advanced$map,
34804				function (reference) {
34805					return $elm$parser$Parser$Advanced$Loop(
34806						A2($dillonkearns$elm_markdown$Markdown$Parser$addReference, revStmts, reference));
34807				},
34808				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$parser)),
34809				function () {
34810				var _v3 = revStmts.b;
34811				_v3$6:
34812				while (true) {
34813					if (_v3.b) {
34814						switch (_v3.a.$) {
34815							case 1:
34816								return A2(
34817									$elm$parser$Parser$Advanced$map,
34818									function (block) {
34819										return $elm$parser$Parser$Advanced$Loop(block);
34820									},
34821									A2(
34822										$elm$parser$Parser$Advanced$andThen,
34823										$dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts),
34824										$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterOpenBlockOrParagraphParser()));
34825							case 8:
34826								var table = _v3.a.a;
34827								return A2(
34828									$elm$parser$Parser$Advanced$map,
34829									function (block) {
34830										return $elm$parser$Parser$Advanced$Loop(block);
34831									},
34832									A2(
34833										$elm$parser$Parser$Advanced$andThen,
34834										$dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts),
34835										$elm$parser$Parser$Advanced$oneOf(
34836											_List_fromArray(
34837												[
34838													$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser(),
34839													$dillonkearns$elm_markdown$Markdown$Parser$tableRowIfTableStarted(table)
34840												]))));
34841							case 3:
34842								var _v4 = _v3.a;
34843								var tight = _v4.a;
34844								var intended = _v4.b;
34845								var closeListItems = _v4.c;
34846								var openListItem = _v4.d;
34847								var rest = _v3.b;
34848								var completeOrMergeUnorderedListBlockBlankLine = F2(
34849									function (state, newString) {
34850										return _Utils_update(
34851											state,
34852											{
34853												b: A2(
34854													$elm$core$List$cons,
34855													$dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine,
34856													A2(
34857														$elm$core$List$cons,
34858														A4(
34859															$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
34860															tight,
34861															intended,
34862															closeListItems,
34863															_Utils_update(
34864																openListItem,
34865																{
34866																	fe: A3($dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '', openListItem.fe, newString)
34867																})),
34868														rest))
34869											});
34870									});
34871								var completeOrMergeUnorderedListBlock = F2(
34872									function (state, newString) {
34873										return _Utils_update(
34874											state,
34875											{
34876												b: A2(
34877													$elm$core$List$cons,
34878													A4(
34879														$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
34880														tight,
34881														intended,
34882														closeListItems,
34883														_Utils_update(
34884															openListItem,
34885															{
34886																fe: A3($dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', openListItem.fe, newString)
34887															})),
34888													rest)
34889											});
34890									});
34891								return $elm$parser$Parser$Advanced$oneOf(
34892									_List_fromArray(
34893										[
34894											A2(
34895											$elm$parser$Parser$Advanced$map,
34896											function (block) {
34897												return $elm$parser$Parser$Advanced$Loop(block);
34898											},
34899											A2(
34900												$elm$parser$Parser$Advanced$map,
34901												function (_v5) {
34902													return A2(completeOrMergeUnorderedListBlockBlankLine, revStmts, '\n');
34903												},
34904												$dillonkearns$elm_markdown$Markdown$Parser$blankLine)),
34905											A2(
34906											$elm$parser$Parser$Advanced$map,
34907											function (block) {
34908												return $elm$parser$Parser$Advanced$Loop(block);
34909											},
34910											A2(
34911												$elm$parser$Parser$Advanced$map,
34912												completeOrMergeUnorderedListBlock(revStmts),
34913												A2(
34914													$elm$parser$Parser$Advanced$keeper,
34915													A2(
34916														$elm$parser$Parser$Advanced$ignorer,
34917														$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
34918														$elm$parser$Parser$Advanced$symbol(
34919															A2(
34920																$elm$parser$Parser$Advanced$Token,
34921																A2($elm$core$String$repeat, intended, ' '),
34922																$elm$parser$Parser$ExpectingSymbol('Indentation')))),
34923													A2(
34924														$elm$parser$Parser$Advanced$ignorer,
34925														$elm$parser$Parser$Advanced$getChompedString($dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd),
34926														$dillonkearns$elm_markdown$Helpers$lineEndOrEnd)))),
34927											A2(
34928											$elm$parser$Parser$Advanced$map,
34929											function (block) {
34930												return $elm$parser$Parser$Advanced$Loop(block);
34931											},
34932											A2(
34933												$elm$parser$Parser$Advanced$andThen,
34934												$dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts),
34935												$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterList()))
34936										]));
34937							case 4:
34938								var _v10 = _v3.a;
34939								var tight = _v10.a;
34940								var intended = _v10.b;
34941								var marker = _v10.c;
34942								var order = _v10.d;
34943								var closeListItems = _v10.e;
34944								var openListItem = _v10.f;
34945								var rest = _v3.b;
34946								var completeOrMergeUnorderedListBlockBlankLine = F2(
34947									function (state, newString) {
34948										return _Utils_update(
34949											state,
34950											{
34951												b: A2(
34952													$elm$core$List$cons,
34953													$dillonkearns$elm_markdow
34953n$Markdown$RawBlock$BlankLine,
34954													A2(
34955														$elm$core$List$cons,
34956														A6($dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, tight, intended, marker, order, closeListItems, openListItem + ('\n' + newString)),
34957														rest))
34958											});
34959									});
34960								var completeOrMergeUnorderedListBlock = F2(
34961									function (state, newString) {
34962										return _Utils_update(
34963											state,
34964											{
34965												b: A2(
34966													$elm$core$List$cons,
34967													A6($dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, tight, intended, marker, order, closeListItems, openListItem + ('\n' + newString)),
34968													rest)
34969											});
34970									});
34971								return $elm$parser$Parser$Advanced$oneOf(
34972									_List_fromArray(
34973										[
34974											A2(
34975											$elm$parser$Parser$Advanced$map,
34976											function (block) {
34977												return $elm$parser$Parser$Advanced$Loop(block);
34978											},
34979											A2(
34980												$elm$parser$Parser$Advanced$map,
34981												function (_v11) {
34982													return A2(completeOrMergeUnorderedListBlockBlankLine, revStmts, '\n');
34983												},
34984												$dillonkearns$elm_markdown$Markdown$Parser$blankLine)),
34985											A2(
34986											$elm$parser$Parser$Advanced$map,
34987											function (block) {
34988												return $elm$parser$Parser$Advanced$Loop(block);
34989											},
34990											A2(
34991												$elm$parser$Parser$Advanced$map,
34992												completeOrMergeUnorderedListBlock(revStmts),
34993												A2(
34994													$elm$parser$Parser$Advanced$keeper,
34995													A2(
34996														$elm$parser$Parser$Advanced$ignorer,
34997														$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
34998														$elm$parser$Parser$Advanced$symbol(
34999															A2(
35000																$elm$parser$Parser$Advanced$Token,
35001																A2($elm$core$String$repeat, intended, ' '),
35002																$elm$parser$Parser$ExpectingSymbol('Indentation')))),
35003													A2(
35004														$elm$parser$Parser$Advanced$ignorer,
35005														$elm$parser$Parser$Advanced$getChompedString($dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd),
35006														$dillonkearns$elm_markdown$Helpers$lineEndOrEnd)))),
35007											A2(
35008											$elm$parser$Parser$Advanced$map,
35009											function (block) {
35010												return $elm$parser$Parser$Advanced$Loop(block);
35011											},
35012											A2(
35013												$elm$parser$Parser$Advanced$andThen,
35014												$dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts),
35015												$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterList()))
35016										]));
35017							case 10:
35018								if (_v3.b.b) {
35019									switch (_v3.b.a.$) {
35020										case 3:
35021											var _v6 = _v3.a;
35022											var _v7 = _v3.b;
35023											var _v8 = _v7.a;
35024											var tight = _v8.a;
35025											var intended = _v8.b;
35026											var closeListItems = _v8.c;
35027											var openListItem = _v8.d;
35028											var rest = _v7.b;
35029											var completeOrMergeUnorderedListBlockBlankLine = F2(
35030												function (state, newString) {
35031													return _Utils_update(
35032														state,
35033														{
35034															b: A2(
35035																$elm$core$List$cons,
35036																$dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine,
35037																A2(
35038																	$elm$core$List$cons,
35039																	A4(
35040																		$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
35041																		tight,
35042																		intended,
35043																		closeListItems,
35044																		_Utils_update(
35045																			openListItem,
35046																			{
35047																				fe: A3($dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '', openListItem.fe, newString)
35048																			})),
35049																	rest))
35050														});
35051												});
35052											var completeOrMergeUnorderedListBlock = F2(
35053												function (state, newString) {
35054													return _Utils_update(
35055														state,
35056														{
35057															b: A2(
35058																$elm$core$List$cons,
35059																A4(
35060																	$dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock,
35061																	tight,
35062																	intended,
35063																	closeListItems,
35064																	_Utils_update(
35065																		openListItem,
35066																		{
35067																			fe: A3($dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', openListItem.fe, newString)
35068																		})),
35069																rest)
35070														});
35071												});
35072											return ($elm$core$String$trim(openListItem.fe) === '') ? A2(
35073												$elm$parser$Parser$Advanced$map,
35074												function (block) {
35075													return $elm$parser$Parser$Advanced$Loop(block);
35076												},
35077												A2(
35078													$elm$parser$Parser$Advanced$andThen,
35079													$dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts),
35080													$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser())) : $elm$parser$Parser$Advanced$oneOf(
35081												_List_fromArray(
35082													[
35083														A2(
35084														$elm$parser$Parser$Advanced$map,
35085														function (block) {
35086															return $elm$parser$Parser$Advanced$Loop(block);
35087														},
35088														A2(
35089															$elm$parser$Parser$Advanced$map,
35090															function (_v9) {
35091																return A2(completeOrMergeUnorderedListBlockBlankLine, revStmts, '\n');
35092															},
35093															$dillonkearns$elm_markdown$Markdown$Parser$blankLine)),
35094														A2(
35095														$elm$parser$Parser$Advanced$map,
35096														function (block) {
35097															return $elm$parser$Parser$Advanced$Loop(block);
35098														},
35099														A2(
35100															$elm$parser$Parser$Advanced$map,
35101															completeOrMergeUnorderedListBlock(revStmts),
35102															A2(
35103																$elm$parser$Parser$Advanced$keeper,
35104																A2(
35105																	$elm$parser$Parser$Advanced$ignorer,
35106																	$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
35107																	$elm$parser$Parser$Advanced$symbol(
35108																		A2(
35109																			$elm$parser$Parser$Advanced$Token,
35110																			A2($elm$core$String$repeat, intended, ' '),
35111																			$elm$parser$Parser$ExpectingSymbol('Indentation')))),
35112																A2(
35113																	$elm$parser$Parser$Advanced$ignorer,
35114																	$elm$parser$Parser$Advanced$getChompedString($dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd),
35115																	$dillonkearns$elm_markdown$Helpers$lineEndOrEnd)))),
35116														A2(
35117														$elm$parser$Parser$Advanced$map,
35118														function (block) {
35119															return $elm$parser$Parser$Advanced$Loop(block);
35120														},
35121														A2(
35122															$elm$parser$Parser$Advanced$andThen,
35123															$dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts),
35124															$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser()))
35125													]));
35126										case 4:
35127											var _v12 = _v3.a;
35128											var _v13 = _v3.b;
35129											var _v14 = _v13.a;
35130											var tight = _v14.a;
35131											var intended = _v14.b;
35132											var marker = _v14.c;
35133											var order = _v14.d;
35134											var closeListItems = _v14.e;
35135											var openListItem = _v14.f;
35136											var rest = _v13.b;
35137											var completeOrMergeUnorderedListBlockBlankLine = F2(
35138												function (state, newString) {
35139													return _Utils_update(
35140														state,
35141														{
35142															b: A2(
35143																$elm$core$List$cons,
35144																$dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine,
35145																A2(
35146																	$elm$core$List$cons,
35147																	A6($dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, tight, intended, marker, order, closeListItems, openListItem + ('\n' + newString)),
35148																	rest))
35149														});
35150												});
35151											var completeOrMergeUnorderedListBlock = F2(
35152												function (state, newString) {
35153													return _Utils_update(
35154														state,
35155														{
35156															b: A2(
35157																$elm$core$List$cons,
35158																A6($dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, tight, intended, marker, order, closeListItems, openListItem + ('\n' + newString)),
35159																rest)
35160														});
35161												});
35162											return ($elm$core$String$trim(openListItem) === '') ? A2(
35163												$elm$parser$Parser$Advanced$map,
35164												function (block) {
35165													return $elm$parser$Parser$Advanced$Loop(block);
35166												},
35167												A2(
35168													$elm$parser$Parser$Advanced$andThen,
35169													$dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts),
35170													$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser())) : $elm$parser$Parser$Advanced$oneOf(
35171												_List_fromArray(
35172													[
35173														A2(
35174														$elm$parser$Parser$Advanced$map,
35175														function (block) {
35176															return $elm$parser$Parser$Advanced$Loop(block);
35177														},
35178														A2(
35179															$elm$parser$Parser$Advanced$map,
35180															function (_v15) {
35181																return A2(completeOrMergeUnorderedListBlockBlankLine, revStmts, '\n');
35182															},
35183															$dillonkearns$elm_markdown$Markdown$Parser$blankLine)),
35184														A2(
35185														$elm$parser$Parser$Advanced$map,
35186														function (block) {
35187															return $elm$parser$Parser$Advanced$Loop(block);
35188														},
35189														A2(
35190															$elm$parser$Parser$Advanced$map,
35191															completeOrMergeUnorderedListBlock(revStmts),
35192															A2(
35193																$elm$parser$Parser$Advanced$keeper,
35194																A2(
35195																	$elm$parser$Parser$Advanced$ignorer,
35196																	$elm$parser$Parser$Advanced$succeed($elm$core$Basics$identity),
35197																	$elm$parser$Parser$Advanced$symbol(
35198																		A2(
35199																			$elm$parser$Parser$Advanced$Token,
35200																			A2($elm$core$String$repeat, intended, ' '),
35201																			$elm$parser$Parser$ExpectingSymbol('Indentation')))),
35202																A2(
35203																	$elm$parser$Parser$Advanced$ignorer,
35204																	$elm$parser$Parser$Advanced$getChompedString($dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd),
35205																	$dillonkearns$elm_markdown$Helpers$lineEndOrEnd)))),
35206														A2(
35207														$elm$parser$Parser$Advanced$map,
35208														function (block) {
35209															return $elm$parser$Parser$Advanced$Loop(block);
35210														},
35211														A2(
35212															$elm$parser$Parser$Advanced$andThen,
35213															$dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts),
35214															$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser()))
35215													]));
35216										default:
35217											break _v3$6;
35218									}
35219								} else {
35220									break _v3$6;
35221								}
35222							default:
35223								break _v3$6;
35224						}
35225					} else {
35226						break _v3$6;
35227					}
35228				}
35229				return A2(
35230					$elm$parser$Parser$Advanced$map,
35231					function (block) {
35232						return $elm$parser$Parser$Advanced$Loop(block);
35233					},
35234					A2(
35235						$elm$parser$Parser$Advanced$andThen,
35236						$dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts),
35237						$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser()));
35238			}(),
35239				A2(
35240				$elm$parser$Parser$Advanced$map,
35241				function (block) {
35242					return $elm$parser$Parser$Advanced$Loop(block);
35243				},
35244				A2(
35245					$elm$parser$Parser$Advanced$andThen,
35246					$dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts),
35247					$dillonkearns$elm_markdown$Markdown$Parser$openBlockOrParagraphParser))
35248			]));
35249};
35250var $dillonkearns$elm_markdown$Markdown$Parser$textNodeToBlocks = function (textNodeValue) {
35251	return A2(
35252		$elm$core$Result$withDefault,
35253		_List_Nil,
35254		$dillonkearns$elm_markdown$Markdown$Parser$parse(textNodeValue));
35255};
35256var $dillonkearns$elm_markdown$Markdown$Parser$xmlNodeToHtmlNode = function (xmlNode) {
35257	switch (xmlNode.$) {
35258		case 1:
35259			var innerText = xmlNode.a;
35260			return $elm$parser$Parser$Advanced$succeed(
35261				$dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph(innerText));
35262		case 0:
35263			var tag = xmlNode.a;
35264			var attributes = xmlNode.b;
35265			var children = xmlNode.c;
35266			var _v1 = $dillonkearns$elm_markdown$Markdown$Parser$nodesToBlocks(children);
35267			if (!_v1.$) {
35268				var parsedChildren = _v1.a;
35269				return $elm$parser$Parser$Advanced$succeed(
35270					$dillonkearns$elm_markdown$Markdown$RawBlock$Html(
35271						A3($dillonkearns$elm_markdown$Markdown$Block$HtmlElement, tag, attributes, parsedChildren)));
35272			} else {
35273				var err = _v1.a;
35274				return $elm$parser$Parser$Advanced$problem(err);
35275			}
35276		case 2:
35277			var string = xmlNode.a;
35278			return $elm$parser$Parser$Advanced$succeed(
35279				$dillonkearns$elm_markdown$Markdown$RawBlock$Html(
35280					$dillonkearns$elm_markdown$Markdown$Block$HtmlComment(string)));
35281		case 3:
35282			var string = xmlNode.a;
35283			return $elm$parser$Parser$Advanced$succeed(
35284				$dillonkearns$elm_markdown$Markdown$RawBlock$Html(
35285					$dillonkearns$elm_markdown$Markdown$Block$Cdata(string)));
35286		case 4:
35287			var string = xmlNode.a;
35288			return $elm$parser$Parser$Advanced$succeed(
35289				$dillonkearns$elm_markdown$Markdown$RawBlock$Html(
35290					$dillonkearns$elm_markdown$Markdown$Block$ProcessingInstruction(string)));
35291		default:
35292			var declarationType = xmlNode.a;
35293			var content = xmlNode.b;
35294			return $elm$parser$Parser$Advanced$succeed(
35295				$dillonkearns$elm_markdown$Markdown$RawBlock$Html(
35296					A2($dillonkearns$elm_markdown$Markdown$Block$HtmlDeclaration, declarationType, content)));
35297	}
35298};
35299function $dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser() {
35300	return A2(
35301		$elm$parser$Parser$Advanced$andThen,
35302		$dillonkearns$elm_markdown$Markdown$Parser$completeBlocks,
35303		A2(
35304			$elm$parser$Parser$Advanced$loop,
35305			{a: _List_Nil, b: _List_Nil},
35306			$dillonkearns$elm_markdown$Markdown$Parser$stepRawBlock));
35307}
35308function $dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser() {
35309	return $elm$parser$Parser$Advanced$oneOf(
35310		_List_fromArray(
35311			[
35312				$dillonkearns$elm_markdown$Markdown$Parser$parseAsParagraphInsteadOfHtmlBlock,
35313				$dillonkearns$elm_markdown$Markdown$Parser$blankLine,
35314				$dillonkearns$elm_markdown$Markdown$Parser$blockQuote,
35315				A2(
35316				$elm$parser$Parser$Advanced$map,
35317				$dillonkearns$elm_markdown$Markdown$RawBlock$CodeBlock,
35318				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$CodeBlock$parser)),
35319				$dillonkearns$elm_markdown$Markdown$Parser$indentedCodeBlock,
35320				A2(
35321				$elm$parser$Parser$Advanced$map,
35322				function (_v40) {
35323					return $dillonkearns$elm_markdown$Markdown$RawBlock$ThematicBreak;
35324				},
35325				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$ThematicBreak$parser)),
35326				$dillonkearns$elm_markdown$Markdown$Parser$unorderedListBlock(false),
35327				$dillonkearns$elm_markdown$Markdown$Parser$orderedListBlock(false),
35328				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$Heading$parser),
35329				$dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser()
35330			]));
35331}
35332function $dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterOpenBlockOrParagraphParser() {
35333	return $elm$parser$Parser$Advanced$oneOf(
35334		_List_fromArray(
35335			[
35336				$dillonkearns$elm_markdown$Markdown$Parser$parseAsParagraphInsteadOfHtmlBlock,
35337				$dillonkearns$elm_markdown$Markdown$Parser$blankLine,
35338				$dillonkearns$elm_markdown$Markdown$Parser$blockQuote,
35339				A2(
35340				$elm$parser$Parser$Advanced$map,
35341				$dillonkearns$elm_markdown$Markdown$RawBlock$CodeBlock,
35342				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$CodeBlock$parser)),
35343				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$Parser$setextLineParser),
35344				A2(
35345				$elm$parser$Parser$Advanced$map,
35346				function (_v39) {
35347					return $dillonkearns$elm_markdown$Markdown$RawBlock$ThematicBreak;
35348				},
35349				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$ThematicBreak$parser)),
35350				$dillonkearns$elm_markdown$Markdown$Parser$unorderedListBlock(true),
35351				$dillonkearns$elm_markdown$Markdown$Parser$orderedListBlock(true),
35352				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$Heading$parser),
35353				$dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser(),
35354				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$Parser$tableDelimiterInOpenParagraph)
35355			]));
35356}
35357function $dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterList() {
35358	return $elm$parser$Parser$Advanced$oneOf(
35359		_List_fromArray(
35360			[
35361				$dillonkearns$elm_markdown$Markdown$Parser$parseAsParagraphInsteadOfHtmlBlock,
35362				$dillonkearns$elm_markdown$Markdown$Parser$blankLine,
35363				$dillonkearns$elm_markdown$Markdown$Parser$blockQuote,
35364				A2(
35365				$elm$parser$Parser$Advanced$map,
35366				$dillonkearns$elm_markdown$Markdown$RawBlock$CodeBlock,
35367				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$CodeBlock$parser)),
35368				A2(
35369				$elm$parser$Parser$Advanced$map,
35370				function (_v38) {
35371					return $dillonkearns$elm_markdown$Markdown$RawBlock$ThematicBreak;
35372				},
35373				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$ThematicBreak$parser)),
35374				$dillonkearns$elm_markdown$Markdown$Parser$unorderedListBlock(false),
35375				$dillonkearns$elm_markdown$Markdown$Parser$orderedListBlock(false),
35376				$elm$parser$Parser$Advanced$backtrackable($dillonkearns$elm_markdown$Markdown$Heading$parser),
35377				$dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser()
35378			]));
35379}
35380function $dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser() {
35381	return A2($elm$parser$Parser$Advanced$andThen, $dillonkearns$elm_markdown$Markdown$Parser$xmlNodeToHtmlNode, $dillonkearns$elm_markdown$HtmlParser$html);
35382}
35383var $dillonkearns$elm_markdown$Markdown$Parser$rawBlockParser = $dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser();
35384$dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser = function () {
35385	return $dillonkearns$elm_markdown$Markdown$Parser$rawBlockParser;
35386};
35387var $dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockNotAfterOpenBlockOrParagraphParser = $dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser();
35388$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser = function () {
35389	return $dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockNotAfterOpenBlockOrParagraphParser;
35390};
35391var $dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockAfterOpenBlockOrParagraphParser = $dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterOpenBlockOrParagraphParser();
35392$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterOpenBlockOrParagraphParser = function () {
35393	return $dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockAfterOpenBlockOrParagraphParser;
35394};
35395var $dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockAfterList = $dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterList();
35396$dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterList = function () {
35397	return $dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockAfterList;
35398};
35399var $dillonkearns$elm_markdown$Markdown$Parser$htmlParser = $dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser();
35400$dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser = function () {
35401	return $dillonkearns$elm_markdown$Markdown$Parser$htmlParser;
35402};
35403var $elm$core$Result$map2 = F3(
35404	function (func, ra, rb) {
35405		if (ra.$ === 1) {
35406			var x = ra.a;
35407			return $elm$core$Result$Err(x);
35408		} else {
35409			var a = ra.a;
35410			if (rb.$ === 1) {
35411				var x = rb.a;
35412				return $elm$core$Result$Err(x);
35413			} else {
35414				var b = rb.a;
35415				return $elm$core$Result$Ok(
35416					A2(func, a, b));
35417			}
35418		}
35419	});
35420var $dillonkearns$elm_markdown$Markdown$Renderer$combineResults = A2(
35421	$elm$core$List$foldr,
35422	$elm$core$Result$map2($elm$core$List$cons),
35423	$elm$core$Result$Ok(_List_Nil));
35424var $dillonkearns$elm_markdown$Markdown$Block$foldl = F3(
35425	function (_function, acc, list) {
35426		foldl:
35427		while (true) {
35428			if (!list.b) {
35429				return acc;
35430			} else {
35431				var block = list.a;
35432				var remainingBlocks = list.b;
35433				switch (block.$) {
35434					case 0:
35435						var html = block.a;
35436						if (!html.$) {
35437							var children = html.c;
35438							var $temp$function = _function,
35439								$temp$acc = A2(_function, block, acc),
35440								$temp$list = _Utils_ap(children, remainingBlocks);
35441							_function = $temp$function;
35442							acc = $temp$acc;
35443							list = $temp$list;
35444							continue foldl;
35445						} else {
35446							var $temp$function = _function,
35447								$temp$acc = A2(_function, block, acc),
35448								$temp$list = remainingBlocks;
35449							_function = $temp$function;
35450							acc = $temp$acc;
35451							list = $temp$list;
35452							continue foldl;
35453						}
35454					case 1:
35455						var blocks = block.b;
35456						var childBlocks = A2(
35457							$elm$core$List$concatMap,
35458							function (_v3) {
35459								var children = _v3.b;
35460								return children;
35461							},
35462							blocks);
35463						var $temp$function = _function,
35464							$temp$acc = A2(_function, block, acc),
35465							$temp$list = _Utils_ap(childBlocks, remainingBlocks);
35466						_function = $temp$function;
35467						acc = $temp$acc;
35468						list = $temp$list;
35469						continue foldl;
35470					case 2:
35471						var blocks = block.c;
35472						var $temp$function = _function,
35473							$temp$acc = A2(_function, block, acc),
35474							$temp$list = _Utils_ap(
35475							$elm$core$List$concat(blocks),
35476							remainingBlocks);
35477						_function = $temp$function;
35478						acc = $temp$acc;
35479						list = $temp$list;
35480						continue foldl;
35481					case 3:
35482						var blocks = block.a;
35483						var $temp$function = _function,
35484							$temp$acc = A2(_function, block, acc),
35485							$temp$list = _Utils_ap(blocks, remainingBlocks);
35486						_function = $temp$function;
35487						acc = $temp$acc;
35488						list = $temp$list;
35489						continue foldl;
35490					case 4:
35491						var $temp$function = _function,
35492							$temp$acc = A2(_function, block, acc),
35493							$temp$list = remainingBlocks;
35494						_function = $temp$function;
35495						acc = $temp$acc;
35496						list = $temp$list;
35497						continue foldl;
35498					case 5:
35499						var $temp$function = _function,
35500							$temp$acc = A2(_function, block, acc),
35501							$temp$list = remainingBlocks;
35502						_function = $temp$function;
35503						acc = $temp$acc;
35504						list = $temp$list;
35505						continue foldl;
35506					case 6:
35507						var $temp$function = _function,
35508							$temp$acc = A2(_function, block, acc),
35509							$temp$list = remainingBlocks;
35510						_function = $temp$function;
35511						acc = $temp$acc;
35512						list = $temp$list;
35513						continue foldl;
35514					case 7:
35515						var $temp$function = _function,
35516							$temp$acc = A2(_function, block, acc),
35517							$temp$list = remainingBlocks;
35518						_function = $temp$function;
35519						acc = $temp$acc;
35520						list = $temp$list;
35521						continue foldl;
35522					default:
35523						var $temp$function = _function,
35524							$temp$acc = A2(_function, block, acc),
35525							$temp$list = remainingBlocks;
35526						_function = $temp$function;
35527						acc = $temp$acc;
35528						list = $temp$list;
35529						continue foldl;
35530				}
35531			}
35532		}
35533	});
35534var $dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText = function (block) {
35535	switch (block.$) {
35536		case 5:
35537			var inlines = block.a;
35538			return $dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines);
35539		case 0:
35540			var html = block.a;
35541			if (!html.$) {
35542				var blocks = html.c;
35543				return A3(
35544					$dillonkearns$elm_markdown$Markdown$Block$foldl,
35545					F2(
35546						function (nestedBlock, soFar) {
35547							return _Utils_ap(
35548								soFar,
35549								$dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText(nestedBlock));
35550						}),
35551					'',
35552					blocks);
35553			} else {
35554				return '';
35555			}
35556		case 1:
35557			var items = block.b;
35558			return A2(
35559				$elm$core$String$join,
35560				'\n',
35561				A2(
35562					$elm$core$List$map,
35563					function (_v4) {
35564						var blocks = _v4.b;
35565						return A2(
35566							$elm$core$String$join,
35567							'\n',
35568							A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText, blocks));
35569					},
35570					items));
35571		case 2:
35572			var items = block.c;
35573			return A2(
35574				$elm$core$String$join,
35575				'\n',
35576				A2(
35577					$elm$core$List$map,
35578					function (blocks) {
35579						return A2(
35580							$elm$core$String$join,
35581							'\n',
35582							A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText, blocks));
35583					},
35584					items));
35585		case 3:
35586			var blocks = block.a;
35587			return A2(
35588				$elm$core$String$join,
35589				'\n',
35590				A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText, blocks));
35591		case 4:
35592			var inlines = block.b;
35593			return $dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines);
35594		case 6:
35595			var header = block.a;
35596			var rows = block.b;
35597			return A2(
35598				$elm$core$String$join,
35599				'\n',
35600				$elm$core$List$concat(
35601					_List_fromArray(
35602						[
35603							A2(
35604							$elm$core$List$map,
35605							$dillonkearns$elm_markdown$Markdown$Block$extractInlineText,
35606							A2(
35607								$elm$core$List$map,
35608								function ($) {
35609									return $.aK;
35610								},
35611								header)),
35612							$elm$core$List$concat(
35613							A2(
35614								$elm$core$List$map,
35615								$elm$core$List$map($dillonkearns$elm_markdown$Markdown$Block$extractInlineText),
35616								rows))
35617						])));
35618		case 7:
35619			var body = block.a.fe;
35620			return body;
35621		default:
35622			return '';
35623	}
35624};
35625var $dillonkearns$elm_markdown$Markdown$Block$extractInlineText = function (inlines) {
35626	return A3($elm$core$List$foldl, $dillonkearns$elm_markdown$Markdown$Block$extractTextHelp, '', inlines);
35627};
35628var $dillonkearns$elm_markdown$Markdown$Block$extractTextHelp = F2(
35629	function (inline, text) {
35630		switch (inline.$) {
35631			case 7:
35632				var str = inline.a;
35633				return _Utils_ap(text, str);
35634			case 8:
35635				return text + ' ';
35636			case 6:
35637				var str = inline.a;
35638				return _Utils_ap(text, str);
35639			case 1:
35640				var inlines = inline.c;
35641				return _Utils_ap(
35642					text,
35643					$dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines));
35644			case 2:
35645				var inlines = inline.c;
35646				return _Utils_ap(
35647					text,
35648					$dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines));
35649			case 0:
35650				var html = inline.a;
35651				if (!html.$) {
35652					var blocks = html.c;
35653					return A3(
35654						$dillonkearns$elm_markdown$Markdown$Block$foldl,
35655						F2(
35656							function (block, soFar) {
35657								return _Utils_ap(
35658									soFar,
35659									$dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText(block));
35660							}),
35661						text,
35662						blocks);
35663				} else {
35664					return text;
35665				}
35666			case 4:
35667				var inlines = inline.a;
35668				return _Utils_ap(
35669					text,
35670					$dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines));
35671			case 3:
35672				var inlines = inline.a;
35673				return _Utils_ap(
35674					text,
35675					$dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines));
35676			default:
35677				var inlines = inline.a;
35678				return _Utils_ap(
35679					text,
35680					$dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines));
35681		}
35682	});
35683var $dillonkearns$elm_markdown$Markdown$Renderer$renderHtml = F5(
35684	function (tagName, attributes, children, _v0, renderedChildren) {
35685		var htmlRenderer = _v0;
35686		return A2(
35687			$elm$core$Result$andThen,
35688			function (okChildren) {
35689				return A2(
35690					$elm$core$Result$map,
35691					function (myRenderer) {
35692						return myRenderer(okChildren);
35693					},
35694					A3(htmlRenderer, tagName, attributes, children));
35695			},
35696			$dillonkearns$elm_markdown$Markdown$Renderer$combineResults(renderedChildren));
35697	});
35698var $dillonkearns$elm_markdown$Markdown$Renderer$foldThing = F3(
35699	function (renderer, topLevelInline, soFar) {
35700		var _v12 = A2($dillonkearns$elm_markdown$Markdown$Renderer$renderSingleInline, renderer, topLevelInline);
35701		if (!_v12.$) {
35702			var inline = _v12.a;
35703			return A2($elm$core$List$cons, inline, soFar);
35704		} else {
35705			return soFar;
35706		}
35707	});
35708var $dillonkearns$elm_markdown$Markdown$Renderer$renderHelper = F2(
35709	function (renderer, blocks) {
35710		return A2(
35711			$elm$core$List$filterMap,
35712			$dillonkearns$elm_markdown$Markdown$Renderer$renderHelperSingle(renderer),
35713			blocks);
35714	});
35715var $dillonkearns$elm_markdown$Markdown$Renderer$renderHelperSingle = function (renderer) {
35716	return function (block) {
35717		switch (block.$) {
35718			case 4:
35719				var level = block.a;
35720				var content = block.b;
35721				return $elm$core$Maybe$Just(
35722					A2(
35723						$elm$core$Result$map,
35724						function (children) {
35725							return renderer.dd(
35726								{
35727									cY: children,
35728									ex: level,
35729									gf: $dillonkearns$elm_markdown$Markdown$Block$extractInlineText(content)
35730								});
35731						},
35732						A2($dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, content)));
35733			case 5:
35734				var content = block.a;
35735				return $elm$core$Maybe$Just(
35736					A2(
35737						$elm$core$Result$map,
35738						renderer.dv,
35739						A2($dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, content)));
35740			case 0:
35741				var html = block.a;
35742				if (!html.$) {
35743					var tag = html.a;
35744					var attributes = html.b;
35745					var children = html.c;
35746					return $elm$core$Maybe$Just(
35747						A4($dillonkearns$elm_markdown$Markdown$Renderer$renderHtmlNode, renderer, tag, attributes, children));
35748				} else {
35749					return $elm$core$Maybe$Nothing;
35750				}
35751			case 1:
35752				var tight = block.a;
35753				var items = block.b;
35754				return $elm$core$Maybe$Just(
35755					A2(
35756						$elm$core$Result$map,
35757						function (listItems) {
35758							return renderer.dV(
35759								A2(
35760									$elm$core$List$map,
35761									function (_v7) {
35762										var task = _v7.a;
35763										var children = _v7.b;
35764										return A2(
35765											$dillonkearns$elm_markdown$Markdown$Block$ListItem,
35766											task,
35767											$elm$core$List$concat(children));
35768									},
35769									listItems));
35770						},
35771						$dillonkearns$elm_markdown$Markdown$Renderer$combineResults(
35772							A2(
35773								$elm$core$List$map,
35774								function (_v4) {
35775									var task = _v4.a;
35776									var children = _v4.b;
35777									return A2(
35778										$elm$core$Result$map,
35779										$dillonkearns$elm_markdown$Markdown$Block$ListItem(task),
35780										$dillonkearns$elm_markdown$Markdown$Renderer$combineResults(
35781											function (blocks) {
35782												return A2(
35783													$elm$core$List$filterMap,
35784													function (listItemBlock) {
35785														var _v5 = _Utils_Tuple2(tight, listItemBlock);
35786														if ((_v5.a === 1) && (_v5.b.$ === 5)) {
35787															var _v6 = _v5.a;
35788															var content = _v5.b.a;
35789															return $elm$core$Maybe$Just(
35790																A2($dillonkearns$elm_markdown$Markdown$Renderer$render
35790Styled, renderer, content));
35791														} else {
35792															return A2(
35793																$elm$core$Maybe$map,
35794																$elm$core$Result$map($elm$core$List$singleton),
35795																A2($dillonkearns$elm_markdown$Markdown$Renderer$renderHelperSingle, renderer, listItemBlock));
35796														}
35797													},
35798													blocks);
35799											}(children)));
35800								},
35801								items))));
35802			case 2:
35803				var tight = block.a;
35804				var startingIndex = block.b;
35805				var items = block.c;
35806				return $elm$core$Maybe$Just(
35807					A2(
35808						$elm$core$Result$map,
35809						function (listItems) {
35810							return A2(
35811								renderer.dt,
35812								startingIndex,
35813								A2(
35814									$elm$core$List$map,
35815									function (children) {
35816										return $elm$core$List$concat(children);
35817									},
35818									listItems));
35819						},
35820						$dillonkearns$elm_markdown$Markdown$Renderer$combineResults(
35821							A2(
35822								$elm$core$List$map,
35823								function (itemsblocks) {
35824									return $dillonkearns$elm_markdown$Markdown$Renderer$combineResults(
35825										function (blocks) {
35826											return A2(
35827												$elm$core$List$filterMap,
35828												function (listItemBlock) {
35829													var _v8 = _Utils_Tuple2(tight, listItemBlock);
35830													if ((_v8.a === 1) && (_v8.b.$ === 5)) {
35831														var _v9 = _v8.a;
35832														var content = _v8.b.a;
35833														return $elm$core$Maybe$Just(
35834															A2($dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, content));
35835													} else {
35836														return A2(
35837															$elm$core$Maybe$map,
35838															$elm$core$Result$map($elm$core$List$singleton),
35839															A2($dillonkearns$elm_markdown$Markdown$Renderer$renderHelperSingle, renderer, listItemBlock));
35840													}
35841												},
35842												blocks);
35843										}(itemsblocks));
35844								},
35845								items))));
35846			case 7:
35847				var codeBlock = block.a;
35848				return $elm$core$Maybe$Just(
35849					$elm$core$Result$Ok(
35850						renderer.cZ(codeBlock)));
35851			case 8:
35852				return $elm$core$Maybe$Just(
35853					$elm$core$Result$Ok(renderer.dP));
35854			case 3:
35855				var nestedBlocks = block.a;
35856				return $elm$core$Maybe$Just(
35857					A2(
35858						$elm$core$Result$map,
35859						renderer.cW,
35860						$dillonkearns$elm_markdown$Markdown$Renderer$combineResults(
35861							A2($dillonkearns$elm_markdown$Markdown$Renderer$renderHelper, renderer, nestedBlocks))));
35862			default:
35863				var header = block.a;
35864				var rows = block.b;
35865				var renderedHeaderCells = $dillonkearns$elm_markdown$Markdown$Renderer$combineResults(
35866					A2(
35867						$elm$core$List$map,
35868						function (_v11) {
35869							var label = _v11.aK;
35870							var alignment = _v11.Z;
35871							return A2(
35872								$elm$core$Result$map,
35873								$elm$core$Tuple$pair(alignment),
35874								A2($dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, label));
35875						},
35876						header));
35877				var renderedHeader = A2(
35878					$elm$core$Result$map,
35879					function (listListView) {
35880						return renderer.dN(
35881							$elm$core$List$singleton(
35882								renderer.cF(
35883									A2(
35884										$elm$core$List$map,
35885										function (_v10) {
35886											var maybeAlignment = _v10.a;
35887											var item = _v10.b;
35888											return A2(renderer.dO, maybeAlignment, item);
35889										},
35890										listListView))));
35891					},
35892					renderedHeaderCells);
35893				var renderedBody = function (r) {
35894					return $elm$core$List$isEmpty(r) ? _List_Nil : _List_fromArray(
35895						[
35896							renderer.dL(r)
35897						]);
35898				};
35899				var alignmentForColumn = function (columnIndex) {
35900					return A2(
35901						$elm$core$Maybe$andThen,
35902						function ($) {
35903							return $.Z;
35904						},
35905						$elm$core$List$head(
35906							A2($elm$core$List$drop, columnIndex, header)));
35907				};
35908				var renderRow = function (cells) {
35909					return A2(
35910						$elm$core$Result$map,
35911						renderer.cF,
35912						A2(
35913							$elm$core$Result$map,
35914							$elm$core$List$indexedMap(
35915								F2(
35916									function (index, cell) {
35917										return A2(
35918											renderer.dM,
35919											alignmentForColumn(index),
35920											cell);
35921									})),
35922							$dillonkearns$elm_markdown$Markdown$Renderer$combineResults(
35923								A2(
35924									$elm$core$List$map,
35925									$dillonkearns$elm_markdown$Markdown$Renderer$renderStyled(renderer),
35926									cells))));
35927				};
35928				var renderedRows = $dillonkearns$elm_markdown$Markdown$Renderer$combineResults(
35929					A2($elm$core$List$map, renderRow, rows));
35930				return $elm$core$Maybe$Just(
35931					A3(
35932						$elm$core$Result$map2,
35933						F2(
35934							function (h, r) {
35935								return renderer.dK(
35936									A2(
35937										$elm$core$List$cons,
35938										h,
35939										renderedBody(r)));
35940							}),
35941						renderedHeader,
35942						renderedRows));
35943		}
35944	};
35945};
35946var $dillonkearns$elm_markdown$Markdown$Renderer$renderHtmlNode = F4(
35947	function (renderer, tag, attributes, children) {
35948		return A5(
35949			$dillonkearns$elm_markdown$Markdown$Renderer$renderHtml,
35950			tag,
35951			attributes,
35952			children,
35953			renderer.df,
35954			A2($dillonkearns$elm_markdown$Markdown$Renderer$renderHelper, renderer, children));
35955	});
35956var $dillonkearns$elm_markdown$Markdown$Renderer$renderSingleInline = F2(
35957	function (renderer, inline) {
35958		switch (inline.$) {
35959			case 4:
35960				var innerInlines = inline.a;
35961				return $elm$core$Maybe$Just(
35962					A2(
35963						$elm$core$Result$map,
35964						renderer.dH,
35965						A2($dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, innerInlines)));
35966			case 3:
35967				var innerInlines = inline.a;
35968				return $elm$core$Maybe$Just(
35969					A2(
35970						$elm$core$Result$map,
35971						renderer.c3,
35972						A2($dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, innerInlines)));
35973			case 5:
35974				var innerInlines = inline.a;
35975				return $elm$core$Maybe$Just(
35976					A2(
35977						$elm$core$Result$map,
35978						renderer.dG,
35979						A2($dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, innerInlines)));
35980			case 2:
35981				var src = inline.a;
35982				var title = inline.b;
35983				var children = inline.c;
35984				return $elm$core$Maybe$Just(
35985					$elm$core$Result$Ok(
35986						renderer.dg(
35987							{
35988								cT: $dillonkearns$elm_markdown$Markdown$Block$extractInlineText(children),
35989								dE: src,
35990								gt: title
35991							})));
35992			case 7:
35993				var string = inline.a;
35994				return $elm$core$Maybe$Just(
35995					$elm$core$Result$Ok(
35996						renderer.j(string)));
35997			case 6:
35998				var string = inline.a;
35999				return $elm$core$Maybe$Just(
36000					$elm$core$Result$Ok(
36001						renderer.c_(string)));
36002			case 1:
36003				var destination = inline.a;
36004				var title = inline.b;
36005				var inlines = inline.c;
36006				return $elm$core$Maybe$Just(
36007					A2(
36008						$elm$core$Result$andThen,
36009						function (children) {
36010							return $elm$core$Result$Ok(
36011								A2(
36012									renderer.dk,
36013									{fm: destination, gt: title},
36014									children));
36015						},
36016						A2($dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, inlines)));
36017			case 8:
36018				return $elm$core$Maybe$Just(
36019					$elm$core$Result$Ok(renderer.dc));
36020			default:
36021				var html = inline.a;
36022				if (!html.$) {
36023					var tag = html.a;
36024					var attributes = html.b;
36025					var children = html.c;
36026					return $elm$core$Maybe$Just(
36027						A4($dillonkearns$elm_markdown$Markdown$Renderer$renderHtmlNode, renderer, tag, attributes, children));
36028				} else {
36029					return $elm$core$Maybe$Nothing;
36030				}
36031		}
36032	});
36033var $dillonkearns$elm_markdown$Markdown$Renderer$renderStyled = F2(
36034	function (renderer, styledStrings) {
36035		return $dillonkearns$elm_markdown$Markdown$Renderer$combineResults(
36036			A3(
36037				$elm$core$List$foldr,
36038				$dillonkearns$elm_markdown$Markdown$Renderer$foldThing(renderer),
36039				_List_Nil,
36040				styledStrings));
36041	});
36042var $dillonkearns$elm_markdown$Markdown$Renderer$render = F2(
36043	function (renderer, ast) {
36044		return $dillonkearns$elm_markdown$Markdown$Renderer$combineResults(
36045			A2($dillonkearns$elm_markdown$Markdown$Renderer$renderHelper, renderer, ast));
36046	});
36047var $dtwrks$elm_book$ElmBook$UI$Markdown$view = F4(
36048	function (chapterTitle, chapterComponents, componentOptions, chapterContent) {
36049		return function (result) {
36050			if (!result.$) {
36051				var children = result.a;
36052				return A2(
36053					$elm$html$Html$article,
36054					_List_Nil,
36055					_List_fromArray(
36056						[
36057							A2($elm$html$Html$div, _List_Nil, children)
36058						]));
36059			} else {
36060				var errorString = result.a;
36061				return A2(
36062					$elm$html$Html$div,
36063					_List_fromArray(
36064						[
36065							$elm$html$Html$Attributes$class('elm-book__component-wrapper')
36066						]),
36067					_List_fromArray(
36068						[
36069							A2(
36070							$elm$html$Html$pre,
36071							_List_fromArray(
36072								[
36073									$elm$html$Html$Attributes$class('elm-book-sans elm-book__component-error')
36074								]),
36075							_List_fromArray(
36076								[
36077									$elm$html$Html$text(errorString)
36078								]))
36079						]));
36080			}
36081		}(
36082			A2(
36083				$elm$core$Result$andThen,
36084				function (blocks) {
36085					return A2(
36086						$dillonkearns$elm_markdown$Markdown$Renderer$render,
36087						A3($dtwrks$elm_book$ElmBook$UI$Markdown$componentRenderer, chapterTitle, chapterComponents, componentOptions),
36088						blocks);
36089				},
36090				A2(
36091					$elm$core$Result$mapError,
36092					function (errors) {
36093						return A2(
36094							$elm$core$String$join,
36095							'\n',
36096							A2($elm$core$List$map, $dillonkearns$elm_markdown$Markdown$Parser$deadEndToString, errors));
36097					},
36098					$dillonkearns$elm_markdown$Markdown$Parser$parse(chapterContent))));
36099	});
36100var $dtwrks$elm_book$ElmBook$UI$Chapter$view = function (props) {
36101	var body = props.d4.fD ? props.fe : ('# ' + (props.gt + ('\n' + props.fe)));
36102	return A2(
36103		$elm$html$Html$article,
36104		_List_fromArray(
36105			[
36106				$elm$html$Html$Attributes$class('elm-book elm-book-chapter')
36107			]),
36108		_List_fromArray(
36109			[
36110				A4($dtwrks$elm_book$ElmBook$UI$Markdown$view, props.gt, props.fj, props.d6, body)
36111			]));
36112};
36113var $elm$svg$Svg$Attributes$stroke = _VirtualDom_attribute('stroke');
36114var $elm$svg$Svg$Attributes$strokeLinecap = _VirtualDom_attribute('stroke-linecap');
36115var $elm$svg$Svg$Attributes$strokeLinejoin = _VirtualDom_attribute('stroke-linejoin');
36116var $elm$svg$Svg$Attributes$strokeWidth = _VirtualDom_attribute('stroke-width');
36117var $dtwrks$elm_book$ElmBook$UI$Icons$iconDarkMode = function (props) {
36118	return A2(
36119		$elm$svg$Svg$svg,
36120		_List_fromArray(
36121			[
36122				$elm$svg$Svg$Attributes$width(
36123				$elm$core$String$fromInt(props.n)),
36124				$elm$svg$Svg$Attributes$height(
36125				$elm$core$String$fromInt(props.n)),
36126				$elm$svg$Svg$Attributes$viewBox('0 0 24 24'),
36127				$elm$svg$Svg$Attributes$fill('none'),
36128				$elm$svg$Svg$Attributes$stroke(props.U),
36129				$elm$svg$Svg$Attributes$strokeWidth('2'),
36130				$elm$svg$Svg$Attributes$strokeLinecap('round'),
36131				$elm$svg$Svg$Attributes$strokeLinejoin('round')
36132			]),
36133		_List_fromArray(
36134			[
36135				A2(
36136				$elm$svg$Svg$path,
36137				_List_fromArray(
36138					[
36139						$elm$svg$Svg$Attributes$d('M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z')
36140					]),
36141				_List_Nil)
36142			]));
36143};
36144var $dtwrks$elm_book$ElmBook$UI$ChapterHeader$view = function (props) {
36145	return A2(
36146		$elm$html$Html$div,
36147		_List_fromArray(
36148			[
36149				$elm$html$Html$Attributes$class('elm-book elm-book-chapter-header')
36150			]),
36151		_List_fromArray(
36152			[
36153				A2(
36154				$elm$html$Html$p,
36155				_List_fromArray(
36156					[
36157						$elm$html$Html$Attributes$class('elm-book-chapter-header__title')
36158					]),
36159				_List_fromArray(
36160					[
36161						$elm$html$Html$text(props.gt)
36162					])),
36163				A2(
36164				$elm$html$Html$button,
36165				_List_fromArray(
36166					[
36167						$elm$html$Html$Attributes$class('elm-book-chapter-header__btn'),
36168						$elm$html$Html$Events$onClick(props.f5)
36169					]),
36170				_List_fromArray(
36171					[
36172						$dtwrks$elm_book$ElmBook$UI$Icons$iconDarkMode(
36173						{U: 'currentColor', n: 16})
36174					]))
36175			]));
36176};
36177var $dtwrks$elm_book$ElmBook$UI$Icons$iconElm = function (props) {
36178	return A2(
36179		$elm$svg$Svg$svg,
36180		_List_fromArray(
36181			[
36182				$elm$svg$Svg$Attributes$width(
36183				$elm$core$String$fromInt(props.n)),
36184				$elm$svg$Svg$Attributes$height(
36185				$elm$core$String$fromInt(props.n)),
36186				$elm$svg$Svg$Attributes$viewBox('0 0 256 256')
36187			]),
36188		_List_fromArray(
36189			[
36190				A2(
36191				$elm$svg$Svg$path,
36192				_List_fromArray(
36193					[
36194						$elm$svg$Svg$Attributes$fill(props.U),
36195						$elm$svg$Svg$Attributes$d('M128 135.022L7.023 256h241.955z')
36196					]),
36197				_List_Nil),
36198				A2(
36199				$elm$svg$Svg$path,
36200				_List_fromArray(
36201					[
36202						$elm$svg$Svg$Attributes$fill(props.U),
36203						$elm$svg$Svg$Attributes$d('M202.332 195.311L256 248.98V141.643z')
36204					]),
36205				_List_Nil),
36206				A2(
36207				$elm$svg$Svg$path,
36208				_List_fromArray(
36209					[
36210						$elm$svg$Svg$Attributes$fill(props.U),
36211						$elm$svg$Svg$Attributes$d('M120.978 128L0 7.022V248.98z')
36212					]),
36213				_List_Nil),
36214				A2(
36215				$elm$svg$Svg$path,
36216				_List_fromArray(
36217					[
36218						$elm$svg$Svg$Attributes$fill(props.U),
36219						$elm$svg$Svg$Attributes$d('M256 113.806V0H142.193z')
36220					]),
36221				_List_Nil),
36222				A2(
36223				$elm$svg$Svg$path,
36224				_List_fromArray(
36225					[
36226						$elm$svg$Svg$Attributes$fill(props.U),
36227						$elm$svg$Svg$Attributes$d('M195.584 67.434l60.288 60.289l-60.563 60.564l-60.29-60.29z')
36228					]),
36229				_List_Nil),
36230				A2(
36231				$elm$svg$Svg$path,
36232				_List_fromArray(
36233					[
36234						$elm$svg$Svg$Attributes$fill(props.U),
36235						$elm$svg$Svg$Attributes$d('M7.021 0l55.725 55.726h121.13L128.15 0z')
36236					]),
36237				_List_Nil),
36238				A2(
36239				$elm$svg$Svg$path,
36240				_List_fromArray(
36241					[
36242						$elm$svg$Svg$Attributes$fill(props.U),
36243						$elm$svg$Svg$Attributes$d('M128 120.979l55.322-55.323H72.677z')
36244					]),
36245				_List_Nil)
36246			]));
36247};
36248var $dtwrks$elm_book$ElmBook$UI$Helpers$themeAccentVar = '--elm-book-accent';
36249var $dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent = $dtwrks$elm_book$ElmBook$UI$Helpers$var_($dtwrks$elm_book$ElmBook$UI$Helpers$themeAccentVar);
36250var $dtwrks$elm_book$ElmBook$UI$Footer$view = A2(
36251	$elm$html$Html$div,
36252	_List_fromArray(
36253		[
36254			$elm$html$Html$Attributes$class('elm-book elm-book-sans')
36255		]),
36256	_List_fromArray(
36257		[
36258			A2(
36259			$elm$html$Html$a,
36260			_List_fromArray(
36261				[
36262					$elm$html$Html$Attributes$href('https://package.elm-lang.org/packages/dtwrks/elm-book/latest/'),
36263					$elm$html$Html$Attributes$target('_blank'),
36264					$elm$html$Html$Attributes$class('elm-book-footer'),
36265					A2($elm$html$Html$Attributes$style, 'color', $dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent)
36266				]),
36267			_List_fromArray(
36268				[
36269					$dtwrks$elm_book$ElmBook$UI$Icons$iconElm(
36270					{U: 'currentColor', n: 16}),
36271					A2(
36272					$elm$html$Html$div,
36273					_List_fromArray(
36274						[
36275							$elm$html$Html$Attributes$class('elm-book-footer--text')
36276						]),
36277					_List_fromArray(
36278						[
36279							$elm$html$Html$text('dtwrks/elm-book')
36280						]))
36281				]))
36282		]));
36283var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$header = function (theme) {
36284	return theme.fz;
36285};
36286var $elm$html$Html$header = _VirtualDom_node('header');
36287var $elm$svg$Svg$rect = $elm$svg$Svg$trustedNode('rect');
36288var $elm$svg$Svg$Attributes$rx = _VirtualDom_attribute('rx');
36289var $elm$svg$Svg$Attributes$transform = _VirtualDom_attribute('transform');
36290var $elm$svg$Svg$Attributes$x = _VirtualDom_attribute('x');
36291var $elm$svg$Svg$Attributes$y = _VirtualDom_attribute('y');
36292var $dtwrks$elm_book$ElmBook$UI$Icons$iconClose = function (props) {
36293	return A2(
36294		$elm$svg$Svg$svg,
36295		_List_fromArray(
36296			[
36297				$elm$svg$Svg$Attributes$width(
36298				$elm$core$String$fromInt(props.n)),
36299				$elm$svg$Svg$Attributes$height(
36300				$elm$core$String$fromInt(props.n)),
36301				$elm$svg$Svg$Attributes$viewBox('0 0 512 512')
36302			]),
36303		_List_fromArray(
36304			[
36305				A2(
36306				$elm$svg$Svg$path,
36307				_List_fromArray(
36308					[
36309						$elm$svg$Svg$Attributes$fill(props.U),
36310						$elm$svg$Svg$Attributes$d('M451.792 0H59.208C26.561 0 0 26.561 0 59.208v393.084C0 484.939 26.561 511.5 59.208 511.5h392.584c32.647 0 59.208-26.561 59.208-59.208V59.208C511 26.561 484.439 0 451.792 0zM471 452.292c0 10.591-8.617 19.208-19.208 19.208H59.208C48.617 471.5 40 462.883 40 452.292V59.208C40 48.617 48.617 40 59.208 40h392.584C462.383 40 471 48.617 471 59.208v393.084z')
36311					]),
36312				_List_Nil),
36313				A2(
36314				$elm$svg$Svg$rect,
36315				_List_fromArray(
36316					[
36317						$elm$svg$Svg$Attributes$fill(props.U),
36318						$elm$svg$Svg$Attributes$x('105'),
36319						$elm$svg$Svg$Attributes$y('377.943'),
36320						$elm$svg$Svg$Attributes$width('386'),
36321						$elm$svg$Svg$Attributes$height('40'),
36322						$elm$svg$Svg$Attributes$rx('20'),
36323						$elm$svg$Svg$Attributes$transform('rotate(-45 105 377.943)')
36324					]),
36325				_List_Nil),
36326				A2(
36327				$elm$svg$Svg$rect,
36328				_List_fromArray(
36329					[
36330						$elm$svg$Svg$Attributes$fill(props.U),
36331						$elm$svg$Svg$Attributes$x('133.284'),
36332						$elm$svg$Svg$Attributes$y('105'),
36333						$elm$svg$Svg$Attributes$width('386'),
36334						$elm$svg$Svg$Attributes$height('40'),
36335						$elm$svg$Svg$Attributes$rx('20'),
36336						$elm$svg$Svg$Attributes$transform('rotate(45 133.284 105)')
36337					]),
36338				_List_Nil)
36339			]));
36340};
36341var $dtwrks$elm_book$ElmBook$UI$Icons$iconMenu = function (props) {
36342	return A2(
36343		$elm$svg$Svg$svg,
36344		_List_fromArray(
36345			[
36346				$elm$svg$Svg$Attributes$width(
36347				$elm$core$String$fromInt(props.n)),
36348				$elm$svg$Svg$Attributes$height(
36349				$elm$core$String$fromInt(props.n)),
36350				$elm$svg$Svg$Attributes$viewBox('0 0 512 512')
36351			]),
36352		_List_fromArray(
36353			[
36354				A2(
36355				$elm$svg$Svg$path,
36356				_List_fromArray(
36357					[
36358						$elm$svg$Svg$Attributes$fill(props.U),
36359						$elm$svg$Svg$Attributes$d('M176.792 0H59.208C26.561 0 0 26.561 0 59.208v117.584C0 209.439 26.561 236 59.208 236h117.584C209.439 236 236 209.439 236 176.792V59.208C236 26.561 209.439 0 176.792 0zM196 176.792c0 10.591-8.617 19.208-19.208 19.208H59.208C48.617 196 40 187.383 40 176.792V59.208C40 48.617 48.617 40 59.208 40h117.584C187.383 40 196 48.617 196 59.208v117.584zM452 0H336c-33.084 0-60 26.916-60 60v116c0 33.084 26.916 60 60 60h116c33.084 0 60-26.916 60-60V60c0-33.084-26.916-60-60-60zm20 176c0 11.028-8.972 20-20 20H336c-11.028 0-20-8.972-20-20V60c0-11.028 8.972-20 20-20h116c11.028 0 20 8.972 20 20v116zM176.792 276H59.208C26.561 276 0 302.561 0 335.208v117.584C0 485.439 26.561 512 59.208 512h117.584C209.439 512 236 485.439 236 452.792V335.208C236 302.561 209.439 276 176.792 276zM196 452.792c0 10.591-8.617 19.208-19.208 19.208H59.208C48.617 472 40 463.383 40 452.792V335.208C40 324.617 48.617 316 59.208 316h117.584c10.591 0 19.208 8.617 19.208 19.208v117.584zM452 276H336c-33.084 0-60 26.916-60 60v116c0 33.084 26.916 60 60 60h116c33.084 0 60-26.916 60-60V336c0-33.084-26.916-60-60-60zm20 176c0 11.028-8.972 20-20 20H336c-11.028 0-20-8.972-20-20V336c0-11.028 8.972-20 20-20h116c11.028 0 20 8.972 20 20v116z')
36360					]),
36361				_List_Nil)
36362			]));
36363};
36364var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$logo = function (theme) {
36365	return theme.dl;
36366};
36367var $dtwrks$elm_book$ElmBook$UI$Header$viewDefault = function (props) {
36368	return A2(
36369		$elm$html$Html$span,
36370		_List_fromArray(
36371			[
36372				$elm$html$Html$Attributes$class('elm-book-sans elm-book-header-default')
36373			]),
36374		_List_fromArray(
36375			[
36376				A2(
36377				$elm$core$Maybe$withDefault,
36378				$dtwrks$elm_book$ElmBook$UI$Icons$iconElm(
36379					{U: $dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent, n: 24}),
36380				A2(
36381					$elm$core$Maybe$map,
36382					props.e0,
36383					$dtwrks$elm_book$ElmBook$Internal$ThemeOptions$logo(props.dQ))),
36384				A2(
36385				$elm$html$Html$span,
36386				_List_fromArray(
36387					[
36388						$elm$html$Html$Attributes$class('elm-book-header-default--wrapper')
36389					]),
36390				_List_fromArray(
36391					[
36392						A2(
36393						$elm$html$Html$span,
36394						_List_fromArray(
36395							[
36396								$elm$html$Html$Attributes$class('elm-book-header-default--title')
36397							]),
36398						_List_fromArray(
36399							[
36400								$elm$html$Html$text(props.gt)
36401							])),
36402						A2(
36403						$elm$core$Maybe$withDefault,
36404						$elm$html$Html$text(''),
36405						A2(
36406							$elm$core$Maybe$map,
36407							function (subtitle) {
36408								return A2(
36409									$elm$html$Html$span,
36410									_List_fromArray(
36411										[
36412											$elm$html$Html$Attributes$class('elm-book-header-default--subtitle')
36413										]),
36414									_List_fromArray(
36415										[
36416											$elm$html$Html$text(subtitle)
36417										]));
36418							},
36419							$dtwrks$elm_book$ElmBook$Internal$ThemeOptions$subtitle(props.dQ)))
36420					]))
36421			]));
36422};
36423var $dtwrks$elm_book$ElmBook$UI$Header$view = function (props) {
36424	return A2(
36425		$elm$html$Html$header,
36426		_List_fromArray(
36427			[
36428				$elm$html$Html$Attributes$class('elm-book-header')
36429			]),
36430		_List_fromArray(
36431			[
36432				A2(
36433				$elm$html$Html$a,
36434				_List_fromArray(
36435					[
36436						$elm$html$Html$Attributes$href(props.ei),
36437						$elm$html$Html$Attributes$class('elm-book-header--link'),
36438						A2($elm$html$Html$Attributes$style, 'color', $dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent)
36439					]),
36440				_List_fromArray(
36441					[
36442						A2(
36443						$elm$html$Html$h1,
36444						_List_fromArray(
36445							[
36446								$elm$html$Html$Attributes$class('elm-book')
36447							]),
36448						_List_fromArray(
36449							[
36450								A2(
36451								$elm$core$Maybe$withDefault,
36452								$dtwrks$elm_book$ElmBook$UI$Header$viewDefault(
36453									{ei: props.ei, dQ: props.dQ, gt: props.gt, e0: props.e0}),
36454								A2(
36455									$elm$core$Maybe$map,
36456									props.e0,
36457									$dtwrks$elm_book$ElmBook$Internal$ThemeOptions$header(props.dQ)))
36458							]))
36459					])),
36460				A2(
36461				$elm$html$Html$button,
36462				_List_fromArray(
36463					[
36464						$elm$html$Html$Attributes$class('elm-book elm-book-header--button'),
36465						$elm$html$Html$Events$onClick(props.f3)
36466					]),
36467				_List_fromArray(
36468					[
36469						props.M ? $dtwrks$elm_book$ElmBook$UI$Icons$iconClose(
36470						{U: $dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent, n: 20}) : $dtwrks$elm_book$ElmBook$UI$Icons$iconMenu(
36471						{U: $dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent, n: 20})
36472					]))
36473			]));
36474};
36475var $elm$html$Html$nav = _VirtualDom_node('nav');
36476var $dtwrks$elm_book$ElmBook$UI$Nav$target_ = function (internal) {
36477	return internal ? $elm$html$Html$Attributes$class('') : $elm$html$Html$Attributes$target('_blank');
36478};
36479var $dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentVar = '--elm-book-nav-accent';
36480var $dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccent = $dtwrks$elm_book$ElmBook$UI$Helpers$var_($dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentVar);
36481var $dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentHighlightVar = '--elm-book-nav-accent-highlight';
36482var $dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentHighlight = $dtwrks$elm_book$ElmBook$UI$Helpers$var_($dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentHighlightVar);
36483var $dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackgroundVar = '--elm-book-nav-background';
36484var $dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackground = $dtwrks$elm_book$ElmBook$UI$Helpers$var_($dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackgroundVar);
36485var $dtwrks$elm_book$ElmBook$UI$Nav$view = function (props) {
36486	var item = function (_v2) {
36487		var url = _v2.a;
36488		var label = _v2.b;
36489		var internal = _v2.c;
36490		return A2(
36491			$elm$html$Html$li,
36492			_List_Nil,
36493			_List_fromArray(
36494				[
36495					A2(
36496					$elm$html$Html$a,
36497					_List_fromArray(
36498						[
36499							$elm$html$Html$Attributes$href(url),
36500							$dtwrks$elm_book$ElmBook$UI$Nav$target_(internal),
36501							$elm$html$Html$Attributes$classList(
36502							_List_fromArray(
36503								[
36504									_Utils_Tuple2('elm-book-nav-item', true),
36505									_Utils_Tuple2(
36506									'active',
36507									_Utils_eq(
36508										props.cS,
36509										$elm$core$Maybe$Just(url))),
36510									_Utils_Tuple2(
36511									'pre-selected',
36512									_Utils_eq(
36513										props.gc,
36514										$elm$core$Maybe$Just(url)))
36515								])),
36516							_Utils_eq(
36517							props.cS,
36518							$elm$core$Maybe$Just(url)) ? A2($elm$html$Html$Attributes$style, 'color', $dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentHighlight) : A2($elm$html$Html$Attributes$style, 'color', $dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccent)
36519						]),
36520					_List_fromArray(
36521						[
36522							A2(
36523							$elm$html$Html$div,
36524							_List_fromArray(
36525								[
36526									$elm$html$Html$Attributes$class('elm-book-inset elm-book-nav-item-bg'),
36527									A2($elm$html$Html$Attributes$style, 'background-color', $dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackground)
36528								]),
36529							_List_Nil),
36530							A2(
36531							$elm$html$Html$div,
36532							_List_fromArray(
36533								[
36534									$elm$html$Html$Attributes$class('elm-book-nav-item-content')
36535								]),
36536							_List_fromArray(
36537								[
36538									$elm$html$Html$text(label)
36539								]))
36540						]))
36541				]));
36542	};
36543	var list = function (_v1) {
36544		var title = _v1.a;
36545		var items = _v1.b;
36546		return $elm$core$List$isEmpty(items) ? $elm$html$Html$text('') : A2(
36547			$elm$html$Html$div,
36548			_List_fromArray(
36549				[
36550					$elm$html$Html$Attributes$class('elm-book-nav-list-wrapper')
36551				]),
36552			_List_fromArray(
36553				[
36554					(title === '') ? $elm$html$Html$text('') : A2(
36555					$elm$html$Html$p,
36556					_List_fromArray(
36557						[
36558							$elm$html$Html$Attributes$class('elm-book-nav-list-title'),
36559							A2($elm$html$Html$Attributes$style, 'color', $dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent)
36560						]),
36561					_List_fromArray(
36562						[
36563							$elm$html$Html$text(title)
36564						])),
36565					A2(
36566					$elm$html$Html$ul,
36567					_List_fromArray(
36568						[
36569							$elm$html$Html$Attributes$class('elm-book-nav-list')
36570						]),
36571					A2($elm$core$List$map, item, items))
36572				]));
36573	};
36574	var isEmpty = !A3(
36575		$elm$core$List$foldl,
36576		F2(
36577			function (_v0, acc) {
36578				var xs = _v0.b;
36579				return acc + $elm$core$List$length(xs);
36580			}),
36581		0,
36582		props.fJ);
36583	return A2(
36584		$elm$html$Html$div,
36585		_List_fromArray(
36586			[
36587				$elm$html$Html$Attributes$class('elm-book-wrapper elm-book-sans')
36588			]),
36589		_List_fromArray(
36590			[
36591				isEmpty ? A2(
36592				$elm$html$Html$p,
36593				_List_fromArray(
36594					[
36595						$elm$html$Html$Attributes$class('elm-book-nav-empty'),
36596						A2($elm$html$Html$Attributes$style, 'color', $dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccent)
36597					]),
36598				_List_fromArray(
36599					[
36600						$elm$html$Html$text('No results')
36601					])) : A2(
36602				$elm$html$Html$nav,
36603				_List_fromArray(
36604					[
36605						$elm$html$Html$Attributes$class('elm-book-nav')
36606					]),
36607				A2($elm$core$List$map, list, props.fJ))
36608			]));
36609};
36610var $dtwrks$elm_book$ElmBook$UI$Search$view = function (props) {
36611	return A2(
36612		$elm$html$Html$div,
36613		_List_fromArray(
36614			[
36615				$elm$html$Html$Attributes$class('elm-book-wrapper elm-book-search-wrapper elm-book-sans')
36616			]),
36617		_List_fromArray(
36618			[
36619				A2(
36620				$elm$html$Html$div,
36621				_List_fromArray(
36622					[
36623						$elm$html$Html$Attributes$class('elm-book-search-bg elm-book-inset')
36624					]),
36625				_List_Nil),
36626				A2(
36627				$elm$html$Html$div,
36628				_List_fromArray(
36629					[
36630						$elm$html$Html$Attributes$class('elm-book-search-border elm-book-inset')
36631					]),
36632				_List_Nil),
36633				A2(
36634				$elm$html$Html$input,
36635				_List_fromArray(
36636					[
36637						$elm$html$Html$Attributes$id('elm-book-search'),
36638						$elm$html$Html$Attributes$value(props.cN),
36639						$elm$html$Html$Events$onInput(props.cm),
36640						$elm$html$Html$Events$onFocus(props.cj),
36641						$elm$html$Html$Events$onBlur(props.cg),
36642						$elm$html$Html$Attributes$placeholder('Type \"⌘K\" to search…')
36643					]),
36644				_List_Nil)
36645			]));
36646};
36647var $dtwrks$elm_book$ElmBook$UI$Helpers$css_ = function (x) {
36648	return A3(
36649		$elm$html$Html$node,
36650		'style',
36651		_List_Nil,
36652		_List_fromArray(
36653			[
36654				$elm$html$Html$text(x)
36655			]));
36656};
36657var $dtwrks$elm_book$ElmBook$UI$Helpers$baseStyles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n@import url(\'https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&family=IBM+Plex+Sans:wght@300;400;600&family=IBM+Plex+Serif:ital,wght@0,400;0,600;1,400;1,600&display=swap\');\n\n@keyframes fade-in {\n  from { opacity: 0; }\n  to   { opacity: 1; }\n}\n\n.elm-book-fade-in {\n    animation: 0.3s linear fade-in;\n}\n\n.elm-book-wrapper * {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0;\n}\n\n.elm-book-wrapper,\n.elm-book {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0;\n}\n\n.elm-book-sans {\n    font-family: "IBM Plex Sans", "sans-serif";\n}\n\n.elm-book-serif {\n    font-family: "IBM Plex Serif", "serif";\n}\n\n.elm-book-monospace {\n    font-family: "Fira Code", "monospace";\n}\n\n.elm-book-inset {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n}\n\n.elm-book-shadows {\n    box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);\n}\n\n.elm-book-shadows-light {\n    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n');
36658var $dtwrks$elm_book$ElmBook$UI$ActionLog$styles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-action-log-preview-wrapper {\n    padding: 8px;\n}\n.elm-book-action-log-preview {\n    display: block;\n    width: 100%;\n    padding: 0;\n    margin: 0;\n    border: none;\n    border-radius: 4px;\n    background-color: transparent;\n    text-align: left;\n    font-size: 14px;\n    cursor: pointer;\n}\n.elm-book-action-log-preview:hover {\n    opacity: 0.9;\n}\n.elm-book-action-log-preview:hover {\n    opacity: 0.8;\n}\n\n.elm-book-action-log-preview-empty-wrapper {\n    padding: 8px;\n    font-size: 14px;\n    color: #aaa;\n}
36658\n.elm-book-action-log-preview-empty {\n    padding: 12px 20px;\n    background-color: #f3f3f3;\n    border-radius: 4px;\n}\n\n.elm-book-dark-mode .elm-book-action-log-preview-empty {\n    background-color: #2f3238;\n}\n\n.elm-book-action-log-list-wrapper {\n    position: relative;\n    padding-top: 34px;\n}\n.elm-book-action-log-list-header {\n    display: flex;\n    align-items: center;\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 34px;\n    padding: 0 20px;\n    font-weight: bold;\n    font-size: 14px;\n    letter-spacing: 0.5px;\n    color: #fff;\n}\n.elm-book-action-log-list {\n    list-style-type: none;\n    max-height: 70vh;\n    overflow-y: auto;\n}\n.elm-book-action-log-list-item {\n    border-top: 1px solid #e0e0e0;\n}\n.elm-book-dark-mode .elm-book-action-log-list-item {\n    border-top-color: #3b3f47;\n}\n\n.elm-book-action-log-item-wrapper {\n    display: flex;\n    align-items: center;\n    padding: 8px 20px 8px 0;\n    font-size: 14px;\n    background-color: #f5f5f5;\n}\n.elm-book-dark-mode .elm-book-action-log-item-wrapper {\n    background-color: #2f3238;\n}\n\n.elm-book-action-log-item-index {\n    width: 60px;\n    text-align: center;\n    display: inline-block;\n    color: #a0a0a0;\n}\n.elm-book-action-log__main {\n    flex-grow: 1;\n}\n.elm-book-action-log-item-preffix {\n    padding-right: 16px;\n    color: #a0a0a0;\n    letter-spacing: 0.5px;\n    font-size: 12px;\n}\n.elm-book-action-log-item-label {\n    color: #404040;\n    font-size: 13px;\n    font-weight: bold;\n}\n.elm-book-dark-mode .elm-book-action-log-item-label {\n    color: #f5f5f5;\n}\n');
36659var $dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile = '@media screen and (max-width: 768px)';
36660var $dtwrks$elm_book$ElmBook$UI$Chapter$styles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-chapter {\n    padding: 40px;\n    width: 100%;\n}\n' + ($dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + ' {\n    .elm-book-chapter {\n        padding: 24px;\n    }\n}\n'));
36661var $dtwrks$elm_book$ElmBook$UI$ChapterComponent$styles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book__chapter-component__title {\n    padding-bottom: 12px;\n    font-size: 14px;\n    letter-spacing: 0.5px;\n    color: #999;\n}\n\n.elm-book__chapter-component__background {\n    padding: 12px;\n    border-radius: 4px;\n    background-color: #fff;\n}\n.elm-book-dark-mode .elm-book__chapter-component__background {\n    background-color: #3b3f47;\n}\n\n.elm-book__chapter-component__content {\n    border: 1px dashed transparent;\n    position: relative;\n}\n.elm-book__chapter-component__content:hover {\n    border-color: #eaeaea;\n}\n');
36662var $dtwrks$elm_book$ElmBook$UI$ChapterHeader$styles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-chapter-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    margin: 0;\n    padding: 8px 12px 8px 16px;\n\n}\n.elm-book-dark-mode .elm-book-chapter-header {\n    color: #dadada;\n}\n\n.elm-book-chapter-header__title {\n    margin: 0;\n    padding: 0;\n    font-size: 12px;\n    font-weight: bold;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    color: #b0b4ba;\n}\n.elm-book-dark-mode .elm-book-chapter-header__title {\n    color: #dadada;\n}\n\n.elm-book-chapter-header__btn {\n    border: none;\n    background: none;\n    color: #b0b4ba;\n}\n.elm-book-chapter-header__btn:hover {\n    cursor: pointer;\n    opacity: 0.8;\n}\n.elm-book-chapter-header__btn:active {\n    opacity: 0.6;\n}\n.elm-book-dark-mode .elm-book-chapter-header__btn {\n    color: #dadada;\n}\n');
36663var $dtwrks$elm_book$ElmBook$UI$Footer$styles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-footer {\n    display: flex;\n    align-items: center;\n    width: 100%;\n    margin: 0;\n    padding: 13px 12px 13px;\n    opacity: 0.8;\n    transition: opacity 200ms;\n    text-decoration: none;\n}\n.elm-book-footer:hover {\n    opacity: 1;\n}\n\n.elm-book-footer--text {\n    padding-left: 12px;\n    font-size: 10px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    color: currentColor;\n}\n');
36664var $dtwrks$elm_book$ElmBook$UI$Header$styles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-header {\n    display: flex;
36664\n    align-items: center;\n    justify-content: space-between;\n}\n\n.elm-book-header--link {\n    display: block;\n    padding: 8px 12px;\n    text-decoration: none;\n}\n.elm-book-header--link:hover {\n    opacity: 0.9;\n}\n.elm-book-header--link:active {\n    opacity: 0.8;\n}\n\n.elm-book-header--button {\n    display: none;\n    padding: 12px;\n    border: none;\n    border-radius: 4px;\n    box-shadow: none;\n    background-color: transparent;\n    cursor: pointer;\n}\n.elm-book-header--button:hover {\n    opacity: 0.9;\n    background-color: rgba(255, 255, 255, 0.1);\n}\n.elm-book-header--button:active {\n    opacity: 0.4;\n}\n@media screen and (max-width: 768px) {\n    .elm-book-header--button {\n        display: flex;\n        align-items: center;\n    }\n}\n\n.elm-book-header-default {\n    display: flex;\n    align-items: center;\n}\n\n.elm-book-header-default--wrapper {\n    display: block;\n    padding-left: 16px;\n    font-weight: 600;\n    font-size: 16px;\n}\n\n.elm-book-header-default--title {\n    display: block;\n    padding-right: 4px;\n}\n\n.elm-book-header-default--subtitle {\n    display: block;\n    font-weight: 400;\n}\n');
36665var $dtwrks$elm_book$ElmBook$UI$Helpers$mediaLargeScreen = '@media screen and (min-width: 1720px)';
36666var $dtwrks$elm_book$ElmBook$UI$Markdown$styles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book__component-wrapper {\n    max-width: 720px;\n    margin: 0 auto;\n    padding-bottom: 36px;\n}\n.elm-book__component-wrapper.full {\n    max-width: 100%;\n}\n.elm-book__component-error {\n    overflow: auto;\n    padding: 20px;\n    background-color: #f9e4b5;\n    border-radius: 4px;\n    border: 2px solid #eac97d;\n    color: #ab7700;\n}\n\n.elm-book-md__component-list {\n    list-style-type: none;\n    margin: 0;\n    padding: 0;\n}\n.elm-book-md__component-list__item + .elm-book-md__component-list__item {\n    padding-top: 36px;\n}\n\n.elm-book-md {\n    max-width: 720px;\n    margin: 0 auto;\n    padding-bottom: 36px;\n    color: rgb(41,41,41);\n}\n\n.elm-book-dark-mode .elm-book-md {\n    color: rgb(180, 180, 180);    \n}\n\n.elm-book-md * {\n    margin: 0;\n    padding: 0;\n    box-sizing: border-box;\n}\n\n' + ($dtwrks$elm_book$ElmBook$UI$Helpers$mediaLargeScreen + (' {\n    .elm-book__component-wrapper {\n        max-width: 960px;\n    }\n    .elm-book__component-wrapper.full {\n        max-width: 100%;\n    }\n    .elm-book-md {\n        max-width: 960px;\n    }\n}\n\n.elm-book-md h1 {\n    font-size: 46px;\n}\n.elm-book-md h2 {\n    font-size: 32px;\n}\n.elm-book-md h3 {\n    font-size: 24px;\n}\n.elm-book-md h4 {\n    font-size: 20px;\n    font-weight: normal;\n    text-transform: uppercase;\n}\n.elm-book-md h5 {\n    font-size: 18px;\n    font-weight: normal;\n    text-transform: uppercase;\n}\n.elm-book-md h6 {\n    font-size: 16px;\n    font-weight: normal;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.elm-book-md h1,\n.elm-book-md h2,\n.elm-book-md h3 {\n    font-weight: bold;\n}\n\n.elm-book-md h1,\n.elm-book-md h2,\n.elm-book-md h3,\n.elm-book-md h4,\n.elm-book-md h5,\n.elm-book-md h6 {\n    padding-top: 24px;\n}\n\n.elm-book-dark-mode .elm-book-md h1,\n.elm-book-dark-mode .elm-book-md h2,\n.elm-book-dark-mode .elm-book-md h3,\n.elm-book-dark-mode .elm-book-md h4,\n.elm-book-dark-mode .elm-book-md h5,\n.elm-book-dark-mode .elm-book-md h6 {\n    color: #dadada;\n}\n\n' + ($dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n    .elm-book-md h1 {\n        font-size: 40px;\n        padding-top: 12px;\n    }\n}\n\n.elm-book-md__default {\n    line-height: 1.8em;\n    color: rgb(80, 80, 90);\n    font-size: 20px;\n}\n' + ($dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n    .elm-book-md__default {\n        font-size: 18px;\n    }\n}\n\n.elm-book-md a {\n    color: #000;\n    text-decoration: underline;\n}\n.elm-book-md a:hover {\n    opacity: 0.8;   \n}\n.elm-book-dark-mode .elm-book-md a {\n    color: #f0f0f0;\n}\n\n.elm-book-md blockquote {\n    font-size: 18px;\n    margin-left: 0;\n    padding: 8px 0 8px 24px;
36666\n    border-left: 4px solid #f0f0f0;\n}\n.elm-book-md code {\n    display: inline-block;\n    border-radius: 4px;\n    padding: 0 8px;\n    background-color: #f0f0f0;\n    border: 1px solid #eaeaea;\n    color: #4a4a4a;\n    font-size: 0.8em;\n    line-height: 1.8em;\n}\n.elm-book-dark-mode .elm-book-md code {\n    background-color: #333;\n    border: 1px solid #444;\n    color: #bababa;\n}\n\n\n.elm-book-md img {\n    max-width: 100%;\n}\n.elm-book-md ul {\n    padding-left: 32px;\n    list-style: disc;\n}\n.elm-book-md ol {\n    padding-left: 32px;\n}\n\n.elm-book-md hr {\n    border: none;\n    height: 2px;\n    background-color: #f0f0f0;\n}\n.elm-book-dark-mode .elm-book-md hr {\n    background-color: #3b3f47;\n}\n\n.elm-book-md table {\n    border-collapse: collapse;\n    overflow-x: auto;\n    border: 2px solid #f0f0f0;\n}\n.elm-book-md thead {\n    border: none;\n}\n.elm-book-md tbody {\n    border: none;\n}\n.elm-book-md tr {\n    border: none;\n    border-top: 2px solid #f0f0f0;\n}\n.elm-book-md th,\n.elm-book-md td {\n    border: none;\n    border-right: 2px solid #f0f0f0;\n    padding: 12px;\n}\n.elm-book-md th:last-child,\n.elm-book-md td:last-child {\n    border-right: none;\n}\n\n.elm-book-dark-mode .elm-book-md table,\n.elm-book-dark-mode .elm-book-md tr,\n.elm-book-dark-mode .elm-book-md th,\n.elm-book-dark-mode .elm-book-md td {\n    border-color: #3b3f47;\n}\n\n.elm-book-md__code,\n.elm-book-md__code code,\n.elm-book-dark-mode .elm-book-md__code,\n.elm-book-dark-mode .elm-book-md__code code {\n    font-size: 18px;\n    line-height: 22px;\n    padding: 20px 24px;\n    background-color: #2a354d;\n    border-radius: 6px;\n    border: none;\n    overflow: auto;\n}\n.elm-book-md__code-default {}\n\n' + ($dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + ' {\n    .elm-book-md__code,\n    .elm-book-md__code code,\n    .elm-book-dark-mode .elm-book-md__code,\n    .elm-book-dark-mode .elm-book-md__code code {\n        font-size: 16px;\n    }\n}\n\n.elm-book-md pre.elmsh {\n    padding: 0;\n    margin: 0;\n}\n\n.elm-book-md code.elmsh {\n    padding: 0;\n}\n\n.elm-book-md .elmsh {\n    color: #f8f8f2;\n}\n.elm-book-md .elmsh-hl {\n    background: #343434;\n}\n.elm-book-md .elmsh-add {\n    background: #003800;\n}\n.elm-book-md .elmsh-del {\n    background: #380000;\n}\n.elm-book-md .elmsh-comm {\n    color: #a4a39c;\n}\n.elm-book-md .elmsh1 {\n    color: #46f0ff;\n}\n.elm-book-md .elmsh2 {\n    color: #a5fb98;\n}\n.elm-book-md .elmsh3 {\n    color: #ff8f00;\n}\n.elm-book-md .elmsh4 {\n    color: #46f0ff;\n}\n.elm-book-md .elmsh5 {\n    color: #46f0ff;\n}\n.elm-book-md .elmsh6 {\n    color: #46f0ff;\n}\n.elm-book-md .elmsh7 {\n    color: #46f0ff;\n}\n.elm-book-md .elmsh-elm-ts, .elm-book-md .elmsh-js-dk, .elm-book-md .elmsh-css-p {\n    font-style: italic;\n    color: #46f0ff;\n}\n.elm-book-md .elmsh-js-ce {\n    font-style: italic;\n    color: #46f0ff;\n}\n.elm-book-md .elmsh-css-ar-i {\n    font-weight: bold;\n    color: #46f0ff;\n}\n'))))))));
36667var $dtwrks$elm_book$ElmBook$UI$Nav$styles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-nav-empty {\n    padding: 12px 20px;\n    font-size: 14px;\n}\n\n.elm-book-nav-list-wrapper {\n    padding-bottom: 16px;\n}\n\n.elm-book-nav-list-title {\n    padding: 12px 20px 8px;\n    font-weight: bold;\n    font-size: 12px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.elm-book-nav-list {\n    list-style-type: none;\n}\n\n.elm-book-nav-item {\n    position: relative;\n    display: flex;\n    font-size: 14px;\n    letter-spacing: 1px;\n    text-decoration: none;\n}\n.elm-book-nav-item:focus {\n    outline: none;\n}\n\n.elm-book-nav-item-content {\n    position: relative;\n    z-index: 1;\n    padding: 8px 20px;\n}\n\n.elm-book-nav-item-bg {\n    opacity: 0;\n}\n.elm-book-nav-item.pre-selected .elm-book-nav-item-bg {\n    opacity: 0.1;\n}\n.elm-book-nav-item.active .elm-book-nav-item-bg {\n    opacity: 0.2;\n}\n.elm-book-nav-item.active.pre-selected .elm-book-nav-item-bg {\n    opacity: 0.25;\n}\n.elm-book-nav-item:hover .elm-book-nav-item-bg {\n    opacity: 0.15;\n}\n.elm-book-nav-item:active .elm-book-nav-item-bg {\n    opacity: 0.1;\n}\n.elm-book-nav-item.active:hover .elm-book-nav-item-bg {\n    opacity: 0.25;\n}\n.elm-book-nav-item.active:active .elm-book-nav-item-bg {\n    opacity: 0.2;\n}\n');
36668var $dtwrks$elm_book$ElmBook$UI$Search$styles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-search-wrapper {\n    position: relative;\n    width: 100%;\n}\n\n#elm-book-search {\n    position: relative;\n    z-index: 1;\n    width: 100%;\n    padding: 10px 12px;\n    border: 0;\n    border-radius: 4px;\n    background: none;\n    font-size: 14px;\n    color: ' + ($dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent + (';\n    transition: 0.2s;\n}\n#elm-book-search:focus {\n    outline: none;\n}\n#elm-book-search::placeholder {\n    border-radius: 4px;\n    color: ' + ($dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccent + (';\n    opacity: 0.7;\n}\n\n.elm-book-search-bg {\n    opacity: 0.2;\n    border-radius: 4px;\n    background-color: ' + ($dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackgroun
36668d + (';\n}\n.elm-book-search-border {\n    opacity: 0.5;\n    border-radius: 4px;\n    border: 0px solid ' + ($dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent + ';\n    transition: 0.2s;\n}\n\n.elm-book-search-wrapper:hover .elm-book-search-bg {\n    opacity: 0.25;\n}\n.elm-book-search-wrapper:hover .elm-book-search-border {\n    border-width: 3px;\n}\n.elm-book-search-wrapper:focus-within .elm-book-search-border {\n    opacity: 1;\n    border-width: 3px;\n}\n'))))))));
36669var $dtwrks$elm_book$ElmBook$UI$Wrapper$modalZ = '99999';
36670var $dtwrks$elm_book$ElmBook$UI$Wrapper$sidebarSize = '300px';
36671var $dtwrks$elm_book$ElmBook$UI$Wrapper$styles = $dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book--wrapper--globals {\n    display: none;\n}\n\n.elm-book--wrapper {\n    display: flex;\n    align-items: stretch;\n    background: ' + ($dtwrks$elm_book$ElmBook$UI$Helpers$themeBackground + (';\n}\n' + ($dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n    .elm-book--wrapper {\n        flex-direction: column;\n    }\n}\n\n.elm-book--wrapper--sidebar {\n    display: flex;\n    flex-direction: column;\n    width: ' + ($dtwrks$elm_book$ElmBook$UI$Wrapper$sidebarSize + (';\n}\n' + ($dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n    .elm-book--wrapper--sidebar {\n        width: 100%;\n    }\n    .elm-book--wrapper.is-open .elm-book--wrapper--sidebar {\n        flex-grow: 1;\n    }\n}\n\n.elm-book--wrapper--header {\n    padding: 8px 8px 4px;\n}\n\n.elm-book--wrapper--menu {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n}\n' + ($dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n    .elm-book--wrapper--menu {\n        display: none;\n    }\n    .elm-book--wrapper.is-open .elm-book--wrapper--menu {\n        display: flex;\n    }\n}\n\n.elm-book--wrapper--menu--header {\n    padding: 8px;\n}\n\n.elm-book--wrapper--menu--separator {\n    display: block;\n    margin: 0;\n    padding: 0;\n    opacity: 0.2;\n    border-top: none;\n    border-bottom: 1px solid ' + ($dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackground + (';\n}\n\n.elm-book--wrapper--menu--main-wrapper {\n    position: relative;\n    flex-grow: 1;\n}\n\n.elm-book--wrapper--menu--main {\n    overflow: auto;\n    padding: 8px 0;\n}\n\n.elm-book--wrapper--menu--footer {\n    padding: 8px;\n}\n\n.elm-book--wrapper--main {\n    flex-grow: 1;\n    display: flex;\n    flex-direction: column;\n    padding: 8px 8px 0 0;\n}\n' + ($dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n    .elm-book--wrapper--main {\n        display: flex;\n        padding-left: 8px;\n    }\n    .elm-book--wrapper.is-open .elm-book--wrapper--main {\n        display: none;\n    }\n}\n\n.elm-book--wrapper--main--wrapper {\n    flex-grow: 1;\n    display: flex;\n    flex-direction: column;\n    background-color: #fbfbfd;\n    border-radius: 4px 4px 0 0;\n    overflow: hidden;\n}\n.elm-book-dark-mode .elm-book--wrapper--main--wrapper {\n    background-color: #20232a;\n}\n\n.elm-book--wrapper--main--header {\n    border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n}\n.elm-book-dark-mode .elm-book--wrapper--main--header {\n    border-bottom-color: rgba(255, 255, 255, 0.15);\n}\n\n.elm-book--wrapper--main--content {\n    position: relative;\n    flex-grow: 1;\n}\n\n.elm-book--wrapper--main--inner {\n    overflow: auto;\n}\n\n.elm-book--wrapper--main--footer {\n    border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n.elm-book-dark-mode .elm-book--wrapper--main--footer {\n    border-top-color: rgba(255, 255, 255, 0.15);\n}\n\n.elm-book--wrapper--modal {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    z-index: ' + ($dtwrks$elm_book$ElmBook$UI$Wrapper$modalZ + ';\n}\n\n.elm-book--wrapper--modal--bg {\n    z-index: 0;\n    cursor: pointer;\n    background-color: rgba(0, 0, 0, 0.3);\n    transition: background-color 300ms;\n}\n.elm-book--wrapper--modal--bg:hover {\n    background-color: rgba(0, 0, 0, 0.2);\n}\n\n.elm-book--wrapper--modal--content {\n    position: relative;\n    z-index: 1;\n    margin: 40px;\n    width: 640px;\n    max-width: 100%;\n    max-height: calc 100% - 120px;\n    overflow-y: auto;\n    background-color: #fff;\n    border-radius: 8px;\n}\n.elm-book-dark-mode .elm-book--wrapper--modal--content {\n    background-color: #20232a;\n}\n'))))))))))))))));
36672var $dtwrks$elm_book$ElmBook$UI$Styles$view = A2(
36673	$elm$html$Html$div,
36674	_List_Nil,
36675	_List_fromArray(
36676		[$dtwrks$elm_book$ElmBook$UI$Helpers$baseStyles, $dtwrks$elm_book$ElmBook$UI$ActionLog$styles, $dtwrks$elm_book$ElmBook$UI$Chapter$styles, $dtwrks$elm_book$ElmBook$UI$ChapterComponent$styles, $dtwrks$elm_book$ElmBook$UI$ChapterHeader$styles, $dtwrks$elm_book$ElmBook$UI$Footer$styles, $dtwrks$elm_book$ElmBook$UI$Header$styles, $dtwrks$elm_book$ElmBook$UI$Markdown$styles, $dtwrks$elm_book$ElmBook$UI$Nav$styles, $dtwrks$elm_book$ElmBook$UI$Search$styles, $dtwrks$elm_book$ElmBook$UI$Wrapper$styles]));
36677var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$accent = function (theme) {
36678	return theme.e9;
36679};
36680var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$background = function (theme) {
36681	return theme.bF;
36682};
36683var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navAccent = function (theme) {
36684	return theme.f_;
36685};
36686var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navAccentHighlight = function (theme) {
36687	return theme.f$;
36688};
36689var $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navBackground = function (theme) {
36690	return theme.f0;
36691};
36692var $dtwrks$elm_book$ElmBook$UI$Helpers$setTheme = function (theme) {
36693	return A2(
36694		$elm$html$Html$Attributes$attribute,
36695		'style',
36696		$elm$core$String$concat(
36697			A2(
36698				$elm$core$List$map,
36699				function (_v0) {
36700					var k = _v0.a;
36701					var v = _v0.b;
36702					return k + (':' + (v + ';'));
36703				},
36704				_List_fromArray(
36705					[
36706						_Utils_Tuple2(
36707						$dtwrks$elm_book$ElmBook$UI$Helpers$themeBackgroundVar,
36708						$dtwrks$elm_book$ElmBook$Internal$ThemeOptions$background(theme)),
36709						_Utils_Tuple2(
36710						$dtwrks$elm_book$ElmBook$UI$Helpers$themeAccentVar,
36711						$dtwrks$elm_book$ElmBook$Internal$ThemeOptions$accent(theme)),
36712						_Utils_Tuple2(
36713						$dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackgroundVar,
36714						$dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navBackground(theme)),
36715						_Utils_Tuple2(
36716						$dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentVar,
36717						$dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navAccent(theme)),
36718						_Utils_Tuple2(
36719						$dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentHighlightVar,
36720						$dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navAccentHighlight(theme))
36721					]))));
36722};
36723var $dtwrks$elm_book$ElmBook$UI$Wrapper$view = function (props) {
36724	return A2(
36725		$elm$html$Html$div,
36726		_List_fromArray(
36727			[
36728				$dtwrks$elm_book$ElmBook$UI$Helpers$setTheme(props.dQ),
36729				props.az ? $elm$html$Html$Attributes$class('elm-book-dark-mode') : $elm$html$Html$Attributes$class('')
36730			]),
36731		_List_fromArray(
36732			[
36733				A2(
36734				$elm$html$Html$div,
36735				_List_fromArray(
36736					[
36737						$elm$html$Html$Attributes$class('elm-book--wrapper--globals')
36738					]),
36739				props.ee),
36740				A2(
36741				$elm$html$Html$div,
36742				_List_fromArray(
36743					[
36744						$elm$html$Html$Attributes$classList(
36745						_List_fromArray(
36746							[
36747								_Utils_Tuple2('elm-book--wrapper elm-book-inset', true),
36748								_Utils_Tuple2('is-open', props.M)
36749							]))
36750					]),
36751				_List_fromArray(
36752					[
36753						A2(
36754						$elm$html$Html$div,
36755						_List_fromArray(
36756							[
36757								$elm$html$Html$Attributes$class('elm-book--wrapper--sidebar')
36758							]),
36759						_List_fromArray(
36760							[
36761								A2(
36762								$elm$html$Html$div,
36763								_List_fromArray(
36764									[
36765										$elm$html$Html$Attributes$class('elm-book--wrapper--header')
36766									]),
36767								_List_fromArray(
36768									[props.fz])),
36769								A2(
36770								$elm$html$Html$div,
36771								_List_fromArray(
36772									[
36773										$elm$html$Html$Attributes$class('elm-book--wrapper--menu')
36774									]),
36775								_List_fromArray(
36776									[
36777										A2(
36778										$elm$html$Html$div,
36779										_List_fromArray(
36780											[
36781												$elm$html$Html$Attributes$class('elm-book--wrapper--menu--header')
36782											]),
36783										_List_fromArray(
36784											[props.fV])),
36785										A2(
36786										$elm$html$Html$hr,
36787										_List_fromArray(
36788											[
36789												$elm$html$Html$Attributes$class('elm-book--wrapper--menu--separator')
36790											]),
36791										_List_Nil),
36792										A2(
36793										$elm$html$Html$div,
36794										_List_fromArray(
36795											[
36796												$elm$html$Html$Attributes$class('elm-book--wrapper--menu--main-wrapper')
36797											]),
36798										_List_fromArray(
36799											[
36800												A2(
36801												$elm$html$Html$div,
36802												_List_fromArray(
36803													[
36804														$elm$html$Html$Attributes$class('elm-book--wrapper--menu--main elm-book-inset')
36805													]),
36806												_List_fromArray(
36807													[props.fT]))
36808											])),
36809										A2(
36810										$elm$html$Html$hr,
36811										_List_fromArray(
36812											[
36813												$elm$html$Html$Attributes$class('elm-book--wrapper--menu--separator')
36814											]),
36815										_List_Nil),
36816										A2(
36817										$elm$html$Html$div,
36818										_List_fromArray(
36819											[
36820												$elm$html$Html$Attributes$class('elm-book--wrapper--menu--footer')
36821											]),
36822										_List_fromArray(
36823											[props.fU]))
36824									]))
36825							])),
36826						A2(
36827						$elm$html$Html$div,
36828						_List_fromArray(
36829							[
36830								$elm$html$Html$Attributes$class('elm-book--wrapper--main')
36831							]),
36832						_List_fromArray(
36833							[
36834								A2(
36835								$elm$html$Html$div,
36836								_List_fromArray(
36837									[
36838										$elm$html$Html$Attributes$class('elm-book--wrapper--main--wrapper')
36839									]),
36840								_List_fromArray(
36841									[
36842										function () {
36843										var _v0 = props.fO;
36844										if (!_v0.$) {
36845											var mainHeader = _v0.a;
36846											return A2(
36847												$elm$html$Html$div,
36848												_List_fromArray(
36849													[
36850														$elm$html$Html$Attributes$class('elm-book--wrapper--main--header elm-book-sans')
36851													]),
36852												_List_fromArray(
36853													[mainHeader]));
36854										} else {
36855											return $elm$html$Html$text('');
36856										}
36857									}(),
36858										A2(
36859										$elm$html$Html$div,
36860										_List_fromArray(
36861											[
36862												$elm$html$Html$Attributes$class('elm-book--wrapper--main--content')
36863											]),
36864										_List_fromArray(
36865											[
36866												A2(
36867												$elm$html$Html$div,
36868												_List_fromArray(
36869													[
36870														$elm$html$Html$Attributes$id('elm-book-main'),
36871														$elm$html$Html$Attributes$class('elm-book--wrapper--main--inner elm-book-inset')
36872													]),
36873												_List_fromArray(
36874													[props.eA]))
36875											])),
36876										A2(
36877										$elm$html$Html$div,
36878										_List_fromArray(
36879											[
36880												$elm$html$Html$Attributes$class('elm-book--wrapper--main--footer')
36881											]),
36882										_List_fromArray(
36883											[props.fN]))
36884									]))
36885							]))
36886					])),
36887				function () {
36888				var _v1 = props.fY;
36889				if (!_v1.$) {
36890					var html = _v1.a;
36891					return A2(
36892						$elm$html$Html$div,
36893						_List_fromArray(
36894							[
36895								$elm$html$Html$Attributes$class('elm-book-inset elm-book-fade-in elm-book--wrapper--modal')
36896							]),
36897						_List_fromArray(
36898							[
36899								A2(
36900								$elm$html$Html$div,
36901								_List_fromArray(
36902									[
36903										$elm$html$Html$Events$onClick(props.f4),
36904										$elm$html$Html$Attributes$class('elm-book-inset elm-book--wrapper--modal--bg')
36905									]),
36906								_List_Nil),
36907								A2(
36908								$elm$html$Html$div,
36909								_List_fromArray(
36910									[
36911										$elm$html$Html$Attributes$class('elm-book--wrapper--modal--content elm-book-shadows')
36912									]),
36913								_List_fromArray(
36914									[html]))
36915							]));
36916				} else {
36917					return $elm$html$Html$text('');
36918				}
36919			}()
36920			]));
36921};
36922var $dtwrks$elm_book$ElmBook$Internal$Application$view = F2(
36923	function (config, model) {
36924		var theme = A2($dtwrks$elm_book$ElmBook$Internal$ThemeOptions$applyOverrides, config.dR, model.bx);
36925		var hashBasedNavigation = $dtwrks$elm_book$ElmBook$Internal$ThemeOptions$hashBasedNavigation(config.dR);
36926		var activeChapter = A2($dtwrks$elm_book$ElmBook$Internal$Book$chapterFromUrl, config, model.gy);
36927		return {
36928			fe: _List_fromArray(
36929				[
36930					$dtwrks$elm_book$ElmBook$UI$Styles$view,
36931					$dtwrks$elm_book$ElmBook$UI$Wrapper$view(
36932					{
36933						az: model.az,
36934						ee: A2(
36935							$elm$core$List$map,
36936							config.e0,
36937							A2($elm$core$Maybe$withDefault, _List_Nil, config.dR.ee)),
36938						fz: $dtwrks$elm_book$ElmBook$UI$Header$view(
36939							{ei: '/', M: model.M, f2: $dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing, f3: $dtwrks$elm_book$ElmBook$Internal$Msg$ToggleMenu, dQ: config.dR, gt: config.gt, e0: config.e0}),
36940						M: model.M,
36941						eA: A2(
36942							$elm$core$Maybe$withDefault,
36943							$elm$html$Html$text(''),
36944							A2(
36945								$elm$core$Maybe$map,
36946								function (_v0) {
36947									var activeChapter_ = _v0;
36948									return $dtwrks$elm_book$ElmBook$UI$Chapter$view(
36949										{
36950											fe: activeChapter_.fe,
36951											d4: A2($dtwrks$elm_book$ElmBook$Internal$Chapter$toValidOptions, config.d4, activeChapter_.d4),
36952											d6: A2($dtwrks$elm_book$ElmBook$Internal$ComponentOptions$toValidOptions, config.d6, activeChapter_.d6),
36953											fj: A2(
36954												$elm$core$List$map,
36955												function (component) {
36956													return _Utils_Tuple2(
36957														component.aK,
36958														A3($dtwrks$elm_book$ElmBook$Internal$Application$componentView, config.e0, model.R, component.cP));
36959												},
36960												activeChapter_.m),
36961											gt: activeChapter_.gt
36962										});
36963								},
36964								activeChapter)),
36965						fN: A2(
36966							$elm$core$Maybe$withDefault,
36967							$dtwrks$elm_book$ElmBook$UI$ActionLog$previewEmpty,
36968							A2(
36969								$elm$core$Maybe$map,
36970								function (lastAction) {
36971									return $dtwrks$elm_book$ElmBook$UI$ActionLog$preview(
36972										{
36973											fL: lastAction,
36974											fM: $elm$core$List$length(model.Y) - 1,
36975											s: $dtwrks$elm_book$ElmBook$Internal$Msg$ActionLogShow
36976										});
36977								},
36978								$elm$core$List$head(model.Y))),
36979						fO: A2(
36980							$elm$core$Maybe$map,
36981							function (chapter) {
36982								return $dtwrks$elm_book$ElmBook$UI$ChapterHeader$view(
36983									{
36984										f5: $dtwrks$elm_book$ElmBook$Internal$Msg$ToggleDarkMode,
36985										gt: $dtwrks$elm_book$ElmBook$Internal$Chapter$chapterBreadcrumb(chapter)
36986									});
36987							},
36988							activeChapter),
36989						fT: function () {
36990							var chaptersList = A2($dtwrks$elm_book$ElmBook$Internal$Application$searchChapters, model.aT, config.aw);
36991							var chaptersListSlugs = A2(
36992								$elm$core$List$map,
36993								$dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl(hashBasedNavigation),
36994								$elm$core$Array$toList(chaptersList));
36995							return $dtwrks$elm_book$ElmBook$UI$Nav$view(
36996								{
36997									cS: A2(
36998										$elm$core$Maybe$map,
36999										$dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl(hashBasedNavigation),
37000										activeChapter),
37001									fJ: A2(
37002										$elm$core$List$map,
37003										$elm$core$Tuple$mapSecond(
37004											A2(
37005												$elm$core$Basics$composeR,
37006												$elm$core$List$map(
37007													function (index) {
37008														return A2($elm$core$Array$get, index, config.aw);
37009													}),
37010												A2(
37011													$elm$core$Basics$composeR,
37012													$elm$core$List$filterMap($elm$core$Basics$identity),
37013													A2(
37014														$elm$core$Basics$composeR,
37015														$elm$core$List$map(
37016															function (chapter) {
37017																var title = chapter.gt;
37018																var internal = chapter.er;
37019																return _Utils_Tuple3(
37020																	A2($dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl, hashBasedNavigation, chapter),
37021																	title,
37022																	internal);
37023															}),
37024														$elm$core$List$filter(
37025															function (_v1) {
37026																var slug = _v1.a;
37027																return A2($elm$core$List$member, slug, chaptersListSlugs);
37028															}))))),
37029										config.fi),
37030									gc: (model.bc && ($elm$core$Array$length(chaptersList) > 0)) ? A2(
37031										$elm$core$Maybe$map,
37032										$dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl(hashBasedNavigation),
37033										A2(
37034											$elm$core$Array$get,
37035											A2(
37036												$elm$core$Basics$modBy,
37037												$elm$core$Array$length(chaptersList),
37038												model.J),
37039											chaptersList)) : $elm$core$Maybe$Nothing
37040								});
37041						}(),
37042						fU: $dtwrks$elm_book$ElmBook$UI$Footer$view,
37043						fV: $dtwrks$elm_book$ElmBook$UI$Search$view(
37044							{cg: $dtwrks$elm_book$ElmBook$Internal$Msg$SearchBlur, cj: $dtwrks$elm_book$ElmBook$Internal$Msg$SearchFocus, cm: $dtwrks$elm_book$ElmBook$Internal$Msg$Search, cN: model.aT}),
37045						fY: model.a$ ? $elm$core$Maybe$Just(
37046							$dtwrks$elm_book$ElmBook$UI$ActionLog$list(model.Y)) : $elm$core$Maybe$Nothing,
37047						f4: $dtwrks$elm_book$ElmBook$Internal$Msg$ActionLogHide,
37048						dQ: theme
37049					})
37050				]),
37051			gt: function () {
37052				var mainTitle = A2(
37053					$elm$core$Maybe$withDefault,
37054					config.gt,
37055					A2(
37056						$elm$core$Maybe$map,
37057						function (s) {
37058							return config.gt + (' | ' + s);
37059						},
37060						$dtwrks$elm_book$ElmBook$Internal$ThemeOptions$subtitle(config.dR)));
37061				if (!activeChapter.$) {
37062					var title = activeChapter.a.gt;
37063					return title + (' - ' + mainTitle);
37064				} else {
37065					return mainTitle;
37066				}
37067			}()
37068		};
37069	});
37070var $dtwrks$elm_book$ElmBook$Internal$Application$withActionLogReset = function (previousModel) {
37071	return $elm$core$Tuple$mapFirst(
37072		function (model) {
37073			return (!_Utils_eq(model.gy, previousModel.gy)) ? _Utils_update(
37074				model,
37075				{Y: _List_Nil}) : model;
37076		});
37077};
37078var $dtwrks$elm_book$ElmBook$Internal$Application$application = F2(
37079	function (chapterGroups, bookBuilder) {
37080		var config = A2($dtwrks$elm_book$ElmBook$Internal$Book$configFromBuilder, chapterGroups, bookBuilder);
37081		return $elm$browser$Browser$application(
37082			{
37083				di: $dtwrks$elm_book$ElmBook$Internal$Application$init(config),
37084				f6: $dtwrks$elm_book$ElmBook$Internal$Msg$OnUrlChange,
37085				f7: $dtwrks$elm_book$ElmBook$Internal$Msg$OnUrlRequest,
37086				e_: function (_v0) {
37087					return $elm$core$Platform$Sub$batch(
37088						_List_fromArray(
37089							[
37090								$elm$browser$Browser$Events$onKeyDown($dtwrks$elm_book$ElmBook$Internal$Application$keyDownDecoder),
37091								$elm$browser$Browser$Events$onKeyUp($dtwrks$elm_book$ElmBook$Internal$Application$keyUpDecoder),
37092								$elm$core$Platform$Sub$batch(config.eW.e_)
37093							]));
37094				},
37095				gx: F2(
37096					function (msg, model) {
37097						return A2(
37098							$dtwrks$elm_book$ElmBook$Internal$Application$withActionLogReset,
37099							model,
37100							A3($dtwrks$elm_book$ElmBook$Internal$Application$update, config, msg, model));
37101					}),
37102				cP: $dtwrks$elm_book$ElmBook$Internal$Application$view(config)
37103			});
37104	});
37105var $dtwrks$elm_book$ElmBook$Internal$Chapter$chapterWithGroup = F3(
37106	function (routePrefix, group, _v0) {
37107		var chapter = _v0;
37108		var groupPrefix = (group === '') ? '' : ('/' + $dtwrks$elm_book$ElmBook$Internal$Helpers$toSlug(group));
37109		return (!chapter.er) ? chapter : _Utils_update(
37110			chapter,
37111			{
37112				ef: $elm$core$Maybe$Just(group),
37113				gy: _Utils_ap(
37114					routePrefix,
37115					_Utils_ap(groupPrefix, chapter.gy))
37116			});
37117	});
37118var $dtwrks$elm_book$ElmBook$withChapterGroups = F2(
37119	function (chapterGroups_, _v0) {
37120		var config = _v0;
37121		return A2(
37122			$dtwrks$elm_book$ElmBook$Internal$Application$application,
37123			A2(
37124				$elm$core$List$map,
37125				function (_v1) {
37126					var group = _v1.a;
37127					var chapters = _v1.b;
37128					return _Utils_Tuple2(
37129						group,
37130						A2(
37131							$elm$core$List$map,
37132							A2($dtwrks$elm_book$ElmBook$Internal$Chapter$chapterWithGroup, config.dR.gl, group),
37133							chapters));
37134				},
37135				chapterGroups_),
37136			config);
37137	});
37138var $dtwrks$elm_book$ElmBook$withStatefulOptions = F2(
37139	function (attributes, _v0) {
37140		var config = _v0;
37141		return _Utils_update(
37142			config,
37143			{
37144				eW: A2($dtwrks$elm_book$ElmBook$Internal$Helpers$applyAttributes, attributes, config.eW)
37145			});
37146	});
37147var $dtwrks$elm_book$ElmBook$withThemeOptions = F2(
37148	function (themeAttributes, _v0) {
37149		var config = _v0;
37150		return _Utils_update(
37151			config,
37152			{
37153				dR: A2($dtwrks$elm_book$ElmBook$Internal$Helpers$applyAttributes, themeAttributes, config.dR)
37154			});
37155	});
37156var $author$project$Main$main = A2(
37157	$dtwrks$elm_book$ElmBook$withChapterGroups,
37158	_List_fromArray(
37159		[
37160			_Utils_Tuple2(
37161			'',
37162			_List_fromArray(
37163				[
37164					$author$project$Chapters$Overview$chapter_,
37165					$dtwrks$elm_book$ElmBook$Chapter$chapterLink(
37166					{gt: 'Package Docs', gy: 'https://package.elm-lang.org/packages/uncover-co/elm-widgets/latest/'})
37167				])),
37168			_Utils_Tuple2(
37169			'Basics',
37170			_List_fromArray(
37171				[$author$project$Chapters$Theme$chapter_, $author$project$Chapters$Core$Heading$chapter_])),
37172			_Utils_Tuple2(
37173			'Buttons',
37174			_List_fromArray(
37175				[$author$project$Chapters$Core$Buttons$chapter_, $author$project$Chapters$Core$ButtonGroup$chapter_])),
37176			_Utils_Tuple2(
37177			'Layout & Navigation',
37178			_List_fromArray(
37179				[$author$project$Chapters$Core$Container$chapter_, $author$project$Chapters$Core$Divider$chapter_, $author$project$Chapters$Information$Menu$chapter_, $author$project$Chapters$Layout$Modal$chapter_, $author$project$Chapters$Information$Pagination$chapter_, $author$project$Chapters$Information$Table$chapter_])),
37180			_Utils_Tuple2(
37181			'Information',
37182			_List_fromArray(
37183				[$author$project$Chapters$Information$Badge$chapter_, $author$project$Chapters$Information$DataRow$chapter_, $author$project$Chapters$Core$Loading$chapter_, $author$project$Chapters$Information$Message$chapter_, $author$project$Chapters$Information$Notification$chapter_, $author$project$Chapters$Information$Popover$chapter_, $author$project$W$Docs$Skeleton$docs, $author$project$Chapters$Information$Tag$chapter_, $author$project$Chapters$Information$Tooltip$chapter_])),
37184			_Utils_Tuple2(
37185			'Inputs',
37186			_List_fromArray(
37187				[$author$project$Chapters$Form$Field$chapter_, $author$project$Chapters$Form$InputText$chapter_, $author$project$Chapters$Form$InputTextArea$chapter_, $author$project$Chapters$Form$InputAutocomplete$chapter_, $author$project$Chapters$Form$InputSelect$chapter_, $author$project$Chapters$Form$InputInt$chapter_, $author$project$Chapters$Form$InputFloat$chapter_, $author$project$Chapters$Form$InputColor$chapter_, $author$project$W$Docs$InputCode$docs, $author$project$Chapters$Form$InputDate$chapter_, $author$project$Chapters$Form$InputTime$chapter_, $author$project$Chapters$Form$InputCheckbox$chapter_, $author$project$Chapters$Form$InputRadio$chapter_, $author$project$Chapters$Form$InputSlider$chapter_]))
37188		]),
37189	A2(
37190		$dtwrks$elm_book$ElmBook$withThemeOptions,
37191		_List_fromArray(
37192			[
37193				$dtwrks$elm_book$ElmBook$ThemeOptions$subtitle('Stateless & Tasteful'),
37194				A2($dtwrks$elm_book$ElmBook$ThemeOptions$backgroundGradient, '#0087cf', $uncover_co$elm_theme$Theme$primaryBackground),
37195				$dtwrks$elm_book$ElmBook$ThemeOptions$globals(
37196				_List_fromArray(
37197					[
37198						$uncover_co$elm_theme$Theme$globalProviderWithDarkMode(
37199						{
37200							d7: $uncover_co$elm_theme$Theme$darkTheme,
37201							ey: $uncover_co$elm_theme$Theme$lightTheme,
37202							eX: $uncover_co$elm_theme$Theme$classStrategy('elm-book-dark-mode')
37203						}),
37204						$author$project$W$Styles$globalStyles,
37205						A3(
37206						$elm$html$Html$node,
37207						'style',
37208						_List_Nil,
37209						_List_fromArray(
37210							[
37211								$elm$html$Html$text('@import url(\'https://fonts.googleapis.com/css2?family=Leckerli+One&family=Patrick+Hand&family=Press+Start+2P&family=Raleway&display=swap\')')
37212							]))
37213					]))
37214			]),
37215		A2(
37216			$dtwrks$elm_book$ElmBook$withStatefulOptions,
37217			_List_fromArray(
37218				[
37219					$dtwrks$elm_book$ElmBook$StatefulOptions$initialState(
37220					{cU: $author$project$Chapters$Form$InputAutocomplete$init, eo: $author$project$W$Docs$InputCode$init, aF: $author$project$Chapters$Form$InputFloat$init, ep: $author$project$Chapters$Form$InputInt$init, aG: $author$project$Chapters$Form$InputText$init, b4: $author$project$Chapters$Form$InputTextArea$init, aP: $author$project$Chapters$Overview$init, dx: $author$project$Chapters$Information$Popover$init, aR: $author$project$Chapters$Form$InputSlider$init, dQ: $author$project$Chapters$Theme$init})
37221				]),
37222			$dtwrks$elm_book$ElmBook$book('elm-widgets'))));
37223_Platform_export({'Main':{'init':$author$project$Main$main(
37224	$elm$json$Json$Decode$succeed(0))(0)}});}(this));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.