summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@open-infrastructure.net>2023-02-13 19:43:51 +0000
committerDaniel Baumann <daniel.baumann@open-infrastructure.net>2023-02-13 19:43:51 +0000
commitf73f2356820468344757dbb9d7f3ec73ece7bf66 (patch)
treecc4d1f8559ab8d0e73f4efed80c1f5c866501a12
parentReworking container version command in python. (diff)
downloadcompute-tools-next+web.tar.xz
compute-tools-next+web.zip
Updating.next+web
Signed-off-by: Daniel Baumann <daniel.baumann@open-infrastructure.net>
-rw-r--r--web/Makefile4
-rw-r--r--web/TMP/tools.html273
-rwxr-xr-xweb/TMP/tools.py269
-rw-r--r--web/TMP/tools/api/index.html11
-rwxr-xr-xweb/TMP/tools/api/v0/dns/a/index.py93
-rwxr-xr-xweb/TMP/tools/api/v0/ip/address/index.py70
-rwxr-xr-xweb/TMP/tools/api/v0/ipv4/address/index.py62
-rwxr-xr-xweb/TMP/tools/api/v0/ipv6/address/index.py62
-rw-r--r--web/TODO.txt10
-rw-r--r--web/_static/asciinema-player.v3.0.11
-rw-r--r--web/_static/asciinema-player/asciinema-player.css2508
-rw-r--r--web/_static/asciinema-player/asciinema-player.min.js1
-rw-r--r--web/_static/bootstrap-icons.v1.9.11
-rw-r--r--web/_static/bootstrap-icons/1-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/1-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/1-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/1-square.svg4
-rw-r--r--web/_static/bootstrap-icons/123.svg3
-rw-r--r--web/_static/bootstrap-icons/2-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/2-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/2-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/2-square.svg4
-rw-r--r--web/_static/bootstrap-icons/3-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/3-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/3-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/3-square.svg4
-rw-r--r--web/_static/bootstrap-icons/4-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/4-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/4-square-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/4-square.svg4
-rw-r--r--web/_static/bootstrap-icons/5-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/5-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/5-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/5-square.svg4
-rw-r--r--web/_static/bootstrap-icons/6-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/6-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/6-square-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/6-square.svg4
-rw-r--r--web/_static/bootstrap-icons/7-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/7-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/7-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/7-square.svg4
-rw-r--r--web/_static/bootstrap-icons/8-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/8-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/8-square-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/8-square.svg4
-rw-r--r--web/_static/bootstrap-icons/9-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/9-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/9-square-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/9-square.svg4
-rw-r--r--web/_static/bootstrap-icons/activity.svg3
-rw-r--r--web/_static/bootstrap-icons/airplane-engines-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/airplane-engines.svg3
-rw-r--r--web/_static/bootstrap-icons/airplane-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/airplane.svg3
-rw-r--r--web/_static/bootstrap-icons/alarm-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/alarm.svg4
-rw-r--r--web/_static/bootstrap-icons/alexa.svg3
-rw-r--r--web/_static/bootstrap-icons/align-bottom.svg4
-rw-r--r--web/_static/bootstrap-icons/align-center.svg3
-rw-r--r--web/_static/bootstrap-icons/align-end.svg4
-rw-r--r--web/_static/bootstrap-icons/align-middle.svg3
-rw-r--r--web/_static/bootstrap-icons/align-start.svg4
-rw-r--r--web/_static/bootstrap-icons/align-top.svg4
-rw-r--r--web/_static/bootstrap-icons/alipay.svg4
-rw-r--r--web/_static/bootstrap-icons/alt.svg3
-rw-r--r--web/_static/bootstrap-icons/android.svg3
-rw-r--r--web/_static/bootstrap-icons/android2.svg3
-rw-r--r--web/_static/bootstrap-icons/app-indicator.svg4
-rw-r--r--web/_static/bootstrap-icons/app.svg3
-rw-r--r--web/_static/bootstrap-icons/apple.svg4
-rw-r--r--web/_static/bootstrap-icons/archive-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/archive.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-90deg-down.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-90deg-left.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-90deg-right.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-90deg-up.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-bar-down.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-bar-left.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-bar-right.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-bar-up.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-clockwise.svg4
-rw-r--r--web/_static/bootstrap-icons/arrow-counterclockwise.svg4
-rw-r--r--web/_static/bootstrap-icons/arrow-down-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-left-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-left-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-left-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-left-square.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-left.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-right-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-right-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-right-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-right-square.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-right.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-short.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-square.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down-up.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-down.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-left-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-left-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-left-right.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-left-short.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-left-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-left-square.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-left.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-repeat.svg4
-rw-r--r--web/_static/bootstrap-icons/arrow-return-left.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-return-right.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-right-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-right-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-right-short.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-right-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-right-square.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-right.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-through-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-through-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-left-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-left-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-left-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-left-square.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-left.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-right-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-right-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-right-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-right-square.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-right.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-short.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up-square.svg3
-rw-r--r--web/_static/bootstrap-icons/arrow-up.svg3
-rw-r--r--web/_static/bootstrap-icons/arrows-angle-contract.svg3
-rw-r--r--web/_static/bootstrap-icons/arrows-angle-expand.svg3
-rw-r--r--web/_static/bootstrap-icons/arrows-collapse.svg3
-rw-r--r--web/_static/bootstrap-icons/arrows-expand.svg3
-rw-r--r--web/_static/bootstrap-icons/arrows-fullscreen.svg3
-rw-r--r--web/_static/bootstrap-icons/arrows-move.svg3
-rw-r--r--web/_static/bootstrap-icons/aspect-ratio-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/aspect-ratio.svg4
-rw-r--r--web/_static/bootstrap-icons/asterisk.svg3
-rw-r--r--web/_static/bootstrap-icons/at.svg3
-rw-r--r--web/_static/bootstrap-icons/award-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/award.svg4
-rw-r--r--web/_static/bootstrap-icons/back.svg3
-rw-r--r--web/_static/bootstrap-icons/backspace-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/backspace-reverse-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/backspace-reverse.svg4
-rw-r--r--web/_static/bootstrap-icons/backspace.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-3d-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-3d.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-4k-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-4k.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-8k-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-8k.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-ad-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-ad.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-ar-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-ar.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-cc-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/badge-cc.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-hd-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-hd.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-sd-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-sd.svg3
-rw-r--r--web/_static/bootstrap-icons/badge-tm-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/badge-tm.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-vo-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-vo.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-vr-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-vr.svg4
-rw-r--r--web/_static/bootstrap-icons/badge-wc-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/badge-wc.svg4
-rw-r--r--web/_static/bootstrap-icons/bag-check-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bag-check.svg4
-rw-r--r--web/_static/bootstrap-icons/bag-dash-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bag-dash.svg4
-rw-r--r--web/_static/bootstrap-icons/bag-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bag-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bag-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/bag-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bag-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/bag-x-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bag-x.svg4
-rw-r--r--web/_static/bootstrap-icons/bag.svg3
-rw-r--r--web/_static/bootstrap-icons/balloon-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/balloon-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/balloon-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/balloon.svg3
-rw-r--r--web/_static/bootstrap-icons/bandaid-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bandaid.svg4
-rw-r--r--web/_static/bootstrap-icons/bank.svg3
-rw-r--r--web/_static/bootstrap-icons/bank2.svg3
-rw-r--r--web/_static/bootstrap-icons/bar-chart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bar-chart-line-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bar-chart-line.svg3
-rw-r--r--web/_static/bootstrap-icons/bar-chart-steps.svg3
-rw-r--r--web/_static/bootstrap-icons/bar-chart.svg3
-rw-r--r--web/_static/bootstrap-icons/basket-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/basket.svg3
-rw-r--r--web/_static/bootstrap-icons/basket2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/basket2.svg4
-rw-r--r--web/_static/bootstrap-icons/basket3-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/basket3.svg3
-rw-r--r--web/_static/bootstrap-icons/battery-charging.svg6
-rw-r--r--web/_static/bootstrap-icons/battery-full.svg4
-rw-r--r--web/_static/bootstrap-icons/battery-half.svg4
-rw-r--r--web/_static/bootstrap-icons/battery.svg3
-rw-r--r--web/_static/bootstrap-icons/behance.svg3
-rw-r--r--web/_static/bootstrap-icons/bell-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bell-slash-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bell-slash.svg3
-rw-r--r--web/_static/bootstrap-icons/bell.svg3
-rw-r--r--web/_static/bootstrap-icons/bezier.svg4
-rw-r--r--web/_static/bootstrap-icons/bezier2.svg3
-rw-r--r--web/_static/bootstrap-icons/bicycle.svg3
-rw-r--r--web/_static/bootstrap-icons/binoculars-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/binoculars.svg3
-rw-r--r--web/_static/bootstrap-icons/blockquote-left.svg3
-rw-r--r--web/_static/bootstrap-icons/blockquote-right.svg3
-rw-r--r--web/_static/bootstrap-icons/bluetooth.svg3
-rw-r--r--web/_static/bootstrap-icons/body-text.svg3
-rw-r--r--web/_static/bootstrap-icons/book-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/book-half.svg3
-rw-r--r--web/_static/bootstrap-icons/book.svg3
-rw-r--r--web/_static/bootstrap-icons/bookmark-check-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bookmark-check.svg4
-rw-r--r--web/_static/bootstrap-icons/bookmark-dash-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bookmark-dash.svg4
-rw-r--r--web/_static/bootstrap-icons/bookmark-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bookmark-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bookmark-heart.svg4
-rw-r--r--web/_static/bootstrap-icons/bookmark-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bookmark-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/bookmark-star-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bookmark-star.svg4
-rw-r--r--web/_static/bootstrap-icons/bookmark-x-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bookmark-x.svg4
-rw-r--r--web/_static/bootstrap-icons/bookmark.svg3
-rw-r--r--web/_static/bootstrap-icons/bookmarks-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/bookmarks.svg4
-rw-r--r--web/_static/bootstrap-icons/bookshelf.svg3
-rw-r--r--web/_static/bootstrap-icons/boombox-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/boombox.svg6
-rw-r--r--web/_static/bootstrap-icons/bootstrap-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/bootstrap-icons.css1876
-rw-r--r--web/_static/bootstrap-icons/bootstrap-icons.json1856
-rw-r--r--web/_static/bootstrap-icons/bootstrap-icons.scss3738
-rw-r--r--web/_static/bootstrap-icons/bootstrap-icons.svg1
-rw-r--r--web/_static/bootstrap-icons/bootstrap-reboot.svg4
-rw-r--r--web/_static/bootstrap-icons/bootstrap.svg4
-rw-r--r--web/_static/bootstrap-icons/border-all.svg3
-rw-r--r--web/_static/bootstrap-icons/border-bottom.svg3
-rw-r--r--web/_static/bootstrap-icons/border-center.svg3
-rw-r--r--web/_static/bootstrap-icons/border-inner.svg5
-rw-r--r--web/_static/bootstrap-icons/border-left.svg3
-rw-r--r--web/_static/bootstrap-icons/border-middle.svg3
-rw-r--r--web/_static/bootstrap-icons/border-outer.svg4
-rw-r--r--web/_static/bootstrap-icons/border-right.svg3
-rw-r--r--web/_static/bootstrap-icons/border-style.svg3
-rw-r--r--web/_static/bootstrap-icons/border-top.svg3
-rw-r--r--web/_static/bootstrap-icons/border-width.svg3
-rw-r--r--web/_static/bootstrap-icons/border.svg3
-rw-r--r--web/_static/bootstrap-icons/bounding-box-circles.svg3
-rw-r--r--web/_static/bootstrap-icons/bounding-box.svg3
-rw-r--r--web/_static/bootstrap-icons/box-arrow-down-left.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-down-right.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-down.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-in-down-left.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-in-down-right.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-in-down.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-in-left.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-in-right.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-in-up-left.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-in-up-right.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-in-up.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-left.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-right.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-up-left.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-up-right.svg4
-rw-r--r--web/_static/bootstrap-icons/box-arrow-up.svg4
-rw-r--r--web/_static/bootstrap-icons/box-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/box-seam-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/box-seam.svg3
-rw-r--r--web/_static/bootstrap-icons/box.svg3
-rw-r--r--web/_static/bootstrap-icons/box2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/box2-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/box2-heart.svg4
-rw-r--r--web/_static/bootstrap-icons/box2.svg3
-rw-r--r--web/_static/bootstrap-icons/boxes.svg3
-rw-r--r--web/_static/bootstrap-icons/braces-asterisk.svg3
-rw-r--r--web/_static/bootstrap-icons/braces.svg3
-rw-r--r--web/_static/bootstrap-icons/bricks.svg3
-rw-r--r--web/_static/bootstrap-icons/briefcase-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/briefcase.svg3
-rw-r--r--web/_static/bootstrap-icons/brightness-alt-high-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/brightness-alt-high.svg3
-rw-r--r--web/_static/bootstrap-icons/brightness-alt-low-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/brightness-alt-low.svg3
-rw-r--r--web/_static/bootstrap-icons/brightness-high-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/brightness-high.svg3
-rw-r--r--web/_static/bootstrap-icons/brightness-low-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/brightness-low.svg3
-rw-r--r--web/_static/bootstrap-icons/broadcast-pin.svg3
-rw-r--r--web/_static/bootstrap-icons/broadcast.svg3
-rw-r--r--web/_static/bootstrap-icons/browser-chrome.svg3
-rw-r--r--web/_static/bootstrap-icons/browser-edge.svg5
-rw-r--r--web/_static/bootstrap-icons/browser-firefox.svg3
-rw-r--r--web/_static/bootstrap-icons/browser-safari.svg3
-rw-r--r--web/_static/bootstrap-icons/brush-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/brush.svg3
-rw-r--r--web/_static/bootstrap-icons/bucket-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/bucket.svg3
-rw-r--r--web/_static/bootstrap-icons/bug-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/bug.svg3
-rw-r--r--web/_static/bootstrap-icons/building.svg4
-rw-r--r--web/_static/bootstrap-icons/bullseye.svg6
-rw-r--r--web/_static/bootstrap-icons/c-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/c-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/c-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/c-square.svg4
-rw-r--r--web/_static/bootstrap-icons/calculator-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calculator.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-check-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-check.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-date-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-date.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-day-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-day.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-event-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-event.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-minus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-minus.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-month-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-month.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-range-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-range.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-week-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-week.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar-x-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar-x.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-check-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-check.svg5
-rw-r--r--web/_static/bootstrap-icons/calendar2-date-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar2-date.svg5
-rw-r--r--web/_static/bootstrap-icons/calendar2-day-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-day.svg5
-rw-r--r--web/_static/bootstrap-icons/calendar2-event-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-event.svg5
-rw-r--r--web/_static/bootstrap-icons/calendar2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-minus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-minus.svg5
-rw-r--r--web/_static/bootstrap-icons/calendar2-month-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar2-month.svg5
-rw-r--r--web/_static/bootstrap-icons/calendar2-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar2-range-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-range.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar2-week-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-week.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar2-x-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar2-x.svg5
-rw-r--r--web/_static/bootstrap-icons/calendar2.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar3-event-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar3-event.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar3-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar3-range-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar3-range.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar3-week-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/calendar3-week.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar3.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar4-event.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar4-range.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar4-week.svg4
-rw-r--r--web/_static/bootstrap-icons/calendar4.svg3
-rw-r--r--web/_static/bootstrap-icons/camera-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/camera-reels-fill.svg5
-rw-r--r--web/_static/bootstrap-icons/camera-reels.svg5
-rw-r--r--web/_static/bootstrap-icons/camera-video-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/camera-video-off-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/camera-video-off.svg3
-rw-r--r--web/_static/bootstrap-icons/camera-video.svg3
-rw-r--r--web/_static/bootstrap-icons/camera.svg4
-rw-r--r--web/_static/bootstrap-icons/camera2.svg4
-rw-r--r--web/_static/bootstrap-icons/capslock-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/capslock.svg3
-rw-r--r--web/_static/bootstrap-icons/capsule-pill.svg3
-rw-r--r--web/_static/bootstrap-icons/capsule.svg3
-rw-r--r--web/_static/bootstrap-icons/car-front-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/car-front.svg4
-rw-r--r--web/_static/bootstrap-icons/card-checklist.svg4
-rw-r--r--web/_static/bootstrap-icons/card-heading.svg4
-rw-r--r--web/_static/bootstrap-icons/card-image.svg4
-rw-r--r--web/_static/bootstrap-icons/card-list.svg4
-rw-r--r--web/_static/bootstrap-icons/card-text.svg4
-rw-r--r--web/_static/bootstrap-icons/caret-down-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-down-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-down-square.svg4
-rw-r--r--web/_static/bootstrap-icons/caret-down.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-left-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-left-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-left-square.svg4
-rw-r--r--web/_static/bootstrap-icons/caret-left.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-right-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-right-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-right-square.svg4
-rw-r--r--web/_static/bootstrap-icons/caret-right.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-up-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-up-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/caret-up-square.svg4
-rw-r--r--web/_static/bootstrap-icons/caret-up.svg3
-rw-r--r--web/_static/bootstrap-icons/cart-check-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cart-check.svg4
-rw-r--r--web/_static/bootstrap-icons/cart-dash-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cart-dash.svg4
-rw-r--r--web/_static/bootstrap-icons/cart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cart-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cart-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/cart-x-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cart-x.svg4
-rw-r--r--web/_static/bootstrap-icons/cart.svg3
-rw-r--r--web/_static/bootstrap-icons/cart2.svg3
-rw-r--r--web/_static/bootstrap-icons/cart3.svg3
-rw-r--r--web/_static/bootstrap-icons/cart4.svg3
-rw-r--r--web/_static/bootstrap-icons/cash-coin.svg6
-rw-r--r--web/_static/bootstrap-icons/cash-stack.svg4
-rw-r--r--web/_static/bootstrap-icons/cash.svg4
-rw-r--r--web/_static/bootstrap-icons/cassette-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/cassette.svg4
-rw-r--r--web/_static/bootstrap-icons/cast.svg4
-rw-r--r--web/_static/bootstrap-icons/cc-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cc-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/cc-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cc-square.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-dots-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-dots.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-left-dots-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-left-dots.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-left-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-left-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-left-heart.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-left-quote-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-left-quote.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-left-text-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-left-text.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-left.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-quote-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-quote.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-right-dots-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-right-dots.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-right-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-right-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-right-heart.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-right-quote-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-right-quote.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-right-text-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-right-text.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-right.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-square-dots-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-square-dots.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-square-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-square-heart.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-square-quote-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-square-quote.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-square-text-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-square-text.svg4
-rw-r--r--web/_static/bootstrap-icons/chat-square.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-text-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/chat-text.svg4
-rw-r--r--web/_static/bootstrap-icons/chat.svg3
-rw-r--r--web/_static/bootstrap-icons/check-all.svg3
-rw-r--r--web/_static/bootstrap-icons/check-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/check-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/check-lg.svg3
-rw-r--r--web/_static/bootstrap-icons/check-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/check-square.svg4
-rw-r--r--web/_static/bootstrap-icons/check.svg3
-rw-r--r--web/_static/bootstrap-icons/check2-all.svg4
-rw-r--r--web/_static/bootstrap-icons/check2-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/check2-square.svg4
-rw-r--r--web/_static/bootstrap-icons/check2.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-bar-contract.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-bar-down.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-bar-expand.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-bar-left.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-bar-right.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-bar-up.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-compact-down.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-compact-left.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-compact-right.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-compact-up.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-contract.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-double-down.svg4
-rw-r--r--web/_static/bootstrap-icons/chevron-double-left.svg4
-rw-r--r--web/_static/bootstrap-icons/chevron-double-right.svg4
-rw-r--r--web/_static/bootstrap-icons/chevron-double-up.svg4
-rw-r--r--web/_static/bootstrap-icons/chevron-down.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-expand.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-left.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-right.svg3
-rw-r--r--web/_static/bootstrap-icons/chevron-up.svg3
-rw-r--r--web/_static/bootstrap-icons/circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/circle-half.svg3
-rw-r--r--web/_static/bootstrap-icons/circle-square.svg4
-rw-r--r--web/_static/bootstrap-icons/circle.svg3
-rw-r--r--web/_static/bootstrap-icons/clipboard-check-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard-check.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard-data-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard-data.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/clipboard-heart-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard-heart.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard-minus-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard-minus.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard-plus-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard-plus.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard-pulse.svg3
-rw-r--r--web/_static/bootstrap-icons/clipboard-x-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard-x.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard2-check-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard2-check.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard2-data-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard2-data.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard2-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard2-heart-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard2-heart.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard2-minus-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard2-minus.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard2-plus-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard2-plus.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard2-pulse-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard2-pulse.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard2-x-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clipboard2-x.svg5
-rw-r--r--web/_static/bootstrap-icons/clipboard2.svg4
-rw-r--r--web/_static/bootstrap-icons/clock-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/clock-history.svg5
-rw-r--r--web/_static/bootstrap-icons/clock.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-arrow-down-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-arrow-down.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-arrow-up-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-arrow-up.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-check-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-check.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-download-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-download.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-drizzle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-drizzle.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-fog-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-fog.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-fog2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-fog2.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-hail-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-hail.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-haze-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-haze.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-haze2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-haze2.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-lightning-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-lightning-rain-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-lightning-rain.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-lightning.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-minus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-minus.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-moon-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-moon.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-rain-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-rain-heavy-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-rain-heavy.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-rain.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-slash-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-slash.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-sleet-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-sleet.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-snow-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-snow.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-sun-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-sun.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud-upload-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloud-upload.svg4
-rw-r--r--web/_static/bootstrap-icons/cloud.svg3
-rw-r--r--web/_static/bootstrap-icons/clouds-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/clouds.svg4
-rw-r--r--web/_static/bootstrap-icons/cloudy-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cloudy.svg3
-rw-r--r--web/_static/bootstrap-icons/code-slash.svg3
-rw-r--r--web/_static/bootstrap-icons/code-square.svg4
-rw-r--r--web/_static/bootstrap-icons/code.svg3
-rw-r--r--web/_static/bootstrap-icons/coin.svg5
-rw-r--r--web/_static/bootstrap-icons/collection-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/collection-play-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/collection-play.svg4
-rw-r--r--web/_static/bootstrap-icons/collection.svg3
-rw-r--r--web/_static/bootstrap-icons/columns-gap.svg3
-rw-r--r--web/_static/bootstrap-icons/columns.svg3
-rw-r--r--web/_static/bootstrap-icons/command.svg3
-rw-r--r--web/_static/bootstrap-icons/compass-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/compass.svg4
-rw-r--r--web/_static/bootstrap-icons/cone-striped.svg3
-rw-r--r--web/_static/bootstrap-icons/cone.svg3
-rw-r--r--web/_static/bootstrap-icons/controller.svg4
-rw-r--r--web/_static/bootstrap-icons/cpu-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/cpu.svg3
-rw-r--r--web/_static/bootstrap-icons/credit-card-2-back-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/credit-card-2-back.svg4
-rw-r--r--web/_static/bootstrap-icons/credit-card-2-front-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/credit-card-2-front.svg4
-rw-r--r--web/_static/bootstrap-icons/credit-card-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/credit-card.svg4
-rw-r--r--web/_static/bootstrap-icons/crop.svg3
-rw-r--r--web/_static/bootstrap-icons/cup-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cup-hot-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/cup-hot.svg4
-rw-r--r--web/_static/bootstrap-icons/cup-straw.svg3
-rw-r--r--web/_static/bootstrap-icons/cup.svg3
-rw-r--r--web/_static/bootstrap-icons/currency-bitcoin.svg3
-rw-r--r--web/_static/bootstrap-icons/currency-dollar.svg3
-rw-r--r--web/_static/bootstrap-icons/currency-euro.svg3
-rw-r--r--web/_static/bootstrap-icons/currency-exchange.svg3
-rw-r--r--web/_static/bootstrap-icons/currency-pound.svg3
-rw-r--r--web/_static/bootstrap-icons/currency-rupee.svg3
-rw-r--r--web/_static/bootstrap-icons/currency-yen.svg3
-rw-r--r--web/_static/bootstrap-icons/cursor-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/cursor-text.svg3
-rw-r--r--web/_static/bootstrap-icons/cursor.svg3
-rw-r--r--web/_static/bootstrap-icons/dash-circle-dotted.svg3
-rw-r--r--web/_static/bootstrap-icons/dash-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/dash-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/dash-lg.svg3
-rw-r--r--web/_static/bootstrap-icons/dash-square-dotted.svg3
-rw-r--r--web/_static/bootstrap-icons/dash-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/dash-square.svg4
-rw-r--r--web/_static/bootstrap-icons/dash.svg3
-rw-r--r--web/_static/bootstrap-icons/device-hdd-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/device-hdd.svg5
-rw-r--r--web/_static/bootstrap-icons/device-ssd-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/device-ssd.svg4
-rw-r--r--web/_static/bootstrap-icons/diagram-2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/diagram-2.svg3
-rw-r--r--web/_static/bootstrap-icons/diagram-3-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/diagram-3.svg3
-rw-r--r--web/_static/bootstrap-icons/diamond-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/diamond-half.svg3
-rw-r--r--web/_static/bootstrap-icons/diamond.svg3
-rw-r--r--web/_static/bootstrap-icons/dice-1-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/dice-1.svg4
-rw-r--r--web/_static/bootstrap-icons/dice-2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/dice-2.svg4
-rw-r--r--web/_static/bootstrap-icons/dice-3-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/dice-3.svg4
-rw-r--r--web/_static/bootstrap-icons/dice-4-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/dice-4.svg4
-rw-r--r--web/_static/bootstrap-icons/dice-5-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/dice-5.svg4
-rw-r--r--web/_static/bootstrap-icons/dice-6-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/dice-6.svg4
-rw-r--r--web/_static/bootstrap-icons/disc-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/disc.svg4
-rw-r--r--web/_static/bootstrap-icons/discord.svg3
-rw-r--r--web/_static/bootstrap-icons/display-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/display.svg3
-rw-r--r--web/_static/bootstrap-icons/displayport-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/displayport.svg4
-rw-r--r--web/_static/bootstrap-icons/distribute-horizontal.svg4
-rw-r--r--web/_static/bootstrap-icons/distribute-vertical.svg4
-rw-r--r--web/_static/bootstrap-icons/door-closed-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/door-closed.svg4
-rw-r--r--web/_static/bootstrap-icons/door-open-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/door-open.svg4
-rw-r--r--web/_static/bootstrap-icons/dot.svg3
-rw-r--r--web/_static/bootstrap-icons/download.svg4
-rw-r--r--web/_static/bootstrap-icons/dpad-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/dpad.svg4
-rw-r--r--web/_static/bootstrap-icons/dribbble.svg3
-rw-r--r--web/_static/bootstrap-icons/dropbox.svg3
-rw-r--r--web/_static/bootstrap-icons/droplet-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/droplet-half.svg4
-rw-r--r--web/_static/bootstrap-icons/droplet.svg4
-rw-r--r--web/_static/bootstrap-icons/ear-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/ear.svg3
-rw-r--r--web/_static/bootstrap-icons/earbuds.svg3
-rw-r--r--web/_static/bootstrap-icons/easel-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/easel.svg3
-rw-r--r--web/_static/bootstrap-icons/easel2-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/easel2.svg3
-rw-r--r--web/_static/bootstrap-icons/easel3-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/easel3.svg3
-rw-r--r--web/_static/bootstrap-icons/egg-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/egg-fried.svg4
-rw-r--r--web/_static/bootstrap-icons/egg.svg3
-rw-r--r--web/_static/bootstrap-icons/eject-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/eject.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-angry-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-angry.svg4
-rw-r--r--web/_static/bootstrap-icons/emoji-dizzy-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-dizzy.svg4
-rw-r--r--web/_static/bootstrap-icons/emoji-expressionless-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-expressionless.svg4
-rw-r--r--web/_static/bootstrap-icons/emoji-frown-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-frown.svg4
-rw-r--r--web/_static/bootstrap-icons/emoji-heart-eyes-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-heart-eyes.svg4
-rw-r--r--web/_static/bootstrap-icons/emoji-kiss-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-kiss.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-laughing-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-laughing.svg4
-rw-r--r--web/_static/bootstrap-icons/emoji-neutral-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-neutral.svg4
-rw-r--r--web/_static/bootstrap-icons/emoji-smile-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-smile-upside-down-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-smile-upside-down.svg4
-rw-r--r--web/_static/bootstrap-icons/emoji-smile.svg4
-rw-r--r--web/_static/bootstrap-icons/emoji-sunglasses-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-sunglasses.svg4
-rw-r--r--web/_static/bootstrap-icons/emoji-wink-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/emoji-wink.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-check-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-check.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-dash-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-dash.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-exclamation-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-exclamation.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/envelope-heart-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/envelope-open-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/envelope-open-heart-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-open-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/envelope-open.svg3
-rw-r--r--web/_static/bootstrap-icons/envelope-paper-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/envelope-paper-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/envelope-paper-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/envelope-paper.svg3
-rw-r--r--web/_static/bootstrap-icons/envelope-plus-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-slash-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-slash.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-x-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope-x.svg4
-rw-r--r--web/_static/bootstrap-icons/envelope.svg3
-rw-r--r--web/_static/bootstrap-icons/eraser-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/eraser.svg3
-rw-r--r--web/_static/bootstrap-icons/escape.svg4
-rw-r--r--web/_static/bootstrap-icons/ethernet.svg4
-rw-r--r--web/_static/bootstrap-icons/ev-station-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/ev-station.svg4
-rw-r--r--web/_static/bootstrap-icons/exclamation-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/exclamation-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/exclamation-diamond-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/exclamation-diamond.svg4
-rw-r--r--web/_static/bootstrap-icons/exclamation-lg.svg3
-rw-r--r--web/_static/bootstrap-icons/exclamation-octagon-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/exclamation-octagon.svg4
-rw-r--r--web/_static/bootstrap-icons/exclamation-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/exclamation-square.svg4
-rw-r--r--web/_static/bootstrap-icons/exclamation-triangle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/exclamation-triangle.svg4
-rw-r--r--web/_static/bootstrap-icons/exclamation.svg3
-rw-r--r--web/_static/bootstrap-icons/exclude.svg3
-rw-r--r--web/_static/bootstrap-icons/explicit-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/explicit.svg4
-rw-r--r--web/_static/bootstrap-icons/eye-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/eye-slash-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/eye-slash.svg5
-rw-r--r--web/_static/bootstrap-icons/eye.svg4
-rw-r--r--web/_static/bootstrap-icons/eyedropper.svg3
-rw-r--r--web/_static/bootstrap-icons/eyeglasses.svg3
-rw-r--r--web/_static/bootstrap-icons/facebook.svg3
-rw-r--r--web/_static/bootstrap-icons/fan.svg4
-rw-r--r--web/_static/bootstrap-icons/fast-forward-btn-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/fast-forward-btn.svg4
-rw-r--r--web/_static/bootstrap-icons/fast-forward-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/fast-forward-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/fast-forward-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/fast-forward.svg4
-rw-r--r--web/_static/bootstrap-icons/file-arrow-down-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-arrow-down.svg4
-rw-r--r--web/_static/bootstrap-icons/file-arrow-up-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-arrow-up.svg4
-rw-r--r--web/_static/bootstrap-icons/file-bar-graph-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-bar-graph.svg4
-rw-r--r--web/_static/bootstrap-icons/file-binary-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-binary.svg4
-rw-r--r--web/_static/bootstrap-icons/file-break-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-break.svg3
-rw-r--r--web/_static/bootstrap-icons/file-check-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-check.svg4
-rw-r--r--web/_static/bootstrap-icons/file-code-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-code.svg4
-rw-r--r--web/_static/bootstrap-icons/file-diff-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-diff.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-arrow-down-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-arrow-down.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-arrow-up-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-arrow-up.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-bar-graph-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-bar-graph.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-binary-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-binary.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-break-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-break.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-check-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-check.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-code-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-code.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-diff-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-diff.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-easel-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-easel.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-excel-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-excel.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-font-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-font.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-image-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-image.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-lock-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-lock.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-lock2-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-lock2.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-medical-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-medical.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-minus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-minus.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-music-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-music.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-pdf-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-pdf.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-person-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-person.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-play-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-play.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-post-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-post.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-ppt-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-ppt.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-richtext-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-richtext.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-ruled-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-ruled.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-slides-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-slides.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-spreadsheet-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-spreadsheet.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-text-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-text.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-word-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-word.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-x-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-earmark-x.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-zip-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark-zip.svg4
-rw-r--r--web/_static/bootstrap-icons/file-earmark.svg3
-rw-r--r--web/_static/bootstrap-icons/file-easel-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-easel.svg4
-rw-r--r--web/_static/bootstrap-icons/file-excel-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-excel.svg4
-rw-r--r--web/_static/bootstrap-icons/file-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-font-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-font.svg4
-rw-r--r--web/_static/bootstrap-icons/file-image-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-image.svg4
-rw-r--r--web/_static/bootstrap-icons/file-lock-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-lock.svg4
-rw-r--r--web/_static/bootstrap-icons/file-lock2-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-lock2.svg4
-rw-r--r--web/_static/bootstrap-icons/file-medical-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-medical.svg4
-rw-r--r--web/_static/bootstrap-icons/file-minus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-minus.svg4
-rw-r--r--web/_static/bootstrap-icons/file-music-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-music.svg4
-rw-r--r--web/_static/bootstrap-icons/file-pdf-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-pdf.svg4
-rw-r--r--web/_static/bootstrap-icons/file-person-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-person.svg4
-rw-r--r--web/_static/bootstrap-icons/file-play-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-play.svg4
-rw-r--r--web/_static/bootstrap-icons/file-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/file-post-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-post.svg4
-rw-r--r--web/_static/bootstrap-icons/file-ppt-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-ppt.svg4
-rw-r--r--web/_static/bootstrap-icons/file-richtext-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-richtext.svg4
-rw-r--r--web/_static/bootstrap-icons/file-ruled-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-ruled.svg3
-rw-r--r--web/_static/bootstrap-icons/file-slides-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-slides.svg4
-rw-r--r--web/_static/bootstrap-icons/file-spreadsheet-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-spreadsheet.svg3
-rw-r--r--web/_static/bootstrap-icons/file-text-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-text.svg4
-rw-r--r--web/_static/bootstrap-icons/file-word-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-word.svg4
-rw-r--r--web/_static/bootstrap-icons/file-x-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/file-x.svg4
-rw-r--r--web/_static/bootstrap-icons/file-zip-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/file-zip.svg4
-rw-r--r--web/_static/bootstrap-icons/file.svg3
-rw-r--r--web/_static/bootstrap-icons/files-alt.svg3
-rw-r--r--web/_static/bootstrap-icons/files.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-aac.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-ai.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-bmp.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-cs.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-css.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-csv.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-doc.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-docx.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-exe.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-gif.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-heic.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-html.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-java.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-jpg.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-js.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-json.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-jsx.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-key.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-m4p.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-md.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-mdx.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-mov.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-mp3.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-mp4.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-otf.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-pdf.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-php.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-png.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-ppt.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-pptx.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-psd.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-py.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-raw.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-rb.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-sass.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-scss.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-sh.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-sql.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-svg.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-tiff.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-tsx.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-ttf.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-txt.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-wav.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-woff.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-xls.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-xlsx.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-xml.svg3
-rw-r--r--web/_static/bootstrap-icons/filetype-yml.svg3
-rw-r--r--web/_static/bootstrap-icons/film.svg3
-rw-r--r--web/_static/bootstrap-icons/filter-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/filter-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/filter-left.svg3
-rw-r--r--web/_static/bootstrap-icons/filter-right.svg3
-rw-r--r--web/_static/bootstrap-icons/filter-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/filter-square.svg4
-rw-r--r--web/_static/bootstrap-icons/filter.svg3
-rw-r--r--web/_static/bootstrap-icons/fingerprint.svg7
-rw-r--r--web/_static/bootstrap-icons/fire.svg3
-rw-r--r--web/_static/bootstrap-icons/flag-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/flag.svg3
-rw-r--r--web/_static/bootstrap-icons/flower1.svg3
-rw-r--r--web/_static/bootstrap-icons/flower2.svg3
-rw-r--r--web/_static/bootstrap-icons/flower3.svg3
-rw-r--r--web/_static/bootstrap-icons/folder-check.svg4
-rw-r--r--web/_static/bootstrap-icons/folder-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/folder-minus.svg4
-rw-r--r--web/_static/bootstrap-icons/folder-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/folder-symlink-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/folder-symlink.svg4
-rw-r--r--web/_static/bootstrap-icons/folder-x.svg4
-rw-r--r--web/_static/bootstrap-icons/folder.svg3
-rw-r--r--web/_static/bootstrap-icons/folder2-open.svg3
-rw-r--r--web/_static/bootstrap-icons/folder2.svg3
-rw-r--r--web/_static/bootstrap-icons/fonts.svg3
-rw-r--r--web/_static/bootstrap-icons/fonts/bootstrap-icons.woffbin0 -> 150592 bytes
-rw-r--r--web/_static/bootstrap-icons/fonts/bootstrap-icons.woff2bin0 -> 112440 bytes
-rw-r--r--web/_static/bootstrap-icons/forward-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/forward.svg3
-rw-r--r--web/_static/bootstrap-icons/front.svg3
-rw-r--r--web/_static/bootstrap-icons/fuel-pump-diesel-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/fuel-pump-diesel.svg4
-rw-r--r--web/_static/bootstrap-icons/fuel-pump-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/fuel-pump.svg4
-rw-r--r--web/_static/bootstrap-icons/fullscreen-exit.svg3
-rw-r--r--web/_static/bootstrap-icons/fullscreen.svg3
-rw-r--r--web/_static/bootstrap-icons/funnel-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/funnel.svg3
-rw-r--r--web/_static/bootstrap-icons/gear-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/gear-wide-connected.svg3
-rw-r--r--web/_static/bootstrap-icons/gear-wide.svg3
-rw-r--r--web/_static/bootstrap-icons/gear.svg4
-rw-r--r--web/_static/bootstrap-icons/gem.svg3
-rw-r--r--web/_static/bootstrap-icons/gender-ambiguous.svg3
-rw-r--r--web/_static/bootstrap-icons/gender-female.svg3
-rw-r--r--web/_static/bootstrap-icons/gender-male.svg3
-rw-r--r--web/_static/bootstrap-icons/gender-trans.svg3
-rw-r--r--web/_static/bootstrap-icons/geo-alt-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/geo-alt.svg4
-rw-r--r--web/_static/bootstrap-icons/geo-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/geo.svg3
-rw-r--r--web/_static/bootstrap-icons/gift-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/gift.svg3
-rw-r--r--web/_static/bootstrap-icons/git.svg3
-rw-r--r--web/_static/bootstrap-icons/github.svg3
-rw-r--r--web/_static/bootstrap-icons/globe.svg3
-rw-r--r--web/_static/bootstrap-icons/globe2.svg3
-rw-r--r--web/_static/bootstrap-icons/google-play.svg3
-rw-r--r--web/_static/bootstrap-icons/google.svg3
-rw-r--r--web/_static/bootstrap-icons/gpu-card.svg5
-rw-r--r--web/_static/bootstrap-icons/graph-down-arrow.svg3
-rw-r--r--web/_static/bootstrap-icons/graph-down.svg3
-rw-r--r--web/_static/bootstrap-icons/graph-up-arrow.svg3
-rw-r--r--web/_static/bootstrap-icons/graph-up.svg3
-rw-r--r--web/_static/bootstrap-icons/grid-1x2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/grid-1x2.svg3
-rw-r--r--web/_static/bootstrap-icons/grid-3x2-gap-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/grid-3x2-gap.svg3
-rw-r--r--web/_static/bootstrap-icons/grid-3x2.svg3
-rw-r--r--web/_static/bootstrap-icons/grid-3x3-gap-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/grid-3x3-gap.svg3
-rw-r--r--web/_static/bootstrap-icons/grid-3x3.svg3
-rw-r--r--web/_static/bootstrap-icons/grid-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/grid.svg3
-rw-r--r--web/_static/bootstrap-icons/grip-horizontal.svg3
-rw-r--r--web/_static/bootstrap-icons/grip-vertical.svg3
-rw-r--r--web/_static/bootstrap-icons/h-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/h-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/h-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/h-square.svg4
-rw-r--r--web/_static/bootstrap-icons/hammer.svg3
-rw-r--r--web/_static/bootstrap-icons/hand-index-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hand-index-thumb-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hand-index-thumb.svg3
-rw-r--r--web/_static/bootstrap-icons/hand-index.svg3
-rw-r--r--web/_static/bootstrap-icons/hand-thumbs-down-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hand-thumbs-down.svg3
-rw-r--r--web/_static/bootstrap-icons/hand-thumbs-up-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hand-thumbs-up.svg3
-rw-r--r--web/_static/bootstrap-icons/handbag-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/handbag.svg3
-rw-r--r--web/_static/bootstrap-icons/hash.svg3
-rw-r--r--web/_static/bootstrap-icons/hdd-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hdd-network-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hdd-network.svg4
-rw-r--r--web/_static/bootstrap-icons/hdd-rack-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hdd-rack.svg4
-rw-r--r--web/_static/bootstrap-icons/hdd-stack-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hdd-stack.svg5
-rw-r--r--web/_static/bootstrap-icons/hdd.svg4
-rw-r--r--web/_static/bootstrap-icons/hdmi-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hdmi.svg4
-rw-r--r--web/_static/bootstrap-icons/headphones.svg3
-rw-r--r--web/_static/bootstrap-icons/headset-vr.svg4
-rw-r--r--web/_static/bootstrap-icons/headset.svg3
-rw-r--r--web/_static/bootstrap-icons/heart-arrow.svg3
-rw-r--r--web/_static/bootstrap-icons/heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/heart-half.svg3
-rw-r--r--web/_static/bootstrap-icons/heart-pulse-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/heart-pulse.svg3
-rw-r--r--web/_static/bootstrap-icons/heart.svg3
-rw-r--r--web/_static/bootstrap-icons/heartbreak-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/heartbreak.svg3
-rw-r--r--web/_static/bootstrap-icons/hearts.svg3
-rw-r--r--web/_static/bootstrap-icons/heptagon-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/heptagon-half.svg3
-rw-r--r--web/_static/bootstrap-icons/heptagon.svg3
-rw-r--r--web/_static/bootstrap-icons/hexagon-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hexagon-half.svg3
-rw-r--r--web/_static/bootstrap-icons/hexagon.svg3
-rw-r--r--web/_static/bootstrap-icons/hospital-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/hospital.svg4
-rw-r--r--web/_static/bootstrap-icons/hourglass-bottom.svg3
-rw-r--r--web/_static/bootstrap-icons/hourglass-split.svg3
-rw-r--r--web/_static/bootstrap-icons/hourglass-top.svg3
-rw-r--r--web/_static/bootstrap-icons/hourglass.svg3
-rw-r--r--web/_static/bootstrap-icons/house-door-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/house-door.svg3
-rw-r--r--web/_static/bootstrap-icons/house-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/house-heart-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/house-heart.svg4
-rw-r--r--web/_static/bootstrap-icons/house.svg4
-rw-r--r--web/_static/bootstrap-icons/hr.svg3
-rw-r--r--web/_static/bootstrap-icons/hurricane.svg3
-rw-r--r--web/_static/bootstrap-icons/hypnotize.svg4
-rw-r--r--web/_static/bootstrap-icons/image-alt.svg3
-rw-r--r--web/_static/bootstrap-icons/image-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/image.svg4
-rw-r--r--web/_static/bootstrap-icons/images.svg4
-rw-r--r--web/_static/bootstrap-icons/inbox-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/inbox.svg3
-rw-r--r--web/_static/bootstrap-icons/inboxes-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/inboxes.svg3
-rw-r--r--web/_static/bootstrap-icons/incognito.svg3
-rw-r--r--web/_static/bootstrap-icons/indent.svg4
-rw-r--r--web/_static/bootstrap-icons/index.html7291
-rw-r--r--web/_static/bootstrap-icons/infinity.svg3
-rw-r--r--web/_static/bootstrap-icons/info-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/info-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/info-lg.svg3
-rw-r--r--web/_static/bootstrap-icons/info-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/info-square.svg4
-rw-r--r--web/_static/bootstrap-icons/info.svg3
-rw-r--r--web/_static/bootstrap-icons/input-cursor-text.svg4
-rw-r--r--web/_static/bootstrap-icons/input-cursor.svg4
-rw-r--r--web/_static/bootstrap-icons/instagram.svg3
-rw-r--r--web/_static/bootstrap-icons/intersect.svg3
-rw-r--r--web/_static/bootstrap-icons/journal-album.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-arrow-down.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-arrow-up.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-bookmark-fill.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-bookmark.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-check.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-code.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-medical.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-minus.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-plus.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-richtext.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-text.svg5
-rw-r--r--web/_static/bootstrap-icons/journal-x.svg5
-rw-r--r--web/_static/bootstrap-icons/journal.svg4
-rw-r--r--web/_static/bootstrap-icons/journals.svg4
-rw-r--r--web/_static/bootstrap-icons/joystick.svg4
-rw-r--r--web/_static/bootstrap-icons/justify-left.svg3
-rw-r--r--web/_static/bootstrap-icons/justify-right.svg3
-rw-r--r--web/_static/bootstrap-icons/justify.svg3
-rw-r--r--web/_static/bootstrap-icons/kanban-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/kanban.svg4
-rw-r--r--web/_static/bootstrap-icons/key-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/key.svg4
-rw-r--r--web/_static/bootstrap-icons/keyboard-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/keyboard.svg4
-rw-r--r--web/_static/bootstrap-icons/ladder.svg3
-rw-r--r--web/_static/bootstrap-icons/lamp-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/lamp.svg4
-rw-r--r--web/_static/bootstrap-icons/laptop-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/laptop.svg3
-rw-r--r--web/_static/bootstrap-icons/layer-backward.svg4
-rw-r--r--web/_static/bootstrap-icons/layer-forward.svg4
-rw-r--r--web/_static/bootstrap-icons/layers-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/layers-half.svg3
-rw-r--r--web/_static/bootstrap-icons/layers.svg3
-rw-r--r--web/_static/bootstrap-icons/layout-sidebar-inset-reverse.svg4
-rw-r--r--web/_static/bootstrap-icons/layout-sidebar-inset.svg4
-rw-r--r--web/_static/bootstrap-icons/layout-sidebar-reverse.svg3
-rw-r--r--web/_static/bootstrap-icons/layout-sidebar.svg3
-rw-r--r--web/_static/bootstrap-icons/layout-split.svg3
-rw-r--r--web/_static/bootstrap-icons/layout-text-sidebar-reverse.svg4
-rw-r--r--web/_static/bootstrap-icons/layout-text-sidebar.svg4
-rw-r--r--web/_static/bootstrap-icons/layout-text-window-reverse.svg4
-rw-r--r--web/_static/bootstrap-icons/layout-text-window.svg4
-rw-r--r--web/_static/bootstrap-icons/layout-three-columns.svg3
-rw-r--r--web/_static/bootstrap-icons/layout-wtf.svg3
-rw-r--r--web/_static/bootstrap-icons/life-preserver.svg3
-rw-r--r--web/_static/bootstrap-icons/lightbulb-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/lightbulb-off-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/lightbulb-off.svg3
-rw-r--r--web/_static/bootstrap-icons/lightbulb.svg3
-rw-r--r--web/_static/bootstrap-icons/lightning-charge-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/lightning-charge.svg3
-rw-r--r--web/_static/bootstrap-icons/lightning-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/lightning.svg3
-rw-r--r--web/_static/bootstrap-icons/line.svg3
-rw-r--r--web/_static/bootstrap-icons/link-45deg.svg4
-rw-r--r--web/_static/bootstrap-icons/link.svg4
-rw-r--r--web/_static/bootstrap-icons/linkedin.svg3
-rw-r--r--web/_static/bootstrap-icons/list-check.svg3
-rw-r--r--web/_static/bootstrap-icons/list-columns-reverse.svg3
-rw-r--r--web/_static/bootstrap-icons/list-columns.svg3
-rw-r--r--web/_static/bootstrap-icons/list-nested.svg3
-rw-r--r--web/_static/bootstrap-icons/list-ol.svg4
-rw-r--r--web/_static/bootstrap-icons/list-stars.svg4
-rw-r--r--web/_static/bootstrap-icons/list-task.svg5
-rw-r--r--web/_static/bootstrap-icons/list-ul.svg3
-rw-r--r--web/_static/bootstrap-icons/list.svg3
-rw-r--r--web/_static/bootstrap-icons/lock-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/lock.svg3
-rw-r--r--web/_static/bootstrap-icons/lungs-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/lungs.svg3
-rw-r--r--web/_static/bootstrap-icons/magic.svg3
-rw-r--r--web/_static/bootstrap-icons/magnet-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/magnet.svg3
-rw-r--r--web/_static/bootstrap-icons/mailbox.svg4
-rw-r--r--web/_static/bootstrap-icons/mailbox2.svg4
-rw-r--r--web/_static/bootstrap-icons/map-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/map.svg3
-rw-r--r--web/_static/bootstrap-icons/markdown-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/markdown.svg6
-rw-r--r--web/_static/bootstrap-icons/mask.svg3
-rw-r--r--web/_static/bootstrap-icons/mastodon.svg3
-rw-r--r--web/_static/bootstrap-icons/medium.svg3
-rw-r--r--web/_static/bootstrap-icons/megaphone-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/megaphone.svg3
-rw-r--r--web/_static/bootstrap-icons/memory.svg3
-rw-r--r--web/_static/bootstrap-icons/menu-app-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/menu-app.svg3
-rw-r--r--web/_static/bootstrap-icons/menu-button-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/menu-button-wide-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/menu-button-wide.svg4
-rw-r--r--web/_static/bootstrap-icons/menu-button.svg4
-rw-r--r--web/_static/bootstrap-icons/menu-down.svg3
-rw-r--r--web/_static/bootstrap-icons/menu-up.svg3
-rw-r--r--web/_static/bootstrap-icons/messenger.svg3
-rw-r--r--web/_static/bootstrap-icons/meta.svg3
-rw-r--r--web/_static/bootstrap-icons/mic-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/mic-mute-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/mic-mute.svg4
-rw-r--r--web/_static/bootstrap-icons/mic.svg4
-rw-r--r--web/_static/bootstrap-icons/microsoft-teams.svg4
-rw-r--r--web/_static/bootstrap-icons/microsoft.svg3
-rw-r--r--web/_static/bootstrap-icons/minecart-loaded.svg4
-rw-r--r--web/_static/bootstrap-icons/minecart.svg3
-rw-r--r--web/_static/bootstrap-icons/modem-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/modem.svg4
-rw-r--r--web/_static/bootstrap-icons/moisture.svg3
-rw-r--r--web/_static/bootstrap-icons/moon-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/moon-stars-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/moon-stars.svg4
-rw-r--r--web/_static/bootstrap-icons/moon.svg3
-rw-r--r--web/_static/bootstrap-icons/mortarboard-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/mortarboard.svg4
-rw-r--r--web/_static/bootstrap-icons/motherboard-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/motherboard.svg4
-rw-r--r--web/_static/bootstrap-icons/mouse-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/mouse.svg3
-rw-r--r--web/_static/bootstrap-icons/mouse2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/mouse2.svg3
-rw-r--r--web/_static/bootstrap-icons/mouse3-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/mouse3.svg3
-rw-r--r--web/_static/bootstrap-icons/music-note-beamed.svg5
-rw-r--r--web/_static/bootstrap-icons/music-note-list.svg6
-rw-r--r--web/_static/bootstrap-icons/music-note.svg5
-rw-r--r--web/_static/bootstrap-icons/music-player-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/music-player.svg5
-rw-r--r--web/_static/bootstrap-icons/newspaper.svg4
-rw-r--r--web/_static/bootstrap-icons/nintendo-switch.svg4
-rw-r--r--web/_static/bootstrap-icons/node-minus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/node-minus.svg3
-rw-r--r--web/_static/bootstrap-icons/node-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/node-plus.svg3
-rw-r--r--web/_static/bootstrap-icons/nut-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/nut.svg4
-rw-r--r--web/_static/bootstrap-icons/octagon-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/octagon-half.svg3
-rw-r--r--web/_static/bootstrap-icons/octagon.svg3
-rw-r--r--web/_static/bootstrap-icons/optical-audio-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/optical-audio.svg5
-rw-r--r--web/_static/bootstrap-icons/option.svg3
-rw-r--r--web/_static/bootstrap-icons/outlet.svg4
-rw-r--r--web/_static/bootstrap-icons/p-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/p-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/p-square-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/p-square.svg4
-rw-r--r--web/_static/bootstrap-icons/paint-bucket.svg3
-rw-r--r--web/_static/bootstrap-icons/palette-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/palette.svg4
-rw-r--r--web/_static/bootstrap-icons/palette2.svg4
-rw-r--r--web/_static/bootstrap-icons/paperclip.svg3
-rw-r--r--web/_static/bootstrap-icons/paragraph.svg3
-rw-r--r--web/_static/bootstrap-icons/pass-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pass.svg4
-rw-r--r--web/_static/bootstrap-icons/patch-check-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/patch-check.svg4
-rw-r--r--web/_static/bootstrap-icons/patch-exclamation-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/patch-exclamation.svg4
-rw-r--r--web/_static/bootstrap-icons/patch-minus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/patch-minus.svg4
-rw-r--r--web/_static/bootstrap-icons/patch-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/patch-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/patch-question-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/patch-question.svg5
-rw-r--r--web/_static/bootstrap-icons/pause-btn-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pause-btn.svg4
-rw-r--r--web/_static/bootstrap-icons/pause-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pause-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/pause-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pause.svg3
-rw-r--r--web/_static/bootstrap-icons/paypal.svg3
-rw-r--r--web/_static/bootstrap-icons/pc-display-horizontal.svg3
-rw-r--r--web/_static/bootstrap-icons/pc-display.svg3
-rw-r--r--web/_static/bootstrap-icons/pc-horizontal.svg3
-rw-r--r--web/_static/bootstrap-icons/pc.svg3
-rw-r--r--web/_static/bootstrap-icons/pci-card.svg4
-rw-r--r--web/_static/bootstrap-icons/peace-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/peace.svg3
-rw-r--r--web/_static/bootstrap-icons/pen-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pen.svg3
-rw-r--r--web/_static/bootstrap-icons/pencil-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pencil-square.svg4
-rw-r--r--web/_static/bootstrap-icons/pencil.svg3
-rw-r--r--web/_static/bootstrap-icons/pentagon-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pentagon-half.svg3
-rw-r--r--web/_static/bootstrap-icons/pentagon.svg3
-rw-r--r--web/_static/bootstrap-icons/people-fill.svg5
-rw-r--r--web/_static/bootstrap-icons/people.svg3
-rw-r--r--web/_static/bootstrap-icons/percent.svg3
-rw-r--r--web/_static/bootstrap-icons/person-badge-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/person-badge.svg4
-rw-r--r--web/_static/bootstrap-icons/person-bounding-box.svg4
-rw-r--r--web/_static/bootstrap-icons/person-check-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/person-check.svg4
-rw-r--r--web/_static/bootstrap-icons/person-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/person-dash-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/person-dash.svg4
-rw-r--r--web/_static/bootstrap-icons/person-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/person-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/person-hearts.svg3
-rw-r--r--web/_static/bootstrap-icons/person-lines-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/person-plus-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/person-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/person-rolodex.svg4
-rw-r--r--web/_static/bootstrap-icons/person-square.svg4
-rw-r--r--web/_static/bootstrap-icons/person-video.svg4
-rw-r--r--web/_static/bootstrap-icons/person-video2.svg4
-rw-r--r--web/_static/bootstrap-icons/person-video3.svg4
-rw-r--r--web/_static/bootstrap-icons/person-workspace.svg4
-rw-r--r--web/_static/bootstrap-icons/person-x-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/person-x.svg4
-rw-r--r--web/_static/bootstrap-icons/person.svg3
-rw-r--r--web/_static/bootstrap-icons/phone-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/phone-flip.svg3
-rw-r--r--web/_static/bootstrap-icons/phone-landscape-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/phone-landscape.svg4
-rw-r--r--web/_static/bootstrap-icons/phone-vibrate-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/phone-vibrate.svg4
-rw-r--r--web/_static/bootstrap-icons/phone.svg4
-rw-r--r--web/_static/bootstrap-icons/pie-chart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pie-chart.svg3
-rw-r--r--web/_static/bootstrap-icons/piggy-bank-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/piggy-bank.svg4
-rw-r--r--web/_static/bootstrap-icons/pin-angle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pin-angle.svg3
-rw-r--r--web/_static/bootstrap-icons/pin-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pin-map-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/pin-map.svg4
-rw-r--r--web/_static/bootstrap-icons/pin.svg3
-rw-r--r--web/_static/bootstrap-icons/pinterest.svg3
-rw-r--r--web/_static/bootstrap-icons/pip-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/pip.svg4
-rw-r--r--web/_static/bootstrap-icons/play-btn-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/play-btn.svg4
-rw-r--r--web/_static/bootstrap-icons/play-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/play-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/play-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/play.svg3
-rw-r--r--web/_static/bootstrap-icons/playstation.svg3
-rw-r--r--web/_static/bootstrap-icons/plug-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/plug.svg3
-rw-r--r--web/_static/bootstrap-icons/plugin.svg3
-rw-r--r--web/_static/bootstrap-icons/plus-circle-dotted.svg3
-rw-r--r--web/_static/bootstrap-icons/plus-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/plus-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/plus-lg.svg3
-rw-r--r--web/_static/bootstrap-icons/plus-slash-minus.svg3
-rw-r--r--web/_static/bootstrap-icons/plus-square-dotted.svg3
-rw-r--r--web/_static/bootstrap-icons/plus-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/plus-square.svg4
-rw-r--r--web/_static/bootstrap-icons/plus.svg3
-rw-r--r--web/_static/bootstrap-icons/postage-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/postage-heart-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/postage-heart.svg4
-rw-r--r--web/_static/bootstrap-icons/postage.svg4
-rw-r--r--web/_static/bootstrap-icons/postcard-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/postcard-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/postcard-heart.svg4
-rw-r--r--web/_static/bootstrap-icons/postcard.svg3
-rw-r--r--web/_static/bootstrap-icons/power.svg4
-rw-r--r--web/_static/bootstrap-icons/prescription.svg4
-rw-r--r--web/_static/bootstrap-icons/prescription2.svg4
-rw-r--r--web/_static/bootstrap-icons/printer-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/printer.svg4
-rw-r--r--web/_static/bootstrap-icons/projector-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/projector.svg4
-rw-r--r--web/_static/bootstrap-icons/puzzle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/puzzle.svg3
-rw-r--r--web/_static/bootstrap-icons/qr-code-scan.svg7
-rw-r--r--web/_static/bootstrap-icons/qr-code.svg7
-rw-r--r--web/_static/bootstrap-icons/question-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/question-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/question-diamond-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/question-diamond.svg4
-rw-r--r--web/_static/bootstrap-icons/question-lg.svg3
-rw-r--r--web/_static/bootstrap-icons/question-octagon-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/question-octagon.svg4
-rw-r--r--web/_static/bootstrap-icons/question-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/question-square.svg4
-rw-r--r--web/_static/bootstrap-icons/question.svg3
-rw-r--r--web/_static/bootstrap-icons/quora.svg3
-rw-r--r--web/_static/bootstrap-icons/quote.svg3
-rw-r--r--web/_static/bootstrap-icons/r-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/r-circle.svg3
-rw-r--r--web/_static/bootstrap-icons/r-square-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/r-square.svg4
-rw-r--r--web/_static/bootstrap-icons/radioactive.svg4
-rw-r--r--web/_static/bootstrap-icons/rainbow.svg3
-rw-r--r--web/_static/bootstrap-icons/receipt-cutoff.svg4
-rw-r--r--web/_static/bootstrap-icons/receipt.svg4
-rw-r--r--web/_static/bootstrap-icons/reception-0.svg3
-rw-r--r--web/_static/bootstrap-icons/reception-1.svg3
-rw-r--r--web/_static/bootstrap-icons/reception-2.svg3
-rw-r--r--web/_static/bootstrap-icons/reception-3.svg3
-rw-r--r--web/_static/bootstrap-icons/reception-4.svg3
-rw-r--r--web/_static/bootstrap-icons/record-btn-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/record-btn.svg4
-rw-r--r--web/_static/bootstrap-icons/record-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/record-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/record-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/record.svg3
-rw-r--r--web/_static/bootstrap-icons/record2-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/record2.svg4
-rw-r--r--web/_static/bootstrap-icons/recycle.svg3
-rw-r--r--web/_static/bootstrap-icons/reddit.svg4
-rw-r--r--web/_static/bootstrap-icons/repeat-1.svg4
-rw-r--r--web/_static/bootstrap-icons/repeat.svg3
-rw-r--r--web/_static/bootstrap-icons/reply-all-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/reply-all.svg4
-rw-r--r--web/_static/bootstrap-icons/reply-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/reply.svg3
-rw-r--r--web/_static/bootstrap-icons/rewind-btn-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/rewind-btn.svg4
-rw-r--r--web/_static/bootstrap-icons/rewind-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/rewind-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/rewind-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/rewind.svg4
-rw-r--r--web/_static/bootstrap-icons/robot.svg4
-rw-r--r--web/_static/bootstrap-icons/router-fill.svg6
-rw-r--r--web/_static/bootstrap-icons/router.svg6
-rw-r--r--web/_static/bootstrap-icons/rss-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/rss.svg4
-rw-r--r--web/_static/bootstrap-icons/rulers.svg3
-rw-r--r--web/_static/bootstrap-icons/safe-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/safe.svg4
-rw-r--r--web/_static/bootstrap-icons/safe2-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/safe2.svg4
-rw-r--r--web/_static/bootstrap-icons/save-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/save.svg3
-rw-r--r--web/_static/bootstrap-icons/save2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/save2.svg3
-rw-r--r--web/_static/bootstrap-icons/scissors.svg3
-rw-r--r--web/_static/bootstrap-icons/screwdriver.svg3
-rw-r--r--web/_static/bootstrap-icons/sd-card-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/sd-card.svg4
-rw-r--r--web/_static/bootstrap-icons/search-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/search-heart.svg4
-rw-r--r--web/_static/bootstrap-icons/search.svg3
-rw-r--r--web/_static/bootstrap-icons/segmented-nav.svg3
-rw-r--r--web/_static/bootstrap-icons/send-check-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/send-check.svg4
-rw-r--r--web/_static/bootstrap-icons/send-dash-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/send-dash.svg4
-rw-r--r--web/_static/bootstrap-icons/send-exclamation-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/send-exclamation.svg4
-rw-r--r--web/_static/bootstrap-icons/send-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/send-plus-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/send-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/send-slash-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/send-slash.svg4
-rw-r--r--web/_static/bootstrap-icons/send-x-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/send-x.svg4
-rw-r--r--web/_static/bootstrap-icons/send.svg3
-rw-r--r--web/_static/bootstrap-icons/server.svg5
-rw-r--r--web/_static/bootstrap-icons/share-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/share.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-check.svg4
-rw-r--r--web/_static/bootstrap-icons/shield-exclamation.svg4
-rw-r--r--web/_static/bootstrap-icons/shield-fill-check.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-fill-exclamation.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-fill-minus.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-fill-plus.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-fill-x.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-lock-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-lock.svg4
-rw-r--r--web/_static/bootstrap-icons/shield-minus.svg4
-rw-r--r--web/_static/bootstrap-icons/shield-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/shield-shaded.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-slash-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-slash.svg3
-rw-r--r--web/_static/bootstrap-icons/shield-x.svg4
-rw-r--r--web/_static/bootstrap-icons/shield.svg3
-rw-r--r--web/_static/bootstrap-icons/shift-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/shift.svg3
-rw-r--r--web/_static/bootstrap-icons/shop-window.svg3
-rw-r--r--web/_static/bootstrap-icons/shop.svg3
-rw-r--r--web/_static/bootstrap-icons/shuffle.svg4
-rw-r--r--web/_static/bootstrap-icons/sign-stop-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/sign-stop-lights-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/sign-stop-lights.svg4
-rw-r--r--web/_static/bootstrap-icons/sign-stop.svg5
-rw-r--r--web/_static/bootstrap-icons/sign-turn-left-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/sign-turn-left.svg4
-rw-r--r--web/_static/bootstrap-icons/sign-turn-right-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/sign-turn-right.svg4
-rw-r--r--web/_static/bootstrap-icons/sign-turn-slight-left-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/sign-turn-slight-left.svg4
-rw-r--r--web/_static/bootstrap-icons/sign-turn-slight-right-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/sign-turn-slight-right.svg4
-rw-r--r--web/_static/bootstrap-icons/sign-yield-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/sign-yield.svg5
-rw-r--r--web/_static/bootstrap-icons/signal.svg3
-rw-r--r--web/_static/bootstrap-icons/signpost-2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/signpost-2.svg3
-rw-r--r--web/_static/bootstrap-icons/signpost-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/signpost-split-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/signpost-split.svg3
-rw-r--r--web/_static/bootstrap-icons/signpost.svg3
-rw-r--r--web/_static/bootstrap-icons/sim-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/sim.svg4
-rw-r--r--web/_static/bootstrap-icons/skip-backward-btn-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-backward-btn.svg4
-rw-r--r--web/_static/bootstrap-icons/skip-backward-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-backward-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/skip-backward-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-backward.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-end-btn-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-end-btn.svg4
-rw-r--r--web/_static/bootstrap-icons/skip-end-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-end-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/skip-end-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-end.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-forward-btn-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-forward-btn.svg4
-rw-r--r--web/_static/bootstrap-icons/skip-forward-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-forward-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/skip-forward-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-forward.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-start-btn-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-start-btn.svg4
-rw-r--r--web/_static/bootstrap-icons/skip-start-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-start-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/skip-start-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/skip-start.svg3
-rw-r--r--web/_static/bootstrap-icons/skype.svg3
-rw-r--r--web/_static/bootstrap-icons/slack.svg3
-rw-r--r--web/_static/bootstrap-icons/slash-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/slash-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/slash-lg.svg3
-rw-r--r--web/_static/bootstrap-icons/slash-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/slash-square.svg4
-rw-r--r--web/_static/bootstrap-icons/slash.svg3
-rw-r--r--web/_static/bootstrap-icons/sliders.svg3
-rw-r--r--web/_static/bootstrap-icons/sliders2-vertical.svg3
-rw-r--r--web/_static/bootstrap-icons/sliders2.svg3
-rw-r--r--web/_static/bootstrap-icons/smartwatch.svg4
-rw-r--r--web/_static/bootstrap-icons/snapchat.svg3
-rw-r--r--web/_static/bootstrap-icons/snow.svg3
-rw-r--r--web/_static/bootstrap-icons/snow2.svg3
-rw-r--r--web/_static/bootstrap-icons/snow3.svg4
-rw-r--r--web/_static/bootstrap-icons/sort-alpha-down-alt.svg5
-rw-r--r--web/_static/bootstrap-icons/sort-alpha-down.svg4
-rw-r--r--web/_static/bootstrap-icons/sort-alpha-up-alt.svg5
-rw-r--r--web/_static/bootstrap-icons/sort-alpha-up.svg4
-rw-r--r--web/_static/bootstrap-icons/sort-down-alt.svg3
-rw-r--r--web/_static/bootstrap-icons/sort-down.svg3
-rw-r--r--web/_static/bootstrap-icons/sort-numeric-down-alt.svg4
-rw-r--r--web/_static/bootstrap-icons/sort-numeric-down.svg5
-rw-r--r--web/_static/bootstrap-icons/sort-numeric-up-alt.svg4
-rw-r--r--web/_static/bootstrap-icons/sort-numeric-up.svg5
-rw-r--r--web/_static/bootstrap-icons/sort-up-alt.svg3
-rw-r--r--web/_static/bootstrap-icons/sort-up.svg3
-rw-r--r--web/_static/bootstrap-icons/soundwave.svg3
-rw-r--r--web/_static/bootstrap-icons/speaker-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/speaker.svg4
-rw-r--r--web/_static/bootstrap-icons/speedometer.svg4
-rw-r--r--web/_static/bootstrap-icons/speedometer2.svg4
-rw-r--r--web/_static/bootstrap-icons/spellcheck.svg4
-rw-r--r--web/_static/bootstrap-icons/spotify.svg3
-rw-r--r--web/_static/bootstrap-icons/square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/square-half.svg3
-rw-r--r--web/_static/bootstrap-icons/square.svg3
-rw-r--r--web/_static/bootstrap-icons/stack-overflow.svg4
-rw-r--r--web/_static/bootstrap-icons/stack.svg4
-rw-r--r--web/_static/bootstrap-icons/star-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/star-half.svg3
-rw-r--r--web/_static/bootstrap-icons/star.svg3
-rw-r--r--web/_static/bootstrap-icons/stars.svg3
-rw-r--r--web/_static/bootstrap-icons/steam.svg4
-rw-r--r--web/_static/bootstrap-icons/stickies-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/stickies.svg4
-rw-r--r--web/_static/bootstrap-icons/sticky-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/sticky.svg3
-rw-r--r--web/_static/bootstrap-icons/stop-btn-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/stop-btn.svg4
-rw-r--r--web/_static/bootstrap-icons/stop-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/stop-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/stop-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/stop.svg3
-rw-r--r--web/_static/bootstrap-icons/stoplights-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/stoplights.svg4
-rw-r--r--web/_static/bootstrap-icons/stopwatch-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/stopwatch.svg4
-rw-r--r--web/_static/bootstrap-icons/strava.svg3
-rw-r--r--web/_static/bootstrap-icons/subtract.svg3
-rw-r--r--web/_static/bootstrap-icons/suit-club-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/suit-club.svg3
-rw-r--r--web/_static/bootstrap-icons/suit-diamond-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/suit-diamond.svg3
-rw-r--r--web/_static/bootstrap-icons/suit-heart-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/suit-heart.svg3
-rw-r--r--web/_static/bootstrap-icons/suit-spade-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/suit-spade.svg3
-rw-r--r--web/_static/bootstrap-icons/sun-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/sun.svg3
-rw-r--r--web/_static/bootstrap-icons/sunglasses.svg3
-rw-r--r--web/_static/bootstrap-icons/sunrise-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/sunrise.svg3
-rw-r--r--web/_static/bootstrap-icons/sunset-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/sunset.svg3
-rw-r--r--web/_static/bootstrap-icons/symmetry-horizontal.svg3
-rw-r--r--web/_static/bootstrap-icons/symmetry-vertical.svg3
-rw-r--r--web/_static/bootstrap-icons/table.svg3
-rw-r--r--web/_static/bootstrap-icons/tablet-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/tablet-landscape-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/tablet-landscape.svg4
-rw-r--r--web/_static/bootstrap-icons/tablet.svg4
-rw-r--r--web/_static/bootstrap-icons/tag-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/tag.svg4
-rw-r--r--web/_static/bootstrap-icons/tags-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/tags.svg4
-rw-r--r--web/_static/bootstrap-icons/telegram.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-forward-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-forward.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-inbound-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-inbound.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-minus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-minus.svg4
-rw-r--r--web/_static/bootstrap-icons/telephone-outbound-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-outbound.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-plus-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/telephone-x-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/telephone-x.svg4
-rw-r--r--web/_static/bootstrap-icons/telephone.svg3
-rw-r--r--web/_static/bootstrap-icons/terminal-dash.svg4
-rw-r--r--web/_static/bootstrap-icons/terminal-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/terminal-plus.svg4
-rw-r--r--web/_static/bootstrap-icons/terminal-split.svg4
-rw-r--r--web/_static/bootstrap-icons/terminal-x.svg4
-rw-r--r--web/_static/bootstrap-icons/terminal.svg4
-rw-r--r--web/_static/bootstrap-icons/text-center.svg3
-rw-r--r--web/_static/bootstrap-icons/text-indent-left.svg3
-rw-r--r--web/_static/bootstrap-icons/text-indent-right.svg3
-rw-r--r--web/_static/bootstrap-icons/text-left.svg3
-rw-r--r--web/_static/bootstrap-icons/text-paragraph.svg3
-rw-r--r--web/_static/bootstrap-icons/text-right.svg3
-rw-r--r--web/_static/bootstrap-icons/textarea-resize.svg3
-rw-r--r--web/_static/bootstrap-icons/textarea-t.svg4
-rw-r--r--web/_static/bootstrap-icons/textarea.svg3
-rw-r--r--web/_static/bootstrap-icons/thermometer-half.svg4
-rw-r--r--web/_static/bootstrap-icons/thermometer-high.svg4
-rw-r--r--web/_static/bootstrap-icons/thermometer-low.svg4
-rw-r--r--web/_static/bootstrap-icons/thermometer-snow.svg4
-rw-r--r--web/_static/bootstrap-icons/thermometer-sun.svg4
-rw-r--r--web/_static/bootstrap-icons/thermometer.svg4
-rw-r--r--web/_static/bootstrap-icons/three-dots-vertical.svg3
-rw-r--r--web/_static/bootstrap-icons/three-dots.svg3
-rw-r--r--web/_static/bootstrap-icons/thunderbolt-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/thunderbolt.svg4
-rw-r--r--web/_static/bootstrap-icons/ticket-detailed-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/ticket-detailed.svg4
-rw-r--r--web/_static/bootstrap-icons/ticket-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/ticket-perforated-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/ticket-perforated.svg4
-rw-r--r--web/_static/bootstrap-icons/ticket.svg3
-rw-r--r--web/_static/bootstrap-icons/tiktok.svg3
-rw-r--r--web/_static/bootstrap-icons/toggle-off.svg3
-rw-r--r--web/_static/bootstrap-icons/toggle-on.svg3
-rw-r--r--web/_static/bootstrap-icons/toggle2-off.svg4
-rw-r--r--web/_static/bootstrap-icons/toggle2-on.svg4
-rw-r--r--web/_static/bootstrap-icons/toggles.svg3
-rw-r--r--web/_static/bootstrap-icons/toggles2.svg5
-rw-r--r--web/_static/bootstrap-icons/tools.svg3
-rw-r--r--web/_static/bootstrap-icons/tornado.svg3
-rw-r--r--web/_static/bootstrap-icons/train-freight-front-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/train-freight-front.svg3
-rw-r--r--web/_static/bootstrap-icons/train-front-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/train-front.svg3
-rw-r--r--web/_static/bootstrap-icons/train-lightrail-front-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/train-lightrail-front.svg3
-rw-r--r--web/_static/bootstrap-icons/translate.svg4
-rw-r--r--web/_static/bootstrap-icons/trash-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/trash.svg4
-rw-r--r--web/_static/bootstrap-icons/trash2-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/trash2.svg3
-rw-r--r--web/_static/bootstrap-icons/trash3-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/trash3.svg3
-rw-r--r--web/_static/bootstrap-icons/tree-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/tree.svg3
-rw-r--r--web/_static/bootstrap-icons/triangle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/triangle-half.svg3
-rw-r--r--web/_static/bootstrap-icons/triangle.svg3
-rw-r--r--web/_static/bootstrap-icons/trophy-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/trophy.svg3
-rw-r--r--web/_static/bootstrap-icons/tropical-storm.svg4
-rw-r--r--web/_static/bootstrap-icons/truck-flatbed.svg3
-rw-r--r--web/_static/bootstrap-icons/truck-front-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/truck-front.svg5
-rw-r--r--web/_static/bootstrap-icons/truck.svg3
-rw-r--r--web/_static/bootstrap-icons/tsunami.svg3
-rw-r--r--web/_static/bootstrap-icons/tv-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/tv.svg3
-rw-r--r--web/_static/bootstrap-icons/twitch.svg4
-rw-r--r--web/_static/bootstrap-icons/twitter.svg3
-rw-r--r--web/_static/bootstrap-icons/type-bold.svg3
-rw-r--r--web/_static/bootstrap-icons/type-h1.svg3
-rw-r--r--web/_static/bootstrap-icons/type-h2.svg3
-rw-r--r--web/_static/bootstrap-icons/type-h3.svg3
-rw-r--r--web/_static/bootstrap-icons/type-italic.svg3
-rw-r--r--web/_static/bootstrap-icons/type-strikethrough.svg3
-rw-r--r--web/_static/bootstrap-icons/type-underline.svg3
-rw-r--r--web/_static/bootstrap-icons/type.svg3
-rw-r--r--web/_static/bootstrap-icons/ubuntu.svg3
-rw-r--r--web/_static/bootstrap-icons/ui-checks-grid.svg3
-rw-r--r--web/_static/bootstrap-icons/ui-checks.svg3
-rw-r--r--web/_static/bootstrap-icons/ui-radios-grid.svg3
-rw-r--r--web/_static/bootstrap-icons/ui-radios.svg3
-rw-r--r--web/_static/bootstrap-icons/umbrella-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/umbrella.svg3
-rw-r--r--web/_static/bootstrap-icons/unindent.svg4
-rw-r--r--web/_static/bootstrap-icons/union.svg3
-rw-r--r--web/_static/bootstrap-icons/unity.svg3
-rw-r--r--web/_static/bootstrap-icons/universal-access-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/universal-access.svg3
-rw-r--r--web/_static/bootstrap-icons/unlock-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/unlock.svg3
-rw-r--r--web/_static/bootstrap-icons/upc-scan.svg3
-rw-r--r--web/_static/bootstrap-icons/upc.svg3
-rw-r--r--web/_static/bootstrap-icons/upload.svg4
-rw-r--r--web/_static/bootstrap-icons/usb-c-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/usb-c.svg4
-rw-r--r--web/_static/bootstrap-icons/usb-drive-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/usb-drive.svg3
-rw-r--r--web/_static/bootstrap-icons/usb-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/usb-micro-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/usb-micro.svg4
-rw-r--r--web/_static/bootstrap-icons/usb-mini-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/usb-mini.svg4
-rw-r--r--web/_static/bootstrap-icons/usb-plug-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/usb-plug.svg3
-rw-r--r--web/_static/bootstrap-icons/usb-symbol.svg3
-rw-r--r--web/_static/bootstrap-icons/usb.svg4
-rw-r--r--web/_static/bootstrap-icons/valentine.svg4
-rw-r--r--web/_static/bootstrap-icons/valentine2.svg4
-rw-r--r--web/_static/bootstrap-icons/vector-pen.svg4
-rw-r--r--web/_static/bootstrap-icons/view-list.svg3
-rw-r--r--web/_static/bootstrap-icons/view-stacked.svg3
-rw-r--r--web/_static/bootstrap-icons/vimeo.svg3
-rw-r--r--web/_static/bootstrap-icons/vinyl-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/vinyl.svg5
-rw-r--r--web/_static/bootstrap-icons/virus.svg3
-rw-r--r--web/_static/bootstrap-icons/virus2.svg3
-rw-r--r--web/_static/bootstrap-icons/voicemail.svg3
-rw-r--r--web/_static/bootstrap-icons/volume-down-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/volume-down.svg3
-rw-r--r--web/_static/bootstrap-icons/volume-mute-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/volume-mute.svg3
-rw-r--r--web/_static/bootstrap-icons/volume-off-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/volume-off.svg3
-rw-r--r--web/_static/bootstrap-icons/volume-up-fill.svg5
-rw-r--r--web/_static/bootstrap-icons/volume-up.svg5
-rw-r--r--web/_static/bootstrap-icons/vr.svg3
-rw-r--r--web/_static/bootstrap-icons/wallet-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/wallet.svg3
-rw-r--r--web/_static/bootstrap-icons/wallet2.svg3
-rw-r--r--web/_static/bootstrap-icons/watch.svg4
-rw-r--r--web/_static/bootstrap-icons/water.svg3
-rw-r--r--web/_static/bootstrap-icons/webcam-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/webcam.svg4
-rw-r--r--web/_static/bootstrap-icons/wechat.svg4
-rw-r--r--web/_static/bootstrap-icons/whatsapp.svg3
-rw-r--r--web/_static/bootstrap-icons/wifi-1.svg3
-rw-r--r--web/_static/bootstrap-icons/wifi-2.svg3
-rw-r--r--web/_static/bootstrap-icons/wifi-off.svg3
-rw-r--r--web/_static/bootstrap-icons/wifi.svg4
-rw-r--r--web/_static/bootstrap-icons/wind.svg3
-rw-r--r--web/_static/bootstrap-icons/window-dash.svg5
-rw-r--r--web/_static/bootstrap-icons/window-desktop.svg4
-rw-r--r--web/_static/bootstrap-icons/window-dock.svg4
-rw-r--r--web/_static/bootstrap-icons/window-fullscreen.svg4
-rw-r--r--web/_static/bootstrap-icons/window-plus.svg5
-rw-r--r--web/_static/bootstrap-icons/window-sidebar.svg4
-rw-r--r--web/_static/bootstrap-icons/window-split.svg4
-rw-r--r--web/_static/bootstrap-icons/window-stack.svg4
-rw-r--r--web/_static/bootstrap-icons/window-x.svg5
-rw-r--r--web/_static/bootstrap-icons/window.svg4
-rw-r--r--web/_static/bootstrap-icons/windows.svg3
-rw-r--r--web/_static/bootstrap-icons/wordpress.svg5
-rw-r--r--web/_static/bootstrap-icons/wrench-adjustable-circle-fill.svg4
-rw-r--r--web/_static/bootstrap-icons/wrench-adjustable-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/wrench-adjustable.svg4
-rw-r--r--web/_static/bootstrap-icons/wrench.svg3
-rw-r--r--web/_static/bootstrap-icons/x-circle-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/x-circle.svg4
-rw-r--r--web/_static/bootstrap-icons/x-diamond-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/x-diamond.svg3
-rw-r--r--web/_static/bootstrap-icons/x-lg.svg3
-rw-r--r--web/_static/bootstrap-icons/x-octagon-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/x-octagon.svg4
-rw-r--r--web/_static/bootstrap-icons/x-square-fill.svg3
-rw-r--r--web/_static/bootstrap-icons/x-square.svg4
-rw-r--r--web/_static/bootstrap-icons/x.svg3
-rw-r--r--web/_static/bootstrap-icons/xbox.svg3
-rw-r--r--web/_static/bootstrap-icons/yelp.svg3
-rw-r--r--web/_static/bootstrap-icons/yin-yang.svg4
-rw-r--r--web/_static/bootstrap-icons/youtube.svg3
-rw-r--r--web/_static/bootstrap-icons/zoom-in.svg5
-rw-r--r--web/_static/bootstrap-icons/zoom-out.svg5
-rw-r--r--web/_static/bootstrap.v5.2.01
-rw-r--r--web/_static/bootstrap/css/bootstrap-grid.css4124
-rw-r--r--web/_static/bootstrap/css/bootstrap-grid.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-grid.min.css7
-rw-r--r--web/_static/bootstrap/css/bootstrap-grid.min.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-grid.rtl.css4123
-rw-r--r--web/_static/bootstrap/css/bootstrap-grid.rtl.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-grid.rtl.min.css7
-rw-r--r--web/_static/bootstrap/css/bootstrap-grid.rtl.min.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-reboot.css488
-rw-r--r--web/_static/bootstrap/css/bootstrap-reboot.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-reboot.min.css7
-rw-r--r--web/_static/bootstrap/css/bootstrap-reboot.min.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-reboot.rtl.css485
-rw-r--r--web/_static/bootstrap/css/bootstrap-reboot.rtl.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-reboot.rtl.min.css7
-rw-r--r--web/_static/bootstrap/css/bootstrap-reboot.rtl.min.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-utilities.css4197
-rw-r--r--web/_static/bootstrap/css/bootstrap-utilities.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-utilities.min.css7
-rw-r--r--web/_static/bootstrap/css/bootstrap-utilities.min.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-utilities.rtl.css4188
-rw-r--r--web/_static/bootstrap/css/bootstrap-utilities.rtl.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap-utilities.rtl.min.css7
-rw-r--r--web/_static/bootstrap/css/bootstrap-utilities.rtl.min.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap.css10907
-rw-r--r--web/_static/bootstrap/css/bootstrap.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap.min.css7
-rw-r--r--web/_static/bootstrap/css/bootstrap.min.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap.rtl.css10867
-rw-r--r--web/_static/bootstrap/css/bootstrap.rtl.css.map1
-rw-r--r--web/_static/bootstrap/css/bootstrap.rtl.min.css7
-rw-r--r--web/_static/bootstrap/css/bootstrap.rtl.min.css.map1
-rw-r--r--web/_static/bootstrap/js/bootstrap.bundle.js7066
-rw-r--r--web/_static/bootstrap/js/bootstrap.bundle.js.map1
-rw-r--r--web/_static/bootstrap/js/bootstrap.bundle.min.js7
-rw-r--r--web/_static/bootstrap/js/bootstrap.bundle.min.js.map1
-rw-r--r--web/_static/bootstrap/js/bootstrap.esm.js5204
-rw-r--r--web/_static/bootstrap/js/bootstrap.esm.js.map1
-rw-r--r--web/_static/bootstrap/js/bootstrap.esm.min.js7
-rw-r--r--web/_static/bootstrap/js/bootstrap.esm.min.js.map1
-rw-r--r--web/_static/bootstrap/js/bootstrap.js5251
-rw-r--r--web/_static/bootstrap/js/bootstrap.js.map1
-rw-r--r--web/_static/bootstrap/js/bootstrap.min.js7
-rw-r--r--web/_static/bootstrap/js/bootstrap.min.js.map1
-rw-r--r--web/_static/chart.js.v3.8.01
-rw-r--r--web/_static/chart.js/chart.esm.js10695
-rw-r--r--web/_static/chart.js/chart.js13384
-rw-r--r--web/_static/chart.js/chart.min.js13
-rw-r--r--web/_static/chart.js/chunks/helpers.segment.js2548
-rw-r--r--web/_static/chart.js/helpers.esm.js7
-rw-r--r--web/_static/dejavu-fonts.v2.371
-rw-r--r--web/_static/dejavu-fonts/Makefile60
-rw-r--r--web/_static/dejavu-fonts/dejavu-fonts.css196
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuMathTeXGyre.ttfbin0 -> 577708 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSans-Bold.ttfbin0 -> 705684 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSans-BoldOblique.ttfbin0 -> 643292 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSans-ExtraLight.ttfbin0 -> 355380 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSans-Oblique.ttfbin0 -> 635416 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSans.ttfbin0 -> 757076 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSansCondensed-Bold.ttfbin0 -> 665028 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSansCondensed-BoldOblique.ttfbin0 -> 611836 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSansCondensed-Oblique.ttfbin0 -> 599292 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSansCondensed.ttfbin0 -> 680264 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSansMono-Bold.ttfbin0 -> 331992 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSansMono-BoldOblique.ttfbin0 -> 253580 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSansMono-Oblique.ttfbin0 -> 251932 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSansMono.ttfbin0 -> 340712 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSerif-Bold.ttfbin0 -> 356088 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSerif-BoldItalic.ttfbin0 -> 347460 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSerif-Italic.ttfbin0 -> 345996 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSerif.ttfbin0 -> 380132 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSerifCondensed-Bold.ttfbin0 -> 331244 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSerifCondensed-BoldItalic.ttfbin0 -> 346508 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSerifCondensed-Italic.ttfbin0 -> 345324 bytes
-rw-r--r--web/_static/dejavu-fonts/ttf/DejaVuSerifCondensed.ttfbin0 -> 346664 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuMathTeXGyre.woffbin0 -> 265472 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSans-Bold.woffbin0 -> 348104 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSans-BoldOblique.woffbin0 -> 326700 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSans-ExtraLight.woffbin0 -> 169312 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSans-Oblique.woffbin0 -> 324108 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSans.woffbin0 -> 377212 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSansCondensed-Bold.woffbin0 -> 325388 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSansCondensed-BoldOblique.woffbin0 -> 312868 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSansCondensed-Oblique.woffbin0 -> 306540 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSansCondensed.woffbin0 -> 330536 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSansMono-Bold.woffbin0 -> 198060 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSansMono-BoldOblique.woffbin0 -> 150760 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSansMono-Oblique.woffbin0 -> 149396 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSansMono.woffbin0 -> 200340 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSerif-Bold.woffbin0 -> 193280 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSerif-BoldItalic.woffbin0 -> 194856 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSerif-Italic.woffbin0 -> 193784 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSerif.woffbin0 -> 210524 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSerifCondensed-Bold.woffbin0 -> 177876 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSerifCondensed-BoldItalic.woffbin0 -> 197012 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSerifCondensed-Italic.woffbin0 -> 196020 bytes
-rw-r--r--web/_static/dejavu-fonts/woff/DejaVuSerifCondensed.woffbin0 -> 189692 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuMathTeXGyre.woff2bin0 -> 186724 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSans-Bold.woff2bin0 -> 236792 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSans-BoldOblique.woff2bin0 -> 227924 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSans-ExtraLight.woff2bin0 -> 79036 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSans-Oblique.woff2bin0 -> 227820 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSans.woff2bin0 -> 257460 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSansCondensed-Bold.woff2bin0 -> 227876 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSansCondensed-BoldOblique.woff2bin0 -> 225080 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSansCondensed-Oblique.woff2bin0 -> 222456 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSansCondensed.woff2bin0 -> 231320 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSansMono-Bold.woff2bin0 -> 143796 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSansMono-BoldOblique.woff2bin0 -> 108228 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSansMono-Oblique.woff2bin0 -> 107524 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSansMono.woff2bin0 -> 145192 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSerif-Bold.woff2bin0 -> 132740 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSerif-BoldItalic.woff2bin0 -> 136760 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSerif-Italic.woff2bin0 -> 136192 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSerif.woff2bin0 -> 146864 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSerifCondensed-Bold.woff2bin0 -> 126072 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSerifCondensed-BoldItalic.woff2bin0 -> 143176 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSerifCondensed-Italic.woff2bin0 -> 142732 bytes
-rw-r--r--web/_static/dejavu-fonts/woff2/DejaVuSerifCondensed.woff2bin0 -> 136228 bytes
-rw-r--r--web/_static/highlight.js.v11.6.02
-rw-r--r--web/_static/highlight.js/highlight.min.js1198
-rw-r--r--web/_static/jquery.v3.6.01
-rw-r--r--web/_static/jquery/jquery.js10881
-rw-r--r--web/_static/jquery/jquery.min.js2
-rw-r--r--web/_static/jquery/jquery.min.map1
-rw-r--r--web/_static/jquery/jquery.slim.js8782
-rw-r--r--web/_static/jquery/jquery.slim.min.js2
-rw-r--r--web/_static/jquery/jquery.slim.min.map1
-rw-r--r--web/_static/jspreadsheet.v4.6.01
-rw-r--r--web/_static/jspreadsheet/jexcel.css751
-rw-r--r--web/_static/jspreadsheet/jexcel.js14131
-rw-r--r--web/_static/jspreadsheet/jexcel.theme.css183
-rw-r--r--web/_static/jsuites.v4.9.111
-rw-r--r--web/_static/jsuites/jsuites.basic.css2155
-rw-r--r--web/_static/jsuites/jsuites.basic.js9416
-rw-r--r--web/_static/jsuites/jsuites.css2724
-rw-r--r--web/_static/jsuites/jsuites.js11452
-rw-r--r--web/_static/jsuites/jsuites.layout.css2306
-rw-r--r--web/_static/jsuites/jsuites.layout.js3456
-rw-r--r--web/_static/jsuites/jsuites.mobile.css1012
-rw-r--r--web/_static/jsuites/jsuites.mobile.js1016
-rw-r--r--web/_static/jsuites/jsuites.webcomponents.js501
-rw-r--r--web/_static/local/font.css28
-rw-r--r--web/_static/local/icon.css5
-rw-r--r--web/_static/local/table.js4
-rw-r--r--web/_static/mermaid-js.v9.1.31
-rw-r--r--web/_static/mermaid-js/mermaid.core.js36455
-rw-r--r--web/_static/mermaid-js/mermaid.core.js.map1
-rw-r--r--web/_static/mermaid-js/mermaid.js89082
-rw-r--r--web/_static/mermaid-js/mermaid.js.map1
-rw-r--r--web/_static/popperjs.v2.11.52
-rw-r--r--web/_static/popperjs/popper-base.js1157
-rw-r--r--web/_static/popperjs/popper-base.js.map65
-rw-r--r--web/_static/popperjs/popper-base.min.js71
-rw-r--r--web/_static/popperjs/popper-base.min.js.flow65
-rw-r--r--web/_static/popperjs/popper-base.min.js.map65
-rw-r--r--web/_static/popperjs/popper-lite.js1490
-rw-r--r--web/_static/popperjs/popper-lite.js.map65
-rw-r--r--web/_static/popperjs/popper-lite.min.js71
-rw-r--r--web/_static/popperjs/popper-lite.min.js.flow65
-rw-r--r--web/_static/popperjs/popper-lite.min.js.map65
-rw-r--r--web/_static/popperjs/popper.js2062
-rw-r--r--web/_static/popperjs/popper.js.map65
-rw-r--r--web/_static/popperjs/popper.min.js71
-rw-r--r--web/_static/popperjs/popper.min.js.flow65
-rw-r--r--web/_static/popperjs/popper.min.js.map65
-rw-r--r--web/_static/tablesorter.v2.31.31
-rw-r--r--web/_static/tablesorter/css/dragtable.mod.min.css1
-rw-r--r--web/_static/tablesorter/css/filter.formatter.min.css1
-rw-r--r--web/_static/tablesorter/css/highlights.min.css1
-rw-r--r--web/_static/tablesorter/css/images/black-asc.gifbin0 -> 48 bytes
-rw-r--r--web/_static/tablesorter/css/images/black-desc.gifbin0 -> 49 bytes
-rw-r--r--web/_static/tablesorter/css/images/black-unsorted.gifbin0 -> 54 bytes
-rw-r--r--web/_static/tablesorter/css/images/bootstrap-black-unsorted.pngbin0 -> 276 bytes
-rw-r--r--web/_static/tablesorter/css/images/bootstrap-white-unsorted.pngbin0 -> 180 bytes
-rw-r--r--web/_static/tablesorter/css/images/dragtable-handle.pngbin0 -> 75 bytes
-rw-r--r--web/_static/tablesorter/css/images/dragtable-handle.svg7
-rw-r--r--web/_static/tablesorter/css/images/dropbox-asc-hovered.pngbin0 -> 200 bytes
-rw-r--r--web/_static/tablesorter/css/images/dropbox-asc.pngbin0 -> 204 bytes
-rw-r--r--web/_static/tablesorter/css/images/dropbox-desc-hovered.pngbin0 -> 195 bytes
-rw-r--r--web/_static/tablesorter/css/images/dropbox-desc.pngbin0 -> 206 bytes
-rw-r--r--web/_static/tablesorter/css/images/first.pngbin0 -> 642 bytes
-rw-r--r--web/_static/tablesorter/css/images/green-asc.gifbin0 -> 283 bytes
-rw-r--r--web/_static/tablesorter/css/images/green-desc.gifbin0 -> 283 bytes
-rw-r--r--web/_static/tablesorter/css/images/green-header.gifbin0 -> 513 bytes
-rw-r--r--web/_static/tablesorter/css/images/green-unsorted.gifbin0 -> 520 bytes
-rw-r--r--web/_static/tablesorter/css/images/ice-asc.gifbin0 -> 285 bytes
-rw-r--r--web/_static/tablesorter/css/images/ice-desc.gifbin0 -> 285 bytes
-rw-r--r--web/_static/tablesorter/css/images/ice-unsorted.gifbin0 -> 180 bytes
-rw-r--r--web/_static/tablesorter/css/images/last.pngbin0 -> 661 bytes
-rw-r--r--web/_static/tablesorter/css/images/loading.gifbin0 -> 416 bytes
-rw-r--r--web/_static/tablesorter/css/images/metro-black-asc.pngbin0 -> 158 bytes
-rw-r--r--web/_static/tablesorter/css/images/metro-black-desc.pngbin0 -> 171 bytes
-rw-r--r--web/_static/tablesorter/css/images/metro-loading.gifbin0 -> 673 bytes
-rw-r--r--web/_static/tablesorter/css/images/metro-unsorted.pngbin0 -> 151 bytes
-rw-r--r--web/_static/tablesorter/css/images/metro-white-asc.pngbin0 -> 165 bytes
-rw-r--r--web/_static/tablesorter/css/images/metro-white-desc.pngbin0 -> 178 bytes
-rw-r--r--web/_static/tablesorter/css/images/next.pngbin0 -> 658 bytes
-rw-r--r--web/_static/tablesorter/css/images/prev.pngbin0 -> 663 bytes
-rw-r--r--web/_static/tablesorter/css/images/white-asc.gifbin0 -> 48 bytes
-rw-r--r--web/_static/tablesorter/css/images/white-desc.gifbin0 -> 49 bytes
-rw-r--r--web/_static/tablesorter/css/images/white-unsorted.gifbin0 -> 54 bytes
-rw-r--r--web/_static/tablesorter/css/jquery.tablesorter.pager.min.css1
-rw-r--r--web/_static/tablesorter/css/less/bootstrap.less328
-rw-r--r--web/_static/tablesorter/css/less/metro.less357
-rw-r--r--web/_static/tablesorter/css/less/theme.less330
-rw-r--r--web/_static/tablesorter/css/scss/theme.scss327
-rw-r--r--web/_static/tablesorter/css/theme.blackice.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.blue.css229
-rw-r--r--web/_static/tablesorter/css/theme.blue.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.bootstrap.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.bootstrap_2.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.bootstrap_3.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.bootstrap_4.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.dark.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.default.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.dropbox.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.green.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.grey.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.ice.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.jui.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.materialize.min.css1
-rw-r--r--web/_static/tablesorter/css/theme.metro-dark.min.css1
-rw-r--r--web/_static/tablesorter/css/widget.grouping.min.css1
-rw-r--r--web/_static/tablesorter/js/extras/jquery.dragtable.mod.min.js6
-rw-r--r--web/_static/tablesorter/js/extras/jquery.metadata.min.js3
-rw-r--r--web/_static/tablesorter/js/extras/jquery.tablesorter.pager.min.js7
-rw-r--r--web/_static/tablesorter/js/extras/semver-mod.min.js2
-rw-r--r--web/_static/tablesorter/js/jquery.tablesorter.combined.js6093
-rw-r--r--web/_static/tablesorter/js/jquery.tablesorter.combined.min.js4
-rw-r--r--web/_static/tablesorter/js/jquery.tablesorter.js2916
-rw-r--r--web/_static/tablesorter/js/jquery.tablesorter.min.js1
-rw-r--r--web/_static/tablesorter/js/jquery.tablesorter.widgets.js3178
-rw-r--r--web/_static/tablesorter/js/jquery.tablesorter.widgets.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-date-extract.min.js11
-rw-r--r--web/_static/tablesorter/js/parsers/parser-date-iso8601.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-date-month.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-date-range.min.js11
-rw-r--r--web/_static/tablesorter/js/parsers/parser-date-two-digit-year.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-date-weekday.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-date.min.js7
-rw-r--r--web/_static/tablesorter/js/parsers/parser-duration.min.js6
-rw-r--r--web/_static/tablesorter/js/parsers/parser-feet-inch-fraction.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-file-type.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-globalize.min.js7
-rw-r--r--web/_static/tablesorter/js/parsers/parser-huge-numbers.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-ignore-articles.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-image.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-input-select.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-leading-zeros.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-metric.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-named-numbers.min.js4
-rw-r--r--web/_static/tablesorter/js/parsers/parser-network.min.js9
-rw-r--r--web/_static/tablesorter/js/parsers/parser-roman.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-alignChar.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-build-table.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-chart.min.js3
-rw-r--r--web/_static/tablesorter/js/widgets/widget-columnSelector.min.js3
-rw-r--r--web/_static/tablesorter/js/widgets/widget-columns.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-cssStickyHeaders.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-currentSort.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-editable.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-filter-formatter-html5.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-filter-formatter-jui.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-filter-formatter-select2.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-filter-type-insideRange.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-filter.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-formatter.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-grouping.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-headerTitles.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-lazyload.min.js19
-rw-r--r--web/_static/tablesorter/js/widgets/widget-mark.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-math.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-output.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-pager.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-print.min.js3
-rw-r--r--web/_static/tablesorter/js/widgets/widget-reflow.min.js3
-rw-r--r--web/_static/tablesorter/js/widgets/widget-repeatheaders.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-resizable.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-saveSort.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-scroller.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-sort2Hash.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-sortTbodies.min.js8
-rw-r--r--web/_static/tablesorter/js/widgets/widget-staticRow.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-stickyHeaders.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-storage.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-toggle.min.js7
-rw-r--r--web/_static/tablesorter/js/widgets/widget-uitheme.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-vertical-group.min.js4
-rw-r--r--web/_static/tablesorter/js/widgets/widget-view.min.js3
-rwxr-xr-xweb/about.py69
-rw-r--r--web/favicon.svg4
-rw-r--r--web/html/about.html.in53
-rw-r--r--web/html/footer.html23
-rw-r--r--web/html/header.html.in74
-rw-r--r--web/html/index.html.in50
-rw-r--r--web/html/log.html.in5
-rw-r--r--web/html/monitoring.html.in75
-rw-r--r--web/html/services.bottom.html.in2
-rw-r--r--web/html/services.top.html.in20
-rw-r--r--web/html/systems.bottom.html.in2
-rw-r--r--web/html/systems.top.html.in20
-rw-r--r--web/html/terminal.html18
-rw-r--r--web/html/terminal.html.in1
-rwxr-xr-xweb/index.py27
-rw-r--r--web/log.js192
-rwxr-xr-xweb/log.py27
-rwxr-xr-xweb/monitoring.py27
-rwxr-xr-xweb/services.py156
-rwxr-xr-xweb/systems.py152
-rwxr-xr-xweb/terminal.py27
-rwxr-xr-xweb/tools.py26
2144 files changed, 324453 insertions, 0 deletions
diff --git a/web/Makefile b/web/Makefile
new file mode 100644
index 0000000..090f923
--- /dev/null
+++ b/web/Makefile
@@ -0,0 +1,4 @@
+all:
+ a2disconf csp
+ a2disconf no-frames
+ a2enmod cgi
diff --git a/web/TMP/tools.html b/web/TMP/tools.html
new file mode 100644
index 0000000..6b8d23a
--- /dev/null
+++ b/web/TMP/tools.html
@@ -0,0 +1,273 @@
+<!doctype html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="author" content="system-administration@open-infrastructure.net">
+ <meta name="description" content="Open Infrastructure">
+ <meta name="generator" content="open-infrastructure.net">
+ <title>{hostname}</title>
+
+ <link rel="canonical" href="https://open-infrastructure.net">
+ <link rel="icon" href="/favicon.svg" type="image/svg+xml">
+
+ <!-- Bootstrap core CSS -->
+ <link href="/_static/bootstrap/css/bootstrap.min.css" rel="stylesheet">
+
+ <!-- Custom styles for this template -->
+ <link href="/_static/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
+ <link href="/_static/dejavu-fonts/dejavu-fonts.css" rel="stylesheet">
+
+ <link href="/_static/local/font.css" rel="stylesheet">
+ <link href="/_static/local/icon.css" rel="stylesheet">
+ </head>
+
+ <body>
+ <nav class="navbar navbar-expand-md navbar-dark fixed-top" style="background: #a40000">
+ <div class="container-fluid">
+ <a class="navbar-brand" href="/"><b>{hostname}</b></a>
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
+ <span class="navbar-toggler-icon"></span>
+ </button>
+ <div style="width: 4em"></div>
+ <div class="collapse navbar-collapse" id="navbarCollapse">
+ <ul class="navbar-nav me-auto mb-2 mb-md-0">
+ <li class="nav-item">
+ <a class="nav-link active" aria-current="page" href="/systems">Systems</a>
+ </li>
+ <li><div style="width: 1em"></div></li>
+ <li class="nav-item">
+ <a class="nav-link active" aria-current="page" href="/tools">Tools</a>
+ </li>
+ <li><div style="width: 1em"></div></li>
+ <li class="nav-item">
+ <a class="nav-link active" aria-current="page" href="/ttyd">ttyd</a>
+ </li>
+ <li><div style="width: 1em"></div></li>
+ <li class="nav-item">
+ <a class="nav-link active" aria-current="page" href="/netdata">netdata</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </nav>
+
+ <div class="container">
+ <main>
+ <!-- Begin content -->
+
+ <main role="main" class="container">
+
+ <div class="content">
+
+<a name="top"></a>
+<h1><i class="fa-fw far fa-tools"></i> Tools &nbsp;&nbsp;&nbsp; <small>(<a href="/tools/api">API</a>)</small></h1>
+<div style="height: 2em"></div>
+
+<script src="/_static/jquery/jquery.min.js"></script>
+
+<script>
+ $(document).ready(function(){
+ $("[type=button]").click(function() {
+ var command = $(this).data("command");
+ var protocol = $("input[name='protocol']:checked").val();
+ var target = document.getElementById("target").value;
+ var cgi = command + "&protocol=" + protocol + "&target=" + target;
+ $.ajax({url: cgi, success: function(result){
+ $("#output").text(result);
+ document.getElementById('output-hidden').style.display = 'block';
+ $(document).scrollTop( $("#output").offset().top -125);
+ }});
+ });
+
+ $("[type=reset]").click(function() {
+ $("#dual-stack").click();
+ $('.btn-group').find('reset').removeClass('active')
+ .end().find('[type="reset"]').prop('checked', false);
+ document.getElementById('output-hidden').style.display = 'none';
+ $("#target").focus();
+ $("#target").prop('autofocus');
+ });
+ });
+</script>
+
+<style type="text/css">
+ label, [type="button"], [type="reset"], [type="text"] {
+ margin-top: 0.5em;
+ }
+</style>
+
+<form id="form">
+ <div class="form-group">
+ <div class="row">
+ <div class="col-md-6">
+ <b>Target</b>
+ <input id="target" placeholder="IP address/subnet, FQDN, ASN, Internet resources..." style="width: 100%;" type="text" autofocus />
+
+ <div style="height: 1em"></div>
+ </div>
+
+ <div class="col-md-6">
+ <b>Settings</b><br />
+ <input class="btn btn-light btn-sm" type="reset" value="Reset" />
+
+ <div class="btn-group btn-group-toggle" data-toggle="buttons">
+ <label class="btn btn-light btn-sm active">
+ <input type="radio" name="protocol" id="dual-stack" value="dual-stack" checked> Dual-stack
+ </label>
+ <label class="btn btn-light btn-sm">
+ <input type="radio" name="protocol" id="ipv4-only" value="ipv4-only"> IPv4-only
+ </label>
+ <label class="btn btn-light btn-sm">
+ <input type="radio" name="protocol" id="ipv6-only" value="ipv6-only"> IPv6-only
+ </label>
+ </div>
+
+ <div style="height: 1em"></div>
+ </div>
+ </div>
+ </div>
+</form>
+
+<hr />
+
+<div class="row">
+ <div class="col-md-6">
+ <b>Network</b><br />
+ <button type="button" class="btn btn-success" data-command="/tools.py?command=ping">ping</button>
+ <button type="button" class="btn btn-success" data-command="/tools.py?command=traceroute">traceroute</button>
+ <button type="button" class="btn btn-success" data-command="/tools.py?command=tcptraceroute">tcptraceroute</button>
+ <button type="button" class="btn btn-success" data-command="/tools.py?command=whois">whois</button>
+
+ <div style="height: 1em"></div>
+
+ <b>Security</b><br />
+ <button type="button" class="btn btn-warning" data-command="/tools.py?command=nmap">nmap</button>
+ <button type="button" class="btn btn-warning" data-command="/tools.py?command=ssh-audit">ssh-audit</button>
+ <button type="button" class="btn btn-warning" data-command="/tools.py?command=testssl">testssl</button>
+
+ <div style="height: 1em"></div>
+
+ <b>other</b><br />
+ <button type="button" class="btn btn-info" data-command="/tools.py?command=my-ip&target=none">My IP</button>
+ <button type="button" class="btn btn-info" data-command="/tools.py?command=my-browser&target=none">My browser</button>
+
+ <div style="height: 1em"></div>
+ </div>
+
+ <div class="col-md-6">
+ <b>DNS</b><br />
+ <small><b>Address-related records</b></small><br />
+ <button type="button" class="btn btn-primary" data-command="/tools.py?command=kdig&query=ANY">ANY</button>
+ <button type="button" class="btn btn-primary" data-command="/tools.py?command=kdig&query=A">A</button>
+ <button type="button" class="btn btn-primary" data-command="/tools.py?command=kdig&query=AAAA">AAAA</button>
+ <button type="button" class="btn btn-primary" data-command="/tools.py?command=kdig&query=CNAME">CNAME</button>
+ <button type="button" class="btn btn-primary" data-command="/tools.py?command=kdig&query=DNAME">DNAME</button>
+ <button type="button" class="btn btn-primary" data-command="/tools.py?command=kdig&query=PTR">PTR</button>
+
+ <div style="height: 1em"></div>
+
+ <small><b>Informational records</b></small><br />
+ <button type="button" class="btn btn-info" data-command="/tools.py?command=kdig&query=APL">APL</button>
+ <button type="button" class="btn btn-info" data-command="/tools.py?command=kdig&query=HINFO">HINFO</button>
+ <button type="button" class="btn btn-info" data-command="/tools.py?command=kdig&query=LOC">LOC</button>
+ <button type="button" class="btn btn-info" data-command="/tools.py?command=kdig&query=RP">RP</button>
+ <button type="button" class="btn btn-info" data-command="/tools.py?command=kdig&query=SOA">SOA</button>
+ <button type="button" class="btn btn-info" data-command="/tools.py?command=kdig&query=SRV">SRV</button>
+ <button type="button" class="btn btn-info" data-command="/tools.py?command=kdig&query=TXT">TXT</button>
+
+ <div style="height: 1em"></div>
+
+ <small><b>DNSSEC records</b></small><br />
+ <button type="button" class="btn btn-secondary" data-command="/tools.py?command=kdig&query=CDNSKEY">CDNSKEY</button>
+ <button type="button" class="btn btn-secondary" data-command="/tools.py?command=kdig&query=CDS">CDS</button>
+ <button type="button" class="btn btn-secondary" data-command="/tools.py?command=kdig&query=DNSKEY">DNSKEY</button>
+ <button type="button" class="btn btn-secondary" data-command="/tools.py?command=kdig&query=DS">DS</button>
+ <button type="button" class="btn btn-secondary" data-command="/tools.py?command=kdig&query=RRSIG">RRSIG</button>
+
+ <div style="height: 1em"></div>
+
+ <small><b>Security-related records</b></small><br />
+ <button type="button" class="btn btn-warning" data-command="/tools.py?command=kdig&query=CAA">CAA</button>
+ <button type="button" class="btn btn-warning" data-command="/tools.py?command=kdig&query=NSEC3">NSEC3</button>
+ <button type="button" class="btn btn-warning" data-command="/tools.py?command=kdig&query=NSEC3PARAM">NSEC3PARAM</button>
+ <button type="button" class="btn btn-warning" data-command="/tools.py?command=kdig&query=SSHFP">SSHFP</button>
+ <button type="button" class="btn btn-warning" data-command="/tools.py?command=kdig&query=TLSA">TLSA</button>
+
+ <div style="height: 1em"></div>
+
+ <small><b>other records and types</b></small><br />
+ <button type="button" class="btn btn-success" data-command="/tools.py?command=kdig&query=AXFR">AXFR*</button>
+ <button type="button" class="btn btn-success" data-command="/tools.py?command=kdig&query=MX">MX</button>
+ <button type="button" class="btn btn-success" data-command="/tools.py?command=kdig&query=NS">NS</button>
+
+ <div style="height: 1em"></div>
+
+ <small><b>Legacy records</b></small><br />
+ <button type="button" class="btn btn-danger" data-command="/tools.py?command=kdig&query=NSEC">NSEC</button>
+ <button type="button" class="btn btn-danger" data-command="/tools.py?command=kdig&query=SPF">SPF</button>
+
+ <div style="height: 1em"></div>
+ </div>
+</div>
+
+<div class="row">
+ <div class="col-md-6">
+ <small><b>Notes:</b>
+ <ul>
+ <li>testssl can take up to 5min (with currently no output until the end)</li>
+ </ul></small>
+
+ <div style="height: 1em"></div>
+ </div>
+
+ <div class="col-md-6">
+ <small><b>*</b> only available for BFH authoritative zones</small>
+
+ <div style="height: 1em"></div>
+ </div>
+</div>
+
+<hr />
+
+<div id="output-hidden" style="display: none;">
+<a name="output"></a>
+<a href="#top"><button type="button" class="btn btn-light btn-sm float-right">&uarr;</button></a><br />
+<b>Output</b><br />
+<pre>
+<textarea id="output" readonly rows="25" style="background: #f1f1f1; width: 100%;"></textarea>
+</pre>
+</div>
+
+<div style="height: 1em"></div>
+
+
+ </div>
+
+ </main><!-- /.container -->
+
+
+
+
+ <!-- End content -->
+ </main>
+
+ <div style="height: 4em"></div>
+
+ <footer class="d-flex flex-wrap justify-content-between align-items-center py-3 my-4 border-top">
+ <p class="col-md-4 mb-0 text-muted">&copy; 2022</p>
+
+ <ul class="nav col-md-4 justify-content-end">
+ <li class="nav-item"><a href="https://open-infrastructure.net/contact" class="nav-link px-2 text-muted">Contact</a></li>
+ <li class="nav-item"><a href="https://open-infrastructure.net/legal" class="nav-link px-2 text-muted">Legal</a></li>
+ </ul>
+ </footer>
+ </div>
+
+ <!-- Bootstrap core JS -->
+ <script src="/_static/popperjs/popper.min.js"></script>
+ <script src="/_static/bootstrap/js/bootstrap.min.js"></script>
+
+ <!-- Custom scripts for this template -->
+ </body>
+</html>
diff --git a/web/TMP/tools.py b/web/TMP/tools.py
new file mode 100755
index 0000000..c8dab03
--- /dev/null
+++ b/web/TMP/tools.py
@@ -0,0 +1,269 @@
+#!/usr/bin/python3
+
+# Copyright (C) 2013-2021 Daniel Baumann <daniel@debian.org>
+#
+# SPDX-License-Identifier: GPL-3.0+
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Dependencies:
+# sudo apt install iputils-ping traceroute whois nmap ssh-audit testssl.sh geoip-bin geoip-database knot-dnsutils
+# sudo apt install python3-pygments
+
+from cgi import FieldStorage
+from datetime import datetime
+import ipaddress
+from os import getenv
+from subprocess import Popen, PIPE
+from sys import exit
+
+def filter_nameservers(servers, protocol):
+ nameservers= []
+
+ for server in servers:
+ name = server.rstrip().rstrip('.')
+
+ if protocol == 'ipv6-only':
+ command = 'kdig -6'
+ options = ' -t AAAA +short -q '
+ elif protocol == 'ipv4-only':
+ command = 'kdig -4'
+ options = ' -t A +short -q '
+ else:
+ command = 'kdig'
+ options = ' +short -q '
+
+ command_line = (command + options + name).split()
+ kdig = Popen(command_line, stdout=PIPE)
+ address = kdig.stdout.readline()
+
+ if address:
+ nameservers.append(name)
+
+ return nameservers
+
+def get_nameserver(name, protocol):
+ nameservers = []
+
+ if protocol == 'ipv6-only':
+ command = 'kdig -6'
+ elif protocol == 'ipv4-only':
+ command = 'kdig -4'
+ else:
+ command = 'kdig'
+
+ options = ' -t NS +short -q '
+
+ command_line = (command + options + name).split()
+ kdig = Popen(command_line, stdout=PIPE)
+ servers = kdig.stdout.readlines()
+
+ count = 0
+ while not servers and count < 10:
+ name = name.split('.')
+ del name[0]
+ name = '.'.join(name)
+
+ command_line = (command + options + name).split()
+ kdig = Popen(command_line, stdout=PIPE)
+ servers = kdig.stdout.readlines()
+
+ count += 1
+
+ names = []
+ for server in servers:
+ name = server.rstrip().decode('utf-8').rstrip('.')
+ names.append(name)
+
+ nameservers = filter_nameservers(names, protocol)
+ return nameservers
+
+def run_command(command):
+ process = Popen(command, stdout=PIPE)
+ empty_lines = 0
+ while True:
+ line = process.stdout.readline().rstrip()
+ if not line:
+ empty_lines = empty_lines + 1
+ if empty_lines > 2:
+ break
+ else:
+ print()
+ else:
+ empty_lines = 0
+ yield line.decode('utf-8')
+
+def main():
+ form = FieldStorage()
+
+ if form.getvalue("command"):
+ Command = form.getvalue("command").split()[0]
+
+ if "target" in form:
+ Target = form.getvalue("target").split()[0]
+
+ if "protocol" in form:
+ Protocol = form.getvalue("protocol").split()[0]
+
+ if "query" in form:
+ Query = form.getvalue("query").split()[0]
+
+ if Command and Protocol and Target:
+ print('Content-Type: text/html\n')
+
+ Date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
+
+ if Command == 'kdig':
+ if Protocol == 'ipv6-only':
+ options = ' -6'
+ elif Protocol == 'ipv4-only':
+ options = ' -4'
+ else:
+ options = ''
+
+ if Query == 'PTR':
+ arpa = ipaddress.ip_address(Target).reverse_pointer
+
+ nameserver = get_nameserver(arpa, Protocol)
+
+ protocol_passed = False
+
+ for server in nameserver:
+ check_options = options + ' @' + server + ' -t ' + Query + ' -q '
+
+ command_line = (Command + ' +short' + check_options + arpa).split()
+ kdig = Popen(command_line, stdout=PIPE)
+ protocol_check = kdig.stdout.readline()
+
+ if protocol_check:
+ protocol_passed = True
+ break
+
+ if not protocol_passed:
+ print('IPv6-only query but no IPv6 enabled nameserver available for ' + Target + '\n\n')
+ print('--')
+ print('Run: ' + str(command_line))
+ print('Date: ' + Date)
+
+ exit(0)
+
+ options = options + ' @' + server + ' -x '
+ else:
+ nameserver = get_nameserver(Target, Protocol)
+
+ protocol_passed = False
+
+ for server in nameserver:
+ check_options = options + ' @' + server + ' -t ' + Query + ' -q '
+
+ command_line = (Command + ' +short' + check_options + Target).split()
+ kdig = Popen(command_line, stdout=PIPE)
+ protocol_check = kdig.stdout.readline()
+
+ if protocol_check:
+ protocol_passed = True
+ break
+
+ if not protocol_passed:
+ print('IPv6-only query but no IPv6 enabled nameserver available for ' + Target + '\n\n')
+ print('--')
+ print('Run: ' + str(command_line))
+ print('Date: ' + Date)
+
+ exit(0)
+
+ options = options + ' @' + server + ' -t ' + Query + ' -q '
+ elif Command == 'ping':
+ if Protocol == 'ipv6-only':
+ options = ' -6'
+ elif Protocol == 'ipv4-only':
+ options = ' -4'
+ else:
+ options = ''
+ options = options + ' -c3 '
+ elif Command == 'traceroute':
+ if Protocol == 'ipv6-only':
+ options = ' -6'
+ elif Protocol == 'ipv4-only':
+ options = ' -4'
+ else:
+ options = ''
+ options = options + ' '
+ elif Command == 'tcptraceroute':
+ Command = 'traceroute'
+ if Protocol == 'ipv6-only':
+ options = ' -6'
+ elif Protocol == 'ipv4-only':
+ options = ' -4'
+ else:
+ options = ''
+ options = options + ' -T '
+ elif Command == 'nmap':
+ if Protocol == 'ipv6-only':
+ options = ' -6'
+ else:
+ options = ' '
+ #-O -T5
+ elif Command == 'ssh-audit':
+ if Protocol == 'ipv6-only':
+ options = ' -6'
+ elif Protocol == 'ipv4-only':
+ options = ' -4'
+ else:
+ options = ''
+ options = options + ' --no-colors '
+ elif Command == 'testssl':
+ options = ' --color 0 '
+ elif Command == 'whois':
+ options = ' -H '
+ else:
+ options = ' '
+
+ if Command == 'my-ip':
+ command_line = ''
+
+ ip_address = getenv('REMOTE_ADDR')
+ print('IP address: ' + ip_address)
+
+ # TODO: show reverse DNS
+
+ if ':' in ip_address:
+ print('IP version: IPv6')
+ process = Popen(['geoiplookup6', ip_address], stdout=PIPE)
+ else:
+ print('IP version: IPv4')
+ process = Popen(['geoiplookup', ip_address], stdout=PIPE)
+
+ geoiplookup = process.stdout.readline().rstrip()
+ country = geoiplookup.decode('utf-8').split(':')[1]
+ print('Country:' + country + '\n\n')
+ elif Command == 'my-browser':
+ command_line = ''
+ print('User-Agent: ' + getenv('HTTP_USER_AGENT', 'n/a') + '\n\n')
+ else:
+ command_line = Command + options + Target
+
+ for path in run_command(command_line.split()):
+ print(path)
+
+ print('--')
+ print('Date: ' + Date)
+
+ if command_line:
+ print('Run: ' + command_line)
+
+ exit(0)
+
+if __name__ == '__main__':
+ main()
diff --git a/web/TMP/tools/api/index.html b/web/TMP/tools/api/index.html
new file mode 100644
index 0000000..a5f22f2
--- /dev/null
+++ b/web/TMP/tools/api/index.html
@@ -0,0 +1,11 @@
+<html>
+ <h1>tools.bfh.info</h1>
+
+ <h2>API</h2>
+
+ <ul>
+ <li><a href="/tools/api/v0/ip/address">/tools/api/v0/ip/address</a></li>
+ <li><a href="/tools/api/v0/ipv4/address">/tools/api/v0/ipv4/address</a></li>
+ <li><a href="/tools/api/v0/ipv6/address">/tools/api/v0/ipv6/address</a></li>
+ </ul>
+</html>
diff --git a/web/TMP/tools/api/v0/dns/a/index.py b/web/TMP/tools/api/v0/dns/a/index.py
new file mode 100755
index 0000000..88b1b03
--- /dev/null
+++ b/web/TMP/tools/api/v0/dns/a/index.py
@@ -0,0 +1,93 @@
+#!/usr/bin/python3
+
+# Copyright (C) 2013-2021 Daniel Baumann <daniel@debian.org>
+#
+# SPDX-License-Identifier: GPL-3.0+
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+from ipaddress import ip_address
+from json import dumps
+from os import getenv
+from subprocess import Popen, PIPE
+from sys import exit
+
+from pygments import highlight
+from pygments.lexers import JsonLexer
+from pygments.formatters import TerminalFormatter
+
+def run_command(command):
+ process = Popen(command, stdout=PIPE)
+ empty_lines = 0
+ while True:
+ line = process.stdout.readline().rstrip()
+ if not line:
+ empty_lines = empty_lines + 1
+ if empty_lines > 2:
+ break
+ else:
+ print()
+ else:
+ empty_lines = 0
+ yield line.decode('utf-8')
+
+def v0_dns_a():
+ a = 'google.com'
+ cgi = getenv('GATEWAY_INTERFACE')
+
+ #command_line = 'kdig +json A ' + a + ' | jq -r -M \'.answer | .[] | .rdata\''
+ command_line = 'kdig +json A ' + a
+
+ kdig = Popen(command_line.split(), stdout=PIPE)
+
+# try:
+# ip = str(ip_address(address))
+# if ip_address(address).version == 4:
+# ip_version = 'ipv4'
+# elif ip_address(address).version == 6:
+# ip_version = 'ipv6'
+# else:
+# ip_version = None
+# message = 'valid IP address'
+# status = True
+# except ValueError:
+# ip = None
+# ip_version = None
+# message = 'invalid IP address'
+# status = False
+
+ status = True
+ message = 'valid DNS record'
+
+ json = \
+ {
+ 'data': {
+ 'record': a,
+ },
+ 'meta': {
+ 'status': status,
+ 'message': message,
+ },
+ }
+
+ if cgi:
+ print('Content-Type: application/json\n')
+ print(dumps(json))
+ else:
+ print(highlight(dumps(json, indent=4), JsonLexer(), TerminalFormatter()))
+
+ exit(0)
+
+if __name__ == '__main__':
+ v0_dns_a()
diff --git a/web/TMP/tools/api/v0/ip/address/index.py b/web/TMP/tools/api/v0/ip/address/index.py
new file mode 100755
index 0000000..49e4971
--- /dev/null
+++ b/web/TMP/tools/api/v0/ip/address/index.py
@@ -0,0 +1,70 @@
+#!/usr/bin/python3
+
+# Copyright (C) 2013-2021 Daniel Baumann <daniel@debian.org>
+#
+# SPDX-License-Identifier: GPL-3.0+
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+from ipaddress import ip_address
+from json import dumps
+from os import getenv
+from sys import exit
+
+from pygments import highlight
+from pygments.lexers import JsonLexer
+from pygments.formatters import TerminalFormatter
+
+def v0_ip_address():
+ address = getenv('REMOTE_ADDR')
+ cgi = getenv('GATEWAY_INTERFACE')
+
+ try:
+ ip = str(ip_address(address))
+ if ip_address(address).version == 4:
+ ip_version = 'ipv4'
+ elif ip_address(address).version == 6:
+ ip_version = 'ipv6'
+ else:
+ ip_version = None
+ message = 'valid IP address'
+ status = True
+ except ValueError:
+ ip = None
+ ip_version = None
+ message = 'invalid IP address'
+ status = False
+
+ json = \
+ {
+ 'data': {
+ 'ip_address': ip,
+ 'ip_version': ip_version,
+ },
+ 'meta': {
+ 'status': status,
+ 'message': message,
+ },
+ }
+
+ if cgi:
+ print('Content-Type: application/json\n')
+ print(dumps(json))
+ else:
+ print(highlight(dumps(json, indent=4), JsonLexer(), TerminalFormatter()))
+
+ exit(0)
+
+if __name__ == '__main__':
+ v0_ip_address()
diff --git a/web/TMP/tools/api/v0/ipv4/address/index.py b/web/TMP/tools/api/v0/ipv4/address/index.py
new file mode 100755
index 0000000..7a08c34
--- /dev/null
+++ b/web/TMP/tools/api/v0/ipv4/address/index.py
@@ -0,0 +1,62 @@
+#!/usr/bin/python3
+
+# Copyright (C) 2013-2021 Daniel Baumann <daniel@debian.org>
+#
+# SPDX-License-Identifier: GPL-3.0+
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+from ipaddress import IPv4Address
+from json import dumps
+from os import getenv
+from sys import exit
+
+from pygments import highlight
+from pygments.lexers import JsonLexer
+from pygments.formatters import TerminalFormatter
+
+def v0_ipv4_address():
+ address = getenv('REMOTE_ADDR')
+ cgi = getenv('GATEWAY_INTERFACE')
+
+ try:
+ ip = str(IPv4Address(address))
+ message = 'valid IPv4 address'
+ status = True
+ except ValueError:
+ ip = None
+ message = 'invalid IPv4 address'
+ status = False
+
+ json = \
+ {
+ 'data': {
+ 'ipv4_address': ip,
+ },
+ 'meta': {
+ 'status': status,
+ 'message': message,
+ },
+ }
+
+ if cgi:
+ print('Content-Type: application/json\n')
+ print(dumps(json))
+ else:
+ print(highlight(dumps(json, indent=4), JsonLexer(), TerminalFormatter()))
+
+ exit(0)
+
+if __name__ == '__main__':
+ v0_ipv4_address()
diff --git a/web/TMP/tools/api/v0/ipv6/address/index.py b/web/TMP/tools/api/v0/ipv6/address/index.py
new file mode 100755
index 0000000..0746a83
--- /dev/null
+++ b/web/TMP/tools/api/v0/ipv6/address/index.py
@@ -0,0 +1,62 @@
+#!/usr/bin/python3
+
+# Copyright (C) 2013-2021 Daniel Baumann <daniel@debian.org>
+#
+# SPDX-License-Identifier: GPL-3.0+
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+from ipaddress import IPv6Address
+from json import dumps
+from os import getenv
+from sys import exit
+
+from pygments import highlight
+from pygments.lexers import JsonLexer
+from pygments.formatters import TerminalFormatter
+
+def v0_ipv6_address():
+ address = getenv('REMOTE_ADDR')
+ cgi = getenv('GATEWAY_INTERFACE')
+
+ try:
+ ip = str(IPv6Address(address))
+ message = 'valid IPv6 address'
+ status = True
+ except ValueError:
+ ip = None
+ message = 'invalid IPv6 address'
+ status = False
+
+ json = \
+ {
+ 'data': {
+ 'ipv6_address': ip,
+ },
+ 'meta': {
+ 'status': status,
+ 'message': message,
+ },
+ }
+
+ if cgi:
+ print('Content-Type: application/json\n')
+ print(dumps(json))
+ else:
+ print(highlight(dumps(json, indent=4), JsonLexer(), TerminalFormatter()))
+
+ exit(0)
+
+if __name__ == '__main__':
+ v0_ipv6_address()
diff --git a/web/TODO.txt b/web/TODO.txt
new file mode 100644
index 0000000..99d5611
--- /dev/null
+++ b/web/TODO.txt
@@ -0,0 +1,10 @@
+* debug knopf um ttyd zu killen/restarten
+* netdata: refresh every 5min
+* add container-shell ttyd
+
+
+
+- put container-list output in a ajax refreshable area/box and refresh automatically every n minutes
+- add manual refresh button
+- add auto refresh toggle
+- add 'drop-down' button to switch between 'cnt console' and 'cnt enter'
diff --git a/web/_static/asciinema-player.v3.0.1 b/web/_static/asciinema-player.v3.0.1
new file mode 100644
index 0000000..b8d6937
--- /dev/null
+++ b/web/_static/asciinema-player.v3.0.1
@@ -0,0 +1 @@
+https://github.com/asciinema/asciinema-player/releases
diff --git a/web/_static/asciinema-player/asciinema-player.css b/web/_static/asciinema-player/asciinema-player.css
new file mode 100644
index 0000000..6a8a3cc
--- /dev/null
+++ b/web/_static/asciinema-player/asciinema-player.css
@@ -0,0 +1,2508 @@
+.asciinema-player-wrapper {
+ outline: none;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+}
+.asciinema-player-wrapper .title-bar {
+ display: none;
+ top: -78px;
+ transition: top 0.15s linear;
+ position: absolute;
+ left: 0;
+ right: 0;
+ box-sizing: content-box;
+ font-size: 20px;
+ line-height: 1em;
+ padding: 15px;
+ font-family: sans-serif;
+ color: white;
+ background-color: rgba(0, 0, 0, 0.8);
+}
+.asciinema-player-wrapper .title-bar img {
+ vertical-align: middle;
+ height: 48px;
+ margin-right: 16px;
+}
+.asciinema-player-wrapper .title-bar a {
+ color: white;
+ text-decoration: underline;
+}
+.asciinema-player-wrapper .title-bar a:hover {
+ text-decoration: none;
+}
+.asciinema-player-wrapper:fullscreen {
+ background-color: #000;
+ width: 100%;
+ -webkit-align-items: center;
+ align-items: center;
+}
+.asciinema-player-wrapper:fullscreen .asciinema-player {
+ position: static;
+}
+.asciinema-player-wrapper:fullscreen .title-bar {
+ display: initial;
+}
+.asciinema-player-wrapper:fullscreen.hud .title-bar {
+ top: 0;
+}
+.asciinema-player-wrapper:-webkit-full-screen {
+ background-color: #000;
+ width: 100%;
+ -webkit-align-items: center;
+ align-items: center;
+}
+.asciinema-player-wrapper:-webkit-full-screen .asciinema-player {
+ position: static;
+}
+.asciinema-player-wrapper:-webkit-full-screen .title-bar {
+ display: initial;
+}
+.asciinema-player-wrapper:-webkit-full-screen.hud .title-bar {
+ top: 0;
+}
+.asciinema-player-wrapper:-moz-full-screen {
+ background-color: #000;
+ width: 100%;
+ -webkit-align-items: center;
+ align-items: center;
+}
+.asciinema-player-wrapper:-moz-full-screen .asciinema-player {
+ position: static;
+}
+.asciinema-player-wrapper:-moz-full-screen .title-bar {
+ display: initial;
+}
+.asciinema-player-wrapper:-moz-full-screen.hud .title-bar {
+ top: 0;
+}
+.asciinema-player-wrapper:-ms-fullscreen {
+ background-color: #000;
+ width: 100%;
+ -webkit-align-items: center;
+ align-items: center;
+}
+.asciinema-player-wrapper:-ms-fullscreen .asciinema-player {
+ position: static;
+}
+.asciinema-player-wrapper:-ms-fullscreen .title-bar {
+ display: initial;
+}
+.asciinema-player-wrapper:-ms-fullscreen.hud .title-bar {
+ top: 0;
+}
+.asciinema-player-wrapper .asciinema-player {
+ text-align: left;
+ display: inline-block;
+ padding: 0px;
+ position: relative;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ overflow: hidden;
+ max-width: 100%;
+ border-radius: 4px;
+ font-size: 12px;
+}
+.asciinema-terminal {
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ overflow: hidden;
+ padding: 0;
+ margin: 0px;
+ display: block;
+ white-space: pre;
+ border: 0;
+ word-wrap: normal;
+ word-break: normal;
+ border-radius: 0;
+ border-style: solid;
+ cursor: text;
+ border-width: 0.75em;
+ font-family: Consolas, Menlo, 'Bitstream Vera Sans Mono', monospace, 'Powerline Symbols';
+}
+.asciinema-terminal .line {
+ letter-spacing: normal;
+ overflow: hidden;
+}
+.asciinema-terminal .line span {
+ padding: 0;
+ display: inline-block;
+ height: 100%;
+}
+.asciinema-terminal .line {
+ display: block;
+ width: 200%;
+}
+.asciinema-terminal .line .cursor-a {
+ display: inline-block;
+}
+.asciinema-terminal .line .cursor-b {
+ display: none;
+ border-radius: 0.05em;
+}
+.asciinema-terminal .line .blink {
+ visibility: hidden;
+}
+.asciinema-terminal.cursor .line .cursor-a {
+ display: none;
+}
+.asciinema-terminal.cursor .line .cursor-b {
+ display: inline-block;
+}
+.asciinema-terminal.blink .line .blink {
+ visibility: visible;
+}
+.asciinema-terminal .bright {
+ font-weight: bold;
+}
+.asciinema-terminal .underline {
+ text-decoration: underline;
+}
+.asciinema-terminal .italic {
+ font-style: italic;
+}
+.asciinema-terminal .strikethrough {
+ text-decoration: line-through;
+}
+.asciinema-player .loading > .asciinema-terminal {
+ background-color: transparent;
+}
+.asciinema-player .control-bar {
+ width: 100%;
+ height: 32px;
+ background: rgba(0, 0, 0, 0.8);
+ /* no gradient fallback */
+ background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5) 0%, #000000 25%, #000000 100%);
+ /* FF3.6-15 */
+ background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5) 0%, #000000 25%, #000000 100%);
+ /* Chrome10-25,Safari5.1-6 */
+ background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, #000000 25%, #000000 100%);
+ /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
+ color: #bbb;
+ box-sizing: content-box;
+ line-height: 1;
+ position: absolute;
+ bottom: -35px;
+ left: 0;
+ transition: bottom 0.15s linear;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ z-index: 30;
+}
+.asciinema-player .control-bar * {
+ box-sizing: inherit;
+ font-size: 0;
+}
+.asciinema-player .control-bar svg.icon path {
+ fill: #bbb;
+}
+.asciinema-player .control-bar .playback-button {
+ display: block;
+ float: left;
+ cursor: pointer;
+ height: 12px;
+ width: 12px;
+ padding: 10px;
+}
+.asciinema-player .control-bar .playback-button svg {
+ height: 12px;
+ width: 12px;
+}
+.asciinema-player .control-bar .timer {
+ display: block;
+ float: left;
+ width: 50px;
+ height: 100%;
+ text-align: center;
+ font-family: Helvetica, Arial, sans-serif;
+ font-size: 11px;
+ font-weight: bold;
+ line-height: 32px;
+ cursor: default;
+}
+.asciinema-player .control-bar .timer span {
+ display: inline-block;
+ font-size: inherit;
+}
+.asciinema-player .control-bar .timer .time-remaining {
+ display: none;
+}
+.asciinema-player .control-bar .timer:hover .time-elapsed {
+ display: none;
+}
+.asciinema-player .control-bar .timer:hover .time-remaining {
+ display: inline;
+}
+.asciinema-player .control-bar .progressbar {
+ display: block;
+ overflow: hidden;
+ height: 100%;
+ padding: 0 10px;
+}
+.asciinema-player .control-bar .progressbar .bar {
+ display: block;
+ cursor: default;
+ height: 100%;
+ padding-top: 15px;
+ font-size: 0;
+}
+.asciinema-player .control-bar .progressbar .bar .gutter {
+ display: block;
+ height: 3px;
+ background-color: #333;
+}
+.asciinema-player .control-bar .progressbar .bar .gutter span {
+ display: inline-block;
+ height: 100%;
+ background-color: #bbb;
+ border-radius: 3px;
+}
+.asciinema-player .control-bar.seekable .progressbar .bar {
+ cursor: pointer;
+}
+.asciinema-player .control-bar .fullscreen-button {
+ display: block;
+ float: right;
+ width: 14px;
+ height: 14px;
+ padding: 9px;
+ cursor: pointer;
+}
+.asciinema-player .control-bar .fullscreen-button svg {
+ width: 14px;
+ height: 14px;
+}
+.asciinema-player .control-bar .fullscreen-button svg:first-child {
+ display: inline;
+}
+.asciinema-player .control-bar .fullscreen-button svg:last-child {
+ display: none;
+}
+.asciinema-player-wrapper.hud .control-bar {
+ bottom: 0px;
+}
+.asciinema-player-wrapper:fullscreen .fullscreen-button svg:first-child {
+ display: none;
+}
+.asciinema-player-wrapper:fullscreen .fullscreen-button svg:last-child {
+ display: inline;
+}
+.asciinema-player-wrapper:-webkit-full-screen .fullscreen-button svg:first-child {
+ display: none;
+}
+.asciinema-player-wrapper:-webkit-full-screen .fullscreen-button svg:last-child {
+ display: inline;
+}
+.asciinema-player-wrapper:-moz-full-screen .fullscreen-button svg:first-child {
+ display: none;
+}
+.asciinema-player-wrapper:-moz-full-screen .fullscreen-button svg:last-child {
+ display: inline;
+}
+.asciinema-player-wrapper:-ms-fullscreen .fullscreen-button svg:first-child {
+ display: none;
+}
+.asciinema-player-wrapper:-ms-fullscreen .fullscreen-button svg:last-child {
+ display: inline;
+}
+.asciinema-player .loading {
+ z-index: 10;
+ background-repeat: no-repeat;
+ background-position: center;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.asciinema-player .start-prompt {
+ z-index: 10;
+ background-repeat: no-repeat;
+ background-position: center;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 20;
+ cursor: pointer;
+}
+.asciinema-player .start-prompt .play-button {
+ font-size: 0px;
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ text-align: center;
+ color: white;
+ height: 80px;
+ max-height: 66%;
+ margin: auto;
+}
+.asciinema-player .start-prompt .play-button div {
+ height: 100%;
+}
+.asciinema-player .start-prompt .play-button div span {
+ height: 100%;
+ display: block;
+}
+.asciinema-player .start-prompt .play-button div span svg {
+ height: 100%;
+}
+.asciinema-terminal .fg-16 {
+ color: #000000;
+}
+.asciinema-terminal .bg-16 {
+ background-color: #000000;
+}
+.asciinema-terminal .fg-17 {
+ color: #00005f;
+}
+.asciinema-terminal .bg-17 {
+ background-color: #00005f;
+}
+.asciinema-terminal .fg-18 {
+ color: #000087;
+}
+.asciinema-terminal .bg-18 {
+ background-color: #000087;
+}
+.asciinema-terminal .fg-19 {
+ color: #0000af;
+}
+.asciinema-terminal .bg-19 {
+ background-color: #0000af;
+}
+.asciinema-terminal .fg-20 {
+ color: #0000d7;
+}
+.asciinema-terminal .bg-20 {
+ background-color: #0000d7;
+}
+.asciinema-terminal .fg-21 {
+ color: #0000ff;
+}
+.asciinema-terminal .bg-21 {
+ background-color: #0000ff;
+}
+.asciinema-terminal .fg-22 {
+ color: #005f00;
+}
+.asciinema-terminal .bg-22 {
+ background-color: #005f00;
+}
+.asciinema-terminal .fg-23 {
+ color: #005f5f;
+}
+.asciinema-terminal .bg-23 {
+ background-color: #005f5f;
+}
+.asciinema-terminal .fg-24 {
+ color: #005f87;
+}
+.asciinema-terminal .bg-24 {
+ background-color: #005f87;
+}
+.asciinema-terminal .fg-25 {
+ color: #005faf;
+}
+.asciinema-terminal .bg-25 {
+ background-color: #005faf;
+}
+.asciinema-terminal .fg-26 {
+ color: #005fd7;
+}
+.asciinema-terminal .bg-26 {
+ background-color: #005fd7;
+}
+.asciinema-terminal .fg-27 {
+ color: #005fff;
+}
+.asciinema-terminal .bg-27 {
+ background-color: #005fff;
+}
+.asciinema-terminal .fg-28 {
+ color: #008700;
+}
+.asciinema-terminal .bg-28 {
+ background-color: #008700;
+}
+.asciinema-terminal .fg-29 {
+ color: #00875f;
+}
+.asciinema-terminal .bg-29 {
+ background-color: #00875f;
+}
+.asciinema-terminal .fg-30 {
+ color: #008787;
+}
+.asciinema-terminal .bg-30 {
+ background-color: #008787;
+}
+.asciinema-terminal .fg-31 {
+ color: #0087af;
+}
+.asciinema-terminal .bg-31 {
+ background-color: #0087af;
+}
+.asciinema-terminal .fg-32 {
+ color: #0087d7;
+}
+.asciinema-terminal .bg-32 {
+ background-color: #0087d7;
+}
+.asciinema-terminal .fg-33 {
+ color: #0087ff;
+}
+.asciinema-terminal .bg-33 {
+ background-color: #0087ff;
+}
+.asciinema-terminal .fg-34 {
+ color: #00af00;
+}
+.asciinema-terminal .bg-34 {
+ background-color: #00af00;
+}
+.asciinema-terminal .fg-35 {
+ color: #00af5f;
+}
+.asciinema-terminal .bg-35 {
+ background-color: #00af5f;
+}
+.asciinema-terminal .fg-36 {
+ color: #00af87;
+}
+.asciinema-terminal .bg-36 {
+ background-color: #00af87;
+}
+.asciinema-terminal .fg-37 {
+ color: #00afaf;
+}
+.asciinema-terminal .bg-37 {
+ background-color: #00afaf;
+}
+.asciinema-terminal .fg-38 {
+ color: #00afd7;
+}
+.asciinema-terminal .bg-38 {
+ background-color: #00afd7;
+}
+.asciinema-terminal .fg-39 {
+ color: #00afff;
+}
+.asciinema-terminal .bg-39 {
+ background-color: #00afff;
+}
+.asciinema-terminal .fg-40 {
+ color: #00d700;
+}
+.asciinema-terminal .bg-40 {
+ background-color: #00d700;
+}
+.asciinema-terminal .fg-41 {
+ color: #00d75f;
+}
+.asciinema-terminal .bg-41 {
+ background-color: #00d75f;
+}
+.asciinema-terminal .fg-42 {
+ color: #00d787;
+}
+.asciinema-terminal .bg-42 {
+ background-color: #00d787;
+}
+.asciinema-terminal .fg-43 {
+ color: #00d7af;
+}
+.asciinema-terminal .bg-43 {
+ background-color: #00d7af;
+}
+.asciinema-terminal .fg-44 {
+ color: #00d7d7;
+}
+.asciinema-terminal .bg-44 {
+ background-color: #00d7d7;
+}
+.asciinema-terminal .fg-45 {
+ color: #00d7ff;
+}
+.asciinema-terminal .bg-45 {
+ background-color: #00d7ff;
+}
+.asciinema-terminal .fg-46 {
+ color: #00ff00;
+}
+.asciinema-terminal .bg-46 {
+ background-color: #00ff00;
+}
+.asciinema-terminal .fg-47 {
+ color: #00ff5f;
+}
+.asciinema-terminal .bg-47 {
+ background-color: #00ff5f;
+}
+.asciinema-terminal .fg-48 {
+ color: #00ff87;
+}
+.asciinema-terminal .bg-48 {
+ background-color: #00ff87;
+}
+.asciinema-terminal .fg-49 {
+ color: #00ffaf;
+}
+.asciinema-terminal .bg-49 {
+ background-color: #00ffaf;
+}
+.asciinema-terminal .fg-50 {
+ color: #00ffd7;
+}
+.asciinema-terminal .bg-50 {
+ background-color: #00ffd7;
+}
+.asciinema-terminal .fg-51 {
+ color: #00ffff;
+}
+.asciinema-terminal .bg-51 {
+ background-color: #00ffff;
+}
+.asciinema-terminal .fg-52 {
+ color: #5f0000;
+}
+.asciinema-terminal .bg-52 {
+ background-color: #5f0000;
+}
+.asciinema-terminal .fg-53 {
+ color: #5f005f;
+}
+.asciinema-terminal .bg-53 {
+ background-color: #5f005f;
+}
+.asciinema-terminal .fg-54 {
+ color: #5f0087;
+}
+.asciinema-terminal .bg-54 {
+ background-color: #5f0087;
+}
+.asciinema-terminal .fg-55 {
+ color: #5f00af;
+}
+.asciinema-terminal .bg-55 {
+ background-color: #5f00af;
+}
+.asciinema-terminal .fg-56 {
+ color: #5f00d7;
+}
+.asciinema-terminal .bg-56 {
+ background-color: #5f00d7;
+}
+.asciinema-terminal .fg-57 {
+ color: #5f00ff;
+}
+.asciinema-terminal .bg-57 {
+ background-color: #5f00ff;
+}
+.asciinema-terminal .fg-58 {
+ color: #5f5f00;
+}
+.asciinema-terminal .bg-58 {
+ background-color: #5f5f00;
+}
+.asciinema-terminal .fg-59 {
+ color: #5f5f5f;
+}
+.asciinema-terminal .bg-59 {
+ background-color: #5f5f5f;
+}
+.asciinema-terminal .fg-60 {
+ color: #5f5f87;
+}
+.asciinema-terminal .bg-60 {
+ background-color: #5f5f87;
+}
+.asciinema-terminal .fg-61 {
+ color: #5f5faf;
+}
+.asciinema-terminal .bg-61 {
+ background-color: #5f5faf;
+}
+.asciinema-terminal .fg-62 {
+ color: #5f5fd7;
+}
+.asciinema-terminal .bg-62 {
+ background-color: #5f5fd7;
+}
+.asciinema-terminal .fg-63 {
+ color: #5f5fff;
+}
+.asciinema-terminal .bg-63 {
+ background-color: #5f5fff;
+}
+.asciinema-terminal .fg-64 {
+ color: #5f8700;
+}
+.asciinema-terminal .bg-64 {
+ background-color: #5f8700;
+}
+.asciinema-terminal .fg-65 {
+ color: #5f875f;
+}
+.asciinema-terminal .bg-65 {
+ background-color: #5f875f;
+}
+.asciinema-terminal .fg-66 {
+ color: #5f8787;
+}
+.asciinema-terminal .bg-66 {
+ background-color: #5f8787;
+}
+.asciinema-terminal .fg-67 {
+ color: #5f87af;
+}
+.asciinema-terminal .bg-67 {
+ background-color: #5f87af;
+}
+.asciinema-terminal .fg-68 {
+ color: #5f87d7;
+}
+.asciinema-terminal .bg-68 {
+ background-color: #5f87d7;
+}
+.asciinema-terminal .fg-69 {
+ color: #5f87ff;
+}
+.asciinema-terminal .bg-69 {
+ background-color: #5f87ff;
+}
+.asciinema-terminal .fg-70 {
+ color: #5faf00;
+}
+.asciinema-terminal .bg-70 {
+ background-color: #5faf00;
+}
+.asciinema-terminal .fg-71 {
+ color: #5faf5f;
+}
+.asciinema-terminal .bg-71 {
+ background-color: #5faf5f;
+}
+.asciinema-terminal .fg-72 {
+ color: #5faf87;
+}
+.asciinema-terminal .bg-72 {
+ background-color: #5faf87;
+}
+.asciinema-terminal .fg-73 {
+ color: #5fafaf;
+}
+.asciinema-terminal .bg-73 {
+ background-color: #5fafaf;
+}
+.asciinema-terminal .fg-74 {
+ color: #5fafd7;
+}
+.asciinema-terminal .bg-74 {
+ background-color: #5fafd7;
+}
+.asciinema-terminal .fg-75 {
+ color: #5fafff;
+}
+.asciinema-terminal .bg-75 {
+ background-color: #5fafff;
+}
+.asciinema-terminal .fg-76 {
+ color: #5fd700;
+}
+.asciinema-terminal .bg-76 {
+ background-color: #5fd700;
+}
+.asciinema-terminal .fg-77 {
+ color: #5fd75f;
+}
+.asciinema-terminal .bg-77 {
+ background-color: #5fd75f;
+}
+.asciinema-terminal .fg-78 {
+ color: #5fd787;
+}
+.asciinema-terminal .bg-78 {
+ background-color: #5fd787;
+}
+.asciinema-terminal .fg-79 {
+ color: #5fd7af;
+}
+.asciinema-terminal .bg-79 {
+ background-color: #5fd7af;
+}
+.asciinema-terminal .fg-80 {
+ color: #5fd7d7;
+}
+.asciinema-terminal .bg-80 {
+ background-color: #5fd7d7;
+}
+.asciinema-terminal .fg-81 {
+ color: #5fd7ff;
+}
+.asciinema-terminal .bg-81 {
+ background-color: #5fd7ff;
+}
+.asciinema-terminal .fg-82 {
+ color: #5fff00;
+}
+.asciinema-terminal .bg-82 {
+ background-color: #5fff00;
+}
+.asciinema-terminal .fg-83 {
+ color: #5fff5f;
+}
+.asciinema-terminal .bg-83 {
+ background-color: #5fff5f;
+}
+.asciinema-terminal .fg-84 {
+ color: #5fff87;
+}
+.asciinema-terminal .bg-84 {
+ background-color: #5fff87;
+}
+.asciinema-terminal .fg-85 {
+ color: #5fffaf;
+}
+.asciinema-terminal .bg-85 {
+ background-color: #5fffaf;
+}
+.asciinema-terminal .fg-86 {
+ color: #5fffd7;
+}
+.asciinema-terminal .bg-86 {
+ background-color: #5fffd7;
+}
+.asciinema-terminal .fg-87 {
+ color: #5fffff;
+}
+.asciinema-terminal .bg-87 {
+ background-color: #5fffff;
+}
+.asciinema-terminal .fg-88 {
+ color: #870000;
+}
+.asciinema-terminal .bg-88 {
+ background-color: #870000;
+}
+.asciinema-terminal .fg-89 {
+ color: #87005f;
+}
+.asciinema-terminal .bg-89 {
+ background-color: #87005f;
+}
+.asciinema-terminal .fg-90 {
+ color: #870087;
+}
+.asciinema-terminal .bg-90 {
+ background-color: #870087;
+}
+.asciinema-terminal .fg-91 {
+ color: #8700af;
+}
+.asciinema-terminal .bg-91 {
+ background-color: #8700af;
+}
+.asciinema-terminal .fg-92 {
+ color: #8700d7;
+}
+.asciinema-terminal .bg-92 {
+ background-color: #8700d7;
+}
+.asciinema-terminal .fg-93 {
+ color: #8700ff;
+}
+.asciinema-terminal .bg-93 {
+ background-color: #8700ff;
+}
+.asciinema-terminal .fg-94 {
+ color: #875f00;
+}
+.asciinema-terminal .bg-94 {
+ background-color: #875f00;
+}
+.asciinema-terminal .fg-95 {
+ color: #875f5f;
+}
+.asciinema-terminal .bg-95 {
+ background-color: #875f5f;
+}
+.asciinema-terminal .fg-96 {
+ color: #875f87;
+}
+.asciinema-terminal .bg-96 {
+ background-color: #875f87;
+}
+.asciinema-terminal .fg-97 {
+ color: #875faf;
+}
+.asciinema-terminal .bg-97 {
+ background-color: #875faf;
+}
+.asciinema-terminal .fg-98 {
+ color: #875fd7;
+}
+.asciinema-terminal .bg-98 {
+ background-color: #875fd7;
+}
+.asciinema-terminal .fg-99 {
+ color: #875fff;
+}
+.asciinema-terminal .bg-99 {
+ background-color: #875fff;
+}
+.asciinema-terminal .fg-100 {
+ color: #878700;
+}
+.asciinema-terminal .bg-100 {
+ background-color: #878700;
+}
+.asciinema-terminal .fg-101 {
+ color: #87875f;
+}
+.asciinema-terminal .bg-101 {
+ background-color: #87875f;
+}
+.asciinema-terminal .fg-102 {
+ color: #878787;
+}
+.asciinema-terminal .bg-102 {
+ background-color: #878787;
+}
+.asciinema-terminal .fg-103 {
+ color: #8787af;
+}
+.asciinema-terminal .bg-103 {
+ background-color: #8787af;
+}
+.asciinema-terminal .fg-104 {
+ color: #8787d7;
+}
+.asciinema-terminal .bg-104 {
+ background-color: #8787d7;
+}
+.asciinema-terminal .fg-105 {
+ color: #8787ff;
+}
+.asciinema-terminal .bg-105 {
+ background-color: #8787ff;
+}
+.asciinema-terminal .fg-106 {
+ color: #87af00;
+}
+.asciinema-terminal .bg-106 {
+ background-color: #87af00;
+}
+.asciinema-terminal .fg-107 {
+ color: #87af5f;
+}
+.asciinema-terminal .bg-107 {
+ background-color: #87af5f;
+}
+.asciinema-terminal .fg-108 {
+ color: #87af87;
+}
+.asciinema-terminal .bg-108 {
+ background-color: #87af87;
+}
+.asciinema-terminal .fg-109 {
+ color: #87afaf;
+}
+.asciinema-terminal .bg-109 {
+ background-color: #87afaf;
+}
+.asciinema-terminal .fg-110 {
+ color: #87afd7;
+}
+.asciinema-terminal .bg-110 {
+ background-color: #87afd7;
+}
+.asciinema-terminal .fg-111 {
+ color: #87afff;
+}
+.asciinema-terminal .bg-111 {
+ background-color: #87afff;
+}
+.asciinema-terminal .fg-112 {
+ color: #87d700;
+}
+.asciinema-terminal .bg-112 {
+ background-color: #87d700;
+}
+.asciinema-terminal .fg-113 {
+ color: #87d75f;
+}
+.asciinema-terminal .bg-113 {
+ background-color: #87d75f;
+}
+.asciinema-terminal .fg-114 {
+ color: #87d787;
+}
+.asciinema-terminal .bg-114 {
+ background-color: #87d787;
+}
+.asciinema-terminal .fg-115 {
+ color: #87d7af;
+}
+.asciinema-terminal .bg-115 {
+ background-color: #87d7af;
+}
+.asciinema-terminal .fg-116 {
+ color: #87d7d7;
+}
+.asciinema-terminal .bg-116 {
+ background-color: #87d7d7;
+}
+.asciinema-terminal .fg-117 {
+ color: #87d7ff;
+}
+.asciinema-terminal .bg-117 {
+ background-color: #87d7ff;
+}
+.asciinema-terminal .fg-118 {
+ color: #87ff00;
+}
+.asciinema-terminal .bg-118 {
+ background-color: #87ff00;
+}
+.asciinema-terminal .fg-119 {
+ color: #87ff5f;
+}
+.asciinema-terminal .bg-119 {
+ background-color: #87ff5f;
+}
+.asciinema-terminal .fg-120 {
+ color: #87ff87;
+}
+.asciinema-terminal .bg-120 {
+ background-color: #87ff87;
+}
+.asciinema-terminal .fg-121 {
+ color: #87ffaf;
+}
+.asciinema-terminal .bg-121 {
+ background-color: #87ffaf;
+}
+.asciinema-terminal .fg-122 {
+ color: #87ffd7;
+}
+.asciinema-terminal .bg-122 {
+ background-color: #87ffd7;
+}
+.asciinema-terminal .fg-123 {
+ color: #87ffff;
+}
+.asciinema-terminal .bg-123 {
+ background-color: #87ffff;
+}
+.asciinema-terminal .fg-124 {
+ color: #af0000;
+}
+.asciinema-terminal .bg-124 {
+ background-color: #af0000;
+}
+.asciinema-terminal .fg-125 {
+ color: #af005f;
+}
+.asciinema-terminal .bg-125 {
+ background-color: #af005f;
+}
+.asciinema-terminal .fg-126 {
+ color: #af0087;
+}
+.asciinema-terminal .bg-126 {
+ background-color: #af0087;
+}
+.asciinema-terminal .fg-127 {
+ color: #af00af;
+}
+.asciinema-terminal .bg-127 {
+ background-color: #af00af;
+}
+.asciinema-terminal .fg-128 {
+ color: #af00d7;
+}
+.asciinema-terminal .bg-128 {
+ background-color: #af00d7;
+}
+.asciinema-terminal .fg-129 {
+ color: #af00ff;
+}
+.asciinema-terminal .bg-129 {
+ background-color: #af00ff;
+}
+.asciinema-terminal .fg-130 {
+ color: #af5f00;
+}
+.asciinema-terminal .bg-130 {
+ background-color: #af5f00;
+}
+.asciinema-terminal .fg-131 {
+ color: #af5f5f;
+}
+.asciinema-terminal .bg-131 {
+ background-color: #af5f5f;
+}
+.asciinema-terminal .fg-132 {
+ color: #af5f87;
+}
+.asciinema-terminal .bg-132 {
+ background-color: #af5f87;
+}
+.asciinema-terminal .fg-133 {
+ color: #af5faf;
+}
+.asciinema-terminal .bg-133 {
+ background-color: #af5faf;
+}
+.asciinema-terminal .fg-134 {
+ color: #af5fd7;
+}
+.asciinema-terminal .bg-134 {
+ background-color: #af5fd7;
+}
+.asciinema-terminal .fg-135 {
+ color: #af5fff;
+}
+.asciinema-terminal .bg-135 {
+ background-color: #af5fff;
+}
+.asciinema-terminal .fg-136 {
+ color: #af8700;
+}
+.asciinema-terminal .bg-136 {
+ background-color: #af8700;
+}
+.asciinema-terminal .fg-137 {
+ color: #af875f;
+}
+.asciinema-terminal .bg-137 {
+ background-color: #af875f;
+}
+.asciinema-terminal .fg-138 {
+ color: #af8787;
+}
+.asciinema-terminal .bg-138 {
+ background-color: #af8787;
+}
+.asciinema-terminal .fg-139 {
+ color: #af87af;
+}
+.asciinema-terminal .bg-139 {
+ background-color: #af87af;
+}
+.asciinema-terminal .fg-140 {
+ color: #af87d7;
+}
+.asciinema-terminal .bg-140 {
+ background-color: #af87d7;
+}
+.asciinema-terminal .fg-141 {
+ color: #af87ff;
+}
+.asciinema-terminal .bg-141 {
+ background-color: #af87ff;
+}
+.asciinema-terminal .fg-142 {
+ color: #afaf00;
+}
+.asciinema-terminal .bg-142 {
+ background-color: #afaf00;
+}
+.asciinema-terminal .fg-143 {
+ color: #afaf5f;
+}
+.asciinema-terminal .bg-143 {
+ background-color: #afaf5f;
+}
+.asciinema-terminal .fg-144 {
+ color: #afaf87;
+}
+.asciinema-terminal .bg-144 {
+ background-color: #afaf87;
+}
+.asciinema-terminal .fg-145 {
+ color: #afafaf;
+}
+.asciinema-terminal .bg-145 {
+ background-color: #afafaf;
+}
+.asciinema-terminal .fg-146 {
+ color: #afafd7;
+}
+.asciinema-terminal .bg-146 {
+ background-color: #afafd7;
+}
+.asciinema-terminal .fg-147 {
+ color: #afafff;
+}
+.asciinema-terminal .bg-147 {
+ background-color: #afafff;
+}
+.asciinema-terminal .fg-148 {
+ color: #afd700;
+}
+.asciinema-terminal .bg-148 {
+ background-color: #afd700;
+}
+.asciinema-terminal .fg-149 {
+ color: #afd75f;
+}
+.asciinema-terminal .bg-149 {
+ background-color: #afd75f;
+}
+.asciinema-terminal .fg-150 {
+ color: #afd787;
+}
+.asciinema-terminal .bg-150 {
+ background-color: #afd787;
+}
+.asciinema-terminal .fg-151 {
+ color: #afd7af;
+}
+.asciinema-terminal .bg-151 {
+ background-color: #afd7af;
+}
+.asciinema-terminal .fg-152 {
+ color: #afd7d7;
+}
+.asciinema-terminal .bg-152 {
+ background-color: #afd7d7;
+}
+.asciinema-terminal .fg-153 {
+ color: #afd7ff;
+}
+.asciinema-terminal .bg-153 {
+ background-color: #afd7ff;
+}
+.asciinema-terminal .fg-154 {
+ color: #afff00;
+}
+.asciinema-terminal .bg-154 {
+ background-color: #afff00;
+}
+.asciinema-terminal .fg-155 {
+ color: #afff5f;
+}
+.asciinema-terminal .bg-155 {
+ background-color: #afff5f;
+}
+.asciinema-terminal .fg-156 {
+ color: #afff87;
+}
+.asciinema-terminal .bg-156 {
+ background-color: #afff87;
+}
+.asciinema-terminal .fg-157 {
+ color: #afffaf;
+}
+.asciinema-terminal .bg-157 {
+ background-color: #afffaf;
+}
+.asciinema-terminal .fg-158 {
+ color: #afffd7;
+}
+.asciinema-terminal .bg-158 {
+ background-color: #afffd7;
+}
+.asciinema-terminal .fg-159 {
+ color: #afffff;
+}
+.asciinema-terminal .bg-159 {
+ background-color: #afffff;
+}
+.asciinema-terminal .fg-160 {
+ color: #d70000;
+}
+.asciinema-terminal .bg-160 {
+ background-color: #d70000;
+}
+.asciinema-terminal .fg-161 {
+ color: #d7005f;
+}
+.asciinema-terminal .bg-161 {
+ background-color: #d7005f;
+}
+.asciinema-terminal .fg-162 {
+ color: #d70087;
+}
+.asciinema-terminal .bg-162 {
+ background-color: #d70087;
+}
+.asciinema-terminal .fg-163 {
+ color: #d700af;
+}
+.asciinema-terminal .bg-163 {
+ background-color: #d700af;
+}
+.asciinema-terminal .fg-164 {
+ color: #d700d7;
+}
+.asciinema-terminal .bg-164 {
+ background-color: #d700d7;
+}
+.asciinema-terminal .fg-165 {
+ color: #d700ff;
+}
+.asciinema-terminal .bg-165 {
+ background-color: #d700ff;
+}
+.asciinema-terminal .fg-166 {
+ color: #d75f00;
+}
+.asciinema-terminal .bg-166 {
+ background-color: #d75f00;
+}
+.asciinema-terminal .fg-167 {
+ color: #d75f5f;
+}
+.asciinema-terminal .bg-167 {
+ background-color: #d75f5f;
+}
+.asciinema-terminal .fg-168 {
+ color: #d75f87;
+}
+.asciinema-terminal .bg-168 {
+ background-color: #d75f87;
+}
+.asciinema-terminal .fg-169 {
+ color: #d75faf;
+}
+.asciinema-terminal .bg-169 {
+ background-color: #d75faf;
+}
+.asciinema-terminal .fg-170 {
+ color: #d75fd7;
+}
+.asciinema-terminal .bg-170 {
+ background-color: #d75fd7;
+}
+.asciinema-terminal .fg-171 {
+ color: #d75fff;
+}
+.asciinema-terminal .bg-171 {
+ background-color: #d75fff;
+}
+.asciinema-terminal .fg-172 {
+ color: #d78700;
+}
+.asciinema-terminal .bg-172 {
+ background-color: #d78700;
+}
+.asciinema-terminal .fg-173 {
+ color: #d7875f;
+}
+.asciinema-terminal .bg-173 {
+ background-color: #d7875f;
+}
+.asciinema-terminal .fg-174 {
+ color: #d78787;
+}
+.asciinema-terminal .bg-174 {
+ background-color: #d78787;
+}
+.asciinema-terminal .fg-175 {
+ color: #d787af;
+}
+.asciinema-terminal .bg-175 {
+ background-color: #d787af;
+}
+.asciinema-terminal .fg-176 {
+ color: #d787d7;
+}
+.asciinema-terminal .bg-176 {
+ background-color: #d787d7;
+}
+.asciinema-terminal .fg-177 {
+ color: #d787ff;
+}
+.asciinema-terminal .bg-177 {
+ background-color: #d787ff;
+}
+.asciinema-terminal .fg-178 {
+ color: #d7af00;
+}
+.asciinema-terminal .bg-178 {
+ background-color: #d7af00;
+}
+.asciinema-terminal .fg-179 {
+ color: #d7af5f;
+}
+.asciinema-terminal .bg-179 {
+ background-color: #d7af5f;
+}
+.asciinema-terminal .fg-180 {
+ color: #d7af87;
+}
+.asciinema-terminal .bg-180 {
+ background-color: #d7af87;
+}
+.asciinema-terminal .fg-181 {
+ color: #d7afaf;
+}
+.asciinema-terminal .bg-181 {
+ background-color: #d7afaf;
+}
+.asciinema-terminal .fg-182 {
+ color: #d7afd7;
+}
+.asciinema-terminal .bg-182 {
+ background-color: #d7afd7;
+}
+.asciinema-terminal .fg-183 {
+ color: #d7afff;
+}
+.asciinema-terminal .bg-183 {
+ background-color: #d7afff;
+}
+.asciinema-terminal .fg-184 {
+ color: #d7d700;
+}
+.asciinema-terminal .bg-184 {
+ background-color: #d7d700;
+}
+.asciinema-terminal .fg-185 {
+ color: #d7d75f;
+}
+.asciinema-terminal .bg-185 {
+ background-color: #d7d75f;
+}
+.asciinema-terminal .fg-186 {
+ color: #d7d787;
+}
+.asciinema-terminal .bg-186 {
+ background-color: #d7d787;
+}
+.asciinema-terminal .fg-187 {
+ color: #d7d7af;
+}
+.asciinema-terminal .bg-187 {
+ background-color: #d7d7af;
+}
+.asciinema-terminal .fg-188 {
+ color: #d7d7d7;
+}
+.asciinema-terminal .bg-188 {
+ background-color: #d7d7d7;
+}
+.asciinema-terminal .fg-189 {
+ color: #d7d7ff;
+}
+.asciinema-terminal .bg-189 {
+ background-color: #d7d7ff;
+}
+.asciinema-terminal .fg-190 {
+ color: #d7ff00;
+}
+.asciinema-terminal .bg-190 {
+ background-color: #d7ff00;
+}
+.asciinema-terminal .fg-191 {
+ color: #d7ff5f;
+}
+.asciinema-terminal .bg-191 {
+ background-color: #d7ff5f;
+}
+.asciinema-terminal .fg-192 {
+ color: #d7ff87;
+}
+.asciinema-terminal .bg-192 {
+ background-color: #d7ff87;
+}
+.asciinema-terminal .fg-193 {
+ color: #d7ffaf;
+}
+.asciinema-terminal .bg-193 {
+ background-color: #d7ffaf;
+}
+.asciinema-terminal .fg-194 {
+ color: #d7ffd7;
+}
+.asciinema-terminal .bg-194 {
+ background-color: #d7ffd7;
+}
+.asciinema-terminal .fg-195 {
+ color: #d7ffff;
+}
+.asciinema-terminal .bg-195 {
+ background-color: #d7ffff;
+}
+.asciinema-terminal .fg-196 {
+ color: #ff0000;
+}
+.asciinema-terminal .bg-196 {
+ background-color: #ff0000;
+}
+.asciinema-terminal .fg-197 {
+ color: #ff005f;
+}
+.asciinema-terminal .bg-197 {
+ background-color: #ff005f;
+}
+.asciinema-terminal .fg-198 {
+ color: #ff0087;
+}
+.asciinema-terminal .bg-198 {
+ background-color: #ff0087;
+}
+.asciinema-terminal .fg-199 {
+ color: #ff00af;
+}
+.asciinema-terminal .bg-199 {
+ background-color: #ff00af;
+}
+.asciinema-terminal .fg-200 {
+ color: #ff00d7;
+}
+.asciinema-terminal .bg-200 {
+ background-color: #ff00d7;
+}
+.asciinema-terminal .fg-201 {
+ color: #ff00ff;
+}
+.asciinema-terminal .bg-201 {
+ background-color: #ff00ff;
+}
+.asciinema-terminal .fg-202 {
+ color: #ff5f00;
+}
+.asciinema-terminal .bg-202 {
+ background-color: #ff5f00;
+}
+.asciinema-terminal .fg-203 {
+ color: #ff5f5f;
+}
+.asciinema-terminal .bg-203 {
+ background-color: #ff5f5f;
+}
+.asciinema-terminal .fg-204 {
+ color: #ff5f87;
+}
+.asciinema-terminal .bg-204 {
+ background-color: #ff5f87;
+}
+.asciinema-terminal .fg-205 {
+ color: #ff5faf;
+}
+.asciinema-terminal .bg-205 {
+ background-color: #ff5faf;
+}
+.asciinema-terminal .fg-206 {
+ color: #ff5fd7;
+}
+.asciinema-terminal .bg-206 {
+ background-color: #ff5fd7;
+}
+.asciinema-terminal .fg-207 {
+ color: #ff5fff;
+}
+.asciinema-terminal .bg-207 {
+ background-color: #ff5fff;
+}
+.asciinema-terminal .fg-208 {
+ color: #ff8700;
+}
+.asciinema-terminal .bg-208 {
+ background-color: #ff8700;
+}
+.asciinema-terminal .fg-209 {
+ color: #ff875f;
+}
+.asciinema-terminal .bg-209 {
+ background-color: #ff875f;
+}
+.asciinema-terminal .fg-210 {
+ color: #ff8787;
+}
+.asciinema-terminal .bg-210 {
+ background-color: #ff8787;
+}
+.asciinema-terminal .fg-211 {
+ color: #ff87af;
+}
+.asciinema-terminal .bg-211 {
+ background-color: #ff87af;
+}
+.asciinema-terminal .fg-212 {
+ color: #ff87d7;
+}
+.asciinema-terminal .bg-212 {
+ background-color: #ff87d7;
+}
+.asciinema-terminal .fg-213 {
+ color: #ff87ff;
+}
+.asciinema-terminal .bg-213 {
+ background-color: #ff87ff;
+}
+.asciinema-terminal .fg-214 {
+ color: #ffaf00;
+}
+.asciinema-terminal .bg-214 {
+ background-color: #ffaf00;
+}
+.asciinema-terminal .fg-215 {
+ color: #ffaf5f;
+}
+.asciinema-terminal .bg-215 {
+ background-color: #ffaf5f;
+}
+.asciinema-terminal .fg-216 {
+ color: #ffaf87;
+}
+.asciinema-terminal .bg-216 {
+ background-color: #ffaf87;
+}
+.asciinema-terminal .fg-217 {
+ color: #ffafaf;
+}
+.asciinema-terminal .bg-217 {
+ background-color: #ffafaf;
+}
+.asciinema-terminal .fg-218 {
+ color: #ffafd7;
+}
+.asciinema-terminal .bg-218 {
+ background-color: #ffafd7;
+}
+.asciinema-terminal .fg-219 {
+ color: #ffafff;
+}
+.asciinema-terminal .bg-219 {
+ background-color: #ffafff;
+}
+.asciinema-terminal .fg-220 {
+ color: #ffd700;
+}
+.asciinema-terminal .bg-220 {
+ background-color: #ffd700;
+}
+.asciinema-terminal .fg-221 {
+ color: #ffd75f;
+}
+.asciinema-terminal .bg-221 {
+ background-color: #ffd75f;
+}
+.asciinema-terminal .fg-222 {
+ color: #ffd787;
+}
+.asciinema-terminal .bg-222 {
+ background-color: #ffd787;
+}
+.asciinema-terminal .fg-223 {
+ color: #ffd7af;
+}
+.asciinema-terminal .bg-223 {
+ background-color: #ffd7af;
+}
+.asciinema-terminal .fg-224 {
+ color: #ffd7d7;
+}
+.asciinema-terminal .bg-224 {
+ background-color: #ffd7d7;
+}
+.asciinema-terminal .fg-225 {
+ color: #ffd7ff;
+}
+.asciinema-terminal .bg-225 {
+ background-color: #ffd7ff;
+}
+.asciinema-terminal .fg-226 {
+ color: #ffff00;
+}
+.asciinema-terminal .bg-226 {
+ background-color: #ffff00;
+}
+.asciinema-terminal .fg-227 {
+ color: #ffff5f;
+}
+.asciinema-terminal .bg-227 {
+ background-color: #ffff5f;
+}
+.asciinema-terminal .fg-228 {
+ color: #ffff87;
+}
+.asciinema-terminal .bg-228 {
+ background-color: #ffff87;
+}
+.asciinema-terminal .fg-229 {
+ color: #ffffaf;
+}
+.asciinema-terminal .bg-229 {
+ background-color: #ffffaf;
+}
+.asciinema-terminal .fg-230 {
+ color: #ffffd7;
+}
+.asciinema-terminal .bg-230 {
+ background-color: #ffffd7;
+}
+.asciinema-terminal .fg-231 {
+ color: #ffffff;
+}
+.asciinema-terminal .bg-231 {
+ background-color: #ffffff;
+}
+.asciinema-terminal .fg-232 {
+ color: #080808;
+}
+.asciinema-terminal .bg-232 {
+ background-color: #080808;
+}
+.asciinema-terminal .fg-233 {
+ color: #121212;
+}
+.asciinema-terminal .bg-233 {
+ background-color: #121212;
+}
+.asciinema-terminal .fg-234 {
+ color: #1c1c1c;
+}
+.asciinema-terminal .bg-234 {
+ background-color: #1c1c1c;
+}
+.asciinema-terminal .fg-235 {
+ color: #262626;
+}
+.asciinema-terminal .bg-235 {
+ background-color: #262626;
+}
+.asciinema-terminal .fg-236 {
+ color: #303030;
+}
+.asciinema-terminal .bg-236 {
+ background-color: #303030;
+}
+.asciinema-terminal .fg-237 {
+ color: #3a3a3a;
+}
+.asciinema-terminal .bg-237 {