diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 9d16840a..0aedcdfb 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -26,10 +26,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- - name: Install packages
- run: sudo apt-get install libmbedtls-dev libpcap-dev
- - name: examples
- run: make clean examples
+ - run: sudo apt-get install libmbedtls-dev libpcap-dev
+ - run: make clean examples
+ - run: make clean test IPV6=0 MG_ENABLE_POLL=1
macos:
runs-on: macos-latest
steps:
@@ -51,26 +50,21 @@ jobs:
sudo curl -F "file=@sntp.cap" https://file.io/?expires=1w
- name: openssl
run: make test SSL=OPENSSL IPV6=0 ASAN_OPTIONS= OPENSSL=`echo /usr/local/Cellar/openssl*/*`
- - name: exports
- run: make mg_prefix
+ - run: make mg_prefix
windows:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- - name: vc98
- run: make vc98
- - name: vc2017
- run: make vc2017
- - name: mingw
- run: make mingw
- - name: mingw++
- run: make mingw++
+ - run: make vc98
+ - run: make vc2017
+ - run: make vc22
+ - run: make mingw
+ - run: make mingw++
arm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- - name: arm
- run: make arm
+ - run: make arm
matrix_examples:
runs-on: ubuntu-latest
strategy:
diff --git a/Makefile b/Makefile
index 08db3470..4833f74b 100644
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,8 @@ VALGRIND_OPTS ?= -O0 -g3
INCS ?= -Isrc -I.
SSL ?= MBEDTLS
CWD ?= $(realpath $(CURDIR))
-DOCKER ?= docker run --rm -e Tmp=. -e WINEDEBUG=-all -v $(CWD):$(CWD) -w $(CWD)
+ENV ?= -e Tmp=. -e WINEDEBUG=-all
+DOCKER ?= docker run --rm $(ENV) -v $(CWD):$(CWD) -w $(CWD)
VCFLAGS = /nologo /W3 /O2 /MD /I. $(DEFS) $(TFLAGS)
IPV6 ?= 1
ASAN ?= -fsanitize=address,undefined -fno-sanitize-recover=all
@@ -33,7 +34,7 @@ CFLAGS += -DMG_ENABLE_OPENSSL=1 -I$(OPENSSL)/include
LDFLAGS ?= -L$(OPENSSL)/lib -lssl -lcrypto
endif
-all: mg_prefix unamalgamated unpacked test test++ valgrind arm examples vc98 vc2017 mingw mingw++ linux linux++ fuzz
+all: mg_prefix unamalgamated unpacked test test++ valgrind arm examples vc98 vc2017 vc22 mingw mingw++ linux linux++ fuzz
examples:
@for X in $(EXAMPLES); do test -f $$X/Makefile || continue; $(MAKE) -C $$X example || exit 1; done
diff --git a/examples/device-dashboard/packed_fs.c b/examples/device-dashboard/packed_fs.c
index acf6fd2a..e503fb08 100644
--- a/examples/device-dashboard/packed_fs.c
+++ b/examples/device-dashboard/packed_fs.c
@@ -3,2279 +3,40 @@
#include
static const unsigned char v1[] = {
- 39, 117, 115, 101, 32, 115, 116, 114, 105, 99, 116, 39, // 'use strict'
- 59, 10, 105, 109, 112, 111, 114, 116, 32, 123, 67, 111, // ;.import {Co
- 109, 112, 111, 110, 101, 110, 116, 44, 32, 104, 44, 32, // mponent, h,
- 104, 116, 109, 108, 44, 32, 114, 101, 110, 100, 101, 114, // html, render
- 44, 32, 117, 115, 101, 69, 102, 102, 101, 99, 116, 44, // , useEffect,
- 32, 117, 115, 101, 83, 116, 97, 116, 101, 44, 32, 117, // useState, u
- 115, 101, 82, 101, 102, 125, 32, 102, 114, 111, 109, 32, // seRef} from
- 39, 46, 47, 112, 114, 101, 97, 99, 116, 46, 109, 105, // './preact.mi
- 110, 46, 106, 115, 39, 59, 10, 10, 99, 111, 110, 115, // n.js';..cons
- 116, 32, 77, 97, 120, 77, 101, 116, 114, 105, 99, 115, // t MaxMetrics
- 68, 97, 116, 97, 80, 111, 105, 110, 116, 115, 32, 61, // DataPoints =
- 32, 53, 48, 59, 10, 10, 47, 47, 32, 84, 104, 105, // 50;..// Thi
- 115, 32, 115, 105, 109, 112, 108, 101, 32, 112, 117, 98, // s simple pub
- 108, 105, 115, 104, 47, 115, 117, 98, 115, 99, 114, 105, // lish/subscri
- 98, 101, 32, 105, 115, 32, 117, 115, 101, 100, 32, 116, // be is used t
- 111, 32, 112, 97, 115, 115, 32, 110, 111, 116, 105, 102, // o pass notif
- 105, 99, 97, 116, 105, 111, 110, 115, 32, 116, 104, 97, // ications tha
- 116, 32, 119, 101, 114, 101, 10, 47, 47, 32, 114, 101, // t were.// re
- 99, 101, 105, 118, 101, 100, 32, 102, 114, 111, 109, 32, // ceived from
- 116, 104, 101, 32, 115, 101, 114, 118, 101, 114, 44, 32, // the server,
- 116, 111, 32, 97, 108, 108, 32, 99, 104, 105, 108, 100, // to all child
- 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, // components
- 111, 102, 32, 116, 104, 101, 32, 97, 112, 112, 46, 10, // of the app..
- 118, 97, 114, 32, 80, 117, 98, 83, 117, 98, 32, 61, // var PubSub =
- 32, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, // (function()
- 32, 123, 10, 32, 32, 118, 97, 114, 32, 104, 97, 110, // {. var han
- 100, 108, 101, 114, 115, 32, 61, 32, 123, 125, 44, 32, // dlers = {},
- 105, 100, 32, 61, 32, 48, 59, 10, 32, 32, 114, 101, // id = 0;. re
- 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 115, // turn {. s
- 117, 98, 115, 99, 114, 105, 98, 101, 58, 32, 102, 117, // ubscribe: fu
- 110, 99, 116, 105, 111, 110, 40, 102, 110, 41, 32, 123, // nction(fn) {
- 10, 32, 32, 32, 32, 32, 32, 104, 97, 110, 100, 108, // . handl
- 101, 114, 115, 91, 105, 100, 43, 43, 93, 32, 61, 32, // ers[id++] =
- 102, 110, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, // fn;. },.
- 32, 32, 32, 117, 110, 115, 117, 98, 115, 99, 114, 105, // unsubscri
- 98, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, // be: function
- 40, 105, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, // (id) {.
- 32, 100, 101, 108, 101, 116, 101, 32, 104, 97, 110, 100, // delete hand
- 108, 101, 114, 115, 91, 105, 100, 93, 59, 10, 32, 32, // lers[id];.
- 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 117, 98, // },. pub
- 108, 105, 115, 104, 58, 32, 102, 117, 110, 99, 116, 105, // lish: functi
- 111, 110, 40, 100, 97, 116, 97, 41, 32, 123, 10, 32, // on(data) {.
- 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, // for (va
- 114, 32, 107, 32, 105, 110, 32, 104, 97, 110, 100, 108, // r k in handl
- 101, 114, 115, 41, 32, 104, 97, 110, 100, 108, 101, 114, // ers) handler
- 115, 91, 107, 93, 40, 100, 97, 116, 97, 41, 59, 10, // s[k](data);.
- 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 125, // }. };.}
- 41, 40, 41, 59, 10, 10, 99, 111, 110, 115, 116, 32, // )();..const
- 78, 97, 118, 32, 61, 32, 112, 114, 111, 112, 115, 32, // Nav = props
- 61, 62, 32, 104, 116, 109, 108, 96, 10, 60, 100, 105, // => html`..
- 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, // . <
- 100, 105, 118, 32, 115, 116, 121, 108, 101, 61, 34, 102, // div style="f
- 108, 101, 120, 58, 32, 49, 32, 49, 32, 97, 117, 116, // lex: 1 1 aut
- 111, 59, 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, // o; display:
- 102, 108, 101, 120, 59, 32, 97, 108, 105, 103, 110, 45, // flex; align-
- 105, 116, 101, 109, 115, 58, 32, 99, 101, 110, 116, 101, // items: cente
- 114, 59, 34, 62, 10, 32, 32, 32, 32, 32, 32, 60, // r;">. <
- 98, 62, 89, 111, 117, 114, 32, 80, 114, 111, 100, 117, // b>Your Produ
- 99, 116, 60, 47, 98, 62, 10, 32, 32, 32, 32, 60, // ct. <
- 47, 100, 105, 118, 62, 10, 32, 32, 32, 32, 60, 100, // /div>.
. <
- 115, 112, 97, 110, 62, 76, 111, 103, 103, 101, 100, 32, // span>Logged
- 105, 110, 32, 97, 115, 58, 60, 47, 115, 112, 97, 110, // in as:.
.
- 32, 32, 32, 32, 60, 115, 112, 97, 110, 62, 36, 123, // ${
- 112, 114, 111, 112, 115, 46, 117, 115, 101, 114, 125, 60, // props.user}<
- 47, 115, 112, 97, 110, 62, 10, 32, 32, 32, 32, 32, // /span>.
- 32, 60, 97, 32, 99, 108, 97, 115, 115, 61, 34, 98, // logout
- 10, 32, 32, 32, 32, 60, 47, 100, 105, 118, 62, 10, // . .
- 32, 32, 60, 47, 100, 105, 118, 62, 10, 60, 47, 100, // .`;...cons
- 116, 32, 72, 101, 114, 111, 32, 61, 32, 112, 114, 111, // t Hero = pro
- 112, 115, 32, 61, 62, 32, 104, 116, 109, 108, 96, 10, // ps => html`.
- 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, // .
- 10, 32, 32, 60, 104, 49, 32, 115, 116, 121, 108, 101, // . Inte
- 114, 97, 99, 116, 105, 118, 101, 32, 68, 101, 118, 105, // ractive Devi
- 99, 101, 32, 68, 97, 115, 104, 98, 111, 97, 114, 100, // ce Dashboard
- 60, 47, 104, 49, 62, 10, 10, 32, 32, 60, 112, 62, //
..
- 10, 32, 32, 84, 104, 105, 115, 32, 100, 101, 118, 105, // . This devi
- 99, 101, 32, 100, 97, 115, 104, 98, 111, 97, 114, 100, // ce dashboard
- 32, 105, 115, 32, 100, 101, 118, 101, 108, 111, 112, 101, // is develope
- 100, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, // d using the
- 109, 111, 100, 101, 114, 110, 32, 97, 110, 100, 32, 99, // modern and c
- 111, 109, 112, 97, 99, 116, 32, 80, 114, 101, 97, 99, // ompact Preac
- 116, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 44, // t framework,
- 10, 32, 32, 105, 110, 32, 111, 114, 100, 101, 114, 32, // . in order
- 116, 111, 32, 102, 105, 116, 32, 111, 110, 32, 118, 101, // to fit on ve
- 114, 121, 32, 115, 109, 97, 108, 108, 32, 100, 101, 118, // ry small dev
- 105, 99, 101, 115, 46, 32, 84, 104, 105, 115, 32, 105, // ices. This i
- 115, 10, 32, 32, 97, 32, 60, 97, 32, 104, 114, 101, // s. a h
- 121, 98, 114, 105, 100, 32, 115, 101, 114, 118, 101, 114, // ybrid server
- 60, 47, 97, 62, 32, 119, 104, 105, 99, 104, 10, 32, // which.
- 32, 112, 114, 111, 118, 105, 100, 101, 115, 32, 98, 111, // provides bo
- 116, 104, 32, 115, 116, 97, 116, 105, 99, 32, 97, 110, // th static an
- 100, 32, 100, 121, 110, 97, 109, 105, 99, 32, 99, 111, // d dynamic co
- 110, 116, 101, 110, 116, 46, 32, 32, 83, 116, 97, 116, // ntent. Stat
- 105, 99, 32, 102, 105, 108, 101, 115, 44, 32, 108, 105, // ic files, li
- 107, 101, 32, 67, 83, 83, 47, 74, 83, 47, 72, 84, // ke CSS/JS/HT
- 77, 76, 10, 32, 32, 111, 114, 32, 105, 109, 97, 103, // ML. or imag
- 101, 115, 44, 32, 97, 114, 101, 32, 99, 111, 109, 112, // es, are comp
- 105, 108, 101, 100, 32, 105, 110, 116, 111, 32, 116, 104, // iled into th
- 101, 32, 115, 101, 114, 118, 101, 114, 32, 98, 105, 110, // e server bin
- 97, 114, 121, 46, 10, 10, 32, 32, 84, 104, 105, 115, // ary... This
- 32, 85, 73, 32, 117, 115, 101, 115, 32, 116, 104, 101, // UI uses the
- 32, 82, 69, 83, 84, 32, 65, 80, 73, 32, 105, 109, // REST API im
- 112, 108, 101, 109, 101, 110, 116, 101, 100, 32, 98, 121, // plemented by
- 32, 116, 104, 101, 32, 100, 101, 118, 105, 99, 101, 44, // the device,
- 32, 119, 104, 105, 99, 104, 32, 121, 111, 117, 32, 99, // which you c
- 97, 110, 32, 101, 120, 97, 109, 105, 110, 101, 10, 32, // an examine.
- 32, 117, 115, 105, 110, 103, 32, 32, 60, 99, 111, 100, // using curl command-li
- 110, 101, 32, 117, 116, 105, 108, 105, 116, 121, 58, 10, // ne utility:.
- 32, 32, 60, 47, 112, 62, 10, 10, 32, 32, 60, 100, //
.. cur
- 108, 32, 45, 117, 32, 97, 100, 109, 105, 110, 58, 112, // l -u admin:p
- 97, 115, 115, 48, 32, 108, 111, 99, 97, 108, 104, 111, // ass0 localho
- 115, 116, 58, 56, 48, 48, 48, 47, 97, 112, 105, 47, // st:8000/api/
- 99, 111, 110, 102, 105, 103, 47, 103, 101, 116, 60, 47, // config/get
- 99, 111, 100, 101, 62, 32, 60, 47, 100, 105, 118, 62, // code>
- 10, 32, 32, 60, 100, 105, 118, 62, 60, 99, 111, 100, // . curl -u ad
- 109, 105, 110, 58, 112, 97, 115, 115, 48, 32, 108, 111, // min:pass0 lo
- 99, 97, 108, 104, 111, 115, 116, 58, 56, 48, 48, 48, // calhost:8000
- 47, 97, 112, 105, 47, 99, 111, 110, 102, 105, 103, 47, // /api/config/
- 115, 101, 116, 32, 45, 100, 32, 39, 112, 117, 98, 61, // set -d 'pub=
- 109, 103, 47, 116, 111, 112, 105, 99, 39, 60, 47, 99, // mg/topic'
.
- 32, 32, 60, 100, 105, 118, 62, 60, 99, 111, 100, 101, // curl -u adm
- 105, 110, 58, 112, 97, 115, 115, 48, 32, 108, 111, 99, // in:pass0 loc
- 97, 108, 104, 111, 115, 116, 58, 56, 48, 48, 48, 47, // alhost:8000/
- 97, 112, 105, 47, 109, 101, 115, 115, 97, 103, 101, 47, // api/message/
- 115, 101, 110, 100, 32, 45, 100, 32, 39, 109, 101, 115, // send -d 'mes
- 115, 97, 103, 101, 61, 104, 101, 108, 108, 111, 39, 60, // sage=hello'<
- 47, 99, 111, 100, 101, 62, 32, 60, 47, 100, 105, 118, // /code>
.. . T
- 104, 101, 32, 100, 101, 118, 105, 99, 101, 32, 99, 97, // he device ca
- 110, 32, 115, 101, 110, 100, 32, 110, 111, 116, 105, 102, // n send notif
- 105, 99, 97, 116, 105, 111, 110, 115, 32, 116, 111, 32, // ications to
- 116, 104, 105, 115, 32, 100, 97, 115, 104, 98, 111, 97, // this dashboa
- 114, 100, 32, 97, 116, 32, 97, 110, 121, 116, 105, 109, // rd at anytim
- 101, 46, 32, 78, 111, 116, 105, 102, 105, 99, 97, 116, // e. Notificat
- 105, 111, 110, 115, 10, 32, 32, 97, 114, 101, 32, 115, // ions. are s
- 101, 110, 116, 32, 111, 118, 101, 114, 32, 87, 101, 98, // ent over Web
- 83, 111, 99, 107, 101, 116, 32, 97, 116, 32, 85, 82, // Socket at UR
- 73, 32, 60, 99, 111, 100, 101, 62, 47, 97, 112, 105, // I /api
- 47, 119, 97, 116, 99, 104, 60, 47, 99, 111, 100, 101, // /watch
as JSON st
- 114, 105, 110, 103, 115, 58, 32, 60, 99, 111, 100, 101, // rings: {"name": ".
- 46, 34, 44, 32, 34, 100, 97, 116, 97, 34, 58, 32, // .", "data":
- 46, 46, 46, 125, 60, 47, 99, 111, 100, 101, 62, 10, // ...}
.
- 32, 32, 60, 100, 105, 118, 62, 84, 114, 121, 32, 60, //
Try <
- 99, 111, 100, 101, 62, 119, 115, 99, 97, 116, 32, 45, // code>wscat -
- 45, 97, 117, 116, 104, 32, 117, 115, 101, 114, 49, 58, // -auth user1:
- 112, 97, 115, 115, 49, 32, 45, 45, 99, 111, 110, 110, // pass1 --conn
- 101, 99, 116, 32, 119, 115, 58, 47, 47, 108, 111, 99, // ect ws://loc
- 97, 108, 104, 111, 115, 116, 58, 56, 48, 48, 48, 47, // alhost:8000/
- 97, 112, 105, 47, 119, 97, 116, 99, 104, 60, 47, 99, // api/watch
.
- 32, 60, 47, 112, 62, 10, 60, 47, 100, 105, 118, 62, //
.
- 10, 60, 47, 100, 105, 118, 62, 96, 59, 10, 10, 99, // .`;..c
- 111, 110, 115, 116, 32, 76, 111, 103, 105, 110, 32, 61, // onst Login =
- 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 112, 114, // function(pr
- 111, 112, 115, 41, 32, 123, 10, 32, 32, 99, 111, 110, // ops) {. con
- 115, 116, 32, 91, 117, 115, 101, 114, 44, 32, 115, 101, // st [user, se
- 116, 85, 115, 101, 114, 93, 32, 61, 32, 117, 115, 101, // tUser] = use
- 83, 116, 97, 116, 101, 40, 39, 39, 41, 59, 10, 32, // State('');.
- 32, 99, 111, 110, 115, 116, 32, 91, 112, 97, 115, 115, // const [pass
- 44, 32, 115, 101, 116, 80, 97, 115, 115, 93, 32, 61, // , setPass] =
- 32, 117, 115, 101, 83, 116, 97, 116, 101, 40, 39, 39, // useState(''
- 41, 59, 10, 32, 32, 99, 111, 110, 115, 116, 32, 108, // );. const l
- 111, 103, 105, 110, 32, 61, 32, 101, 118, 32, 61, 62, // ogin = ev =>
- 10, 32, 32, 32, 32, 32, 32, 102, 101, 116, 99, 104, // . fetch
- 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // (.
- 39, 47, 97, 112, 105, 47, 108, 111, 103, 105, 110, 39, // '/api/login'
- 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // ,.
- 123, 104, 101, 97, 100, 101, 114, 115, 58, 32, 123, 65, // {headers: {A
- 117, 116, 104, 111, 114, 105, 122, 97, 116, 105, 111, 110, // uthorization
- 58, 32, 39, 66, 97, 115, 105, 99, 32, 39, 32, 43, // : 'Basic ' +
- 32, 98, 116, 111, 97, 40, 117, 115, 101, 114, 32, 43, // btoa(user +
- 32, 39, 58, 39, 32, 43, 32, 112, 97, 115, 115, 41, // ':' + pass)
- 125, 125, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, // }}).
- 32, 32, 46, 116, 104, 101, 110, 40, 114, 32, 61, 62, // .then(r =>
- 32, 114, 46, 106, 115, 111, 110, 40, 41, 41, 10, 32, // r.json()).
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 116, 104, // .th
- 101, 110, 40, 114, 32, 61, 62, 32, 114, 32, 38, 38, // en(r => r &&
- 32, 112, 114, 111, 112, 115, 46, 108, 111, 103, 105, 110, // props.login
- 40, 114, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, // (r)).
- 32, 32, 32, 46, 99, 97, 116, 99, 104, 40, 101, 114, // .catch(er
- 114, 32, 61, 62, 32, 101, 114, 114, 41, 59, 10, 32, // r => err);.
- 32, 114, 101, 116, 117, 114, 110, 32, 104, 116, 109, 108, // return html
- 96, 10, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, // `.
- 10, 32, 32, 60, 100, 105, 118, 32, 115, 116, 121, 108, // .
.
- 60, 104, 49, 32, 115, 116, 121, 108, 101, 61, 34, 99, //
Device Dash
- 98, 111, 97, 114, 100, 32, 76, 111, 103, 105, 110, 32, // board Login
- 60, 47, 104, 49, 62, 10, 32, 32, 32, 32, 60, 100, //
.
. <
- 105, 110, 112, 117, 116, 32, 116, 121, 112, 101, 61, 39, // input type='
- 116, 101, 120, 116, 39, 32, 112, 108, 97, 99, 101, 104, // text' placeh
- 111, 108, 100, 101, 114, 61, 39, 78, 97, 109, 101, 39, // older='Name'
- 32, 115, 116, 121, 108, 101, 61, 34, 119, 105, 100, 116, // style="widt
- 104, 58, 32, 49, 48, 48, 37, 59, 34, 10, 32, 32, // h: 100%;".
- 32, 32, 32, 32, 32, 32, 111, 110, 105, 110, 112, 117, // oninpu
- 116, 61, 36, 123, 101, 118, 32, 61, 62, 32, 115, 101, // t=${ev => se
- 116, 85, 115, 101, 114, 40, 101, 118, 46, 116, 97, 114, // tUser(ev.tar
- 103, 101, 116, 46, 118, 97, 108, 117, 101, 41, 125, 32, // get.value)}
- 118, 97, 108, 117, 101, 61, 36, 123, 117, 115, 101, 114, // value=${user
- 125, 32, 47, 62, 10, 32, 32, 32, 32, 60, 47, 100, // } />. .
. setPass(
- 101, 118, 46, 116, 97, 114, 103, 101, 116, 46, 118, 97, // ev.target.va
- 108, 117, 101, 41, 125, 32, 118, 97, 108, 117, 101, 61, // lue)} value=
- 36, 123, 112, 97, 115, 115, 125, 10, 32, 32, 32, 32, // ${pass}.
- 32, 32, 32, 32, 111, 110, 99, 104, 97, 110, 103, 101, // onchange
- 61, 36, 123, 108, 111, 103, 105, 110, 125, 32, 47, 62, // =${login} />
- 10, 32, 32, 32, 32, 60, 47, 100, 105, 118, 62, 10, // .
.
- 32, 32, 32, 32, 60, 100, 105, 118, 32, 115, 116, 121, //
.
- 32, 32, 32, 60, 98, 117, 116, 116, 111, 110, 32, 99, // .
- 32, 32, 32, 60, 47, 100, 105, 118, 62, 10, 32, 32, //
.
- 32, 32, 60, 100, 105, 118, 32, 115, 116, 121, 108, 101, //
.
- 32, 32, 32, 32, 86, 97, 108, 105, 100, 32, 108, 111, // Valid lo
- 103, 105, 110, 115, 58, 32, 97, 100, 109, 105, 110, 58, // gins: admin:
- 112, 97, 115, 115, 48, 44, 32, 117, 115, 101, 114, 49, // pass0, user1
- 58, 112, 97, 115, 115, 49, 44, 32, 117, 115, 101, 114, // :pass1, user
- 50, 58, 112, 97, 115, 115, 50, 10, 32, 32, 32, 32, // 2:pass2.
- 60, 47, 100, 105, 118, 62, 10, 32, 32, 60, 47, 100, //
. .
`;
- 10, 125, 59, 10, 10, 10, 99, 111, 110, 115, 116, 32, // .};...const
- 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, // Configuratio
- 110, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // n = function
- 40, 112, 114, 111, 112, 115, 41, 32, 123, 10, 32, 32, // (props) {.
- 99, 111, 110, 115, 116, 32, 91, 117, 114, 108, 44, 32, // const [url,
- 115, 101, 116, 85, 114, 108, 93, 32, 61, 32, 117, 115, // setUrl] = us
- 101, 83, 116, 97, 116, 101, 40, 112, 114, 111, 112, 115, // eState(props
- 46, 99, 111, 110, 102, 105, 103, 46, 117, 114, 108, 32, // .config.url
- 124, 124, 32, 39, 39, 41, 59, 10, 32, 32, 99, 111, // || '');. co
- 110, 115, 116, 32, 91, 112, 117, 98, 44, 32, 115, 101, // nst [pub, se
- 116, 80, 117, 98, 93, 32, 61, 32, 117, 115, 101, 83, // tPub] = useS
- 116, 97, 116, 101, 40, 112, 114, 111, 112, 115, 46, 99, // tate(props.c
- 111, 110, 102, 105, 103, 46, 112, 117, 98, 32, 124, 124, // onfig.pub ||
- 32, 39, 39, 41, 59, 10, 32, 32, 99, 111, 110, 115, // '');. cons
- 116, 32, 91, 115, 117, 98, 44, 32, 115, 101, 116, 83, // t [sub, setS
- 117, 98, 93, 32, 61, 32, 117, 115, 101, 83, 116, 97, // ub] = useSta
- 116, 101, 40, 112, 114, 111, 112, 115, 46, 99, 111, 110, // te(props.con
- 102, 105, 103, 46, 115, 117, 98, 32, 124, 124, 32, 39, // fig.sub || '
- 39, 41, 59, 10, 10, 32, 32, 117, 115, 101, 69, 102, // ');.. useEf
- 102, 101, 99, 116, 40, 40, 41, 32, 61, 62, 32, 123, // fect(() => {
- 10, 32, 32, 32, 32, 115, 101, 116, 85, 114, 108, 40, // . setUrl(
- 112, 114, 111, 112, 115, 46, 99, 111, 110, 102, 105, 103, // props.config
- 46, 117, 114, 108, 41, 59, 10, 32, 32, 32, 32, 115, // .url);. s
- 101, 116, 80, 117, 98, 40, 112, 114, 111, 112, 115, 46, // etPub(props.
- 99, 111, 110, 102, 105, 103, 46, 112, 117, 98, 41, 59, // config.pub);
- 10, 32, 32, 32, 32, 115, 101, 116, 83, 117, 98, 40, // . setSub(
- 112, 114, 111, 112, 115, 46, 99, 111, 110, 102, 105, 103, // props.config
- 46, 115, 117, 98, 41, 59, 10, 32, 32, 125, 44, 32, // .sub);. },
- 91, 112, 114, 111, 112, 115, 46, 99, 111, 110, 102, 105, // [props.confi
- 103, 93, 41, 59, 10, 10, 32, 32, 99, 111, 110, 115, // g]);.. cons
- 116, 32, 117, 112, 100, 97, 116, 101, 32, 61, 32, 40, // t update = (
- 110, 97, 109, 101, 44, 32, 118, 97, 108, 41, 32, 61, // name, val) =
- 62, 32, 102, 101, 116, 99, 104, 40, 39, 47, 97, 112, // > fetch('/ap
- 105, 47, 99, 111, 110, 102, 105, 103, 47, 115, 101, 116, // i/config/set
- 39, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, // ', {.
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, //
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, //
- 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 39, // method: '
- 112, 111, 115, 116, 39, 44, 10, 32, 32, 32, 32, 32, // post',.
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, //
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, //
- 32, 32, 32, 32, 32, 98, 111, 100, 121, 58, 32, 96, // body: `
- 36, 123, 110, 97, 109, 101, 125, 61, 36, 123, 101, 110, // ${name}=${en
- 99, 111, 100, 101, 85, 82, 73, 67, 111, 109, 112, 111, // codeURICompo
- 110, 101, 110, 116, 40, 118, 97, 108, 41, 125, 96, 10, // nent(val)}`.
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, //
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, //
- 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 46, 99, // }).c
- 97, 116, 99, 104, 40, 101, 114, 114, 32, 61, 62, 32, // atch(err =>
- 101, 114, 114, 41, 59, 10, 32, 32, 99, 111, 110, 115, // err);. cons
- 116, 32, 117, 112, 100, 97, 116, 101, 117, 114, 108, 32, // t updateurl
- 61, 32, 101, 118, 32, 61, 62, 32, 117, 112, 100, 97, // = ev => upda
- 116, 101, 40, 39, 117, 114, 108, 39, 44, 32, 117, 114, // te('url', ur
- 108, 41, 59, 10, 32, 32, 99, 111, 110, 115, 116, 32, // l);. const
- 117, 112, 100, 97, 116, 101, 112, 117, 98, 32, 61, 32, // updatepub =
- 101, 118, 32, 61, 62, 32, 117, 112, 100, 97, 116, 101, // ev => update
- 40, 39, 112, 117, 98, 39, 44, 32, 112, 117, 98, 41, // ('pub', pub)
- 59, 10, 32, 32, 99, 111, 110, 115, 116, 32, 117, 112, // ;. const up
- 100, 97, 116, 101, 115, 117, 98, 32, 61, 32, 101, 118, // datesub = ev
- 32, 61, 62, 32, 117, 112, 100, 97, 116, 101, 40, 39, // => update('
- 115, 117, 98, 39, 44, 32, 115, 117, 98, 41, 59, 10, // sub', sub);.
- 10, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 108, // . console.l
- 111, 103, 40, 112, 114, 111, 112, 115, 44, 32, 91, 117, // og(props, [u
- 114, 108, 44, 32, 112, 117, 98, 44, 32, 115, 117, 98, // rl, pub, sub
- 93, 41, 59, 10, 32, 32, 114, 101, 116, 117, 114, 110, // ]);. return
- 32, 104, 116, 109, 108, 96, 10, 60, 100, 105, 118, 32, // html`.
.
.
- 32, 32, 68, 101, 118, 105, 99, 101, 32, 67, 111, 110, // Device Con
- 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 60, 47, // figuration
- 104, 51, 62, 10, 32, 32, 60, 100, 105, 118, 32, 115, // h3>.
. M
- 81, 84, 84, 32, 115, 101, 114, 118, 101, 114, 58, 60, // QTT server:<
- 47, 115, 112, 97, 110, 62, 10, 32, 32, 32, 32, 60, // /span>. <
- 105, 110, 112, 117, 116, 32, 116, 121, 112, 101, 61, 34, // input type="
- 116, 101, 120, 116, 34, 32, 115, 116, 121, 108, 101, 61, // text" style=
- 34, 102, 108, 101, 120, 58, 32, 49, 32, 49, 48, 48, // "flex: 1 100
- 37, 59, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, // %;".
- 32, 32, 118, 97, 108, 117, 101, 61, 36, 123, 117, 114, // value=${ur
- 108, 125, 32, 111, 110, 99, 104, 97, 110, 103, 101, 61, // l} onchange=
- 36, 123, 117, 112, 100, 97, 116, 101, 117, 114, 108, 125, // ${updateurl}
- 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 111, // . o
- 110, 105, 110, 112, 117, 116, 61, 36, 123, 101, 118, 32, // ninput=${ev
- 61, 62, 32, 115, 101, 116, 85, 114, 108, 40, 101, 118, // => setUrl(ev
- 46, 116, 97, 114, 103, 101, 116, 46, 118, 97, 108, 117, // .target.valu
- 101, 41, 125, 32, 47, 62, 10, 32, 32, 32, 32, 60, // e)} />. <
- 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, 115, // button class
- 61, 34, 98, 116, 110, 34, 32, 100, 105, 115, 97, 98, // ="btn" disab
- 108, 101, 100, 61, 36, 123, 33, 117, 114, 108, 125, 32, // led=${!url}
- 111, 110, 99, 108, 105, 99, 107, 61, 36, 123, 117, 112, // onclick=${up
- 100, 97, 116, 101, 117, 114, 108, 125, 10, 32, 32, 32, // dateurl}.
- 32, 32, 32, 115, 116, 121, 108, 101, 61, 34, 109, 97, // style="ma
- 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 32, 49, // rgin-left: 1
- 101, 109, 59, 32, 98, 97, 99, 107, 103, 114, 111, 117, // em; backgrou
- 110, 100, 58, 32, 35, 56, 97, 97, 59, 34, 62, 85, // nd: #8aa;">U
- 112, 100, 97, 116, 101, 60, 47, 98, 117, 116, 116, 111, // pdate.
.
- 32, 32, 60, 100, 105, 118, 32, 115, 116, 121, 108, 101, //
- 10, 32, 32, 32, 32, 60, 115, 112, 97, 110, 32, 99, // . Subs
- 99, 114, 105, 98, 101, 32, 116, 111, 112, 105, 99, 58, // cribe topic:
- 60, 47, 115, 112, 97, 110, 62, 10, 32, 32, 32, 32, // .
- 60, 105, 110, 112, 117, 116, 32, 116, 121, 112, 101, 61, //
- 115, 101, 116, 83, 117, 98, 40, 101, 118, 46, 116, 97, // setSub(ev.ta
- 114, 103, 101, 116, 46, 118, 97, 108, 117, 101, 41, 125, // rget.value)}
- 32, 47, 62, 10, 32, 32, 32, 32, 60, 98, 117, 116, // />. Upda
- 116, 101, 60, 47, 98, 117, 116, 116, 111, 110, 62, 10, // te.
- 32, 32, 60, 47, 100, 105, 118, 62, 10, 32, 32, 60, //
. <
- 100, 105, 118, 32, 115, 116, 121, 108, 101, 61, 34, 109, // div style="m
- 97, 114, 103, 105, 110, 58, 32, 48, 46, 53, 101, 109, // argin: 0.5em
- 32, 48, 59, 32, 100, 105, 115, 112, 108, 97, 121, 58, // 0; display:
- 32, 102, 108, 101, 120, 59, 34, 62, 10, 32, 32, 32, // flex;">.
- 32, 60, 115, 112, 97, 110, 32, 99, 108, 97, 115, 115, // Publish
- 116, 111, 112, 105, 99, 58, 60, 47, 115, 112, 97, 110, // topic:. se
- 116, 80, 117, 98, 40, 101, 118, 46, 116, 97, 114, 103, // tPub(ev.targ
- 101, 116, 46, 118, 97, 108, 117, 101, 41, 125, 32, 47, // et.value)} /
- 62, 10, 32, 32, 32, 32, 60, 98, 117, 116, 116, 111, // >. Update
- 60, 47, 98, 117, 116, 116, 111, 110, 62, 10, 32, 32, // .
- 60, 47, 100, 105, 118, 62, 10, 32, 32, 60, 100, 105, // .
. You c
- 97, 110, 32, 117, 115, 101, 32, 60, 97, 32, 104, 114, // an use . Hive
- 77, 81, 32, 87, 101, 98, 115, 111, 99, 107, 101, 116, // MQ Websocket
- 32, 119, 101, 98, 32, 99, 108, 105, 101, 110, 116, 60, // web client<
- 47, 97, 62, 32, 116, 111, 32, 115, 101, 110, 100, 32, // /a> to send
- 109, 101, 115, 115, 97, 103, 101, 115, 32, 116, 111, 32, // messages to
- 116, 104, 105, 115, 32, 99, 111, 110, 115, 111, 108, 101, // this console
- 46, 10, 32, 32, 60, 47, 100, 105, 118, 62, 10, 32, // .. .
- 32, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, // . T
- 104, 101, 32, 100, 101, 118, 105, 99, 101, 32, 107, 101, // he device ke
- 101, 112, 115, 32, 97, 32, 112, 101, 114, 115, 105, 115, // eps a persis
- 116, 101, 110, 116, 32, 99, 111, 110, 110, 101, 99, 116, // tent connect
- 105, 111, 110, 32, 116, 111, 32, 116, 104, 101, 32, 99, // ion to the c
- 111, 110, 102, 105, 103, 117, 114, 101, 100, 32, 77, 81, // onfigured MQ
- 84, 84, 32, 115, 101, 114, 118, 101, 114, 46, 10, 32, // TT server..
- 32, 32, 32, 67, 104, 97, 110, 103, 101, 115, 32, 116, // Changes t
- 111, 32, 116, 104, 105, 115, 32, 99, 111, 110, 102, 105, // o this confi
- 103, 117, 114, 97, 116, 105, 111, 110, 32, 97, 114, 101, // guration are
- 32, 112, 114, 111, 112, 97, 103, 97, 116, 101, 100, 32, // propagated
- 116, 111, 32, 97, 108, 108, 32, 100, 97, 115, 104, 98, // to all dashb
- 111, 97, 114, 100, 115, 58, 32, 116, 114, 121, 10, 32, // oards: try.
- 32, 32, 32, 99, 104, 97, 110, 103, 105, 110, 103, 32, // changing
- 116, 104, 101, 109, 32, 105, 110, 32, 116, 104, 105, 115, // them in this
- 32, 100, 97, 115, 104, 98, 111, 97, 114, 100, 32, 97, // dashboard a
- 110, 100, 32, 111, 98, 115, 101, 114, 118, 101, 32, 99, // nd observe c
- 104, 97, 110, 103, 101, 115, 32, 105, 110, 32, 111, 116, // hanges in ot
- 104, 101, 114, 32, 111, 112, 101, 110, 101, 100, 10, 32, // her opened.
- 32, 32, 32, 100, 97, 115, 104, 98, 111, 97, 114, 100, // dashboard
- 115, 46, 10, 32, 32, 60, 47, 100, 105, 118, 62, 60, // s..
<
- 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 109, // div class="m
- 115, 103, 34, 62, 10, 32, 32, 32, 32, 78, 111, 116, // sg">. Not
- 101, 58, 32, 97, 100, 109, 105, 110, 105, 115, 116, 114, // e: administr
- 97, 116, 111, 114, 115, 32, 99, 97, 110, 32, 115, 101, // ators can se
- 101, 32, 116, 104, 105, 115, 32, 115, 101, 99, 116, 105, // e this secti
- 111, 110, 32, 97, 110, 100, 32, 99, 97, 110, 32, 99, // on and can c
- 104, 97, 110, 103, 101, 32, 100, 101, 118, 105, 99, 101, // hange device
- 10, 32, 32, 32, 32, 99, 111, 110, 102, 105, 103, 117, // . configu
- 114, 97, 116, 105, 111, 110, 44, 32, 119, 104, 105, 108, // ration, whil
- 115, 116, 32, 117, 115, 101, 114, 115, 32, 99, 97, 110, // st users can
- 110, 111, 116, 46, 10, 32, 32, 60, 47, 100, 105, 118, // not.. .`;.}
- 59, 10, 10, 10, 99, 111, 110, 115, 116, 32, 77, 101, // ;...const Me
- 115, 115, 97, 103, 101, 32, 61, 32, 109, 32, 61, 62, // ssage = m =>
- 32, 104, 116, 109, 108, 96, 60, 100, 105, 118, 32, 115, // html`
- 10, 32, 32, 60, 115, 112, 97, 110, 32, 99, 108, 97, // . qos
- 58, 32, 36, 123, 109, 46, 109, 101, 115, 115, 97, 103, // : ${m.messag
- 101, 46, 113, 111, 115, 125, 32, 60, 47, 115, 112, 97, // e.qos} . topic: ${m.
- 109, 101, 115, 115, 97, 103, 101, 46, 116, 111, 112, 105, // message.topi
- 99, 125, 32, 60, 47, 115, 112, 97, 110, 62, 10, 32, // c} .
- 32, 60, 115, 112, 97, 110, 32, 99, 108, 97, 115, 115, // data
- 58, 32, 36, 123, 109, 46, 109, 101, 115, 115, 97, 103, // : ${m.messag
- 101, 46, 100, 97, 116, 97, 125, 60, 47, 115, 112, 97, // e.data}.
`;.
- 10, 99, 111, 110, 115, 116, 32, 77, 101, 115, 115, 97, // .const Messa
- 103, 101, 115, 32, 61, 32, 102, 117, 110, 99, 116, 105, // ges = functi
- 111, 110, 40, 112, 114, 111, 112, 115, 41, 32, 123, 10, // on(props) {.
- 32, 32, 99, 111, 110, 115, 116, 32, 91, 109, 101, 115, // const [mes
- 115, 97, 103, 101, 115, 44, 32, 115, 101, 116, 77, 101, // sages, setMe
- 115, 115, 97, 103, 101, 115, 93, 32, 61, 32, 117, 115, // ssages] = us
- 101, 83, 116, 97, 116, 101, 40, 91, 93, 41, 59, 10, // eState([]);.
- 32, 32, 99, 111, 110, 115, 116, 32, 91, 116, 120, 116, // const [txt
- 44, 32, 115, 101, 116, 84, 120, 116, 93, 32, 61, 32, // , setTxt] =
- 117, 115, 101, 83, 116, 97, 116, 101, 40, 39, 39, 41, // useState('')
- 59, 10, 10, 32, 32, 117, 115, 101, 69, 102, 102, 101, // ;.. useEffe
- 99, 116, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, // ct(() => {.
- 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 100, 32, // const id
- 61, 32, 80, 117, 98, 83, 117, 98, 46, 115, 117, 98, // = PubSub.sub
- 115, 99, 114, 105, 98, 101, 40, 102, 117, 110, 99, 116, // scribe(funct
- 105, 111, 110, 40, 109, 115, 103, 41, 32, 123, 10, 32, // ion(msg) {.
- 32, 32, 32, 32, 32, 105, 102, 32, 40, 109, 115, 103, // if (msg
- 46, 110, 97, 109, 101, 32, 61, 61, 32, 39, 109, 101, // .name == 'me
- 115, 115, 97, 103, 101, 39, 41, 32, 115, 101, 116, 77, // ssage') setM
- 101, 115, 115, 97, 103, 101, 115, 40, 120, 32, 61, 62, // essages(x =>
- 32, 120, 46, 99, 111, 110, 99, 97, 116, 40, 91, 109, // x.concat([m
- 115, 103, 46, 100, 97, 116, 97, 93, 41, 41, 59, 10, // sg.data]));.
- 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, // });.
- 114, 101, 116, 117, 114, 110, 32, 80, 117, 98, 83, 117, // return PubSu
- 98, 46, 117, 110, 115, 117, 98, 115, 99, 114, 105, 98, // b.unsubscrib
- 101, 40, 105, 100, 41, 59, 10, 32, 32, 125, 44, 32, // e(id);. },
- 91, 93, 41, 59, 10, 10, 32, 32, 99, 111, 110, 115, // []);.. cons
- 116, 32, 115, 101, 110, 100, 109, 101, 115, 115, 97, 103, // t sendmessag
- 101, 32, 61, 32, 101, 118, 32, 61, 62, 32, 102, 101, // e = ev => fe
- 116, 99, 104, 40, 39, 47, 97, 112, 105, 47, 109, 101, // tch('/api/me
- 115, 115, 97, 103, 101, 47, 115, 101, 110, 100, 39, 44, // ssage/send',
- 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, // {.
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, //
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, // met
- 104, 111, 100, 58, 32, 39, 112, 111, 115, 116, 39, 44, // hod: 'post',
- 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // .
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, //
- 32, 32, 32, 32, 32, 32, 32, 98, 111, 100, 121, 58, // body:
- 32, 96, 109, 101, 115, 115, 97, 103, 101, 61, 36, 123, // `message=${
- 101, 110, 99, 111, 100, 101, 85, 82, 73, 67, 111, 109, // encodeURICom
- 112, 111, 110, 101, 110, 116, 40, 116, 120, 116, 41, 125, // ponent(txt)}
- 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // `.
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, //
- 32, 32, 32, 32, 32, 32, 125, 41, 46, 116, 104, 101, // }).the
- 110, 40, 114, 32, 61, 62, 32, 115, 101, 116, 84, 120, // n(r => setTx
- 116, 40, 39, 39, 41, 41, 59, 10, 32, 32, 99, 111, // t(''));. co
- 110, 115, 116, 32, 99, 111, 110, 110, 115, 116, 97, 116, // nst connstat
- 117, 115, 32, 61, 32, 112, 114, 111, 112, 115, 46, 99, // us = props.c
- 111, 110, 102, 105, 103, 46, 99, 111, 110, 110, 101, 99, // onfig.connec
- 116, 101, 100, 32, 63, 32, 39, 99, 111, 110, 110, 101, // ted ? 'conne
- 99, 116, 101, 100, 39, 32, 58, 32, 39, 100, 105, 115, // cted' : 'dis
- 99, 111, 110, 110, 101, 99, 116, 101, 100, 39, 59, 10, // connected';.
- 32, 32, 114, 101, 116, 117, 114, 110, 32, 104, 116, 109, // return htm
- 108, 96, 10, 60, 100, 105, 118, 32, 99, 108, 97, 115, // l`.
- 10, 32, 32, 60, 104, 51, 32, 115, 116, 121, 108, 101, // .
MQTT me
- 115, 115, 97, 103, 101, 115, 60, 47, 104, 51, 62, 10, // ssages
.
- 32, 32, 60, 100, 105, 118, 62, 10, 32, 32, 32, 32, //
.
- 77, 81, 84, 84, 32, 115, 101, 114, 118, 101, 114, 32, // MQTT server
- 115, 116, 97, 116, 117, 115, 58, 32, 60, 98, 62, 36, // status: $
- 123, 99, 111, 110, 110, 115, 116, 97, 116, 117, 115, 125, // {connstatus}
- 60, 47, 98, 62, 10, 32, 32, 60, 47, 100, 105, 118, // .
.
.
- 36, 123, 109, 101, 115, 115, 97, 103, 101, 115, 46, 109, // ${messages.m
- 97, 112, 40, 109, 101, 115, 115, 97, 103, 101, 32, 61, // ap(message =
- 62, 32, 104, 40, 77, 101, 115, 115, 97, 103, 101, 44, // > h(Message,
- 32, 123, 109, 101, 115, 115, 97, 103, 101, 125, 41, 41, // {message}))
- 125, 10, 32, 32, 60, 47, 100, 105, 118, 62, 10, 32, // }.
.
- 32, 60, 100, 105, 118, 32, 115, 116, 121, 108, 101, 61, //
.
- 32, 32, 60, 115, 112, 97, 110, 32, 99, 108, 97, 115, // Publish
- 32, 109, 101, 115, 115, 97, 103, 101, 58, 60, 47, 115, // message:. set
- 84, 120, 116, 40, 101, 118, 46, 116, 97, 114, 103, 101, // Txt(ev.targe
- 116, 46, 118, 97, 108, 117, 101, 41, 125, 32, 47, 62, // t.value)} />
- 10, 32, 32, 60, 47, 100, 105, 118, 62, 10, 32, 32, // .
.
- 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, //
. Th
- 101, 32, 109, 101, 115, 115, 97, 103, 101, 32, 103, 101, // e message ge
- 116, 115, 32, 112, 97, 115, 115, 101, 100, 32, 116, 111, // ts passed to
- 32, 116, 104, 101, 32, 100, 101, 118, 105, 99, 101, 32, // the device
- 118, 105, 97, 32, 82, 69, 83, 84, 46, 32, 84, 104, // via REST. Th
- 101, 110, 32, 116, 104, 101, 32, 100, 101, 118, 105, 99, // en the devic
- 101, 32, 115, 101, 110, 100, 115, 32, 105, 116, 32, 116, // e sends it t
- 111, 10, 32, 32, 32, 32, 116, 104, 101, 32, 77, 81, // o. the MQ
- 84, 84, 32, 115, 101, 114, 118, 101, 114, 32, 111, 118, // TT server ov
- 101, 114, 32, 77, 81, 84, 84, 46, 32, 65, 108, 108, // er MQTT. All
- 32, 77, 81, 84, 84, 32, 109, 101, 115, 115, 97, 103, // MQTT messag
- 101, 115, 32, 111, 110, 32, 97, 32, 115, 117, 98, 115, // es on a subs
- 99, 114, 105, 98, 101, 100, 32, 116, 111, 112, 105, 99, // cribed topic
- 10, 32, 32, 32, 32, 114, 101, 99, 101, 105, 118, 101, // . receive
- 100, 32, 98, 121, 32, 116, 104, 101, 32, 100, 101, 118, // d by the dev
- 105, 99, 101, 44, 32, 97, 114, 101, 32, 112, 114, 111, // ice, are pro
- 112, 97, 103, 97, 116, 101, 100, 32, 116, 111, 32, 116, // pagated to t
- 104, 105, 115, 32, 100, 97, 115, 104, 98, 111, 97, 114, // his dashboar
- 100, 32, 118, 105, 97, 32, 47, 97, 112, 105, 47, 119, // d via /api/w
- 97, 116, 99, 104, 46, 10, 32, 32, 60, 47, 100, 105, // atch.. .
`;.
- 125, 59, 10, 10, 47, 47, 32, 69, 120, 112, 101, 99, // };..// Expec
- 116, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, // ted argument
- 115, 58, 10, 47, 47, 32, 100, 97, 116, 97, 58, 32, // s:.// data:
- 116, 105, 109, 101, 115, 101, 114, 105, 101, 115, 44, 32, // timeseries,
- 101, 46, 103, 46, 32, 91, 32, 91, 49, 54, 53, 52, // e.g. [ [1654
- 51, 54, 49, 51, 53, 50, 44, 32, 49, 57, 93, 44, // 361352, 19],
- 32, 91, 49, 54, 53, 52, 51, 54, 49, 51, 53, 51, // [1654361353
- 44, 32, 49, 56, 93, 44, 32, 46, 46, 46, 32, 93, // , 18], ... ]
- 10, 47, 47, 32, 119, 105, 100, 116, 104, 44, 32, 104, // .// width, h
- 101, 105, 103, 104, 116, 44, 32, 121, 116, 105, 99, 107, // eight, ytick
- 115, 44, 32, 120, 116, 105, 99, 107, 115, 44, 32, 121, // s, xticks, y
- 109, 105, 110, 44, 32, 121, 109, 97, 120, 44, 32, 120, // min, ymax, x
- 109, 105, 110, 44, 32, 120, 109, 97, 120, 10, 99, 111, // min, xmax.co
- 110, 115, 116, 32, 83, 86, 71, 32, 61, 32, 102, 117, // nst SVG = fu
- 110, 99, 116, 105, 111, 110, 40, 112, 114, 111, 112, 115, // nction(props
- 41, 32, 123, 10, 32, 32, 47, 47, 32, 32, 32, 32, // ) {. //
- 32, 32, 32, 32, 32, 32, 32, 32, 119, 10, 32, 32, // w.
- 47, 47, 32, 32, 32, 43, 45, 45, 45, 45, 45, 45, // // +------
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, // ------------
- 45, 45, 45, 43, 10, 32, 32, 47, 47, 32, 32, 32, // ---+. //
- 124, 32, 32, 32, 32, 32, 32, 32, 32, 104, 49, 32, // | h1
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 124, 10, // |.
- 32, 32, 47, 47, 32, 32, 32, 124, 32, 32, 32, 32, // // |
- 43, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, // +-----------
- 43, 32, 32, 32, 32, 124, 10, 32, 32, 47, 47, 32, // + |. //
- 32, 32, 124, 32, 32, 32, 32, 124, 32, 32, 32, 32, // | |
- 32, 32, 32, 32, 32, 32, 32, 124, 32, 32, 32, 32, // |
- 124, 32, 32, 104, 10, 32, 32, 47, 47, 32, 32, 32, // | h. //
- 124, 32, 119, 49, 32, 124, 32, 32, 32, 32, 32, 32, // | w1 |
- 32, 32, 32, 32, 32, 124, 32, 119, 50, 32, 124, 10, // | w2 |.
- 32, 32, 47, 47, 32, 32, 32, 124, 32, 32, 32, 32, // // |
- 43, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, // +-----------
- 43, 32, 32, 32, 32, 124, 10, 32, 32, 47, 47, 32, // + |. //
- 32, 32, 124, 32, 32, 32, 32, 32, 32, 32, 32, 32, // |
- 104, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // h2
- 124, 10, 32, 32, 47, 47, 32, 32, 32, 43, 45, 45, // |. // +--
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, // ------------
- 45, 45, 45, 45, 45, 45, 45, 43, 10, 32, 32, 47, // -------+. /
- 47, 10, 32, 32, 108, 101, 116, 32, 119, 32, 61, 32, // /. let w =
- 112, 114, 111, 112, 115, 46, 119, 105, 100, 116, 104, 44, // props.width,
- 32, 104, 32, 61, 32, 112, 114, 111, 112, 115, 46, 104, // h = props.h
- 101, 105, 103, 104, 116, 44, 32, 119, 49, 32, 61, 32, // eight, w1 =
- 51, 48, 44, 32, 119, 50, 32, 61, 32, 48, 44, 32, // 30, w2 = 0,
- 104, 49, 32, 61, 32, 56, 44, 32, 104, 50, 32, 61, // h1 = 8, h2 =
- 32, 49, 56, 59, 10, 32, 32, 108, 101, 116, 32, 121, // 18;. let y
- 116, 105, 99, 107, 115, 32, 61, 32, 112, 114, 111, 112, // ticks = prop
- 115, 46, 121, 116, 105, 99, 107, 115, 32, 124, 124, 32, // s.yticks ||
- 52, 44, 32, 120, 116, 105, 99, 107, 115, 32, 61, 32, // 4, xticks =
- 112, 114, 111, 112, 115, 46, 120, 116, 105, 99, 107, 115, // props.xticks
- 32, 124, 124, 32, 53, 59, 10, 32, 32, 108, 101, 116, // || 5;. let
- 32, 100, 97, 116, 97, 32, 61, 32, 112, 114, 111, 112, // data = prop
- 115, 46, 100, 97, 116, 97, 32, 124, 124, 32, 91, 93, // s.data || []
- 59, 10, 32, 32, 108, 101, 116, 32, 121, 109, 105, 110, // ;. let ymin
- 32, 61, 32, 112, 114, 111, 112, 115, 46, 121, 109, 105, // = props.ymi
- 110, 32, 124, 124, 32, 48, 59, 10, 32, 32, 108, 101, // n || 0;. le
- 116, 32, 121, 109, 97, 120, 32, 61, 32, 112, 114, 111, // t ymax = pro
- 112, 115, 46, 121, 109, 97, 120, 32, 124, 124, 32, 77, // ps.ymax || M
- 97, 116, 104, 46, 109, 97, 120, 46, 97, 112, 112, 108, // ath.max.appl
- 121, 40, 110, 117, 108, 108, 44, 32, 100, 97, 116, 97, // y(null, data
- 46, 109, 97, 112, 40, 112, 32, 61, 62, 32, 112, 91, // .map(p => p[
- 49, 93, 41, 41, 59, 10, 32, 32, 108, 101, 116, 32, // 1]));. let
- 120, 109, 105, 110, 32, 61, 32, 112, 114, 111, 112, 115, // xmin = props
- 46, 120, 109, 105, 110, 32, 124, 124, 32, 77, 97, 116, // .xmin || Mat
- 104, 46, 109, 105, 110, 46, 97, 112, 112, 108, 121, 40, // h.min.apply(
- 110, 117, 108, 108, 44, 32, 100, 97, 116, 97, 46, 109, // null, data.m
- 97, 112, 40, 112, 32, 61, 62, 32, 112, 91, 48, 93, // ap(p => p[0]
- 41, 41, 59, 10, 32, 32, 108, 101, 116, 32, 120, 109, // ));. let xm
- 97, 120, 32, 61, 32, 112, 114, 111, 112, 115, 46, 120, // ax = props.x
- 109, 97, 120, 32, 124, 124, 32, 77, 97, 116, 104, 46, // max || Math.
- 109, 97, 120, 46, 97, 112, 112, 108, 121, 40, 110, 117, // max.apply(nu
- 108, 108, 44, 32, 100, 97, 116, 97, 46, 109, 97, 112, // ll, data.map
- 40, 112, 32, 61, 62, 32, 112, 91, 48, 93, 41, 41, // (p => p[0]))
- 59, 10, 10, 32, 32, 47, 47, 32, 89, 45, 97, 120, // ;.. // Y-ax
- 105, 115, 32, 116, 105, 99, 107, 32, 108, 105, 110, 101, // is tick line
- 115, 32, 97, 110, 100, 32, 108, 97, 98, 101, 108, 115, // s and labels
- 10, 32, 32, 108, 101, 116, 32, 121, 116, 97, 32, 61, // . let yta =
- 32, 40, 110, 101, 119, 32, 65, 114, 114, 97, 121, 40, // (new Array(
- 121, 116, 105, 99, 107, 115, 32, 43, 32, 49, 41, 41, // yticks + 1))
- 46, 102, 105, 108, 108, 40, 48, 41, 46, 109, 97, 112, // .fill(0).map
- 40, 40, 95, 44, 32, 105, 41, 32, 61, 62, 32, 105, // ((_, i) => i
- 41, 59, 32, 32, 47, 47, 32, 105, 110, 100, 105, 99, // ); // indic
- 101, 115, 10, 32, 32, 108, 101, 116, 32, 121, 116, 105, // es. let yti
- 32, 61, 32, 105, 32, 61, 62, 32, 104, 32, 45, 32, // = i => h -
- 104, 50, 32, 45, 32, 40, 104, 32, 45, 32, 104, 49, // h2 - (h - h1
- 32, 45, 32, 104, 50, 41, 32, 42, 32, 105, 32, 47, // - h2) * i /
- 32, 121, 116, 105, 99, 107, 115, 59, 32, 32, 32, 32, // yticks;
- 32, 32, 32, 32, 32, 32, 47, 47, 32, 105, 110, 100, // // ind
- 101, 120, 39, 115, 32, 89, 10, 32, 32, 108, 101, 116, // ex's Y. let
- 32, 121, 116, 118, 32, 61, 32, 105, 32, 61, 62, 32, // ytv = i =>
- 40, 121, 109, 97, 120, 32, 45, 32, 121, 109, 105, 110, // (ymax - ymin
- 41, 32, 42, 32, 105, 32, 47, 32, 121, 116, 105, 99, // ) * i / ytic
- 107, 115, 59, 10, 32, 32, 108, 101, 116, 32, 121, 116, // ks;. let yt
- 108, 32, 61, 32, 121, 32, 61, 62, 32, 104, 116, 109, // l = y => htm
- 108, 96, 60, 108, 105, 110, 101, 32, 120, 49, 61, 36, // l`
`;.
- 108, 101, 116, 32, 121, 116, 116, 32, 61, 32, 40, 121, // let ytt = (y
- 44, 32, 118, 41, 32, 61, 62, 32, 104, 116, 109, 108, // , v) => html
- 96, 60, 116, 101, 120, 116, 32, 120, 61, 48, 32, 121, // `
- 36, 123, 118, 125, 60, 47, 116, 101, 120, 116, 62, 96, // ${v}`
- 59, 10, 10, 32, 32, 47, 47, 32, 88, 45, 97, 120, // ;.. // X-ax
- 105, 115, 32, 116, 105, 99, 107, 32, 108, 105, 110, 101, // is tick line
- 115, 32, 97, 110, 100, 32, 108, 97, 98, 101, 108, 115, // s and labels
- 10, 32, 32, 108, 101, 116, 32, 100, 97, 116, 101, 102, // . let datef
- 109, 116, 32, 61, 32, 117, 110, 105, 120, 32, 61, 62, // mt = unix =>
- 32, 40, 110, 101, 119, 32, 68, 97, 116, 101, 40, 117, // (new Date(u
- 110, 105, 120, 32, 42, 32, 49, 48, 48, 48, 41, 41, // nix * 1000))
- 46, 116, 111, 73, 83, 79, 83, 116, 114, 105, 110, 103, // .toISOString
- 40, 41, 46, 115, 117, 98, 115, 116, 114, 40, 49, 52, // ().substr(14
- 44, 32, 53, 41, 59, 10, 32, 32, 108, 101, 116, 32, // , 5);. let
- 120, 116, 97, 32, 61, 32, 40, 110, 101, 119, 32, 65, // xta = (new A
- 114, 114, 97, 121, 40, 120, 116, 105, 99, 107, 115, 32, // rray(xticks
- 43, 32, 49, 41, 41, 46, 102, 105, 108, 108, 40, 48, // + 1)).fill(0
- 41, 46, 109, 97, 112, 40, 40, 95, 44, 32, 105, 41, // ).map((_, i)
- 32, 61, 62, 32, 105, 41, 59, 32, 32, 47, 47, 32, // => i); //
- 105, 110, 100, 105, 99, 101, 115, 10, 32, 32, 108, 101, // indices. le
- 116, 32, 120, 116, 105, 32, 61, 32, 105, 32, 61, 62, // t xti = i =>
- 32, 119, 49, 32, 43, 32, 40, 119, 32, 45, 32, 119, // w1 + (w - w
- 49, 32, 45, 32, 119, 50, 41, 32, 42, 32, 105, 32, // 1 - w2) * i
- 47, 32, 120, 116, 105, 99, 107, 115, 59, 32, 32, 32, // / xticks;
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 47, // /
- 47, 32, 105, 110, 100, 101, 120, 39, 115, 32, 88, 10, // / index's X.
- 32, 32, 108, 101, 116, 32, 120, 116, 118, 32, 61, 32, // let xtv =
- 105, 32, 61, 62, 32, 100, 97, 116, 101, 102, 109, 116, // i => datefmt
- 40, 120, 109, 105, 110, 32, 43, 32, 40, 120, 109, 97, // (xmin + (xma
- 120, 32, 45, 32, 120, 109, 105, 110, 41, 32, 42, 32, // x - xmin) *
- 105, 32, 47, 32, 120, 116, 105, 99, 107, 115, 41, 59, // i / xticks);
- 10, 32, 32, 108, 101, 116, 32, 120, 116, 108, 32, 61, // . let xtl =
- 32, 120, 32, 61, 62, 32, 104, 116, 109, 108, 96, 60, // x => html`<
- 112, 97, 116, 104, 32, 100, 61, 34, 77, 32, 36, 123, // path d="M ${
- 120, 125, 44, 36, 123, 104, 49, 125, 32, 76, 32, 36, // x},${h1} L $
- 123, 120, 125, 44, 36, 123, 104, 32, 45, 32, 104, 50, // {x},${h - h2
- 125, 34, 32, 99, 108, 97, 115, 115, 61, 34, 116, 105, // }" class="ti
- 99, 107, 34, 47, 62, 96, 59, 10, 32, 32, 108, 101, // ck"/>`;. le
- 116, 32, 120, 116, 116, 32, 61, 32, 40, 120, 44, 32, // t xtt = (x,
- 118, 41, 32, 61, 62, 10, 32, 32, 32, 32, 32, 32, // v) =>.
- 104, 116, 109, 108, 96, 60, 116, 101, 120, 116, 32, 120, // html`
- 36, 123, 118, 125, 60, 47, 116, 101, 120, 116, 62, 96, // ${v}`
- 59, 10, 10, 32, 32, 47, 47, 32, 84, 114, 97, 110, // ;.. // Tran
- 115, 102, 111, 114, 109, 32, 100, 97, 116, 97, 32, 112, // sform data p
- 111, 105, 110, 116, 115, 32, 97, 114, 114, 97, 121, 32, // oints array
- 105, 110, 116, 111, 32, 99, 111, 111, 114, 100, 105, 110, // into coordin
- 97, 116, 101, 10, 32, 32, 108, 101, 116, 32, 100, 120, // ate. let dx
- 32, 61, 32, 118, 32, 61, 62, 32, 119, 49, 32, 43, // = v => w1 +
- 32, 40, 118, 32, 45, 32, 120, 109, 105, 110, 41, 32, // (v - xmin)
- 47, 32, 40, 40, 120, 109, 97, 120, 32, 45, 32, 120, // / ((xmax - x
- 109, 105, 110, 41, 32, 124, 124, 32, 49, 41, 32, 42, // min) || 1) *
- 32, 40, 119, 32, 45, 32, 119, 49, 32, 45, 32, 119, // (w - w1 - w
- 50, 41, 59, 10, 32, 32, 108, 101, 116, 32, 100, 121, // 2);. let dy
- 32, 61, 32, 118, 32, 61, 62, 32, 104, 32, 45, 32, // = v => h -
- 104, 50, 32, 45, 32, 40, 118, 32, 45, 32, 121, 109, // h2 - (v - ym
- 105, 110, 41, 32, 47, 32, 40, 40, 121, 109, 97, 120, // in) / ((ymax
- 32, 45, 32, 121, 109, 105, 110, 41, 32, 124, 124, 32, // - ymin) ||
- 49, 41, 32, 42, 32, 40, 104, 32, 45, 32, 104, 49, // 1) * (h - h1
- 32, 45, 32, 104, 50, 41, 59, 10, 32, 32, 108, 101, // - h2);. le
- 116, 32, 100, 100, 32, 61, 32, 100, 97, 116, 97, 46, // t dd = data.
- 109, 97, 112, 40, 112, 32, 61, 62, 32, 91, 77, 97, // map(p => [Ma
- 116, 104, 46, 114, 111, 117, 110, 100, 40, 100, 120, 40, // th.round(dx(
- 112, 91, 48, 93, 41, 41, 44, 32, 77, 97, 116, 104, // p[0])), Math
- 46, 114, 111, 117, 110, 100, 40, 100, 121, 40, 112, 91, // .round(dy(p[
- 49, 93, 41, 41, 93, 41, 59, 10, 32, 32, 108, 101, // 1]))]);. le
- 116, 32, 100, 100, 108, 32, 61, 32, 100, 100, 46, 108, // t ddl = dd.l
- 101, 110, 103, 116, 104, 59, 10, 32, 32, 47, 47, 32, // ength;. //
- 65, 110, 100, 32, 112, 108, 111, 116, 32, 116, 104, 101, // And plot the
- 32, 100, 97, 116, 97, 32, 97, 115, 32, 60, 112, 97, // data as
element.
- 32, 32, 108, 101, 116, 32, 98, 101, 103, 105, 110, 48, // let begin0
- 32, 61, 32, 100, 100, 108, 32, 63, 32, 96, 77, 32, // = ddl ? `M
- 36, 123, 100, 100, 91, 48, 93, 91, 48, 93, 125, 44, // ${dd[0][0]},
- 36, 123, 100, 100, 91, 48, 93, 91, 49, 93, 125, 96, // ${dd[0][1]}`
- 32, 58, 32, 96, 77, 32, 48, 44, 48, 96, 59, 10, // : `M 0,0`;.
- 32, 32, 108, 101, 116, 32, 98, 101, 103, 105, 110, 32, // let begin
- 61, 32, 96, 77, 32, 36, 123, 119, 49, 125, 44, 36, // = `M ${w1},$
- 123, 104, 32, 45, 32, 104, 50, 125, 96, 59, 32, 32, // {h - h2}`;
- 47, 47, 32, 73, 110, 105, 116, 105, 97, 108, 32, 112, // // Initial p
- 111, 105, 110, 116, 10, 32, 32, 108, 101, 116, 32, 101, // oint. let e
- 110, 100, 32, 61, 32, 100, 100, 108, 32, 63, 32, 96, // nd = ddl ? `
- 76, 32, 36, 123, 100, 100, 91, 100, 100, 108, 32, 45, // L ${dd[ddl -
- 32, 49, 93, 91, 48, 93, 125, 44, 36, 123, 104, 32, // 1][0]},${h
- 45, 32, 104, 50, 125, 96, 32, 58, 32, 96, 76, 32, // - h2}` : `L
- 36, 123, 119, 49, 125, 44, 36, 123, 104, 32, 45, 32, // ${w1},${h -
- 104, 50, 125, 96, 59, 10, 32, 32, 108, 101, 116, 32, // h2}`;. let
- 115, 101, 114, 105, 101, 115, 32, 61, 32, 100, 100, 108, // series = ddl
- 32, 63, 32, 100, 100, 46, 109, 97, 112, 40, 112, 32, // ? dd.map(p
- 61, 62, 32, 96, 76, 32, 36, 123, 112, 91, 48, 93, // => `L ${p[0]
- 125, 32, 36, 123, 112, 91, 49, 93, 125, 96, 41, 32, // } ${p[1]}`)
- 58, 32, 91, 93, 59, 10, 10, 32, 32, 114, 101, 116, // : [];.. ret
- 117, 114, 110, 32, 104, 116, 109, 108, 96, 10, 60, 115, // urn html`.. .
- 32, 36, 123, 121, 116, 97, 46, 109, 97, 112, 40, 105, // ${yta.map(i
- 32, 61, 62, 32, 121, 116, 108, 40, 121, 116, 105, 40, // => ytl(yti(
- 105, 41, 41, 41, 125, 10, 32, 32, 36, 123, 121, 116, // i)))}. ${yt
- 97, 46, 109, 97, 112, 40, 105, 32, 61, 62, 32, 121, // a.map(i => y
- 116, 116, 40, 121, 116, 105, 40, 105, 41, 44, 32, 121, // tt(yti(i), y
- 116, 118, 40, 105, 41, 41, 41, 125, 10, 32, 32, 36, // tv(i)))}. $
- 123, 120, 116, 97, 46, 109, 97, 112, 40, 105, 32, 61, // {xta.map(i =
- 62, 32, 120, 116, 108, 40, 120, 116, 105, 40, 105, 41, // > xtl(xti(i)
- 41, 41, 125, 10, 32, 32, 36, 123, 100, 97, 116, 97, // ))}. ${data
- 46, 108, 101, 110, 103, 116, 104, 32, 63, 32, 120, 116, // .length ? xt
- 97, 46, 109, 97, 112, 40, 105, 32, 61, 62, 32, 120, // a.map(i => x
- 116, 116, 40, 120, 116, 105, 40, 105, 41, 44, 32, 120, // tt(xti(i), x
- 116, 118, 40, 105, 41, 41, 41, 32, 58, 32, 39, 39, // tv(i))) : ''
- 125, 10, 32, 32, 60, 112, 97, 116, 104, 32, 100, 61, // }. .
- 60, 112, 97, 116, 104, 32, 100, 61, 34, 36, 123, 98, // .
- 115, 118, 103, 62, 96, 59, 10, 125, 59, 10, 10, 10, // svg>`;.};...
- 99, 111, 110, 115, 116, 32, 67, 104, 97, 114, 116, 32, // const Chart
- 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 112, // = function(p
- 114, 111, 112, 115, 41, 32, 123, 10, 32, 32, 99, 111, // rops) {. co
- 110, 115, 116, 32, 91, 100, 97, 116, 97, 44, 32, 115, // nst [data, s
- 101, 116, 68, 97, 116, 97, 93, 32, 61, 32, 117, 115, // etData] = us
- 101, 83, 116, 97, 116, 101, 40, 91, 93, 41, 59, 10, // eState([]);.
- 32, 32, 117, 115, 101, 69, 102, 102, 101, 99, 116, 40, // useEffect(
- 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, // () => {.
- 99, 111, 110, 115, 116, 32, 105, 100, 32, 61, 32, 80, // const id = P
- 117, 98, 83, 117, 98, 46, 115, 117, 98, 115, 99, 114, // ubSub.subscr
- 105, 98, 101, 40, 102, 117, 110, 99, 116, 105, 111, 110, // ibe(function
- 40, 109, 115, 103, 41, 32, 123, 10, 32, 32, 32, 32, // (msg) {.
- 32, 32, 105, 102, 32, 40, 109, 115, 103, 46, 110, 97, // if (msg.na
- 109, 101, 32, 33, 61, 32, 39, 109, 101, 116, 114, 105, // me != 'metri
- 99, 115, 39, 41, 32, 114, 101, 116, 117, 114, 110, 59, // cs') return;
- 10, 32, 32, 32, 32, 32, 32, 115, 101, 116, 68, 97, // . setDa
- 116, 97, 40, 120, 32, 61, 62, 32, 120, 46, 99, 111, // ta(x => x.co
- 110, 99, 97, 116, 40, 91, 109, 115, 103, 46, 100, 97, // ncat([msg.da
- 116, 97, 93, 41, 46, 115, 112, 108, 105, 99, 101, 40, // ta]).splice(
- 45, 77, 97, 120, 77, 101, 116, 114, 105, 99, 115, 68, // -MaxMetricsD
- 97, 116, 97, 80, 111, 105, 110, 116, 115, 41, 41, 59, // ataPoints));
- 10, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, // . });.
- 32, 114, 101, 116, 117, 114, 110, 32, 80, 117, 98, 83, // return PubS
- 117, 98, 46, 117, 110, 115, 117, 98, 115, 99, 114, 105, // ub.unsubscri
- 98, 101, 40, 105, 100, 41, 59, 10, 32, 32, 125, 44, // be(id);. },
- 32, 91, 93, 41, 59, 10, 10, 32, 32, 108, 101, 116, // []);.. let
- 32, 120, 109, 97, 120, 32, 61, 32, 48, 44, 32, 109, // xmax = 0, m
- 105, 115, 115, 105, 110, 103, 32, 61, 32, 77, 97, 120, // issing = Max
- 77, 101, 116, 114, 105, 99, 115, 68, 97, 116, 97, 80, // MetricsDataP
- 111, 105, 110, 116, 115, 32, 45, 32, 100, 97, 116, 97, // oints - data
- 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 105, // .length;. i
- 102, 32, 40, 109, 105, 115, 115, 105, 110, 103, 32, 62, // f (missing >
- 32, 48, 41, 32, 120, 109, 97, 120, 32, 61, 32, 77, // 0) xmax = M
- 97, 116, 104, 46, 114, 111, 117, 110, 100, 40, 68, 97, // ath.round(Da
- 116, 101, 46, 110, 111, 119, 40, 41, 32, 47, 32, 49, // te.now() / 1
- 48, 48, 48, 41, 32, 43, 32, 109, 105, 115, 115, 105, // 000) + missi
- 110, 103, 59, 10, 32, 32, 114, 101, 116, 117, 114, 110, // ng;. return
- 32, 104, 116, 109, 108, 96, 10, 60, 100, 105, 118, 32, // html`..
Data C
- 104, 97, 114, 116, 60, 47, 104, 51, 62, 10, 32, 32, // hart
.
- 60, 100, 105, 118, 32, 115, 116, 121, 108, 101, 61, 34, //
. <
- 36, 123, 83, 86, 71, 125, 32, 104, 101, 105, 103, 104, // ${SVG} heigh
- 116, 61, 50, 52, 48, 32, 119, 105, 100, 116, 104, 61, // t=240 width=
- 54, 48, 48, 32, 121, 109, 105, 110, 61, 48, 32, 121, // 600 ymin=0 y
- 109, 97, 120, 61, 50, 48, 32, 120, 109, 97, 120, 61, // max=20 xmax=
- 36, 123, 120, 109, 97, 120, 125, 32, 100, 97, 116, 97, // ${xmax} data
- 61, 36, 123, 100, 97, 116, 97, 125, 32, 47, 62, 10, // =${data} />.
- 32, 32, 60, 47, 100, 105, 118, 62, 10, 32, 32, 60, //
. <
- 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 109, // div class="m
- 115, 103, 34, 62, 10, 32, 32, 32, 32, 84, 104, 105, // sg">. Thi
- 115, 32, 99, 104, 97, 114, 116, 32, 112, 108, 111, 116, // s chart plot
- 115, 32, 108, 105, 118, 101, 32, 115, 101, 110, 115, 111, // s live senso
- 114, 32, 100, 97, 116, 97, 44, 32, 115, 101, 110, 116, // r data, sent
- 32, 98, 121, 32, 116, 104, 101, 32, 100, 101, 118, 105, // by the devi
- 99, 101, 32, 118, 105, 97, 32, 47, 97, 112, 105, 47, // ce via /api/
- 119, 97, 116, 99, 104, 46, 10, 32, 32, 60, 47, 100, // watch.. .
`;
- 10, 125, 59, 10, 10, 99, 111, 110, 115, 116, 32, 65, // .};..const A
- 112, 112, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, // pp = functio
- 110, 40, 112, 114, 111, 112, 115, 41, 32, 123, 10, 32, // n(props) {.
- 32, 99, 111, 110, 115, 116, 32, 91, 117, 115, 101, 114, // const [user
- 44, 32, 115, 101, 116, 85, 115, 101, 114, 93, 32, 61, // , setUser] =
- 32, 117, 115, 101, 83, 116, 97, 116, 101, 40, 39, 39, // useState(''
- 41, 59, 10, 32, 32, 99, 111, 110, 115, 116, 32, 91, // );. const [
- 99, 111, 110, 102, 105, 103, 44, 32, 115, 101, 116, 67, // config, setC
- 111, 110, 102, 105, 103, 93, 32, 61, 32, 117, 115, 101, // onfig] = use
- 83, 116, 97, 116, 101, 40, 123, 125, 41, 59, 10, 10, // State({});..
- 32, 32, 99, 111, 110, 115, 116, 32, 103, 101, 116, 99, // const getc
- 111, 110, 102, 105, 103, 32, 61, 32, 40, 41, 32, 61, // onfig = () =
- 62, 10, 32, 32, 32, 32, 32, 32, 102, 101, 116, 99, // >. fetc
- 104, 40, 39, 47, 97, 112, 105, 47, 99, 111, 110, 102, // h('/api/conf
- 105, 103, 47, 103, 101, 116, 39, 44, 32, 123, 104, 101, // ig/get', {he
- 97, 100, 101, 114, 115, 58, 32, 123, 65, 117, 116, 104, // aders: {Auth
- 111, 114, 105, 122, 97, 116, 105, 111, 110, 58, 32, 39, // orization: '
- 39, 125, 125, 41, 10, 32, 32, 32, 32, 32, 32, 32, // '}}).
- 32, 32, 32, 46, 116, 104, 101, 110, 40, 114, 32, 61, // .then(r =
- 62, 32, 114, 46, 106, 115, 111, 110, 40, 41, 41, 10, // > r.json()).
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 116, // .t
- 104, 101, 110, 40, 114, 32, 61, 62, 32, 115, 101, 116, // hen(r => set
- 67, 111, 110, 102, 105, 103, 40, 114, 41, 41, 10, 32, // Config(r)).
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 99, 97, // .ca
- 116, 99, 104, 40, 101, 114, 114, 32, 61, 62, 32, 99, // tch(err => c
- 111, 110, 115, 111, 108, 101, 46, 108, 111, 103, 40, 101, // onsole.log(e
- 114, 114, 41, 41, 59, 10, 10, 32, 32, 99, 111, 110, // rr));.. con
- 115, 116, 32, 108, 111, 103, 105, 110, 32, 61, 32, 102, // st login = f
- 117, 110, 99, 116, 105, 111, 110, 40, 117, 41, 32, 123, // unction(u) {
- 10, 32, 32, 32, 32, 100, 111, 99, 117, 109, 101, 110, // . documen
- 116, 46, 99, 111, 111, 107, 105, 101, 32, 61, 32, 96, // t.cookie = `
- 97, 99, 99, 101, 115, 115, 95, 116, 111, 107, 101, 110, // access_token
- 61, 36, 123, 117, 46, 116, 111, 107, 101, 110, 125, 59, // =${u.token};
- 112, 97, 116, 104, 61, 47, 59, 109, 97, 120, 45, 97, // path=/;max-a
- 103, 101, 61, 51, 54, 48, 48, 96, 59, 10, 32, 32, // ge=3600`;.
- 32, 32, 115, 101, 116, 85, 115, 101, 114, 40, 117, 46, // setUser(u.
- 117, 115, 101, 114, 41, 59, 10, 32, 32, 32, 32, 114, // user);. r
- 101, 116, 117, 114, 110, 32, 103, 101, 116, 99, 111, 110, // eturn getcon
- 102, 105, 103, 40, 41, 59, 10, 32, 32, 125, 59, 10, // fig();. };.
- 10, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 103, // . const log
- 111, 117, 116, 32, 61, 32, 101, 118, 32, 61, 62, 32, // out = ev =>
- 123, 10, 32, 32, 32, 32, 100, 111, 99, 117, 109, 101, // {. docume
- 110, 116, 46, 99, 111, 111, 107, 105, 101, 32, 61, 32, // nt.cookie =
- 96, 97, 99, 99, 101, 115, 115, 95, 116, 111, 107, 101, // `access_toke
- 110, 61, 59, 112, 97, 116, 104, 61, 47, 59, 109, 97, // n=;path=/;ma
- 120, 45, 97, 103, 101, 61, 48, 96, 59, 10, 32, 32, // x-age=0`;.
- 32, 32, 115, 101, 116, 85, 115, 101, 114, 40, 39, 39, // setUser(''
- 41, 59, 10, 32, 32, 125, 59, 10, 10, 32, 32, 47, // );. };.. /
- 47, 32, 87, 97, 116, 99, 104, 32, 102, 111, 114, 32, // / Watch for
- 110, 111, 116, 105, 102, 105, 99, 97, 116, 105, 111, 110, // notification
- 115, 46, 32, 65, 115, 32, 115, 111, 111, 110, 32, 97, // s. As soon a
- 115, 32, 97, 32, 110, 111, 116, 105, 102, 105, 99, 97, // s a notifica
- 116, 105, 111, 110, 32, 97, 114, 114, 105, 118, 101, 115, // tion arrives
- 44, 32, 112, 97, 115, 115, 32, 105, 116, 32, 111, 110, // , pass it on
- 10, 32, 32, 47, 47, 32, 116, 111, 32, 97, 108, 108, // . // to all
- 32, 115, 117, 98, 115, 99, 114, 105, 98, 101, 100, 32, // subscribed
- 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 10, 32, // components.
- 32, 99, 111, 110, 115, 116, 32, 119, 97, 116, 99, 104, // const watch
- 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, // = function(
- 41, 32, 123, 10, 32, 32, 32, 32, 118, 97, 114, 32, // ) {. var
- 108, 32, 61, 32, 119, 105, 110, 100, 111, 119, 46, 108, // l = window.l
- 111, 99, 97, 116, 105, 111, 110, 44, 32, 112, 114, 111, // ocation, pro
- 116, 111, 32, 61, 32, 108, 46, 112, 114, 111, 116, 111, // to = l.proto
- 99, 111, 108, 46, 114, 101, 112, 108, 97, 99, 101, 40, // col.replace(
- 39, 104, 116, 116, 112, 39, 44, 32, 39, 119, 115, 39, // 'http', 'ws'
- 41, 59, 10, 32, 32, 32, 32, 118, 97, 114, 32, 116, // );. var t
- 105, 100, 44, 32, 119, 115, 85, 82, 73, 32, 61, 32, // id, wsURI =
- 112, 114, 111, 116, 111, 32, 43, 32, 39, 47, 47, 39, // proto + '//'
- 32, 43, 32, 108, 46, 104, 111, 115, 116, 32, 43, 32, // + l.host +
- 39, 47, 97, 112, 105, 47, 119, 97, 116, 99, 104, 39, // '/api/watch'
- 10, 32, 32, 32, 32, 118, 97, 114, 32, 114, 101, 99, // . var rec
- 111, 110, 110, 101, 99, 116, 32, 61, 32, 102, 117, 110, // onnect = fun
- 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, // ction() {.
- 32, 32, 32, 32, 118, 97, 114, 32, 119, 115, 32, 61, // var ws =
- 32, 110, 101, 119, 32, 87, 101, 98, 83, 111, 99, 107, // new WebSock
- 101, 116, 40, 119, 115, 85, 82, 73, 41, 59, 10, 32, // et(wsURI);.
- 32, 32, 32, 32, 32, 119, 115, 46, 111, 110, 111, 112, // ws.onop
- 101, 110, 32, 61, 32, 40, 41, 32, 61, 62, 32, 99, // en = () => c
- 111, 110, 115, 111, 108, 101, 46, 108, 111, 103, 40, 39, // onsole.log('
- 119, 115, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, // ws connected
- 39, 41, 59, 10, 32, 32, 32, 32, 32, 32, 119, 115, // ');. ws
- 46, 111, 110, 109, 101, 115, 115, 97, 103, 101, 32, 61, // .onmessage =
- 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 118, // function(ev
- 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, // ) {.
- 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, // try {.
- 32, 32, 32, 32, 118, 97, 114, 32, 109, 115, 103, 32, // var msg
- 61, 32, 74, 83, 79, 78, 46, 112, 97, 114, 115, 101, // = JSON.parse
- 40, 101, 118, 46, 100, 97, 116, 97, 41, 59, 10, 32, // (ev.data);.
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 117, 98, // Pub
- 83, 117, 98, 46, 112, 117, 98, 108, 105, 115, 104, 40, // Sub.publish(
- 109, 115, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, // msg);.
- 32, 32, 32, 32, 105, 102, 32, 40, 109, 115, 103, 46, // if (msg.
- 110, 97, 109, 101, 32, 33, 61, 32, 39, 109, 101, 116, // name != 'met
- 114, 105, 99, 115, 39, 41, 32, 99, 111, 110, 115, 111, // rics') conso
- 108, 101, 46, 108, 111, 103, 40, 39, 119, 115, 45, 62, // le.log('ws->
- 39, 44, 32, 109, 115, 103, 41, 59, 10, 32, 32, 32, // ', msg);.
- 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, // } catch
- 32, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, // (e) {.
- 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, // console
- 46, 108, 111, 103, 40, 39, 73, 110, 118, 97, 108, 105, // .log('Invali
- 100, 32, 119, 115, 32, 102, 114, 97, 109, 101, 58, 39, // d ws frame:'
- 44, 32, 101, 118, 46, 100, 97, 116, 97, 41, 59, 32, // , ev.data);
- 32, 47, 47, 32, 101, 115, 108, 105, 110, 116, 45, 100, // // eslint-d
- 105, 115, 97, 98, 108, 101, 45, 108, 105, 110, 101, 10, // isable-line.
- 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, // }.
- 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, // };.
- 32, 119, 115, 46, 111, 110, 99, 108, 111, 115, 101, 32, // ws.onclose
- 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, // = function()
- 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, // {. c
- 108, 101, 97, 114, 84, 105, 109, 101, 111, 117, 116, 40, // learTimeout(
- 116, 105, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, // tid);.
- 32, 32, 116, 105, 100, 32, 61, 32, 115, 101, 116, 84, // tid = setT
- 105, 109, 101, 111, 117, 116, 40, 114, 101, 99, 111, 110, // imeout(recon
- 110, 101, 99, 116, 44, 32, 49, 48, 48, 48, 41, 59, // nect, 1000);
- 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, // . con
- 115, 111, 108, 101, 46, 108, 111, 103, 40, 39, 119, 115, // sole.log('ws
- 32, 100, 105, 115, 99, 111, 110, 110, 101, 99, 116, 101, // disconnecte
- 100, 39, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, // d');. }
- 59, 10, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, // ;. };.
- 32, 114, 101, 99, 111, 110, 110, 101, 99, 116, 40, 41, // reconnect()
- 59, 10, 32, 32, 125, 59, 10, 10, 32, 32, 117, 115, // ;. };.. us
- 101, 69, 102, 102, 101, 99, 116, 40, 40, 41, 32, 61, // eEffect(() =
- 62, 32, 123, 10, 32, 32, 32, 32, 47, 47, 32, 67, // > {. // C
- 97, 108, 108, 101, 100, 32, 111, 110, 99, 101, 32, 97, // alled once a
- 116, 32, 105, 110, 105, 116, 32, 116, 105, 109, 101, 10, // t init time.
- 32, 32, 32, 32, 80, 117, 98, 83, 117, 98, 46, 115, // PubSub.s
- 117, 98, 115, 99, 114, 105, 98, 101, 40, 109, 115, 103, // ubscribe(msg
- 32, 61, 62, 32, 109, 115, 103, 46, 110, 97, 109, 101, // => msg.name
- 32, 61, 61, 32, 39, 99, 111, 110, 102, 105, 103, 39, // == 'config'
- 32, 38, 38, 32, 103, 101, 116, 99, 111, 110, 102, 105, // && getconfi
- 103, 40, 41, 41, 59, 10, 32, 32, 32, 32, 102, 101, // g());. fe
- 116, 99, 104, 40, 39, 47, 97, 112, 105, 47, 108, 111, // tch('/api/lo
- 103, 105, 110, 39, 44, 32, 123, 104, 101, 97, 100, 101, // gin', {heade
- 114, 115, 58, 32, 123, 65, 117, 116, 104, 111, 114, 105, // rs: {Authori
- 122, 97, 116, 105, 111, 110, 58, 32, 39, 39, 125, 125, // zation: ''}}
- 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 116, // ). .t
- 104, 101, 110, 40, 114, 32, 61, 62, 32, 114, 46, 106, // hen(r => r.j
- 115, 111, 110, 40, 41, 41, 10, 32, 32, 32, 32, 32, // son()).
- 32, 32, 32, 46, 116, 104, 101, 110, 40, 114, 32, 61, // .then(r =
- 62, 32, 108, 111, 103, 105, 110, 40, 114, 41, 41, 10, // > login(r)).
- 32, 32, 32, 32, 32, 32, 32, 32, 46, 116, 104, 101, // .the
- 110, 40, 119, 97, 116, 99, 104, 41, 10, 32, 32, 32, // n(watch).
- 32, 32, 32, 32, 32, 46, 99, 97, 116, 99, 104, 40, // .catch(
- 101, 114, 114, 32, 61, 62, 32, 115, 101, 116, 85, 115, // err => setUs
- 101, 114, 40, 39, 39, 41, 41, 59, 10, 32, 32, 125, // er(''));. }
- 44, 32, 91, 93, 41, 59, 10, 10, 32, 32, 105, 102, // , []);.. if
- 32, 40, 33, 117, 115, 101, 114, 41, 32, 114, 101, 116, // (!user) ret
- 117, 114, 110, 32, 104, 116, 109, 108, 96, 60, 36, 123, // urn html`<${
- 76, 111, 103, 105, 110, 125, 32, 108, 111, 103, 105, 110, // Login} login
- 61, 36, 123, 108, 111, 103, 105, 110, 125, 32, 47, 62, // =${login} />
- 96, 59, 10, 10, 32, 32, 114, 101, 116, 117, 114, 110, // `;.. return
- 32, 104, 116, 109, 108, 96, 10, 60, 36, 123, 78, 97, // html`.<${Na
- 118, 125, 32, 117, 115, 101, 114, 61, 36, 123, 117, 115, // v} user=${us
- 101, 114, 125, 32, 108, 111, 103, 111, 117, 116, 61, 36, // er} logout=$
- 123, 108, 111, 103, 111, 117, 116, 125, 32, 47, 62, 10, // {logout} />.
- 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, // .
- 32, 32, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, //
.
- 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, //
<
- 36, 123, 72, 101, 114, 111, 125, 32, 47, 62, 60, 47, // ${Hero} />
- 100, 105, 118, 62, 10, 32, 32, 32, 32, 60, 100, 105, // div>.
<${C
- 104, 97, 114, 116, 125, 32, 47, 62, 60, 47, 100, 105, // hart} />.
.
- 32, 36, 123, 117, 115, 101, 114, 32, 61, 61, 32, 39, // ${user == '
- 97, 100, 109, 105, 110, 39, 32, 38, 38, 32, 104, 40, // admin' && h(
- 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, // Configuratio
- 110, 44, 32, 123, 99, 111, 110, 102, 105, 103, 125, 41, // n, {config})
- 125, 10, 32, 32, 32, 32, 60, 47, 100, 105, 118, 62, // }.
- 10, 32, 32, 32, 32, 60, 100, 105, 118, 32, 99, 108, // .
<${Messa
- 103, 101, 115, 125, 32, 99, 111, 110, 102, 105, 103, 61, // ges} config=
- 36, 123, 99, 111, 110, 102, 105, 103, 125, 32, 47, 62, // ${config} />
- 60, 47, 100, 105, 118, 62, 10, 32, 32, 60, 47, 100, //
. .
`;
- 10, 125, 59, 10, 10, 119, 105, 110, 100, 111, 119, 46, // .};..window.
- 111, 110, 108, 111, 97, 100, 32, 61, 32, 40, 41, 32, // onload = ()
- 61, 62, 32, 114, 101, 110, 100, 101, 114, 40, 104, 40, // => render(h(
- 65, 112, 112, 41, 44, 32, 100, 111, 99, 117, 109, 101, // App), docume
- 110, 116, 46, 98, 111, 100, 121, 41, 59, 10, 0 // nt.body);.
+ 60, 33, 68, 79, 67, 84, 89, 80, 69, 32, 104, 116, // .. <
+ 104, 101, 97, 100, 62, 10, 32, 32, 32, 32, 60, 116, // head>.
Device
+ 68, 97, 115, 104, 98, 111, 97, 114, 100, 60, 47, 116, // Dashboard.
.
+ 32, 32, 32, 60, 109, 101, 116, 97, 32, 104, 116, 116, //
.
+ 32, 32, 32, 60, 109, 101, 116, 97, 32, 110, 97, 109, //
.
.
+ 10, 32, 32, 60, 98, 111, 100, 121, 62, 60, 47, 98, // . .
.
+ 10, 0 // .
};
static const unsigned char v2[] = {
- 118, 97, 114, 32, 101, 44, 110, 44, 95, 44, 116, 44, // var e,n,_,t,
- 111, 44, 114, 44, 117, 44, 108, 61, 123, 125, 44, 105, // o,r,u,l={},i
- 61, 91, 93, 44, 99, 61, 47, 97, 99, 105, 116, 124, // =[],c=/acit|
- 101, 120, 40, 63, 58, 115, 124, 103, 124, 110, 124, 112, // ex(?:s|g|n|p
- 124, 36, 41, 124, 114, 112, 104, 124, 103, 114, 105, 100, // |$)|rph|grid
- 124, 111, 119, 115, 124, 109, 110, 99, 124, 110, 116, 119, // |ows|mnc|ntw
- 124, 105, 110, 101, 91, 99, 104, 93, 124, 122, 111, 111, // |ine[ch]|zoo
- 124, 94, 111, 114, 100, 124, 105, 116, 101, 114, 97, 47, // |^ord|itera/
- 105, 59, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, // i;function s
- 40, 101, 44, 110, 41, 123, 102, 111, 114, 40, 118, 97, // (e,n){for(va
- 114, 32, 95, 32, 105, 110, 32, 110, 41, 101, 91, 95, // r _ in n)e[_
- 93, 61, 110, 91, 95, 93, 59, 114, 101, 116, 117, 114, // ]=n[_];retur
- 110, 32, 101, 125, 102, 117, 110, 99, 116, 105, 111, 110, // n e}function
- 32, 102, 40, 101, 41, 123, 118, 97, 114, 32, 110, 61, // f(e){var n=
- 101, 46, 112, 97, 114, 101, 110, 116, 78, 111, 100, 101, // e.parentNode
- 59, 110, 38, 38, 110, 46, 114, 101, 109, 111, 118, 101, // ;n&&n.remove
- 67, 104, 105, 108, 100, 40, 101, 41, 125, 102, 117, 110, // Child(e)}fun
- 99, 116, 105, 111, 110, 32, 97, 40, 110, 44, 95, 44, // ction a(n,_,
- 116, 41, 123, 118, 97, 114, 32, 111, 44, 114, 44, 117, // t){var o,r,u
- 44, 108, 61, 123, 125, 59, 102, 111, 114, 40, 117, 32, // ,l={};for(u
- 105, 110, 32, 95, 41, 34, 107, 101, 121, 34, 61, 61, // in _)"key"==
- 117, 63, 111, 61, 95, 91, 117, 93, 58, 34, 114, 101, // u?o=_[u]:"re
- 102, 34, 61, 61, 117, 63, 114, 61, 95, 91, 117, 93, // f"==u?r=_[u]
- 58, 108, 91, 117, 93, 61, 95, 91, 117, 93, 59, 105, // :l[u]=_[u];i
- 102, 40, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, // f(arguments.
- 108, 101, 110, 103, 116, 104, 62, 50, 38, 38, 40, 108, // length>2&&(l
- 46, 99, 104, 105, 108, 100, 114, 101, 110, 61, 97, 114, // .children=ar
- 103, 117, 109, 101, 110, 116, 115, 46, 108, 101, 110, 103, // guments.leng
- 116, 104, 62, 51, 63, 101, 46, 99, 97, 108, 108, 40, // th>3?e.call(
- 97, 114, 103, 117, 109, 101, 110, 116, 115, 44, 50, 41, // arguments,2)
- 58, 116, 41, 44, 34, 102, 117, 110, 99, 116, 105, 111, // :t),"functio
- 110, 34, 61, 61, 116, 121, 112, 101, 111, 102, 32, 110, // n"==typeof n
- 38, 38, 110, 117, 108, 108, 33, 61, 110, 46, 100, 101, // &&null!=n.de
- 102, 97, 117, 108, 116, 80, 114, 111, 112, 115, 41, 102, // faultProps)f
- 111, 114, 40, 117, 32, 105, 110, 32, 110, 46, 100, 101, // or(u in n.de
- 102, 97, 117, 108, 116, 80, 114, 111, 112, 115, 41, 118, // faultProps)v
- 111, 105, 100, 32, 48, 61, 61, 61, 108, 91, 117, 93, // oid 0===l[u]
- 38, 38, 40, 108, 91, 117, 93, 61, 110, 46, 100, 101, // &&(l[u]=n.de
- 102, 97, 117, 108, 116, 80, 114, 111, 112, 115, 91, 117, // faultProps[u
- 93, 41, 59, 114, 101, 116, 117, 114, 110, 32, 112, 40, // ]);return p(
- 110, 44, 108, 44, 111, 44, 114, 44, 110, 117, 108, 108, // n,l,o,r,null
- 41, 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 112, // )}function p
- 40, 101, 44, 116, 44, 111, 44, 114, 44, 117, 41, 123, // (e,t,o,r,u){
- 118, 97, 114, 32, 108, 61, 123, 116, 121, 112, 101, 58, // var l={type:
- 101, 44, 112, 114, 111, 112, 115, 58, 116, 44, 107, 101, // e,props:t,ke
- 121, 58, 111, 44, 114, 101, 102, 58, 114, 44, 95, 95, // y:o,ref:r,__
- 107, 58, 110, 117, 108, 108, 44, 95, 95, 58, 110, 117, // k:null,__:nu
- 108, 108, 44, 95, 95, 98, 58, 48, 44, 95, 95, 101, // ll,__b:0,__e
- 58, 110, 117, 108, 108, 44, 95, 95, 100, 58, 118, 111, // :null,__d:vo
- 105, 100, 32, 48, 44, 95, 95, 99, 58, 110, 117, 108, // id 0,__c:nul
- 108, 44, 95, 95, 104, 58, 110, 117, 108, 108, 44, 99, // l,__h:null,c
- 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 58, 118, // onstructor:v
- 111, 105, 100, 32, 48, 44, 95, 95, 118, 58, 110, 117, // oid 0,__v:nu
- 108, 108, 61, 61, 117, 63, 43, 43, 95, 58, 117, 125, // ll==u?++_:u}
- 59, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, // ;return null
- 33, 61, 110, 46, 118, 110, 111, 100, 101, 38, 38, 110, // !=n.vnode&&n
- 46, 118, 110, 111, 100, 101, 40, 108, 41, 44, 108, 125, // .vnode(l),l}
- 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 40, 101, // function h(e
- 41, 123, 114, 101, 116, 117, 114, 110, 32, 101, 46, 99, // ){return e.c
- 104, 105, 108, 100, 114, 101, 110, 125, 102, 117, 110, 99, // hildren}func
- 116, 105, 111, 110, 32, 100, 40, 101, 44, 110, 41, 123, // tion d(e,n){
- 116, 104, 105, 115, 46, 112, 114, 111, 112, 115, 61, 101, // this.props=e
- 44, 116, 104, 105, 115, 46, 99, 111, 110, 116, 101, 120, // ,this.contex
- 116, 61, 110, 125, 102, 117, 110, 99, 116, 105, 111, 110, // t=n}function
- 32, 118, 40, 101, 44, 110, 41, 123, 105, 102, 40, 110, // v(e,n){if(n
- 117, 108, 108, 61, 61, 110, 41, 114, 101, 116, 117, 114, // ull==n)retur
- 110, 32, 101, 46, 95, 95, 63, 118, 40, 101, 46, 95, // n e.__?v(e._
- 95, 44, 101, 46, 95, 95, 46, 95, 95, 107, 46, 105, // _,e.__.__k.i
- 110, 100, 101, 120, 79, 102, 40, 101, 41, 43, 49, 41, // ndexOf(e)+1)
- 58, 110, 117, 108, 108, 59, 102, 111, 114, 40, 118, 97, // :null;for(va
- 114, 32, 95, 59, 110, 60, 101, 46, 95, 95, 107, 46, // r _;n0?p(m.
- 116, 121, 112, 101, 44, 109, 46, 112, 114, 111, 112, 115, // type,m.props
- 44, 109, 46, 107, 101, 121, 44, 110, 117, 108, 108, 44, // ,m.key,null,
- 109, 46, 95, 95, 118, 41, 58, 109, 41, 41, 123, 105, // m.__v):m)){i
- 102, 40, 109, 46, 95, 95, 61, 95, 44, 109, 46, 95, // f(m.__=_,m._
- 95, 98, 61, 95, 46, 95, 95, 98, 43, 49, 44, 110, // _b=_.__b+1,n
- 117, 108, 108, 61, 61, 61, 40, 121, 61, 72, 91, 97, // ull===(y=H[a
- 93, 41, 124, 124, 121, 38, 38, 109, 46, 107, 101, 121, // ])||y&&m.key
- 61, 61, 121, 46, 107, 101, 121, 38, 38, 109, 46, 116, // ==y.key&&m.t
- 121, 112, 101, 61, 61, 61, 121, 46, 116, 121, 112, 101, // ype===y.type
- 41, 72, 91, 97, 93, 61, 118, 111, 105, 100, 32, 48, // )H[a]=void 0
- 59, 101, 108, 115, 101, 32, 102, 111, 114, 40, 100, 61, // ;else for(d=
- 48, 59, 100, 60, 69, 59, 100, 43, 43, 41, 123, 105, // 0;d=t.__.len
- 103, 116, 104, 38, 38, 116, 46, 95, 95, 46, 112, 117, // gth&&t.__.pu
- 115, 104, 40, 123, 125, 41, 44, 116, 46, 95, 95, 91, // sh({}),t.__[
- 101, 93, 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, // e]}function
- 71, 40, 101, 41, 123, 114, 101, 116, 117, 114, 110, 32, // G(e){return
- 82, 61, 49, 44, 122, 40, 105, 101, 44, 101, 41, 125, // R=1,z(ie,e)}
- 102, 117, 110, 99, 116, 105, 111, 110, 32, 122, 40, 101, // function z(e
- 44, 110, 44, 95, 41, 123, 118, 97, 114, 32, 116, 61, // ,n,_){var t=
- 106, 40, 76, 43, 43, 44, 50, 41, 59, 114, 101, 116, // j(L++,2);ret
- 117, 114, 110, 32, 116, 46, 116, 61, 101, 44, 116, 46, // urn t.t=e,t.
- 95, 95, 99, 124, 124, 40, 116, 46, 95, 95, 61, 91, // __c||(t.__=[
- 95, 63, 95, 40, 110, 41, 58, 105, 101, 40, 118, 111, // _?_(n):ie(vo
- 105, 100, 32, 48, 44, 110, 41, 44, 102, 117, 110, 99, // id 0,n),func
- 116, 105, 111, 110, 40, 101, 41, 123, 118, 97, 114, 32, // tion(e){var
- 110, 61, 116, 46, 116, 40, 116, 46, 95, 95, 91, 48, // n=t.t(t.__[0
- 93, 44, 101, 41, 59, 116, 46, 95, 95, 91, 48, 93, // ],e);t.__[0]
- 33, 61, 61, 110, 38, 38, 40, 116, 46, 95, 95, 61, // !==n&&(t.__=
- 91, 110, 44, 116, 46, 95, 95, 91, 49, 93, 93, 44, // [n,t.__[1]],
- 116, 46, 95, 95, 99, 46, 115, 101, 116, 83, 116, 97, // t.__c.setSta
- 116, 101, 40, 123, 125, 41, 41, 125, 93, 44, 116, 46, // te({}))}],t.
- 95, 95, 99, 61, 78, 41, 44, 116, 46, 95, 95, 125, // __c=N),t.__}
- 102, 117, 110, 99, 116, 105, 111, 110, 32, 74, 40, 101, // function J(e
- 44, 95, 41, 123, 118, 97, 114, 32, 116, 61, 106, 40, // ,_){var t=j(
- 76, 43, 43, 44, 51, 41, 59, 33, 110, 46, 95, 95, // L++,3);!n.__
- 115, 38, 38, 108, 101, 40, 116, 46, 95, 95, 72, 44, // s&&le(t.__H,
- 95, 41, 38, 38, 40, 116, 46, 95, 95, 61, 101, 44, // _)&&(t.__=e,
- 116, 46, 95, 95, 72, 61, 95, 44, 78, 46, 95, 95, // t.__H=_,N.__
- 72, 46, 95, 95, 104, 46, 112, 117, 115, 104, 40, 116, // H.__h.push(t
- 41, 41, 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, // ))}function
- 75, 40, 101, 44, 95, 41, 123, 118, 97, 114, 32, 116, // K(e,_){var t
- 61, 106, 40, 76, 43, 43, 44, 52, 41, 59, 33, 110, // =j(L++,4);!n
- 46, 95, 95, 115, 38, 38, 108, 101, 40, 116, 46, 95, // .__s&&le(t._
- 95, 72, 44, 95, 41, 38, 38, 40, 116, 46, 95, 95, // _H,_)&&(t.__
- 61, 101, 44, 116, 46, 95, 95, 72, 61, 95, 44, 78, // =e,t.__H=_,N
- 46, 95, 95, 104, 46, 112, 117, 115, 104, 40, 116, 41, // .__h.push(t)
- 41, 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 81, // )}function Q
- 40, 101, 41, 123, 114, 101, 116, 117, 114, 110, 32, 82, // (e){return R
- 61, 53, 44, 89, 40, 102, 117, 110, 99, 116, 105, 111, // =5,Y(functio
- 110, 40, 41, 123, 114, 101, 116, 117, 114, 110, 123, 99, // n(){return{c
- 117, 114, 114, 101, 110, 116, 58, 101, 125, 125, 44, 91, // urrent:e}},[
- 93, 41, 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, // ])}function
- 88, 40, 101, 44, 110, 44, 95, 41, 123, 82, 61, 54, // X(e,n,_){R=6
- 44, 75, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, // ,K(function(
- 41, 123, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, // ){"function"
- 61, 61, 116, 121, 112, 101, 111, 102, 32, 101, 63, 101, // ==typeof e?e
- 40, 110, 40, 41, 41, 58, 101, 38, 38, 40, 101, 46, // (n()):e&&(e.
- 99, 117, 114, 114, 101, 110, 116, 61, 110, 40, 41, 41, // current=n())
- 125, 44, 110, 117, 108, 108, 61, 61, 95, 63, 95, 58, // },null==_?_:
- 95, 46, 99, 111, 110, 99, 97, 116, 40, 101, 41, 41, // _.concat(e))
- 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 89, 40, // }function Y(
- 101, 44, 110, 41, 123, 118, 97, 114, 32, 95, 61, 106, // e,n){var _=j
- 40, 76, 43, 43, 44, 55, 41, 59, 114, 101, 116, 117, // (L++,7);retu
- 114, 110, 32, 108, 101, 40, 95, 46, 95, 95, 72, 44, // rn le(_.__H,
- 110, 41, 38, 38, 40, 95, 46, 95, 95, 61, 101, 40, // n)&&(_.__=e(
- 41, 44, 95, 46, 95, 95, 72, 61, 110, 44, 95, 46, // ),_.__H=n,_.
- 95, 95, 104, 61, 101, 41, 44, 95, 46, 95, 95, 125, // __h=e),_.__}
- 102, 117, 110, 99, 116, 105, 111, 110, 32, 90, 40, 101, // function Z(e
- 44, 110, 41, 123, 114, 101, 116, 117, 114, 110, 32, 82, // ,n){return R
- 61, 56, 44, 89, 40, 102, 117, 110, 99, 116, 105, 111, // =8,Y(functio
- 110, 40, 41, 123, 114, 101, 116, 117, 114, 110, 32, 101, // n(){return e
- 125, 44, 110, 41, 125, 102, 117, 110, 99, 116, 105, 111, // },n)}functio
- 110, 32, 101, 101, 40, 101, 41, 123, 118, 97, 114, 32, // n ee(e){var
- 110, 61, 78, 46, 99, 111, 110, 116, 101, 120, 116, 91, // n=N.context[
- 101, 46, 95, 95, 99, 93, 44, 95, 61, 106, 40, 76, // e.__c],_=j(L
- 43, 43, 44, 57, 41, 59, 114, 101, 116, 117, 114, 110, // ++,9);return
- 32, 95, 46, 99, 61, 101, 44, 110, 63, 40, 110, 117, // _.c=e,n?(nu
- 108, 108, 61, 61, 95, 46, 95, 95, 38, 38, 40, 95, // ll==_.__&&(_
- 46, 95, 95, 61, 33, 48, 44, 110, 46, 115, 117, 98, // .__=!0,n.sub
- 40, 78, 41, 41, 44, 110, 46, 112, 114, 111, 112, 115, // (N)),n.props
- 46, 118, 97, 108, 117, 101, 41, 58, 101, 46, 95, 95, // .value):e.__
- 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 110, 101, // }function ne
- 40, 101, 44, 95, 41, 123, 110, 46, 117, 115, 101, 68, // (e,_){n.useD
- 101, 98, 117, 103, 86, 97, 108, 117, 101, 38, 38, 110, // ebugValue&&n
- 46, 117, 115, 101, 68, 101, 98, 117, 103, 86, 97, 108, // .useDebugVal
- 117, 101, 40, 95, 63, 95, 40, 101, 41, 58, 101, 41, // ue(_?_(e):e)
- 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 95, 101, // }function _e
- 40, 101, 41, 123, 118, 97, 114, 32, 110, 61, 106, 40, // (e){var n=j(
- 76, 43, 43, 44, 49, 48, 41, 44, 95, 61, 71, 40, // L++,10),_=G(
- 41, 59, 114, 101, 116, 117, 114, 110, 32, 110, 46, 95, // );return n._
- 95, 61, 101, 44, 78, 46, 99, 111, 109, 112, 111, 110, // _=e,N.compon
- 101, 110, 116, 68, 105, 100, 67, 97, 116, 99, 104, 124, // entDidCatch|
- 124, 40, 78, 46, 99, 111, 109, 112, 111, 110, 101, 110, // |(N.componen
- 116, 68, 105, 100, 67, 97, 116, 99, 104, 61, 102, 117, // tDidCatch=fu
- 110, 99, 116, 105, 111, 110, 40, 101, 41, 123, 110, 46, // nction(e){n.
- 95, 95, 38, 38, 110, 46, 95, 95, 40, 101, 41, 44, // __&&n.__(e),
- 95, 91, 49, 93, 40, 101, 41, 125, 41, 44, 91, 95, // _[1](e)}),[_
- 91, 48, 93, 44, 102, 117, 110, 99, 116, 105, 111, 110, // [0],function
- 40, 41, 123, 95, 91, 49, 93, 40, 118, 111, 105, 100, // (){_[1](void
- 32, 48, 41, 125, 93, 125, 102, 117, 110, 99, 116, 105, // 0)}]}functi
- 111, 110, 32, 116, 101, 40, 41, 123, 73, 46, 102, 111, // on te(){I.fo
- 114, 69, 97, 99, 104, 40, 102, 117, 110, 99, 116, 105, // rEach(functi
- 111, 110, 40, 101, 41, 123, 105, 102, 40, 101, 46, 95, // on(e){if(e._
- 95, 80, 41, 116, 114, 121, 123, 101, 46, 95, 95, 72, // _P)try{e.__H
- 46, 95, 95, 104, 46, 102, 111, 114, 69, 97, 99, 104, // .__h.forEach
- 40, 114, 101, 41, 44, 101, 46, 95, 95, 72, 46, 95, // (re),e.__H._
- 95, 104, 46, 102, 111, 114, 69, 97, 99, 104, 40, 117, // _h.forEach(u
- 101, 41, 44, 101, 46, 95, 95, 72, 46, 95, 95, 104, // e),e.__H.__h
- 61, 91, 93, 125, 99, 97, 116, 99, 104, 40, 95, 41, // =[]}catch(_)
- 123, 101, 46, 95, 95, 72, 46, 95, 95, 104, 61, 91, // {e.__H.__h=[
- 93, 44, 110, 46, 95, 95, 101, 40, 95, 44, 101, 46, // ],n.__e(_,e.
- 95, 95, 118, 41, 125, 125, 41, 44, 73, 61, 91, 93, // __v)}}),I=[]
- 125, 110, 46, 95, 95, 98, 61, 102, 117, 110, 99, 116, // }n.__b=funct
- 105, 111, 110, 40, 101, 41, 123, 78, 61, 110, 117, 108, // ion(e){N=nul
- 108, 44, 79, 38, 38, 79, 40, 101, 41, 125, 44, 110, // l,O&&O(e)},n
- 46, 95, 95, 114, 61, 102, 117, 110, 99, 116, 105, 111, // .__r=functio
- 110, 40, 101, 41, 123, 86, 38, 38, 86, 40, 101, 41, // n(e){V&&V(e)
- 44, 76, 61, 48, 59, 118, 97, 114, 32, 110, 61, 40, // ,L=0;var n=(
- 78, 61, 101, 46, 95, 95, 99, 41, 46, 95, 95, 72, // N=e.__c).__H
- 59, 110, 38, 38, 40, 110, 46, 95, 95, 104, 46, 102, // ;n&&(n.__h.f
- 111, 114, 69, 97, 99, 104, 40, 114, 101, 41, 44, 110, // orEach(re),n
- 46, 95, 95, 104, 46, 102, 111, 114, 69, 97, 99, 104, // .__h.forEach
- 40, 117, 101, 41, 44, 110, 46, 95, 95, 104, 61, 91, // (ue),n.__h=[
- 93, 41, 125, 44, 110, 46, 100, 105, 102, 102, 101, 100, // ])},n.diffed
- 61, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, // =function(e)
- 123, 113, 38, 38, 113, 40, 101, 41, 59, 118, 97, 114, // {q&&q(e);var
- 32, 95, 61, 101, 46, 95, 95, 99, 59, 95, 38, 38, // _=e.__c;_&&
- 95, 46, 95, 95, 72, 38, 38, 95, 46, 95, 95, 72, // _.__H&&_.__H
- 46, 95, 95, 104, 46, 108, 101, 110, 103, 116, 104, 38, // .__h.length&
- 38, 40, 49, 33, 61, 61, 73, 46, 112, 117, 115, 104, // &(1!==I.push
- 40, 95, 41, 38, 38, 87, 61, 61, 61, 110, 46, 114, // (_)&&W===n.r
- 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, // equestAnimat
- 105, 111, 110, 70, 114, 97, 109, 101, 124, 124, 40, 40, // ionFrame||((
- 87, 61, 110, 46, 114, 101, 113, 117, 101, 115, 116, 65, // W=n.requestA
- 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, // nimationFram
- 101, 41, 124, 124, 102, 117, 110, 99, 116, 105, 111, 110, // e)||function
- 40, 101, 41, 123, 118, 97, 114, 32, 110, 44, 95, 61, // (e){var n,_=
- 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 123, 99, // function(){c
- 108, 101, 97, 114, 84, 105, 109, 101, 111, 117, 116, 40, // learTimeout(
- 116, 41, 44, 111, 101, 38, 38, 99, 97, 110, 99, 101, // t),oe&&cance
- 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, // lAnimationFr
- 97, 109, 101, 40, 110, 41, 44, 115, 101, 116, 84, 105, // ame(n),setTi
- 109, 101, 111, 117, 116, 40, 101, 41, 125, 44, 116, 61, // meout(e)},t=
- 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 95, // setTimeout(_
- 44, 49, 48, 48, 41, 59, 111, 101, 38, 38, 40, 110, // ,100);oe&&(n
- 61, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, // =requestAnim
- 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 95, // ationFrame(_
- 41, 41, 125, 41, 40, 116, 101, 41, 41, 44, 78, 61, // ))})(te)),N=
- 118, 111, 105, 100, 32, 48, 125, 44, 110, 46, 95, 95, // void 0},n.__
- 99, 61, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, // c=function(e
- 44, 95, 41, 123, 95, 46, 115, 111, 109, 101, 40, 102, // ,_){_.some(f
- 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 123, 116, // unction(e){t
- 114, 121, 123, 101, 46, 95, 95, 104, 46, 102, 111, 114, // ry{e.__h.for
- 69, 97, 99, 104, 40, 114, 101, 41, 44, 101, 46, 95, // Each(re),e._
- 95, 104, 61, 101, 46, 95, 95, 104, 46, 102, 105, 108, // _h=e.__h.fil
- 116, 101, 114, 40, 102, 117, 110, 99, 116, 105, 111, 110, // ter(function
- 40, 101, 41, 123, 114, 101, 116, 117, 114, 110, 33, 101, // (e){return!e
- 46, 95, 95, 124, 124, 117, 101, 40, 101, 41, 125, 41, // .__||ue(e)})
- 125, 99, 97, 116, 99, 104, 40, 116, 41, 123, 95, 46, // }catch(t){_.
- 115, 111, 109, 101, 40, 102, 117, 110, 99, 116, 105, 111, // some(functio
- 110, 40, 101, 41, 123, 101, 46, 95, 95, 104, 38, 38, // n(e){e.__h&&
- 40, 101, 46, 95, 95, 104, 61, 91, 93, 41, 125, 41, // (e.__h=[])})
- 44, 95, 61, 91, 93, 44, 110, 46, 95, 95, 101, 40, // ,_=[],n.__e(
- 116, 44, 101, 46, 95, 95, 118, 41, 125, 125, 41, 44, // t,e.__v)}}),
- 66, 38, 38, 66, 40, 101, 44, 95, 41, 125, 44, 110, // B&&B(e,_)},n
- 46, 117, 110, 109, 111, 117, 110, 116, 61, 102, 117, 110, // .unmount=fun
- 99, 116, 105, 111, 110, 40, 101, 41, 123, 36, 38, 38, // ction(e){$&&
- 36, 40, 101, 41, 59, 118, 97, 114, 32, 95, 61, 101, // $(e);var _=e
- 46, 95, 95, 99, 59, 105, 102, 40, 95, 38, 38, 95, // .__c;if(_&&_
- 46, 95, 95, 72, 41, 116, 114, 121, 123, 95, 46, 95, // .__H)try{_._
- 95, 72, 46, 95, 95, 46, 102, 111, 114, 69, 97, 99, // _H.__.forEac
- 104, 40, 114, 101, 41, 125, 99, 97, 116, 99, 104, 40, // h(re)}catch(
- 101, 41, 123, 110, 46, 95, 95, 101, 40, 101, 44, 95, // e){n.__e(e,_
- 46, 95, 95, 118, 41, 125, 125, 59, 118, 97, 114, 32, // .__v)}};var
- 111, 101, 61, 34, 102, 117, 110, 99, 116, 105, 111, 110, // oe="function
- 34, 61, 61, 116, 121, 112, 101, 111, 102, 32, 114, 101, // "==typeof re
- 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, // questAnimati
- 111, 110, 70, 114, 97, 109, 101, 59, 102, 117, 110, 99, // onFrame;func
- 116, 105, 111, 110, 32, 114, 101, 40, 101, 41, 123, 118, // tion re(e){v
- 97, 114, 32, 110, 61, 78, 59, 34, 102, 117, 110, 99, // ar n=N;"func
- 116, 105, 111, 110, 34, 61, 61, 116, 121, 112, 101, 111, // tion"==typeo
- 102, 32, 101, 46, 95, 95, 99, 38, 38, 101, 46, 95, // f e.__c&&e._
- 95, 99, 40, 41, 44, 78, 61, 110, 125, 102, 117, 110, // _c(),N=n}fun
- 99, 116, 105, 111, 110, 32, 117, 101, 40, 101, 41, 123, // ction ue(e){
- 118, 97, 114, 32, 110, 61, 78, 59, 101, 46, 95, 95, // var n=N;e.__
- 99, 61, 101, 46, 95, 95, 40, 41, 44, 78, 61, 110, // c=e.__(),N=n
- 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 101, // }function le
- 40, 101, 44, 110, 41, 123, 114, 101, 116, 117, 114, 110, // (e,n){return
- 33, 101, 124, 124, 101, 46, 108, 101, 110, 103, 116, 104, // !e||e.length
- 33, 61, 61, 110, 46, 108, 101, 110, 103, 116, 104, 124, // !==n.length|
- 124, 110, 46, 115, 111, 109, 101, 40, 102, 117, 110, 99, // |n.some(func
- 116, 105, 111, 110, 40, 110, 44, 95, 41, 123, 114, 101, // tion(n,_){re
- 116, 117, 114, 110, 32, 110, 33, 61, 61, 101, 91, 95, // turn n!==e[_
- 93, 125, 41, 125, 102, 117, 110, 99, 116, 105, 111, 110, // ]})}function
- 32, 105, 101, 40, 101, 44, 110, 41, 123, 114, 101, 116, // ie(e,n){ret
- 117, 114, 110, 34, 102, 117, 110, 99, 116, 105, 111, 110, // urn"function
- 34, 61, 61, 116, 121, 112, 101, 111, 102, 32, 110, 63, // "==typeof n?
- 110, 40, 101, 41, 58, 110, 125, 118, 97, 114, 32, 99, // n(e):n}var c
- 101, 61, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, // e=function(e
- 44, 110, 44, 95, 44, 116, 41, 123, 118, 97, 114, 32, // ,n,_,t){var
- 111, 59, 110, 91, 48, 93, 61, 48, 59, 102, 111, 114, // o;n[0]=0;for
- 40, 118, 97, 114, 32, 114, 61, 49, 59, 114, 60, 110, // (var r=1;r=5&&
- 40, 40, 111, 124, 124, 33, 101, 38, 38, 53, 61, 61, // ((o||!e&&5==
- 61, 116, 41, 38, 38, 40, 117, 46, 112, 117, 115, 104, // =t)&&(u.push
- 40, 116, 44, 48, 44, 111, 44, 95, 41, 44, 116, 61, // (t,0,o,_),t=
- 54, 41, 44, 101, 38, 38, 40, 117, 46, 112, 117, 115, // 6),e&&(u.pus
- 104, 40, 116, 44, 101, 44, 48, 44, 95, 41, 44, 116, // h(t,e,0,_),t
- 61, 54, 41, 41, 44, 111, 61, 34, 34, 125, 44, 105, // =6)),o=""},i
- 61, 48, 59, 105, 60, 101, 46, 108, 101, 110, 103, 116, // =0;i"===n?(t=1,
- 111, 61, 34, 34, 41, 58, 111, 61, 110, 43, 111, 91, // o=""):o=n+o[
- 48, 93, 58, 114, 63, 110, 61, 61, 61, 114, 63, 114, // 0]:r?n===r?r
- 61, 34, 34, 58, 111, 43, 61, 110, 58, 39, 34, 39, // ="":o+=n:'"'
- 61, 61, 61, 110, 124, 124, 34, 39, 34, 61, 61, 61, // ===n||"'"===
- 110, 63, 114, 61, 110, 58, 34, 62, 34, 61, 61, 61, // n?r=n:">"===
- 110, 63, 40, 108, 40, 41, 44, 116, 61, 49, 41, 58, // n?(l(),t=1):
- 116, 38, 38, 40, 34, 61, 34, 61, 61, 61, 110, 63, // t&&("="===n?
- 40, 116, 61, 53, 44, 95, 61, 111, 44, 111, 61, 34, // (t=5,_=o,o="
- 34, 41, 58, 34, 47, 34, 61, 61, 61, 110, 38, 38, // "):"/"===n&&
- 40, 116, 60, 53, 124, 124, 34, 62, 34, 61, 61, 61, // (t<5||">"===
- 101, 91, 105, 93, 91, 99, 43, 49, 93, 41, 63, 40, // e[i][c+1])?(
- 108, 40, 41, 44, 51, 61, 61, 61, 116, 38, 38, 40, // l(),3===t&&(
- 117, 61, 117, 91, 48, 93, 41, 44, 116, 61, 117, 44, // u=u[0]),t=u,
- 40, 117, 61, 117, 91, 48, 93, 41, 46, 112, 117, 115, // (u=u[0]).pus
- 104, 40, 50, 44, 48, 44, 116, 41, 44, 116, 61, 48, // h(2,0,t),t=0
- 41, 58, 34, 32, 34, 61, 61, 61, 110, 124, 124, 34, // ):" "===n||"
- 92, 116, 34, 61, 61, 61, 110, 124, 124, 34, 92, 110, // .t"===n||".n
- 34, 61, 61, 61, 110, 124, 124, 34, 92, 114, 34, 61, // "===n||".r"=
- 61, 61, 110, 63, 40, 108, 40, 41, 44, 116, 61, 50, // ==n?(l(),t=2
- 41, 58, 111, 43, 61, 110, 41, 44, 51, 61, 61, 61, // ):o+=n),3===
- 116, 38, 38, 34, 33, 45, 45, 34, 61, 61, 61, 111, // t&&"!--"===o
- 38, 38, 40, 116, 61, 52, 44, 117, 61, 117, 91, 48, // &&(t=4,u=u[0
- 93, 41, 125, 114, 101, 116, 117, 114, 110, 32, 108, 40, // ])}return l(
- 41, 44, 117, 125, 40, 101, 41, 41, 44, 110, 41, 44, // ),u}(e)),n),
- 97, 114, 103, 117, 109, 101, 110, 116, 115, 44, 91, 93, // arguments,[]
- 41, 41, 46, 108, 101, 110, 103, 116, 104, 62, 49, 63, // )).length>1?
- 110, 58, 110, 91, 48, 93, 125, 46, 98, 105, 110, 100, // n:n[0]}.bind
- 40, 97, 41, 59, 101, 120, 112, 111, 114, 116, 123, 97, // (a);export{a
- 32, 97, 115, 32, 104, 44, 102, 101, 32, 97, 115, 32, // as h,fe as
- 104, 116, 109, 108, 44, 77, 32, 97, 115, 32, 114, 101, // html,M as re
- 110, 100, 101, 114, 44, 100, 32, 97, 115, 32, 67, 111, // nder,d as Co
- 109, 112, 111, 110, 101, 110, 116, 44, 70, 32, 97, 115, // mponent,F as
- 32, 99, 114, 101, 97, 116, 101, 67, 111, 110, 116, 101, // createConte
- 120, 116, 44, 71, 32, 97, 115, 32, 117, 115, 101, 83, // xt,G as useS
- 116, 97, 116, 101, 44, 122, 32, 97, 115, 32, 117, 115, // tate,z as us
- 101, 82, 101, 100, 117, 99, 101, 114, 44, 74, 32, 97, // eReducer,J a
- 115, 32, 117, 115, 101, 69, 102, 102, 101, 99, 116, 44, // s useEffect,
- 75, 32, 97, 115, 32, 117, 115, 101, 76, 97, 121, 111, // K as useLayo
- 117, 116, 69, 102, 102, 101, 99, 116, 44, 81, 32, 97, // utEffect,Q a
- 115, 32, 117, 115, 101, 82, 101, 102, 44, 88, 32, 97, // s useRef,X a
- 115, 32, 117, 115, 101, 73, 109, 112, 101, 114, 97, 116, // s useImperat
- 105, 118, 101, 72, 97, 110, 100, 108, 101, 44, 89, 32, // iveHandle,Y
- 97, 115, 32, 117, 115, 101, 77, 101, 109, 111, 44, 90, // as useMemo,Z
- 32, 97, 115, 32, 117, 115, 101, 67, 97, 108, 108, 98, // as useCallb
- 97, 99, 107, 44, 101, 101, 32, 97, 115, 32, 117, 115, // ack,ee as us
- 101, 67, 111, 110, 116, 101, 120, 116, 44, 110, 101, 32, // eContext,ne
- 97, 115, 32, 117, 115, 101, 68, 101, 98, 117, 103, 86, // as useDebugV
- 97, 108, 117, 101, 44, 95, 101, 32, 97, 115, 32, 117, // alue,_e as u
- 115, 101, 69, 114, 114, 111, 114, 66, 111, 117, 110, 100, // seErrorBound
- 97, 114, 121, 125, 59, 10, 0 // ary};.
-};
-static const unsigned char v3[] = {
39, 117, 115, 101, 32, 115, 116, 114, 105, 99, 116, 39, // 'use strict'
59, 10, 105, 109, 112, 111, 114, 116, 32, 123, 67, 111, // ;.import {Co
109, 112, 111, 110, 101, 110, 116, 44, 32, 104, 44, 32, // mponent, h,
@@ -3446,7 +1207,1264 @@ static const unsigned char v3[] = {
99, 117, 109, 101, 110, 116, 46, 98, 111, 100, 121, 41, // cument.body)
59, 10, 0 // ;.
};
+static const unsigned char v3[] = {
+ 118, 97, 114, 32, 101, 44, 110, 44, 95, 44, 116, 44, // var e,n,_,t,
+ 111, 44, 114, 44, 117, 44, 108, 61, 123, 125, 44, 105, // o,r,u,l={},i
+ 61, 91, 93, 44, 99, 61, 47, 97, 99, 105, 116, 124, // =[],c=/acit|
+ 101, 120, 40, 63, 58, 115, 124, 103, 124, 110, 124, 112, // ex(?:s|g|n|p
+ 124, 36, 41, 124, 114, 112, 104, 124, 103, 114, 105, 100, // |$)|rph|grid
+ 124, 111, 119, 115, 124, 109, 110, 99, 124, 110, 116, 119, // |ows|mnc|ntw
+ 124, 105, 110, 101, 91, 99, 104, 93, 124, 122, 111, 111, // |ine[ch]|zoo
+ 124, 94, 111, 114, 100, 124, 105, 116, 101, 114, 97, 47, // |^ord|itera/
+ 105, 59, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, // i;function s
+ 40, 101, 44, 110, 41, 123, 102, 111, 114, 40, 118, 97, // (e,n){for(va
+ 114, 32, 95, 32, 105, 110, 32, 110, 41, 101, 91, 95, // r _ in n)e[_
+ 93, 61, 110, 91, 95, 93, 59, 114, 101, 116, 117, 114, // ]=n[_];retur
+ 110, 32, 101, 125, 102, 117, 110, 99, 116, 105, 111, 110, // n e}function
+ 32, 102, 40, 101, 41, 123, 118, 97, 114, 32, 110, 61, // f(e){var n=
+ 101, 46, 112, 97, 114, 101, 110, 116, 78, 111, 100, 101, // e.parentNode
+ 59, 110, 38, 38, 110, 46, 114, 101, 109, 111, 118, 101, // ;n&&n.remove
+ 67, 104, 105, 108, 100, 40, 101, 41, 125, 102, 117, 110, // Child(e)}fun
+ 99, 116, 105, 111, 110, 32, 97, 40, 110, 44, 95, 44, // ction a(n,_,
+ 116, 41, 123, 118, 97, 114, 32, 111, 44, 114, 44, 117, // t){var o,r,u
+ 44, 108, 61, 123, 125, 59, 102, 111, 114, 40, 117, 32, // ,l={};for(u
+ 105, 110, 32, 95, 41, 34, 107, 101, 121, 34, 61, 61, // in _)"key"==
+ 117, 63, 111, 61, 95, 91, 117, 93, 58, 34, 114, 101, // u?o=_[u]:"re
+ 102, 34, 61, 61, 117, 63, 114, 61, 95, 91, 117, 93, // f"==u?r=_[u]
+ 58, 108, 91, 117, 93, 61, 95, 91, 117, 93, 59, 105, // :l[u]=_[u];i
+ 102, 40, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, // f(arguments.
+ 108, 101, 110, 103, 116, 104, 62, 50, 38, 38, 40, 108, // length>2&&(l
+ 46, 99, 104, 105, 108, 100, 114, 101, 110, 61, 97, 114, // .children=ar
+ 103, 117, 109, 101, 110, 116, 115, 46, 108, 101, 110, 103, // guments.leng
+ 116, 104, 62, 51, 63, 101, 46, 99, 97, 108, 108, 40, // th>3?e.call(
+ 97, 114, 103, 117, 109, 101, 110, 116, 115, 44, 50, 41, // arguments,2)
+ 58, 116, 41, 44, 34, 102, 117, 110, 99, 116, 105, 111, // :t),"functio
+ 110, 34, 61, 61, 116, 121, 112, 101, 111, 102, 32, 110, // n"==typeof n
+ 38, 38, 110, 117, 108, 108, 33, 61, 110, 46, 100, 101, // &&null!=n.de
+ 102, 97, 117, 108, 116, 80, 114, 111, 112, 115, 41, 102, // faultProps)f
+ 111, 114, 40, 117, 32, 105, 110, 32, 110, 46, 100, 101, // or(u in n.de
+ 102, 97, 117, 108, 116, 80, 114, 111, 112, 115, 41, 118, // faultProps)v
+ 111, 105, 100, 32, 48, 61, 61, 61, 108, 91, 117, 93, // oid 0===l[u]
+ 38, 38, 40, 108, 91, 117, 93, 61, 110, 46, 100, 101, // &&(l[u]=n.de
+ 102, 97, 117, 108, 116, 80, 114, 111, 112, 115, 91, 117, // faultProps[u
+ 93, 41, 59, 114, 101, 116, 117, 114, 110, 32, 112, 40, // ]);return p(
+ 110, 44, 108, 44, 111, 44, 114, 44, 110, 117, 108, 108, // n,l,o,r,null
+ 41, 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 112, // )}function p
+ 40, 101, 44, 116, 44, 111, 44, 114, 44, 117, 41, 123, // (e,t,o,r,u){
+ 118, 97, 114, 32, 108, 61, 123, 116, 121, 112, 101, 58, // var l={type:
+ 101, 44, 112, 114, 111, 112, 115, 58, 116, 44, 107, 101, // e,props:t,ke
+ 121, 58, 111, 44, 114, 101, 102, 58, 114, 44, 95, 95, // y:o,ref:r,__
+ 107, 58, 110, 117, 108, 108, 44, 95, 95, 58, 110, 117, // k:null,__:nu
+ 108, 108, 44, 95, 95, 98, 58, 48, 44, 95, 95, 101, // ll,__b:0,__e
+ 58, 110, 117, 108, 108, 44, 95, 95, 100, 58, 118, 111, // :null,__d:vo
+ 105, 100, 32, 48, 44, 95, 95, 99, 58, 110, 117, 108, // id 0,__c:nul
+ 108, 44, 95, 95, 104, 58, 110, 117, 108, 108, 44, 99, // l,__h:null,c
+ 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 58, 118, // onstructor:v
+ 111, 105, 100, 32, 48, 44, 95, 95, 118, 58, 110, 117, // oid 0,__v:nu
+ 108, 108, 61, 61, 117, 63, 43, 43, 95, 58, 117, 125, // ll==u?++_:u}
+ 59, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, // ;return null
+ 33, 61, 110, 46, 118, 110, 111, 100, 101, 38, 38, 110, // !=n.vnode&&n
+ 46, 118, 110, 111, 100, 101, 40, 108, 41, 44, 108, 125, // .vnode(l),l}
+ 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 40, 101, // function h(e
+ 41, 123, 114, 101, 116, 117, 114, 110, 32, 101, 46, 99, // ){return e.c
+ 104, 105, 108, 100, 114, 101, 110, 125, 102, 117, 110, 99, // hildren}func
+ 116, 105, 111, 110, 32, 100, 40, 101, 44, 110, 41, 123, // tion d(e,n){
+ 116, 104, 105, 115, 46, 112, 114, 111, 112, 115, 61, 101, // this.props=e
+ 44, 116, 104, 105, 115, 46, 99, 111, 110, 116, 101, 120, // ,this.contex
+ 116, 61, 110, 125, 102, 117, 110, 99, 116, 105, 111, 110, // t=n}function
+ 32, 118, 40, 101, 44, 110, 41, 123, 105, 102, 40, 110, // v(e,n){if(n
+ 117, 108, 108, 61, 61, 110, 41, 114, 101, 116, 117, 114, // ull==n)retur
+ 110, 32, 101, 46, 95, 95, 63, 118, 40, 101, 46, 95, // n e.__?v(e._
+ 95, 44, 101, 46, 95, 95, 46, 95, 95, 107, 46, 105, // _,e.__.__k.i
+ 110, 100, 101, 120, 79, 102, 40, 101, 41, 43, 49, 41, // ndexOf(e)+1)
+ 58, 110, 117, 108, 108, 59, 102, 111, 114, 40, 118, 97, // :null;for(va
+ 114, 32, 95, 59, 110, 60, 101, 46, 95, 95, 107, 46, // r _;n0?p(m.
+ 116, 121, 112, 101, 44, 109, 46, 112, 114, 111, 112, 115, // type,m.props
+ 44, 109, 46, 107, 101, 121, 44, 110, 117, 108, 108, 44, // ,m.key,null,
+ 109, 46, 95, 95, 118, 41, 58, 109, 41, 41, 123, 105, // m.__v):m)){i
+ 102, 40, 109, 46, 95, 95, 61, 95, 44, 109, 46, 95, // f(m.__=_,m._
+ 95, 98, 61, 95, 46, 95, 95, 98, 43, 49, 44, 110, // _b=_.__b+1,n
+ 117, 108, 108, 61, 61, 61, 40, 121, 61, 72, 91, 97, // ull===(y=H[a
+ 93, 41, 124, 124, 121, 38, 38, 109, 46, 107, 101, 121, // ])||y&&m.key
+ 61, 61, 121, 46, 107, 101, 121, 38, 38, 109, 46, 116, // ==y.key&&m.t
+ 121, 112, 101, 61, 61, 61, 121, 46, 116, 121, 112, 101, // ype===y.type
+ 41, 72, 91, 97, 93, 61, 118, 111, 105, 100, 32, 48, // )H[a]=void 0
+ 59, 101, 108, 115, 101, 32, 102, 111, 114, 40, 100, 61, // ;else for(d=
+ 48, 59, 100, 60, 69, 59, 100, 43, 43, 41, 123, 105, // 0;d=t.__.len
+ 103, 116, 104, 38, 38, 116, 46, 95, 95, 46, 112, 117, // gth&&t.__.pu
+ 115, 104, 40, 123, 125, 41, 44, 116, 46, 95, 95, 91, // sh({}),t.__[
+ 101, 93, 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, // e]}function
+ 71, 40, 101, 41, 123, 114, 101, 116, 117, 114, 110, 32, // G(e){return
+ 82, 61, 49, 44, 122, 40, 105, 101, 44, 101, 41, 125, // R=1,z(ie,e)}
+ 102, 117, 110, 99, 116, 105, 111, 110, 32, 122, 40, 101, // function z(e
+ 44, 110, 44, 95, 41, 123, 118, 97, 114, 32, 116, 61, // ,n,_){var t=
+ 106, 40, 76, 43, 43, 44, 50, 41, 59, 114, 101, 116, // j(L++,2);ret
+ 117, 114, 110, 32, 116, 46, 116, 61, 101, 44, 116, 46, // urn t.t=e,t.
+ 95, 95, 99, 124, 124, 40, 116, 46, 95, 95, 61, 91, // __c||(t.__=[
+ 95, 63, 95, 40, 110, 41, 58, 105, 101, 40, 118, 111, // _?_(n):ie(vo
+ 105, 100, 32, 48, 44, 110, 41, 44, 102, 117, 110, 99, // id 0,n),func
+ 116, 105, 111, 110, 40, 101, 41, 123, 118, 97, 114, 32, // tion(e){var
+ 110, 61, 116, 46, 116, 40, 116, 46, 95, 95, 91, 48, // n=t.t(t.__[0
+ 93, 44, 101, 41, 59, 116, 46, 95, 95, 91, 48, 93, // ],e);t.__[0]
+ 33, 61, 61, 110, 38, 38, 40, 116, 46, 95, 95, 61, // !==n&&(t.__=
+ 91, 110, 44, 116, 46, 95, 95, 91, 49, 93, 93, 44, // [n,t.__[1]],
+ 116, 46, 95, 95, 99, 46, 115, 101, 116, 83, 116, 97, // t.__c.setSta
+ 116, 101, 40, 123, 125, 41, 41, 125, 93, 44, 116, 46, // te({}))}],t.
+ 95, 95, 99, 61, 78, 41, 44, 116, 46, 95, 95, 125, // __c=N),t.__}
+ 102, 117, 110, 99, 116, 105, 111, 110, 32, 74, 40, 101, // function J(e
+ 44, 95, 41, 123, 118, 97, 114, 32, 116, 61, 106, 40, // ,_){var t=j(
+ 76, 43, 43, 44, 51, 41, 59, 33, 110, 46, 95, 95, // L++,3);!n.__
+ 115, 38, 38, 108, 101, 40, 116, 46, 95, 95, 72, 44, // s&&le(t.__H,
+ 95, 41, 38, 38, 40, 116, 46, 95, 95, 61, 101, 44, // _)&&(t.__=e,
+ 116, 46, 95, 95, 72, 61, 95, 44, 78, 46, 95, 95, // t.__H=_,N.__
+ 72, 46, 95, 95, 104, 46, 112, 117, 115, 104, 40, 116, // H.__h.push(t
+ 41, 41, 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, // ))}function
+ 75, 40, 101, 44, 95, 41, 123, 118, 97, 114, 32, 116, // K(e,_){var t
+ 61, 106, 40, 76, 43, 43, 44, 52, 41, 59, 33, 110, // =j(L++,4);!n
+ 46, 95, 95, 115, 38, 38, 108, 101, 40, 116, 46, 95, // .__s&&le(t._
+ 95, 72, 44, 95, 41, 38, 38, 40, 116, 46, 95, 95, // _H,_)&&(t.__
+ 61, 101, 44, 116, 46, 95, 95, 72, 61, 95, 44, 78, // =e,t.__H=_,N
+ 46, 95, 95, 104, 46, 112, 117, 115, 104, 40, 116, 41, // .__h.push(t)
+ 41, 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 81, // )}function Q
+ 40, 101, 41, 123, 114, 101, 116, 117, 114, 110, 32, 82, // (e){return R
+ 61, 53, 44, 89, 40, 102, 117, 110, 99, 116, 105, 111, // =5,Y(functio
+ 110, 40, 41, 123, 114, 101, 116, 117, 114, 110, 123, 99, // n(){return{c
+ 117, 114, 114, 101, 110, 116, 58, 101, 125, 125, 44, 91, // urrent:e}},[
+ 93, 41, 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, // ])}function
+ 88, 40, 101, 44, 110, 44, 95, 41, 123, 82, 61, 54, // X(e,n,_){R=6
+ 44, 75, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, // ,K(function(
+ 41, 123, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, // ){"function"
+ 61, 61, 116, 121, 112, 101, 111, 102, 32, 101, 63, 101, // ==typeof e?e
+ 40, 110, 40, 41, 41, 58, 101, 38, 38, 40, 101, 46, // (n()):e&&(e.
+ 99, 117, 114, 114, 101, 110, 116, 61, 110, 40, 41, 41, // current=n())
+ 125, 44, 110, 117, 108, 108, 61, 61, 95, 63, 95, 58, // },null==_?_:
+ 95, 46, 99, 111, 110, 99, 97, 116, 40, 101, 41, 41, // _.concat(e))
+ 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 89, 40, // }function Y(
+ 101, 44, 110, 41, 123, 118, 97, 114, 32, 95, 61, 106, // e,n){var _=j
+ 40, 76, 43, 43, 44, 55, 41, 59, 114, 101, 116, 117, // (L++,7);retu
+ 114, 110, 32, 108, 101, 40, 95, 46, 95, 95, 72, 44, // rn le(_.__H,
+ 110, 41, 38, 38, 40, 95, 46, 95, 95, 61, 101, 40, // n)&&(_.__=e(
+ 41, 44, 95, 46, 95, 95, 72, 61, 110, 44, 95, 46, // ),_.__H=n,_.
+ 95, 95, 104, 61, 101, 41, 44, 95, 46, 95, 95, 125, // __h=e),_.__}
+ 102, 117, 110, 99, 116, 105, 111, 110, 32, 90, 40, 101, // function Z(e
+ 44, 110, 41, 123, 114, 101, 116, 117, 114, 110, 32, 82, // ,n){return R
+ 61, 56, 44, 89, 40, 102, 117, 110, 99, 116, 105, 111, // =8,Y(functio
+ 110, 40, 41, 123, 114, 101, 116, 117, 114, 110, 32, 101, // n(){return e
+ 125, 44, 110, 41, 125, 102, 117, 110, 99, 116, 105, 111, // },n)}functio
+ 110, 32, 101, 101, 40, 101, 41, 123, 118, 97, 114, 32, // n ee(e){var
+ 110, 61, 78, 46, 99, 111, 110, 116, 101, 120, 116, 91, // n=N.context[
+ 101, 46, 95, 95, 99, 93, 44, 95, 61, 106, 40, 76, // e.__c],_=j(L
+ 43, 43, 44, 57, 41, 59, 114, 101, 116, 117, 114, 110, // ++,9);return
+ 32, 95, 46, 99, 61, 101, 44, 110, 63, 40, 110, 117, // _.c=e,n?(nu
+ 108, 108, 61, 61, 95, 46, 95, 95, 38, 38, 40, 95, // ll==_.__&&(_
+ 46, 95, 95, 61, 33, 48, 44, 110, 46, 115, 117, 98, // .__=!0,n.sub
+ 40, 78, 41, 41, 44, 110, 46, 112, 114, 111, 112, 115, // (N)),n.props
+ 46, 118, 97, 108, 117, 101, 41, 58, 101, 46, 95, 95, // .value):e.__
+ 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 110, 101, // }function ne
+ 40, 101, 44, 95, 41, 123, 110, 46, 117, 115, 101, 68, // (e,_){n.useD
+ 101, 98, 117, 103, 86, 97, 108, 117, 101, 38, 38, 110, // ebugValue&&n
+ 46, 117, 115, 101, 68, 101, 98, 117, 103, 86, 97, 108, // .useDebugVal
+ 117, 101, 40, 95, 63, 95, 40, 101, 41, 58, 101, 41, // ue(_?_(e):e)
+ 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 95, 101, // }function _e
+ 40, 101, 41, 123, 118, 97, 114, 32, 110, 61, 106, 40, // (e){var n=j(
+ 76, 43, 43, 44, 49, 48, 41, 44, 95, 61, 71, 40, // L++,10),_=G(
+ 41, 59, 114, 101, 116, 117, 114, 110, 32, 110, 46, 95, // );return n._
+ 95, 61, 101, 44, 78, 46, 99, 111, 109, 112, 111, 110, // _=e,N.compon
+ 101, 110, 116, 68, 105, 100, 67, 97, 116, 99, 104, 124, // entDidCatch|
+ 124, 40, 78, 46, 99, 111, 109, 112, 111, 110, 101, 110, // |(N.componen
+ 116, 68, 105, 100, 67, 97, 116, 99, 104, 61, 102, 117, // tDidCatch=fu
+ 110, 99, 116, 105, 111, 110, 40, 101, 41, 123, 110, 46, // nction(e){n.
+ 95, 95, 38, 38, 110, 46, 95, 95, 40, 101, 41, 44, // __&&n.__(e),
+ 95, 91, 49, 93, 40, 101, 41, 125, 41, 44, 91, 95, // _[1](e)}),[_
+ 91, 48, 93, 44, 102, 117, 110, 99, 116, 105, 111, 110, // [0],function
+ 40, 41, 123, 95, 91, 49, 93, 40, 118, 111, 105, 100, // (){_[1](void
+ 32, 48, 41, 125, 93, 125, 102, 117, 110, 99, 116, 105, // 0)}]}functi
+ 111, 110, 32, 116, 101, 40, 41, 123, 73, 46, 102, 111, // on te(){I.fo
+ 114, 69, 97, 99, 104, 40, 102, 117, 110, 99, 116, 105, // rEach(functi
+ 111, 110, 40, 101, 41, 123, 105, 102, 40, 101, 46, 95, // on(e){if(e._
+ 95, 80, 41, 116, 114, 121, 123, 101, 46, 95, 95, 72, // _P)try{e.__H
+ 46, 95, 95, 104, 46, 102, 111, 114, 69, 97, 99, 104, // .__h.forEach
+ 40, 114, 101, 41, 44, 101, 46, 95, 95, 72, 46, 95, // (re),e.__H._
+ 95, 104, 46, 102, 111, 114, 69, 97, 99, 104, 40, 117, // _h.forEach(u
+ 101, 41, 44, 101, 46, 95, 95, 72, 46, 95, 95, 104, // e),e.__H.__h
+ 61, 91, 93, 125, 99, 97, 116, 99, 104, 40, 95, 41, // =[]}catch(_)
+ 123, 101, 46, 95, 95, 72, 46, 95, 95, 104, 61, 91, // {e.__H.__h=[
+ 93, 44, 110, 46, 95, 95, 101, 40, 95, 44, 101, 46, // ],n.__e(_,e.
+ 95, 95, 118, 41, 125, 125, 41, 44, 73, 61, 91, 93, // __v)}}),I=[]
+ 125, 110, 46, 95, 95, 98, 61, 102, 117, 110, 99, 116, // }n.__b=funct
+ 105, 111, 110, 40, 101, 41, 123, 78, 61, 110, 117, 108, // ion(e){N=nul
+ 108, 44, 79, 38, 38, 79, 40, 101, 41, 125, 44, 110, // l,O&&O(e)},n
+ 46, 95, 95, 114, 61, 102, 117, 110, 99, 116, 105, 111, // .__r=functio
+ 110, 40, 101, 41, 123, 86, 38, 38, 86, 40, 101, 41, // n(e){V&&V(e)
+ 44, 76, 61, 48, 59, 118, 97, 114, 32, 110, 61, 40, // ,L=0;var n=(
+ 78, 61, 101, 46, 95, 95, 99, 41, 46, 95, 95, 72, // N=e.__c).__H
+ 59, 110, 38, 38, 40, 110, 46, 95, 95, 104, 46, 102, // ;n&&(n.__h.f
+ 111, 114, 69, 97, 99, 104, 40, 114, 101, 41, 44, 110, // orEach(re),n
+ 46, 95, 95, 104, 46, 102, 111, 114, 69, 97, 99, 104, // .__h.forEach
+ 40, 117, 101, 41, 44, 110, 46, 95, 95, 104, 61, 91, // (ue),n.__h=[
+ 93, 41, 125, 44, 110, 46, 100, 105, 102, 102, 101, 100, // ])},n.diffed
+ 61, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, // =function(e)
+ 123, 113, 38, 38, 113, 40, 101, 41, 59, 118, 97, 114, // {q&&q(e);var
+ 32, 95, 61, 101, 46, 95, 95, 99, 59, 95, 38, 38, // _=e.__c;_&&
+ 95, 46, 95, 95, 72, 38, 38, 95, 46, 95, 95, 72, // _.__H&&_.__H
+ 46, 95, 95, 104, 46, 108, 101, 110, 103, 116, 104, 38, // .__h.length&
+ 38, 40, 49, 33, 61, 61, 73, 46, 112, 117, 115, 104, // &(1!==I.push
+ 40, 95, 41, 38, 38, 87, 61, 61, 61, 110, 46, 114, // (_)&&W===n.r
+ 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, // equestAnimat
+ 105, 111, 110, 70, 114, 97, 109, 101, 124, 124, 40, 40, // ionFrame||((
+ 87, 61, 110, 46, 114, 101, 113, 117, 101, 115, 116, 65, // W=n.requestA
+ 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, // nimationFram
+ 101, 41, 124, 124, 102, 117, 110, 99, 116, 105, 111, 110, // e)||function
+ 40, 101, 41, 123, 118, 97, 114, 32, 110, 44, 95, 61, // (e){var n,_=
+ 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 123, 99, // function(){c
+ 108, 101, 97, 114, 84, 105, 109, 101, 111, 117, 116, 40, // learTimeout(
+ 116, 41, 44, 111, 101, 38, 38, 99, 97, 110, 99, 101, // t),oe&&cance
+ 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, // lAnimationFr
+ 97, 109, 101, 40, 110, 41, 44, 115, 101, 116, 84, 105, // ame(n),setTi
+ 109, 101, 111, 117, 116, 40, 101, 41, 125, 44, 116, 61, // meout(e)},t=
+ 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 95, // setTimeout(_
+ 44, 49, 48, 48, 41, 59, 111, 101, 38, 38, 40, 110, // ,100);oe&&(n
+ 61, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, // =requestAnim
+ 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 95, // ationFrame(_
+ 41, 41, 125, 41, 40, 116, 101, 41, 41, 44, 78, 61, // ))})(te)),N=
+ 118, 111, 105, 100, 32, 48, 125, 44, 110, 46, 95, 95, // void 0},n.__
+ 99, 61, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, // c=function(e
+ 44, 95, 41, 123, 95, 46, 115, 111, 109, 101, 40, 102, // ,_){_.some(f
+ 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 123, 116, // unction(e){t
+ 114, 121, 123, 101, 46, 95, 95, 104, 46, 102, 111, 114, // ry{e.__h.for
+ 69, 97, 99, 104, 40, 114, 101, 41, 44, 101, 46, 95, // Each(re),e._
+ 95, 104, 61, 101, 46, 95, 95, 104, 46, 102, 105, 108, // _h=e.__h.fil
+ 116, 101, 114, 40, 102, 117, 110, 99, 116, 105, 111, 110, // ter(function
+ 40, 101, 41, 123, 114, 101, 116, 117, 114, 110, 33, 101, // (e){return!e
+ 46, 95, 95, 124, 124, 117, 101, 40, 101, 41, 125, 41, // .__||ue(e)})
+ 125, 99, 97, 116, 99, 104, 40, 116, 41, 123, 95, 46, // }catch(t){_.
+ 115, 111, 109, 101, 40, 102, 117, 110, 99, 116, 105, 111, // some(functio
+ 110, 40, 101, 41, 123, 101, 46, 95, 95, 104, 38, 38, // n(e){e.__h&&
+ 40, 101, 46, 95, 95, 104, 61, 91, 93, 41, 125, 41, // (e.__h=[])})
+ 44, 95, 61, 91, 93, 44, 110, 46, 95, 95, 101, 40, // ,_=[],n.__e(
+ 116, 44, 101, 46, 95, 95, 118, 41, 125, 125, 41, 44, // t,e.__v)}}),
+ 66, 38, 38, 66, 40, 101, 44, 95, 41, 125, 44, 110, // B&&B(e,_)},n
+ 46, 117, 110, 109, 111, 117, 110, 116, 61, 102, 117, 110, // .unmount=fun
+ 99, 116, 105, 111, 110, 40, 101, 41, 123, 36, 38, 38, // ction(e){$&&
+ 36, 40, 101, 41, 59, 118, 97, 114, 32, 95, 61, 101, // $(e);var _=e
+ 46, 95, 95, 99, 59, 105, 102, 40, 95, 38, 38, 95, // .__c;if(_&&_
+ 46, 95, 95, 72, 41, 116, 114, 121, 123, 95, 46, 95, // .__H)try{_._
+ 95, 72, 46, 95, 95, 46, 102, 111, 114, 69, 97, 99, // _H.__.forEac
+ 104, 40, 114, 101, 41, 125, 99, 97, 116, 99, 104, 40, // h(re)}catch(
+ 101, 41, 123, 110, 46, 95, 95, 101, 40, 101, 44, 95, // e){n.__e(e,_
+ 46, 95, 95, 118, 41, 125, 125, 59, 118, 97, 114, 32, // .__v)}};var
+ 111, 101, 61, 34, 102, 117, 110, 99, 116, 105, 111, 110, // oe="function
+ 34, 61, 61, 116, 121, 112, 101, 111, 102, 32, 114, 101, // "==typeof re
+ 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, // questAnimati
+ 111, 110, 70, 114, 97, 109, 101, 59, 102, 117, 110, 99, // onFrame;func
+ 116, 105, 111, 110, 32, 114, 101, 40, 101, 41, 123, 118, // tion re(e){v
+ 97, 114, 32, 110, 61, 78, 59, 34, 102, 117, 110, 99, // ar n=N;"func
+ 116, 105, 111, 110, 34, 61, 61, 116, 121, 112, 101, 111, // tion"==typeo
+ 102, 32, 101, 46, 95, 95, 99, 38, 38, 101, 46, 95, // f e.__c&&e._
+ 95, 99, 40, 41, 44, 78, 61, 110, 125, 102, 117, 110, // _c(),N=n}fun
+ 99, 116, 105, 111, 110, 32, 117, 101, 40, 101, 41, 123, // ction ue(e){
+ 118, 97, 114, 32, 110, 61, 78, 59, 101, 46, 95, 95, // var n=N;e.__
+ 99, 61, 101, 46, 95, 95, 40, 41, 44, 78, 61, 110, // c=e.__(),N=n
+ 125, 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 101, // }function le
+ 40, 101, 44, 110, 41, 123, 114, 101, 116, 117, 114, 110, // (e,n){return
+ 33, 101, 124, 124, 101, 46, 108, 101, 110, 103, 116, 104, // !e||e.length
+ 33, 61, 61, 110, 46, 108, 101, 110, 103, 116, 104, 124, // !==n.length|
+ 124, 110, 46, 115, 111, 109, 101, 40, 102, 117, 110, 99, // |n.some(func
+ 116, 105, 111, 110, 40, 110, 44, 95, 41, 123, 114, 101, // tion(n,_){re
+ 116, 117, 114, 110, 32, 110, 33, 61, 61, 101, 91, 95, // turn n!==e[_
+ 93, 125, 41, 125, 102, 117, 110, 99, 116, 105, 111, 110, // ]})}function
+ 32, 105, 101, 40, 101, 44, 110, 41, 123, 114, 101, 116, // ie(e,n){ret
+ 117, 114, 110, 34, 102, 117, 110, 99, 116, 105, 111, 110, // urn"function
+ 34, 61, 61, 116, 121, 112, 101, 111, 102, 32, 110, 63, // "==typeof n?
+ 110, 40, 101, 41, 58, 110, 125, 118, 97, 114, 32, 99, // n(e):n}var c
+ 101, 61, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, // e=function(e
+ 44, 110, 44, 95, 44, 116, 41, 123, 118, 97, 114, 32, // ,n,_,t){var
+ 111, 59, 110, 91, 48, 93, 61, 48, 59, 102, 111, 114, // o;n[0]=0;for
+ 40, 118, 97, 114, 32, 114, 61, 49, 59, 114, 60, 110, // (var r=1;r=5&&
+ 40, 40, 111, 124, 124, 33, 101, 38, 38, 53, 61, 61, // ((o||!e&&5==
+ 61, 116, 41, 38, 38, 40, 117, 46, 112, 117, 115, 104, // =t)&&(u.push
+ 40, 116, 44, 48, 44, 111, 44, 95, 41, 44, 116, 61, // (t,0,o,_),t=
+ 54, 41, 44, 101, 38, 38, 40, 117, 46, 112, 117, 115, // 6),e&&(u.pus
+ 104, 40, 116, 44, 101, 44, 48, 44, 95, 41, 44, 116, // h(t,e,0,_),t
+ 61, 54, 41, 41, 44, 111, 61, 34, 34, 125, 44, 105, // =6)),o=""},i
+ 61, 48, 59, 105, 60, 101, 46, 108, 101, 110, 103, 116, // =0;i"===n?(t=1,
+ 111, 61, 34, 34, 41, 58, 111, 61, 110, 43, 111, 91, // o=""):o=n+o[
+ 48, 93, 58, 114, 63, 110, 61, 61, 61, 114, 63, 114, // 0]:r?n===r?r
+ 61, 34, 34, 58, 111, 43, 61, 110, 58, 39, 34, 39, // ="":o+=n:'"'
+ 61, 61, 61, 110, 124, 124, 34, 39, 34, 61, 61, 61, // ===n||"'"===
+ 110, 63, 114, 61, 110, 58, 34, 62, 34, 61, 61, 61, // n?r=n:">"===
+ 110, 63, 40, 108, 40, 41, 44, 116, 61, 49, 41, 58, // n?(l(),t=1):
+ 116, 38, 38, 40, 34, 61, 34, 61, 61, 61, 110, 63, // t&&("="===n?
+ 40, 116, 61, 53, 44, 95, 61, 111, 44, 111, 61, 34, // (t=5,_=o,o="
+ 34, 41, 58, 34, 47, 34, 61, 61, 61, 110, 38, 38, // "):"/"===n&&
+ 40, 116, 60, 53, 124, 124, 34, 62, 34, 61, 61, 61, // (t<5||">"===
+ 101, 91, 105, 93, 91, 99, 43, 49, 93, 41, 63, 40, // e[i][c+1])?(
+ 108, 40, 41, 44, 51, 61, 61, 61, 116, 38, 38, 40, // l(),3===t&&(
+ 117, 61, 117, 91, 48, 93, 41, 44, 116, 61, 117, 44, // u=u[0]),t=u,
+ 40, 117, 61, 117, 91, 48, 93, 41, 46, 112, 117, 115, // (u=u[0]).pus
+ 104, 40, 50, 44, 48, 44, 116, 41, 44, 116, 61, 48, // h(2,0,t),t=0
+ 41, 58, 34, 32, 34, 61, 61, 61, 110, 124, 124, 34, // ):" "===n||"
+ 92, 116, 34, 61, 61, 61, 110, 124, 124, 34, 92, 110, // .t"===n||".n
+ 34, 61, 61, 61, 110, 124, 124, 34, 92, 114, 34, 61, // "===n||".r"=
+ 61, 61, 110, 63, 40, 108, 40, 41, 44, 116, 61, 50, // ==n?(l(),t=2
+ 41, 58, 111, 43, 61, 110, 41, 44, 51, 61, 61, 61, // ):o+=n),3===
+ 116, 38, 38, 34, 33, 45, 45, 34, 61, 61, 61, 111, // t&&"!--"===o
+ 38, 38, 40, 116, 61, 52, 44, 117, 61, 117, 91, 48, // &&(t=4,u=u[0
+ 93, 41, 125, 114, 101, 116, 117, 114, 110, 32, 108, 40, // ])}return l(
+ 41, 44, 117, 125, 40, 101, 41, 41, 44, 110, 41, 44, // ),u}(e)),n),
+ 97, 114, 103, 117, 109, 101, 110, 116, 115, 44, 91, 93, // arguments,[]
+ 41, 41, 46, 108, 101, 110, 103, 116, 104, 62, 49, 63, // )).length>1?
+ 110, 58, 110, 91, 48, 93, 125, 46, 98, 105, 110, 100, // n:n[0]}.bind
+ 40, 97, 41, 59, 101, 120, 112, 111, 114, 116, 123, 97, // (a);export{a
+ 32, 97, 115, 32, 104, 44, 102, 101, 32, 97, 115, 32, // as h,fe as
+ 104, 116, 109, 108, 44, 77, 32, 97, 115, 32, 114, 101, // html,M as re
+ 110, 100, 101, 114, 44, 100, 32, 97, 115, 32, 67, 111, // nder,d as Co
+ 109, 112, 111, 110, 101, 110, 116, 44, 70, 32, 97, 115, // mponent,F as
+ 32, 99, 114, 101, 97, 116, 101, 67, 111, 110, 116, 101, // createConte
+ 120, 116, 44, 71, 32, 97, 115, 32, 117, 115, 101, 83, // xt,G as useS
+ 116, 97, 116, 101, 44, 122, 32, 97, 115, 32, 117, 115, // tate,z as us
+ 101, 82, 101, 100, 117, 99, 101, 114, 44, 74, 32, 97, // eReducer,J a
+ 115, 32, 117, 115, 101, 69, 102, 102, 101, 99, 116, 44, // s useEffect,
+ 75, 32, 97, 115, 32, 117, 115, 101, 76, 97, 121, 111, // K as useLayo
+ 117, 116, 69, 102, 102, 101, 99, 116, 44, 81, 32, 97, // utEffect,Q a
+ 115, 32, 117, 115, 101, 82, 101, 102, 44, 88, 32, 97, // s useRef,X a
+ 115, 32, 117, 115, 101, 73, 109, 112, 101, 114, 97, 116, // s useImperat
+ 105, 118, 101, 72, 97, 110, 100, 108, 101, 44, 89, 32, // iveHandle,Y
+ 97, 115, 32, 117, 115, 101, 77, 101, 109, 111, 44, 90, // as useMemo,Z
+ 32, 97, 115, 32, 117, 115, 101, 67, 97, 108, 108, 98, // as useCallb
+ 97, 99, 107, 44, 101, 101, 32, 97, 115, 32, 117, 115, // ack,ee as us
+ 101, 67, 111, 110, 116, 101, 120, 116, 44, 110, 101, 32, // eContext,ne
+ 97, 115, 32, 117, 115, 101, 68, 101, 98, 117, 103, 86, // as useDebugV
+ 97, 108, 117, 101, 44, 95, 101, 32, 97, 115, 32, 117, // alue,_e as u
+ 115, 101, 69, 114, 114, 111, 114, 66, 111, 117, 110, 100, // seErrorBound
+ 97, 114, 121, 125, 59, 10, 0 // ary};.
+};
static const unsigned char v4[] = {
+ 42, 32, 123, 32, 98, 111, 120, 45, 115, 105, 122, 105, // * { box-sizi
+ 110, 103, 58, 32, 98, 111, 114, 100, 101, 114, 45, 98, // ng: border-b
+ 111, 120, 59, 32, 125, 10, 104, 116, 109, 108, 44, 32, // ox; }.html,
+ 98, 111, 100, 121, 32, 123, 32, 109, 97, 114, 103, 105, // body { margi
+ 110, 58, 32, 48, 59, 32, 112, 97, 100, 100, 105, 110, // n: 0; paddin
+ 103, 58, 32, 48, 59, 32, 104, 101, 105, 103, 104, 116, // g: 0; height
+ 58, 32, 49, 48, 48, 37, 59, 32, 102, 111, 110, 116, // : 100%; font
+ 58, 32, 49, 54, 112, 120, 32, 115, 97, 110, 115, 45, // : 16px sans-
+ 115, 101, 114, 105, 102, 59, 32, 125, 10, 115, 101, 108, // serif; }.sel
+ 101, 99, 116, 44, 32, 105, 110, 112, 117, 116, 44, 32, // ect, input,
+ 108, 97, 98, 101, 108, 58, 58, 98, 101, 102, 111, 114, // label::befor
+ 101, 44, 32, 116, 101, 120, 116, 97, 114, 101, 97, 32, // e, textarea
+ 123, 32, 111, 117, 116, 108, 105, 110, 101, 58, 32, 110, // { outline: n
+ 111, 110, 101, 59, 32, 98, 111, 120, 45, 115, 104, 97, // one; box-sha
+ 100, 111, 119, 58, 110, 111, 110, 101, 32, 33, 105, 109, // dow:none !im
+ 112, 111, 114, 116, 97, 110, 116, 59, 32, 98, 111, 114, // portant; bor
+ 100, 101, 114, 58, 32, 49, 112, 120, 32, 115, 111, 108, // der: 1px sol
+ 105, 100, 32, 35, 99, 99, 99, 32, 33, 105, 109, 112, // id #ccc !imp
+ 111, 114, 116, 97, 110, 116, 59, 32, 125, 10, 99, 111, // ortant; }.co
+ 100, 101, 44, 32, 112, 114, 101, 32, 123, 32, 99, 111, // de, pre { co
+ 108, 111, 114, 58, 32, 35, 51, 55, 51, 59, 32, 102, // lor: #373; f
+ 111, 110, 116, 45, 102, 97, 109, 105, 108, 121, 58, 32, // ont-family:
+ 109, 111, 110, 111, 115, 112, 97, 99, 101, 59, 32, 102, // monospace; f
+ 111, 110, 116, 45, 119, 101, 105, 103, 104, 116, 58, 32, // ont-weight:
+ 98, 111, 108, 100, 101, 114, 59, 32, 102, 111, 110, 116, // bolder; font
+ 45, 115, 105, 122, 101, 58, 32, 115, 109, 97, 108, 108, // -size: small
+ 101, 114, 59, 32, 98, 97, 99, 107, 103, 114, 111, 117, // er; backgrou
+ 110, 100, 58, 32, 35, 100, 100, 100, 59, 32, 112, 97, // nd: #ddd; pa
+ 100, 100, 105, 110, 103, 58, 32, 48, 46, 49, 101, 109, // dding: 0.1em
+ 32, 48, 46, 51, 101, 109, 59, 32, 98, 111, 114, 100, // 0.3em; bord
+ 101, 114, 45, 114, 97, 100, 105, 117, 115, 58, 32, 48, // er-radius: 0
+ 46, 50, 101, 109, 59, 32, 125, 10, 116, 101, 120, 116, // .2em; }.text
+ 97, 114, 101, 97, 44, 32, 105, 110, 112, 117, 116, 44, // area, input,
+ 32, 46, 97, 100, 100, 111, 110, 32, 123, 32, 102, 111, // .addon { fo
+ 110, 116, 45, 115, 105, 122, 101, 58, 32, 49, 53, 112, // nt-size: 15p
+ 120, 59, 32, 98, 111, 114, 100, 101, 114, 58, 32, 49, // x; border: 1
+ 112, 120, 32, 115, 111, 108, 105, 100, 32, 35, 99, 99, // px solid #cc
+ 99, 59, 32, 112, 97, 100, 100, 105, 110, 103, 58, 32, // c; padding:
+ 48, 46, 53, 101, 109, 59, 32, 125, 10, 97, 44, 32, // 0.5em; }.a,
+ 97, 58, 118, 105, 115, 105, 116, 101, 100, 44, 32, 97, // a:visited, a
+ 58, 97, 99, 116, 105, 118, 101, 32, 123, 32, 99, 111, // :active { co
+ 108, 111, 114, 58, 32, 35, 53, 53, 102, 59, 32, 125, // lor: #55f; }
+ 10, 46, 97, 100, 100, 111, 110, 32, 123, 32, 98, 97, // ..addon { ba
+ 99, 107, 103, 114, 111, 117, 110, 100, 58, 32, 35, 101, // ckground: #e
+ 101, 101, 59, 32, 32, 109, 105, 110, 45, 119, 105, 100, // ee; min-wid
+ 116, 104, 58, 32, 57, 101, 109, 59, 125, 10, 46, 98, // th: 9em;}..b
+ 116, 110, 32, 123, 10, 32, 32, 98, 97, 99, 107, 103, // tn {. backg
+ 114, 111, 117, 110, 100, 58, 32, 35, 99, 99, 99, 59, // round: #ccc;
+ 32, 98, 111, 114, 100, 101, 114, 45, 114, 97, 100, 105, // border-radi
+ 117, 115, 58, 32, 48, 46, 51, 101, 109, 59, 32, 98, // us: 0.3em; b
+ 111, 114, 100, 101, 114, 58, 32, 48, 59, 32, 99, 111, // order: 0; co
+ 108, 111, 114, 58, 32, 35, 102, 102, 102, 59, 32, 99, // lor: #fff; c
+ 117, 114, 115, 111, 114, 58, 32, 112, 111, 105, 110, 116, // ursor: point
+ 101, 114, 59, 10, 32, 32, 100, 105, 115, 112, 108, 97, // er;. displa
+ 121, 58, 32, 105, 110, 108, 105, 110, 101, 45, 98, 108, // y: inline-bl
+ 111, 99, 107, 59, 32, 112, 97, 100, 100, 105, 110, 103, // ock; padding
+ 58, 32, 48, 46, 54, 101, 109, 32, 50, 101, 109, 59, // : 0.6em 2em;
+ 32, 102, 111, 110, 116, 45, 119, 101, 105, 103, 104, 116, // font-weight
+ 58, 32, 98, 111, 108, 100, 101, 114, 59, 10, 125, 10, // : bolder;.}.
+ 46, 98, 116, 110, 91, 100, 105, 115, 97, 98, 108, 101, // .btn[disable
+ 100, 93, 32, 123, 32, 111, 112, 97, 99, 105, 116, 121, // d] { opacity
+ 58, 32, 48, 46, 53, 59, 32, 99, 117, 114, 115, 111, // : 0.5; curso
+ 114, 58, 32, 97, 117, 116, 111, 59, 125, 10, 46, 115, // r: auto;}..s
+ 109, 111, 111, 116, 104, 32, 123, 32, 116, 114, 97, 110, // mooth { tran
+ 115, 105, 116, 105, 111, 110, 58, 32, 97, 108, 108, 32, // sition: all
+ 46, 50, 115, 59, 32, 125, 10, 46, 99, 111, 110, 116, // .2s; }..cont
+ 97, 105, 110, 101, 114, 32, 123, 32, 109, 97, 114, 103, // ainer { marg
+ 105, 110, 58, 32, 48, 32, 50, 48, 112, 120, 59, 32, // in: 0 20px;
+ 119, 105, 100, 116, 104, 58, 32, 97, 117, 116, 111, 59, // width: auto;
+ 32, 125, 10, 46, 100, 45, 102, 108, 101, 120, 32, 123, // }..d-flex {
+ 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 102, 108, // display: fl
+ 101, 120, 59, 32, 125, 10, 46, 100, 45, 110, 111, 110, // ex; }..d-non
+ 101, 32, 123, 32, 100, 105, 115, 112, 108, 97, 121, 58, // e { display:
+ 32, 110, 111, 110, 101, 59, 32, 125, 10, 46, 98, 111, // none; }..bo
+ 114, 100, 101, 114, 32, 123, 32, 98, 111, 114, 100, 101, // rder { borde
+ 114, 58, 32, 49, 112, 120, 32, 115, 111, 108, 105, 100, // r: 1px solid
+ 32, 35, 100, 100, 100, 59, 32, 125, 10, 46, 114, 111, // #ddd; }..ro
+ 117, 110, 100, 101, 100, 32, 123, 32, 98, 111, 114, 100, // unded { bord
+ 101, 114, 45, 114, 97, 100, 105, 117, 115, 58, 32, 48, // er-radius: 0
+ 46, 53, 101, 109, 59, 32, 125, 10, 46, 110, 111, 119, // .5em; }..now
+ 114, 97, 112, 32, 123, 32, 119, 104, 105, 116, 101, 45, // rap { white-
+ 115, 112, 97, 99, 101, 58, 32, 110, 111, 119, 114, 97, // space: nowra
+ 112, 59, 32, 125, 10, 46, 109, 115, 103, 32, 123, 32, // p; }..msg {
+ 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 58, 32, // background:
+ 35, 100, 101, 102, 59, 32, 98, 111, 114, 100, 101, 114, // #def; border
+ 45, 108, 101, 102, 116, 58, 32, 53, 112, 120, 32, 115, // -left: 5px s
+ 111, 108, 105, 100, 32, 35, 53, 57, 100, 59, 32, 112, // olid #59d; p
+ 97, 100, 100, 105, 110, 103, 58, 32, 48, 46, 53, 101, // adding: 0.5e
+ 109, 59, 32, 102, 111, 110, 116, 45, 115, 105, 122, 101, // m; font-size
+ 58, 32, 57, 48, 37, 59, 32, 109, 97, 114, 103, 105, // : 90%; margi
+ 110, 58, 32, 49, 101, 109, 32, 48, 59, 32, 125, 10, // n: 1em 0; }.
+ 46, 115, 101, 99, 116, 105, 111, 110, 32, 123, 32, 109, // .section { m
+ 97, 114, 103, 105, 110, 58, 32, 48, 32, 49, 101, 109, // argin: 0 1em
+ 59, 32, 125, 10, 46, 116, 111, 112, 105, 99, 44, 32, // ; }..topic,
+ 46, 100, 97, 116, 97, 44, 32, 46, 113, 111, 115, 32, // .data, .qos
+ 123, 32, 32, 112, 97, 100, 100, 105, 110, 103, 58, 32, // { padding:
+ 48, 46, 50, 101, 109, 32, 48, 46, 53, 101, 109, 59, // 0.2em 0.5em;
+ 32, 98, 111, 114, 100, 101, 114, 45, 114, 97, 100, 105, // border-radi
+ 117, 115, 58, 32, 48, 46, 52, 101, 109, 59, 32, 109, // us: 0.4em; m
+ 97, 114, 103, 105, 110, 45, 114, 105, 103, 104, 116, 58, // argin-right:
+ 32, 48, 46, 53, 101, 109, 59, 32, 32, 125, 10, 46, // 0.5em; }..
+ 113, 111, 115, 32, 123, 32, 98, 97, 99, 107, 103, 114, // qos { backgr
+ 111, 117, 110, 100, 58, 32, 35, 101, 102, 97, 59, 32, // ound: #efa;
+ 125, 10, 46, 116, 111, 112, 105, 99, 32, 123, 32, 98, // }..topic { b
+ 97, 99, 107, 103, 114, 111, 117, 110, 100, 58, 32, 35, // ackground: #
+ 102, 101, 97, 59, 32, 125, 10, 46, 100, 97, 116, 97, // fea; }..data
+ 32, 123, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, // { backgroun
+ 100, 58, 32, 35, 97, 101, 102, 59, 32, 125, 10, 10, // d: #aef; }..
+ 47, 42, 32, 71, 114, 105, 100, 32, 42, 47, 10, 46, // /* Grid */..
+ 114, 111, 119, 32, 123, 32, 100, 105, 115, 112, 108, 97, // row { displa
+ 121, 58, 32, 102, 108, 101, 120, 59, 32, 102, 108, 101, // y: flex; fle
+ 120, 45, 119, 114, 97, 112, 58, 32, 119, 114, 97, 112, // x-wrap: wrap
+ 59, 32, 125, 10, 46, 99, 111, 108, 32, 123, 32, 109, // ; }..col { m
+ 97, 114, 103, 105, 110, 58, 32, 48, 59, 32, 112, 97, // argin: 0; pa
+ 100, 100, 105, 110, 103, 58, 32, 48, 59, 32, 111, 118, // dding: 0; ov
+ 101, 114, 102, 108, 111, 119, 58, 32, 97, 117, 116, 111, // erflow: auto
+ 59, 32, 125, 10, 46, 99, 111, 108, 45, 49, 50, 32, // ; }..col-12
+ 123, 32, 119, 105, 100, 116, 104, 58, 32, 49, 48, 48, // { width: 100
+ 37, 59, 32, 125, 10, 46, 99, 111, 108, 45, 49, 49, // %; }..col-11
+ 32, 123, 32, 119, 105, 100, 116, 104, 58, 32, 57, 49, // { width: 91
+ 46, 54, 54, 37, 59, 32, 125, 10, 46, 99, 111, 108, // .66%; }..col
+ 45, 49, 48, 32, 123, 32, 119, 105, 100, 116, 104, 58, // -10 { width:
+ 32, 56, 51, 46, 51, 51, 37, 59, 32, 125, 10, 46, // 83.33%; }..
+ 99, 111, 108, 45, 57, 32, 123, 32, 119, 105, 100, 116, // col-9 { widt
+ 104, 58, 32, 55, 53, 37, 59, 32, 125, 10, 46, 99, // h: 75%; }..c
+ 111, 108, 45, 56, 32, 123, 32, 119, 105, 100, 116, 104, // ol-8 { width
+ 58, 32, 54, 54, 46, 54, 54, 37, 59, 32, 125, 10, // : 66.66%; }.
+ 46, 99, 111, 108, 45, 55, 32, 123, 32, 119, 105, 100, // .col-7 { wid
+ 116, 104, 58, 32, 53, 56, 46, 51, 51, 37, 59, 32, // th: 58.33%;
+ 125, 10, 46, 99, 111, 108, 45, 54, 32, 123, 32, 119, // }..col-6 { w
+ 105, 100, 116, 104, 58, 32, 53, 48, 37, 59, 32, 125, // idth: 50%; }
+ 10, 46, 99, 111, 108, 45, 53, 32, 123, 32, 119, 105, // ..col-5 { wi
+ 100, 116, 104, 58, 32, 52, 49, 46, 54, 54, 37, 59, // dth: 41.66%;
+ 32, 125, 10, 46, 99, 111, 108, 45, 52, 32, 123, 32, // }..col-4 {
+ 119, 105, 100, 116, 104, 58, 32, 51, 51, 46, 51, 51, // width: 33.33
+ 37, 59, 32, 125, 10, 46, 99, 111, 108, 45, 51, 32, // %; }..col-3
+ 123, 32, 119, 105, 100, 116, 104, 58, 32, 50, 53, 37, // { width: 25%
+ 59, 32, 125, 10, 46, 99, 111, 108, 45, 50, 32, 123, // ; }..col-2 {
+ 32, 119, 105, 100, 116, 104, 58, 32, 49, 54, 46, 54, // width: 16.6
+ 54, 37, 59, 32, 125, 10, 46, 99, 111, 108, 45, 49, // 6%; }..col-1
+ 32, 123, 32, 119, 105, 100, 116, 104, 58, 32, 56, 46, // { width: 8.
+ 51, 51, 37, 59, 32, 125, 10, 64, 109, 101, 100, 105, // 33%; }.@medi
+ 97, 32, 40, 109, 105, 110, 45, 119, 105, 100, 116, 104, // a (min-width
+ 58, 32, 49, 51, 49, 48, 112, 120, 41, 32, 123, 32, // : 1310px) {
+ 46, 99, 111, 110, 116, 97, 105, 110, 101, 114, 32, 123, // .container {
+ 32, 109, 97, 114, 103, 105, 110, 58, 32, 97, 117, 116, // margin: aut
+ 111, 59, 32, 119, 105, 100, 116, 104, 58, 32, 49, 50, // o; width: 12
+ 55, 48, 112, 120, 59, 32, 125, 32, 125, 10, 64, 109, // 70px; } }.@m
+ 101, 100, 105, 97, 32, 40, 109, 97, 120, 45, 119, 105, // edia (max-wi
+ 100, 116, 104, 58, 32, 57, 50, 48, 112, 120, 41, 32, // dth: 920px)
+ 123, 32, 46, 114, 111, 119, 32, 46, 99, 111, 108, 32, // { .row .col
+ 123, 32, 119, 105, 100, 116, 104, 58, 32, 49, 48, 48, // { width: 100
+ 37, 59, 32, 125, 32, 125, 10, 0 // %; } }.
+};
+static const unsigned char v5[] = {
137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, // .PNG........
73, 72, 68, 82, 0, 0, 0, 128, 0, 0, 0, 128, // IHDR........
8, 6, 0, 0, 0, 195, 62, 97, 203, 0, 0, 0, // ......>a....
@@ -3770,195 +2788,6 @@ static const unsigned char v4[] = {
126, 121, 49, 188, 0, 0, 0, 0, 73, 69, 78, 68, // ~y1.....IEND
174, 66, 96, 130, 0 // .B`.
};
-static const unsigned char v5[] = {
- 42, 32, 123, 32, 98, 111, 120, 45, 115, 105, 122, 105, // * { box-sizi
- 110, 103, 58, 32, 98, 111, 114, 100, 101, 114, 45, 98, // ng: border-b
- 111, 120, 59, 32, 125, 10, 104, 116, 109, 108, 44, 32, // ox; }.html,
- 98, 111, 100, 121, 32, 123, 32, 109, 97, 114, 103, 105, // body { margi
- 110, 58, 32, 48, 59, 32, 112, 97, 100, 100, 105, 110, // n: 0; paddin
- 103, 58, 32, 48, 59, 32, 104, 101, 105, 103, 104, 116, // g: 0; height
- 58, 32, 49, 48, 48, 37, 59, 32, 102, 111, 110, 116, // : 100%; font
- 58, 32, 49, 54, 112, 120, 32, 115, 97, 110, 115, 45, // : 16px sans-
- 115, 101, 114, 105, 102, 59, 32, 125, 10, 115, 101, 108, // serif; }.sel
- 101, 99, 116, 44, 32, 105, 110, 112, 117, 116, 44, 32, // ect, input,
- 108, 97, 98, 101, 108, 58, 58, 98, 101, 102, 111, 114, // label::befor
- 101, 44, 32, 116, 101, 120, 116, 97, 114, 101, 97, 32, // e, textarea
- 123, 32, 111, 117, 116, 108, 105, 110, 101, 58, 32, 110, // { outline: n
- 111, 110, 101, 59, 32, 98, 111, 120, 45, 115, 104, 97, // one; box-sha
- 100, 111, 119, 58, 110, 111, 110, 101, 32, 33, 105, 109, // dow:none !im
- 112, 111, 114, 116, 97, 110, 116, 59, 32, 98, 111, 114, // portant; bor
- 100, 101, 114, 58, 32, 49, 112, 120, 32, 115, 111, 108, // der: 1px sol
- 105, 100, 32, 35, 99, 99, 99, 32, 33, 105, 109, 112, // id #ccc !imp
- 111, 114, 116, 97, 110, 116, 59, 32, 125, 10, 99, 111, // ortant; }.co
- 100, 101, 44, 32, 112, 114, 101, 32, 123, 32, 99, 111, // de, pre { co
- 108, 111, 114, 58, 32, 35, 51, 55, 51, 59, 32, 102, // lor: #373; f
- 111, 110, 116, 45, 102, 97, 109, 105, 108, 121, 58, 32, // ont-family:
- 109, 111, 110, 111, 115, 112, 97, 99, 101, 59, 32, 102, // monospace; f
- 111, 110, 116, 45, 119, 101, 105, 103, 104, 116, 58, 32, // ont-weight:
- 98, 111, 108, 100, 101, 114, 59, 32, 102, 111, 110, 116, // bolder; font
- 45, 115, 105, 122, 101, 58, 32, 115, 109, 97, 108, 108, // -size: small
- 101, 114, 59, 32, 98, 97, 99, 107, 103, 114, 111, 117, // er; backgrou
- 110, 100, 58, 32, 35, 100, 100, 100, 59, 32, 112, 97, // nd: #ddd; pa
- 100, 100, 105, 110, 103, 58, 32, 48, 46, 49, 101, 109, // dding: 0.1em
- 32, 48, 46, 51, 101, 109, 59, 32, 98, 111, 114, 100, // 0.3em; bord
- 101, 114, 45, 114, 97, 100, 105, 117, 115, 58, 32, 48, // er-radius: 0
- 46, 50, 101, 109, 59, 32, 125, 10, 116, 101, 120, 116, // .2em; }.text
- 97, 114, 101, 97, 44, 32, 105, 110, 112, 117, 116, 44, // area, input,
- 32, 46, 97, 100, 100, 111, 110, 32, 123, 32, 102, 111, // .addon { fo
- 110, 116, 45, 115, 105, 122, 101, 58, 32, 49, 53, 112, // nt-size: 15p
- 120, 59, 32, 98, 111, 114, 100, 101, 114, 58, 32, 49, // x; border: 1
- 112, 120, 32, 115, 111, 108, 105, 100, 32, 35, 99, 99, // px solid #cc
- 99, 59, 32, 112, 97, 100, 100, 105, 110, 103, 58, 32, // c; padding:
- 48, 46, 53, 101, 109, 59, 32, 125, 10, 97, 44, 32, // 0.5em; }.a,
- 97, 58, 118, 105, 115, 105, 116, 101, 100, 44, 32, 97, // a:visited, a
- 58, 97, 99, 116, 105, 118, 101, 32, 123, 32, 99, 111, // :active { co
- 108, 111, 114, 58, 32, 35, 53, 53, 102, 59, 32, 125, // lor: #55f; }
- 10, 46, 97, 100, 100, 111, 110, 32, 123, 32, 98, 97, // ..addon { ba
- 99, 107, 103, 114, 111, 117, 110, 100, 58, 32, 35, 101, // ckground: #e
- 101, 101, 59, 32, 32, 109, 105, 110, 45, 119, 105, 100, // ee; min-wid
- 116, 104, 58, 32, 57, 101, 109, 59, 125, 10, 46, 98, // th: 9em;}..b
- 116, 110, 32, 123, 10, 32, 32, 98, 97, 99, 107, 103, // tn {. backg
- 114, 111, 117, 110, 100, 58, 32, 35, 99, 99, 99, 59, // round: #ccc;
- 32, 98, 111, 114, 100, 101, 114, 45, 114, 97, 100, 105, // border-radi
- 117, 115, 58, 32, 48, 46, 51, 101, 109, 59, 32, 98, // us: 0.3em; b
- 111, 114, 100, 101, 114, 58, 32, 48, 59, 32, 99, 111, // order: 0; co
- 108, 111, 114, 58, 32, 35, 102, 102, 102, 59, 32, 99, // lor: #fff; c
- 117, 114, 115, 111, 114, 58, 32, 112, 111, 105, 110, 116, // ursor: point
- 101, 114, 59, 10, 32, 32, 100, 105, 115, 112, 108, 97, // er;. displa
- 121, 58, 32, 105, 110, 108, 105, 110, 101, 45, 98, 108, // y: inline-bl
- 111, 99, 107, 59, 32, 112, 97, 100, 100, 105, 110, 103, // ock; padding
- 58, 32, 48, 46, 54, 101, 109, 32, 50, 101, 109, 59, // : 0.6em 2em;
- 32, 102, 111, 110, 116, 45, 119, 101, 105, 103, 104, 116, // font-weight
- 58, 32, 98, 111, 108, 100, 101, 114, 59, 10, 125, 10, // : bolder;.}.
- 46, 98, 116, 110, 91, 100, 105, 115, 97, 98, 108, 101, // .btn[disable
- 100, 93, 32, 123, 32, 111, 112, 97, 99, 105, 116, 121, // d] { opacity
- 58, 32, 48, 46, 53, 59, 32, 99, 117, 114, 115, 111, // : 0.5; curso
- 114, 58, 32, 97, 117, 116, 111, 59, 125, 10, 46, 115, // r: auto;}..s
- 109, 111, 111, 116, 104, 32, 123, 32, 116, 114, 97, 110, // mooth { tran
- 115, 105, 116, 105, 111, 110, 58, 32, 97, 108, 108, 32, // sition: all
- 46, 50, 115, 59, 32, 125, 10, 46, 99, 111, 110, 116, // .2s; }..cont
- 97, 105, 110, 101, 114, 32, 123, 32, 109, 97, 114, 103, // ainer { marg
- 105, 110, 58, 32, 48, 32, 50, 48, 112, 120, 59, 32, // in: 0 20px;
- 119, 105, 100, 116, 104, 58, 32, 97, 117, 116, 111, 59, // width: auto;
- 32, 125, 10, 46, 100, 45, 102, 108, 101, 120, 32, 123, // }..d-flex {
- 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 102, 108, // display: fl
- 101, 120, 59, 32, 125, 10, 46, 100, 45, 110, 111, 110, // ex; }..d-non
- 101, 32, 123, 32, 100, 105, 115, 112, 108, 97, 121, 58, // e { display:
- 32, 110, 111, 110, 101, 59, 32, 125, 10, 46, 98, 111, // none; }..bo
- 114, 100, 101, 114, 32, 123, 32, 98, 111, 114, 100, 101, // rder { borde
- 114, 58, 32, 49, 112, 120, 32, 115, 111, 108, 105, 100, // r: 1px solid
- 32, 35, 100, 100, 100, 59, 32, 125, 10, 46, 114, 111, // #ddd; }..ro
- 117, 110, 100, 101, 100, 32, 123, 32, 98, 111, 114, 100, // unded { bord
- 101, 114, 45, 114, 97, 100, 105, 117, 115, 58, 32, 48, // er-radius: 0
- 46, 53, 101, 109, 59, 32, 125, 10, 46, 110, 111, 119, // .5em; }..now
- 114, 97, 112, 32, 123, 32, 119, 104, 105, 116, 101, 45, // rap { white-
- 115, 112, 97, 99, 101, 58, 32, 110, 111, 119, 114, 97, // space: nowra
- 112, 59, 32, 125, 10, 46, 109, 115, 103, 32, 123, 32, // p; }..msg {
- 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 58, 32, // background:
- 35, 100, 101, 102, 59, 32, 98, 111, 114, 100, 101, 114, // #def; border
- 45, 108, 101, 102, 116, 58, 32, 53, 112, 120, 32, 115, // -left: 5px s
- 111, 108, 105, 100, 32, 35, 53, 57, 100, 59, 32, 112, // olid #59d; p
- 97, 100, 100, 105, 110, 103, 58, 32, 48, 46, 53, 101, // adding: 0.5e
- 109, 59, 32, 102, 111, 110, 116, 45, 115, 105, 122, 101, // m; font-size
- 58, 32, 57, 48, 37, 59, 32, 109, 97, 114, 103, 105, // : 90%; margi
- 110, 58, 32, 49, 101, 109, 32, 48, 59, 32, 125, 10, // n: 1em 0; }.
- 46, 115, 101, 99, 116, 105, 111, 110, 32, 123, 32, 109, // .section { m
- 97, 114, 103, 105, 110, 58, 32, 48, 32, 49, 101, 109, // argin: 0 1em
- 59, 32, 125, 10, 46, 116, 111, 112, 105, 99, 44, 32, // ; }..topic,
- 46, 100, 97, 116, 97, 44, 32, 46, 113, 111, 115, 32, // .data, .qos
- 123, 32, 32, 112, 97, 100, 100, 105, 110, 103, 58, 32, // { padding:
- 48, 46, 50, 101, 109, 32, 48, 46, 53, 101, 109, 59, // 0.2em 0.5em;
- 32, 98, 111, 114, 100, 101, 114, 45, 114, 97, 100, 105, // border-radi
- 117, 115, 58, 32, 48, 46, 52, 101, 109, 59, 32, 109, // us: 0.4em; m
- 97, 114, 103, 105, 110, 45, 114, 105, 103, 104, 116, 58, // argin-right:
- 32, 48, 46, 53, 101, 109, 59, 32, 32, 125, 10, 46, // 0.5em; }..
- 113, 111, 115, 32, 123, 32, 98, 97, 99, 107, 103, 114, // qos { backgr
- 111, 117, 110, 100, 58, 32, 35, 101, 102, 97, 59, 32, // ound: #efa;
- 125, 10, 46, 116, 111, 112, 105, 99, 32, 123, 32, 98, // }..topic { b
- 97, 99, 107, 103, 114, 111, 117, 110, 100, 58, 32, 35, // ackground: #
- 102, 101, 97, 59, 32, 125, 10, 46, 100, 97, 116, 97, // fea; }..data
- 32, 123, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, // { backgroun
- 100, 58, 32, 35, 97, 101, 102, 59, 32, 125, 10, 10, // d: #aef; }..
- 47, 42, 32, 71, 114, 105, 100, 32, 42, 47, 10, 46, // /* Grid */..
- 114, 111, 119, 32, 123, 32, 100, 105, 115, 112, 108, 97, // row { displa
- 121, 58, 32, 102, 108, 101, 120, 59, 32, 102, 108, 101, // y: flex; fle
- 120, 45, 119, 114, 97, 112, 58, 32, 119, 114, 97, 112, // x-wrap: wrap
- 59, 32, 125, 10, 46, 99, 111, 108, 32, 123, 32, 109, // ; }..col { m
- 97, 114, 103, 105, 110, 58, 32, 48, 59, 32, 112, 97, // argin: 0; pa
- 100, 100, 105, 110, 103, 58, 32, 48, 59, 32, 111, 118, // dding: 0; ov
- 101, 114, 102, 108, 111, 119, 58, 32, 97, 117, 116, 111, // erflow: auto
- 59, 32, 125, 10, 46, 99, 111, 108, 45, 49, 50, 32, // ; }..col-12
- 123, 32, 119, 105, 100, 116, 104, 58, 32, 49, 48, 48, // { width: 100
- 37, 59, 32, 125, 10, 46, 99, 111, 108, 45, 49, 49, // %; }..col-11
- 32, 123, 32, 119, 105, 100, 116, 104, 58, 32, 57, 49, // { width: 91
- 46, 54, 54, 37, 59, 32, 125, 10, 46, 99, 111, 108, // .66%; }..col
- 45, 49, 48, 32, 123, 32, 119, 105, 100, 116, 104, 58, // -10 { width:
- 32, 56, 51, 46, 51, 51, 37, 59, 32, 125, 10, 46, // 83.33%; }..
- 99, 111, 108, 45, 57, 32, 123, 32, 119, 105, 100, 116, // col-9 { widt
- 104, 58, 32, 55, 53, 37, 59, 32, 125, 10, 46, 99, // h: 75%; }..c
- 111, 108, 45, 56, 32, 123, 32, 119, 105, 100, 116, 104, // ol-8 { width
- 58, 32, 54, 54, 46, 54, 54, 37, 59, 32, 125, 10, // : 66.66%; }.
- 46, 99, 111, 108, 45, 55, 32, 123, 32, 119, 105, 100, // .col-7 { wid
- 116, 104, 58, 32, 53, 56, 46, 51, 51, 37, 59, 32, // th: 58.33%;
- 125, 10, 46, 99, 111, 108, 45, 54, 32, 123, 32, 119, // }..col-6 { w
- 105, 100, 116, 104, 58, 32, 53, 48, 37, 59, 32, 125, // idth: 50%; }
- 10, 46, 99, 111, 108, 45, 53, 32, 123, 32, 119, 105, // ..col-5 { wi
- 100, 116, 104, 58, 32, 52, 49, 46, 54, 54, 37, 59, // dth: 41.66%;
- 32, 125, 10, 46, 99, 111, 108, 45, 52, 32, 123, 32, // }..col-4 {
- 119, 105, 100, 116, 104, 58, 32, 51, 51, 46, 51, 51, // width: 33.33
- 37, 59, 32, 125, 10, 46, 99, 111, 108, 45, 51, 32, // %; }..col-3
- 123, 32, 119, 105, 100, 116, 104, 58, 32, 50, 53, 37, // { width: 25%
- 59, 32, 125, 10, 46, 99, 111, 108, 45, 50, 32, 123, // ; }..col-2 {
- 32, 119, 105, 100, 116, 104, 58, 32, 49, 54, 46, 54, // width: 16.6
- 54, 37, 59, 32, 125, 10, 46, 99, 111, 108, 45, 49, // 6%; }..col-1
- 32, 123, 32, 119, 105, 100, 116, 104, 58, 32, 56, 46, // { width: 8.
- 51, 51, 37, 59, 32, 125, 10, 64, 109, 101, 100, 105, // 33%; }.@medi
- 97, 32, 40, 109, 105, 110, 45, 119, 105, 100, 116, 104, // a (min-width
- 58, 32, 49, 51, 49, 48, 112, 120, 41, 32, 123, 32, // : 1310px) {
- 46, 99, 111, 110, 116, 97, 105, 110, 101, 114, 32, 123, // .container {
- 32, 109, 97, 114, 103, 105, 110, 58, 32, 97, 117, 116, // margin: aut
- 111, 59, 32, 119, 105, 100, 116, 104, 58, 32, 49, 50, // o; width: 12
- 55, 48, 112, 120, 59, 32, 125, 32, 125, 10, 64, 109, // 70px; } }.@m
- 101, 100, 105, 97, 32, 40, 109, 97, 120, 45, 119, 105, // edia (max-wi
- 100, 116, 104, 58, 32, 57, 50, 48, 112, 120, 41, 32, // dth: 920px)
- 123, 32, 46, 114, 111, 119, 32, 46, 99, 111, 108, 32, // { .row .col
- 123, 32, 119, 105, 100, 116, 104, 58, 32, 49, 48, 48, // { width: 100
- 37, 59, 32, 125, 32, 125, 10, 0 // %; } }.
-};
-static const unsigned char v6[] = {
- 60, 33, 68, 79, 67, 84, 89, 80, 69, 32, 104, 116, // .. <
- 104, 101, 97, 100, 62, 10, 32, 32, 32, 32, 60, 116, // head>. Device
- 68, 97, 115, 104, 98, 111, 97, 114, 100, 60, 47, 116, // Dashboard. .
- 32, 32, 32, 60, 109, 101, 116, 97, 32, 104, 116, 116, // .
- 32, 32, 32, 60, 109, 101, 116, 97, 32, 110, 97, 109, // . .
- 10, 32, 32, 60, 98, 111, 100, 121, 62, 60, 47, 98, // . . .
- 10, 0 // .
-};
static const struct packed_file {
const char *name;
@@ -3966,12 +2795,11 @@ static const struct packed_file {
size_t size;
time_t mtime;
} packed_files[] = {
- {"/web_root/main.js.orig", v1, sizeof(v1), 1656079031},
- {"/web_root/preact.min.js", v2, sizeof(v2), 1655487950},
- {"/web_root/main.js", v3, sizeof(v3), 1656422708},
- {"/web_root/user.png", v4, sizeof(v4), 1655487950},
- {"/web_root/style.css", v5, sizeof(v5), 1655487950},
- {"/web_root/index.html", v6, sizeof(v6), 1655487950},
+ {"/web_root/index.html", v1, sizeof(v1), 1654437619},
+ {"/web_root/main.js", v2, sizeof(v2), 1656444283},
+ {"/web_root/preact.min.js", v3, sizeof(v3), 1652374364},
+ {"/web_root/style.css", v4, sizeof(v4), 1654709515},
+ {"/web_root/user.png", v5, sizeof(v5), 1626172939},
{NULL, NULL, 0, 0}
};
diff --git a/mongoose.c b/mongoose.c
index 1b9c8618..ac13edb5 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -4193,7 +4193,7 @@ void mg_connect_resolved(struct mg_connection *c) {
if ((rc = connect(FD(c), &usa.sa, slen)) == 0) {
mg_call(c, MG_EV_CONNECT, NULL);
} else if (mg_sock_would_block()) {
- MG_DEBUG(("%lu %p connect in progress...", c->id, c->fd));
+ MG_DEBUG(("%lu %p -> %x:%hu pend", c->id, c->fd, c->rem.ip, c->rem.port));
c->is_connecting = 1;
} else {
mg_error(c, "connect: %d", MG_SOCK_ERRNO);
@@ -4355,7 +4355,8 @@ static void mg_iotest(struct mg_mgr *mgr, int ms) {
// Socket not valid, ignore
} else {
fds[n].fd = FD(c);
- if (can_read(c)) fds[n].events = POLLIN;
+ fds[n].events = POLLERR;
+ if (can_read(c)) fds[n].events |= POLLIN;
if (can_write(c)) fds[n].events |= POLLOUT;
n++;
if (mg_tls_pending(c) > 0) ms = 0; // Don't wait if TLS is ready
@@ -4367,72 +4368,56 @@ static void mg_iotest(struct mg_mgr *mgr, int ms) {
} else {
n = 0;
for (struct mg_connection *c = mgr->conns; c != NULL; c = c->next) {
- if (skip_iotest(c)) {
- // Socket not valid, ignore
+ if (skip_iotest(c)) continue;
+ if (fds[n].revents & POLLERR) {
+ mg_error(c, "socket error");
} else {
c->is_readable = (unsigned) (fds[n].revents & POLLIN ? 1 : 0);
c->is_writable = (unsigned) (fds[n].revents & POLLOUT ? 1 : 0);
if (mg_tls_pending(c) > 0) c->is_readable = 1;
- fds[n].revents = 0;
- n++;
}
+ n++;
}
}
#else
struct timeval tv = {ms / 1000, (ms % 1000) * 1000}, tv_zero = {0, 0};
struct mg_connection *c;
- fd_set rset, wset;
+ fd_set rset, wset, eset;
SOCKET maxfd = 0;
int rc;
- FD_ZERO(&rset);
- FD_ZERO(&wset);
-
+ FD_ZERO(&rset), FD_ZERO(&wset), FD_ZERO(&eset);
for (c = mgr->conns; c != NULL; c = c->next) {
c->is_readable = c->is_writable = 0;
if (skip_iotest(c)) continue;
+ FD_SET(FD(c), &eset);
if (can_read(c)) FD_SET(FD(c), &rset);
if (can_write(c)) FD_SET(FD(c), &wset);
if (mg_tls_pending(c) > 0) tv = tv_zero;
if (FD(c) > maxfd) maxfd = FD(c);
}
- if ((rc = select((int) maxfd + 1, &rset, &wset, NULL, &tv)) < 0) {
+ if ((rc = select((int) maxfd + 1, &rset, &wset, &eset, &tv)) < 0) {
#if MG_ARCH == MG_ARCH_WIN32
if (maxfd == 0) Sleep(ms); // On Windows, select fails if no sockets
#else
MG_ERROR(("select: %d %d", rc, MG_SOCK_ERRNO));
#endif
- FD_ZERO(&rset);
- FD_ZERO(&wset);
+ FD_ZERO(&rset), FD_ZERO(&wset), FD_ZERO(&eset);
}
for (c = mgr->conns; c != NULL; c = c->next) {
- c->is_readable = FD(c) != INVALID_SOCKET && FD_ISSET(FD(c), &rset);
- c->is_writable = FD(c) != INVALID_SOCKET && FD_ISSET(FD(c), &wset);
- if (mg_tls_pending(c) > 0) c->is_readable = 1;
+ if (FD(c) != INVALID_SOCKET && FD_ISSET(FD(c), &eset)) {
+ mg_error(c, "socket error");
+ } else {
+ c->is_readable = FD(c) != INVALID_SOCKET && FD_ISSET(FD(c), &rset);
+ c->is_writable = FD(c) != INVALID_SOCKET && FD_ISSET(FD(c), &wset);
+ if (mg_tls_pending(c) > 0) c->is_readable = 1;
+ }
}
#endif
}
-static void connect_conn(struct mg_connection *c) {
- int rc = 0;
-#if (MG_ARCH != MG_ARCH_FREERTOS_TCP) && (MG_ARCH != MG_ARCH_RTX)
- socklen_t len = sizeof(rc);
- if (getsockopt(FD(c), SOL_SOCKET, SO_ERROR, (char *) &rc, &len)) rc = 1;
-#endif
- if (rc == EAGAIN || rc == EWOULDBLOCK) rc = 0;
- c->is_connecting = 0;
- if (rc) {
- char buf[50];
- mg_error(c, "error connecting to %s",
- mg_straddr(&c->rem, buf, sizeof(buf)));
- } else {
- if (c->is_tls_hs) mg_tls_handshake(c);
- mg_call(c, MG_EV_CONNECT, NULL);
- }
-}
-
void mg_mgr_poll(struct mg_mgr *mgr, int ms) {
struct mg_connection *c, *tmp;
uint64_t now;
@@ -4453,7 +4438,11 @@ void mg_mgr_poll(struct mg_mgr *mgr, int ms) {
} else if (c->is_listening && c->is_udp == 0) {
if (c->is_readable) accept_conn(mgr, c);
} else if (c->is_connecting) {
- if (c->is_readable || c->is_writable) connect_conn(c);
+ if (c->is_readable || c->is_writable) {
+ c->is_connecting = 0;
+ mg_call(c, MG_EV_CONNECT, NULL);
+ if (c->is_tls_hs) mg_tls_handshake(c);
+ }
} else if (c->is_tls_hs) {
if ((c->is_readable || c->is_writable)) mg_tls_handshake(c);
} else {
diff --git a/src/sock.c b/src/sock.c
index 38460b83..9b03c88a 100644
--- a/src/sock.c
+++ b/src/sock.c
@@ -351,7 +351,7 @@ void mg_connect_resolved(struct mg_connection *c) {
if ((rc = connect(FD(c), &usa.sa, slen)) == 0) {
mg_call(c, MG_EV_CONNECT, NULL);
} else if (mg_sock_would_block()) {
- MG_DEBUG(("%lu %p connect in progress...", c->id, c->fd));
+ MG_DEBUG(("%lu %p -> %x:%hu pend", c->id, c->fd, c->rem.ip, c->rem.port));
c->is_connecting = 1;
} else {
mg_error(c, "connect: %d", MG_SOCK_ERRNO);
@@ -513,7 +513,8 @@ static void mg_iotest(struct mg_mgr *mgr, int ms) {
// Socket not valid, ignore
} else {
fds[n].fd = FD(c);
- if (can_read(c)) fds[n].events = POLLIN;
+ fds[n].events = POLLERR;
+ if (can_read(c)) fds[n].events |= POLLIN;
if (can_write(c)) fds[n].events |= POLLOUT;
n++;
if (mg_tls_pending(c) > 0) ms = 0; // Don't wait if TLS is ready
@@ -525,72 +526,56 @@ static void mg_iotest(struct mg_mgr *mgr, int ms) {
} else {
n = 0;
for (struct mg_connection *c = mgr->conns; c != NULL; c = c->next) {
- if (skip_iotest(c)) {
- // Socket not valid, ignore
+ if (skip_iotest(c)) continue;
+ if (fds[n].revents & POLLERR) {
+ mg_error(c, "socket error");
} else {
c->is_readable = (unsigned) (fds[n].revents & POLLIN ? 1 : 0);
c->is_writable = (unsigned) (fds[n].revents & POLLOUT ? 1 : 0);
if (mg_tls_pending(c) > 0) c->is_readable = 1;
- fds[n].revents = 0;
- n++;
}
+ n++;
}
}
#else
struct timeval tv = {ms / 1000, (ms % 1000) * 1000}, tv_zero = {0, 0};
struct mg_connection *c;
- fd_set rset, wset;
+ fd_set rset, wset, eset;
SOCKET maxfd = 0;
int rc;
- FD_ZERO(&rset);
- FD_ZERO(&wset);
-
+ FD_ZERO(&rset), FD_ZERO(&wset), FD_ZERO(&eset);
for (c = mgr->conns; c != NULL; c = c->next) {
c->is_readable = c->is_writable = 0;
if (skip_iotest(c)) continue;
+ FD_SET(FD(c), &eset);
if (can_read(c)) FD_SET(FD(c), &rset);
if (can_write(c)) FD_SET(FD(c), &wset);
if (mg_tls_pending(c) > 0) tv = tv_zero;
if (FD(c) > maxfd) maxfd = FD(c);
}
- if ((rc = select((int) maxfd + 1, &rset, &wset, NULL, &tv)) < 0) {
+ if ((rc = select((int) maxfd + 1, &rset, &wset, &eset, &tv)) < 0) {
#if MG_ARCH == MG_ARCH_WIN32
if (maxfd == 0) Sleep(ms); // On Windows, select fails if no sockets
#else
MG_ERROR(("select: %d %d", rc, MG_SOCK_ERRNO));
#endif
- FD_ZERO(&rset);
- FD_ZERO(&wset);
+ FD_ZERO(&rset), FD_ZERO(&wset), FD_ZERO(&eset);
}
for (c = mgr->conns; c != NULL; c = c->next) {
- c->is_readable = FD(c) != INVALID_SOCKET && FD_ISSET(FD(c), &rset);
- c->is_writable = FD(c) != INVALID_SOCKET && FD_ISSET(FD(c), &wset);
- if (mg_tls_pending(c) > 0) c->is_readable = 1;
+ if (FD(c) != INVALID_SOCKET && FD_ISSET(FD(c), &eset)) {
+ mg_error(c, "socket error");
+ } else {
+ c->is_readable = FD(c) != INVALID_SOCKET && FD_ISSET(FD(c), &rset);
+ c->is_writable = FD(c) != INVALID_SOCKET && FD_ISSET(FD(c), &wset);
+ if (mg_tls_pending(c) > 0) c->is_readable = 1;
+ }
}
#endif
}
-static void connect_conn(struct mg_connection *c) {
- int rc = 0;
-#if (MG_ARCH != MG_ARCH_FREERTOS_TCP) && (MG_ARCH != MG_ARCH_RTX)
- socklen_t len = sizeof(rc);
- if (getsockopt(FD(c), SOL_SOCKET, SO_ERROR, (char *) &rc, &len)) rc = 1;
-#endif
- if (rc == EAGAIN || rc == EWOULDBLOCK) rc = 0;
- c->is_connecting = 0;
- if (rc) {
- char buf[50];
- mg_error(c, "error connecting to %s",
- mg_straddr(&c->rem, buf, sizeof(buf)));
- } else {
- if (c->is_tls_hs) mg_tls_handshake(c);
- mg_call(c, MG_EV_CONNECT, NULL);
- }
-}
-
void mg_mgr_poll(struct mg_mgr *mgr, int ms) {
struct mg_connection *c, *tmp;
uint64_t now;
@@ -611,7 +596,11 @@ void mg_mgr_poll(struct mg_mgr *mgr, int ms) {
} else if (c->is_listening && c->is_udp == 0) {
if (c->is_readable) accept_conn(mgr, c);
} else if (c->is_connecting) {
- if (c->is_readable || c->is_writable) connect_conn(c);
+ if (c->is_readable || c->is_writable) {
+ c->is_connecting = 0;
+ mg_call(c, MG_EV_CONNECT, NULL);
+ if (c->is_tls_hs) mg_tls_handshake(c);
+ }
} else if (c->is_tls_hs) {
if ((c->is_readable || c->is_writable)) mg_tls_handshake(c);
} else {
diff --git a/test/unit_test.c b/test/unit_test.c
index 23a72f06..ea0c7c5f 100644
--- a/test/unit_test.c
+++ b/test/unit_test.c
@@ -1,6 +1,7 @@
+#include "mongoose.h"
+
#include "float.h" // For DBL_EPSILON and HUGE_VAL
#include "math.h"
-#include "mongoose.h"
static int s_num_tests = 0;
@@ -606,7 +607,7 @@ static void test_ws(void) {
static void eh9(struct mg_connection *c, int ev, void *ev_data, void *fn_data) {
if (ev == MG_EV_ERROR) {
- ASSERT(!strcmp((char *) ev_data, "error connecting to 127.0.0.1:55117"));
+ ASSERT(!strcmp((char *) ev_data, "socket error"));
*(int *) fn_data = 7;
}
(void) c;