@@ -1,9689 +0,0 @@
4−function F(arity, fun, wrapper) {
11− return F(2, fun, function(a) { return function(b) { return fun(a,b); }; })
14− return F(3, fun, function(a) {
15− return function(b) { return function(c) { return fun(a, b, c); }; };
19− return F(4, fun, function(a) { return function(b) { return function(c) {
20− return function(d) { return fun(a, b, c, d); }; }; };
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); }; }; }; };
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); }; }; }; }; };
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); }; }; }; }; }; };
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); }; }; }; }; }; }; };
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); }; }; }; }; }; }; }; };
55−function A2(fun, a, b) {
56− return fun.a === 2 ? fun.f(a, b) : fun(a)(b);
58−function A3(fun, a, b, c) {
59− return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c);
61−function A4(fun, a, b, c, d) {
62− return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d);
64−function 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);
67−function 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);
70−function 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);
73−function 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);
76−function 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);
80−console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.1/optimize for better performance and smaller assets.');
83−var _JsArray_empty = [];
85−function _JsArray_singleton(value)
90−function _JsArray_length(array)
95−var _JsArray_initialize = F3(function(size, offset, func)
97− var result = new Array(size);
99− for (var i = 0; i < size; i++)
101− result[i] = func(offset + i);
107−var _JsArray_initializeFromList = F2(function (max, ls)
109− var result = new Array(max);
111− for (var i = 0; i < max && ls.b; i++)
118− return _Utils_Tuple2(result, ls);
121−var _JsArray_unsafeGet = F2(function(index, array)
123− return array[index];
126−var _JsArray_unsafeSet = F3(function(index, value, array)
128− var length = array.length;
129− var result = new Array(length);
131− for (var i = 0; i < length; i++)
133− result[i] = array[i];
136− result[index] = value;
140−var _JsArray_push = F2(function(value, array)
142− var length = array.length;
143− var result = new Array(length + 1);
145− for (var i = 0; i < length; i++)
147− result[i] = array[i];
150− result[length] = value;
154−var _JsArray_foldl = F3(function(func, acc, array)
156− var length = array.length;
158− for (var i = 0; i < length; i++)
160− acc = A2(func, array[i], acc);
166−var _JsArray_foldr = F3(function(func, acc, array)
168− for (var i = array.length - 1; i >= 0; i--)
170− acc = A2(func, array[i], acc);
176−var _JsArray_map = F2(function(func, array)
178− var length = array.length;
179− var result = new Array(length);
181− for (var i = 0; i < length; i++)
183− result[i] = func(array[i]);
189−var _JsArray_indexedMap = F3(function(func, offset, array)
191− var length = array.length;
192− var result = new Array(length);
194− for (var i = 0; i < length; i++)
196− result[i] = A2(func, offset + i, array[i]);
202−var _JsArray_slice = F3(function(from, to, array)
204− return array.slice(from, to);
207−var _JsArray_appendN = F3(function(n, dest, source)
209− var destLen = dest.length;
210− var itemsToCopy = n - destLen;
212− if (itemsToCopy > source.length)
214− itemsToCopy = source.length;
217− var size = destLen + itemsToCopy;
218− var result = new Array(size);
220− for (var i = 0; i < destLen; i++)
222− result[i] = dest[i];
225− for (var i = 0; i < itemsToCopy; i++)
227− result[i + destLen] = source[i];
238−var _Debug_log = F2(function(tag, value)
240− console.log(tag + ': ' + _Debug_toString(value));
247−function _Debug_todo(moduleName, region)
249− return function(message) {
250− _Debug_crash(8, moduleName, region, message);
254−function _Debug_todoCase(moduleName, region, value)
256− return function(message) {
257− _Debug_crash(9, moduleName, region, value, message);
265−function _Debug_toString(value)
267− return _Debug_toAnsiString(false, value);
270−function _Debug_toAnsiString(ansi, value)
272− if (typeof value === 'function')
274− return _Debug_internalColor(ansi, '<function>');
277− if (typeof value === 'boolean')
279− return _Debug_ctorColor(ansi, value ? 'True' : 'False');
282− if (typeof value === 'number')
284− return _Debug_numberColor(ansi, value + '');
287− if (value instanceof String)
289− return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'");
292− if (typeof value === 'string')
294− return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"');
297− if (typeof value === 'object' && '$' in value)
301− if (typeof tag === 'number')
303− return _Debug_internalColor(ansi, '<internals>');
309− for (var k in value)
311− if (k === '$') continue;
312− output.push(_Debug_toAnsiString(ansi, value[k]));
314− return '(' + output.join(',') + ')';
317− if (tag === 'Set_elm_builtin')
319− return _Debug_ctorColor(ansi, 'Set')
320− + _Debug_fadeColor(ansi, '.fromList') + ' '
321− + _Debug_toAnsiString(ansi, $elm$core$Set$toList(value));
324− if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')
326− return _Debug_ctorColor(ansi, 'Dict')
327− + _Debug_fadeColor(ansi, '.fromList') + ' '
328− + _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value));
331− if (tag === 'Array_elm_builtin')
333− return _Debug_ctorColor(ansi, 'Array')
334− + _Debug_fadeColor(ansi, '.fromList') + ' '
335− + _Debug_toAnsiString(ansi, $elm$core$Array$toList(value));
338− if (tag === '::' || tag === '[]')
342− value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)
344− for (; value.b; value = value.b) // WHILE_CONS
346− output += ',' + _Debug_toAnsiString(ansi, value.a);
348− return output + ']';
352− for (var i in value)
354− if (i === '$') continue;
355− var str = _Debug_toAnsiString(ansi, value[i]);
357− var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0;
358− output += ' ' + (parenless ? str : '(' + str + ')');
360− return _Debug_ctorColor(ansi, tag) + output;
363− if (typeof DataView === 'function' && value instanceof DataView)
365− return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>');
368− if (typeof File !== 'undefined' && value instanceof File)
370− return _Debug_internalColor(ansi, '<' + value.name + '>');
373− if (typeof value === 'object')
376− for (var key in value)
378− var field = key[0] === '_' ? key.slice(1) : key;
379− output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));
381− if (output.length === 0)
385− return '{ ' + output.join(', ') + ' }';
388− return _Debug_internalColor(ansi, '<internals>');
391−function _Debug_addSlashes(str, isChar)
394− .replace(/\\/g, '\\\\')
395− .replace(/\n/g, '\\n')
396− .replace(/\t/g, '\\t')
397− .replace(/\r/g, '\\r')
398− .replace(/\v/g, '\\v')
399− .replace(/\0/g, '\\0');
403− return s.replace(/\'/g, '\\\'');
407− return s.replace(/\"/g, '\\"');
411−function _Debug_ctorColor(ansi, string)
413− return ansi ? '\x1b[96m' + string + '\x1b[0m' : string;
416−function _Debug_numberColor(ansi, string)
418− return ansi ? '\x1b[95m' + string + '\x1b[0m' : string;
421−function _Debug_stringColor(ansi, string)
423− return ansi ? '\x1b[93m' + string + '\x1b[0m' : string;
426−function _Debug_charColor(ansi, string)
428− return ansi ? '\x1b[92m' + string + '\x1b[0m' : string;
431−function _Debug_fadeColor(ansi, string)
433− return ansi ? '\x1b[37m' + string + '\x1b[0m' : string;
436−function _Debug_internalColor(ansi, string)
438− return ansi ? '\x1b[36m' + string + '\x1b[0m' : string;
441−function _Debug_toHexDigit(n)
443− return String.fromCharCode(n < 10 ? 48 + n : 55 + n);
452−function _Debug_crash(identifier, fact1, fact2, fact3, fact4)
457− 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.');
460− 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.');
463− var jsonErrorString = fact1;
464− throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString);
467− var portName = fact1;
468− throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.');
471− var portName = fact1;
472− var problem = fact2;
473− throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem);
476− 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.');
479− var moduleName = fact1;
480− 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!');
483− var moduleName = fact1;
485− var message = fact3;
486− throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message);
489− var moduleName = fact1;
492− var message = fact4;
494− 'TODO in module `' + moduleName + '` from the `case` expression '
495− + _Debug_regionToString(region) + '\n\nIt received the following value:\n\n '
496− + _Debug_toString(value).replace('\n', '\n ')
497− + '\n\nBut the branch that handles it says:\n\n ' + message.replace('\n', '\n ')
501− throw new Error('Bug in https://github.com/elm/virtual-dom/issues');
504− throw new Error('Cannot perform mod 0. Division by zero error.');
508−function _Debug_regionToString(region)
510− if (region.start.line === region.end.line)
512− return 'on line ' + region.start.line;
514− return 'on lines ' + region.start.line + ' through ' + region.end.line;
521−function _Utils_eq(x, y)
524− var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack);
525− isEqual && (pair = stack.pop());
526− isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack)
533−function _Utils_eqHelp(x, y, depth, stack)
540− if (typeof x !== 'object' || x === null || y === null)
542− typeof x === 'function' && _Debug_crash(5);
548− stack.push(_Utils_Tuple2(x,y));
553− if (x.$ === 'Set_elm_builtin')
555− x = $elm$core$Set$toList(x);
556− y = $elm$core$Set$toList(y);
558− if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')
560− x = $elm$core$Dict$toList(x);
561− y = $elm$core$Dict$toList(y);
568− x = $elm$core$Dict$toList(x);
569− y = $elm$core$Dict$toList(y);
575− if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))
583−var _Utils_equal = F2(_Utils_eq);
584−var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });
590−// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on
591−// the particular integer values assigned to LT, EQ, and GT.
593−function _Utils_cmp(x, y, ord)
595− if (typeof x !== 'object')
597− return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;
601− if (x instanceof String)
603− var a = x.valueOf();
604− var b = y.valueOf();
605− return a === b ? 0 : a < b ? -1 : 1;
610− if (typeof x.$ === 'undefined')
616− return (ord = _Utils_cmp(x.a, y.a))
618− : (ord = _Utils_cmp(x.b, y.b))
620− : _Utils_cmp(x.c, y.c);
623− // traverse conses until end of a list or a mismatch
624− for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES
625− return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);
628−var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });
629−var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });
630−var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });
631−var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });
633−var _Utils_compare = F2(function(x, y)
635− var n = _Utils_cmp(x, y);
636− return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ;
642−var _Utils_Tuple0 = { $: '#0' };
644−function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; }
646−function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }
648−function _Utils_chr(c) { return new String(c); }
653−function _Utils_update(oldRecord, updatedFields)
657− for (var key in oldRecord)
659− newRecord[key] = oldRecord[key];
662− for (var key in updatedFields)
664− newRecord[key] = updatedFields[key];
673−var _Utils_append = F2(_Utils_ap);
675−function _Utils_ap(xs, ys)
678− if (typeof xs === 'string')
688− var root = _List_Cons(xs.a, ys);
690− for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS
692− curr = curr.b = _List_Cons(xs.a, ys);
699−var _List_Nil = { $: '[]' };
701−function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; }
704−var _List_cons = F2(_List_Cons);
706−function _List_fromArray(arr)
708− var out = _List_Nil;
709− for (var i = arr.length; i--; )
711− out = _List_Cons(arr[i], out);
716−function _List_toArray(xs)
718− for (var out = []; xs.b; xs = xs.b) // WHILE_CONS
725−var _List_map2 = F3(function(f, xs, ys)
727− for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES
729− arr.push(A2(f, xs.a, ys.a));
731− return _List_fromArray(arr);
734−var _List_map3 = F4(function(f, xs, ys, zs)
736− for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
738− arr.push(A3(f, xs.a, ys.a, zs.a));
740− return _List_fromArray(arr);
743−var _List_map4 = F5(function(f, ws, xs, ys, zs)
745− 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
747− arr.push(A4(f, ws.a, xs.a, ys.a, zs.a));
749− return _List_fromArray(arr);
752−var _List_map5 = F6(function(f, vs, ws, xs, ys, zs)
754− 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
756− arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));
758− return _List_fromArray(arr);
761−var _List_sortBy = F2(function(f, xs)
763− return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
764− return _Utils_cmp(f(a), f(b));
768−var _List_sortWith = F2(function(f, xs)
770− return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
771− var ord = A2(f, a, b);
772− return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1;
780−var _Basics_add = F2(function(a, b) { return a + b; });
781−var _Basics_sub = F2(function(a, b) { return a - b; });
782−var _Basics_mul = F2(function(a, b) { return a * b; });
783−var _Basics_fdiv = F2(function(a, b) { return a / b; });
784−var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });
785−var _Basics_pow = F2(Math.pow);
787−var _Basics_remainderBy = F2(function(b, a) { return a % b; });
789−// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf
790−var _Basics_modBy = F2(function(modulus, x)
792− var answer = x % modulus;
793− return modulus === 0
796− ((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))
804−var _Basics_pi = Math.PI;
805−var _Basics_e = Math.E;
806−var _Basics_cos = Math.cos;
807−var _Basics_sin = Math.sin;
808−var _Basics_tan = Math.tan;
809−var _Basics_acos = Math.acos;
810−var _Basics_asin = Math.asin;
811−var _Basics_atan = Math.atan;
812−var _Basics_atan2 = F2(Math.atan2);
817−function _Basics_toFloat(x) { return x; }
818−function _Basics_truncate(n) { return n | 0; }
819−function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }
821−var _Basics_ceiling = Math.ceil;
822−var _Basics_floor = Math.floor;
823−var _Basics_round = Math.round;
824−var _Basics_sqrt = Math.sqrt;
825−var _Basics_log = Math.log;
826−var _Basics_isNaN = isNaN;
831−function _Basics_not(bool) { return !bool; }
832−var _Basics_and = F2(function(a, b) { return a && b; });
833−var _Basics_or = F2(function(a, b) { return a || b; });
834−var _Basics_xor = F2(function(a, b) { return a !== b; });
838−var _String_cons = F2(function(chr, str)
843−function _String_uncons(string)
845− var word = string.charCodeAt(0);
847− ? $elm$core$Maybe$Just(
848− 0xD800 <= word && word <= 0xDBFF
849− ? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))
850− : _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))
852− : $elm$core$Maybe$Nothing;
855−var _String_append = F2(function(a, b)
860−function _String_length(str)
865−var _String_map = F2(function(func, string)
867− var len = string.length;
868− var array = new Array(len);
872− var word = string.charCodeAt(i);
873− if (0xD800 <= word && word <= 0xDBFF)
875− array[i] = func(_Utils_chr(string[i] + string[i+1]));
879− array[i] = func(_Utils_chr(string[i]));
882− return array.join('');
885−var _String_filter = F2(function(isGood, str)
888− var len = str.length;
893− var word = str.charCodeAt(i);
895− if (0xD800 <= word && word <= 0xDBFF)
901− if (isGood(_Utils_chr(char)))
906− return arr.join('');
909−function _String_reverse(str)
911− var len = str.length;
912− var arr = new Array(len);
916− var word = str.charCodeAt(i);
917− if (0xD800 <= word && word <= 0xDBFF)
919− arr[len - i] = str[i + 1];
921− arr[len - i] = str[i - 1];
926− arr[len - i] = str[i];
930− return arr.join('');
933−var _String_foldl = F3(function(func, state, string)
935− var len = string.length;
939− var char = string[i];
940− var word = string.charCodeAt(i);
942− if (0xD800 <= word && word <= 0xDBFF)
947− state = A2(func, _Utils_chr(char), state);
952−var _String_foldr = F3(function(func, state, string)
954− var i = string.length;
957− var char = string[i];
958− var word = string.charCodeAt(i);
959− if (0xDC00 <= word && word <= 0xDFFF)
962− char = string[i] + char;
964− state = A2(func, _Utils_chr(char), state);
969−var _String_split = F2(function(sep, str)
971− return str.split(sep);
974−var _String_join = F2(function(sep, strs)
976− return strs.join(sep);
979−var _String_slice = F3(function(start, end, str) {
980− return str.slice(start, end);
983−function _String_trim(str)
988−function _String_trimLeft(str)
990− return str.replace(/^\s+/, '');
993−function _String_trimRight(str)
995− return str.replace(/\s+$/, '');
998−function _String_words(str)
1000− return _List_fromArray(str.trim().split(/\s+/g));
1003−function _String_lines(str)
1005− return _List_fromArray(str.split(/\r\n|\r|\n/g));
1008−function _String_toUpper(str)
1010− return str.toUpperCase();
1013−function _String_toLower(str)
1015− return str.toLowerCase();
1018−var _String_any = F2(function(isGood, string)
1020− var i = string.length;
1023− var char = string[i];
1024− var word = string.charCodeAt(i);
1025− if (0xDC00 <= word && word <= 0xDFFF)
1028− char = string[i] + char;
1030− if (isGood(_Utils_chr(char)))
1038−var _String_all = F2(function(isGood, string)
1040− var i = string.length;
1043− var char = string[i];
1044− var word = string.charCodeAt(i);
1045− if (0xDC00 <= word && word <= 0xDFFF)
1048− char = string[i] + char;
1050− if (!isGood(_Utils_chr(char)))
1058−var _String_contains = F2(function(sub, str)
1060− return str.indexOf(sub) > -1;
1063−var _String_startsWith = F2(function(sub, str)
1065− return str.indexOf(sub) === 0;
1068−var _String_endsWith = F2(function(sub, str)
1070− return str.length >= sub.length &&
1071− str.lastIndexOf(sub) === str.length - sub.length;
1074−var _String_indexes = F2(function(sub, str)
1076− var subLen = sub.length;
1086− while ((i = str.indexOf(sub, i)) > -1)
1092− return _List_fromArray(is);
1098−function _String_fromNumber(number)
1100− return number + '';
1106−function _String_toInt(str)
1109− var code0 = str.charCodeAt(0);
1110− var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;
1112− for (var i = start; i < str.length; ++i)
1114− var code = str.charCodeAt(i);
1115− if (code < 0x30 || 0x39 < code)
1117− return $elm$core$Maybe$Nothing;
1119− total = 10 * total + code - 0x30;
1123− ? $elm$core$Maybe$Nothing
1124− : $elm$core$Maybe$Just(code0 == 0x2D ? -total : total);
1128−// FLOAT CONVERSIONS
1130−function _String_toFloat(s)
1132− // check if it is a hex, octal, or binary number
1133− if (s.length === 0 || /[\sxbo]/.test(s))
1135− return $elm$core$Maybe$Nothing;
1138− // faster isNaN check
1139− return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing;
1142−function _String_fromList(chars)
1144− return _List_toArray(chars).join('');
1150−function _Char_toCode(char)
1152− var code = char.charCodeAt(0);
1153− if (0xD800 <= code && code <= 0xDBFF)
1155− return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000
1160−function _Char_fromCode(code)
1163− (code < 0 || 0x10FFFF < code)
1167− ? String.fromCharCode(code)
1170− String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00)
1175−function _Char_toUpper(char)
1177− return _Utils_chr(char.toUpperCase());
1180−function _Char_toLower(char)
1182− return _Utils_chr(char.toLowerCase());
1185−function _Char_toLocaleUpper(char)
1187− return _Utils_chr(char.toLocaleUpperCase());
1190−function _Char_toLocaleLower(char)
1192− return _Utils_chr(char.toLocaleLowerCase());
1198−function _Json_errorToString(error)
1200− return $elm$json$Json$Decode$errorToString(error);
1207−function _Json_succeed(msg)
1215−function _Json_fail(msg)
1223−function _Json_decodePrim(decoder)
1225− return { $: 2, b: decoder };
1228−var _Json_decodeInt = _Json_decodePrim(function(value) {
1229− return (typeof value !== 'number')
1230− ? _Json_expecting('an INT', value)
1232− (-2147483647 < value && value < 2147483647 && (value | 0) === value)
1233− ? $elm$core$Result$Ok(value)
1235− (isFinite(value) && !(value % 1))
1236− ? $elm$core$Result$Ok(value)
1237− : _Json_expecting('an INT', value);
1240−var _Json_decodeBool = _Json_decodePrim(function(value) {
1241− return (typeof value === 'boolean')
1242− ? $elm$core$Result$Ok(value)
1243− : _Json_expecting('a BOOL', value);
1246−var _Json_decodeFloat = _Json_decodePrim(function(value) {
1247− return (typeof value === 'number')
1248− ? $elm$core$Result$Ok(value)
1249− : _Json_expecting('a FLOAT', value);
1252−var _Json_decodeValue = _Json_decodePrim(function(value) {
1253− return $elm$core$Result$Ok(_Json_wrap(value));
1256−var _Json_decodeString = _Json_decodePrim(function(value) {
1257− return (typeof value === 'string')
1258− ? $elm$core$Result$Ok(value)
1259− : (value instanceof String)
1260− ? $elm$core$Result$Ok(value + '')
1261− : _Json_expecting('a STRING', value);
1264−function _Json_decodeList(decoder) { return { $: 3, b: decoder }; }
1265−function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; }
1267−function _Json_decodeNull(value) { return { $: 5, c: value }; }
1269−var _Json_decodeField = F2(function(field, decoder)
1278−var _Json_decodeIndex = F2(function(index, decoder)
1287−function _Json_decodeKeyValuePairs(decoder)
1295−function _Json_mapMany(f, decoders)
1304−var _Json_andThen = F2(function(callback, decoder)
1313−function _Json_oneOf(decoders)
1324−var _Json_map1 = F2(function(f, d1)
1326− return _Json_mapMany(f, [d1]);
1329−var _Json_map2 = F3(function(f, d1, d2)
1331− return _Json_mapMany(f, [d1, d2]);
1334−var _Json_map3 = F4(function(f, d1, d2, d3)
1336− return _Json_mapMany(f, [d1, d2, d3]);
1339−var _Json_map4 = F5(function(f, d1, d2, d3, d4)
1341− return _Json_mapMany(f, [d1, d2, d3, d4]);
1344−var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)
1346− return _Json_mapMany(f, [d1, d2, d3, d4, d5]);
1349−var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)
1351− return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);
1354−var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)
1356− return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);
1359−var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)
1361− return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);
1367−var _Json_runOnString = F2(function(decoder, string)
1371− var value = JSON.parse(string);
1372− return _Json_runHelp(decoder, value);
1376− return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string)));
1380−var _Json_run = F2(function(decoder, value)
1382− return _Json_runHelp(decoder, _Json_unwrap(value));
1385−function _Json_runHelp(decoder, value)
1390− return decoder.b(value);
1393− return (value === null)
1394− ? $elm$core$Result$Ok(decoder.c)
1395− : _Json_expecting('null', value);
1398− if (!_Json_isArray(value))
1400− return _Json_expecting('a LIST', value);
1402− return _Json_runArrayDecoder(decoder.b, value, _List_fromArray);
1405− if (!_Json_isArray(value))
1407− return _Json_expecting('an ARRAY', value);
1409− return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);
1412− var field = decoder.d;
1413− if (typeof value !== 'object' || value === null || !(field in value))
1415− return _Json_expecting('an OBJECT with a field named `' + field + '`', value);
1417− var result = _Json_runHelp(decoder.b, value[field]);
1418− return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a));
1421− var index = decoder.e;
1422− if (!_Json_isArray(value))
1424− return _Json_expecting('an ARRAY', value);
1426− if (index >= value.length)
1428− return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);
1430− var result = _Json_runHelp(decoder.b, value[index]);
1431− return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a));
1434− if (typeof value !== 'object' || value === null || _Json_isArray(value))
1436− return _Json_expecting('an OBJECT', value);
1439− var keyValuePairs = _List_Nil;
1440− // TODO test perf of Object.keys and switch when support is good enough
1441− for (var key in value)
1443− if (Object.prototype.hasOwnProperty.call(value, key))
1445− var result = _Json_runHelp(decoder.b, value[key]);
1446− if (!$elm$core$Result$isOk(result))
1448− return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a));
1450− keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);
1453− return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs));
1456− var answer = decoder.f;
1457− var decoders = decoder.g;
1458− for (var i = 0; i < decoders.length; i++)
1460− var result = _Json_runHelp(decoders[i], value);
1461− if (!$elm$core$Result$isOk(result))
1465− answer = answer(result.a);
1467− return $elm$core$Result$Ok(answer);
1470− var result = _Json_runHelp(decoder.b, value);
1471− return (!$elm$core$Result$isOk(result))
1473− : _Json_runHelp(decoder.h(result.a), value);
1476− var errors = _List_Nil;
1477− for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS
1479− var result = _Json_runHelp(temp.a, value);
1480− if ($elm$core$Result$isOk(result))
1484− errors = _List_Cons(result.a, errors);
1486− return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors)));
1489− return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));
1492− return $elm$core$Result$Ok(decoder.a);
1496−function _Json_runArrayDecoder(decoder, value, toElmValue)
1498− var len = value.length;
1499− var array = new Array(len);
1500− for (var i = 0; i < len; i++)
1502− var result = _Json_runHelp(decoder, value[i]);
1503− if (!$elm$core$Result$isOk(result))
1505− return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a));
1507− array[i] = result.a;
1509− return $elm$core$Result$Ok(toElmValue(array));
1512−function _Json_isArray(value)
1514− return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);
1517−function _Json_toElmArray(array)
1519− return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; });
1522−function _Json_expecting(type, value)
1524− return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));
1530−function _Json_equality(x, y)
1546− return x.a === y.a;
1549− return x.b === y.b;
1552− return x.c === y.c;
1557− return _Json_equality(x.b, y.b);
1560− return x.d === y.d && _Json_equality(x.b, y.b);
1563− return x.e === y.e && _Json_equality(x.b, y.b);
1566− return x.f === y.f && _Json_listEquality(x.g, y.g);
1569− return x.h === y.h && _Json_equality(x.b, y.b);
1572− return _Json_listEquality(x.g, y.g);
1576−function _Json_listEquality(aDecoders, bDecoders)
1578− var len = aDecoders.length;
1579− if (len !== bDecoders.length)
1583− for (var i = 0; i < len; i++)
1585− if (!_Json_equality(aDecoders[i], bDecoders[i]))
1596−var _Json_encode = F2(function(indentLevel, value)
1598− return JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';
1601−function _Json_wrap(value) { return { $: 0, a: value }; }
1602−function _Json_unwrap(value) { return value.a; }
1605−function _Json_emptyArray() { return []; }
1606−function _Json_emptyObject() { return {}; }
1608−var _Json_addField = F3(function(key, value, object)
1610− var unwrapped = _Json_unwrap(value);
1611− if (!(key === 'toJSON' && typeof unwrapped === 'function'))
1613− object[key] = unwrapped;
1618−function _Json_addEntry(func)
1620− return F2(function(entry, array)
1622− array.push(_Json_unwrap(func(entry)));
1627−var _Json_encodeNull = _Json_wrap(null);
1633−function _Scheduler_succeed(value)
1641−function _Scheduler_fail(error)
1649−function _Scheduler_binding(callback)
1658−var _Scheduler_andThen = F2(function(callback, task)
1667−var _Scheduler_onError = F2(function(callback, task)
1676−function _Scheduler_receive(callback)
1687−var _Scheduler_guid = 0;
1689−function _Scheduler_rawSpawn(task)
1693− e: _Scheduler_guid++,
1699− _Scheduler_enqueue(proc);
1704−function _Scheduler_spawn(task)
1706− return _Scheduler_binding(function(callback) {
1707− callback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));
1711−function _Scheduler_rawSend(proc, msg)
1714− _Scheduler_enqueue(proc);
1717−var _Scheduler_send = F2(function(proc, msg)
1719− return _Scheduler_binding(function(callback) {
1720− _Scheduler_rawSend(proc, msg);
1721− callback(_Scheduler_succeed(_Utils_Tuple0));
1725−function _Scheduler_kill(proc)
1727− return _Scheduler_binding(function(callback) {
1729− if (task.$ === 2 && task.c)
1736− callback(_Scheduler_succeed(_Utils_Tuple0));
1743−type alias Process =
1747− , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }
1754−var _Scheduler_working = false;
1755−var _Scheduler_queue = [];
1758−function _Scheduler_enqueue(proc)
1760− _Scheduler_queue.push(proc);
1761− if (_Scheduler_working)
1765− _Scheduler_working = true;
1766− while (proc = _Scheduler_queue.shift())
1768− _Scheduler_step(proc);
1770− _Scheduler_working = false;
1774−function _Scheduler_step(proc)
1778− var rootTag = proc.f.$;
1779− if (rootTag === 0 || rootTag === 1)
1781− while (proc.g && proc.g.$ !== rootTag)
1789− proc.f = proc.g.b(proc.f.a);
1792− else if (rootTag === 2)
1794− proc.f.c = proc.f.b(function(newRoot) {
1796− _Scheduler_enqueue(proc);
1800− else if (rootTag === 5)
1802− if (proc.h.length === 0)
1806− proc.f = proc.f.b(proc.h.shift());
1808− else // if (rootTag === 3 || rootTag === 4)
1811− $: rootTag === 3 ? 0 : 1,
1822−function _Process_sleep(time)
1824− return _Scheduler_binding(function(callback) {
1825− var id = setTimeout(function() {
1826− callback(_Scheduler_succeed(_Utils_Tuple0));
1829− return function() { clearTimeout(id); };
1839−var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)
1841− return _Platform_initialize(
1846− impl.subscriptions,
1847− function() { return function() {} }
1853−// INITIALIZE A PROGRAM
1856−function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
1858− var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));
1859− $elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/);
1861− var initPair = init(result.a);
1862− var model = initPair.a;
1863− var stepper = stepperBuilder(sendToApp, model);
1864− var ports = _Platform_setupEffects(managers, sendToApp);
1866− function sendToApp(msg, viewMetadata)
1868− var pair = A2(update, msg, model);
1869− stepper(model = pair.a, viewMetadata);
1870− _Platform_enqueueEffects(managers, pair.b, subscriptions(model));
1873− _Platform_enqueueEffects(managers, initPair.b, subscriptions(model));
1875− return ports ? { ports: ports } : {};
1882−// This is used by code in elm/browser and elm/http
1883−// to register any HTTP requests that are triggered by init.
1887−var _Platform_preload;
1890−function _Platform_registerPreload(url)
1892− _Platform_preload.add(url);
1900−var _Platform_effectManagers = {};
1903−function _Platform_setupEffects(managers, sendToApp)
1907− // setup all necessary effect managers
1908− for (var key in _Platform_effectManagers)
1910− var manager = _Platform_effectManagers[key];
1914− ports = ports || {};
1915− ports[key] = manager.a(key, sendToApp);
1918− managers[key] = _Platform_instantiateManager(manager, sendToApp);
1925−function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)
1937−function _Platform_instantiateManager(info, sendToApp)
1944− var onEffects = info.c;
1945− var onSelfMsg = info.d;
1946− var cmdMap = info.e;
1947− var subMap = info.f;
1949− function loop(state)
1951− return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)
1957− return A3(onSelfMsg, router, value, state);
1960− return cmdMap && subMap
1961− ? A4(onEffects, router, value.i, value.j, state)
1962− : A3(onEffects, router, cmdMap ? value.i : value.j, state);
1966− return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));
1974−var _Platform_sendToApp = F2(function(router, msg)
1976− return _Scheduler_binding(function(callback)
1979− callback(_Scheduler_succeed(_Utils_Tuple0));
1984−var _Platform_sendToSelf = F2(function(router, msg)
1986− return A2(_Scheduler_send, router.h, {
1997−function _Platform_leaf(home)
1999− return function(value)
2010−function _Platform_batch(list)
2019−var _Platform_map = F2(function(tagger, bag)
2030−// PIPE BAGS INTO EFFECT MANAGERS
2032−// Effects must be queued!
2034−// Say your init contains a synchronous command, like Time.now or Time.here
2036−// - This will produce a batch of effects (FX_1)
2037−// - The synchronous task triggers the subsequent `update` call
2038−// - This will produce a batch of effects (FX_2)
2040−// If we just start dispatching FX_2, subscriptions from FX_2 can be processed
2041−// before subscriptions from FX_1. No good! Earlier versions of this code had
2042−// this problem, leading to these reports:
2044−// https://github.com/elm/core/issues/980
2045−// https://github.com/elm/core/pull/981
2046−// https://github.com/elm/compiler/issues/1776
2048−// The queue is necessary to avoid ordering issues for synchronous commands.
2051−// Why use true/false here? Why not just check the length of the queue?
2052−// The goal is to detect "are we currently dispatching effects?" If we
2053−// are, we need to bail and let the ongoing while loop handle things.
2055−// Now say the queue has 1 element. When we dequeue the final element,
2056−// the queue will be empty, but we are still actively dispatching effects.
2057−// So you could get queue jumping in a really tricky category of cases.
2059−var _Platform_effectsQueue = [];
2060−var _Platform_effectsActive = false;
2063−function _Platform_enqueueEffects(managers, cmdBag, subBag)
2065− _Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag });
2067− if (_Platform_effectsActive) return;
2069− _Platform_effectsActive = true;
2070− for (var fx; fx = _Platform_effectsQueue.shift(); )
2072− _Platform_dispatchEffects(fx.p, fx.q, fx.r);
2074− _Platform_effectsActive = false;
2078−function _Platform_dispatchEffects(managers, cmdBag, subBag)
2080− var effectsDict = {};
2081− _Platform_gatherEffects(true, cmdBag, effectsDict, null);
2082− _Platform_gatherEffects(false, subBag, effectsDict, null);
2084− for (var home in managers)
2086− _Scheduler_rawSend(managers[home], {
2088− a: effectsDict[home] || { i: _List_Nil, j: _List_Nil }
2094−function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)
2100− var effect = _Platform_toEffect(isCmd, home, taggers, bag.l);
2101− effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);
2105− for (var list = bag.m; list.b; list = list.b) // WHILE_CONS
2107− _Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);
2112− _Platform_gatherEffects(isCmd, bag.o, effectsDict, {
2121−function _Platform_toEffect(isCmd, home, taggers, value)
2123− function applyTaggers(x)
2125− for (var temp = taggers; temp; temp = temp.t)
2133− ? _Platform_effectManagers[home].e
2134− : _Platform_effectManagers[home].f;
2136− return A2(map, applyTaggers, value)
2140−function _Platform_insert(isCmd, newEffect, effects)
2142− effects = effects || { i: _List_Nil, j: _List_Nil };
2145− ? (effects.i = _List_Cons(newEffect, effects.i))
2146− : (effects.j = _List_Cons(newEffect, effects.j));
2156−function _Platform_checkPortName(name)
2158− if (_Platform_effectManagers[name])
2160− _Debug_crash(3, name)
2169−function _Platform_outgoingPort(name, converter)
2171− _Platform_checkPortName(name);
2172− _Platform_effectManagers[name] = {
2173− e: _Platform_outgoingPortMap,
2175− a: _Platform_setupOutgoingPort
2177− return _Platform_leaf(name);
2181−var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });
2184−function _Platform_setupOutgoingPort(name)
2187− var converter = _Platform_effectManagers[name].u;
2191− var init = _Process_sleep(0);
2193− _Platform_effectManagers[name].b = init;
2194− _Platform_effectManagers[name].c = F3(function(router, cmdList, state)
2196− for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS
2198− // grab a separate reference to subs in case unsubscribe is called
2199− var currentSubs = subs;
2200− var value = _Json_unwrap(converter(cmdList.a));
2201− for (var i = 0; i < currentSubs.length; i++)
2203− currentSubs[i](value);
2211− function subscribe(callback)
2213− subs.push(callback);
2216− function unsubscribe(callback)
2218− // copy subs into a new array in case unsubscribe is called within a
2219− // subscribed callback
2220− subs = subs.slice();
2221− var index = subs.indexOf(callback);
2224− subs.splice(index, 1);
2229− subscribe: subscribe,
2230− unsubscribe: unsubscribe
2239−function _Platform_incomingPort(name, converter)
2241− _Platform_checkPortName(name);
2242− _Platform_effectManagers[name] = {
2243− f: _Platform_incomingPortMap,
2245− a: _Platform_setupIncomingPort
2247− return _Platform_leaf(name);
2251−var _Platform_incomingPortMap = F2(function(tagger, finalTagger)
2253− return function(value)
2255− return tagger(finalTagger(value));
2260−function _Platform_setupIncomingPort(name, sendToApp)
2262− var subs = _List_Nil;
2263− var converter = _Platform_effectManagers[name].u;
2267− var init = _Scheduler_succeed(null);
2269− _Platform_effectManagers[name].b = init;
2270− _Platform_effectManagers[name].c = F3(function(router, subList, state)
2278− function send(incomingValue)
2280− var result = A2(_Json_run, converter, _Json_wrap(incomingValue));
2282− $elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);
2284− var value = result.a;
2285− for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS
2287− sendToApp(temp.a(value));
2291− return { send: send };
2296−// EXPORT ELM MODULES
2298−// Have DEBUG and PROD versions so that we can (1) give nicer errors in
2299−// debug mode and (2) not pay for the bits needed for that in prod mode.
2305−function _Platform_mergeExportsProd(obj, exports)
2307− for (var name in exports)
2312− : _Platform_mergeExportsProd(obj[name], exports[name])
2313− : (obj[name] = exports[name]);
2318−function _Platform_export(exports)
2321− ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)
2322− : scope['Elm'] = exports;
2326−function _Platform_mergeExportsDebug(moduleName, obj, exports)
2328− for (var name in exports)
2332− ? _Debug_crash(6, moduleName)
2333− : _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])
2334− : (obj[name] = exports[name]);
2340−var _Lynx_g = (typeof globalThis !== 'undefined' ? globalThis : scope);
2341−function _Lynx_papi(name) { return _Lynx_g['_' + '_' + name] || function() {}; }
2342−var _Lynx_createViewFn = _Lynx_papi('CreateView');
2343−var _Lynx_createTextFn = _Lynx_papi('CreateText');
2344−var _Lynx_createImageFn = _Lynx_papi('CreateImage');
2345−function _Lynx_createElement(tag) {
2346− var pId = (_Lynx_g['native'] && _Lynx_g['native']['currentPageId']) || 0;
2347− return (tag === 'text' ? _Lynx_createTextFn
2348− : tag === 'image' ? _Lynx_createImageFn
2349− : _Lynx_createViewFn)(pId);
2351−var _Lynx_createRawText = _Lynx_papi('CreateRawText');
2352−var _Lynx_appendChild = _Lynx_papi('AppendElement');
2353−var _Lynx_removeElement = _Lynx_papi('RemoveElement');
2354−var _Lynx_replaceElement = _Lynx_papi('ReplaceElement');
2355−var _Lynx_insertBefore = _Lynx_papi('InsertElementBefore');
2356−var _Lynx_setAttribute = _Lynx_papi('SetAttribute');
2357−var _Lynx_getChildren = _Lynx_papi('GetChildren');
2358−var _Lynx_getParent = _Lynx_papi('GetParent');
2359−var _Lynx_addEvent = _Lynx_papi('AddEvent');
2360−var _Lynx_setInlineStyles = _Lynx_papi('SetInlineStyles');
2361−var _VirtualDom_elementMeta = new WeakMap();
2362−function _VirtualDom_getMeta(el) {
2363− var meta = _VirtualDom_elementMeta.get(el);
2364− if (!meta) { meta = {}; _VirtualDom_elementMeta.set(el, meta); }
2375−function _VirtualDom_appendChild(parent, child)
2377− _Lynx_appendChild(parent, child);
2380−var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)
2382− // NOTE: this function needs _Platform_export available to work
2383− var rootPage = args['node'] || _Lynx_g['page'];
2384− var tree = _VirtualDom_render(virtualNode, function() {});
2385− _Lynx_appendChild(rootPage, tree);
2394−function _VirtualDom_text(string)
2407−var _VirtualDom_nodeNS = F2(function(namespace, tag)
2409− return F2(function(factList, kidList)
2411− for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
2413− var kid = kidList.a;
2414− descendantsCount += (kid.b || 0);
2417− descendantsCount += kids.length;
2422− d: _VirtualDom_organizeFacts(factList),
2425− b: descendantsCount
2431−var _VirtualDom_node = _VirtualDom_nodeNS(undefined);
2438−var _VirtualDom_keyedNodeNS = F2(function(namespace, tag)
2440− return F2(function(factList, kidList)
2442− for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
2444− var kid = kidList.a;
2445− descendantsCount += (kid.b.b || 0);
2448− descendantsCount += kids.length;
2453− d: _VirtualDom_organizeFacts(factList),
2456− b: descendantsCount
2462−var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);
2469−function _VirtualDom_custom(factList, model, render, diff)
2473− d: _VirtualDom_organizeFacts(factList),
2485−var _VirtualDom_map = F2(function(tagger, node)
2491− b: 1 + (node.b || 0)
2500−function _VirtualDom_thunk(refs, thunk)
2510−var _VirtualDom_lazy = F2(function(func, a)
2512− return _VirtualDom_thunk([func, a], function() {
2517−var _VirtualDom_lazy2 = F3(function(func, a, b)
2519− return _VirtualDom_thunk([func, a, b], function() {
2520− return A2(func, a, b);
2524−var _VirtualDom_lazy3 = F4(function(func, a, b, c)
2526− return _VirtualDom_thunk([func, a, b, c], function() {
2527− return A3(func, a, b, c);
2531−var _VirtualDom_lazy4 = F5(function(func, a, b, c, d)
2533− return _VirtualDom_thunk([func, a, b, c, d], function() {
2534− return A4(func, a, b, c, d);
2538−var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)
2540− return _VirtualDom_thunk([func, a, b, c, d, e], function() {
2541− return A5(func, a, b, c, d, e);
2545−var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)
2547− return _VirtualDom_thunk([func, a, b, c, d, e, f], function() {
2548− return A6(func, a, b, c, d, e, f);
2552−var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)
2554− return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {
2555− return A7(func, a, b, c, d, e, f, g);
2559−var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)
2561− return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {
2562− return A8(func, a, b, c, d, e, f, g, h);
2571−var _VirtualDom_on = F2(function(key, handler)
2579−var _VirtualDom_style = F2(function(key, value)
2587−var _VirtualDom_property = F2(function(key, value)
2595−var _VirtualDom_attribute = F2(function(key, value)
2603−var _VirtualDom_attributeNS = F3(function(namespace, key, value)
2608− o: { f: namespace, o: value }
2614−// XSS ATTACK VECTOR CHECKS
2616−// For some reason, tabs can appear in href protocols and it still works.
2617−// So '\tjava\tSCRIPT:alert("!!!")' and 'javascript:alert("!!!")' are the same
2618−// in practice. That is why _VirtualDom_RE_js and _VirtualDom_RE_js_html look
2621−// Pulling the regular expressions out to the top level gives a slight speed
2622−// boost in small benchmarks (4-10%) but hoisting values to reduce allocation
2623−// can be unpredictable in large programs where JIT may have a harder time with
2624−// functions are not fully self-contained. The benefit is more that the js and
2625−// js_html ones are so weird that I prefer to see them near each other.
2631−function _VirtualDom_noScript(tag)
2636−function _VirtualDom_noOnOrFormAction(key)
2641−function _VirtualDom_noInnerHtmlOrFormAction(key)
2646−function _VirtualDom_noJavaScriptUri(value)
2651−function _VirtualDom_noJavaScriptOrHtmlUri(value)
2656−function _VirtualDom_noJavaScriptOrHtmlJson(value)
2666−var _VirtualDom_mapAttribute = F2(function(func, attr)
2668− return (attr.$ === 'a0')
2669− ? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))
2673−function _VirtualDom_mapHandler(func, handler)
2675− var tag = $lynxjs_elm$virtual_dom$VirtualDom$toHandlerInt(handler);
2678− // 1 = MayStopPropagation
2679− // 2 = MayPreventDefault
2686− ? A2($elm$json$Json$Decode$map, func, handler.a)
2688− A3($elm$json$Json$Decode$map2,
2690− ? _VirtualDom_mapEventTuple
2691− : _VirtualDom_mapEventRecord,
2692− $elm$json$Json$Decode$succeed(func),
2698−var _VirtualDom_mapEventTuple = F2(function(func, tuple)
2700− return _Utils_Tuple2(func(tuple.a), tuple.b);
2703−var _VirtualDom_mapEventRecord = F2(function(func, record)
2706− message: func(record.message),
2707− stopPropagation: record.stopPropagation,
2708− preventDefault: record.preventDefault
2717−function _VirtualDom_organizeFacts(factList)
2719− for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS
2721− var entry = factList.a;
2725− var value = entry.o;
2729− (key === 'className')
2730− ? _VirtualDom_addClass(facts, key, _Json_unwrap(value))
2731− : facts[key] = _Json_unwrap(value);
2736− var subFacts = facts[tag] || (facts[tag] = {});
2737− (tag === 'a3' && key === 'class')
2738− ? _VirtualDom_addClass(subFacts, key, value)
2739− : subFacts[key] = value;
2745−function _VirtualDom_addClass(object, key, newClass)
2747− var classes = object[key];
2748− object[key] = classes ? classes + ' ' + newClass : newClass;
2756−function _VirtualDom_render(vNode, eventNode)
2762− return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);
2767− return _Lynx_createRawText(vNode.a);
2772− var subNode = vNode.k;
2773− var tagger = vNode.j;
2775− while (subNode.$ === 4)
2777− typeof tagger !== 'object'
2778− ? tagger = [tagger, subNode.j]
2779− : tagger.push(subNode.j);
2781− subNode = subNode.k;
2784− var subEventRoot = { j: tagger, p: eventNode };
2785− var domNode = _VirtualDom_render(subNode, subEventRoot);
2786− _VirtualDom_getMeta(domNode).elm_event_node_ref = subEventRoot;
2792− var domNode = vNode.h(vNode.g);
2793− _VirtualDom_applyFacts(domNode, eventNode, vNode.d);
2797− // at this point `tag` must be 1 or 2
2799− var domNode = _Lynx_createElement(vNode.c);
2801− _VirtualDom_applyFacts(domNode, eventNode, vNode.d);
2803− for (var kids = vNode.e, i = 0; i < kids.length; i++)
2805− var kid = tag === 1 ? kids[i] : kids[i].b;
2808− _Lynx_appendChild(domNode, _Lynx_createRawText(kid.a));
2812− _VirtualDom_appendChild(domNode, _VirtualDom_render(kid, eventNode));
2824−function _VirtualDom_applyFacts(domNode, eventNode, facts)
2826− for (var key in facts)
2828− var value = facts[key];
2831− ? _VirtualDom_applyStyles(domNode, value)
2834− ? _VirtualDom_applyEvents(domNode, eventNode, value)
2837− ? _VirtualDom_applyAttrs(domNode, value)
2840− ? _VirtualDom_applyAttrsNS(domNode, value)
2842− (key !== 'value' && key !== 'checked' || domNode[key] !== value) && _Lynx_setAttribute(domNode, key === 'className' ? 'class' : key, String(value));
2851−function _VirtualDom_applyStyles(domNode, styles)
2853− _Lynx_setInlineStyles(domNode, styles);
2861−function _VirtualDom_applyAttrs(domNode, attrs)
2863− for (var key in attrs)
2865− var value = attrs[key];
2866− if (typeof value !== 'undefined')
2868− _Lynx_setAttribute(domNode, key, value);
2875−// APPLY NAMESPACED ATTRS
2878−function _VirtualDom_applyAttrsNS(domNode, nsAttrs)
2880− for (var key in nsAttrs)
2882− var pair = nsAttrs[key];
2883− var value = pair.o;
2885− if (typeof value !== 'undefined')
2887− _Lynx_setAttribute(domNode, key, value);
2897−function _VirtualDom_applyEvents(domNode, eventNode, events)
2899− var meta = _VirtualDom_getMeta(domNode);
2900− var allCallbacks = meta.elmFs || (meta.elmFs = {});
2902− for (var key in events)
2904− var newHandler = events[key];
2905− var oldCallback = allCallbacks[key];
2909− allCallbacks[key] = undefined;
2915− var oldHandler = oldCallback.q;
2916− if (oldHandler.$ === newHandler.$)
2918− oldCallback.q = newHandler;
2923− oldCallback = _VirtualDom_makeCallback(eventNode, newHandler);
2924− allCallbacks[key] = oldCallback;
2926− var lynxEventName = _VirtualDom_mapEventName(key);
2927− var handlerType = $lynxjs_elm$virtual_dom$VirtualDom$toHandlerInt(newHandler);
2928− var prefix = (handlerType === 1) ? 'catch' : 'bind';
2929− _Lynx_addEvent(domNode, 'catchEvent', lynxEventName, { type: 'worklet', value: oldCallback });
2933−function _VirtualDom_mapEventName(name)
2937− case 'click': return 'tap';
2938− case 'dblclick': return 'tap';
2939− case 'mousedown': return 'touchstart';
2940− case 'mousemove': return 'touchmove';
2941− case 'mouseup': return 'touchend';
2942− default: return name;
2955−function _VirtualDom_makeCallback(eventNode, initialHandler)
2957− function callback(event)
2959− var handler = callback.q;
2960− var result = _Json_runHelp(handler.a, event);
2962− if (!$elm$core$Result$isOk(result))
2967− var tag = $lynxjs_elm$virtual_dom$VirtualDom$toHandlerInt(handler);
2970− // 1 = MayStopPropagation
2971− // 2 = MayPreventDefault
2974− var value = result.a;
2975− var message = !tag ? value : tag < 3 ? value.a : value.message;
2976− var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation;
2977− var currentEventNode = eventNode;
2980− while (tagger = currentEventNode.j)
2982− if (typeof tagger == 'function')
2984− message = tagger(message);
2988− for (var i = tagger.length; i--; )
2990− message = tagger[i](message);
2993− currentEventNode = currentEventNode.p;
2995− currentEventNode(message, stopPropagation); // stopPropagation implies isSync
2998− callback.q = initialHandler;
3003−function _VirtualDom_equalEvents(x, y)
3005− return x.$ == y.$ && _Json_equality(x.a, y.a);
3013−// TODO: Should we do patches like in iOS?
3017−// | Batch (List Patch)
3020−// How could it not be better?
3022−function _VirtualDom_diff(x, y)
3025− _VirtualDom_diffHelp(x, y, patches, 0);
3030−function _VirtualDom_pushPatch(patches, type, index, data)
3039− patches.push(patch);
3044−function _VirtualDom_diffHelp(x, y, patches, index)
3054− // Bail if you run into different types of nodes. Implies that the
3055− // structure has changed significantly and it's not worth a diff.
3056− if (xType !== yType)
3058− if (xType === 1 && yType === 2)
3060− y = _VirtualDom_dekey(y);
3065− _VirtualDom_pushPatch(patches, 0, index, y);
3070− // Now we know that both nodes are the same $.
3076− var i = xRefs.length;
3077− var same = i === yRefs.length;
3078− while (same && i--)
3080− same = xRefs[i] === yRefs[i];
3088− var subPatches = [];
3089− _VirtualDom_diffHelp(x.k, y.k, subPatches, 0);
3090− subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);
3094− // gather nested taggers
3095− var xTaggers = x.j;
3096− var yTaggers = y.j;
3097− var nesting = false;
3099− var xSubNode = x.k;
3100− while (xSubNode.$ === 4)
3104− typeof xTaggers !== 'object'
3105− ? xTaggers = [xTaggers, xSubNode.j]
3106− : xTaggers.push(xSubNode.j);
3108− xSubNode = xSubNode.k;
3111− var ySubNode = y.k;
3112− while (ySubNode.$ === 4)
3116− typeof yTaggers !== 'object'
3117− ? yTaggers = [yTaggers, ySubNode.j]
3118− : yTaggers.push(ySubNode.j);
3120− ySubNode = ySubNode.k;
3123− // Just bail if different numbers of taggers. This implies the
3124− // structure of the virtual DOM has changed.
3125− if (nesting && xTaggers.length !== yTaggers.length)
3127− _VirtualDom_pushPatch(patches, 0, index, y);
3131− // check if taggers are "the same"
3132− if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)
3134− _VirtualDom_pushPatch(patches, 2, index, yTaggers);
3137− // diff everything below the taggers
3138− _VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);
3144− _VirtualDom_pushPatch(patches, 3, index, y.a);
3149− _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);
3153− _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);
3159− _VirtualDom_pushPatch(patches, 0, index, y);
3163− var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
3164− factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
3166− var patch = y.i(x.g, y.g);
3167− patch && _VirtualDom_pushPatch(patches, 5, index, patch);
3173−// assumes the incoming arrays are the same length
3174−function _VirtualDom_pairwiseRefEqual(as, bs)
3176− for (var i = 0; i < as.length; i++)
3178− if (as[i] !== bs[i])
3187−function _VirtualDom_diffNodes(x, y, patches, index, diffKids)
3189− // Bail if obvious indicators have changed. Implies more serious
3190− // structural changes such that it's not worth it to diff.
3191− if (x.c !== y.c || x.f !== y.f)
3193− _VirtualDom_pushPatch(patches, 0, index, y);
3197− var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
3198− factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
3200− diffKids(x, y, patches, index);
3208−// TODO Instead of creating a new diff object, it's possible to just test if
3209−// there *is* a diff. During the actual patch, do the diff again and make the
3210−// modifications directly. This way, there's no new allocations. Worth it?
3211−function _VirtualDom_diffFacts(x, y, category)
3215− // look for changes and removals
3216− for (var xKey in x)
3218− if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')
3220− var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);
3224− diff[xKey] = subDiff;
3229− // remove if not in the new facts
3235− ? (typeof x[xKey] === 'string' ? '' : null)
3237− (category === 'a1')
3240− (category === 'a0' || category === 'a3')
3243− { f: x[xKey].f, o: undefined };
3248− var xValue = x[xKey];
3249− var yValue = y[xKey];
3251− // reference equal, so don't worry about it
3252− if (xValue === yValue && xKey !== 'value' && xKey !== 'checked'
3253− || category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))
3259− diff[xKey] = yValue;
3263− for (var yKey in y)
3268− diff[yKey] = y[yKey];
3280−function _VirtualDom_diffKids(xParent, yParent, patches, index)
3282− var xKids = xParent.e;
3283− var yKids = yParent.e;
3285− var xLen = xKids.length;
3286− var yLen = yKids.length;
3288− // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS
3292− _VirtualDom_pushPatch(patches, 6, index, {
3297− else if (xLen < yLen)
3299− _VirtualDom_pushPatch(patches, 7, index, {
3305− // PAIRWISE DIFF EVERYTHING ELSE
3307− for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)
3309− var xKid = xKids[i];
3310− _VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);
3311− index += xKid.b || 0;
3320−function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)
3322− var localPatches = [];
3324− var changes = {}; // Dict String Entry
3325− var inserts = []; // Array { index : Int, entry : Entry }
3326− // type Entry = { tag : String, vnode : VNode, index : Int, data : _ }
3328− var xKids = xParent.e;
3329− var yKids = yParent.e;
3330− var xLen = xKids.length;
3331− var yLen = yKids.length;
3335− var index = rootIndex;
3337− while (xIndex < xLen && yIndex < yLen)
3339− var x = xKids[xIndex];
3340− var y = yKids[yIndex];
3347− var newMatch = undefined;
3348− var oldMatch = undefined;
3350− // check if keys match
3355− _VirtualDom_diffHelp(xNode, yNode, localPatches, index);
3356− index += xNode.b || 0;
3363− // look ahead 1 to detect insertions and removals.
3365− var xNext = xKids[xIndex + 1];
3366− var yNext = yKids[yIndex + 1];
3370− var xNextKey = xNext.a;
3371− var xNextNode = xNext.b;
3372− oldMatch = yKey === xNextKey;
3377− var yNextKey = yNext.a;
3378− var yNextNode = yNext.b;
3379− newMatch = xKey === yNextKey;
3384− if (newMatch && oldMatch)
3387− _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
3388− _VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);
3389− index += xNode.b || 0;
3392− _VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);
3393− index += xNextNode.b || 0;
3404− _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
3405− _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
3406− index += xNode.b || 0;
3417− _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
3418− index += xNode.b || 0;
3421− _VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);
3422− index += xNextNode.b || 0;
3429− // remove x, insert y
3430− if (xNext && xNextKey === yNextKey)
3433− _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
3434− _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
3435− index += xNode.b || 0;
3438− _VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);
3439− index += xNextNode.b || 0;
3449− // eat up any remaining nodes with removeNode and insertNode
3451− while (xIndex < xLen)
3454− var x = xKids[xIndex];
3456− _VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);
3457− index += xNode.b || 0;
3461− while (yIndex < yLen)
3463− var endInserts = endInserts || [];
3464− var y = yKids[yIndex];
3465− _VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);
3469− if (localPatches.length > 0 || inserts.length > 0 || endInserts)
3471− _VirtualDom_pushPatch(patches, 8, rootIndex, {
3481−// CHANGES FROM KEYED DIFF
3484−var _VirtualDom_POSTFIX = '_elmW6BL';
3487−function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)
3489− var entry = changes[key];
3491− // never seen this key before
3501− inserts.push({ r: yIndex, A: entry });
3502− changes[key] = entry;
3507− // this key was removed earlier, a match!
3510− inserts.push({ r: yIndex, A: entry });
3513− var subPatches = [];
3514− _VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);
3524− // this key has already been inserted or moved, a duplicate!
3525− _VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);
3529−function _VirtualDom_removeNode(changes, localPatches, key, vnode, index)
3531− var entry = changes[key];
3533− // never seen this key before
3536− var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);
3548− // this key was inserted earlier, a match!
3552− var subPatches = [];
3553− _VirtualDom_diffHelp(vnode, entry.z, subPatches, index);
3555− _VirtualDom_pushPatch(localPatches, 9, index, {
3563− // this key has already been removed or moved, a duplicate!
3564− _VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);
3571−// Each DOM node has an "index" assigned in order of traversal. It is important
3572−// to minimize our crawl over the actual DOM, so these indexes (along with the
3573−// descendantsCount of virtual nodes) let us skip touching entire subtrees of
3574−// the DOM if we know there are no patches there.
3577−function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)
3579− _VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);
3583−// assumes `patches` is non-empty and indexes increase monotonically.
3584−function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)
3586− var patch = patches[i];
3587− var index = patch.r;
3589− while (index === low)
3591− var patchType = patch.$;
3593− if (patchType === 1)
3595− _VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);
3597− else if (patchType === 8)
3600− patch.u = eventNode;
3602− var subPatches = patch.s.w;
3603− if (subPatches.length > 0)
3605− _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
3608− else if (patchType === 9)
3611− patch.u = eventNode;
3613− var data = patch.s;
3616− data.A.s = domNode;
3617− var subPatches = data.w;
3618− if (subPatches.length > 0)
3620− _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
3627− patch.u = eventNode;
3632− if (!(patch = patches[i]) || (index = patch.r) > high)
3642− var subNode = vNode.k;
3644− while (subNode.$ === 4)
3646− subNode = subNode.k;
3649− return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, _VirtualDom_getMeta(domNode).elm_event_node_ref);
3652− // tag must be 1 or 2 at this point
3654− var vKids = vNode.e;
3655− var childNodes = _Lynx_getChildren(domNode);
3656− for (var j = 0; j < vKids.length; j++)
3659− var vKid = tag === 1 ? vKids[j] : vKids[j].b;
3660− var nextLow = low + (vKid.b || 0);
3661− if (low <= index && index <= nextLow)
3663− i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);
3664− if (!(patch = patches[i]) || (index = patch.r) > high)
3679−function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)
3681− if (patches.length === 0)
3683− return rootDomNode;
3686− _VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);
3687− return _VirtualDom_applyPatchesHelp(rootDomNode, patches);
3690−function _VirtualDom_applyPatchesHelp(rootDomNode, patches)
3692− for (var i = 0; i < patches.length; i++)
3694− var patch = patches[i];
3695− var localDomNode = patch.t
3696− var newNode = _VirtualDom_applyPatch(localDomNode, patch);
3697− if (localDomNode === rootDomNode)
3699− rootDomNode = newNode;
3702− return rootDomNode;
3705−function _VirtualDom_applyPatch(domNode, patch)
3710− return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);
3713− _VirtualDom_applyFacts(domNode, patch.u, patch.s);
3717− _Lynx_setAttribute(domNode, 'text', patch.s);
3721− return _VirtualDom_applyPatchesHelp(domNode, patch.s);
3724− if (_VirtualDom_getMeta(domNode).elm_event_node_ref)
3726− _VirtualDom_getMeta(domNode).elm_event_node_ref.j = patch.s;
3730− _VirtualDom_getMeta(domNode).elm_event_node_ref = { j: patch.s, p: patch.u };
3735− var data = patch.s;
3736− for (var i = 0; i < data.i; i++)
3738− var children = _Lynx_getChildren(domNode);
3739− _Lynx_removeElement(domNode, children[data.v]);
3744− var data = patch.s;
3746− for (var i = data.v; i < kids.length; i++)
3748− _Lynx_appendChild(domNode, _VirtualDom_render(kids[i], patch.u));
3753− var data = patch.s;
3756− _Lynx_removeElement(_Lynx_getParent(domNode), domNode);
3759− var entry = data.A;
3760− if (typeof entry.r !== 'undefined')
3762− _Lynx_removeElement(_Lynx_getParent(domNode), domNode);
3764− entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);
3768− return _VirtualDom_applyPatchReorder(domNode, patch);
3771− return patch.s(domNode);
3774− throw new Error('VirtualDom: unknown patch type');
3779−function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)
3781− var parentNode = _Lynx_getParent(domNode);
3782− var newNode = _VirtualDom_render(vNode, eventNode);
3784− if (!_VirtualDom_getMeta(newNode).elm_event_node_ref)
3786− _VirtualDom_getMeta(newNode).elm_event_node_ref = _VirtualDom_getMeta(domNode).elm_event_node_ref;
3789− if (parentNode && newNode !== domNode)
3791− _Lynx_replaceElement(parentNode, newNode, domNode);
3797−function _VirtualDom_applyPatchReorder(domNode, patch)
3799− var data = patch.s;
3801− // remove end inserts
3802− var endInsertNodes = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);
3805− domNode = _VirtualDom_applyPatchesHelp(domNode, data.w);
3808− var inserts = data.x;
3809− for (var i = 0; i < inserts.length; i++)
3811− var insert = inserts[i];
3812− var entry = insert.A;
3813− var node = entry.c === 2
3815− : _VirtualDom_render(entry.z, patch.u);
3816− var children = _Lynx_getChildren(domNode);
3817− _Lynx_insertBefore(domNode, node, children[insert.r]);
3821− if (endInsertNodes)
3823− for (var i = 0; i < endInsertNodes.length; i++)
3825− _Lynx_appendChild(domNode, endInsertNodes[i]);
3833−function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)
3841− for (var i = 0; i < endInserts.length; i++)
3843− var insert = endInserts[i];
3844− var entry = insert.A;
3845− nodes.push(entry.c === 2
3847− : _VirtualDom_render(entry.z, patch.u)
3854−function _VirtualDom_dekey(keyedNode)
3856− var keyedKids = keyedNode.e;
3857− var len = keyedKids.length;
3858− var kids = new Array(len);
3859− for (var i = 0; i < len; i++)
3861− kids[i] = keyedKids[i].b;
3876−// LYNXJS PAPI WRAPPERS
3877−var _Browser_lynx = (typeof globalThis !== 'undefined' ? globalThis : scope);
3878−function _Browser_newPage() {
3879− return _Browser_lynx['page'];
3881−function _Browser_flush() {
3882− var fn = _Browser_lynx['_' + '_FlushElementTree'];
3883− if (typeof fn === 'function') { fn(); }
3891−var _Browser_element = F4(function(impl, flagDecoder, debugMetadata, args)
3893− return _Platform_initialize(
3898− impl.subscriptions,
3899− function(sendToApp, initialModel) {
3900− var view = impl.view;
3901− var domNode = args['node'] || _Browser_newPage();
3902− var currNode = view(initialModel);
3903− var currDomNode = _VirtualDom_render(currNode, sendToApp);
3904− _VirtualDom_appendChild(domNode, currDomNode);
3907− return _Browser_makeAnimator(initialModel, function(model)
3909− var nextNode = view(model);
3910− var patches = _VirtualDom_diff(currNode, nextNode);
3911− currDomNode = _VirtualDom_applyPatches(currDomNode, currNode, patches, sendToApp);
3912− currNode = nextNode;
3924−var _Browser_document = F4(function(impl, flagDecoder, debugMetadata, args)
3926− return _Platform_initialize(
3931− impl.subscriptions,
3932− function(sendToApp, initialModel) {
3933− var view = impl.view;
3934− var rootNode = args['node'] || _Browser_newPage();
3935− var doc = view(initialModel);
3936− var currNode = _VirtualDom_node('view')(_List_Nil)(doc.body);
3937− var currDomNode = _VirtualDom_render(currNode, sendToApp);
3938− _VirtualDom_appendChild(rootNode, currDomNode);
3941− return _Browser_makeAnimator(initialModel, function(model)
3943− var doc = view(model);
3944− var nextNode = _VirtualDom_node('view')(_List_Nil)(doc.body);
3945− var patches = _VirtualDom_diff(currNode, nextNode);
3946− currDomNode = _VirtualDom_applyPatches(currDomNode, currNode, patches, sendToApp);
3947− currNode = nextNode;
3959−var _Browser_cancelAnimationFrame =
3960− function(id) { clearTimeout(id); };
3962−var _Browser_requestAnimationFrame =
3963− function(callback) { return setTimeout(callback, 1000 / 60); };
3966−function _Browser_makeAnimator(model, draw)
3972− function updateIfNeeded()
3974− state = state === 1
3976− : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 );
3979− return function(nextModel, isSync)
3985− state === 2 && (state = 1)
3987− : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded),
3998−function _Browser_application(impl)
4000− return _Browser_document({
4001− init: function(flags)
4003− return A3(impl.init, flags, _Browser_fakeUrl(), {});
4006− update: impl.update,
4007− subscriptions: impl.subscriptions
4011−function _Browser_fakeUrl()
4014− protocol: { $: 0 },
4025−var _Browser_go = F2(function(key, n)
4027− return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
4033−var _Browser_pushUrl = F2(function(key, url)
4035− return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
4041−var _Browser_replaceUrl = F2(function(key, url)
4043− return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
4054−var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} };
4055−var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode;
4056−var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode;
4058−var _Browser_on = F3(function(node, eventName, sendToSelf)
4060− return _Scheduler_spawn(_Scheduler_binding(function(callback)
4062− return function() {};
4066−var _Browser_decodeEvent = F2(function(decoder, event)
4068− var result = _Json_runHelp(decoder, event);
4069− return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing;
4077−function _Browser_visibilityInfo()
4079− return (typeof _VirtualDom_doc.hidden !== 'undefined')
4080− ? { hidden: 'hidden', change: 'visibilitychange' }
4082− (typeof _VirtualDom_doc.mozHidden !== 'undefined')
4083− ? { hidden: 'mozHidden', change: 'mozvisibilitychange' }
4085− (typeof _VirtualDom_doc.msHidden !== 'undefined')
4086− ? { hidden: 'msHidden', change: 'msvisibilitychange' }
4088− (typeof _VirtualDom_doc.webkitHidden !== 'undefined')
4089− ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' }
4090− : { hidden: 'hidden', change: 'visibilitychange' };
4098−function _Browser_rAF()
4100− return _Scheduler_binding(function(callback)
4102− var id = _Browser_requestAnimationFrame(function() {
4103− callback(_Scheduler_succeed(Date.now()));
4106− return function() {
4107− _Browser_cancelAnimationFrame(id);
4113−function _Browser_now()
4115− return _Scheduler_binding(function(callback)
4117− callback(_Scheduler_succeed(Date.now()));
4126−function _Browser_withNode(id, doStuff)
4128− return _Scheduler_binding(function(callback)
4130− callback(_Scheduler_fail($lynxjs_elm$browser$Browser$Dom$NotFound(id)));
4135−function _Browser_withWindow(doStuff)
4137− return _Scheduler_binding(function(callback)
4139− _Browser_requestAnimationFrame(function() {
4140− callback(_Scheduler_succeed(doStuff()));
4149−var _Browser_call = F2(function(functionName, id)
4151− return _Browser_withNode(id, function(node) {
4152− node[functionName]();
4153− return _Utils_Tuple0;
4162−function _Browser_getViewport()
4165− scene: _Browser_getScene(),
4167− x: _Browser_window.pageXOffset,
4168− y: _Browser_window.pageYOffset,
4169− width: _Browser_doc.documentElement.clientWidth,
4170− height: _Browser_doc.documentElement.clientHeight
4175−function _Browser_getScene()
4177− var body = _Browser_doc.body;
4178− var elem = _Browser_doc.documentElement;
4180− width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth),
4181− height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight)
4185−var _Browser_setViewport = F2(function(x, y)
4187− return _Browser_withWindow(function()
4189− _Browser_window.scroll(x, y);
4190− return _Utils_Tuple0;
4199−function _Browser_getViewportOf(id)
4201− return _Browser_withNode(id, function(node)
4205− width: node.scrollWidth,
4206− height: node.scrollHeight
4209− x: node.scrollLeft,
4211− width: node.clientWidth,
4212− height: node.clientHeight
4219−var _Browser_setViewportOf = F3(function(id, x, y)
4221− return _Browser_withNode(id, function(node)
4223− node.scrollLeft = x;
4224− node.scrollTop = y;
4225− return _Utils_Tuple0;
4234−function _Browser_getElement(id)
4236− return _Browser_withNode(id, function(node)
4238− var rect = node.getBoundingClientRect();
4239− var x = _Browser_window.pageXOffset;
4240− var y = _Browser_window.pageYOffset;
4242− scene: _Browser_getScene(),
4246− width: _Browser_doc.documentElement.clientWidth,
4247− height: _Browser_doc.documentElement.clientHeight
4253− height: rect.height
4264−function _Browser_reload(skipCache)
4266− return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
4272−function _Browser_load(url)
4274− return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
4282− // Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here.
4283− // Other browsers reload the page, so let's be consistent about that.
4291−var _Bitwise_and = F2(function(a, b)
4296−var _Bitwise_or = F2(function(a, b)
4301−var _Bitwise_xor = F2(function(a, b)
4306−function _Bitwise_complement(a)
4311−var _Bitwise_shiftLeftBy = F2(function(offset, a)
4313− return a << offset;
4316−var _Bitwise_shiftRightBy = F2(function(offset, a)
4318− return a >> offset;
4321−var _Bitwise_shiftRightZfBy = F2(function(offset, a)
4323− return a >>> offset;
4328−function _Time_now(millisToPosix)
4330− return _Scheduler_binding(function(callback)
4332− callback(_Scheduler_succeed(millisToPosix(Date.now())));
4336−var _Time_setInterval = F2(function(interval, task)
4338− return _Scheduler_binding(function(callback)
4340− var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval);
4341− return function() { clearInterval(id); };
4345−function _Time_here()
4347− return _Scheduler_binding(function(callback)
4349− callback(_Scheduler_succeed(
4350− A2($elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil)
4356−function _Time_getZoneName()
4358− return _Scheduler_binding(function(callback)
4362− var name = $elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone);
4366− var name = $elm$time$Time$Offset(new Date().getTimezoneOffset());
4368− callback(_Scheduler_succeed(name));
4375−function _Bytes_width(bytes)
4377− return bytes.byteLength;
4380−var _Bytes_getHostEndianness = F2(function(le, be)
4382− return _Scheduler_binding(function(callback)
4384− callback(_Scheduler_succeed(new Uint8Array(new Uint32Array([1]))[0] === 1 ? le : be));
4391−function _Bytes_encode(encoder)
4393− var mutableBytes = new DataView(new ArrayBuffer($elm$bytes$Bytes$Encode$getWidth(encoder)));
4394− $elm$bytes$Bytes$Encode$write(encoder)(mutableBytes)(0);
4395− return mutableBytes;
4401−var _Bytes_write_i8 = F3(function(mb, i, n) { mb.setInt8(i, n); return i + 1; });
4402−var _Bytes_write_i16 = F4(function(mb, i, n, isLE) { mb.setInt16(i, n, isLE); return i + 2; });
4403−var _Bytes_write_i32 = F4(function(mb, i, n, isLE) { mb.setInt32(i, n, isLE); return i + 4; });
4406−// UNSIGNED INTEGERS
4408−var _Bytes_write_u8 = F3(function(mb, i, n) { mb.setUint8(i, n); return i + 1 ;});
4409−var _Bytes_write_u16 = F4(function(mb, i, n, isLE) { mb.setUint16(i, n, isLE); return i + 2; });
4410−var _Bytes_write_u32 = F4(function(mb, i, n, isLE) { mb.setUint32(i, n, isLE); return i + 4; });
4415−var _Bytes_write_f32 = F4(function(mb, i, n, isLE) { mb.setFloat32(i, n, isLE); return i + 4; });
4416−var _Bytes_write_f64 = F4(function(mb, i, n, isLE) { mb.setFloat64(i, n, isLE); return i + 8; });
4421−var _Bytes_write_bytes = F3(function(mb, offset, bytes)
4423− for (var i = 0, len = bytes.byteLength, limit = len - 4; i <= limit; i += 4)
4425− mb.setUint32(offset + i, bytes.getUint32(i));
4427− for (; i < len; i++)
4429− mb.setUint8(offset + i, bytes.getUint8(i));
4431− return offset + len;
4437−function _Bytes_getStringWidth(string)
4439− for (var width = 0, i = 0; i < string.length; i++)
4441− var code = string.charCodeAt(i);
4443− (code < 0x80) ? 1 :
4444− (code < 0x800) ? 2 :
4445− (code < 0xD800 || 0xDBFF < code) ? 3 : (i++, 4);
4450−var _Bytes_write_string = F3(function(mb, offset, string)
4452− for (var i = 0; i < string.length; i++)
4454− var code = string.charCodeAt(i);
4457− ? (mb.setUint8(offset, code)
4462− ? (mb.setUint16(offset, 0xC080 /* 0b1100000010000000 */
4463− | (code >>> 6 & 0x1F /* 0b00011111 */) << 8
4464− | code & 0x3F /* 0b00111111 */)
4468− (code < 0xD800 || 0xDBFF < code)
4469− ? (mb.setUint16(offset, 0xE080 /* 0b1110000010000000 */
4470− | (code >>> 12 & 0xF /* 0b00001111 */) << 8
4471− | code >>> 6 & 0x3F /* 0b00111111 */)
4472− , mb.setUint8(offset + 2, 0x80 /* 0b10000000 */
4473− | code & 0x3F /* 0b00111111 */)
4477− (code = (code - 0xD800) * 0x400 + string.charCodeAt(++i) - 0xDC00 + 0x10000
4478− , mb.setUint32(offset, 0xF0808080 /* 0b11110000100000001000000010000000 */
4479− | (code >>> 18 & 0x7 /* 0b00000111 */) << 24
4480− | (code >>> 12 & 0x3F /* 0b00111111 */) << 16
4481− | (code >>> 6 & 0x3F /* 0b00111111 */) << 8
4482− | code & 0x3F /* 0b00111111 */)
4492−var _Bytes_decode = F2(function(decoder, bytes)
4495− return $elm$core$Maybe$Just(A2(decoder, bytes, 0).b);
4497− return $elm$core$Maybe$Nothing;
4501−var _Bytes_read_i8 = F2(function( bytes, offset) { return _Utils_Tuple2(offset + 1, bytes.getInt8(offset)); });
4502−var _Bytes_read_i16 = F3(function(isLE, bytes, offset) { return _Utils_Tuple2(offset + 2, bytes.getInt16(offset, isLE)); });
4503−var _Bytes_read_i32 = F3(function(isLE, bytes, offset) { return _Utils_Tuple2(offset + 4, bytes.getInt32(offset, isLE)); });
4504−var _Bytes_read_u8 = F2(function( bytes, offset) { return _Utils_Tuple2(offset + 1, bytes.getUint8(offset)); });
4505−var _Bytes_read_u16 = F3(function(isLE, bytes, offset) { return _Utils_Tuple2(offset + 2, bytes.getUint16(offset, isLE)); });
4506−var _Bytes_read_u32 = F3(function(isLE, bytes, offset) { return _Utils_Tuple2(offset + 4, bytes.getUint32(offset, isLE)); });
4507−var _Bytes_read_f32 = F3(function(isLE, bytes, offset) { return _Utils_Tuple2(offset + 4, bytes.getFloat32(offset, isLE)); });
4508−var _Bytes_read_f64 = F3(function(isLE, bytes, offset) { return _Utils_Tuple2(offset + 8, bytes.getFloat64(offset, isLE)); });
4510−var _Bytes_read_bytes = F3(function(len, bytes, offset)
4512− return _Utils_Tuple2(offset + len, new DataView(bytes.buffer, bytes.byteOffset + offset, len));
4515−var _Bytes_read_string = F3(function(len, bytes, offset)
4518− var end = offset + len;
4519− for (; offset < end;)
4521− var byte = bytes.getUint8(offset++);
4524− ? String.fromCharCode(byte)
4526− ((byte & 0xE0 /* 0b11100000 */) === 0xC0 /* 0b11000000 */)
4527− ? String.fromCharCode((byte & 0x1F /* 0b00011111 */) << 6 | bytes.getUint8(offset++) & 0x3F /* 0b00111111 */)
4529− ((byte & 0xF0 /* 0b11110000 */) === 0xE0 /* 0b11100000 */)
4530− ? String.fromCharCode(
4531− (byte & 0xF /* 0b00001111 */) << 12
4532− | (bytes.getUint8(offset++) & 0x3F /* 0b00111111 */) << 6
4533− | bytes.getUint8(offset++) & 0x3F /* 0b00111111 */
4537− ((byte & 0x7 /* 0b00000111 */) << 18
4538− | (bytes.getUint8(offset++) & 0x3F /* 0b00111111 */) << 12
4539− | (bytes.getUint8(offset++) & 0x3F /* 0b00111111 */) << 6
4540− | bytes.getUint8(offset++) & 0x3F /* 0b00111111 */
4542− , String.fromCharCode(Math.floor(byte / 0x400) + 0xD800, byte % 0x400 + 0xDC00)
4545− return _Utils_Tuple2(offset, string);
4548−var _Bytes_decodeFailure = F2(function() { throw 0; });
4554−var _Http_toTask = F3(function(router, toTask, request)
4556− return _Scheduler_binding(function(callback)
4558− function done(response) {
4559− callback(toTask(request.expect.a(response)));
4562− var controller = new AbortController();
4563− var isAborted = false;
4566− var timeoutMs = request.timeout.a || 0;
4570− timeoutId = setTimeout(function() {
4572− controller.abort();
4573− done($lynxjs_elm$http$Http$Timeout_);
4579− for (var h = request.headers; h.b; h = h.b) // WHILE_CONS
4581− headers[h.a.a] = h.a.b;
4583− if (request.body.a)
4585− headers['Content-Type'] = request.body.a;
4590− method: request.method,
4592− signal: controller.signal
4594− if (request.body.b)
4596− options.body = request.body.b;
4600− var url = request.url;
4601− try { new URL(url, 'http://localhost'); }
4602− catch (e) { return done($lynxjs_elm$http$Http$BadUrl_(url)); }
4605− fetch(url, options).then(function(response)
4607− var bodyPromise = request.expect.b === 'arraybuffer'
4608− ? response.arrayBuffer()
4611− return bodyPromise.then(function(body)
4613− if (timeoutId) { clearTimeout(timeoutId); }
4616− url: response.url || url,
4617− statusCode: response.status,
4618− statusText: response.statusText,
4619− headers: _Http_parseHeaders(response.headers)
4622− var toBody = request.expect.c;
4624− 200 <= response.status && response.status < 300 ? $lynxjs_elm$http$Http$GoodStatus_ : $lynxjs_elm$http$Http$BadStatus_,
4629− }).catch(function(e)
4631− if (timeoutId) { clearTimeout(timeoutId); }
4634− done($lynxjs_elm$http$Http$NetworkError_);
4639− $elm$core$Maybe$isJust(request.tracker) && _Http_track(router, controller, request.tracker.a);
4641− return function() { isAborted = true; controller.abort(); };
4648−function _Http_parseHeaders(headers)
4650− var dict = $elm$core$Dict$empty;
4651− headers.forEach(function(value, key)
4653− dict = A3($elm$core$Dict$update, key, function(oldValue) {
4654− return $elm$core$Maybe$Just($elm$core$Maybe$isJust(oldValue)
4655− ? value + ', ' + oldValue.a
4666−var _Http_expect = F3(function(type, toBody, toValue)
4676−var _Http_mapExpect = F2(function(func, expect)
4682− a: function(x) { return func(expect.a(x)); }
4686−function _Http_toDataView(arrayBuffer)
4688− return _Bytes_wrap(new DataView(arrayBuffer));
4694−var _Http_emptyBody = { $: 0 };
4695−var _Http_pair = F2(function(a, b) { return { $: 0, a: a, b: b }; });
4697−function _Http_toFormData(parts)
4699− for (var formData = new FormData(); parts.b; parts = parts.b) // WHILE_CONS
4701− var part = parts.a;
4702− formData.append(part.a, part.b);
4707−var _Http_bytesToBlob = F2(function(mime, bytes)
4709− return new Blob([bytes], { type: mime });
4715−function _Http_track(router, controller, tracker)
4717− // fetch does not support upload/download progress events natively.
4718− // Progress subscriptions will not fire, but the tracker still enables
4719− // cancellation via Http.cancel.
4724−// NOBLE/CURVES BUNDLE (https://github.com/paulmillr/noble-curves, MIT License)
4725−// Embedded: @noble/curves 2.0.1 - secp256k1, ed25519, x25519, P-256
4727−var _Crypto_noble=(()=>{var ie=Object.defineProperty;var Nn=Object.getOwnPropertyDescriptor;var Dn=Object.getOwnPropertyNames;var Zn=Object.prototype.hasOwnProperty;var Cn=(e,t)=>{for(var r in t)ie(e,r,{get:t[r],enumerable:!0})},Vn=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Dn(t))!Zn.call(e,o)&&o!==r&&ie(e,o,{get:()=>t[o],enumerable:!(n=Nn(t,o))||n.enumerable});return e};var Mn=e=>Vn(ie({},"a",{value:!0}),e);var Er={};Cn(Er,{bytesToHex:()=>nt,ed25519:()=>Ln,hexToBytes:()=>rt,p256:()=>qn,secp256k1:()=>Sn,x25519:()=>Un});function wt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function ot(e,t=""){if(!Number.isSafeInteger(e)||e<0){let r=t&&`"${t}" `;throw new Error(`${r}expected integer >= 0, got ${e}`)}}function N(e,t,r=""){let n=wt(e),o=e?.length,f=t!==void 0;if(!n||f&&o!==t){let i=r&&`"${r}" `,c=f?` of length ${t}`:"",s=n?`length=${o}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+c+", got "+s)}return e}function Wt(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash must wrapped by utils.createHasher");ot(e.outputLen),ot(e.blockLen)}function Rt(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Ve(e,t){N(e,void 0,"digestInto() output");let r=t.outputLen;if(e.length<r)throw new Error('"digestInto() output" expected to be of length >='+r)}function at(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function $t(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function et(e,t){return e<<32-t|e>>>t}var Me=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",kn=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function nt(e){if(N(e),Me)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=kn[e[r]];return t}var ct={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ce(e){if(e>=ct._0&&e<=ct._9)return e-ct._0;if(e>=ct.A&&e<=ct.F)return e-(ct.A-10);if(e>=ct.a&&e<=ct.f)return e-(ct.a-10)}function rt(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Me)return Uint8Array.fromHex(e);let t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let o=0,f=0;o<r;o++,f+=2){let i=Ce(e.charCodeAt(f)),c=Ce(e.charCodeAt(f+1));if(i===void 0||c===void 0){let s=e[f]+e[f+1];throw new Error('hex string expected, got non-hex character "'+s+'" at index '+f)}n[o]=i*16+c}return n}function tt(...e){let t=0;for(let n=0;n<e.length;n++){let o=e[n];N(o),t+=o.length}let r=new Uint8Array(t);for(let n=0,o=0;n<e.length;n++){let f=e[n];r.set(f,o),o+=f.length}return r}function ce(e,t={}){let r=(o,f)=>e(f).update(o).digest(),n=e(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.create=o=>e(o),Object.assign(r,t),Object.freeze(r)}function ht(e=32){let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return t.getRandomValues(new Uint8Array(e))}var ae=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function ke(e,t,r){return e&t^~e&r}function Ye(e,t,r){return e&t^e&r^t&r}var Ct=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,r,n,o){this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=$t(this.buffer)}update(t){Rt(this),N(t);let{view:r,buffer:n,blockLen:o}=this,f=t.length;for(let i=0;i<f;){let c=Math.min(o-this.pos,f-i);if(c===o){let s=$t(t);for(;o<=f-i;i+=o)this.process(s,i);continue}n.set(t.subarray(i,i+c),this.pos),this.pos+=c,i+=c,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Rt(this),Ve(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:f}=this,{pos:i}=this;r[i++]=128,at(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(n,0),i=0);for(let x=i;x<o;x++)r[x]=0;n.setBigUint64(o-8,BigInt(this.length*8),f),this.process(n,0);let c=$t(t),s=this.outputLen;if(s%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let l=s/4,h=this.get();if(l>h.length)throw new Error("_sha2: outputLen bigger than state");for(let x=0;x<l;x++)c.setUint32(4*x,h[x],f)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||=new this.constructor,t.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:f,destroyed:i,pos:c}=this;return t.destroyed=i,t.finished=f,t.length=o,t.pos=c,o%r&&t.buffer.set(n),t}clone(){return this._cloneInto()}},dt=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Q=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Pt=BigInt(4294967295),Xe=BigInt(32);function Yn(e,t=!1){return t?{h:Number(e&Pt),l:Number(e>>Xe&Pt)}:{h:Number(e>>Xe&Pt)|0,l:Number(e&Pt)|0}}function Ge(e,t=!1){let r=e.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let f=0;f<r;f++){let{h:i,l:c}=Yn(e[f],t);[n[f],o[f]]=[i,c]}return[n,o]}var de=(e,t,r)=>e>>>r,ue=(e,t,r)=>e<<32-r|t>>>r,Bt=(e,t,r)=>e>>>r|t<<32-r,Et=(e,t,r)=>e<<32-r|t>>>r,Vt=(e,t,r)=>e<<64-r|t>>>r-32,Mt=(e,t,r)=>e>>>r-32|t<<64-r;function ft(e,t,r,n){let o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}var Ke=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),je=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,ze=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),We=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0,$e=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0),Pe=(e,t,r,n,o,f)=>t+r+n+o+f+(e/2**32|0)|0;var Gn=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),bt=new Uint32Array(64),le=class extends Ct{constructor(t){super(64,t,8,!1)}get(){let{A:t,B:r,C:n,D:o,E:f,F:i,G:c,H:s}=this;return[t,r,n,o,f,i,c,s]}set(t,r,n,o,f,i,c,s){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=f|0,this.F=i|0,this.G=c|0,this.H=s|0}process(t,r){for(let x=0;x<16;x++,r+=4)bt[x]=t.getUint32(r,!1);for(let x=16;x<64;x++){let v=bt[x-15],E=bt[x-2],w=et(v,7)^et(v,18)^v>>>3,L=et(E,17)^et(E,19)^E>>>10;bt[x]=L+bt[x-7]+w+bt[x-16]|0}let{A:n,B:o,C:f,D:i,E:c,F:s,G:l,H:h}=this;for(let x=0;x<64;x++){let v=et(c,6)^et(c,11)^et(c,25),E=h+v+ke(c,s,l)+Gn[x]+bt[x]|0,L=(et(n,2)^et(n,13)^et(n,22))+Ye(n,o,f)|0;h=l,l=s,s=c,c=i+E|0,i=f,f=o,o=n,n=E+L|0}n=n+this.A|0,o=o+this.B|0,f=f+this.C|0,i=i+this.D|0,c=c+this.E|0,s=s+this.F|0,l=l+this.G|0,h=h+this.H|0,this.set(n,o,f,i,c,s,l,h)}roundClean(){at(bt)}destroy(){this.set(0,0,0,0,0,0,0,0),at(this.buffer)}},he=class extends le{A=dt[0]|0;B=dt[1]|0;C=dt[2]|0;D=dt[3]|0;E=dt[4]|0;F=dt[5]|0;G=dt[6]|0;H=dt[7]|0;constructor(){super(32)}};var Qe=Ge(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Kn=Qe[0],jn=Qe[1],xt=new Uint32Array(80),mt=new Uint32Array(80),be=class extends Ct{constructor(t){super(128,t,16,!1)}get(){let{Ah:t,Al:r,Bh:n,Bl:o,Ch:f,Cl:i,Dh:c,Dl:s,Eh:l,El:h,Fh:x,Fl:v,Gh:E,Gl:w,Hh:L,Hl:y}=this;return[t,r,n,o,f,i,c,s,l,h,x,v,E,w,L,y]}set(t,r,n,o,f,i,c,s,l,h,x,v,E,w,L,y){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=o|0,this.Ch=f|0,this.Cl=i|0,this.Dh=c|0,this.Dl=s|0,this.Eh=l|0,this.El=h|0,this.Fh=x|0,this.Fl=v|0,this.Gh=E|0,this.Gl=w|0,this.Hh=L|0,this.Hl=y|0}process(t,r){for(let p=0;p<16;p++,r+=4)xt[p]=t.getUint32(r),mt[p]=t.getUint32(r+=4);for(let p=16;p<80;p++){let T=xt[p-15]|0,D=mt[p-15]|0,V=Bt(T,D,1)^Bt(T,D,8)^de(T,D,7),k=Et(T,D,1)^Et(T,D,8)^ue(T,D,7),B=xt[p-2]|0,b=mt[p-2]|0,q=Bt(B,b,19)^Vt(B,b,61)^de(B,b,6),Z=Et(B,b,19)^Mt(B,b,61)^ue(B,b,6),O=ze(k,Z,mt[p-7],mt[p-16]),u=We(O,V,q,xt[p-7],xt[p-16]);xt[p]=u|0,mt[p]=O|0}let{Ah:n,Al:o,Bh:f,Bl:i,Ch:c,Cl:s,Dh:l,Dl:h,Eh:x,El:v,Fh:E,Fl:w,Gh:L,Gl:y,Hh:g,Hl:R}=this;for(let p=0;p<80;p++){let T=Bt(x,v,14)^Bt(x,v,18)^Vt(x,v,41),D=Et(x,v,14)^Et(x,v,18)^Mt(x,v,41),V=x&E^~x&L,k=v&w^~v&y,B=$e(R,D,k,jn[p],mt[p]),b=Pe(B,g,T,V,Kn[p],xt[p]),q=B|0,Z=Bt(n,o,28)^Vt(n,o,34)^Vt(n,o,39),O=Et(n,o,28)^Mt(n,o,34)^Mt(n,o,39),u=n&f^n&c^f&c,a=o&i^o&s^i&s;g=L|0,R=y|0,L=E|0,y=w|0,E=x|0,w=v|0,{h:x,l:v}=ft(l|0,h|0,b|0,q|0),l=c|0,h=s|0,c=f|0,s=i|0,f=n|0,i=o|0;let d=Ke(q,O,a);n=je(d,b,Z,u),o=d|0}({h:n,l:o}=ft(this.Ah|0,this.Al|0,n|0,o|0)),{h:f,l:i}=ft(this.Bh|0,this.Bl|0,f|0,i|0),{h:c,l:s}=ft(this.Ch|0,this.Cl|0,c|0,s|0),{h:l,l:h}=ft(this.Dh|0,this.Dl|0,l|0,h|0),{h:x,l:v}=ft(this.Eh|0,this.El|0,x|0,v|0),{h:E,l:w}=ft(this.Fh|0,this.Fl|0,E|0,w|0),{h:L,l:y}=ft(this.Gh|0,this.Gl|0,L|0,y|0),{h:g,l:R}=ft(this.Hh|0,this.Hl|0,g|0,R|0),this.set(n,o,f,i,c,s,l,h,x,v,E,w,L,y,g,R)}roundClean(){at(xt,mt)}destroy(){at(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},xe=class extends be{Ah=Q[0]|0;Al=Q[1]|0;Bh=Q[2]|0;Bl=Q[3]|0;Ch=Q[4]|0;Cl=Q[5]|0;Dh=Q[6]|0;Dl=Q[7]|0;Eh=Q[8]|0;El=Q[9]|0;Fh=Q[10]|0;Fl=Q[11]|0;Gh=Q[12]|0;Gl=Q[13]|0;Hh=Q[14]|0;Hl=Q[15]|0;constructor(){super(64)}};var Qt=ce(()=>new he,ae(1));var me=ce(()=>new xe,ae(3));var pe=BigInt(0),ge=BigInt(1);function ut(e,t=""){if(typeof e!="boolean"){let r=t&&`"${t}" `;throw new Error(r+"expected boolean, got type="+typeof e)}return e}function Je(e){if(typeof e=="bigint"){if(!Jt(e))throw new Error("positive bigint expected, got "+e)}else ot(e);return e}function kt(e){let t=Je(e).toString(16);return t.length&1?"0"+t:t}function Fe(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?pe:BigInt("0x"+e)}function Ot(e){return Fe(nt(e))}function st(e){return Fe(nt(vt(N(e)).reverse()))}function Ft(e,t){ot(t),e=Je(e);let r=rt(e.toString(16).padStart(t*2,"0"));if(r.length!==t)throw new Error("number too large");return r}function Yt(e,t){return Ft(e,t).reverse()}function vt(e){return Uint8Array.from(e)}var Jt=e=>typeof e=="bigint"&&pe<=e;function zn(e,t,r){return Jt(e)&&Jt(t)&&Jt(r)&&t<=e&&e<r}function gt(e,t,r,n){if(!zn(t,r,n))throw new Error("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function ye(e){let t;for(t=0;e>pe;e>>=ge,t+=1);return t}var Xt=e=>(ge<<BigInt(e))-ge;function tn(e,t,r){if(ot(e,"hashLen"),ot(t,"qByteLen"),typeof r!="function")throw new Error("hmacFn must be a function");let n=y=>new Uint8Array(y),o=Uint8Array.of(),f=Uint8Array.of(0),i=Uint8Array.of(1),c=1e3,s=n(e),l=n(e),h=0,x=()=>{s.fill(1),l.fill(0),h=0},v=(...y)=>r(l,tt(s,...y)),E=(y=o)=>{l=v(f,y),s=v(),y.length!==0&&(l=v(i,y),s=v())},w=()=>{if(h++>=c)throw new Error("drbg: tried max amount of iterations");let y=0,g=[];for(;y<t;){s=v();let R=s.slice();g.push(R),y+=s.length}return tt(...g)};return(y,g)=>{x(),E(y);let R;for(;!(R=g(w()));)E();return x(),R}}function it(e,t={},r={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function n(f,i,c){let s=e[f];if(c&&s===void 0)return;let l=typeof s;if(l!==i||s===null)throw new Error(`param "${f}" is invalid: expected ${i}, got ${l}`)}let o=(f,i)=>Object.entries(f).forEach(([c,s])=>n(c,s,i));o(t,!1),o(r,!0)}function Ht(e){let t=new WeakMap;return(r,...n)=>{let o=t.get(r);if(o!==void 0)return o;let f=e(r,...n);return t.set(r,f),f}}var J=BigInt(0),$=BigInt(1),St=BigInt(2),rn=BigInt(3),on=BigInt(4),fn=BigInt(5),Wn=BigInt(7),sn=BigInt(8),$n=BigInt(9),cn=BigInt(16);function j(e,t){let r=e%t;return r>=J?r:t+r}function G(e,t,r){let n=e;for(;t-- >J;)n*=n,n%=r;return n}function en(e,t){if(e===J)throw new Error("invert: expected non-zero number");if(t<=J)throw new Error("invert: expected positive modulus, got "+t);let r=j(e,t),n=t,o=J,f=$,i=$,c=J;for(;r!==J;){let l=n/r,h=n%r,x=o-i*l,v=f-c*l;n=r,r=h,o=i,f=c,i=x,c=v}if(n!==$)throw new Error("invert: does not exist");return j(o,t)}function Be(e,t,r){if(!e.eql(e.sqr(t),r))throw new Error("Cannot find square root")}function an(e,t){let r=(e.ORDER+$)/on,n=e.pow(t,r);return Be(e,n,t),n}function Pn(e,t){let r=(e.ORDER-fn)/sn,n=e.mul(t,St),o=e.pow(n,r),f=e.mul(t,o),i=e.mul(e.mul(f,St),o),c=e.mul(f,e.sub(i,e.ONE));return Be(e,c,t),c}function Qn(e){let t=Tt(e),r=dn(e),n=r(t,t.neg(t.ONE)),o=r(t,n),f=r(t,t.neg(n)),i=(e+Wn)/cn;return(c,s)=>{let l=c.pow(s,i),h=c.mul(l,n),x=c.mul(l,o),v=c.mul(l,f),E=c.eql(c.sqr(h),s),w=c.eql(c.sqr(x),s);l=c.cmov(l,h,E),h=c.cmov(v,x,w);let L=c.eql(c.sqr(h),s),y=c.cmov(l,h,L);return Be(c,y,s),y}}function dn(e){if(e<rn)throw new Error("sqrt is not defined for small field");let t=e-$,r=0;for(;t%St===J;)t/=St,r++;let n=St,o=Tt(e);for(;nn(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return an;let f=o.pow(n,t),i=(t+$)/St;return function(s,l){if(s.is0(l))return l;if(nn(s,l)!==1)throw new Error("Cannot find square root");let h=r,x=s.mul(s.ONE,f),v=s.pow(l,t),E=s.pow(l,i);for(;!s.eql(v,s.ONE);){if(s.is0(v))return s.ZERO;let w=1,L=s.sqr(v);for(;!s.eql(L,s.ONE);)if(w++,L=s.sqr(L),w===h)throw new Error("Cannot find square root");let y=$<<BigInt(h-w-1),g=s.pow(x,y);h=w,x=s.sqr(g),v=s.mul(v,x),E=s.mul(E,g)}return E}}function Jn(e){return e%on===rn?an:e%sn===fn?Pn:e%cn===$n?Qn(e):dn(e)}var un=(e,t)=>(j(e,t)&$)===$,Fn=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Ee(e){let t={ORDER:"bigint",BYTES:"number",BITS:"number"},r=Fn.reduce((n,o)=>(n[o]="function",n),t);return it(e,r),e}function tr(e,t,r){if(r<J)throw new Error("invalid exponent, negatives unsupported");if(r===J)return e.ONE;if(r===$)return t;let n=e.ONE,o=t;for(;r>J;)r&$&&(n=e.mul(n,o)),o=e.sqr(o),r>>=$;return n}function Gt(e,t,r=!1){let n=new Array(t.length).fill(r?e.ZERO:void 0),o=t.reduce((i,c,s)=>e.is0(c)?i:(n[s]=i,e.mul(i,c)),e.ONE),f=e.inv(o);return t.reduceRight((i,c,s)=>e.is0(c)?i:(n[s]=e.mul(i,n[s]),e.mul(i,c)),f),n}function nn(e,t){let r=(e.ORDER-$)/St,n=e.pow(t,r),o=e.eql(n,e.ONE),f=e.eql(n,e.ZERO),i=e.eql(n,e.neg(e.ONE));if(!o&&!f&&!i)throw new Error("invalid Legendre symbol result");return o?1:f?0:-1}function er(e,t){t!==void 0&&ot(t);let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}var we=class{ORDER;BITS;BYTES;isLE;ZERO=J;ONE=$;_lengths;_sqrt;_mod;constructor(t,r={}){if(t<=J)throw new Error("invalid field: expected ORDER > 0, got "+t);let n;this.isLE=!1,r!=null&&typeof r=="object"&&(typeof r.BITS=="number"&&(n=r.BITS),typeof r.sqrt=="function"&&(this.sqrt=r.sqrt),typeof r.isLE=="boolean"&&(this.isLE=r.isLE),r.allowedLengths&&(this._lengths=r.allowedLengths?.slice()),typeof r.modFromBytes=="boolean"&&(this._mod=r.modFromBytes));let{nBitLength:o,nByteLength:f}=er(t,n);if(f>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=o,this.BYTES=f,this._sqrt=void 0,Object.preventExtensions(this)}create(t){return j(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof t);return J<=t&&t<this.ORDER}is0(t){return t===J}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&$)===$}neg(t){return j(-t,this.ORDER)}eql(t,r){return t===r}sqr(t){return j(t*t,this.ORDER)}add(t,r){return j(t+r,this.ORDER)}sub(t,r){return j(t-r,this.ORDER)}mul(t,r){return j(t*r,this.ORDER)}pow(t,r){return tr(this,t,r)}div(t,r){return j(t*en(r,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,r){return t+r}subN(t,r){return t-r}mulN(t,r){return t*r}inv(t){return en(t,this.ORDER)}sqrt(t){return this._sqrt||(this._sqrt=Jn(this.ORDER)),this._sqrt(this,t)}toBytes(t){return this.isLE?Yt(t,this.BYTES):Ft(t,this.BYTES)}fromBytes(t,r=!1){N(t);let{_lengths:n,BYTES:o,isLE:f,ORDER:i,_mod:c}=this;if(n){if(!n.includes(t.length)||t.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+t.length);let l=new Uint8Array(o);l.set(t,f?0:l.length-t.length),t=l}if(t.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+t.length);let s=f?st(t):Ot(t);if(c&&(s=j(s,i)),!r&&!this.isValid(s))throw new Error("invalid field element: outside of range 0..ORDER");return s}invertBatch(t){return Gt(this,t)}cmov(t,r,n){return n?r:t}};function Tt(e,t={}){return new we(e,t)}function ln(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function ve(e){let t=ln(e);return t+Math.ceil(t/2)}function Se(e,t,r=!1){N(e);let n=e.length,o=ln(t),f=ve(t);if(n<16||n<f||n>1024)throw new Error("expected "+f+"-1024 bytes of input, got "+n);let i=r?st(e):Ot(e),c=j(i,t-$)+$;return r?Yt(c,o):Ft(c,o)}var Lt=BigInt(0),_t=BigInt(1);function Kt(e,t){let r=t.negate();return e?r:t}function It(e,t){let r=Gt(e.Fp,t.map(n=>n.Z));return t.map((n,o)=>e.fromAffine(n.toAffine(r[o])))}function mn(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function _e(e,t){mn(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),o=2**e,f=Xt(e),i=BigInt(e);return{windows:r,windowSize:n,mask:f,maxNumber:o,shiftBy:i}}function hn(e,t,r){let{windowSize:n,mask:o,maxNumber:f,shiftBy:i}=r,c=Number(e&o),s=e>>i;c>n&&(c-=f,s+=_t);let l=t*n,h=l+Math.abs(c)-1,x=c===0,v=c<0,E=t%2!==0;return{nextN:s,offset:h,isZero:x,isNeg:v,isNegF:E,offsetF:l}}var Ie=new WeakMap,gn=new WeakMap;function Ae(e){return gn.get(e)||1}function bn(e){if(e!==Lt)throw new Error("invalid wNAF")}var Ut=class{BASE;ZERO;Fn;bits;constructor(t,r){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=r}_unsafeLadder(t,r,n=this.ZERO){let o=t;for(;r>Lt;)r&_t&&(n=n.add(o)),o=o.double(),r>>=_t;return n}precomputeWindow(t,r){let{windows:n,windowSize:o}=_e(r,this.bits),f=[],i=t,c=i;for(let s=0;s<n;s++){c=i,f.push(c);for(let l=1;l<o;l++)c=c.add(i),f.push(c);i=c.double()}return f}wNAF(t,r,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,f=this.BASE,i=_e(t,this.bits);for(let c=0;c<i.windows;c++){let{nextN:s,offset:l,isZero:h,isNeg:x,isNegF:v,offsetF:E}=hn(n,c,i);n=s,h?f=f.add(Kt(v,r[E])):o=o.add(Kt(x,r[l]))}return bn(n),{p:o,f}}wNAFUnsafe(t,r,n,o=this.ZERO){let f=_e(t,this.bits);for(let i=0;i<f.windows&&n!==Lt;i++){let{nextN:c,offset:s,isZero:l,isNeg:h}=hn(n,i,f);if(n=c,!l){let x=r[s];o=o.add(h?x.negate():x)}}return bn(n),o}getPrecomputes(t,r,n){let o=Ie.get(r);return o||(o=this.precomputeWindow(r,t),t!==1&&(typeof n=="function"&&(o=n(o)),Ie.set(r,o))),o}cached(t,r,n){let o=Ae(t);return this.wNAF(o,this.getPrecomputes(o,t,n),r)}unsafe(t,r,n,o){let f=Ae(t);return f===1?this._unsafeLadder(t,r,o):this.wNAFUnsafe(f,this.getPrecomputes(f,t,n),r,o)}createCache(t,r){mn(r,this.bits),gn.set(t,r),Ie.delete(t)}hasCache(t){return Ae(t)!==1}};function pn(e,t,r,n){let o=t,f=e.ZERO,i=e.ZERO;for(;r>Lt||n>Lt;)r&_t&&(f=f.add(o)),n&_t&&(i=i.add(o)),o=o.double(),r>>=_t,n>>=_t;return{p1:f,p2:i}}function xn(e,t,r){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Ee(t),t}else return Tt(e,{isLE:r})}function te(e,t,r={},n){if(n===void 0&&(n=e==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${e} CURVE object`);for(let s of["p","n","h"]){let l=t[s];if(!(typeof l=="bigint"&&l>Lt))throw new Error(`CURVE.${s} must be positive bigint`)}let o=xn(t.p,r.Fp,n),f=xn(t.n,r.Fn,n),c=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(let s of c)if(!o.isValid(t[s]))throw new Error(`CURVE.${s} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:f}}function qt(e,t){return function(n){let o=e(n);return{secretKey:o,publicKey:t(o)}}}var ee=class{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(t,r){if(Wt(t),N(r,void 0,"key"),this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(r.length>n?t.create().update(r).digest():r);for(let f=0;f<o.length;f++)o[f]^=54;this.iHash.update(o),this.oHash=t.create();for(let f=0;f<o.length;f++)o[f]^=106;this.oHash.update(o),at(o)}update(t){return Rt(this),this.iHash.update(t),this}digestInto(t){Rt(this),N(t,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});let{oHash:r,iHash:n,finished:o,destroyed:f,blockLen:i,outputLen:c}=this;return t=t,t.finished=o,t.destroyed=f,t.blockLen=i,t.outputLen=c,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Re=(e,t,r)=>new ee(e,t).update(r).digest();Re.create=(e,t)=>new ee(e,t);var yn=(e,t)=>(e+(e>=0?t:-t)/wn)/t;function nr(e,t,r){let[[n,o],[f,i]]=t,c=yn(i*e,r),s=yn(-o*e,r),l=e-c*n-s*f,h=-c*o-s*i,x=l<lt,v=h<lt;x&&(l=-l),v&&(h=-h);let E=Xt(Math.ceil(ye(r)/2))+Nt;if(l<lt||l>=E||h<lt||h>=E)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:x,k1:l,k2neg:v,k2:h}}function He(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function Oe(e,t){let r={};for(let n of Object.keys(t))r[n]=e[n]===void 0?t[n]:e[n];return ut(r.lowS,"lowS"),ut(r.prehash,"prehash"),r.format!==void 0&&He(r.format),r}var Te=class extends Error{constructor(t=""){super(t)}},pt={Err:Te,_tlv:{encode:(e,t)=>{let{Err:r}=pt;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length&1)throw new r("tlv.encode: unpadded data");let n=t.length/2,o=kt(n);if(o.length/2&128)throw new r("tlv.encode: long form length too big");let f=n>127?kt(o.length/2|128):"";return kt(e)+f+o+t},decode(e,t){let{Err:r}=pt,n=0;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");let o=t[n++],f=!!(o&128),i=0;if(!f)i=o;else{let s=o&127;if(!s)throw new r("tlv.decode(long): indefinite length not supported");if(s>4)throw new r("tlv.decode(long): byte length is too big");let l=t.subarray(n,n+s);if(l.length!==s)throw new r("tlv.decode: length bytes not complete");if(l[0]===0)throw new r("tlv.decode(long): zero leftmost byte");for(let h of l)i=i<<8|h;if(n+=s,i<128)throw new r("tlv.decode(long): not minimal encoding")}let c=t.subarray(n,n+i);if(c.length!==i)throw new r("tlv.decode: wrong value length");return{v:c,l:t.subarray(n+i)}}},_int:{encode(e){let{Err:t}=pt;if(e<lt)throw new t("integer: negative integers are not allowed");let r=kt(e);if(Number.parseInt(r[0],16)&8&&(r="00"+r),r.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return r},decode(e){let{Err:t}=pt;if(e[0]&128)throw new t("invalid signature integer: negative");if(e[0]===0&&!(e[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return Ot(e)}},toSig(e){let{Err:t,_int:r,_tlv:n}=pt,o=N(e,void 0,"signature"),{v:f,l:i}=n.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:c,l:s}=n.decode(2,f),{v:l,l:h}=n.decode(2,s);if(h.length)throw new t("invalid signature: left bytes after parsing");return{r:r.decode(c),s:r.decode(l)}},hexFromSig(e){let{_tlv:t,_int:r}=pt,n=t.encode(2,r.encode(e.r)),o=t.encode(2,r.encode(e.s)),f=n+o;return t.encode(48,f)}},lt=BigInt(0),Nt=BigInt(1),wn=BigInt(2),ne=BigInt(3),rr=BigInt(4);function re(e,t={}){let r=te("weierstrass",e,t),{Fp:n,Fn:o}=r,f=r.CURVE,{h:i,n:c}=f;it(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:s}=t;if(s&&(!n.is0(f.a)||typeof s.beta!="bigint"||!Array.isArray(s.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let l=En(n,o);function h(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function x(O,u,a){let{x:d,y:m}=u.toAffine(),I=n.toBytes(d);if(ut(a,"isCompressed"),a){h();let S=!n.isOdd(m);return tt(Bn(S),I)}else return tt(Uint8Array.of(4),I,n.toBytes(m))}function v(O){N(O,void 0,"Point");let{publicKey:u,publicKeyUncompressed:a}=l,d=O.length,m=O[0],I=O.subarray(1);if(d===u&&(m===2||m===3)){let S=n.fromBytes(I);if(!n.isValid(S))throw new Error("bad point: is not on curve, wrong x");let A=L(S),_;try{_=n.sqrt(A)}catch(K){let M=K instanceof Error?": "+K.message:"";throw new Error("bad point: is not on curve, sqrt error"+M)}h();let H=n.isOdd(_);return(m&1)===1!==H&&(_=n.neg(_)),{x:S,y:_}}else if(d===a&&m===4){let S=n.BYTES,A=n.fromBytes(I.subarray(0,S)),_=n.fromBytes(I.subarray(S,S*2));if(!y(A,_))throw new Error("bad point: is not on curve");return{x:A,y:_}}else throw new Error(`bad point: got length ${d}, expected compressed=${u} or uncompressed=${a}`)}let E=t.toBytes||x,w=t.fromBytes||v;function L(O){let u=n.sqr(O),a=n.mul(u,O);return n.add(n.add(a,n.mul(O,f.a)),f.b)}function y(O,u){let a=n.sqr(u),d=L(O);return n.eql(a,d)}if(!y(f.Gx,f.Gy))throw new Error("bad curve params: generator point");let g=n.mul(n.pow(f.a,ne),rr),R=n.mul(n.sqr(f.b),BigInt(27));if(n.is0(n.add(g,R)))throw new Error("bad curve params: a or b");function p(O,u,a=!1){if(!n.isValid(u)||a&&n.is0(u))throw new Error(`bad point coordinate ${O}`);return u}function T(O){if(!(O instanceof b))throw new Error("Weierstrass Point expected")}function D(O){if(!s||!s.basises)throw new Error("no endo");return nr(O,s.basises,o.ORDER)}let V=Ht((O,u)=>{let{X:a,Y:d,Z:m}=O;if(n.eql(m,n.ONE))return{x:a,y:d};let I=O.is0();u==null&&(u=I?n.ONE:n.inv(m));let S=n.mul(a,u),A=n.mul(d,u),_=n.mul(m,u);if(I)return{x:n.ZERO,y:n.ZERO};if(!n.eql(_,n.ONE))throw new Error("invZ was invalid");return{x:S,y:A}}),k=Ht(O=>{if(O.is0()){if(t.allowInfinityPoint&&!n.is0(O.Y))return;throw new Error("bad point: ZERO")}let{x:u,y:a}=O.toAffine();if(!n.isValid(u)||!n.isValid(a))throw new Error("bad point: x or y not field elements");if(!y(u,a))throw new Error("bad point: equation left != right");if(!O.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function B(O,u,a,d,m){return a=new b(n.mul(a.X,O),a.Y,a.Z),u=Kt(d,u),a=Kt(m,a),u.add(a)}class b{static BASE=new b(f.Gx,f.Gy,n.ONE);static ZERO=new b(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(u,a,d){this.X=p("x",u),this.Y=p("y",a,!0),this.Z=p("z",d),Object.freeze(this)}static CURVE(){return f}static fromAffine(u){let{x:a,y:d}=u||{};if(!u||!n.isValid(a)||!n.isValid(d))throw new Error("invalid affine point");if(u instanceof b)throw new Error("projective point not allowed");return n.is0(a)&&n.is0(d)?b.ZERO:new b(a,d,n.ONE)}static fromBytes(u){let a=b.fromAffine(w(N(u,void 0,"point")));return a.assertValidity(),a}static fromHex(u){return b.fromBytes(rt(u))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(u=8,a=!0){return Z.createCache(this,u),a||this.multiply(ne),this}assertValidity(){k(this)}hasEvenY(){let{y:u}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(u)}equals(u){T(u);let{X:a,Y:d,Z:m}=this,{X:I,Y:S,Z:A}=u,_=n.eql(n.mul(a,A),n.mul(I,m)),H=n.eql(n.mul(d,A),n.mul(S,m));return _&&H}negate(){return new b(this.X,n.neg(this.Y),this.Z)}double(){let{a:u,b:a}=f,d=n.mul(a,ne),{X:m,Y:I,Z:S}=this,A=n.ZERO,_=n.ZERO,H=n.ZERO,U=n.mul(m,m),K=n.mul(I,I),M=n.mul(S,S),C=n.mul(m,I);return C=n.add(C,C),H=n.mul(m,S),H=n.add(H,H),A=n.mul(u,H),_=n.mul(d,M),_=n.add(A,_),A=n.sub(K,_),_=n.add(K,_),_=n.mul(A,_),A=n.mul(C,A),H=n.mul(d,H),M=n.mul(u,M),C=n.sub(U,M),C=n.mul(u,C),C=n.add(C,H),H=n.add(U,U),U=n.add(H,U),U=n.add(U,M),U=n.mul(U,C),_=n.add(_,U),M=n.mul(I,S),M=n.add(M,M),U=n.mul(M,C),A=n.sub(A,U),H=n.mul(M,K),H=n.add(H,H),H=n.add(H,H),new b(A,_,H)}add(u){T(u);let{X:a,Y:d,Z:m}=this,{X:I,Y:S,Z:A}=u,_=n.ZERO,H=n.ZERO,U=n.ZERO,K=f.a,M=n.mul(f.b,ne),C=n.mul(a,I),Y=n.mul(d,S),z=n.mul(m,A),F=n.add(a,d),X=n.add(I,S);F=n.mul(F,X),X=n.add(C,Y),F=n.sub(F,X),X=n.add(a,m);let W=n.add(I,A);return X=n.mul(X,W),W=n.add(C,z),X=n.sub(X,W),W=n.add(d,m),_=n.add(S,A),W=n.mul(W,_),_=n.add(Y,z),W=n.sub(W,_),U=n.mul(K,X),_=n.mul(M,z),U=n.add(_,U),_=n.sub(Y,U),U=n.add(Y,U),H=n.mul(_,U),Y=n.add(C,C),Y=n.add(Y,C),z=n.mul(K,z),X=n.mul(M,X),Y=n.add(Y,z),z=n.sub(C,z),z=n.mul(K,z),X=n.add(X,z),C=n.mul(Y,X),H=n.add(H,C),C=n.mul(W,X),_=n.mul(F,_),_=n.sub(_,C),C=n.mul(F,Y),U=n.mul(W,U),U=n.add(U,C),new b(_,H,U)}subtract(u){return this.add(u.negate())}is0(){return this.equals(b.ZERO)}multiply(u){let{endo:a}=t;if(!o.isValidNot0(u))throw new Error("invalid scalar: out of range");let d,m,I=S=>Z.cached(this,S,A=>It(b,A));if(a){let{k1neg:S,k1:A,k2neg:_,k2:H}=D(u),{p:U,f:K}=I(A),{p:M,f:C}=I(H);m=K.add(C),d=B(a.beta,U,M,S,_)}else{let{p:S,f:A}=I(u);d=S,m=A}return It(b,[d,m])[0]}multiplyUnsafe(u){let{endo:a}=t,d=this;if(!o.isValid(u))throw new Error("invalid scalar: out of range");if(u===lt||d.is0())return b.ZERO;if(u===Nt)return d;if(Z.hasCache(this))return this.multiply(u);if(a){let{k1neg:m,k1:I,k2neg:S,k2:A}=D(u),{p1:_,p2:H}=pn(b,d,I,A);return B(a.beta,_,H,m,S)}else return Z.unsafe(d,u)}toAffine(u){return V(this,u)}isTorsionFree(){let{isTorsionFree:u}=t;return i===Nt?!0:u?u(b,this):Z.unsafe(this,c).is0()}clearCofactor(){let{clearCofactor:u}=t;return i===Nt?this:u?u(b,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(u=!0){return ut(u,"isCompressed"),this.assertValidity(),E(b,this,u)}toHex(u=!0){return nt(this.toBytes(u))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let q=o.BITS,Z=new Ut(b,t.endo?Math.ceil(q/2):q);return b.BASE.precompute(8),b}function Bn(e){return Uint8Array.of(e?2:3)}function En(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function or(e,t={}){let{Fn:r}=e,n=t.randomBytes||ht,o=Object.assign(En(e.Fp,r),{seed:ve(r.ORDER)});function f(E){try{let w=r.fromBytes(E);return r.isValidNot0(w)}catch{return!1}}function i(E,w){let{publicKey:L,publicKeyUncompressed:y}=o;try{let g=E.length;return w===!0&&g!==L||w===!1&&g!==y?!1:!!e.fromBytes(E)}catch{return!1}}function c(E=n(o.seed)){return Se(N(E,o.seed,"seed"),r.ORDER)}function s(E,w=!0){return e.BASE.multiply(r.fromBytes(E)).toBytes(w)}function l(E){let{secretKey:w,publicKey:L,publicKeyUncompressed:y}=o;if(!wt(E)||"_lengths"in r&&r._lengths||w===L)return;let g=N(E,void 0,"key").length;return g===L||g===y}function h(E,w,L=!0){if(l(E)===!0)throw new Error("first arg must be private key");if(l(w)===!1)throw new Error("second arg must be public key");let y=r.fromBytes(E);return e.fromBytes(w).multiply(y).toBytes(L)}let x={isValidSecretKey:f,isValidPublicKey:i,randomSecretKey:c},v=qt(c,s);return Object.freeze({getPublicKey:s,getSharedSecret:h,keygen:v,Point:e,utils:x,lengths:o})}function oe(e,t,r={}){Wt(t),it(r,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),r=Object.assign({},r);let n=r.randomBytes||ht,o=r.hmac||((a,d)=>Re(t,a,d)),{Fp:f,Fn:i}=e,{ORDER:c,BITS:s}=i,{keygen:l,getPublicKey:h,getSharedSecret:x,utils:v,lengths:E}=or(e,r),w={prehash:!0,lowS:typeof r.lowS=="boolean"?r.lowS:!0,format:"compact",extraEntropy:!1},L=c*wn<f.ORDER;function y(a){let d=c>>Nt;return a>d}function g(a,d){if(!i.isValidNot0(d))throw new Error(`invalid signature ${a}: out of range 1..Point.Fn.ORDER`);return d}function R(){if(L)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function p(a,d){He(d);let m=E.signature,I=d==="compact"?m:d==="recovered"?m+1:void 0;return N(a,I)}class T{r;s;recovery;constructor(d,m,I){if(this.r=g("r",d),this.s=g("s",m),I!=null){if(R(),![0,1,2,3].includes(I))throw new Error("invalid recovery id");this.recovery=I}Object.freeze(this)}static fromBytes(d,m=w.format){p(d,m);let I;if(m==="der"){let{r:H,s:U}=pt.toSig(N(d));return new T(H,U)}m==="recovered"&&(I=d[0],m="compact",d=d.subarray(1));let S=E.signature/2,A=d.subarray(0,S),_=d.subarray(S,S*2);return new T(i.fromBytes(A),i.fromBytes(_),I)}static fromHex(d,m){return this.fromBytes(rt(d),m)}assertRecovery(){let{recovery:d}=this;if(d==null)throw new Error("invalid recovery id: must be present");return d}addRecoveryBit(d){return new T(this.r,this.s,d)}recoverPublicKey(d){let{r:m,s:I}=this,S=this.assertRecovery(),A=S===2||S===3?m+c:m;if(!f.isValid(A))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let _=f.toBytes(A),H=e.fromBytes(tt(Bn((S&1)===0),_)),U=i.inv(A),K=V(N(d,void 0,"msgHash")),M=i.create(-K*U),C=i.create(I*U),Y=e.BASE.multiplyUnsafe(M).add(H.multiplyUnsafe(C));if(Y.is0())throw new Error("invalid recovery: point at infinify");return Y.assertValidity(),Y}hasHighS(){return y(this.s)}toBytes(d=w.format){if(He(d),d==="der")return rt(pt.hexFromSig(this));let{r:m,s:I}=this,S=i.toBytes(m),A=i.toBytes(I);return d==="recovered"?(R(),tt(Uint8Array.of(this.assertRecovery()),S,A)):tt(S,A)}toHex(d){return nt(this.toBytes(d))}}let D=r.bits2int||function(d){if(d.length>8192)throw new Error("input is too large");let m=Ot(d),I=d.length*8-s;return I>0?m>>BigInt(I):m},V=r.bits2int_modN||function(d){return i.create(D(d))},k=Xt(s);function B(a){return gt("num < 2^"+s,a,lt,k),i.toBytes(a)}function b(a,d){return N(a,void 0,"message"),d?N(t(a),void 0,"prehashed message"):a}function q(a,d,m){let{lowS:I,prehash:S,extraEntropy:A}=Oe(m,w);a=b(a,S);let _=V(a),H=i.fromBytes(d);if(!i.isValidNot0(H))throw new Error("invalid private key");let U=[B(H),B(_)];if(A!=null&&A!==!1){let Y=A===!0?n(E.secretKey):A;U.push(N(Y,void 0,"extraEntropy"))}let K=tt(...U),M=_;function C(Y){let z=D(Y);if(!i.isValidNot0(z))return;let F=i.inv(z),X=e.BASE.multiply(z).toAffine(),W=i.create(X.x);if(W===lt)return;let At=i.create(F*i.create(M+W*H));if(At===lt)return;let zt=(X.x===W?0:2)|Number(X.y&Nt),Zt=At;return I&&y(At)&&(Zt=i.neg(At),zt^=1),new T(W,Zt,L?void 0:zt)}return{seed:K,k2sig:C}}function Z(a,d,m={}){let{seed:I,k2sig:S}=q(a,d,m);return tn(t.outputLen,i.BYTES,o)(I,S).toBytes(m.format)}function O(a,d,m,I={}){let{lowS:S,prehash:A,format:_}=Oe(I,w);if(m=N(m,void 0,"publicKey"),d=b(d,A),!wt(a)){let H=a instanceof T?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+H)}p(a,_);try{let H=T.fromBytes(a,_),U=e.fromBytes(m);if(S&&H.hasHighS())return!1;let{r:K,s:M}=H,C=V(d),Y=i.inv(M),z=i.create(C*Y),F=i.create(K*Y),X=e.BASE.multiplyUnsafe(z).add(U.multiplyUnsafe(F));return X.is0()?!1:i.create(X.x)===K}catch{return!1}}function u(a,d,m={}){let{prehash:I}=Oe(m,w);return d=b(d,I),T.fromBytes(a,"recovered").recoverPublicKey(d).toBytes()}return Object.freeze({keygen:l,getPublicKey:h,getSharedSecret:x,utils:v,lengths:E,Point:e,sign:Z,verify:O,recoverPublicKey:u,Signature:T,hash:t})}var Ue={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},sr={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var vn=BigInt(2);function ir(e){let t=Ue.p,r=BigInt(3),n=BigInt(6),o=BigInt(11),f=BigInt(22),i=BigInt(23),c=BigInt(44),s=BigInt(88),l=e*e*e%t,h=l*l*e%t,x=G(h,r,t)*h%t,v=G(x,r,t)*h%t,E=G(v,vn,t)*l%t,w=G(E,o,t)*E%t,L=G(w,f,t)*w%t,y=G(L,c,t)*L%t,g=G(y,s,t)*y%t,R=G(g,c,t)*L%t,p=G(R,r,t)*h%t,T=G(p,i,t)*w%t,D=G(T,n,t)*l%t,V=G(D,vn,t);if(!Le.eql(Le.sqr(V),e))throw new Error("Cannot find square root");return V}var Le=Tt(Ue.p,{sqrt:ir}),cr=re(Ue,{Fp:Le,endo:sr}),Sn=oe(cr,Qt);var yt=BigInt(0),P=BigInt(1),qe=BigInt(2),ar=BigInt(8);function dr(e,t,r,n){let o=e.sqr(r),f=e.sqr(n),i=e.add(e.mul(t.a,o),f),c=e.add(e.ONE,e.mul(t.d,e.mul(o,f)));return e.eql(i,c)}function _n(e,t={}){let r=te("edwards",e,t,t.FpFnLE),{Fp:n,Fn:o}=r,f=r.CURVE,{h:i}=f;it(t,{},{uvRatio:"function"});let c=qe<<BigInt(o.BYTES*8)-P,s=y=>n.create(y),l=t.uvRatio||((y,g)=>{try{return{isValid:!0,value:n.sqrt(n.div(y,g))}}catch{return{isValid:!1,value:yt}}});if(!dr(n,f,f.Gx,f.Gy))throw new Error("bad curve params: generator point");function h(y,g,R=!1){let p=R?P:yt;return gt("coordinate "+y,g,p,c),g}function x(y){if(!(y instanceof w))throw new Error("EdwardsPoint expected")}let v=Ht((y,g)=>{let{X:R,Y:p,Z:T}=y,D=y.is0();g==null&&(g=D?ar:n.inv(T));let V=s(R*g),k=s(p*g),B=n.mul(T,g);if(D)return{x:yt,y:P};if(B!==P)throw new Error("invZ was invalid");return{x:V,y:k}}),E=Ht(y=>{let{a:g,d:R}=f;if(y.is0())throw new Error("bad point: ZERO");let{X:p,Y:T,Z:D,T:V}=y,k=s(p*p),B=s(T*T),b=s(D*D),q=s(b*b),Z=s(k*g),O=s(b*s(Z+B)),u=s(q+s(R*s(k*B)));if(O!==u)throw new Error("bad point: equation left != right (1)");let a=s(p*T),d=s(D*V);if(a!==d)throw new Error("bad point: equation left != right (2)");return!0});class w{static BASE=new w(f.Gx,f.Gy,P,s(f.Gx*f.Gy));static ZERO=new w(yt,P,P,yt);static Fp=n;static Fn=o;X;Y;Z;T;constructor(g,R,p,T){this.X=h("x",g),this.Y=h("y",R),this.Z=h("z",p,!0),this.T=h("t",T),Object.freeze(this)}static CURVE(){return f}static fromAffine(g){if(g instanceof w)throw new Error("extended point not allowed");let{x:R,y:p}=g||{};return h("x",R),h("y",p),new w(R,p,P,s(R*p))}static fromBytes(g,R=!1){let p=n.BYTES,{a:T,d:D}=f;g=vt(N(g,p,"point")),ut(R,"zip215");let V=vt(g),k=g[p-1];V[p-1]=k&-129;let B=st(V),b=R?c:n.ORDER;gt("point.y",B,yt,b);let q=s(B*B),Z=s(q-P),O=s(D*q-T),{isValid:u,value:a}=l(Z,O);if(!u)throw new Error("bad point: invalid y coordinate");let d=(a&P)===P,m=(k&128)!==0;if(!R&&a===yt&&m)throw new Error("bad point: x=0 and x_0=1");return m!==d&&(a=s(-a)),w.fromAffine({x:a,y:B})}static fromHex(g,R=!1){return w.fromBytes(rt(g),R)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(g=8,R=!0){return L.createCache(this,g),R||this.multiply(qe),this}assertValidity(){E(this)}equals(g){x(g);let{X:R,Y:p,Z:T}=this,{X:D,Y:V,Z:k}=g,B=s(R*k),b=s(D*T),q=s(p*k),Z=s(V*T);return B===b&&q===Z}is0(){return this.equals(w.ZERO)}negate(){return new w(s(-this.X),this.Y,this.Z,s(-this.T))}double(){let{a:g}=f,{X:R,Y:p,Z:T}=this,D=s(R*R),V=s(p*p),k=s(qe*s(T*T)),B=s(g*D),b=R+p,q=s(s(b*b)-D-V),Z=B+V,O=Z-k,u=B-V,a=s(q*O),d=s(Z*u),m=s(q*u),I=s(O*Z);return new w(a,d,I,m)}add(g){x(g);let{a:R,d:p}=f,{X:T,Y:D,Z:V,T:k}=this,{X:B,Y:b,Z:q,T:Z}=g,O=s(T*B),u=s(D*b),a=s(k*p*Z),d=s(V*q),m=s((T+D)*(B+b)-O-u),I=d-a,S=d+a,A=s(u-R*O),_=s(m*I),H=s(S*A),U=s(m*A),K=s(I*S);return new w(_,H,K,U)}subtract(g){return this.add(g.negate())}multiply(g){if(!o.isValidNot0(g))throw new Error("invalid scalar: expected 1 <= sc < curve.n");let{p:R,f:p}=L.cached(this,g,T=>It(w,T));return It(w,[R,p])[0]}multiplyUnsafe(g,R=w.ZERO){if(!o.isValid(g))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return g===yt?w.ZERO:this.is0()||g===P?this:L.unsafe(this,g,p=>It(w,p),R)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return L.unsafe(this,f.n).is0()}toAffine(g){return v(this,g)}clearCofactor(){return i===P?this:this.multiplyUnsafe(i)}toBytes(){let{x:g,y:R}=this.toAffine(),p=n.toBytes(R);return p[p.length-1]|=g&P?128:0,p}toHex(){return nt(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let L=new Ut(w,o.BITS);return w.BASE.precompute(8),w}function In(e,t,r={}){if(typeof t!="function")throw new Error('"hash" function param is required');it(r,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});let{prehash:n}=r,{BASE:o,Fp:f,Fn:i}=e,c=r.randomBytes||ht,s=r.adjustScalarBytes||(B=>B),l=r.domain||((B,b,q)=>{if(ut(q,"phflag"),b.length||q)throw new Error("Contexts/pre-hash are not supported");return B});function h(B){return i.create(st(B))}function x(B){let b=p.secretKey;N(B,p.secretKey,"secretKey");let q=N(t(B),2*b,"hashedSecretKey"),Z=s(q.slice(0,b)),O=q.slice(b,2*b),u=h(Z);return{head:Z,prefix:O,scalar:u}}function v(B){let{head:b,prefix:q,scalar:Z}=x(B),O=o.multiply(Z),u=O.toBytes();return{head:b,prefix:q,scalar:Z,point:O,pointBytes:u}}function E(B){return v(B).pointBytes}function w(B=Uint8Array.of(),...b){let q=tt(...b);return h(t(l(q,N(B,void 0,"context"),!!n)))}function L(B,b,q={}){B=N(B,void 0,"message"),n&&(B=n(B));let{prefix:Z,scalar:O,pointBytes:u}=v(b),a=w(q.context,Z,B),d=o.multiply(a).toBytes(),m=w(q.context,d,u,B),I=i.create(a+m*O);if(!i.isValid(I))throw new Error("sign failed: invalid s");let S=tt(d,i.toBytes(I));return N(S,p.signature,"result")}let y={zip215:!0};function g(B,b,q,Z=y){let{context:O,zip215:u}=Z,a=p.signature;B=N(B,a,"signature"),b=N(b,void 0,"message"),q=N(q,p.publicKey,"publicKey"),u!==void 0&&ut(u,"zip215"),n&&(b=n(b));let d=a/2,m=B.subarray(0,d),I=st(B.subarray(d,a)),S,A,_;try{S=e.fromBytes(q,u),A=e.fromBytes(m,u),_=o.multiplyUnsafe(I)}catch{return!1}if(!u&&S.isSmallOrder())return!1;let H=w(O,A.toBytes(),S.toBytes(),b);return A.add(S.multiplyUnsafe(H)).subtract(_).clearCofactor().is0()}let R=f.BYTES,p={secretKey:R,publicKey:R,signature:2*R,seed:R};function T(B=c(p.seed)){return N(B,p.seed,"seed")}function D(B){return wt(B)&&B.length===i.BYTES}function V(B,b){try{return!!e.fromBytes(B,b)}catch{return!1}}let k={getExtendedPublicKey:v,randomSecretKey:T,isValidSecretKey:D,isValidPublicKey:V,toMontgomery(B){let{y:b}=e.fromBytes(B),q=p.publicKey,Z=q===32;if(!Z&&q!==57)throw new Error("only defined for 25519 and 448");let O=Z?f.div(P+b,P-b):f.div(b-P,b+P);return f.toBytes(O)},toMontgomerySecret(B){let b=p.secretKey;N(B,b);let q=t(B.subarray(0,b));return s(q).subarray(0,b)}};return Object.freeze({keygen:qt(T,E),getPublicKey:E,sign:L,verify:g,utils:k,Point:e,lengths:p})}var jt=BigInt(0),Dt=BigInt(1),fe=BigInt(2);function ur(e){return it(e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...e})}function An(e){let t=ur(e),{P:r,type:n,adjustScalarBytes:o,powPminus2:f,randomBytes:i}=t,c=n==="x25519";if(!c&&n!=="x448")throw new Error("invalid type");let s=i||ht,l=c?255:448,h=c?32:56,x=BigInt(c?9:5),v=BigInt(c?121665:39081),E=c?fe**BigInt(254):fe**BigInt(447),w=c?BigInt(8)*fe**BigInt(251)-Dt:BigInt(4)*fe**BigInt(445)-Dt,L=E+w+Dt,y=a=>j(a,r),g=R(x);function R(a){return Yt(y(a),h)}function p(a){let d=vt(N(a,h,"uCoordinate"));return c&&(d[31]&=127),y(st(d))}function T(a){return st(o(vt(N(a,h,"scalar"))))}function D(a,d){let m=q(p(d),T(a));if(m===jt)throw new Error("invalid private or public key received");return R(m)}function V(a){return D(a,g)}let k=V,B=D;function b(a,d,m){let I=y(a*(d-m));return d=y(d-I),m=y(m+I),{x_2:d,x_3:m}}function q(a,d){gt("u",a,jt,r),gt("scalar",d,E,L);let m=d,I=a,S=Dt,A=jt,_=a,H=Dt,U=jt;for(let M=BigInt(l-1);M>=jt;M--){let C=m>>M&Dt;U^=C,{x_2:S,x_3:_}=b(U,S,_),{x_2:A,x_3:H}=b(U,A,H),U=C;let Y=S+A,z=y(Y*Y),F=S-A,X=y(F*F),W=z-X,At=_+H,zt=_-H,Zt=y(zt*Y),Ne=y(At*F),De=Zt+Ne,Ze=Zt-Ne;_=y(De*De),H=y(I*y(Ze*Ze)),S=y(z*X),A=y(W*(z+y(v*W)))}({x_2:S,x_3:_}=b(U,S,_)),{x_2:A,x_3:H}=b(U,A,H);let K=f(A);return y(S*K)}let Z={secretKey:h,publicKey:h,seed:h},O=(a=s(h))=>(N(a,Z.seed,"seed"),a),u={randomSecretKey:O};return Object.freeze({keygen:qt(O,k),getSharedSecret:B,getPublicKey:k,scalarMult:D,scalarMultBase:V,utils:u,GuBytes:g.slice(),lengths:Z})}var lr=BigInt(1),Rn=BigInt(2),hr=BigInt(3),br=BigInt(5),xr=BigInt(8),se=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),mr={p:se,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:xr,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Hn(e){let t=BigInt(10),r=BigInt(20),n=BigInt(40),o=BigInt(80),f=se,c=e*e%f*e%f,s=G(c,Rn,f)*c%f,l=G(s,lr,f)*e%f,h=G(l,br,f)*l%f,x=G(h,t,f)*h%f,v=G(x,r,f)*x%f,E=G(v,n,f)*v%f,w=G(E,o,f)*E%f,L=G(w,o,f)*E%f,y=G(L,t,f)*h%f;return{pow_p_5_8:G(y,Rn,f)*e%f,b2:c}}function Tn(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var On=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function gr(e,t){let r=se,n=j(t*t*t,r),o=j(n*n*t,r),f=Hn(e*o).pow_p_5_8,i=j(e*n*f,r),c=j(t*i*i,r),s=i,l=j(i*On,r),h=c===e,x=c===j(-e,r),v=c===j(-e*On,r);return h&&(i=s),(x||v)&&(i=l),un(i,r)&&(i=j(-i,r)),{isValid:h||x,value:i}}var pr=_n(mr,{uvRatio:gr});function yr(e){return In(pr,me,Object.assign({adjustScalarBytes:Tn},e))}var Ln=yr({});var Un=(()=>{let e=se;return An({P:e,type:"x25519",powPminus2:t=>{let{pow_p_5_8:r,b2:n}=Hn(t);return j(G(r,hr,e)*n,e)},adjustScalarBytes:Tn})})();var wr={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")};var Br=re(wr),qn=oe(Br,Qt);return Mn(Er);})();
4728−/*! Bundled license information:
4730−@noble/hashes/utils.js:
4731− (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
4733−@noble/curves/utils.js:
4734−@noble/curves/abstract/modular.js:
4735−@noble/curves/abstract/curve.js:
4736−@noble/curves/abstract/weierstrass.js:
4737−@noble/curves/secp256k1.js:
4738−@noble/curves/abstract/edwards.js:
4739−@noble/curves/abstract/montgomery.js:
4740−@noble/curves/ed25519.js:
4741−@noble/curves/nist.js:
4742− (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
4744−/*! Bundled license information:
4746−@noble/hashes/utils.js:
4747− (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
4749−@noble/curves/utils.js:
4750−@noble/curves/abstract/modular.js:
4751−@noble/curves/abstract/curve.js:
4752−@noble/curves/abstract/weierstrass.js:
4753−@noble/curves/secp256k1.js:
4754−@noble/curves/abstract/edwards.js:
4755−@noble/curves/abstract/montgomery.js:
4756−@noble/curves/ed25519.js:
4757−@noble/curves/nist.js:
4758− (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
4760−/*! Bundled license information:
4762−@noble/hashes/utils.js:
4763− (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
4765−@noble/curves/utils.js:
4766−@noble/curves/abstract/modular.js:
4767−@noble/curves/abstract/curve.js:
4768−@noble/curves/abstract/weierstrass.js:
4769−@noble/curves/secp256k1.js:
4770−@noble/curves/abstract/edwards.js:
4771−@noble/curves/abstract/montgomery.js:
4772−@noble/curves/ed25519.js:
4773−@noble/curves/nist.js:
4774− (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
4776−/*! Bundled license information:
4778−@noble/hashes/utils.js:
4779− (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
4781−@noble/curves/utils.js:
4782−@noble/curves/abstract/modular.js:
4783−@noble/curves/abstract/curve.js:
4784−@noble/curves/abstract/weierstrass.js:
4785−@noble/curves/secp256k1.js:
4786−@noble/curves/abstract/edwards.js:
4787−@noble/curves/ed25519.js:
4788−@noble/curves/nist.js:
4789− (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
4795−var _Crypto_toHex = _Crypto_noble.bytesToHex;
4796−var _Crypto_fromHex = _Crypto_noble.hexToBytes;
4799−// DER CODEC (for ECDSA signatures: secp256k1, P-256)
4801−function _Crypto_bigintToBytes(n, len)
4803− var hex = n.toString(16);
4804− if (hex.length % 2) { hex = '0' + hex; }
4805− while (hex.length < len * 2) { hex = '00' + hex; }
4806− return _Crypto_fromHex(hex);
4809−function _Crypto_bytesToBigint(bytes)
4811− return BigInt('0x' + _Crypto_toHex(bytes));
4814−function _Crypto_compactToDer(compactHex, byteLen)
4816− var bytes = _Crypto_fromHex(compactHex);
4817− var r = bytes.slice(0, byteLen);
4818− var s = bytes.slice(byteLen);
4819− function encodeInt(b) {
4820− // Strip leading zeros, then add back if high bit set
4822− while (i < b.length - 1 && b[i] === 0) { i++; }
4825− var padded = new Uint8Array(b.length + 1);
4832− var rEnc = encodeInt(r);
4833− var sEnc = encodeInt(s);
4834− var totalLen = 2 + rEnc.length + 2 + sEnc.length;
4835− var der = new Uint8Array(2 + totalLen);
4838− der[pos++] = totalLen;
4840− der[pos++] = rEnc.length;
4841− der.set(rEnc, pos); pos += rEnc.length;
4843− der[pos++] = sEnc.length;
4844− der.set(sEnc, pos);
4845− return _Crypto_toHex(der);
4848−function _Crypto_derToCompact(derHex, byteLen)
4850− var der = _Crypto_fromHex(derHex);
4851− if (der[0] !== 0x30) { return null; }
4853− if (der[pos] !== 0x02) { return null; }
4854− var rLen = der[pos + 1]; pos += 2;
4855− var rBytes = der.slice(pos, pos + rLen); pos += rLen;
4856− if (der[pos] !== 0x02) { return null; }
4857− var sLen = der[pos + 1]; pos += 2;
4858− var sBytes = der.slice(pos, pos + sLen);
4859− // Remove leading zero padding
4860− while (rBytes.length > byteLen) { rBytes = rBytes.slice(1); }
4861− while (sBytes.length > byteLen) { sBytes = sBytes.slice(1); }
4862− // Pad to fixed width
4863− var r = new Uint8Array(byteLen);
4864− var s = new Uint8Array(byteLen);
4865− r.set(rBytes, byteLen - rBytes.length);
4866− s.set(sBytes, byteLen - sBytes.length);
4867− var compact = new Uint8Array(byteLen * 2);
4869− compact.set(s, byteLen);
4870− return _Crypto_toHex(compact);
4876−function _Crypto_secp256k1PrivateKeyFromHex(hex)
4879− _Crypto_noble.secp256k1.getPublicKey(_Crypto_fromHex(hex));
4880− return $elm$core$Maybe$Just(hex);
4882− return $elm$core$Maybe$Nothing;
4886−function _Crypto_secp256k1PrivateKeyToHex(key)
4891−function _Crypto_secp256k1PublicKeyFromHex(hex)
4894− _Crypto_noble.secp256k1.Point.fromHex(hex);
4895− return $elm$core$Maybe$Just(hex);
4897− return $elm$core$Maybe$Nothing;
4901−function _Crypto_secp256k1PublicKeyToHex(key)
4906−function _Crypto_secp256k1SignatureFromCompactHex(hex)
4909− var bytes = _Crypto_fromHex(hex);
4910− if (bytes.length !== 64) { return $elm$core$Maybe$Nothing; }
4911− _Crypto_noble.secp256k1.Signature.fromHex(hex);
4912− return $elm$core$Maybe$Just(hex);
4914− return $elm$core$Maybe$Nothing;
4918−function _Crypto_secp256k1SignatureFromDerHex(hex)
4921− var compact = _Crypto_derToCompact(hex, 32);
4922− if (!compact) { return $elm$core$Maybe$Nothing; }
4923− _Crypto_noble.secp256k1.Signature.fromHex(compact);
4924− return $elm$core$Maybe$Just(compact);
4926− return $elm$core$Maybe$Nothing;
4930−function _Crypto_secp256k1SignatureToCompactHex(sig)
4935−function _Crypto_secp256k1SignatureToDerHex(compactHex)
4937− return _Crypto_compactToDer(compactHex, 32);
4940−function _Crypto_secp256k1GetPublicKey(privKey)
4942− return _Crypto_toHex(_Crypto_noble.secp256k1.getPublicKey(_Crypto_fromHex(privKey)));
4945−var _Crypto_secp256k1Sign = F2(function(msgHash, privKey)
4947− var sig = _Crypto_noble.secp256k1.sign(_Crypto_fromHex(msgHash), _Crypto_fromHex(privKey));
4948− return _Crypto_toHex(sig);
4951−var _Crypto_secp256k1Verify = F3(function(sig, msgHash, pubKey)
4954− return _Crypto_noble.secp256k1.verify(
4955− _Crypto_fromHex(sig),
4956− _Crypto_fromHex(msgHash),
4957− _Crypto_fromHex(pubKey)
4964−var _Crypto_secp256k1GetSharedSecret = F2(function(privKey, pubKey)
4966− return _Crypto_toHex(_Crypto_noble.secp256k1.getSharedSecret(_Crypto_fromHex(privKey), _Crypto_fromHex(pubKey)));
4972−function _Crypto_ed25519PrivateKeyFromHex(hex)
4975− _Crypto_noble.ed25519.getPublicKey(_Crypto_fromHex(hex));
4976− return $elm$core$Maybe$Just(hex);
4978− return $elm$core$Maybe$Nothing;
4982−function _Crypto_ed25519PrivateKeyToHex(key)
4987−function _Crypto_ed25519PublicKeyFromHex(hex)
4990− _Crypto_noble.ed25519.Point.fromHex(hex);
4991− return $elm$core$Maybe$Just(hex);
4993− return $elm$core$Maybe$Nothing;
4997−function _Crypto_ed25519PublicKeyToHex(key)
5002−function _Crypto_ed25519SignatureFromHex(hex)
5005− var bytes = _Crypto_fromHex(hex);
5006− if (bytes.length !== 64) { return $elm$core$Maybe$Nothing; }
5007− return $elm$core$Maybe$Just(hex);
5009− return $elm$core$Maybe$Nothing;
5013−function _Crypto_ed25519SignatureToHex(sig)
5018−function _Crypto_ed25519GetPublicKey(privKey)
5020− return _Crypto_toHex(_Crypto_noble.ed25519.getPublicKey(_Crypto_fromHex(privKey)));
5023−var _Crypto_ed25519Sign = F2(function(msg, privKey)
5025− return _Crypto_toHex(_Crypto_noble.ed25519.sign(_Crypto_fromHex(msg), _Crypto_fromHex(privKey)));
5028−var _Crypto_ed25519Verify = F3(function(sig, msg, pubKey)
5031− return _Crypto_noble.ed25519.verify(
5032− _Crypto_fromHex(sig),
5033− _Crypto_fromHex(msg),
5034− _Crypto_fromHex(pubKey)
5042−// X25519 (Diffie-Hellman)
5044−function _Crypto_x25519PrivateKeyFromHex(hex)
5047− var bytes = _Crypto_fromHex(hex);
5048− if (bytes.length !== 32) { return $elm$core$Maybe$Nothing; }
5049− _Crypto_noble.x25519.getPublicKey(bytes);
5050− return $elm$core$Maybe$Just(hex);
5052− return $elm$core$Maybe$Nothing;
5056−function _Crypto_x25519PrivateKeyToHex(key)
5061−function _Crypto_x25519PublicKeyFromHex(hex)
5064− var bytes = _Crypto_fromHex(hex);
5065− if (bytes.length !== 32) { return $elm$core$Maybe$Nothing; }
5066− return $elm$core$Maybe$Just(hex);
5068− return $elm$core$Maybe$Nothing;
5072−function _Crypto_x25519PublicKeyToHex(key)
5077−function _Crypto_x25519GetPublicKey(privKey)
5079− return _Crypto_toHex(_Crypto_noble.x25519.getPublicKey(_Crypto_fromHex(privKey)));
5082−var _Crypto_x25519GetSharedSecret = F2(function(privKey, pubKey)
5084− return _Crypto_toHex(_Crypto_noble.x25519.getSharedSecret(_Crypto_fromHex(privKey), _Crypto_fromHex(pubKey)));
5088−// P-256 (secp256r1)
5090−function _Crypto_p256PrivateKeyFromHex(hex)
5093− _Crypto_noble.p256.getPublicKey(_Crypto_fromHex(hex));
5094− return $elm$core$Maybe$Just(hex);
5096− return $elm$core$Maybe$Nothing;
5100−function _Crypto_p256PrivateKeyToHex(key)
5105−function _Crypto_p256PublicKeyFromHex(hex)
5108− _Crypto_noble.p256.Point.fromHex(hex);
5109− return $elm$core$Maybe$Just(hex);
5111− return $elm$core$Maybe$Nothing;
5115−function _Crypto_p256PublicKeyToHex(key)
5120−function _Crypto_p256SignatureFromCompactHex(hex)
5123− var bytes = _Crypto_fromHex(hex);
5124− if (bytes.length !== 64) { return $elm$core$Maybe$Nothing; }
5125− _Crypto_noble.p256.Signature.fromHex(hex);
5126− return $elm$core$Maybe$Just(hex);
5128− return $elm$core$Maybe$Nothing;
5132−function _Crypto_p256SignatureFromDerHex(hex)
5135− var compact = _Crypto_derToCompact(hex, 32);
5136− if (!compact) { return $elm$core$Maybe$Nothing; }
5137− _Crypto_noble.p256.Signature.fromHex(compact);
5138− return $elm$core$Maybe$Just(compact);
5140− return $elm$core$Maybe$Nothing;
5144−function _Crypto_p256SignatureToCompactHex(sig)
5149−function _Crypto_p256SignatureToDerHex(compactHex)
5151− return _Crypto_compactToDer(compactHex, 32);
5154−function _Crypto_p256GetPublicKey(privKey)
5156− return _Crypto_toHex(_Crypto_noble.p256.getPublicKey(_Crypto_fromHex(privKey)));
5159−var _Crypto_p256Sign = F2(function(msgHash, privKey)
5161− var sig = _Crypto_noble.p256.sign(_Crypto_fromHex(msgHash), _Crypto_fromHex(privKey));
5162− return _Crypto_toHex(sig);
5165−var _Crypto_p256Verify = F3(function(sig, msgHash, pubKey)
5168− return _Crypto_noble.p256.verify(
5169− _Crypto_fromHex(sig),
5170− _Crypto_fromHex(msgHash),
5171− _Crypto_fromHex(pubKey)
5178−var _Crypto_p256GetSharedSecret = F2(function(privKey, pubKey)
5180− return _Crypto_toHex(_Crypto_noble.p256.getSharedSecret(_Crypto_fromHex(privKey), _Crypto_fromHex(pubKey)));
5184−// NOBLE/CIPHERS BUNDLE (https://github.com/paulmillr/noble-ciphers, MIT License)
5185−// Embedded: @noble/ciphers - AES-GCM, ChaCha20-Poly1305, XChaCha20-Poly1305
5187−var _Crypto_ciphers =(()=>{var _t=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var we=Object.getOwnPropertyNames;var be=Object.prototype.hasOwnProperty;var xe=(e,t)=>{for(var n in t)_t(e,n,{get:t[n],enumerable:!0})},me=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of we(t))!be.call(e,o)&&o!==n&&_t(e,o,{get:()=>t[o],enumerable:!(r=de(t,o))||r.enumerable});return e};var Le=e=>me(_t({},"_"+"_esModule",{value:!0}),e);var Ge={};xe(Ge,{cbc:()=>ne,cfb:()=>re,chacha20poly1305:()=>pe,ctr:()=>Gt,ecb:()=>ee,gcm:()=>oe,managedNonce:()=>Vt,randomBytes:()=>xt,siv:()=>se,xchacha20poly1305:()=>ye});function Ee(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function yt(e){if(typeof e!="boolean")throw new Error(`boolean expected, not ${e}`)}function ht(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function E(e,t,n=""){let r=Ee(e),o=e?.length,s=t!==void 0;if(!r||s&&o!==t){let i=n&&`"${n}" `,c=s?` of length ${t}`:"",f=r?`length=${o}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+c+", got "+f)}return e}function et(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function gt(e,t){E(e,void 0,"output");let n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function dt(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function A(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function B(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function at(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var Ue=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function vt(e,t){return e.buffer===t.buffer&&e.byteOffset<t.byteOffset+t.byteLength&&t.byteOffset<e.byteOffset+e.byteLength}function pt(e,t){if(vt(e,t)&&e.byteOffset<t.byteOffset)throw new Error("complex overlap of input and output is not supported")}function Ct(...e){let t=0;for(let r=0;r<e.length;r++){let o=e[r];E(o),t+=o.length}let n=new Uint8Array(t);for(let r=0,o=0;r<e.length;r++){let s=e[r];n.set(s,o),o+=s.length}return n}function jt(e,t){if(t==null||typeof t!="object")throw new Error("options must be defined");return Object.assign(e,t)}function wt(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}var D=(e,t)=>{function n(r,...o){if(E(r,void 0,"key"),!Ue)throw new Error("Non little-endian hardware is not yet supported");if(e.nonceLength!==void 0){let h=o[0];E(h,e.varSizeNonce?void 0:e.nonceLength,"nonce")}let s=e.tagLength;s&&o[1]!==void 0&&E(o[1],void 0,"AAD");let i=t(r,...o),c=(h,a)=>{if(a!==void 0){if(h!==2)throw new Error("cipher output not supported");E(a,void 0,"output")}},f=!1;return{encrypt(h,a){if(f)throw new Error("cannot encrypt() twice with same key + nonce");return f=!0,E(h),c(i.encrypt.length,a),i.encrypt(h,a)},decrypt(h,a){if(E(h),s&&h.length<s)throw new Error('"ciphertext" expected length bigger than tagLength='+s);return c(i.decrypt.length,a),i.decrypt(h,a)}}}return Object.assign(n,e),n};function Q(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(t.length!==e)throw new Error('"output" expected Uint8Array of length '+e+", got: "+t.length);if(n&&!Z(t))throw new Error("invalid output, must be aligned");return t}function bt(e,t,n){yt(n);let r=new Uint8Array(16),o=at(r);return o.setBigUint64(0,BigInt(t),n),o.setBigUint64(8,BigInt(e),n),r}function Z(e){return e.byteOffset%4===0}function z(e){return Uint8Array.from(e)}function xt(e=32){let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return t.getRandomValues(new Uint8Array(e))}function Vt(e,t=xt){let{nonceLength:n}=e;ht(n);let r=(o,s)=>{let i=Ct(o,s);return s.fill(0),i};return((o,...s)=>({encrypt(i){E(i);let c=t(n),f=e(o,c,...s).encrypt(i);return f instanceof Promise?f.then(l=>r(c,l)):r(c,f)},decrypt(i){E(i);let c=i.subarray(0,n),f=i.subarray(n);return e(o,c,...s).decrypt(f)}}))}var tt=16,Tt=new Uint8Array(16),G=A(Tt),Ae=225,Be=(e,t,n,r)=>{let o=r&1;return{s3:n<<31|r>>>1,s2:t<<31|n>>>1,s1:e<<31|t>>>1,s0:e>>>1^Ae<<24&-(o&1)}},F=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255|0;function _e(e){e.reverse();let t=e[15]&1,n=0;for(let r=0;r<e.length;r++){let o=e[r];e[r]=o>>>1|n,n=(o&1)<<7}return e[0]^=-t&225,e}var ve=e=>e>64*1024?8:e>1024?4:2,mt=class{blockLen=tt;outputLen=tt;s0=0;s1=0;s2=0;s3=0;finished=!1;t;W;windowSize;constructor(t,n){E(t,16,"key"),t=z(t);let r=at(t),o=r.getUint32(0,!1),s=r.getUint32(4,!1),i=r.getUint32(8,!1),c=r.getUint32(12,!1),f=[];for(let u=0;u<128;u++)f.push({s0:F(o),s1:F(s),s2:F(i),s3:F(c)}),{s0:o,s1:s,s2:i,s3:c}=Be(o,s,i,c);let l=ve(n||1024);if(![1,2,4,8].includes(l))throw new Error("ghash: invalid window size, expected 2, 4 or 8");this.W=l;let a=128/l,p=this.windowSize=2**l,g=[];for(let u=0;u<a;u++)for(let y=0;y<p;y++){let d=0,w=0,b=0,U=0;for(let L=0;L<l;L++){if(!(y>>>l-L-1&1))continue;let{s0:v,s1:j,s2:V,s3:_}=f[l*u+L];d^=v,w^=j,b^=V,U^=_}g.push({s0:d,s1:w,s2:b,s3:U})}this.t=g}_updateBlock(t,n,r,o){t^=this.s0,n^=this.s1,r^=this.s2,o^=this.s3;let{W:s,t:i,windowSize:c}=this,f=0,l=0,h=0,a=0,p=(1<<s)-1,g=0;for(let u of[t,n,r,o])for(let y=0;y<4;y++){let d=u>>>8*y&255;for(let w=8/s-1;w>=0;w--){let b=d>>>s*w&p,{s0:U,s1:L,s2:C,s3:v}=i[g*c+b];f^=U,l^=L,h^=C,a^=v,g+=1}}this.s0=f,this.s1=l,this.s2=h,this.s3=a}update(t){et(this),E(t),t=z(t);let n=A(t),r=Math.floor(t.length/tt),o=t.length%tt;for(let s=0;s<r;s++)this._updateBlock(n[s*4+0],n[s*4+1],n[s*4+2],n[s*4+3]);return o&&(Tt.set(t.subarray(r*tt)),this._updateBlock(G[0],G[1],G[2],G[3]),B(G)),this}destroy(){let{t}=this;for(let n of t)n.s0=0,n.s1=0,n.s2=0,n.s3=0}digestInto(t){et(this),gt(t,this),this.finished=!0;let{s0:n,s1:r,s2:o,s3:s}=this,i=A(t);return i[0]=n,i[1]=r,i[2]=o,i[3]=s,t}digest(){let t=new Uint8Array(tt);return this.digestInto(t),this.destroy(),t}},St=class extends mt{constructor(t,n){E(t);let r=_e(z(t));super(r,n),B(r)}update(t){et(this),E(t),t=z(t);let n=A(t),r=t.length%tt,o=Math.floor(t.length/tt);for(let s=0;s<o;s++)this._updateBlock(F(n[s*4+3]),F(n[s*4+2]),F(n[s*4+1]),F(n[s*4+0]));return r&&(Tt.set(t.subarray(o*tt)),this._updateBlock(F(G[3]),F(G[2]),F(G[1]),F(G[0])),B(G)),this}digestInto(t){et(this),gt(t,this),this.finished=!0;let{s0:n,s1:r,s2:o,s3:s}=this,i=A(t);return i[0]=n,i[1]=r,i[2]=o,i[3]=s,t.reverse()}};function Ht(e){let t=(r,o)=>e(o,r.length).update(r).digest(),n=e(new Uint8Array(16),0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=(r,o)=>e(r,o),t}var It=Ht((e,t)=>new mt(e,t)),Ce=Ht((e,t)=>new St(e,t));var R=16,Nt=4,Lt=new Uint8Array(R);var Se=283;function $t(e){if(![16,24,32].includes(e.length))throw new Error('"aes key" expected Uint8Array of length 16/24/32, got length='+e.length)}function Mt(e){return e<<1^Se&-(e>>7)}function ut(e,t){let n=0;for(;t>0;t>>=1)n^=e&-(t&1),e=Mt(e);return n}var Te=(e,t,n=1)=>{if(!Number.isSafeInteger(n))throw new Error("incBytes: wrong carry "+n);E(e);for(let r=0;r<e.length;r++){let o=t?r:e.length-1-r;n=n+(e[o]&255)|0,e[o]=n&255,n>>>=8}},kt=(()=>{let e=new Uint8Array(256);for(let n=0,r=1;n<256;n++,r^=Mt(r))e[n]=r;let t=new Uint8Array(256);t[0]=99;for(let n=0;n<255;n++){let r=e[255-n];r|=r<<8,t[e[n]]=(r^r>>4^r>>5^r>>6^r>>7^99)&255}return B(e),t})(),Ie=kt.map((e,t)=>kt.indexOf(t)),Ke=e=>e<<24|e>>>8,Kt=e=>e<<8|e>>>24;function Zt(e,t){if(e.length!==256)throw new Error("Wrong sbox length");let n=new Uint32Array(256).map((l,h)=>t(e[h])),r=n.map(Kt),o=r.map(Kt),s=o.map(Kt),i=new Uint32Array(256*256),c=new Uint32Array(256*256),f=new Uint16Array(256*256);for(let l=0;l<256;l++)for(let h=0;h<256;h++){let a=l*256+h;i[a]=n[l]^r[h],c[a]=o[l]^s[h],f[a]=e[l]<<8|e[h]}return{sbox:e,sbox2:f,T0:n,T1:r,T2:o,T3:s,T01:i,T23:c}}var Pt=Zt(kt,e=>ut(e,3)<<24|e<<16|e<<8|ut(e,2)),Ft=Zt(Ie,e=>ut(e,11)<<24|ut(e,13)<<16|ut(e,9)<<8|ut(e,14)),Oe=(()=>{let e=new Uint8Array(16);for(let t=0,n=1;t<16;t++,n=Mt(n))e[t]=n;return e})();function rt(e){E(e);let t=e.length;$t(e);let{sbox2:n}=Pt,r=[];Z(e)||r.push(e=z(e));let o=A(e),s=o.length,i=f=>J(n,f,f,f,f),c=new Uint32Array(t+28);c.set(o);for(let f=s;f<c.length;f++){let l=c[f-1];f%s===0?l=i(Ke(l))^Oe[f/s-1]:s>6&&f%s===4&&(l=i(l)),c[f]=c[f-s]^l}return B(...r),c}function Yt(e){let t=rt(e),n=t.slice(),r=t.length,{sbox2:o}=Pt,{T0:s,T1:i,T2:c,T3:f}=Ft;for(let l=0;l<r;l+=4)for(let h=0;h<4;h++)n[l+h]=t[r-l-4+h];B(t);for(let l=4;l<r-4;l++){let h=n[l],a=J(o,h,h,h,h);n[l]=s[a&255]^i[a>>>8&255]^c[a>>>16&255]^f[a>>>24]}return n}function nt(e,t,n,r,o,s){return e[n<<8&65280|r>>>8&255]^t[o>>>8&65280|s>>>24&255]}function J(e,t,n,r,o){return e[t&255|n&65280]|e[r>>>16&255|o>>>16&65280]<<16}function Y(e,t,n,r,o){let{sbox2:s,T01:i,T23:c}=Pt,f=0;t^=e[f++],n^=e[f++],r^=e[f++],o^=e[f++];let l=e.length/4-2;for(let u=0;u<l;u++){let y=e[f++]^nt(i,c,t,n,r,o),d=e[f++]^nt(i,c,n,r,o,t),w=e[f++]^nt(i,c,r,o,t,n),b=e[f++]^nt(i,c,o,t,n,r);t=y,n=d,r=w,o=b}let h=e[f++]^J(s,t,n,r,o),a=e[f++]^J(s,n,r,o,t),p=e[f++]^J(s,r,o,t,n),g=e[f++]^J(s,o,t,n,r);return{s0:h,s1:a,s2:p,s3:g}}function Qt(e,t,n,r,o){let{sbox2:s,T01:i,T23:c}=Ft,f=0;t^=e[f++],n^=e[f++],r^=e[f++],o^=e[f++];let l=e.length/4-2;for(let u=0;u<l;u++){let y=e[f++]^nt(i,c,t,o,r,n),d=e[f++]^nt(i,c,n,t,o,r),w=e[f++]^nt(i,c,r,n,t,o),b=e[f++]^nt(i,c,o,r,n,t);t=y,n=d,r=w,o=b}let h=e[f++]^J(s,t,o,r,n),a=e[f++]^J(s,n,t,o,r),p=e[f++]^J(s,r,n,t,o),g=e[f++]^J(s,o,r,n,t);return{s0:h,s1:a,s2:p,s3:g}}function ke(e,t,n,r){E(t,R,"nonce"),E(n);let o=n.length;r=Q(o,r),pt(n,r);let s=t,i=A(s),{s0:c,s1:f,s2:l,s3:h}=Y(e,i[0],i[1],i[2],i[3]),a=A(n),p=A(r);for(let u=0;u+4<=a.length;u+=4)p[u+0]=a[u+0]^c,p[u+1]=a[u+1]^f,p[u+2]=a[u+2]^l,p[u+3]=a[u+3]^h,Te(s,!1,1),{s0:c,s1:f,s2:l,s3:h}=Y(e,i[0],i[1],i[2],i[3]);let g=R*Math.floor(a.length/Nt);if(g<o){let u=new Uint32Array([c,f,l,h]),y=dt(u);for(let d=g,w=0;d<o;d++,w++)r[d]=n[d]^y[w];B(u)}return r}function Et(e,t,n,r,o){E(n,R,"nonce"),E(r),o=Q(r.length,o);let s=n,i=A(s),c=at(s),f=A(r),l=A(o),h=t?0:12,a=r.length,p=c.getUint32(h,t),{s0:g,s1:u,s2:y,s3:d}=Y(e,i[0],i[1],i[2],i[3]);for(let b=0;b+4<=f.length;b+=4)l[b+0]=f[b+0]^g,l[b+1]=f[b+1]^u,l[b+2]=f[b+2]^y,l[b+3]=f[b+3]^d,p=p+1>>>0,c.setUint32(h,p,t),{s0:g,s1:u,s2:y,s3:d}=Y(e,i[0],i[1],i[2],i[3]);let w=R*Math.floor(f.length/Nt);if(w<a){let b=new Uint32Array([g,u,y,d]),U=dt(b);for(let L=w,C=0;L<a;L++,C++)o[L]=r[L]^U[C];B(b)}return o}var Gt=D({blockSize:16,nonceLength:16},function(t,n){function r(o,s){if(E(o),s!==void 0&&(E(s),!Z(s)))throw new Error("unaligned destination");let i=rt(t),c=z(n),f=[i,c];Z(o)||f.push(o=z(o));let l=ke(i,c,o,s);return B(...f),l}return{encrypt:(o,s)=>r(o,s),decrypt:(o,s)=>r(o,s)}});function Jt(e){if(E(e),e.length%R!==0)throw new Error("aes-(cbc/ecb).decrypt ciphertext should consist of blocks with size "+R)}function Xt(e,t,n){E(e);let r=e.length,o=r%R;if(!t&&o!==0)throw new Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");Z(e)||(e=z(e));let s=A(e);if(t){let c=R-o;c||(c=R),r=r+c}n=Q(r,n),pt(e,n);let i=A(n);return{b:s,o:i,out:n}}function Dt(e,t){if(!t)return e;let n=e.length;if(!n)throw new Error("aes/pcks5: empty ciphertext not allowed");let r=e[n-1];if(r<=0||r>16)throw new Error("aes/pcks5: wrong padding");let o=e.subarray(0,-r);for(let s=0;s<r;s++)if(e[n-s-1]!==r)throw new Error("aes/pcks5: wrong padding");return o}function te(e){let t=new Uint8Array(16),n=A(t);t.set(e);let r=R-e.length;for(let o=R-r;o<R;o++)t[o]=r;return n}var ee=D({blockSize:16},function(t,n={}){let r=!n.disablePadding;return{encrypt(o,s){let{b:i,o:c,out:f}=Xt(o,r,s),l=rt(t),h=0;for(;h+4<=i.length;){let{s0:a,s1:p,s2:g,s3:u}=Y(l,i[h+0],i[h+1],i[h+2],i[h+3]);c[h++]=a,c[h++]=p,c[h++]=g,c[h++]=u}if(r){let a=te(o.subarray(h*4)),{s0:p,s1:g,s2:u,s3:y}=Y(l,a[0],a[1],a[2],a[3]);c[h++]=p,c[h++]=g,c[h++]=u,c[h++]=y}return B(l),f},decrypt(o,s){Jt(o);let i=Yt(t);s=Q(o.length,s);let c=[i];Z(o)||c.push(o=z(o)),pt(o,s);let f=A(o),l=A(s);for(let h=0;h+4<=f.length;){let{s0:a,s1:p,s2:g,s3:u}=Qt(i,f[h+0],f[h+1],f[h+2],f[h+3]);l[h++]=a,l[h++]=p,l[h++]=g,l[h++]=u}return B(...c),Dt(s,r)}}}),ne=D({blockSize:16,nonceLength:16},function(t,n,r={}){let o=!r.disablePadding;return{encrypt(s,i){let c=rt(t),{b:f,o:l,out:h}=Xt(s,o,i),a=n,p=[c];Z(a)||p.push(a=z(a));let g=A(a),u=g[0],y=g[1],d=g[2],w=g[3],b=0;for(;b+4<=f.length;)u^=f[b+0],y^=f[b+1],d^=f[b+2],w^=f[b+3],{s0:u,s1:y,s2:d,s3:w}=Y(c,u,y,d,w),l[b++]=u,l[b++]=y,l[b++]=d,l[b++]=w;if(o){let U=te(s.subarray(b*4));u^=U[0],y^=U[1],d^=U[2],w^=U[3],{s0:u,s1:y,s2:d,s3:w}=Y(c,u,y,d,w),l[b++]=u,l[b++]=y,l[b++]=d,l[b++]=w}return B(...p),h},decrypt(s,i){Jt(s);let c=Yt(t),f=n,l=[c];Z(f)||l.push(f=z(f));let h=A(f);i=Q(s.length,i),Z(s)||l.push(s=z(s)),pt(s,i);let a=A(s),p=A(i),g=h[0],u=h[1],y=h[2],d=h[3];for(let w=0;w+4<=a.length;){let b=g,U=u,L=y,C=d;g=a[w+0],u=a[w+1],y=a[w+2],d=a[w+3];let{s0:v,s1:j,s2:V,s3:_}=Qt(c,g,u,y,d);p[w++]=v^b,p[w++]=j^U,p[w++]=V^L,p[w++]=_^C}return B(...l),Dt(i,o)}}}),re=D({blockSize:16,nonceLength:16},function(t,n){function r(o,s,i){E(o);let c=o.length;if(i=Q(c,i),vt(o,i))throw new Error("overlapping src and dst not supported.");let f=rt(t),l=n,h=[f];Z(l)||h.push(l=z(l)),Z(o)||h.push(o=z(o));let a=A(o),p=A(i),g=s?p:a,u=A(l),y=u[0],d=u[1],w=u[2],b=u[3];for(let L=0;L+4<=a.length;){let{s0:C,s1:v,s2:j,s3:V}=Y(f,y,d,w,b);p[L+0]=a[L+0]^C,p[L+1]=a[L+1]^v,p[L+2]=a[L+2]^j,p[L+3]=a[L+3]^V,y=g[L++],d=g[L++],w=g[L++],b=g[L++]}let U=R*Math.floor(a.length/Nt);if(U<c){({s0:y,s1:d,s2:w,s3:b}=Y(f,y,d,w,b));let L=dt(new Uint32Array([y,d,w,b]));for(let C=U,v=0;C<c;C++,v++)i[C]=o[C]^L[v];B(L)}return B(...h),i}return{encrypt:(o,s)=>r(o,!0,s),decrypt:(o,s)=>r(o,!1,s)}});function Ne(e,t,n,r,o){let s=o?o.length:0,i=e.create(n,r.length+s);o&&i.update(o);let c=bt(8*r.length,8*s,t);i.update(r),i.update(c);let f=i.digest();return B(c),f}var oe=D({blockSize:16,nonceLength:12,tagLength:16,varSizeNonce:!0},function(t,n,r){if(n.length<8)throw new Error("aes/gcm: invalid nonce length");let o=16;function s(c,f,l){let h=Ne(It,!1,c,l,r);for(let a=0;a<f.length;a++)h[a]^=f[a];return h}function i(){let c=rt(t),f=Lt.slice(),l=Lt.slice();if(Et(c,!1,l,l,f),n.length===12)l.set(n);else{let a=Lt.slice();at(a).setBigUint64(8,BigInt(n.length*8),!1);let g=It.create(f).update(n).update(a);g.digestInto(l),g.destroy()}let h=Et(c,!1,l,Lt);return{xk:c,authKey:f,counter:l,tagMask:h}}return{encrypt(c){let{xk:f,authKey:l,counter:h,tagMask:a}=i(),p=new Uint8Array(c.length+o),g=[f,l,h,a];Z(c)||g.push(c=z(c)),Et(f,!1,h,c,p.subarray(0,c.length));let u=s(l,a,p.subarray(0,p.length-o));return g.push(u),p.set(u,c.length),B(...g),p},decrypt(c){let{xk:f,authKey:l,counter:h,tagMask:a}=i(),p=[f,l,a,h];Z(c)||p.push(c=z(c));let g=c.subarray(0,-o),u=c.subarray(-o),y=s(l,a,g);if(p.push(y),!wt(y,u))throw new Error("aes/gcm: invalid ghash tag");let d=Et(f,!1,h,g);return B(...p),d}}});function Me(e){return e instanceof Uint32Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint32Array"}function Ot(e,t){if(E(t,16,"block"),!Me(e))throw new Error("_encryptBlock accepts result of expandKeyLE");let n=A(t),{s0:r,s1:o,s2:s,s3:i}=Y(e,n[0],n[1],n[2],n[3]);return n[0]=r,n[1]=o,n[2]=s,n[3]=i,t}function qt(e){let t=0;for(let n=R-1;n>=0;n--){let r=(e[n]&128)>>>7;e[n]=e[n]<<1|t,t=r}return t&&(e[R-1]^=135),e}function Ut(e,t){if(e.length!==t.length)throw new Error("xorBlock: blocks must have same length");for(let n=0;n<e.length;n++)e[n]=e[n]^t[n];return e}var At=class{buffer;destroyed;k1;k2;xk;constructor(t){E(t),$t(t),this.xk=rt(t),this.buffer=new Uint8Array(0),this.destroyed=!1;let n=new Uint8Array(R);Ot(this.xk,n),this.k1=qt(n),this.k2=qt(new Uint8Array(this.k1))}update(t){let{destroyed:n,buffer:r}=this;if(n)throw new Error("CMAC instance was destroyed");E(t);let o=new Uint8Array(r.length+t.length);return o.set(r),o.set(t,r.length),this.buffer=o,this}digest(){if(this.destroyed)throw new Error("CMAC instance was destroyed");let{buffer:t}=this,n=t.length,r=Math.ceil(n/R),o;r===0?(r=1,o=!1):o=n%R===0;let s=(r-1)*R,i=t.subarray(s),c;if(o)c=Ut(new Uint8Array(i),this.k1);else{let l=new Uint8Array(R);l.set(i),l[i.length]=128,c=Ut(l,this.k2)}let f=new Uint8Array(R);for(let l=0;l<r-1;l++){let h=t.subarray(l*R,(l+1)*R);Ut(f,h),Ot(this.xk,f)}return Ut(f,c),Ot(this.xk,f),B(c),f}destroy(){let{buffer:t,destroyed:n,xk:r,k1:o,k2:s}=this;n||(this.destroyed=!0,B(t,r,o,s))}},Pe=(e,t)=>new At(e).update(t).digest();Pe.create=e=>new At(e);var se=()=>{throw new Error('"siv" from v1 is now "gcmsiv"')};var ie=e=>Uint8Array.from(e.split(""),t=>t.charCodeAt(0)),ze=ie("expand 16-byte k"),Re=ie("expand 32-byte k"),We=A(ze),je=A(Re);function x(e,t){return e<<t|e>>>32-t}function zt(e){return e.byteOffset%4===0}var Bt=64,Ve=16,fe=2**32-1,ce=Uint32Array.of();function He(e,t,n,r,o,s,i,c){let f=o.length,l=new Uint8Array(Bt),h=A(l),a=zt(o)&&zt(s),p=a?A(o):ce,g=a?A(s):ce;for(let u=0;u<f;i++){if(e(t,n,r,h,i,c),i>=fe)throw new Error("arx: counter overflow");let y=Math.min(Bt,f-u);if(a&&y===Bt){let d=u/4;if(u%4!==0)throw new Error("arx: invalid block position");for(let w=0,b;w<Ve;w++)b=d+w,g[b]=p[b]^h[w];u+=Bt;continue}for(let d=0,w;d<y;d++)w=u+d,s[w]=o[w]^l[d];u+=y}}function Rt(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:o,counterRight:s,rounds:i}=jt({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!="function")throw new Error("core must be a function");return ht(o),ht(i),yt(s),yt(n),(c,f,l,h,a=0)=>{E(c,void 0,"key"),E(f,void 0,"nonce"),E(l,void 0,"data");let p=l.length;if(h===void 0&&(h=new Uint8Array(p)),E(h,void 0,"output"),ht(a),a<0||a>=fe)throw new Error("arx: counter overflow");if(h.length<p)throw new Error(`arx: output (${h.length}) is shorter than data (${p})`);let g=[],u=c.length,y,d;if(u===32)g.push(y=z(c)),d=je;else if(u===16&&n)y=new Uint8Array(32),y.set(c),y.set(c,16),d=We,g.push(y);else throw E(c,32,"arx key"),new Error("invalid key size");zt(f)||g.push(f=z(f));let w=A(y);if(r){if(f.length!==24)throw new Error("arx: extended nonce must be 24 bytes");r(d,w,A(f.subarray(0,16)),w),f=f.subarray(16)}let b=16-o;if(b!==f.length)throw new Error(`arx: nonce must be ${b} or 16 bytes`);if(b!==12){let L=new Uint8Array(12);L.set(f,s?0:12-f.length),f=L,g.push(f)}let U=A(f);return He(e,d,w,U,l,h,a,i),B(...g),h}}function $(e,t){return e[t++]&255|(e[t++]&255)<<8}var Wt=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;constructor(t){t=z(E(t,32,"key"));let n=$(t,0),r=$(t,2),o=$(t,4),s=$(t,6),i=$(t,8),c=$(t,10),f=$(t,12),l=$(t,14);this.r[0]=n&8191,this.r[1]=(n>>>13|r<<3)&8191,this.r[2]=(r>>>10|o<<6)&7939,this.r[3]=(o>>>7|s<<9)&8191,this.r[4]=(s>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|c<<2)&8191,this.r[7]=(c>>>11|f<<5)&8065,this.r[8]=(f>>>8|l<<8)&8191,this.r[9]=l>>>5&127;for(let h=0;h<8;h++)this.pad[h]=$(t,16+2*h)}process(t,n,r=!1){let o=r?0:2048,{h:s,r:i}=this,c=i[0],f=i[1],l=i[2],h=i[3],a=i[4],p=i[5],g=i[6],u=i[7],y=i[8],d=i[9],w=$(t,n+0),b=$(t,n+2),U=$(t,n+4),L=$(t,n+6),C=$(t,n+8),v=$(t,n+10),j=$(t,n+12),V=$(t,n+14),_=s[0]+(w&8191),S=s[1]+((w>>>13|b<<3)&8191),T=s[2]+((b>>>10|U<<6)&8191),I=s[3]+((U>>>7|L<<9)&8191),K=s[4]+((L>>>4|C<<12)&8191),O=s[5]+(C>>>1&8191),k=s[6]+((C>>>14|v<<2)&8191),N=s[7]+((v>>>11|j<<5)&8191),M=s[8]+((j>>>8|V<<8)&8191),P=s[9]+(V>>>5|o),m=0,H=m+_*c+S*(5*d)+T*(5*y)+I*(5*u)+K*(5*g);m=H>>>13,H&=8191,H+=O*(5*p)+k*(5*a)+N*(5*h)+M*(5*l)+P*(5*f),m+=H>>>13,H&=8191;let q=m+_*f+S*c+T*(5*d)+I*(5*y)+K*(5*u);m=q>>>13,q&=8191,q+=O*(5*g)+k*(5*p)+N*(5*a)+M*(5*h)+P*(5*l),m+=q>>>13,q&=8191;let W=m+_*l+S*f+T*c+I*(5*d)+K*(5*y);m=W>>>13,W&=8191,W+=O*(5*u)+k*(5*g)+N*(5*p)+M*(5*a)+P*(5*h),m+=W>>>13,W&=8191;let X=m+_*h+S*l+T*f+I*c+K*(5*d);m=X>>>13,X&=8191,X+=O*(5*y)+k*(5*u)+N*(5*g)+M*(5*p)+P*(5*a),m+=X>>>13,X&=8191;let ot=m+_*a+S*h+T*l+I*f+K*c;m=ot>>>13,ot&=8191,ot+=O*(5*d)+k*(5*y)+N*(5*u)+M*(5*g)+P*(5*p),m+=ot>>>13,ot&=8191;let st=m+_*p+S*a+T*h+I*l+K*f;m=st>>>13,st&=8191,st+=O*c+k*(5*d)+N*(5*y)+M*(5*u)+P*(5*g),m+=st>>>13,st&=8191;let ct=m+_*g+S*p+T*a+I*h+K*l;m=ct>>>13,ct&=8191,ct+=O*f+k*c+N*(5*d)+M*(5*y)+P*(5*u),m+=ct>>>13,ct&=8191;let it=m+_*u+S*g+T*p+I*a+K*h;m=it>>>13,it&=8191,it+=O*l+k*f+N*c+M*(5*d)+P*(5*y),m+=it>>>13,it&=8191;let ft=m+_*y+S*u+T*g+I*p+K*a;m=ft>>>13,ft&=8191,ft+=O*h+k*l+N*f+M*c+P*(5*d),m+=ft>>>13,ft&=8191;let lt=m+_*d+S*y+T*u+I*g+K*p;m=lt>>>13,lt&=8191,lt+=O*a+k*h+N*l+M*f+P*c,m+=lt>>>13,lt&=8191,m=(m<<2)+m|0,m=m+H|0,H=m&8191,m=m>>>13,q+=m,s[0]=H,s[1]=q,s[2]=W,s[3]=X,s[4]=ot,s[5]=st,s[6]=ct,s[7]=it,s[8]=ft,s[9]=lt}finalize(){let{h:t,pad:n}=this,r=new Uint16Array(10),o=t[1]>>>13;t[1]&=8191;for(let c=2;c<10;c++)t[c]+=o,o=t[c]>>>13,t[c]&=8191;t[0]+=o*5,o=t[0]>>>13,t[0]&=8191,t[1]+=o,o=t[1]>>>13,t[1]&=8191,t[2]+=o,r[0]=t[0]+5,o=r[0]>>>13,r[0]&=8191;for(let c=1;c<10;c++)r[c]=t[c]+o,o=r[c]>>>13,r[c]&=8191;r[9]-=8192;let s=(o^1)-1;for(let c=0;c<10;c++)r[c]&=s;s=~s;for(let c=0;c<10;c++)t[c]=t[c]&s|r[c];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let i=t[0]+n[0];t[0]=i&65535;for(let c=1;c<8;c++)i=(t[c]+n[c]|0)+(i>>>16)|0,t[c]=i&65535;B(r)}update(t){et(this),E(t),t=z(t);let{buffer:n,blockLen:r}=this,o=t.length;for(let s=0;s<o;){let i=Math.min(r-this.pos,o-s);if(i===r){for(;r<=o-s;s+=r)this.process(t,s);continue}n.set(t.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===r&&(this.process(n,0,!1),this.pos=0)}return this}destroy(){B(this.h,this.r,this.buffer,this.pad)}digestInto(t){et(this),gt(t,this),this.finished=!0;let{buffer:n,h:r}=this,{pos:o}=this;if(o){for(n[o++]=1;o<16;o++)n[o]=0;this.process(n,0,!0)}this.finalize();let s=0;for(let i=0;i<8;i++)t[s++]=r[i]>>>0,t[s++]=r[i]>>>8;return t}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let r=t.slice(0,n);return this.destroy(),r}};function qe(e){let t=(r,o)=>e(o).update(r).digest(),n=e(new Uint8Array(32));return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=r=>e(r),t}var le=qe(e=>new Wt(e));function ue(e,t,n,r,o,s=20){let i=e[0],c=e[1],f=e[2],l=e[3],h=t[0],a=t[1],p=t[2],g=t[3],u=t[4],y=t[5],d=t[6],w=t[7],b=o,U=n[0],L=n[1],C=n[2],v=i,j=c,V=f,_=l,S=h,T=a,I=p,K=g,O=u,k=y,N=d,M=w,P=b,m=U,H=L,q=C;for(let X=0;X<s;X+=2)v=v+S|0,P=x(P^v,16),O=O+P|0,S=x(S^O,12),v=v+S|0,P=x(P^v,8),O=O+P|0,S=x(S^O,7),j=j+T|0,m=x(m^j,16),k=k+m|0,T=x(T^k,12),j=j+T|0,m=x(m^j,8),k=k+m|0,T=x(T^k,7),V=V+I|0,H=x(H^V,16),N=N+H|0,I=x(I^N,12),V=V+I|0,H=x(H^V,8),N=N+H|0,I=x(I^N,7),_=_+K|0,q=x(q^_,16),M=M+q|0,K=x(K^M,12),_=_+K|0,q=x(q^_,8),M=M+q|0,K=x(K^M,7),v=v+T|0,q=x(q^v,16),N=N+q|0,T=x(T^N,12),v=v+T|0,q=x(q^v,8),N=N+q|0,T=x(T^N,7),j=j+I|0,P=x(P^j,16),M=M+P|0,I=x(I^M,12),j=j+I|0,P=x(P^j,8),M=M+P|0,I=x(I^M,7),V=V+K|0,m=x(m^V,16),O=O+m|0,K=x(K^O,12),V=V+K|0,m=x(m^V,8),O=O+m|0,K=x(K^O,7),_=_+S|0,H=x(H^_,16),k=k+H|0,S=x(S^k,12),_=_+S|0,H=x(H^_,8),k=k+H|0,S=x(S^k,7);let W=0;r[W++]=i+v|0,r[W++]=c+j|0,r[W++]=f+V|0,r[W++]=l+_|0,r[W++]=h+S|0,r[W++]=a+T|0,r[W++]=p+I|0,r[W++]=g+K|0,r[W++]=u+O|0,r[W++]=y+k|0,r[W++]=d+N|0,r[W++]=w+M|0,r[W++]=b+P|0,r[W++]=U+m|0,r[W++]=L+H|0,r[W++]=C+q|0}function $e(e,t,n,r){let o=e[0],s=e[1],i=e[2],c=e[3],f=t[0],l=t[1],h=t[2],a=t[3],p=t[4],g=t[5],u=t[6],y=t[7],d=n[0],w=n[1],b=n[2],U=n[3];for(let C=0;C<20;C+=2)o=o+f|0,d=x(d^o,16),p=p+d|0,f=x(f^p,12),o=o+f|0,d=x(d^o,8),p=p+d|0,f=x(f^p,7),s=s+l|0,w=x(w^s,16),g=g+w|0,l=x(l^g,12),s=s+l|0,w=x(w^s,8),g=g+w|0,l=x(l^g,7),i=i+h|0,b=x(b^i,16),u=u+b|0,h=x(h^u,12),i=i+h|0,b=x(b^i,8),u=u+b|0,h=x(h^u,7),c=c+a|0,U=x(U^c,16),y=y+U|0,a=x(a^y,12),c=c+a|0,U=x(U^c,8),y=y+U|0,a=x(a^y,7),o=o+l|0,U=x(U^o,16),u=u+U|0,l=x(l^u,12),o=o+l|0,U=x(U^o,8),u=u+U|0,l=x(l^u,7),s=s+h|0,d=x(d^s,16),y=y+d|0,h=x(h^y,12),s=s+h|0,d=x(d^s,8),y=y+d|0,h=x(h^y,7),i=i+a|0,w=x(w^i,16),p=p+w|0,a=x(a^p,12),i=i+a|0,w=x(w^i,8),p=p+w|0,a=x(a^p,7),c=c+f|0,b=x(b^c,16),g=g+b|0,f=x(f^g,12),c=c+f|0,b=x(b^c,8),g=g+b|0,f=x(f^g,7);let L=0;r[L++]=o,r[L++]=s,r[L++]=i,r[L++]=c,r[L++]=d,r[L++]=w,r[L++]=b,r[L++]=U}var Ze=Rt(ue,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Fe=Rt(ue,{counterRight:!1,counterLength:8,extendNonceFn:$e,allowShortKeys:!1});var Ye=new Uint8Array(16),he=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(Ye.subarray(n))},Qe=new Uint8Array(32);function ae(e,t,n,r,o){o!==void 0&&E(o,void 0,"AAD");let s=e(t,n,Qe),i=bt(r.length,o?o.length:0,!0),c=le.create(s);o&&he(c,o),he(c,r),c.update(i);let f=c.digest();return B(s,i),f}var ge=e=>(t,n,r)=>({encrypt(s,i){let c=s.length;i=Q(c+16,i,!1),i.set(s);let f=i.subarray(0,-16);e(t,n,f,f,1);let l=ae(e,t,n,f,r);return i.set(l,c),B(l),i},decrypt(s,i){i=Q(s.length-16,i,!1);let c=s.subarray(0,-16),f=s.subarray(-16),l=ae(e,t,n,c,r);if(!wt(f,l))throw new Error("invalid tag");return i.set(s.subarray(0,-16)),e(t,n,i,i,1),B(l),i}}),pe=D({blockSize:64,nonceLength:12,tagLength:16},ge(Ze)),ye=D({blockSize:64,nonceLength:24,tagLength:16},ge(Fe));return Le(Ge);})();
5188−/*! Bundled license information:
5190−@noble/ciphers/utils.js:
5191− (*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) *)
5197−function _Crypto_cipherKeyFromHex(hex)
5200− var bytes = _Crypto_fromHex(hex);
5201− if (bytes.length !== 32) { return $elm$core$Maybe$Nothing; }
5202− return $elm$core$Maybe$Just(hex);
5204− return $elm$core$Maybe$Nothing;
5208−function _Crypto_cipherKeyToHex(key)
5213−function _Crypto_cipherNonce12FromHex(hex)
5216− var bytes = _Crypto_fromHex(hex);
5217− if (bytes.length !== 12) { return $elm$core$Maybe$Nothing; }
5218− return $elm$core$Maybe$Just(hex);
5220− return $elm$core$Maybe$Nothing;
5224−function _Crypto_cipherNonce12ToHex(nonce)
5229−function _Crypto_cipherNonce24FromHex(hex)
5232− var bytes = _Crypto_fromHex(hex);
5233− if (bytes.length !== 24) { return $elm$core$Maybe$Nothing; }
5234− return $elm$core$Maybe$Just(hex);
5236− return $elm$core$Maybe$Nothing;
5240−function _Crypto_cipherNonce24ToHex(nonce)
5248−var _Crypto_aesGcmEncrypt = F3(function(key, nonce, plaintext)
5250− var cipher = _Crypto_ciphers.gcm(_Crypto_fromHex(key), _Crypto_fromHex(nonce));
5251− return _Crypto_toHex(cipher.encrypt(_Crypto_fromHex(plaintext)));
5254−var _Crypto_aesGcmDecrypt = F3(function(key, nonce, ciphertext)
5257− var cipher = _Crypto_ciphers.gcm(_Crypto_fromHex(key), _Crypto_fromHex(nonce));
5258− return $elm$core$Maybe$Just(_Crypto_toHex(cipher.decrypt(_Crypto_fromHex(ciphertext))));
5260− return $elm$core$Maybe$Nothing;
5265−// CHACHA20-POLY1305
5267−var _Crypto_chacha20Encrypt = F3(function(key, nonce, plaintext)
5269− var cipher = _Crypto_ciphers.chacha20poly1305(_Crypto_fromHex(key), _Crypto_fromHex(nonce));
5270− return _Crypto_toHex(cipher.encrypt(_Crypto_fromHex(plaintext)));
5273−var _Crypto_chacha20Decrypt = F3(function(key, nonce, ciphertext)
5276− var cipher = _Crypto_ciphers.chacha20poly1305(_Crypto_fromHex(key), _Crypto_fromHex(nonce));
5277− return $elm$core$Maybe$Just(_Crypto_toHex(cipher.decrypt(_Crypto_fromHex(ciphertext))));
5279− return $elm$core$Maybe$Nothing;
5284−// XCHACHA20-POLY1305
5286−var _Crypto_xchacha20Encrypt = F3(function(key, nonce, plaintext)
5288− var cipher = _Crypto_ciphers.xchacha20poly1305(_Crypto_fromHex(key), _Crypto_fromHex(nonce));
5289− return _Crypto_toHex(cipher.encrypt(_Crypto_fromHex(plaintext)));
5292−var _Crypto_xchacha20Decrypt = F3(function(key, nonce, ciphertext)
5295− var cipher = _Crypto_ciphers.xchacha20poly1305(_Crypto_fromHex(key), _Crypto_fromHex(nonce));
5296− return $elm$core$Maybe$Just(_Crypto_toHex(cipher.decrypt(_Crypto_fromHex(ciphertext))));
5298− return $elm$core$Maybe$Nothing;
5301−function _Utils_cmp(x, y, ord) {if (typeof x !== 'object') {return x === y ? 0 : x < y ? -1 : 1; }if (x instanceof String) {var a = x.valueOf(); var b = y.valueOf();return a === b ? 0 : a < b ? -1 : 1; }if (typeof x.$ === 'undefined' || (typeof x.$ === 'string' && x.$[0] === '#')) {var keys = Object.keys(x).sort();for (var i = 0; i < keys.length; i++) {var k = keys[i];if (k === '$') continue;ord = _Utils_cmp(x[k], y[k]);if (ord) return ord; }return 0; }if (x.$ === '::' || x.$ === '[]') {for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {}return ord || (x.b ? 1 : y.b ? -1 : 0); }if (x.$ !== y.$) {return x.$ < y.$ ? -1 : 1; }var keys = Object.keys(x);for (var i = 0; i < keys.length; i++) {var k = keys[i];if (k === '$') continue;ord = _Utils_cmp(x[k], y[k]);if (ord) return ord; }return 0; }
5302−var $elm$core$List$cons = _List_cons;
5303−var $elm$core$Elm$JsArray$foldr = _JsArray_foldr;
5304−var $elm$core$Array$foldr = F3(
5305− function (func, baseCase, _v0) {
5309− function (node, acc) {
5310− if (node.$ === 'SubTree') {
5311− var subTree = node.a;
5312− return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree);
5314− var values = node.a;
5315− return A3($elm$core$Elm$JsArray$foldr, func, acc, values);
5319− $elm$core$Elm$JsArray$foldr,
5321− A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail),
5324−var $elm$core$Array$toList = function (array) {
5325− return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array);
5327−var $elm$core$Dict$foldr = F3(
5328− function (func, acc, t) {
5331− if (t.$ === 'RBEmpty_elm_builtin') {
5338− var $temp$func = func,
5343− A3($elm$core$Dict$foldr, func, acc, right)),
5352−var $elm$core$Dict$toList = function (dict) {
5354− $elm$core$Dict$foldr,
5356− function (key, value, list) {
5358− $elm$core$List$cons,
5359− _Utils_Tuple2(key, value),
5365−var $elm$core$Dict$keys = function (dict) {
5367− $elm$core$Dict$foldr,
5369− function (key, value, keyList) {
5370− return A2($elm$core$List$cons, key, keyList);
5375−var $elm$core$Set$toList = function (_v0) {
5377− return $elm$core$Dict$keys(dict);
5379−var $elm$core$Basics$EQ = {$: 'EQ'};
5380−var $elm$core$Basics$GT = {$: 'GT'};
5381−var $elm$core$Basics$LT = {$: 'LT'};
5382−var $elm$core$Result$Err = function (a) {
5383− return {$: 'Err', a: a};
5385−var $elm$json$Json$Decode$Failure = F2(
5387− return {$: 'Failure', a: a, b: b};
5389−var $elm$json$Json$Decode$Field = F2(
5391− return {$: 'Field', a: a, b: b};
5393−var $elm$json$Json$Decode$Index = F2(
5395− return {$: 'Index', a: a, b: b};
5397−var $elm$core$Result$Ok = function (a) {
5398− return {$: 'Ok', a: a};
5400−var $elm$json$Json$Decode$OneOf = function (a) {
5401− return {$: 'OneOf', a: a};
5403−var $elm$core$Basics$False = {$: 'False'};
5404−var $elm$core$Basics$add = _Basics_add;
5405−var $elm$core$Maybe$Just = function (a) {
5406− return {$: 'Just', a: a};
5408−var $elm$core$Maybe$Nothing = {$: 'Nothing'};
5409−var $elm$core$String$all = _String_all;
5410−var $elm$core$Basics$and = _Basics_and;
5411−var $elm$core$Basics$append = _Utils_append;
5412−var $elm$json$Json$Encode$encode = _Json_encode;
5413−var $elm$core$String$fromInt = _String_fromNumber;
5414−var $elm$core$String$join = F2(
5415− function (sep, chunks) {
5419− _List_toArray(chunks));
5421−var $elm$core$String$split = F2(
5422− function (sep, string) {
5423− return _List_fromArray(
5424− A2(_String_split, sep, string));
5426−var $elm$json$Json$Decode$indent = function (str) {
5428− $elm$core$String$join,
5430− A2($elm$core$String$split, '\n', str));
5432−var $elm$core$List$foldl = F3(
5433− function (func, acc, list) {
5441− var $temp$func = func,
5442− $temp$acc = A2(func, x, acc),
5451−var $elm$core$List$length = function (xs) {
5453− $elm$core$List$foldl,
5455− function (_v0, i) {
5461−var $elm$core$List$map2 = _List_map2;
5462−var $elm$core$Basics$le = _Utils_le;
5463−var $elm$core$Basics$sub = _Basics_sub;
5464−var $elm$core$List$rangeHelp = F3(
5465− function (lo, hi, list) {
5468− if (_Utils_cmp(lo, hi) < 1) {
5471− $temp$list = A2($elm$core$List$cons, hi, list);
5475− continue rangeHelp;
5481−var $elm$core$List$range = F2(
5482− function (lo, hi) {
5483− return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil);
5485−var $elm$core$List$indexedMap = F2(
5488− $elm$core$List$map2,
5491− $elm$core$List$range,
5493− $elm$core$List$length(xs) - 1),
5496−var $elm$core$Char$toCode = _Char_toCode;
5497−var $elm$core$Char$isLower = function (_char) {
5498− var code = $elm$core$Char$toCode(_char);
5499− return (97 <= code) && (code <= 122);
5501−var $elm$core$Char$isUpper = function (_char) {
5502− var code = $elm$core$Char$toCode(_char);
5503− return (code <= 90) && (65 <= code);
5505−var $elm$core$Basics$or = _Basics_or;
5506−var $elm$core$Char$isAlpha = function (_char) {
5507− return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char);
5509−var $elm$core$Char$isDigit = function (_char) {
5510− var code = $elm$core$Char$toCode(_char);
5511− return (code <= 57) && (48 <= code);
5513−var $elm$core$Char$isAlphaNum = function (_char) {
5514− return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char));
5516−var $elm$core$List$reverse = function (list) {
5517− return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list);
5519−var $elm$core$String$uncons = _String_uncons;
5520−var $elm$json$Json$Decode$errorOneOf = F2(
5521− function (i, error) {
5522− return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent(
5523− $elm$json$Json$Decode$errorToString(error))));
5525−var $elm$json$Json$Decode$errorToString = function (error) {
5526− return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil);
5528−var $elm$json$Json$Decode$errorToStringHelp = F2(
5529− function (error, context) {
5536− var isSimple = function () {
5537− var _v1 = $elm$core$String$uncons(f);
5538− if (_v1.$ === 'Nothing') {
5544− return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest);
5547− var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']'));
5548− var $temp$error = err,
5549− $temp$context = A2($elm$core$List$cons, fieldName, context);
5550− error = $temp$error;
5551− context = $temp$context;
5552− continue errorToStringHelp;
5556− var indexName = '[' + ($elm$core$String$fromInt(i) + ']');
5557− var $temp$error = err,
5558− $temp$context = A2($elm$core$List$cons, indexName, context);
5559− error = $temp$error;
5560− context = $temp$context;
5561− continue errorToStringHelp;
5563− var errors = error.a;
5565− return 'Ran into a Json.Decode.oneOf with no possibilities' + function () {
5569− return ' at json' + A2(
5570− $elm$core$String$join,
5572− $elm$core$List$reverse(context));
5577− var err = errors.a;
5578− var $temp$error = err,
5579− $temp$context = context;
5580− error = $temp$error;
5581− context = $temp$context;
5582− continue errorToStringHelp;
5584− var starter = function () {
5586− return 'Json.Decode.oneOf';
5588− return 'The Json.Decode.oneOf at json' + A2(
5589− $elm$core$String$join,
5591− $elm$core$List$reverse(context));
5594− var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt(
5595− $elm$core$List$length(errors)) + ' ways:'));
5597− $elm$core$String$join,
5600− $elm$core$List$cons,
5602− A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors)));
5607− var json = error.b;
5608− var introduction = function () {
5610− return 'Problem with the given value:\n\n';
5612− return 'Problem with the value at json' + (A2(
5613− $elm$core$String$join,
5615− $elm$core$List$reverse(context)) + ':\n\n ');
5618− return introduction + ($elm$json$Json$Decode$indent(
5619− A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg));
5623−var $elm$core$Array$branchFactor = 32;
5624−var $elm$core$Array$Array_elm_builtin = F4(
5625− function (a, b, c, d) {
5626− return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d};
5628−var $elm$core$Elm$JsArray$empty = _JsArray_empty;
5629−var $elm$core$Basics$ceiling = _Basics_ceiling;
5630−var $elm$core$Basics$fdiv = _Basics_fdiv;
5631−var $elm$core$Basics$logBase = F2(
5632− function (base, number) {
5633− return _Basics_log(number) / _Basics_log(base);
5635−var $elm$core$Basics$toFloat = _Basics_toFloat;
5636−var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling(
5637− A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor));
5638−var $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);
5639−var $elm$core$Elm$JsArray$initialize = _JsArray_initialize;
5640−var $elm$core$Array$Leaf = function (a) {
5641− return {$: 'Leaf', a: a};
5643−var $elm$core$Basics$apL = F2(
5647−var $elm$core$Basics$apR = F2(
5651−var $elm$core$Basics$eq = _Utils_equal;
5652−var $elm$core$Basics$floor = _Basics_floor;
5653−var $elm$core$Elm$JsArray$length = _JsArray_length;
5654−var $elm$core$Basics$gt = _Utils_gt;
5655−var $elm$core$Basics$max = F2(
5657− return (_Utils_cmp(x, y) > 0) ? x : y;
5659−var $elm$core$Basics$mul = _Basics_mul;
5660−var $elm$core$Array$SubTree = function (a) {
5661− return {$: 'SubTree', a: a};
5663−var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList;
5664−var $elm$core$Array$compressNodes = F2(
5665− function (nodes, acc) {
5668− var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes);
5670− var remainingNodes = _v0.b;
5672− $elm$core$List$cons,
5673− $elm$core$Array$SubTree(node),
5675− if (!remainingNodes.b) {
5676− return $elm$core$List$reverse(newAcc);
5678− var $temp$nodes = remainingNodes,
5679− $temp$acc = newAcc;
5680− nodes = $temp$nodes;
5682− continue compressNodes;
5686−var $elm$core$Tuple$first = function (_v0) {
5690−var $elm$core$Array$treeFromBuilder = F2(
5691− function (nodeList, nodeListSize) {
5694− var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor);
5695− if (newNodeSize === 1) {
5696− return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a;
5698− var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil),
5699− $temp$nodeListSize = newNodeSize;
5700− nodeList = $temp$nodeList;
5701− nodeListSize = $temp$nodeListSize;
5702− continue treeFromBuilder;
5706−var $elm$core$Array$builderToArray = F2(
5707− function (reverseNodeList, builder) {
5708− if (!builder.nodeListSize) {
5710− $elm$core$Array$Array_elm_builtin,
5711− $elm$core$Elm$JsArray$length(builder.tail),
5712− $elm$core$Array$shiftStep,
5713− $elm$core$Elm$JsArray$empty,
5716− var treeLen = builder.nodeListSize * $elm$core$Array$branchFactor;
5717− var depth = $elm$core$Basics$floor(
5718− A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1));
5719− var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.nodeList) : builder.nodeList;
5720− var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize);
5722− $elm$core$Array$Array_elm_builtin,
5723− $elm$core$Elm$JsArray$length(builder.tail) + treeLen,
5724− A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep),
5729−var $elm$core$Basics$idiv = _Basics_idiv;
5730−var $elm$core$Basics$lt = _Utils_lt;
5731−var $elm$core$Array$initializeHelp = F5(
5732− function (fn, fromIndex, len, nodeList, tail) {
5735− if (fromIndex < 0) {
5737− $elm$core$Array$builderToArray,
5739− {nodeList: nodeList, nodeListSize: (len / $elm$core$Array$branchFactor) | 0, tail: tail});
5741− var leaf = $elm$core$Array$Leaf(
5742− A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn));
5744− $temp$fromIndex = fromIndex - $elm$core$Array$branchFactor,
5746− $temp$nodeList = A2($elm$core$List$cons, leaf, nodeList),
5749− fromIndex = $temp$fromIndex;
5751− nodeList = $temp$nodeList;
5753− continue initializeHelp;
5757−var $elm$core$Basics$remainderBy = _Basics_remainderBy;
5758−var $elm$core$Array$initialize = F2(
5759− function (len, fn) {
5761− return $elm$core$Array$empty;
5763− var tailLen = len % $elm$core$Array$branchFactor;
5764− var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn);
5765− var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor;
5766− return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail);
5769−var $elm$core$Basics$True = {$: 'True'};
5770−var $elm$core$Result$isOk = function (result) {
5771− if (result.$ === 'Ok') {
5777−var $elm$json$Json$Decode$map = _Json_map1;
5778−var $elm$json$Json$Decode$map2 = _Json_map2;
5779−var $elm$json$Json$Decode$succeed = _Json_succeed;
5780−var $lynxjs_elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) {
5781− switch (handler.$) {
5784− case 'MayStopPropagation':
5786− case 'MayPreventDefault':
5792−var $elm$core$Basics$identity = function (x) {
5795−var $lynxjs_elm$browser$Browser$Dom$NotFound = function (a) {
5796− return {$: 'NotFound', a: a};
5798−var $elm$core$Basics$never = function (_v0) {
5802− var $temp$_v0 = nvr;
5807−var $elm$core$Task$Perform = function (a) {
5808− return {$: 'Perform', a: a};
5810−var $elm$core$Task$succeed = _Scheduler_succeed;
5811−var $elm$core$Task$init = $elm$core$Task$succeed(_Utils_Tuple0);
5812−var $elm$core$List$foldrHelper = F4(
5813− function (fn, acc, ctr, ls) {
5820− return A2(fn, a, acc);
5843− var res = (ctr > 500) ? A3(
5844− $elm$core$List$foldl,
5847− $elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4);
5863−var $elm$core$List$foldr = F3(
5864− function (fn, acc, ls) {
5865− return A4($elm$core$List$foldrHelper, fn, acc, 0, ls);
5867−var $elm$core$List$map = F2(
5870− $elm$core$List$foldr,
5872− function (x, acc) {
5874− $elm$core$List$cons,
5881−var $elm$core$Task$andThen = _Scheduler_andThen;
5882−var $elm$core$Task$map = F2(
5883− function (func, taskA) {
5885− $elm$core$Task$andThen,
5887− return $elm$core$Task$succeed(
5892−var $elm$core$Task$map2 = F3(
5893− function (func, taskA, taskB) {
5895− $elm$core$Task$andThen,
5898− $elm$core$Task$andThen,
5900− return $elm$core$Task$succeed(
5907−var $elm$core$Task$sequence = function (tasks) {
5909− $elm$core$List$foldr,
5910− $elm$core$Task$map2($elm$core$List$cons),
5911− $elm$core$Task$succeed(_List_Nil),
5914−var $elm$core$Platform$sendToApp = _Platform_sendToApp;
5915−var $elm$core$Task$spawnCmd = F2(
5916− function (router, _v0) {
5918− return _Scheduler_spawn(
5920− $elm$core$Task$andThen,
5921− $elm$core$Platform$sendToApp(router),
5924−var $elm$core$Task$onEffects = F3(
5925− function (router, commands, state) {
5927− $elm$core$Task$map,
5929− return _Utils_Tuple0;
5931− $elm$core$Task$sequence(
5933− $elm$core$List$map,
5934− $elm$core$Task$spawnCmd(router),
5937−var $elm$core$Task$onSelfMsg = F3(
5938− function (_v0, _v1, _v2) {
5939− return $elm$core$Task$succeed(_Utils_Tuple0);
5941−var $elm$core$Task$cmdMap = F2(
5942− function (tagger, _v0) {
5944− return $elm$core$Task$Perform(
5945− A2($elm$core$Task$map, tagger, task));
5947−_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap);
5948−var $elm$core$Task$command = _Platform_leaf('Task');
5949−var $elm$core$Task$perform = F2(
5950− function (toMessage, task) {
5951− return $elm$core$Task$command(
5952− $elm$core$Task$Perform(
5953− A2($elm$core$Task$map, toMessage, task)));
5955−var $lynxjs_elm$browser$Browser$element = _Browser_element;
5956−var $author$project$Main$GotSeed = function (a) {
5957− return {$: 'GotSeed', a: a};
5959−var $author$project$Main$SetupScreen = {$: 'SetupScreen'};
5960−var $elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'};
5961−var $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin;
5962−var $elm$core$Set$Set_elm_builtin = function (a) {
5963− return {$: 'Set_elm_builtin', a: a};
5965−var $elm$core$Set$empty = $elm$core$Set$Set_elm_builtin($elm$core$Dict$empty);
5966−var $elm$random$Random$Generate = function (a) {
5967− return {$: 'Generate', a: a};
5969−var $elm$random$Random$Seed = F2(
5971− return {$: 'Seed', a: a, b: b};
5973−var $elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy;
5974−var $elm$random$Random$next = function (_v0) {
5975− var state0 = _v0.a;
5977− return A2($elm$random$Random$Seed, ((state0 * 1664525) + incr) >>> 0, incr);
5979−var $elm$random$Random$initialSeed = function (x) {
5980− var _v0 = $elm$random$Random$next(
5981− A2($elm$random$Random$Seed, 0, 1013904223));
5982− var state1 = _v0.a;
5984− var state2 = (state1 + x) >>> 0;
5985− return $elm$random$Random$next(
5986− A2($elm$random$Random$Seed, state2, incr));
5988−var $elm$time$Time$Name = function (a) {
5989− return {$: 'Name', a: a};
5991−var $elm$time$Time$Offset = function (a) {
5992− return {$: 'Offset', a: a};
5994−var $elm$time$Time$Zone = F2(
5996− return {$: 'Zone', a: a, b: b};
5998−var $elm$time$Time$customZone = $elm$time$Time$Zone;
5999−var $elm$time$Time$Posix = function (a) {
6000− return {$: 'Posix', a: a};
6002−var $elm$time$Time$millisToPosix = $elm$time$Time$Posix;
6003−var $elm$time$Time$now = _Time_now($elm$time$Time$millisToPosix);
6004−var $elm$time$Time$posixToMillis = function (_v0) {
6005− var millis = _v0.a;
6008−var $elm$random$Random$init = A2(
6009− $elm$core$Task$andThen,
6011− return $elm$core$Task$succeed(
6012− $elm$random$Random$initialSeed(
6013− $elm$time$Time$posixToMillis(time)));
6015− $elm$time$Time$now);
6016−var $elm$random$Random$step = F2(
6017− function (_v0, seed) {
6018− var generator = _v0.a;
6019− return generator(seed);
6021−var $elm$random$Random$onEffects = F3(
6022− function (router, commands, seed) {
6024− return $elm$core$Task$succeed(seed);
6026− var generator = commands.a.a;
6027− var rest = commands.b;
6028− var _v1 = A2($elm$random$Random$step, generator, seed);
6030− var newSeed = _v1.b;
6032− $elm$core$Task$andThen,
6034− return A3($elm$random$Random$onEffects, router, rest, newSeed);
6036− A2($elm$core$Platform$sendToApp, router, value));
6039−var $elm$random$Random$onSelfMsg = F3(
6040− function (_v0, _v1, seed) {
6041− return $elm$core$Task$succeed(seed);
6043−var $elm$random$Random$Generator = function (a) {
6044− return {$: 'Generator', a: a};
6046−var $elm$random$Random$map = F2(
6047− function (func, _v0) {
6049− return $elm$random$Random$Generator(
6051− var _v1 = genA(seed0);
6054− return _Utils_Tuple2(
6059−var $elm$random$Random$cmdMap = F2(
6060− function (func, _v0) {
6061− var generator = _v0.a;
6062− return $elm$random$Random$Generate(
6063− A2($elm$random$Random$map, func, generator));
6065−_Platform_effectManagers['Random'] = _Platform_createManager($elm$random$Random$init, $elm$random$Random$onEffects, $elm$random$Random$onSelfMsg, $elm$random$Random$cmdMap);
6066−var $elm$random$Random$command = _Platform_leaf('Random');
6067−var $elm$random$Random$generate = F2(
6068− function (tagger, generator) {
6069− return $elm$random$Random$command(
6070− $elm$random$Random$Generate(
6071− A2($elm$random$Random$map, tagger, generator)));
6073−var $elm$core$String$fromList = _String_fromList;
6074−var $elm$random$Random$listHelp = F4(
6075− function (revList, n, gen, seed) {
6079− return _Utils_Tuple2(revList, seed);
6081− var _v0 = gen(seed);
6083− var newSeed = _v0.b;
6084− var $temp$revList = A2($elm$core$List$cons, value, revList),
6087− $temp$seed = newSeed;
6088− revList = $temp$revList;
6096−var $elm$random$Random$list = F2(
6097− function (n, _v0) {
6099− return $elm$random$Random$Generator(
6101− return A4($elm$random$Random$listHelp, _List_Nil, n, gen, seed);
6104−var $elm$core$Char$fromCode = _Char_fromCode;
6105−var $elm$core$Bitwise$and = _Bitwise_and;
6106−var $elm$core$Basics$negate = function (n) {
6109−var $elm$core$Bitwise$xor = _Bitwise_xor;
6110−var $elm$random$Random$peel = function (_v0) {
6112− var word = (state ^ (state >>> ((state >>> 28) + 4))) * 277803737;
6113− return ((word >>> 22) ^ word) >>> 0;
6115−var $elm$random$Random$int = F2(
6117− return $elm$random$Random$Generator(
6119− var _v0 = (_Utils_cmp(a, b) < 0) ? _Utils_Tuple2(a, b) : _Utils_Tuple2(b, a);
6122− var range = (hi - lo) + 1;
6123− if (!((range - 1) & range)) {
6124− return _Utils_Tuple2(
6125− (((range - 1) & $elm$random$Random$peel(seed0)) >>> 0) + lo,
6126− $elm$random$Random$next(seed0));
6128− var threshhold = (((-range) >>> 0) % range) >>> 0;
6129− var accountForBias = function (seed) {
6132− var x = $elm$random$Random$peel(seed);
6133− var seedN = $elm$random$Random$next(seed);
6134− if (_Utils_cmp(x, threshhold) < 0) {
6135− var $temp$seed = seedN;
6137− continue accountForBias;
6139− return _Utils_Tuple2((x % range) + lo, seedN);
6143− return accountForBias(seed0);
6147−var $author$project$Main$randomHexChar = A2(
6148− $elm$random$Random$map,
6150− return (n < 10) ? $elm$core$Char$fromCode(n + 48) : $elm$core$Char$fromCode((n - 10) + 97);
6152− A2($elm$random$Random$int, 0, 15));
6153−var $author$project$Main$randomHexString = function (byteCount) {
6155− $elm$random$Random$map,
6156− $elm$core$String$fromList,
6157− A2($elm$random$Random$list, byteCount * 2, $author$project$Main$randomHexChar));
6159−var $author$project$Main$init = function (_v0) {
6160− return _Utils_Tuple2(
6161− {activeChat: '', addIdentity: '', addName: '', authToken: '', connecting: false, contacts: $elm$core$Dict$empty, currentTime: 0, displayName: '', draft: '', edPriv: $elm$core$Maybe$Nothing, edPub: $elm$core$Maybe$Nothing, error: $elm$core$Maybe$Nothing, messages: $elm$core$Dict$empty, screen: $author$project$Main$SetupScreen, seenIds: $elm$core$Set$empty, sending: false, serverUrl: 'http://localhost:8080', xPriv: $elm$core$Maybe$Nothing, xPub: $elm$core$Maybe$Nothing},
6163− $elm$random$Random$generate,
6164− $author$project$Main$GotSeed,
6165− $author$project$Main$randomHexString(32)));
6167−var $author$project$Main$GotTime = function (a) {
6168− return {$: 'GotTime', a: a};
6170−var $author$project$Main$PollTick = function (a) {
6171− return {$: 'PollTick', a: a};
6173−var $elm$core$Platform$Sub$batch = _Platform_batch;
6174−var $elm$time$Time$Every = F2(
6176− return {$: 'Every', a: a, b: b};
6178−var $elm$time$Time$State = F2(
6179− function (taggers, processes) {
6180− return {processes: processes, taggers: taggers};
6182−var $elm$time$Time$init = $elm$core$Task$succeed(
6183− A2($elm$time$Time$State, $elm$core$Dict$empty, $elm$core$Dict$empty));
6184−var $elm$core$Basics$compare = _Utils_compare;
6185−var $elm$core$Dict$get = F2(
6186− function (targetKey, dict) {
6189− if (dict.$ === 'RBEmpty_elm_builtin') {
6190− return $elm$core$Maybe$Nothing;
6193− var value = dict.c;
6195− var right = dict.e;
6196− var _v1 = A2($elm$core$Basics$compare, targetKey, key);
6199− var $temp$targetKey = targetKey,
6201− targetKey = $temp$targetKey;
6205− return $elm$core$Maybe$Just(value);
6207− var $temp$targetKey = targetKey,
6208− $temp$dict = right;
6209− targetKey = $temp$targetKey;
6216−var $elm$core$Dict$Black = {$: 'Black'};
6217−var $elm$core$Dict$RBNode_elm_builtin = F5(
6218− function (a, b, c, d, e) {
6219− return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e};
6221−var $elm$core$Dict$Red = {$: 'Red'};
6222−var $elm$core$Dict$balance = F5(
6223− function (color, key, value, left, right) {
6224− if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) {
6228− var rLeft = right.d;
6229− var rRight = right.e;
6230− if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {
6234− var lLeft = left.d;
6235− var lRight = left.e;
6237− $elm$core$Dict$RBNode_elm_builtin,
6238− $elm$core$Dict$Red,
6241− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, lK, lV, lLeft, lRight),
6242− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rLeft, rRight));
6245− $elm$core$Dict$RBNode_elm_builtin,
6249− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, left, rLeft),
6253− if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) {
6261− var llLeft = _v6.d;
6262− var llRight = _v6.e;
6263− var lRight = left.e;
6265− $elm$core$Dict$RBNode_elm_builtin,
6266− $elm$core$Dict$Red,
6269− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),
6270− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, lRight, right));
6272− return A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right);
6276−var $elm$core$Dict$insertHelp = F3(
6277− function (key, value, dict) {
6278− if (dict.$ === 'RBEmpty_elm_builtin') {
6279− return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin);
6281− var nColor = dict.a;
6283− var nValue = dict.c;
6284− var nLeft = dict.d;
6285− var nRight = dict.e;
6286− var _v1 = A2($elm$core$Basics$compare, key, nKey);
6290− $elm$core$Dict$balance,
6294− A3($elm$core$Dict$insertHelp, key, value, nLeft),
6297− return A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight);
6300− $elm$core$Dict$balance,
6305− A3($elm$core$Dict$insertHelp, key, value, nRight));
6309−var $elm$core$Dict$insert = F3(
6310− function (key, value, dict) {
6311− var _v0 = A3($elm$core$Dict$insertHelp, key, value, dict);
6312− if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {
6318− return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);
6324−var $elm$time$Time$addMySub = F2(
6325− function (_v0, state) {
6326− var interval = _v0.a;
6327− var tagger = _v0.b;
6328− var _v1 = A2($elm$core$Dict$get, interval, state);
6329− if (_v1.$ === 'Nothing') {
6331− $elm$core$Dict$insert,
6337− var taggers = _v1.a;
6339− $elm$core$Dict$insert,
6341− A2($elm$core$List$cons, tagger, taggers),
6345−var $elm$core$Process$kill = _Scheduler_kill;
6346−var $elm$core$Dict$foldl = F3(
6347− function (func, acc, dict) {
6350− if (dict.$ === 'RBEmpty_elm_builtin') {
6354− var value = dict.c;
6356− var right = dict.e;
6357− var $temp$func = func,
6362− A3($elm$core$Dict$foldl, func, acc, left)),
6363− $temp$dict = right;
6371−var $elm$core$Dict$merge = F6(
6372− function (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) {
6373− var stepState = F3(
6374− function (rKey, rValue, _v0) {
6378− var result = _v0.b;
6380− return _Utils_Tuple2(
6382− A3(rightStep, rKey, rValue, result));
6386− var lValue = _v2.b;
6388− if (_Utils_cmp(lKey, rKey) < 0) {
6389− var $temp$rKey = rKey,
6390− $temp$rValue = rValue,
6391− $temp$_v0 = _Utils_Tuple2(
6393− A3(leftStep, lKey, lValue, result));
6395− rValue = $temp$rValue;
6397− continue stepState;
6399− if (_Utils_cmp(lKey, rKey) > 0) {
6400− return _Utils_Tuple2(
6402− A3(rightStep, rKey, rValue, result));
6404− return _Utils_Tuple2(
6406− A4(bothStep, lKey, lValue, rValue, result));
6413− $elm$core$Dict$foldl,
6416− $elm$core$Dict$toList(leftDict),
6419− var leftovers = _v3.a;
6420− var intermediateResult = _v3.b;
6422− $elm$core$List$foldl,
6424− function (_v4, result) {
6427− return A3(leftStep, k, v, result);
6429− intermediateResult,
6432−var $elm$core$Platform$sendToSelf = _Platform_sendToSelf;
6433−var $elm$time$Time$setInterval = _Time_setInterval;
6434−var $elm$core$Process$spawn = _Scheduler_spawn;
6435−var $elm$time$Time$spawnHelp = F3(
6436− function (router, intervals, processes) {
6437− if (!intervals.b) {
6438− return $elm$core$Task$succeed(processes);
6440− var interval = intervals.a;
6441− var rest = intervals.b;
6442− var spawnTimer = $elm$core$Process$spawn(
6444− $elm$time$Time$setInterval,
6446− A2($elm$core$Platform$sendToSelf, router, interval)));
6447− var spawnRest = function (id) {
6449− $elm$time$Time$spawnHelp,
6452− A3($elm$core$Dict$insert, interval, id, processes));
6454− return A2($elm$core$Task$andThen, spawnRest, spawnTimer);
6457−var $elm$time$Time$onEffects = F3(
6458− function (router, subs, _v0) {
6459− var processes = _v0.processes;
6460− var rightStep = F3(
6461− function (_v6, id, _v7) {
6462− var spawns = _v7.a;
6463− var existing = _v7.b;
6465− return _Utils_Tuple3(
6469− $elm$core$Task$andThen,
6473− $elm$core$Process$kill(id)));
6475− var newTaggers = A3($elm$core$List$foldl, $elm$time$Time$addMySub, $elm$core$Dict$empty, subs);
6477− function (interval, taggers, _v4) {
6478− var spawns = _v4.a;
6479− var existing = _v4.b;
6481− return _Utils_Tuple3(
6482− A2($elm$core$List$cons, interval, spawns),
6487− function (interval, taggers, id, _v3) {
6488− var spawns = _v3.a;
6489− var existing = _v3.b;
6491− return _Utils_Tuple3(
6493− A3($elm$core$Dict$insert, interval, id, existing),
6497− $elm$core$Dict$merge,
6505− $elm$core$Dict$empty,
6506− $elm$core$Task$succeed(_Utils_Tuple0)));
6507− var spawnList = _v1.a;
6508− var existingDict = _v1.b;
6509− var killTask = _v1.c;
6511− $elm$core$Task$andThen,
6512− function (newProcesses) {
6513− return $elm$core$Task$succeed(
6514− A2($elm$time$Time$State, newTaggers, newProcesses));
6517− $elm$core$Task$andThen,
6519− return A3($elm$time$Time$spawnHelp, router, spawnList, existingDict);
6523−var $elm$time$Time$onSelfMsg = F3(
6524− function (router, interval, state) {
6525− var _v0 = A2($elm$core$Dict$get, interval, state.taggers);
6526− if (_v0.$ === 'Nothing') {
6527− return $elm$core$Task$succeed(state);
6529− var taggers = _v0.a;
6530− var tellTaggers = function (time) {
6531− return $elm$core$Task$sequence(
6533− $elm$core$List$map,
6534− function (tagger) {
6536− $elm$core$Platform$sendToApp,
6543− $elm$core$Task$andThen,
6545− return $elm$core$Task$succeed(state);
6547− A2($elm$core$Task$andThen, tellTaggers, $elm$time$Time$now));
6550−var $elm$core$Basics$composeL = F3(
6551− function (g, f, x) {
6555−var $elm$time$Time$subMap = F2(
6556− function (f, _v0) {
6557− var interval = _v0.a;
6558− var tagger = _v0.b;
6560− $elm$time$Time$Every,
6562− A2($elm$core$Basics$composeL, f, tagger));
6564−_Platform_effectManagers['Time'] = _Platform_createManager($elm$time$Time$init, $elm$time$Time$onEffects, $elm$time$Time$onSelfMsg, 0, $elm$time$Time$subMap);
6565−var $elm$time$Time$subscription = _Platform_leaf('Time');
6566−var $elm$time$Time$every = F2(
6567− function (interval, tagger) {
6568− return $elm$time$Time$subscription(
6569− A2($elm$time$Time$Every, interval, tagger));
6571−var $elm$core$Basics$neq = _Utils_notEqual;
6572−var $elm$core$Platform$Sub$none = $elm$core$Platform$Sub$batch(_List_Nil);
6573−var $author$project$Main$subscriptions = function (model) {
6574− return $elm$core$Platform$Sub$batch(
6577− (model.authToken !== '') ? A2($elm$time$Time$every, 3000, $author$project$Main$PollTick) : $elm$core$Platform$Sub$none,
6578− A2($elm$time$Time$every, 60000, $author$project$Main$GotTime)
6581−var $author$project$Main$ChatScreen = {$: 'ChatScreen'};
6582−var $author$project$Main$ContactsScreen = {$: 'ContactsScreen'};
6583−var $author$project$Main$GotSendEntropy = function (a) {
6584− return {$: 'GotSendEntropy', a: a};
6586−var $author$project$Main$GotAck = function (a) {
6587− return {$: 'GotAck', a: a};
6589−var $elm$json$Json$Decode$bool = _Json_decodeBool;
6590−var $elm$json$Json$Decode$decodeString = _Json_runOnString;
6591−var $elm$bytes$Bytes$Encode$getWidth = function (builder) {
6592− switch (builder.$) {
6616− var bs = builder.a;
6617− return _Bytes_width(bs);
6620−var $elm$bytes$Bytes$LE = {$: 'LE'};
6621−var $elm$bytes$Bytes$Encode$write = F3(
6622− function (builder, mb, offset) {
6623− switch (builder.$) {
6626− return A3(_Bytes_write_i8, mb, offset, n);
6635− _Utils_eq(e, $elm$bytes$Bytes$LE));
6644− _Utils_eq(e, $elm$bytes$Bytes$LE));
6647− return A3(_Bytes_write_u8, mb, offset, n);
6656− _Utils_eq(e, $elm$bytes$Bytes$LE));
6665− _Utils_eq(e, $elm$bytes$Bytes$LE));
6674− _Utils_eq(e, $elm$bytes$Bytes$LE));
6683− _Utils_eq(e, $elm$bytes$Bytes$LE));
6685− var bs = builder.b;
6686− return A3($elm$bytes$Bytes$Encode$writeSequence, bs, mb, offset);
6689− return A3(_Bytes_write_string, mb, offset, s);
6691− var bs = builder.a;
6692− return A3(_Bytes_write_bytes, mb, offset, bs);
6695−var $elm$bytes$Bytes$Encode$writeSequence = F3(
6696− function (builders, mb, offset) {
6702− var b = builders.a;
6703− var bs = builders.b;
6704− var $temp$builders = bs,
6706− $temp$offset = A3($elm$bytes$Bytes$Encode$write, b, mb, offset);
6707− builders = $temp$builders;
6709− offset = $temp$offset;
6710− continue writeSequence;
6714−var $lynxjs_elm$http$Http$BadStatus_ = F2(
6716− return {$: 'BadStatus_', a: a, b: b};
6718−var $lynxjs_elm$http$Http$BadUrl_ = function (a) {
6719− return {$: 'BadUrl_', a: a};
6721−var $lynxjs_elm$http$Http$GoodStatus_ = F2(
6723− return {$: 'GoodStatus_', a: a, b: b};
6725−var $lynxjs_elm$http$Http$NetworkError_ = {$: 'NetworkError_'};
6726−var $lynxjs_elm$http$Http$Timeout_ = {$: 'Timeout_'};
6727−var $elm$core$Maybe$isJust = function (maybe) {
6728− if (maybe.$ === 'Just') {
6734−var $elm$core$Dict$getMin = function (dict) {
6737− if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {
6739− var $temp$dict = left;
6747−var $elm$core$Dict$moveRedLeft = function (dict) {
6748− if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {
6749− if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) {
6758− var lRight = _v1.e;
6769− var rRight = _v2.e;
6771− $elm$core$Dict$RBNode_elm_builtin,
6772− $elm$core$Dict$Red,
6776− $elm$core$Dict$RBNode_elm_builtin,
6777− $elm$core$Dict$Black,
6780− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
6782− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rlR, rRight));
6792− var lRight = _v4.e;
6798− var rRight = _v5.e;
6799− if (clr.$ === 'Black') {
6801− $elm$core$Dict$RBNode_elm_builtin,
6802− $elm$core$Dict$Black,
6805− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
6806− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
6809− $elm$core$Dict$RBNode_elm_builtin,
6810− $elm$core$Dict$Black,
6813− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
6814− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
6821−var $elm$core$Dict$moveRedRight = function (dict) {
6822− if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {
6823− if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) {
6835− var llLeft = _v2.d;
6836− var llRight = _v2.e;
6837− var lRight = _v1.e;
6843− var rRight = _v4.e;
6845− $elm$core$Dict$RBNode_elm_builtin,
6846− $elm$core$Dict$Red,
6849− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),
6851− $elm$core$Dict$RBNode_elm_builtin,
6852− $elm$core$Dict$Black,
6856− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)));
6866− var lRight = _v5.e;
6872− var rRight = _v6.e;
6873− if (clr.$ === 'Black') {
6875− $elm$core$Dict$RBNode_elm_builtin,
6876− $elm$core$Dict$Black,
6879− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
6880− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
6883− $elm$core$Dict$RBNode_elm_builtin,
6884− $elm$core$Dict$Black,
6887− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
6888− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
6895−var $elm$core$Dict$removeHelpPrepEQGT = F7(
6896− function (targetKey, dict, color, key, value, left, right) {
6897− if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {
6901− var lLeft = left.d;
6902− var lRight = left.e;
6904− $elm$core$Dict$RBNode_elm_builtin,
6909− A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, lRight, right));
6913− if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) {
6914− if (right.d.$ === 'RBNode_elm_builtin') {
6915− if (right.d.a.$ === 'Black') {
6919− return $elm$core$Dict$moveRedRight(dict);
6926− return $elm$core$Dict$moveRedRight(dict);
6935−var $elm$core$Dict$removeMin = function (dict) {
6936− if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {
6937− var color = dict.a;
6939− var value = dict.c;
6941− var lColor = left.a;
6942− var lLeft = left.d;
6943− var right = dict.e;
6944− if (lColor.$ === 'Black') {
6945− if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {
6948− $elm$core$Dict$RBNode_elm_builtin,
6952− $elm$core$Dict$removeMin(left),
6955− var _v4 = $elm$core$Dict$moveRedLeft(dict);
6956− if (_v4.$ === 'RBNode_elm_builtin') {
6957− var nColor = _v4.a;
6959− var nValue = _v4.c;
6961− var nRight = _v4.e;
6963− $elm$core$Dict$balance,
6967− $elm$core$Dict$removeMin(nLeft),
6970− return $elm$core$Dict$RBEmpty_elm_builtin;
6975− $elm$core$Dict$RBNode_elm_builtin,
6979− $elm$core$Dict$removeMin(left),
6983− return $elm$core$Dict$RBEmpty_elm_builtin;
6986−var $elm$core$Dict$removeHelp = F2(
6987− function (targetKey, dict) {
6988− if (dict.$ === 'RBEmpty_elm_builtin') {
6989− return $elm$core$Dict$RBEmpty_elm_builtin;
6991− var color = dict.a;
6993− var value = dict.c;
6995− var right = dict.e;
6996− if (_Utils_cmp(targetKey, key) < 0) {
6997− if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) {
6999− var lLeft = left.d;
7000− if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {
7003− $elm$core$Dict$RBNode_elm_builtin,
7007− A2($elm$core$Dict$removeHelp, targetKey, left),
7010− var _v7 = $elm$core$Dict$moveRedLeft(dict);
7011− if (_v7.$ === 'RBNode_elm_builtin') {
7012− var nColor = _v7.a;
7014− var nValue = _v7.c;
7016− var nRight = _v7.e;
7018− $elm$core$Dict$balance,
7022− A2($elm$core$Dict$removeHelp, targetKey, nLeft),
7025− return $elm$core$Dict$RBEmpty_elm_builtin;
7030− $elm$core$Dict$RBNode_elm_builtin,
7034− A2($elm$core$Dict$removeHelp, targetKey, left),
7039− $elm$core$Dict$removeHelpEQGT,
7041− A7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right));
7045−var $elm$core$Dict$removeHelpEQGT = F2(
7046− function (targetKey, dict) {
7047− if (dict.$ === 'RBNode_elm_builtin') {
7048− var color = dict.a;
7050− var value = dict.c;
7052− var right = dict.e;
7053− if (_Utils_eq(targetKey, key)) {
7054− var _v1 = $elm$core$Dict$getMin(right);
7055− if (_v1.$ === 'RBNode_elm_builtin') {
7056− var minKey = _v1.b;
7057− var minValue = _v1.c;
7059− $elm$core$Dict$balance,
7064− $elm$core$Dict$removeMin(right));
7066− return $elm$core$Dict$RBEmpty_elm_builtin;
7070− $elm$core$Dict$balance,
7075− A2($elm$core$Dict$removeHelp, targetKey, right));
7078− return $elm$core$Dict$RBEmpty_elm_builtin;
7081−var $elm$core$Dict$remove = F2(
7082− function (key, dict) {
7083− var _v0 = A2($elm$core$Dict$removeHelp, key, dict);
7084− if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {
7090− return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);
7096−var $elm$core$Dict$update = F3(
7097− function (targetKey, alter, dictionary) {
7099− A2($elm$core$Dict$get, targetKey, dictionary));
7100− if (_v0.$ === 'Just') {
7102− return A3($elm$core$Dict$insert, targetKey, value, dictionary);
7104− return A2($elm$core$Dict$remove, targetKey, dictionary);
7107−var $elm$core$Basics$composeR = F3(
7108− function (f, g, x) {
7112−var $lynxjs_elm$http$Http$expectStringResponse = F2(
7113− function (toMsg, toResult) {
7117− $elm$core$Basics$identity,
7118− A2($elm$core$Basics$composeR, toResult, toMsg));
7120−var $elm$core$Result$mapError = F2(
7121− function (f, result) {
7122− if (result.$ === 'Ok') {
7124− return $elm$core$Result$Ok(v);
7127− return $elm$core$Result$Err(
7131−var $lynxjs_elm$http$Http$BadBody = function (a) {
7132− return {$: 'BadBody', a: a};
7134−var $lynxjs_elm$http$Http$BadStatus = function (a) {
7135− return {$: 'BadStatus', a: a};
7137−var $lynxjs_elm$http$Http$BadUrl = function (a) {
7138− return {$: 'BadUrl', a: a};
7140−var $lynxjs_elm$http$Http$NetworkError = {$: 'NetworkError'};
7141−var $lynxjs_elm$http$Http$Timeout = {$: 'Timeout'};
7142−var $lynxjs_elm$http$Http$resolve = F2(
7143− function (toResult, response) {
7144− switch (response.$) {
7146− var url = response.a;
7147− return $elm$core$Result$Err(
7148− $lynxjs_elm$http$Http$BadUrl(url));
7150− return $elm$core$Result$Err($lynxjs_elm$http$Http$Timeout);
7151− case 'NetworkError_':
7152− return $elm$core$Result$Err($lynxjs_elm$http$Http$NetworkError);
7154− var metadata = response.a;
7155− return $elm$core$Result$Err(
7156− $lynxjs_elm$http$Http$BadStatus(metadata.statusCode));
7158− var body = response.b;
7160− $elm$core$Result$mapError,
7161− $lynxjs_elm$http$Http$BadBody,
7165−var $lynxjs_elm$http$Http$expectJson = F2(
7166− function (toMsg, decoder) {
7168− $lynxjs_elm$http$Http$expectStringResponse,
7170− $lynxjs_elm$http$Http$resolve(
7171− function (string) {
7173− $elm$core$Result$mapError,
7174− $elm$json$Json$Decode$errorToString,
7175− A2($elm$json$Json$Decode$decodeString, decoder, string));
7178−var $elm$json$Json$Decode$field = _Json_decodeField;
7179−var $lynxjs_elm$http$Http$Header = F2(
7181− return {$: 'Header', a: a, b: b};
7183−var $lynxjs_elm$http$Http$header = $lynxjs_elm$http$Http$Header;
7184−var $lynxjs_elm$http$Http$jsonBody = function (value) {
7187− 'application/json',
7188− A2($elm$json$Json$Encode$encode, 0, value));
7190−var $elm$json$Json$Encode$list = F2(
7191− function (func, entries) {
7194− $elm$core$List$foldl,
7195− _Json_addEntry(func),
7196− _Json_emptyArray(_Utils_Tuple0),
7199−var $elm$json$Json$Encode$object = function (pairs) {
7202− $elm$core$List$foldl,
7204− function (_v0, obj) {
7207− return A3(_Json_addField, k, v, obj);
7209− _Json_emptyObject(_Utils_Tuple0),
7212−var $lynxjs_elm$http$Http$Request = function (a) {
7213− return {$: 'Request', a: a};
7215−var $lynxjs_elm$http$Http$State = F2(
7216− function (reqs, subs) {
7217− return {reqs: reqs, subs: subs};
7219−var $lynxjs_elm$http$Http$init = $elm$core$Task$succeed(
7220− A2($lynxjs_elm$http$Http$State, $elm$core$Dict$empty, _List_Nil));
7221−var $lynxjs_elm$http$Http$updateReqs = F3(
7222− function (router, cmds, reqs) {
7226− return $elm$core$Task$succeed(reqs);
7229− var otherCmds = cmds.b;
7230− if (cmd.$ === 'Cancel') {
7231− var tracker = cmd.a;
7232− var _v2 = A2($elm$core$Dict$get, tracker, reqs);
7233− if (_v2.$ === 'Nothing') {
7234− var $temp$router = router,
7235− $temp$cmds = otherCmds,
7237− router = $temp$router;
7240− continue updateReqs;
7244− $elm$core$Task$andThen,
7247− $lynxjs_elm$http$Http$updateReqs,
7250− A2($elm$core$Dict$remove, tracker, reqs));
7252− $elm$core$Process$kill(pid));
7257− $elm$core$Task$andThen,
7259− var _v4 = req.tracker;
7260− if (_v4.$ === 'Nothing') {
7261− return A3($lynxjs_elm$http$Http$updateReqs, router, otherCmds, reqs);
7263− var tracker = _v4.a;
7265− $lynxjs_elm$http$Http$updateReqs,
7268− A3($elm$core$Dict$insert, tracker, pid, reqs));
7271− $elm$core$Process$spawn(
7275− $elm$core$Platform$sendToApp(router),
7281−var $lynxjs_elm$http$Http$onEffects = F4(
7282− function (router, cmds, subs, state) {
7284− $elm$core$Task$andThen,
7286− return $elm$core$Task$succeed(
7287− A2($lynxjs_elm$http$Http$State, reqs, subs));
7289− A3($lynxjs_elm$http$Http$updateReqs, router, cmds, state.reqs));
7291−var $elm$core$List$maybeCons = F3(
7292− function (f, mx, xs) {
7294− if (_v0.$ === 'Just') {
7296− return A2($elm$core$List$cons, x, xs);
7301−var $elm$core$List$filterMap = F2(
7304− $elm$core$List$foldr,
7305− $elm$core$List$maybeCons(f),
7309−var $lynxjs_elm$http$Http$maybeSend = F4(
7310− function (router, desiredTracker, progress, _v0) {
7311− var actualTracker = _v0.a;
7313− return _Utils_eq(desiredTracker, actualTracker) ? $elm$core$Maybe$Just(
7315− $elm$core$Platform$sendToApp,
7317− toMsg(progress))) : $elm$core$Maybe$Nothing;
7319−var $lynxjs_elm$http$Http$onSelfMsg = F3(
7320− function (router, _v0, state) {
7321− var tracker = _v0.a;
7322− var progress = _v0.b;
7324− $elm$core$Task$andThen,
7326− return $elm$core$Task$succeed(state);
7328− $elm$core$Task$sequence(
7330− $elm$core$List$filterMap,
7331− A3($lynxjs_elm$http$Http$maybeSend, router, tracker, progress),
7334−var $lynxjs_elm$http$Http$Cancel = function (a) {
7335− return {$: 'Cancel', a: a};
7337−var $lynxjs_elm$http$Http$cmdMap = F2(
7338− function (func, cmd) {
7339− if (cmd.$ === 'Cancel') {
7340− var tracker = cmd.a;
7341− return $lynxjs_elm$http$Http$Cancel(tracker);
7344− return $lynxjs_elm$http$Http$Request(
7346− allowCookiesFromOtherDomains: r.allowCookiesFromOtherDomains,
7348− expect: A2(_Http_mapExpect, func, r.expect),
7349− headers: r.headers,
7351− timeout: r.timeout,
7352− tracker: r.tracker,
7357−var $lynxjs_elm$http$Http$MySub = F2(
7359− return {$: 'MySub', a: a, b: b};
7361−var $lynxjs_elm$http$Http$subMap = F2(
7362− function (func, _v0) {
7363− var tracker = _v0.a;
7366− $lynxjs_elm$http$Http$MySub,
7368− A2($elm$core$Basics$composeR, toMsg, func));
7370−_Platform_effectManagers['Http'] = _Platform_createManager($lynxjs_elm$http$Http$init, $lynxjs_elm$http$Http$onEffects, $lynxjs_elm$http$Http$onSelfMsg, $lynxjs_elm$http$Http$cmdMap, $lynxjs_elm$http$Http$subMap);
7371−var $lynxjs_elm$http$Http$command = _Platform_leaf('Http');
7372−var $lynxjs_elm$http$Http$subscription = _Platform_leaf('Http');
7373−var $lynxjs_elm$http$Http$request = function (r) {
7374− return $lynxjs_elm$http$Http$command(
7375− $lynxjs_elm$http$Http$Request(
7376− {allowCookiesFromOtherDomains: false, body: r.body, expect: r.expect, headers: r.headers, method: r.method, timeout: r.timeout, tracker: r.tracker, url: r.url}));
7378−var $elm$json$Json$Encode$string = _Json_wrap;
7379−var $author$project$Main$ackMessages = F3(
7380− function (serverUrl, token, messageIds) {
7381− return $lynxjs_elm$http$Http$request(
7383− body: $lynxjs_elm$http$Http$jsonBody(
7384− $elm$json$Json$Encode$object(
7389− A2($elm$json$Json$Encode$list, $elm$json$Json$Encode$string, messageIds))
7392− $lynxjs_elm$http$Http$expectJson,
7393− $author$project$Main$GotAck,
7394− A2($elm$json$Json$Decode$field, 'ok', $elm$json$Json$Decode$bool)),
7395− headers: _List_fromArray(
7397− A2($lynxjs_elm$http$Http$header, 'Authorization', 'Bearer ' + token)
7400− timeout: $elm$core$Maybe$Just(5000),
7401− tracker: $elm$core$Maybe$Nothing,
7402− url: serverUrl + '/messages/ack'
7405−var $lynxjs_elm$crypto$Crypto$X25519$getPublicKey = _Crypto_x25519GetPublicKey;
7406−var $lynxjs_elm$crypto$Crypto$X25519$getSharedSecret = _Crypto_x25519GetSharedSecret;
7407−var $lynxjs_elm$crypto$Crypto$Cipher$keyFromHex = _Crypto_cipherKeyFromHex;
7408−var $lynxjs_elm$crypto$Crypto$Cipher$nonce24FromHex = _Crypto_cipherNonce24FromHex;
7409−var $lynxjs_elm$crypto$Crypto$X25519$privateKeyFromHex = _Crypto_x25519PrivateKeyFromHex;
7410−var $lynxjs_elm$crypto$Crypto$X25519$publicKeyFromHex = _Crypto_x25519PublicKeyFromHex;
7411−var $lynxjs_elm$crypto$Crypto$Ed25519$publicKeyToHex = _Crypto_ed25519PublicKeyToHex;
7412−var $lynxjs_elm$crypto$Crypto$X25519$publicKeyToHex = _Crypto_x25519PublicKeyToHex;
7413−var $lynxjs_elm$crypto$Crypto$Ed25519$sign = _Crypto_ed25519Sign;
7414−var $lynxjs_elm$crypto$Crypto$Ed25519$signatureToHex = _Crypto_ed25519SignatureToHex;
7415−var $elm$core$Basics$modBy = _Basics_modBy;
7416−var $author$project$Main$nibbleToHex = function (n) {
7419− return _Utils_chr('0');
7421− return _Utils_chr('1');
7423− return _Utils_chr('2');
7425− return _Utils_chr('3');
7427− return _Utils_chr('4');
7429− return _Utils_chr('5');
7431− return _Utils_chr('6');
7433− return _Utils_chr('7');
7435− return _Utils_chr('8');
7437− return _Utils_chr('9');
7439− return _Utils_chr('a');
7441− return _Utils_chr('b');
7443− return _Utils_chr('c');
7445− return _Utils_chr('d');
7447− return _Utils_chr('e');
7449− return _Utils_chr('f');
7452−var $author$project$Main$charToHexBytes = function (c) {
7453− var code = $elm$core$Char$toCode(c);
7455− return _List_fromArray(
7457− $author$project$Main$nibbleToHex((code / 16) | 0),
7458− $author$project$Main$nibbleToHex(
7459− A2($elm$core$Basics$modBy, 16, code))
7463− var b2 = 128 + A2($elm$core$Basics$modBy, 64, code);
7464− var b1 = 192 + ((code / 64) | 0);
7465− return _List_fromArray(
7467− $author$project$Main$nibbleToHex((b1 / 16) | 0),
7468− $author$project$Main$nibbleToHex(
7469− A2($elm$core$Basics$modBy, 16, b1)),
7470− $author$project$Main$nibbleToHex((b2 / 16) | 0),
7471− $author$project$Main$nibbleToHex(
7472− A2($elm$core$Basics$modBy, 16, b2))
7475− if (code < 65536) {
7476− var b3 = 128 + A2($elm$core$Basics$modBy, 64, code);
7477− var b2 = 128 + A2($elm$core$Basics$modBy, 64, (code / 64) | 0);
7478− var b1 = 224 + ((code / 4096) | 0);
7479− return _List_fromArray(
7481− $author$project$Main$nibbleToHex((b1 / 16) | 0),
7482− $author$project$Main$nibbleToHex(
7483− A2($elm$core$Basics$modBy, 16, b1)),
7484− $author$project$Main$nibbleToHex((b2 / 16) | 0),
7485− $author$project$Main$nibbleToHex(
7486− A2($elm$core$Basics$modBy, 16, b2)),
7487− $author$project$Main$nibbleToHex((b3 / 16) | 0),
7488− $author$project$Main$nibbleToHex(
7489− A2($elm$core$Basics$modBy, 16, b3))
7492− var b4 = 128 + A2($elm$core$Basics$modBy, 64, code);
7493− var b3 = 128 + A2($elm$core$Basics$modBy, 64, (code / 64) | 0);
7494− var b2 = 128 + A2($elm$core$Basics$modBy, 64, (code / 4096) | 0);
7495− var b1 = 240 + ((code / 262144) | 0);
7496− return _List_fromArray(
7498− $author$project$Main$nibbleToHex((b1 / 16) | 0),
7499− $author$project$Main$nibbleToHex(
7500− A2($elm$core$Basics$modBy, 16, b1)),
7501− $author$project$Main$nibbleToHex((b2 / 16) | 0),
7502− $author$project$Main$nibbleToHex(
7503− A2($elm$core$Basics$modBy, 16, b2)),
7504− $author$project$Main$nibbleToHex((b3 / 16) | 0),
7505− $author$project$Main$nibbleToHex(
7506− A2($elm$core$Basics$modBy, 16, b3)),
7507− $author$project$Main$nibbleToHex((b4 / 16) | 0),
7508− $author$project$Main$nibbleToHex(
7509− A2($elm$core$Basics$modBy, 16, b4))
7515−var $elm$core$List$append = F2(
7516− function (xs, ys) {
7520− return A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs);
7523−var $elm$core$List$concat = function (lists) {
7524− return A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists);
7526−var $elm$core$List$concatMap = F2(
7527− function (f, list) {
7528− return $elm$core$List$concat(
7529− A2($elm$core$List$map, f, list));
7531−var $elm$core$String$foldr = _String_foldr;
7532−var $elm$core$String$toList = function (string) {
7533− return A3($elm$core$String$foldr, $elm$core$List$cons, _List_Nil, string);
7535−var $author$project$Main$textToHex = function (str) {
7536− return $elm$core$String$fromList(
7538− $elm$core$List$concatMap,
7539− $author$project$Main$charToHexBytes,
7540− $elm$core$String$toList(str)));
7542−var $lynxjs_elm$crypto$Crypto$Cipher$xchacha20Encrypt = _Crypto_xchacha20Encrypt;
7543−var $author$project$Main$encryptMessage = F6(
7544− function (edPriv, edPub, recipientXPubHex, ephSeedHex, nonceHex, plaintextJson) {
7545− var _v0 = _Utils_Tuple3(
7546− $lynxjs_elm$crypto$Crypto$X25519$privateKeyFromHex(ephSeedHex),
7547− $lynxjs_elm$crypto$Crypto$X25519$publicKeyFromHex(recipientXPubHex),
7548− $lynxjs_elm$crypto$Crypto$Cipher$nonce24FromHex(nonceHex));
7549− if (((_v0.a.$ === 'Just') && (_v0.b.$ === 'Just')) && (_v0.c.$ === 'Just')) {
7550− var ephPriv = _v0.a.a;
7551− var recipientXPub = _v0.b.a;
7552− var nonce = _v0.c.a;
7553− var sharedSecretHex = A2($lynxjs_elm$crypto$Crypto$X25519$getSharedSecret, ephPriv, recipientXPub);
7554− var ephPub = $lynxjs_elm$crypto$Crypto$X25519$getPublicKey(ephPriv);
7555− var ephPubHex = $lynxjs_elm$crypto$Crypto$X25519$publicKeyToHex(ephPub);
7556− var _v1 = $lynxjs_elm$crypto$Crypto$Cipher$keyFromHex(sharedSecretHex);
7557− if (_v1.$ === 'Just') {
7559− var senderPubHex = $lynxjs_elm$crypto$Crypto$Ed25519$publicKeyToHex(edPub);
7560− var plaintextHex = $author$project$Main$textToHex(plaintextJson);
7561− var ciphertextHex = A3($lynxjs_elm$crypto$Crypto$Cipher$xchacha20Encrypt, key, nonce, plaintextHex);
7562− var sig = A2($lynxjs_elm$crypto$Crypto$Ed25519$sign, ciphertextHex, edPriv);
7563− var sigHex = $lynxjs_elm$crypto$Crypto$Ed25519$signatureToHex(sig);
7564− return $elm$core$Maybe$Just(
7571− _Utils_ap(senderPubHex, sigHex)))));
7573− return $elm$core$Maybe$Nothing;
7576− return $elm$core$Maybe$Nothing;
7579−var $lynxjs_elm$crypto$Crypto$Ed25519$getPublicKey = _Crypto_ed25519GetPublicKey;
7580−var $author$project$Main$httpErrorToString = function (err) {
7584− return 'Bad URL: ' + url;
7586− return 'Request timed out';
7587− case 'NetworkError':
7588− return 'Network error';
7591− return 'Server error: ' + $elm$core$String$fromInt(code);
7594− return 'Bad response: ' + msg_;
7597−var $elm$json$Json$Encode$int = _Json_wrap;
7598−var $elm$core$List$isEmpty = function (xs) {
7605−var $elm$core$String$isEmpty = function (string) {
7606− return string === '';
7608−var $elm$core$String$slice = _String_slice;
7609−var $elm$core$String$left = F2(
7610− function (n, string) {
7611− return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string);
7613−var $author$project$Main$GotLookup = function (a) {
7614− return {$: 'GotLookup', a: a};
7616−var $lynxjs_elm$http$Http$emptyBody = _Http_emptyBody;
7617−var $lynxjs_elm$http$Http$get = function (r) {
7618− return $lynxjs_elm$http$Http$request(
7619− {body: $lynxjs_elm$http$Http$emptyBody, expect: r.expect, headers: _List_Nil, method: 'GET', timeout: $elm$core$Maybe$Nothing, tracker: $elm$core$Maybe$Nothing, url: r.url});
7621−var $author$project$Main$LookupResponse = F2(
7622− function (pubkey, online) {
7623− return {online: online, pubkey: pubkey};
7625−var $author$project$Main$lookupDecoder = function (pubkey) {
7627− $elm$json$Json$Decode$map,
7628− $author$project$Main$LookupResponse(pubkey),
7629− A2($elm$json$Json$Decode$field, 'online', $elm$json$Json$Decode$bool));
7631−var $author$project$Main$lookupPresence = F2(
7632− function (serverUrl, pubkey) {
7633− return $lynxjs_elm$http$Http$get(
7636− $lynxjs_elm$http$Http$expectJson,
7637− $author$project$Main$GotLookup,
7638− $author$project$Main$lookupDecoder(pubkey)),
7639− url: serverUrl + ('/lookup/' + pubkey)
7642−var $elm$core$Maybe$map = F2(
7643− function (f, maybe) {
7644− if (maybe.$ === 'Just') {
7645− var value = maybe.a;
7646− return $elm$core$Maybe$Just(
7649− return $elm$core$Maybe$Nothing;
7652−var $elm$core$Platform$Cmd$batch = _Platform_batch;
7653−var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil);
7654−var $elm$core$String$length = _String_length;
7655−var $author$project$Main$parseIdentity = function (str) {
7656− var _v0 = A2($elm$core$String$split, '.', str);
7657− if ((_v0.b && _v0.b.b) && (!_v0.b.b.b)) {
7661− return (($elm$core$String$length(edHex) === 64) && ($elm$core$String$length(xHex) === 64)) ? $elm$core$Maybe$Just(
7662− _Utils_Tuple2(edHex, xHex)) : $elm$core$Maybe$Nothing;
7664− return $elm$core$Maybe$Nothing;
7667−var $author$project$Main$GotPoll = function (a) {
7668− return {$: 'GotPoll', a: a};
7670−var $author$project$Main$PollResponse = F2(
7671− function (events, cursor) {
7672− return {cursor: cursor, events: events};
7674−var $elm$json$Json$Decode$list = _Json_decodeList;
7675−var $author$project$Main$PollEvent = F3(
7676− function (id, eventType, payload) {
7677− return {eventType: eventType, id: id, payload: payload};
7679−var $elm$json$Json$Decode$map3 = _Json_map3;
7680−var $elm$json$Json$Decode$string = _Json_decodeString;
7681−var $author$project$Main$pollEventDecoder = A4(
7682− $elm$json$Json$Decode$map3,
7683− $author$project$Main$PollEvent,
7684− A2($elm$json$Json$Decode$field, 'id', $elm$json$Json$Decode$string),
7685− A2($elm$json$Json$Decode$field, 'eventType', $elm$json$Json$Decode$string),
7686− A2($elm$json$Json$Decode$field, 'payload', $elm$json$Json$Decode$string));
7687−var $author$project$Main$pollDecoder = A3(
7688− $elm$json$Json$Decode$map2,
7689− $author$project$Main$PollResponse,
7691− $elm$json$Json$Decode$field,
7693− $elm$json$Json$Decode$list($author$project$Main$pollEventDecoder)),
7694− A2($elm$json$Json$Decode$field, 'cursor', $elm$json$Json$Decode$string));
7695−var $author$project$Main$pollMessages = F2(
7696− function (serverUrl, token) {
7697− return $lynxjs_elm$http$Http$request(
7699− body: $lynxjs_elm$http$Http$emptyBody,
7700− expect: A2($lynxjs_elm$http$Http$expectJson, $author$project$Main$GotPoll, $author$project$Main$pollDecoder),
7701− headers: _List_fromArray(
7703− A2($lynxjs_elm$http$Http$header, 'Authorization', 'Bearer ' + token)
7706− timeout: $elm$core$Maybe$Just(10000),
7707− tracker: $elm$core$Maybe$Nothing,
7708− url: serverUrl + '/poll'
7711−var $lynxjs_elm$crypto$Crypto$Ed25519$privateKeyFromHex = _Crypto_ed25519PrivateKeyFromHex;
7712−var $elm$core$Basics$ge = _Utils_ge;
7713−var $author$project$Main$decodeUtf8Help = F2(
7714− function (bytes, acc) {
7718− return $elm$core$Maybe$Just(acc);
7721− var rest = bytes.b;
7723− var $temp$bytes = rest,
7725− $elm$core$List$cons,
7726− $elm$core$Char$fromCode(b),
7728− bytes = $temp$bytes;
7730− continue decodeUtf8Help;
7732− if ((b >= 192) && (b < 224)) {
7735− var rest2 = rest.b;
7736− var code = ((b - 192) * 64) + (b2 - 128);
7737− var $temp$bytes = rest2,
7739− $elm$core$List$cons,
7740− $elm$core$Char$fromCode(code),
7742− bytes = $temp$bytes;
7744− continue decodeUtf8Help;
7746− return $elm$core$Maybe$Nothing;
7749− if ((b >= 224) && (b < 240)) {
7750− if (rest.b && rest.b.b) {
7755− var code = (((b - 224) * 4096) + ((b2 - 128) * 64)) + (b3 - 128);
7756− var $temp$bytes = rest3,
7758− $elm$core$List$cons,
7759− $elm$core$Char$fromCode(code),
7761− bytes = $temp$bytes;
7763− continue decodeUtf8Help;
7765− return $elm$core$Maybe$Nothing;
7769− if ((rest.b && rest.b.b) && rest.b.b.b) {
7776− var code = ((((b - 240) * 262144) + ((b2 - 128) * 4096)) + ((b3 - 128) * 64)) + (b4 - 128);
7777− var $temp$bytes = rest4,
7779− $elm$core$List$cons,
7780− $elm$core$Char$fromCode(code),
7782− bytes = $temp$bytes;
7784− continue decodeUtf8Help;
7786− return $elm$core$Maybe$Nothing;
7789− return $elm$core$Maybe$Nothing;
7797−var $author$project$Main$decodeUtf8Bytes = function (bytes) {
7799− $elm$core$Maybe$map,
7800− A2($elm$core$Basics$composeR, $elm$core$List$reverse, $elm$core$String$fromList),
7801− A2($author$project$Main$decodeUtf8Help, bytes, _List_Nil));
7803−var $author$project$Main$hexCharToInt = function (c) {
7804− var code = $elm$core$Char$toCode(c);
7805− return ((code >= 48) && (code <= 57)) ? $elm$core$Maybe$Just(code - 48) : (((code >= 97) && (code <= 102)) ? $elm$core$Maybe$Just(code - 87) : (((code >= 65) && (code <= 70)) ? $elm$core$Maybe$Just(code - 55) : $elm$core$Maybe$Nothing));
7807−var $elm$core$Maybe$map2 = F3(
7808− function (func, ma, mb) {
7809− if (ma.$ === 'Nothing') {
7810− return $elm$core$Maybe$Nothing;
7813− if (mb.$ === 'Nothing') {
7814− return $elm$core$Maybe$Nothing;
7817− return $elm$core$Maybe$Just(
7822−var $author$project$Main$pairUp = function (list) {
7823− if (list.b && list.b.b) {
7829− $elm$core$List$cons,
7830− _Utils_Tuple2(a, b),
7831− $author$project$Main$pairUp(rest));
7836−var $author$project$Main$hexToBytes = function (hex) {
7837− var chars = $elm$core$String$toList(hex);
7838− var pairs = $author$project$Main$pairUp(chars);
7840− $elm$core$List$filterMap,
7845− $elm$core$Maybe$map2,
7848− return (h * 16) + l;
7850− $author$project$Main$hexCharToInt(hi),
7851− $author$project$Main$hexCharToInt(lo));
7855−var $elm$core$Maybe$withDefault = F2(
7856− function (_default, maybe) {
7857− if (maybe.$ === 'Just') {
7858− var value = maybe.a;
7864−var $author$project$Main$hexToText = function (hex) {
7866− $elm$core$Maybe$withDefault,
7868− $author$project$Main$decodeUtf8Bytes(
7869− $author$project$Main$hexToBytes(hex)));
7871−var $elm$core$Basics$not = _Basics_not;
7872−var $lynxjs_elm$crypto$Crypto$Ed25519$publicKeyFromHex = _Crypto_ed25519PublicKeyFromHex;
7873−var $lynxjs_elm$crypto$Crypto$Ed25519$signatureFromHex = _Crypto_ed25519SignatureFromHex;
7874−var $lynxjs_elm$crypto$Crypto$Ed25519$verify = _Crypto_ed25519Verify;
7875−var $lynxjs_elm$crypto$Crypto$Cipher$xchacha20Decrypt = _Crypto_xchacha20Decrypt;
7876−var $author$project$Main$decryptMessage = F2(
7877− function (xPriv, blob) {
7878− var hexLen = $elm$core$String$length(blob);
7879− if (hexLen < 304) {
7880− return $elm$core$Maybe$Nothing;
7882− var sigHex = A3($elm$core$String$slice, hexLen - 128, hexLen, blob);
7883− var senderEdPubHex = A3($elm$core$String$slice, hexLen - 192, hexLen - 128, blob);
7884− var nonceHex = A3($elm$core$String$slice, 64, 112, blob);
7885− var ephPubHex = A3($elm$core$String$slice, 0, 64, blob);
7886− var ciphertextHex = A3($elm$core$String$slice, 112, hexLen - 192, blob);
7887− var _v0 = _Utils_Tuple2(
7888− $lynxjs_elm$crypto$Crypto$Ed25519$publicKeyFromHex(senderEdPubHex),
7889− $lynxjs_elm$crypto$Crypto$Ed25519$signatureFromHex(sigHex));
7890− if ((_v0.a.$ === 'Just') && (_v0.b.$ === 'Just')) {
7891− var senderEdPub = _v0.a.a;
7893− if (!A3($lynxjs_elm$crypto$Crypto$Ed25519$verify, sig, ciphertextHex, senderEdPub)) {
7894− return $elm$core$Maybe$Nothing;
7896− var _v1 = _Utils_Tuple2(
7897− $lynxjs_elm$crypto$Crypto$X25519$publicKeyFromHex(ephPubHex),
7898− $lynxjs_elm$crypto$Crypto$Cipher$nonce24FromHex(nonceHex));
7899− if ((_v1.a.$ === 'Just') && (_v1.b.$ === 'Just')) {
7900− var ephPub = _v1.a.a;
7901− var nonce = _v1.b.a;
7902− var sharedSecretHex = A2($lynxjs_elm$crypto$Crypto$X25519$getSharedSecret, xPriv, ephPub);
7903− var _v2 = $lynxjs_elm$crypto$Crypto$Cipher$keyFromHex(sharedSecretHex);
7904− if (_v2.$ === 'Just') {
7906− var _v3 = A3($lynxjs_elm$crypto$Crypto$Cipher$xchacha20Decrypt, key, nonce, ciphertextHex);
7907− if (_v3.$ === 'Just') {
7908− var plaintextHex = _v3.a;
7909− return $elm$core$Maybe$Just(
7912− $author$project$Main$hexToText(plaintextHex)));
7914− return $elm$core$Maybe$Nothing;
7917− return $elm$core$Maybe$Nothing;
7920− return $elm$core$Maybe$Nothing;
7924− return $elm$core$Maybe$Nothing;
7928−var $author$project$Main$Envelope = F4(
7929− function (toKey, fromKey, encryptedBlob, timestamp) {
7930− return {encryptedBlob: encryptedBlob, fromKey: fromKey, timestamp: timestamp, toKey: toKey};
7932−var $elm$json$Json$Decode$int = _Json_decodeInt;
7933−var $elm$json$Json$Decode$map4 = _Json_map4;
7934−var $author$project$Main$envelopeDecoder = A5(
7935− $elm$json$Json$Decode$map4,
7936− $author$project$Main$Envelope,
7937− A2($elm$json$Json$Decode$field, 'toKey', $elm$json$Json$Decode$string),
7938− A2($elm$json$Json$Decode$field, 'fromKey', $elm$json$Json$Decode$string),
7939− A2($elm$json$Json$Decode$field, 'encryptedBlob', $elm$json$Json$Decode$string),
7940− A2($elm$json$Json$Decode$field, 'timestamp', $elm$json$Json$Decode$int));
7941−var $elm$core$Set$insert = F2(
7942− function (key, _v0) {
7944− return $elm$core$Set$Set_elm_builtin(
7945− A3($elm$core$Dict$insert, key, _Utils_Tuple0, dict));
7947−var $elm$core$Dict$member = F2(
7948− function (key, dict) {
7949− var _v0 = A2($elm$core$Dict$get, key, dict);
7950− if (_v0.$ === 'Just') {
7956−var $elm$core$Set$member = F2(
7957− function (key, _v0) {
7959− return A2($elm$core$Dict$member, key, dict);
7961−var $author$project$Main$MessagePayload = F4(
7962− function (type_, id, timestamp, body) {
7963− return {body: body, id: id, timestamp: timestamp, type_: type_};
7965−var $author$project$Main$messagePayloadDecoder = A5(
7966− $elm$json$Json$Decode$map4,
7967− $author$project$Main$MessagePayload,
7968− A2($elm$json$Json$Decode$field, 'type', $elm$json$Json$Decode$string),
7969− A2($elm$json$Json$Decode$field, 'id', $elm$json$Json$Decode$string),
7970− A2($elm$json$Json$Decode$field, 'timestamp', $elm$json$Json$Decode$int),
7971− A2($elm$json$Json$Decode$field, 'body', $elm$json$Json$Decode$string));
7972−var $author$project$Main$processEvents = F4(
7973− function (xPriv, myEdHex, events, seenIds) {
7974− return function (_v5) {
7978− return _Utils_Tuple3(
7979− $elm$core$List$reverse(msgs),
7984− $elm$core$List$foldl,
7986− function (event, _v0) {
7990− if (event.eventType !== 'message') {
7991− return _Utils_Tuple3(msgs, seen, acks);
7993− var _v1 = A2($elm$json$Json$Decode$decodeString, $author$project$Main$envelopeDecoder, event.payload);
7994− if (_v1.$ === 'Err') {
7995− return _Utils_Tuple3(
7998− A2($elm$core$List$cons, event.id, acks));
8000− var envelope = _v1.a;
8001− if (_Utils_eq(envelope.fromKey, myEdHex)) {
8002− return _Utils_Tuple3(
8005− A2($elm$core$List$cons, event.id, acks));
8007− var _v2 = A2($author$project$Main$decryptMessage, xPriv, envelope.encryptedBlob);
8008− if (_v2.$ === 'Nothing') {
8009− return _Utils_Tuple3(
8012− A2($elm$core$List$cons, event.id, acks));
8015− var senderPub = _v3.a;
8017− var _v4 = A2($elm$json$Json$Decode$decodeString, $author$project$Main$messagePayloadDecoder, json);
8018− if (_v4.$ === 'Err') {
8019− return _Utils_Tuple3(
8022− A2($elm$core$List$cons, event.id, acks));
8024− var payload = _v4.a;
8025− return A2($elm$core$Set$member, payload.id, seen) ? _Utils_Tuple3(
8028− A2($elm$core$List$cons, event.id, acks)) : _Utils_Tuple3(
8030− $elm$core$List$cons,
8033− {body: payload.body, id: payload.id, outgoing: false, timestamp: payload.timestamp}),
8035− A2($elm$core$Set$insert, payload.id, seen),
8036− A2($elm$core$List$cons, event.id, acks));
8043− _Utils_Tuple3(_List_Nil, seenIds, _List_Nil),
8046−var $author$project$Main$GotChallenge = function (a) {
8047− return {$: 'GotChallenge', a: a};
8049−var $author$project$Main$ChallengeResponse = function (challenge) {
8050− return {challenge: challenge};
8052−var $author$project$Main$challengeDecoder = A2(
8053− $elm$json$Json$Decode$map,
8054− $author$project$Main$ChallengeResponse,
8055− A2($elm$json$Json$Decode$field, 'challenge', $elm$json$Json$Decode$string));
8056−var $lynxjs_elm$http$Http$post = function (r) {
8057− return $lynxjs_elm$http$Http$request(
8058− {body: r.body, expect: r.expect, headers: _List_Nil, method: 'POST', timeout: $elm$core$Maybe$Nothing, tracker: $elm$core$Maybe$Nothing, url: r.url});
8060−var $author$project$Main$requestChallenge = F2(
8061− function (serverUrl, pubkey) {
8062− return $lynxjs_elm$http$Http$post(
8064− body: $lynxjs_elm$http$Http$jsonBody(
8065− $elm$json$Json$Encode$object(
8070− $elm$json$Json$Encode$string(pubkey))
8072− expect: A2($lynxjs_elm$http$Http$expectJson, $author$project$Main$GotChallenge, $author$project$Main$challengeDecoder),
8073− url: serverUrl + '/auth/challenge'
8076−var $author$project$Main$GotSendResult = function (a) {
8077− return {$: 'GotSendResult', a: a};
8079−var $author$project$Main$SendResponse = F2(
8080− function (status, messageId) {
8081− return {messageId: messageId, status: status};
8083−var $author$project$Main$sendDecoder = A3(
8084− $elm$json$Json$Decode$map2,
8085− $author$project$Main$SendResponse,
8086− A2($elm$json$Json$Decode$field, 'status', $elm$json$Json$Decode$string),
8087− A2($elm$json$Json$Decode$field, 'messageId', $elm$json$Json$Decode$string));
8088−var $author$project$Main$sendMessageHttp = F5(
8089− function (serverUrl, token, to, encryptedBlob, timestamp) {
8090− return $lynxjs_elm$http$Http$request(
8092− body: $lynxjs_elm$http$Http$jsonBody(
8093− $elm$json$Json$Encode$object(
8098− $elm$json$Json$Encode$string(to)),
8101− $elm$json$Json$Encode$string(encryptedBlob)),
8104− $elm$json$Json$Encode$int(timestamp))
8106− expect: A2($lynxjs_elm$http$Http$expectJson, $author$project$Main$GotSendResult, $author$project$Main$sendDecoder),
8107− headers: _List_fromArray(
8109− A2($lynxjs_elm$http$Http$header, 'Authorization', 'Bearer ' + token)
8112− timeout: $elm$core$Maybe$Just(10000),
8113− tracker: $elm$core$Maybe$Nothing,
8114− url: serverUrl + '/messages/'
8117−var $elm$core$String$trim = _String_trim;
8118−var $author$project$Main$GotVerify = function (a) {
8119− return {$: 'GotVerify', a: a};
8121−var $author$project$Main$VerifyResponse = F2(
8122− function (token, expiresAt) {
8123− return {expiresAt: expiresAt, token: token};
8125−var $author$project$Main$verifyDecoder = A3(
8126− $elm$json$Json$Decode$map2,
8127− $author$project$Main$VerifyResponse,
8128− A2($elm$json$Json$Decode$field, 'token', $elm$json$Json$Decode$string),
8129− A2($elm$json$Json$Decode$field, 'expiresAt', $elm$json$Json$Decode$int));
8130−var $author$project$Main$verifyAuth = F4(
8131− function (serverUrl, pubkey, challenge, signature) {
8132− return $lynxjs_elm$http$Http$post(
8134− body: $lynxjs_elm$http$Http$jsonBody(
8135− $elm$json$Json$Encode$object(
8140− $elm$json$Json$Encode$string(pubkey)),
8143− $elm$json$Json$Encode$string(challenge)),
8146− $elm$json$Json$Encode$string(signature))
8148− expect: A2($lynxjs_elm$http$Http$expectJson, $author$project$Main$GotVerify, $author$project$Main$verifyDecoder),
8149− url: serverUrl + '/auth/verify'
8152−var $author$project$Main$update = F2(
8153− function (msg, model) {
8156− var seedHex = msg.a;
8157− var xPriv = $lynxjs_elm$crypto$Crypto$X25519$privateKeyFromHex(seedHex);
8158− var edPriv = $lynxjs_elm$crypto$Crypto$Ed25519$privateKeyFromHex(seedHex);
8159− return _Utils_Tuple2(
8164− edPub: A2($elm$core$Maybe$map, $lynxjs_elm$crypto$Crypto$Ed25519$getPublicKey, edPriv),
8166− xPub: A2($elm$core$Maybe$map, $lynxjs_elm$crypto$Crypto$X25519$getPublicKey, xPriv)
8168− $elm$core$Platform$Cmd$none);
8171− return _Utils_Tuple2(
8175− currentTime: ($elm$time$Time$posixToMillis(posix) / 1000) | 0
8177− $elm$core$Platform$Cmd$none);
8179− var _v1 = model.edPub;
8180− if (_v1.$ === 'Just') {
8182− return _Utils_Tuple2(
8185− {connecting: true, error: $elm$core$Maybe$Nothing}),
8187− $author$project$Main$requestChallenge,
8189− $lynxjs_elm$crypto$Crypto$Ed25519$publicKeyToHex(pub)));
8191− return _Utils_Tuple2(
8195− error: $elm$core$Maybe$Just('No identity keypair')
8197− $elm$core$Platform$Cmd$none);
8199− case 'GotChallenge':
8200− var result = msg.a;
8201− var _v2 = _Utils_Tuple2(result, model.edPriv);
8202− if (_v2.a.$ === 'Ok') {
8203− if (_v2.b.$ === 'Just') {
8204− var resp = _v2.a.a;
8205− var priv = _v2.b.a;
8206− var sig = A2($lynxjs_elm$crypto$Crypto$Ed25519$sign, resp.challenge, priv);
8207− return _Utils_Tuple2(
8210− $author$project$Main$verifyAuth,
8213− $elm$core$Maybe$withDefault,
8215− A2($elm$core$Maybe$map, $lynxjs_elm$crypto$Crypto$Ed25519$publicKeyToHex, model.edPub)),
8217− $lynxjs_elm$crypto$Crypto$Ed25519$signatureToHex(sig)));
8219− return _Utils_Tuple2(
8222− {connecting: false}),
8223− $elm$core$Platform$Cmd$none);
8227− return _Utils_Tuple2(
8232− error: $elm$core$Maybe$Just(
8233− $author$project$Main$httpErrorToString(err))
8235− $elm$core$Platform$Cmd$none);
8238− var result = msg.a;
8239− if (result.$ === 'Ok') {
8240− var resp = result.a;
8241− return (resp.token !== '') ? _Utils_Tuple2(
8244− {authToken: resp.token, connecting: false, screen: $author$project$Main$ContactsScreen}),
8245− $elm$core$Platform$Cmd$none) : _Utils_Tuple2(
8250− error: $elm$core$Maybe$Just('Authentication failed')
8252− $elm$core$Platform$Cmd$none);
8254− var err = result.a;
8255− return _Utils_Tuple2(
8260− error: $elm$core$Maybe$Just(
8261− $author$project$Main$httpErrorToString(err))
8263− $elm$core$Platform$Cmd$none);
8265− case 'PrepareSend':
8266− return $elm$core$String$isEmpty(
8267− $elm$core$String$trim(model.draft)) ? _Utils_Tuple2(model, $elm$core$Platform$Cmd$none) : _Utils_Tuple2(
8272− $elm$random$Random$generate,
8273− $author$project$Main$GotSendEntropy,
8274− $author$project$Main$randomHexString(72)));
8275− case 'GotSendEntropy':
8276− var entropyHex = msg.a;
8277− var _v4 = _Utils_Tuple2(model.edPriv, model.edPub);
8278− if ((_v4.a.$ === 'Just') && (_v4.b.$ === 'Just')) {
8279− var edPriv = _v4.a.a;
8280− var edPub = _v4.b.a;
8281− var recipientEdHex = model.activeChat;
8282− var contact = A2($elm$core$Dict$get, recipientEdHex, model.contacts);
8283− if (contact.$ === 'Just') {
8285− var timestamp = model.currentTime;
8286− var nonceHex = A3($elm$core$String$slice, 96, 144, entropyHex);
8287− var msgId = A2($elm$core$String$left, 32, entropyHex);
8288− var outMsg = {body: model.draft, id: msgId, outgoing: true, timestamp: timestamp};
8289− var plaintextJson = A2(
8290− $elm$json$Json$Encode$encode,
8292− $elm$json$Json$Encode$object(
8297− $elm$json$Json$Encode$string('text')),
8300− $elm$json$Json$Encode$string(msgId)),
8303− $elm$json$Json$Encode$int(timestamp)),
8306− $elm$json$Json$Encode$string(model.draft))
8309− $elm$core$Maybe$withDefault,
8311− A2($elm$core$Dict$get, recipientEdHex, model.messages));
8312− var ephSeedHex = A3($elm$core$String$slice, 32, 96, entropyHex);
8313− var blob = A6($author$project$Main$encryptMessage, edPriv, edPub, c.xPubHex, ephSeedHex, nonceHex, plaintextJson);
8314− if (blob.$ === 'Just') {
8315− var blobHex = blob.a;
8316− return _Utils_Tuple2(
8322− $elm$core$Dict$insert,
8330− A5($author$project$Main$sendMessageHttp, model.serverUrl, model.authToken, recipientEdHex, blobHex, timestamp));
8332− return _Utils_Tuple2(
8336− error: $elm$core$Maybe$Just('Encryption failed'),
8339− $elm$core$Platform$Cmd$none);
8342− return _Utils_Tuple2(
8346− error: $elm$core$Maybe$Just('Contact not found'),
8349− $elm$core$Platform$Cmd$none);
8352− return _Utils_Tuple2(
8356− error: $elm$core$Maybe$Just('No identity'),
8359− $elm$core$Platform$Cmd$none);
8361− case 'GotSendResult':
8362− var result = msg.a;
8363− if (result.$ === 'Ok') {
8364− return _Utils_Tuple2(
8368− $elm$core$Platform$Cmd$none);
8370− var err = result.a;
8371− return _Utils_Tuple2(
8375− error: $elm$core$Maybe$Just(
8376− $author$project$Main$httpErrorToString(err)),
8379− $elm$core$Platform$Cmd$none);
8383− var t = ($elm$time$Time$posixToMillis(posix) / 1000) | 0;
8384− return (model.authToken !== '') ? _Utils_Tuple2(
8388− A2($author$project$Main$pollMessages, model.serverUrl, model.authToken)) : _Utils_Tuple2(
8392− $elm$core$Platform$Cmd$none);
8394− var result = msg.a;
8395− var _v8 = _Utils_Tuple3(result, model.xPriv, model.edPub);
8398− if (_v8.a.$ === 'Ok') {
8399− if ((_v8.b.$ === 'Just') && (_v8.c.$ === 'Just')) {
8400− var resp = _v8.a.a;
8401− var xPriv = _v8.b.a;
8402− var edPub = _v8.c.a;
8403− var myEdHex = $lynxjs_elm$crypto$Crypto$Ed25519$publicKeyToHex(edPub);
8404− var _v9 = A4($author$project$Main$processEvents, xPriv, myEdHex, resp.events, model.seenIds);
8405− var newMessages = _v9.a;
8406− var newSeenIds = _v9.b;
8407− var ackIds = _v9.c;
8408− var ackCmd = $elm$core$List$isEmpty(ackIds) ? $elm$core$Platform$Cmd$none : A3($author$project$Main$ackMessages, model.serverUrl, model.authToken, ackIds);
8409− var updatedContacts = A3(
8410− $elm$core$List$foldl,
8412− function (_v11, dict) {
8414− var chatMsg = _v11.b;
8416− $elm$core$Dict$update,
8418− function (existing) {
8419− if (existing.$ === 'Just') {
8420− var c = existing.a;
8421− return $elm$core$Maybe$Just(
8424− {lastMessage: chatMsg.body, lastTime: chatMsg.timestamp}));
8426− return $elm$core$Maybe$Just(
8429− lastMessage: chatMsg.body,
8430− lastTime: chatMsg.timestamp,
8431− name: A2($elm$core$String$left, 8, from) + '...',
8441− var updatedMessages = A3(
8442− $elm$core$List$foldl,
8444− function (_v10, dict) {
8446− var chatMsg = _v10.b;
8448− $elm$core$Maybe$withDefault,
8450− A2($elm$core$Dict$get, from, dict));
8452− $elm$core$Dict$insert,
8462− return _Utils_Tuple2(
8465− {contacts: updatedContacts, messages: updatedMessages, seenIds: newSeenIds}),
8471− if ((_v8.a.a.$ === 'BadStatus') && (_v8.a.a.a === 401)) {
8472− return _Utils_Tuple2(
8477− error: $elm$core$Maybe$Just('Session expired, please reconnect'),
8478− screen: $author$project$Main$SetupScreen
8480− $elm$core$Platform$Cmd$none);
8486− return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
8488− return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
8490− if ($elm$core$String$isEmpty(model.addIdentity)) {
8491− return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
8493− var _v13 = $author$project$Main$parseIdentity(model.addIdentity);
8494− if (_v13.$ === 'Just') {
8496− var edHex = _v14.a;
8498− var name = $elm$core$String$isEmpty(model.addName) ? (A2($elm$core$String$left, 8, edHex) + '...') : model.addName;
8499− var contact = {edPubHex: edHex, lastMessage: '', lastTime: 0, name: name, online: false, xPubHex: xHex};
8500− return _Utils_Tuple2(
8506− contacts: A3($elm$core$Dict$insert, edHex, contact, model.contacts),
8507− screen: $author$project$Main$ContactsScreen
8509− A2($author$project$Main$lookupPresence, model.serverUrl, edHex));
8511− return _Utils_Tuple2(
8515− error: $elm$core$Maybe$Just('Invalid identity. Expected: <ed25519_hex>.<x25519_hex>')
8517− $elm$core$Platform$Cmd$none);
8521− var result = msg.a;
8522− if (result.$ === 'Ok') {
8523− var resp = result.a;
8524− return _Utils_Tuple2(
8529− $elm$core$Dict$update,
8531− $elm$core$Maybe$map(
8533− return _Utils_update(
8535− {online: resp.online});
8539− $elm$core$Platform$Cmd$none);
8541− return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
8544− var screen = msg.a;
8545− return _Utils_Tuple2(
8549− $elm$core$Platform$Cmd$none);
8551− var edPubHex = msg.a;
8552− return _Utils_Tuple2(
8555− {activeChat: edPubHex, draft: '', screen: $author$project$Main$ChatScreen}),
8556− $elm$core$Platform$Cmd$none);
8557− case 'UpdateDraft':
8559− return _Utils_Tuple2(
8563− $elm$core$Platform$Cmd$none);
8564− case 'UpdateServerUrl':
8566− return _Utils_Tuple2(
8569− {serverUrl: text}),
8570− $elm$core$Platform$Cmd$none);
8571− case 'UpdateAddIdentity':
8573− return _Utils_Tuple2(
8576− {addIdentity: text}),
8577− $elm$core$Platform$Cmd$none);
8578− case 'UpdateAddName':
8580− return _Utils_Tuple2(
8584− $elm$core$Platform$Cmd$none);
8585− case 'UpdateDisplayName':
8587− return _Utils_Tuple2(
8590− {displayName: text}),
8591− $elm$core$Platform$Cmd$none);
8593− return _Utils_Tuple2(
8596− {error: $elm$core$Maybe$Nothing}),
8597− $elm$core$Platform$Cmd$none);
8600−var $lynxjs_elm$ui$Lynx$Attributes$Column = {$: 'Column'};
8601−var $lynxjs_elm$virtual_dom$VirtualDom$style = _VirtualDom_style;
8602−var $lynxjs_elm$ui$Lynx$Attributes$style = $lynxjs_elm$virtual_dom$VirtualDom$style;
8603−var $lynxjs_elm$ui$Lynx$Attributes$backgroundColor = $lynxjs_elm$ui$Lynx$Attributes$style('backgroundColor');
8604−var $lynxjs_elm$ui$Lynx$Attributes$Center = {$: 'Center'};
8605−var $author$project$Main$DismissError = {$: 'DismissError'};
8606−var $lynxjs_elm$ui$Lynx$Attributes$Row = {$: 'Row'};
8607−var $lynxjs_elm$ui$Lynx$Attributes$alignmentToString = function (a) {
8610− return 'flex-start';
8615− case 'SpaceBetween':
8616− return 'space-between';
8617− case 'SpaceAround':
8618− return 'space-around';
8619− case 'SpaceEvenly':
8620− return 'space-evenly';
8627−var $lynxjs_elm$ui$Lynx$Attributes$alignItems = function (a) {
8629− $lynxjs_elm$ui$Lynx$Attributes$style,
8631− $lynxjs_elm$ui$Lynx$Attributes$alignmentToString(a));
8633−var $lynxjs_elm$ui$Lynx$Attributes$color = $lynxjs_elm$ui$Lynx$Attributes$style('color');
8634−var $lynxjs_elm$ui$Lynx$Attributes$intStyle = F2(
8635− function (key, val) {
8637− $lynxjs_elm$virtual_dom$VirtualDom$style,
8639− $elm$core$String$fromInt(val));
8641−var $lynxjs_elm$ui$Lynx$Attributes$flex = $lynxjs_elm$ui$Lynx$Attributes$intStyle('flex');
8642−var $lynxjs_elm$ui$Lynx$Attributes$flexDirection = function (d) {
8644− $lynxjs_elm$ui$Lynx$Attributes$style,
8653− return 'row-reverse';
8655− return 'column-reverse';
8659−var $lynxjs_elm$ui$Lynx$Attributes$pxStyle = F2(
8660− function (key, val) {
8662− $lynxjs_elm$virtual_dom$VirtualDom$style,
8664− $elm$core$String$fromInt(val) + 'px');
8666−var $lynxjs_elm$ui$Lynx$Attributes$fontSize = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('fontSize');
8667−var $lynxjs_elm$virtual_dom$VirtualDom$Normal = function (a) {
8668− return {$: 'Normal', a: a};
8670−var $lynxjs_elm$virtual_dom$VirtualDom$on = _VirtualDom_on;
8671−var $lynxjs_elm$ui$Lynx$Events$onTap = function (msg) {
8673− $lynxjs_elm$virtual_dom$VirtualDom$on,
8675− $lynxjs_elm$virtual_dom$VirtualDom$Normal(
8676− $elm$json$Json$Decode$succeed(msg)));
8678−var $lynxjs_elm$ui$Lynx$Attributes$paddingBottom = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('paddingBottom');
8679−var $lynxjs_elm$ui$Lynx$Attributes$paddingLeft = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('paddingLeft');
8680−var $lynxjs_elm$ui$Lynx$Attributes$paddingRight = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('paddingRight');
8681−var $lynxjs_elm$ui$Lynx$Attributes$paddingTop = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('paddingTop');
8682−var $lynxjs_elm$virtual_dom$VirtualDom$node = function (tag) {
8683− return _VirtualDom_node(
8684− _VirtualDom_noScript(tag));
8686−var $lynxjs_elm$ui$Lynx$text = $lynxjs_elm$virtual_dom$VirtualDom$node('text');
8687−var $lynxjs_elm$virtual_dom$VirtualDom$text = _VirtualDom_text;
8688−var $lynxjs_elm$ui$Lynx$textContent = $lynxjs_elm$virtual_dom$VirtualDom$text;
8689−var $lynxjs_elm$ui$Lynx$view = $lynxjs_elm$virtual_dom$VirtualDom$node('view');
8690−var $author$project$Main$errorBanner = function (err) {
8692− $lynxjs_elm$ui$Lynx$view,
8695− $lynxjs_elm$ui$Lynx$Events$onTap($author$project$Main$DismissError),
8696− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#3d1114'),
8697− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(10),
8698− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(10),
8699− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(16),
8700− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(16),
8701− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Row),
8702− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center)
8707− $lynxjs_elm$ui$Lynx$text,
8710− $lynxjs_elm$ui$Lynx$Attributes$color('#f85149'),
8711− $lynxjs_elm$ui$Lynx$Attributes$fontSize(14),
8712− $lynxjs_elm$ui$Lynx$Attributes$flex(1)
8716− $lynxjs_elm$ui$Lynx$textContent(err)
8719− $lynxjs_elm$ui$Lynx$text,
8722− $lynxjs_elm$ui$Lynx$Attributes$color('#f85149'),
8723− $lynxjs_elm$ui$Lynx$Attributes$fontSize(16)
8727− $lynxjs_elm$ui$Lynx$textContent('x')
8731−var $author$project$Main$AddContact = {$: 'AddContact'};
8732−var $lynxjs_elm$ui$Lynx$Attributes$Bold = {$: 'Bold'};
8733−var $author$project$Main$Navigate = function (a) {
8734− return {$: 'Navigate', a: a};
8736−var $author$project$Main$UpdateAddIdentity = function (a) {
8737− return {$: 'UpdateAddIdentity', a: a};
8739−var $author$project$Main$UpdateAddName = function (a) {
8740− return {$: 'UpdateAddName', a: a};
8742−var $lynxjs_elm$ui$Lynx$Attributes$marginBottom = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('marginBottom');
8743−var $author$project$Main$fieldLabel = function (text) {
8745− $lynxjs_elm$ui$Lynx$text,
8748− $lynxjs_elm$ui$Lynx$Attributes$color('#8b949e'),
8749− $lynxjs_elm$ui$Lynx$Attributes$fontSize(13),
8750− $lynxjs_elm$ui$Lynx$Attributes$marginBottom(6)
8754− $lynxjs_elm$ui$Lynx$textContent(text)
8757−var $lynxjs_elm$ui$Lynx$Attributes$fontWeight = function (w) {
8759− $lynxjs_elm$ui$Lynx$Attributes$style,
8762− if (w.$ === 'Normal') {
8769−var $lynxjs_elm$ui$Lynx$Attributes$padding = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('padding');
8770−var $lynxjs_elm$ui$Lynx$Attributes$borderRadius = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('borderRadius');
8771−var $author$project$Main$primaryButton = F2(
8772− function (msg, text) {
8774− $lynxjs_elm$ui$Lynx$view,
8777− $lynxjs_elm$ui$Lynx$Events$onTap(msg),
8778− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#58a6ff'),
8779− $lynxjs_elm$ui$Lynx$Attributes$borderRadius(8),
8780− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(14),
8781− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(14),
8782− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center)
8787− $lynxjs_elm$ui$Lynx$text,
8790− $lynxjs_elm$ui$Lynx$Attributes$color('#ffffff'),
8791− $lynxjs_elm$ui$Lynx$Attributes$fontSize(16),
8792− $lynxjs_elm$ui$Lynx$Attributes$fontWeight($lynxjs_elm$ui$Lynx$Attributes$Bold)
8796− $lynxjs_elm$ui$Lynx$textContent(text)
8800−var $lynxjs_elm$ui$Lynx$Attributes$height = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('height');
8801−var $author$project$Main$spacer = function (px) {
8803− $lynxjs_elm$ui$Lynx$view,
8806− $lynxjs_elm$ui$Lynx$Attributes$height(px)
8810−var $lynxjs_elm$ui$Lynx$Attributes$borderColor = $lynxjs_elm$ui$Lynx$Attributes$style('borderColor');
8811−var $lynxjs_elm$ui$Lynx$Attributes$borderWidth = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('borderWidth');
8812−var $lynxjs_elm$ui$Lynx$input = $lynxjs_elm$virtual_dom$VirtualDom$node('input');
8813−var $elm$json$Json$Decode$at = F2(
8814− function (fields, decoder) {
8815− return A3($elm$core$List$foldr, $elm$json$Json$Decode$field, decoder, fields);
8817−var $lynxjs_elm$ui$Lynx$Events$onInput = function (tagger) {
8819− $lynxjs_elm$virtual_dom$VirtualDom$on,
8821− $lynxjs_elm$virtual_dom$VirtualDom$Normal(
8823− $elm$json$Json$Decode$map,
8826− $elm$json$Json$Decode$at,
8828− ['detail', 'value']),
8829− $elm$json$Json$Decode$string))));
8831−var $lynxjs_elm$virtual_dom$VirtualDom$attribute = F2(
8832− function (key, value) {
8834− _VirtualDom_attribute,
8835− _VirtualDom_noOnOrFormAction(key),
8836− _VirtualDom_noJavaScriptOrHtmlUri(value));
8838−var $lynxjs_elm$ui$Lynx$Attributes$attr = $lynxjs_elm$virtual_dom$VirtualDom$attribute;
8839−var $lynxjs_elm$ui$Lynx$Attributes$placeholder = $lynxjs_elm$ui$Lynx$Attributes$attr('placeholder');
8840−var $lynxjs_elm$ui$Lynx$Attributes$value = $lynxjs_elm$ui$Lynx$Attributes$attr('value');
8841−var $author$project$Main$textInput = function (config) {
8843− $lynxjs_elm$ui$Lynx$input,
8846− $lynxjs_elm$ui$Lynx$Events$onInput(config.onInput),
8847− $lynxjs_elm$ui$Lynx$Attributes$value(config.value),
8848− $lynxjs_elm$ui$Lynx$Attributes$placeholder(config.placeholder),
8849− $lynxjs_elm$ui$Lynx$Attributes$height(44),
8850− $lynxjs_elm$ui$Lynx$Attributes$fontSize(16),
8851− $lynxjs_elm$ui$Lynx$Attributes$color('#c9d1d9'),
8852− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#161b22'),
8853− $lynxjs_elm$ui$Lynx$Attributes$borderWidth(1),
8854− $lynxjs_elm$ui$Lynx$Attributes$borderColor('#30363d'),
8855− $lynxjs_elm$ui$Lynx$Attributes$borderRadius(8),
8856− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(12)
8860−var $author$project$Main$viewAddContact = function (model) {
8862− $lynxjs_elm$ui$Lynx$view,
8865− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Column),
8866− $lynxjs_elm$ui$Lynx$Attributes$flex(1)
8871− $lynxjs_elm$ui$Lynx$view,
8874− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Row),
8875− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center),
8876− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(12),
8877− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(12),
8878− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(16),
8879− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(16),
8880− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#161b22')
8885− $lynxjs_elm$ui$Lynx$view,
8888− $lynxjs_elm$ui$Lynx$Events$onTap(
8889− $author$project$Main$Navigate($author$project$Main$ContactsScreen)),
8890− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(12),
8891− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(4),
8892− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(4)
8897− $lynxjs_elm$ui$Lynx$text,
8900− $lynxjs_elm$ui$Lynx$Attributes$color('#58a6ff'),
8901− $lynxjs_elm$ui$Lynx$Attributes$fontSize(20)
8905− $lynxjs_elm$ui$Lynx$textContent('<')
8909− $lynxjs_elm$ui$Lynx$text,
8912− $lynxjs_elm$ui$Lynx$Attributes$color('#c9d1d9'),
8913− $lynxjs_elm$ui$Lynx$Attributes$fontSize(18),
8914− $lynxjs_elm$ui$Lynx$Attributes$fontWeight($lynxjs_elm$ui$Lynx$Attributes$Bold)
8918− $lynxjs_elm$ui$Lynx$textContent('Add Contact')
8922− $lynxjs_elm$ui$Lynx$view,
8925− $lynxjs_elm$ui$Lynx$Attributes$padding(24),
8926− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Column)
8930− $author$project$Main$fieldLabel('Identity string'),
8932− $lynxjs_elm$ui$Lynx$text,
8935− $lynxjs_elm$ui$Lynx$Attributes$color('#6e7681'),
8936− $lynxjs_elm$ui$Lynx$Attributes$fontSize(12),
8937− $lynxjs_elm$ui$Lynx$Attributes$marginBottom(8)
8941− $lynxjs_elm$ui$Lynx$textContent('Paste the <ed25519>.<x25519> identity from your contact')
8943− $author$project$Main$textInput(
8944− {onInput: $author$project$Main$UpdateAddIdentity, placeholder: 'abc123...def456.ghi789...jkl012', value: model.addIdentity}),
8945− $author$project$Main$spacer(20),
8946− $author$project$Main$fieldLabel('Name'),
8947− $author$project$Main$textInput(
8948− {onInput: $author$project$Main$UpdateAddName, placeholder: 'Display name (optional)', value: model.addName}),
8949− $author$project$Main$spacer(32),
8950− A2($author$project$Main$primaryButton, $author$project$Main$AddContact, 'Add Contact')
8954−var $author$project$Main$PrepareSend = {$: 'PrepareSend'};
8955−var $lynxjs_elm$ui$Lynx$Attributes$TextCenter = {$: 'TextCenter'};
8956−var $author$project$Main$UpdateDraft = function (a) {
8957− return {$: 'UpdateDraft', a: a};
8959−var $lynxjs_elm$ui$Lynx$Attributes$Vertical = {$: 'Vertical'};
8960−var $lynxjs_elm$ui$Lynx$Attributes$justifyContent = function (a) {
8962− $lynxjs_elm$ui$Lynx$Attributes$style,
8964− $lynxjs_elm$ui$Lynx$Attributes$alignmentToString(a));
8966−var $lynxjs_elm$ui$Lynx$Attributes$marginLeft = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('marginLeft');
8967−var $lynxjs_elm$ui$Lynx$Attributes$scrollDirection = function (d) {
8969− $lynxjs_elm$ui$Lynx$Attributes$attr,
8970− 'scroll-direction',
8972− if (d.$ === 'Vertical') {
8975− return 'horizontal';
8979−var $lynxjs_elm$ui$Lynx$scrollView = $lynxjs_elm$virtual_dom$VirtualDom$node('scroll-view');
8980−var $lynxjs_elm$ui$Lynx$Attributes$textAlign = function (a) {
8982− $lynxjs_elm$ui$Lynx$Attributes$style,
8997−var $elm$core$String$right = F2(
8998− function (n, string) {
8999− return (n < 1) ? '' : A3(
9000− $elm$core$String$slice,
9002− $elm$core$String$length(string),
9005−var $author$project$Main$truncateKey = function (key) {
9006− return ($elm$core$String$length(key) > 16) ? (A2($elm$core$String$left, 8, key) + ('...' + A2($elm$core$String$right, 8, key))) : key;
9008−var $lynxjs_elm$ui$Lynx$Attributes$End = {$: 'End'};
9009−var $lynxjs_elm$ui$Lynx$Attributes$Start = {$: 'Start'};
9010−var $lynxjs_elm$ui$Lynx$Attributes$maxWidth = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('maxWidth');
9011−var $author$project$Main$viewMessage = function (chatMsg) {
9013− $lynxjs_elm$ui$Lynx$view,
9016− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Row),
9017− $lynxjs_elm$ui$Lynx$Attributes$justifyContent(
9018− chatMsg.outgoing ? $lynxjs_elm$ui$Lynx$Attributes$End : $lynxjs_elm$ui$Lynx$Attributes$Start),
9019− $lynxjs_elm$ui$Lynx$Attributes$marginBottom(6)
9024− $lynxjs_elm$ui$Lynx$view,
9027− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor(
9028− chatMsg.outgoing ? '#1a3a5c' : '#21262d'),
9029− $lynxjs_elm$ui$Lynx$Attributes$borderRadius(16),
9030− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(10),
9031− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(10),
9032− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(14),
9033− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(14),
9034− $lynxjs_elm$ui$Lynx$Attributes$maxWidth(280)
9039− $lynxjs_elm$ui$Lynx$text,
9042− $lynxjs_elm$ui$Lynx$Attributes$color('#c9d1d9'),
9043− $lynxjs_elm$ui$Lynx$Attributes$fontSize(15)
9047− $lynxjs_elm$ui$Lynx$textContent(chatMsg.body)
9052−var $lynxjs_elm$ui$Lynx$Attributes$width = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('width');
9053−var $author$project$Main$viewChat = function (model) {
9054− var contactName = A2(
9055− $elm$core$Maybe$withDefault,
9056− $author$project$Main$truncateKey(model.activeChat),
9058− $elm$core$Maybe$map,
9062− A2($elm$core$Dict$get, model.activeChat, model.contacts)));
9063− var chatMessages = A2(
9064− $elm$core$Maybe$withDefault,
9066− A2($elm$core$Dict$get, model.activeChat, model.messages));
9068− $lynxjs_elm$ui$Lynx$view,
9071− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Column),
9072− $lynxjs_elm$ui$Lynx$Attributes$flex(1)
9077− $lynxjs_elm$ui$Lynx$view,
9080− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Row),
9081− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center),
9082− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(12),
9083− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(12),
9084− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(16),
9085− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(16),
9086− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#161b22')
9091− $lynxjs_elm$ui$Lynx$view,
9094− $lynxjs_elm$ui$Lynx$Events$onTap(
9095− $author$project$Main$Navigate($author$project$Main$ContactsScreen)),
9096− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(12),
9097− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(4),
9098− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(4)
9103− $lynxjs_elm$ui$Lynx$text,
9106− $lynxjs_elm$ui$Lynx$Attributes$color('#58a6ff'),
9107− $lynxjs_elm$ui$Lynx$Attributes$fontSize(20)
9111− $lynxjs_elm$ui$Lynx$textContent('<')
9115− $lynxjs_elm$ui$Lynx$text,
9118− $lynxjs_elm$ui$Lynx$Attributes$color('#c9d1d9'),
9119− $lynxjs_elm$ui$Lynx$Attributes$fontSize(18),
9120− $lynxjs_elm$ui$Lynx$Attributes$fontWeight($lynxjs_elm$ui$Lynx$Attributes$Bold),
9121− $lynxjs_elm$ui$Lynx$Attributes$flex(1)
9125− $lynxjs_elm$ui$Lynx$textContent(contactName)
9129− $lynxjs_elm$ui$Lynx$scrollView,
9132− $lynxjs_elm$ui$Lynx$Attributes$flex(1),
9133− $lynxjs_elm$ui$Lynx$Attributes$scrollDirection($lynxjs_elm$ui$Lynx$Attributes$Vertical),
9134− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(12),
9135− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(12),
9136− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(16),
9137− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(16)
9139− $elm$core$List$isEmpty(chatMessages) ? _List_fromArray(
9142− $lynxjs_elm$ui$Lynx$view,
9145− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center),
9146− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(80)
9151− $lynxjs_elm$ui$Lynx$text,
9154− $lynxjs_elm$ui$Lynx$Attributes$color('#8b949e'),
9155− $lynxjs_elm$ui$Lynx$Attributes$fontSize(14),
9156− $lynxjs_elm$ui$Lynx$Attributes$textAlign($lynxjs_elm$ui$Lynx$Attributes$TextCenter)
9160− $lynxjs_elm$ui$Lynx$textContent('No messages yet. Say hello!')
9163− ]) : A2($elm$core$List$map, $author$project$Main$viewMessage, chatMessages)),
9165− $lynxjs_elm$ui$Lynx$view,
9168− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Row),
9169− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center),
9170− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(8),
9171− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(8),
9172− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(12),
9173− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(12),
9174− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#161b22')
9179− $lynxjs_elm$ui$Lynx$input,
9182− $lynxjs_elm$ui$Lynx$Events$onInput($author$project$Main$UpdateDraft),
9183− $lynxjs_elm$ui$Lynx$Attributes$value(model.draft),
9184− $lynxjs_elm$ui$Lynx$Attributes$placeholder('Message...'),
9185− $lynxjs_elm$ui$Lynx$Attributes$flex(1),
9186− $lynxjs_elm$ui$Lynx$Attributes$height(40),
9187− $lynxjs_elm$ui$Lynx$Attributes$fontSize(16),
9188− $lynxjs_elm$ui$Lynx$Attributes$color('#c9d1d9'),
9189− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#0d1117'),
9190− $lynxjs_elm$ui$Lynx$Attributes$borderWidth(1),
9191− $lynxjs_elm$ui$Lynx$Attributes$borderColor('#30363d'),
9192− $lynxjs_elm$ui$Lynx$Attributes$borderRadius(20),
9193− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(16)
9197− $lynxjs_elm$ui$Lynx$view,
9200− $lynxjs_elm$ui$Lynx$Events$onTap($author$project$Main$PrepareSend),
9201− $lynxjs_elm$ui$Lynx$Attributes$marginLeft(8),
9202− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor(
9203− (model.sending || $elm$core$String$isEmpty(
9204− $elm$core$String$trim(model.draft))) ? '#30363d' : '#58a6ff'),
9205− $lynxjs_elm$ui$Lynx$Attributes$borderRadius(20),
9206− $lynxjs_elm$ui$Lynx$Attributes$width(40),
9207− $lynxjs_elm$ui$Lynx$Attributes$height(40),
9208− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center),
9209− $lynxjs_elm$ui$Lynx$Attributes$justifyContent($lynxjs_elm$ui$Lynx$Attributes$Center)
9214− $lynxjs_elm$ui$Lynx$text,
9217− $lynxjs_elm$ui$Lynx$Attributes$color('#ffffff'),
9218− $lynxjs_elm$ui$Lynx$Attributes$fontSize(16),
9219− $lynxjs_elm$ui$Lynx$Attributes$fontWeight($lynxjs_elm$ui$Lynx$Attributes$Bold)
9223− $lynxjs_elm$ui$Lynx$textContent('^')
9229−var $author$project$Main$AddContactScreen = {$: 'AddContactScreen'};
9230−var $elm$core$Dict$isEmpty = function (dict) {
9231− if (dict.$ === 'RBEmpty_elm_builtin') {
9237−var $lynxjs_elm$ui$Lynx$Attributes$marginRight = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('marginRight');
9238−var $elm$core$List$sortBy = _List_sortBy;
9239−var $elm$core$Dict$values = function (dict) {
9241− $elm$core$Dict$foldr,
9243− function (key, value, valueList) {
9244− return A2($elm$core$List$cons, value, valueList);
9249−var $author$project$Main$OpenChat = function (a) {
9250− return {$: 'OpenChat', a: a};
9252−var $lynxjs_elm$ui$Lynx$Attributes$marginTop = $lynxjs_elm$ui$Lynx$Attributes$pxStyle('marginTop');
9253−var $elm$core$String$toUpper = _String_toUpper;
9254−var $author$project$Main$viewContactRow = function (contact) {
9256− $lynxjs_elm$ui$Lynx$view,
9259− $lynxjs_elm$ui$Lynx$Events$onTap(
9260− $author$project$Main$OpenChat(contact.edPubHex)),
9261− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Row),
9262− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center),
9263− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(14),
9264− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(14),
9265− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(20),
9266− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(20),
9267− $lynxjs_elm$ui$Lynx$Attributes$borderColor('#21262d'),
9268− $lynxjs_elm$ui$Lynx$Attributes$borderWidth(1)
9273− $lynxjs_elm$ui$Lynx$view,
9276− $lynxjs_elm$ui$Lynx$Attributes$width(44),
9277− $lynxjs_elm$ui$Lynx$Attributes$height(44),
9278− $lynxjs_elm$ui$Lynx$Attributes$borderRadius(22),
9279− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#30363d'),
9280− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center),
9281− $lynxjs_elm$ui$Lynx$Attributes$justifyContent($lynxjs_elm$ui$Lynx$Attributes$Center),
9282− $lynxjs_elm$ui$Lynx$Attributes$marginRight(12)
9287− $lynxjs_elm$ui$Lynx$text,
9290− $lynxjs_elm$ui$Lynx$Attributes$color('#58a6ff'),
9291− $lynxjs_elm$ui$Lynx$Attributes$fontSize(18),
9292− $lynxjs_elm$ui$Lynx$Attributes$fontWeight($lynxjs_elm$ui$Lynx$Attributes$Bold)
9296− $lynxjs_elm$ui$Lynx$textContent(
9297− $elm$core$String$toUpper(
9298− A2($elm$core$String$left, 1, contact.name)))
9302− $lynxjs_elm$ui$Lynx$view,
9305− $lynxjs_elm$ui$Lynx$Attributes$flex(1),
9306− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Column)
9311− $lynxjs_elm$ui$Lynx$view,
9314− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Row),
9315− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center)
9320− $lynxjs_elm$ui$Lynx$text,
9323− $lynxjs_elm$ui$Lynx$Attributes$color('#c9d1d9'),
9324− $lynxjs_elm$ui$Lynx$Attributes$fontSize(16),
9325− $lynxjs_elm$ui$Lynx$Attributes$fontWeight($lynxjs_elm$ui$Lynx$Attributes$Bold),
9326− $lynxjs_elm$ui$Lynx$Attributes$flex(1)
9330− $lynxjs_elm$ui$Lynx$textContent(contact.name)
9332− contact.online ? A2(
9333− $lynxjs_elm$ui$Lynx$view,
9336− $lynxjs_elm$ui$Lynx$Attributes$width(8),
9337− $lynxjs_elm$ui$Lynx$Attributes$height(8),
9338− $lynxjs_elm$ui$Lynx$Attributes$borderRadius(4),
9339− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#3fb950'),
9340− $lynxjs_elm$ui$Lynx$Attributes$marginLeft(8)
9342− _List_Nil) : A2($lynxjs_elm$ui$Lynx$view, _List_Nil, _List_Nil)
9344− $elm$core$String$isEmpty(contact.lastMessage) ? A2($lynxjs_elm$ui$Lynx$view, _List_Nil, _List_Nil) : A2(
9345− $lynxjs_elm$ui$Lynx$text,
9348− $lynxjs_elm$ui$Lynx$Attributes$color('#8b949e'),
9349− $lynxjs_elm$ui$Lynx$Attributes$fontSize(14),
9350− $lynxjs_elm$ui$Lynx$Attributes$marginTop(2)
9354− $lynxjs_elm$ui$Lynx$textContent(
9355− A2($elm$core$String$left, 50, contact.lastMessage))
9360−var $author$project$Main$viewContacts = function (model) {
9362− $lynxjs_elm$ui$Lynx$view,
9365− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Column),
9366− $lynxjs_elm$ui$Lynx$Attributes$flex(1)
9371− $lynxjs_elm$ui$Lynx$view,
9374− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Row),
9375− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center),
9376− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(16),
9377− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(16),
9378− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(20),
9379− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(20),
9380− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#161b22')
9385− $lynxjs_elm$ui$Lynx$text,
9388− $lynxjs_elm$ui$Lynx$Attributes$fontSize(20),
9389− $lynxjs_elm$ui$Lynx$Attributes$fontWeight($lynxjs_elm$ui$Lynx$Attributes$Bold),
9390− $lynxjs_elm$ui$Lynx$Attributes$color('#c9d1d9'),
9391− $lynxjs_elm$ui$Lynx$Attributes$flex(1)
9395− $lynxjs_elm$ui$Lynx$textContent('Messages')
9398− $lynxjs_elm$ui$Lynx$view,
9401− $lynxjs_elm$ui$Lynx$Events$onTap(
9402− $author$project$Main$Navigate($author$project$Main$AddContactScreen)),
9403− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(12),
9404− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(4)
9409− $lynxjs_elm$ui$Lynx$text,
9412− $lynxjs_elm$ui$Lynx$Attributes$color('#58a6ff'),
9413− $lynxjs_elm$ui$Lynx$Attributes$fontSize(28)
9417− $lynxjs_elm$ui$Lynx$textContent('+')
9421− $elm$core$Dict$isEmpty(model.contacts) ? A2(
9422− $lynxjs_elm$ui$Lynx$view,
9425− $lynxjs_elm$ui$Lynx$Attributes$flex(1),
9426− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center),
9427− $lynxjs_elm$ui$Lynx$Attributes$justifyContent($lynxjs_elm$ui$Lynx$Attributes$Center),
9428− $lynxjs_elm$ui$Lynx$Attributes$padding(40)
9433− $lynxjs_elm$ui$Lynx$text,
9436− $lynxjs_elm$ui$Lynx$Attributes$color('#8b949e'),
9437− $lynxjs_elm$ui$Lynx$Attributes$fontSize(16),
9438− $lynxjs_elm$ui$Lynx$Attributes$textAlign($lynxjs_elm$ui$Lynx$Attributes$TextCenter)
9442− $lynxjs_elm$ui$Lynx$textContent('No conversations yet')
9444− $author$project$Main$spacer(8),
9446− $lynxjs_elm$ui$Lynx$text,
9449− $lynxjs_elm$ui$Lynx$Attributes$color('#8b949e'),
9450− $lynxjs_elm$ui$Lynx$Attributes$fontSize(14),
9451− $lynxjs_elm$ui$Lynx$Attributes$textAlign($lynxjs_elm$ui$Lynx$Attributes$TextCenter)
9455− $lynxjs_elm$ui$Lynx$textContent('Tap + to add a contact')
9458− $lynxjs_elm$ui$Lynx$scrollView,
9461− $lynxjs_elm$ui$Lynx$Attributes$flex(1),
9462− $lynxjs_elm$ui$Lynx$Attributes$scrollDirection($lynxjs_elm$ui$Lynx$Attributes$Vertical)
9465− $elm$core$List$map,
9466− $author$project$Main$viewContactRow,
9468− $elm$core$List$sortBy,
9470− return -c.lastTime;
9472− $elm$core$Dict$values(model.contacts)))),
9474− var _v0 = model.edPub;
9475− if (_v0.$ === 'Just') {
9478− $lynxjs_elm$ui$Lynx$view,
9481− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(10),
9482− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(10),
9483− $lynxjs_elm$ui$Lynx$Attributes$paddingLeft(20),
9484− $lynxjs_elm$ui$Lynx$Attributes$paddingRight(20),
9485− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#161b22'),
9486− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Row),
9487− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center)
9492− $lynxjs_elm$ui$Lynx$view,
9495− $lynxjs_elm$ui$Lynx$Attributes$width(8),
9496− $lynxjs_elm$ui$Lynx$Attributes$height(8),
9497− $lynxjs_elm$ui$Lynx$Attributes$borderRadius(4),
9498− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#3fb950'),
9499− $lynxjs_elm$ui$Lynx$Attributes$marginRight(8)
9503− $lynxjs_elm$ui$Lynx$text,
9506− $lynxjs_elm$ui$Lynx$Attributes$color('#8b949e'),
9507− $lynxjs_elm$ui$Lynx$Attributes$fontSize(11),
9508− $lynxjs_elm$ui$Lynx$Attributes$flex(1)
9512− $lynxjs_elm$ui$Lynx$textContent(
9513− $author$project$Main$truncateKey(
9514− $lynxjs_elm$crypto$Crypto$Ed25519$publicKeyToHex(pub)))
9518− return A2($lynxjs_elm$ui$Lynx$view, _List_Nil, _List_Nil);
9523−var $author$project$Main$Connect = {$: 'Connect'};
9524−var $author$project$Main$UpdateDisplayName = function (a) {
9525− return {$: 'UpdateDisplayName', a: a};
9527−var $author$project$Main$UpdateServerUrl = function (a) {
9528− return {$: 'UpdateServerUrl', a: a};
9530−var $author$project$Main$disabledButton = function (text) {
9532− $lynxjs_elm$ui$Lynx$view,
9535− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#30363d'),
9536− $lynxjs_elm$ui$Lynx$Attributes$borderRadius(8),
9537− $lynxjs_elm$ui$Lynx$Attributes$paddingTop(14),
9538− $lynxjs_elm$ui$Lynx$Attributes$paddingBottom(14),
9539− $lynxjs_elm$ui$Lynx$Attributes$alignItems($lynxjs_elm$ui$Lynx$Attributes$Center)
9544− $lynxjs_elm$ui$Lynx$text,
9547− $lynxjs_elm$ui$Lynx$Attributes$color('#8b949e'),
9548− $lynxjs_elm$ui$Lynx$Attributes$fontSize(16)
9552− $lynxjs_elm$ui$Lynx$textContent(text)
9556−var $author$project$Main$viewSetup = function (model) {
9557− var identityStr = function () {
9558− var _v0 = _Utils_Tuple2(model.edPub, model.xPub);
9559− if ((_v0.a.$ === 'Just') && (_v0.b.$ === 'Just')) {
9562− return $lynxjs_elm$crypto$Crypto$Ed25519$publicKeyToHex(edP) + ('.' + $lynxjs_elm$crypto$Crypto$X25519$publicKeyToHex(xP));
9568− $lynxjs_elm$ui$Lynx$view,
9571− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Column),
9572− $lynxjs_elm$ui$Lynx$Attributes$flex(1),
9573− $lynxjs_elm$ui$Lynx$Attributes$padding(24),
9574− $lynxjs_elm$ui$Lynx$Attributes$justifyContent($lynxjs_elm$ui$Lynx$Attributes$Center)
9579− $lynxjs_elm$ui$Lynx$text,
9582− $lynxjs_elm$ui$Lynx$Attributes$fontSize(36),
9583− $lynxjs_elm$ui$Lynx$Attributes$fontWeight($lynxjs_elm$ui$Lynx$Attributes$Bold),
9584− $lynxjs_elm$ui$Lynx$Attributes$color('#58a6ff'),
9585− $lynxjs_elm$ui$Lynx$Attributes$textAlign($lynxjs_elm$ui$Lynx$Attributes$TextCenter),
9586− $lynxjs_elm$ui$Lynx$Attributes$marginBottom(8)
9590− $lynxjs_elm$ui$Lynx$textContent('Skrepka')
9593− $lynxjs_elm$ui$Lynx$text,
9596− $lynxjs_elm$ui$Lynx$Attributes$fontSize(14),
9597− $lynxjs_elm$ui$Lynx$Attributes$color('#8b949e'),
9598− $lynxjs_elm$ui$Lynx$Attributes$textAlign($lynxjs_elm$ui$Lynx$Attributes$TextCenter),
9599− $lynxjs_elm$ui$Lynx$Attributes$marginBottom(32)
9603− $lynxjs_elm$ui$Lynx$textContent('Encrypted messaging, no accounts')
9605− $author$project$Main$fieldLabel('Your identity (share this with contacts)'),
9606− $elm$core$String$isEmpty(identityStr) ? A2(
9607− $lynxjs_elm$ui$Lynx$text,
9610− $lynxjs_elm$ui$Lynx$Attributes$color('#8b949e'),
9611− $lynxjs_elm$ui$Lynx$Attributes$fontSize(14),
9612− $lynxjs_elm$ui$Lynx$Attributes$marginBottom(24)
9616− $lynxjs_elm$ui$Lynx$textContent('Generating keypair...')
9618− $lynxjs_elm$ui$Lynx$view,
9621− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#161b22'),
9622− $lynxjs_elm$ui$Lynx$Attributes$borderRadius(8),
9623− $lynxjs_elm$ui$Lynx$Attributes$padding(12),
9624− $lynxjs_elm$ui$Lynx$Attributes$marginBottom(24)
9629− $lynxjs_elm$ui$Lynx$text,
9632− $lynxjs_elm$ui$Lynx$Attributes$color('#c9d1d9'),
9633− $lynxjs_elm$ui$Lynx$Attributes$fontSize(11)
9637− $lynxjs_elm$ui$Lynx$textContent(identityStr)
9640− $author$project$Main$fieldLabel('Relay server'),
9641− $author$project$Main$textInput(
9642− {onInput: $author$project$Main$UpdateServerUrl, placeholder: 'http://relay.example.com:8080', value: model.serverUrl}),
9643− $author$project$Main$spacer(24),
9644− $author$project$Main$fieldLabel('Display name (optional)'),
9645− $author$project$Main$textInput(
9646− {onInput: $author$project$Main$UpdateDisplayName, placeholder: 'Anonymous', value: model.displayName}),
9647− $author$project$Main$spacer(32),
9648− model.connecting ? $author$project$Main$disabledButton('Connecting...') : (_Utils_eq(model.edPriv, $elm$core$Maybe$Nothing) ? $author$project$Main$disabledButton('Generating keys...') : A2($author$project$Main$primaryButton, $author$project$Main$Connect, 'Connect to Server'))
9651−var $author$project$Main$view = function (model) {
9653− $lynxjs_elm$ui$Lynx$view,
9656− $lynxjs_elm$ui$Lynx$Attributes$flexDirection($lynxjs_elm$ui$Lynx$Attributes$Column),
9657− $lynxjs_elm$ui$Lynx$Attributes$flex(1),
9658− $lynxjs_elm$ui$Lynx$Attributes$backgroundColor('#0d1117')
9663− var _v0 = model.error;
9664− if (_v0.$ === 'Just') {
9666− return $author$project$Main$errorBanner(err);
9668− return A2($lynxjs_elm$ui$Lynx$view, _List_Nil, _List_Nil);
9672− var _v1 = model.screen;
9674− case 'SetupScreen':
9675− return $author$project$Main$viewSetup(model);
9676− case 'ContactsScreen':
9677− return $author$project$Main$viewContacts(model);
9679− return $author$project$Main$viewChat(model);
9681− return $author$project$Main$viewAddContact(model);
9686−var $author$project$Main$main = $lynxjs_elm$browser$Browser$element(
9687− {init: $author$project$Main$init, subscriptions: $author$project$Main$subscriptions, update: $author$project$Main$update, view: $author$project$Main$view});
9688−_Platform_export({'Main':{'init':$author$project$Main$main(
9689− $elm$json$Json$Decode$succeed(_Utils_Tuple0))(0)}});}(globalThis));