# HG changeset patch # User bgruening # Date 1728198996 0 # Node ID fd0fc6fdc7c58b01ce0b53b39da3095b2fc37503 # Parent 49f3d3878413d27c9c535358aa8157e7bc4515d6 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 867d5459d255dd33e1a1a629d855596acbe1eb21 diff -r 49f3d3878413 -r fd0fc6fdc7c5 __pycache__/jbrowse2.cpython-312.pyc Binary file __pycache__/jbrowse2.cpython-312.pyc has changed diff -r 49f3d3878413 -r fd0fc6fdc7c5 foo --- a/foo Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -import xml.etree.ElementTree as ET -import string -removeMe = string.punctuation.replace('.', ' ').replace('/', '').replace('-', '') -nopunct = str.maketrans(dict.fromkeys(removeMe)) -xmlstr = 'text' -root = ET.fromstring(xmlstr) -print(root[0].attrib['key'],'=',root[0].attrib['key'].translate(nopunct)) diff -r 49f3d3878413 -r fd0fc6fdc7c5 macros.xml --- a/macros.xml Sat Oct 05 23:58:05 2024 +0000 +++ b/macros.xml Sun Oct 06 07:16:36 2024 +0000 @@ -25,7 +25,7 @@ \$GALAXY_JBROWSE_SHARED_DIR - 4 + 1 diff -r 49f3d3878413 -r fd0fc6fdc7c5 test-data/vcf/merlin.vcf.2 --- a/test-data/vcf/merlin.vcf.2 Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -##fileformat=VCFv4.0 -##fileDate=20090805 -##source=myImputationProgramV3.1 -##reference=1000GenomesPilot-NCBI36 -##phasing=partial -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##FILTER= -##FILTER= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003 -Merlin 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,. -Merlin 17330 . T A 3 q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3 -Merlin 1110696 rs6040355 A G,T 67 PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4 -Merlin 1230237 . T . 47 PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2 -Merlin 1234567 microsat1 GTCT G,GTACT 50 PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3 diff -r 49f3d3878413 -r fd0fc6fdc7c5 test-data/vcf/merlinold.vcf --- a/test-data/vcf/merlinold.vcf Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -##fileformat=VCFv4.0 -##fileDate=20090805 -##source=myImputationProgramV3.1 -##reference=1000GenomesPilot-NCBI36 -##phasing=partial -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##FILTER= -##FILTER= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003 -Merlin 61 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,. -Merlin 122 . T A 3 q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3 -Merlin 488 rs6040355 A G,T 67 PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4 -Merlin 549 . T . 47 PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2 -Merlin 1098 microsat1 G,GTACT 50 PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3 diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/bedscoreplugin.js --- a/x/bedscoreplugin.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -// colour bed regions according to score - must have columns and score as part of the adapter setup -;(function () { - class Plugin { - name = 'BedScorePlugin'; - version = '1.0'; - - install(pluginManager) { - pluginManager.jexl.addFunction('customColor', feature => { - if (Number(feature.get('score')) > 0) { - return 'red'; - } else { - return 'blue'; - } - }) - } - - configure(pluginManager) {} - } - - // the plugin will be included in both the main thread and web worker, so - // install plugin to either window or self (webworker global scope) - ;(typeof self !== 'undefined' ? self : window).JBrowsePluginBedScorePlugin = - { - default: Plugin, - } -})() diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/build_env_setup.sh --- a/x/build_env_setup.sh Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,396 +0,0 @@ -export CONDA_BUILD="1" -export PYTHONNOUSERSITE="1" -export CONDA_DEFAULT_ENV="/home/ross/miniconda3/envs/mulled-v1-ead19212d339c2197ed3232dcd8366627d23ccb1cf4fb8ae3186545effdca881" -export ARCH="64" -export PREFIX="/home/ross/miniconda3/envs/mulled-v1-ead19212d339c2197ed3232dcd8366627d23ccb1cf4fb8ae3186545effdca881" -export BUILD_PREFIX="/opt/conda/conda-bld/jbrowse2_1726856947541/_build_env" -export SYS_PREFIX="/opt/conda" -export SYS_PYTHON="/opt/conda/bin/python" -export SUBDIR="linux-64" -export build_platform="linux-64" -export SRC_DIR="/opt/conda/conda-bld/jbrowse2_1726856947541/work" -export ROOT="/opt/conda" -export CONDA_PY="312" -export PY3K="1" -export PY_VER="3.12" -export STDLIB_DIR="/home/ross/miniconda3/envs/mulled-v1-ead19212d339c2197ed3232dcd8366627d23ccb1cf4fb8ae3186545effdca881/lib/python3.12" -export SP_DIR="/home/ross/miniconda3/envs/mulled-v1-ead19212d339c2197ed3232dcd8366627d23ccb1cf4fb8ae3186545effdca881/lib/python3.12/site-packages" -export NPY_VER="1.26" -export CONDA_NPY="126" -export NPY_DISTUTILS_APPEND_FLAGS="1" -export PERL_VER="5.32" -export CONDA_PERL="5.32" -export LUA_VER="5" -export CONDA_LUA="5" -export R_VER="4.3.*" -export CONDA_R="4.3.*" -export PKG_NAME="jbrowse2" -export PKG_VERSION="2.15.4" -export PKG_BUILDNUM="0" -export PKG_BUILD_STRING="placeholder" -export PKG_HASH="1234567" -export RECIPE_DIR="/opt/recipe" -export CPU_COUNT="2" -export LANG="C.UTF-8" -export SHLIB_EXT=".so" -export PATH="/opt/conda/conda-bld/jbrowse2_1726856947541/_build_env/bin:/home/ross/miniconda3/envs/mulled-v1-ead19212d339c2197ed3232dcd8366627d23ccb1cf4fb8ae3186545effdca881/bin:/opt/conda/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/conda/bin" -export HOME="/home/conda" -export PKG_CONFIG_PATH="/home/ross/miniconda3/envs/mulled-v1-ead19212d339c2197ed3232dcd8366627d23ccb1cf4fb8ae3186545effdca881/lib/pkgconfig" -export CMAKE_GENERATOR="Unix Makefiles" -export LD_RUN_PATH="/home/ross/miniconda3/envs/mulled-v1-ead19212d339c2197ed3232dcd8366627d23ccb1cf4fb8ae3186545effdca881/lib" -export BUILD="x86_64-conda_cos6-linux-gnu" -export zip_keys="[['c_compiler_version', 'cxx_compiler_version', 'fortran_compiler_version'], ['arrow_cpp', 'libarrow', 'libarrow_all'], ['python', 'numpy', 'python_impl'], ['c_stdlib_version', 'cdt_name']]" -export pin_run_as_build="OrderedDict([('python', {'min_pin': 'x.x', 'max_pin': 'x.x'}), ('r-base', {'max_pin': 'x.x', 'min_pin': 'x.x'}), ('flann', {'max_pin': 'x.x.x'}), ('graphviz', {'max_pin': 'x'}), ('libsvm', {'max_pin': 'x'}), ('netcdf-cxx4', {'max_pin': 'x.x'}), ('occt', {'max_pin': 'x.x'}), ('poppler', {'max_pin': 'x.x'}), ('vlfeat', {'max_pin': 'x.x.x'})])" -export extend_keys="{'ignore_version', 'pin_run_as_build', 'extend_keys', 'ignore_build_only_deps'}" -export ignore_build_only_deps="{'python', 'numpy'}" -export libyarp="3.9.0" -export libintervalxt="3" -export tk="8.6" -export libmatio="1.5.26" -export qt="5.15" -export coin_or_cgl="0.60" -export coincbc="2.10" -export pixman="0" -export libhugetlbfs="2" -export libopencv="4.9.0" -export ccr="1.3" -export superlu_dist="8" -export libsoup="3" -export pyqtwebengine="5.15" -export hdf4="4.2.15" -export gst_plugins_base="1.22" -export eclib="20231211" -export google_cloud_cpp_common="0.25.0" -export dcap="2.47" -export slepc4py="3.21" -export scotch="7.0.4" -export snappy="1.2" -export suitesparse="5" -export libblitz="1.0.2" -export libabseil_static="20220623.0" -export libflatsurf="3" -export pulseaudio="17.0" -export libcblas="3.9 *netlib" -export libgoogle_cloud_dlp_devel="2.24" -export rocksdb="9.1" -export _libgcc_mutex="0.1 conda_forge" -export gnuradio_core="3.10.10" -export librdkafka="2.4" -export libdap4="3.20.6" -export aws_c_auth="0.7.22" -export channel_targets="bioconda main" -export libhwloc="2.10.0" -export pyqt="5.15" -export cpu_optimization_target="nocona" -export assimp="5.3.1" -export mpfr="4" -export pcre2="10.43" -export gsl="2.7" -export ptscotch="7.0.4" -export xrootd="5" -export arpack="3.8" -export cxx_compiler="gxx" -export sdl2_net="2" -export target_goos="linux" -export elfutils="0.191" -export libhwy="1.1" -export uhd="4.6.0" -export petsc="3.21" -export pulseaudio_daemon="17.0" -export libeantic="2" -export libopentelemetry_cpp="1.15" -export bamtools="2.5.2" -export openblas="0.3.*" -export icu="73" -export libiio="0" -export x264="1!164.*" -export mpich="4" -export pybind11_abi="4" -export nettle="3.9" -export libwebp_base="1" -export abseil_cpp="20220623.0" -export thrift_cpp="0.18.1" -export openmpi="4" -export coin_or_cbc="2.10" -export openslide="4" -export libscotch="7.0.4" -export sdl2_mixer="2" -export fontconfig="2" -export libgoogle_cloud_oauth2_devel="2.24" -export grpc_cpp="1.52" -export libmatio_cpp="0.2.5" -export libboost_python_devel="1.82" -export openh264="2.4.1" -export pcre="8" -export vlfeat="0.9.21" -export mumps_seq="5.7.1" -export gct="6.2.1705709074" -export openssl="3" -export dbus="1" -export googleapis_cpp="0.10" -export xz="5" -export coin_or_clp="1.17" -export libcurl="8" -export aws_checksums="0.1.18" -export libtensorflow="2.15" -export libidn2="2" -export aws_c_common="0.9.19" -export google_cloud_cpp="2.24" -export libsqlite="3" -export libthrift="0.20.0" -export ucx="1.16.0" -export re2="2023.09.01" -export c_compiler="gcc" -export zlib="1.2" -export gnutls="3.7" -export aws_sdk_cpp="1.11.267" -export mpg123="1.32" -export libevent="2.1.12" -export go_compiler="go-nocgo" -export libarchive="3.7" -export msgpack_c="6" -export ntl="11.4.3" -export davix="0.8" -export libev="4.33" -export ruby="2.6" -export glog="0.6" -export libopenvino_dev="2024.1.0" -export exiv2="0.28" -export libpng="1.6" -export ncurses="6" -export lz4_c="1.9.3" -export libzip="1" -export sqlite="3" -export postgresql_plpython="16" -export libprotobuf="4.25.3" -export gdal="3.8" -export libcint="5.5" -export geos="3.12.1" -export qt6_main="6.7" -export libgdal="3.8" -export occt="7.7.2" -export lcms2="2" -export librsvg="2" -export libgoogle_cloud_bigquery_devel="2.24" -export libffi="3.4" -export tinyxml2="10" -export zstd="1.5" -export fmt="10" -export libframel="8.41" -export libgoogle_cloud_dialogflow_cx_devel="2.24" -export jsoncpp="1.9.5" -export libgoogle_cloud_dialogflow_es_devel="2.24" -export target_platform="linux-64" -export gflags="2.2" -export aws_c_sdkutils="0.1.16" -export aws_c_http="0.8.1" -export netcdf_cxx4="4.3" -export libjpeg_turbo="3" -export sox="14.4.2" -export VERBOSE_CM="VERBOSE=1" -export jasper="4" -export coin_or_osi="0.108" -export spdlog="1.12" -export libgoogle_cloud_automl_devel="2.24" -export libtorch="2.1" -export libgrpc="1.62" -export libgit2="1.8" -export readline="8" -export jpeg="9" -export libmicrohttpd="1.0" -export pari="2.15.* *_pthread" -export libv8="8.9.83" -export cuda_compiler_version="None" -export openexr="3.2" -export nspr="4" -export libssh2="1" -export urdfdom="4.0" -export tiledb="2.23" -export aws_c_compression="0.2.18" -export coin_or_utils="2.11" -export zeromq="4.3.5" -export libgoogle_cloud_policytroubleshooter_devel="2.24" -export metis="5.1.0" -export libraw="0.21" -export libpq="16" -export mimalloc="2.1.7" -export svt_av1="2.1.0" -export libpcap="1.10" -export curl="8" -export lzo="2" -export idyntree="12" -export x265="3.5" -export c_blosc2="2.14" -export libiconv="1" -export slepc="3.21" -export libflint="2.9" -export libgoogle_cloud_compute_devel="2.24" -export libvips="8" -export nlopt="2.7" -export gstreamer="1.22" -export libtensorflow_cc="2.15" -export cutensor="2" -export aws_c_s3="0.5.9" -export c_stdlib="sysroot" -export libode="0.16.2" -export zlib_ng="2.0" -export geotiff="1.7.1" -export libsecret="0.18" -export libabseil="20240116" -export hdf5="1.14.3" -export libmed="4.1" -export netcdf_fortran="4.6" -export libptscotch="7.0.4" -export libcrc32c="1.1" -export glew="2.1" -export kealib="1.5" -export sdl2_image="2" -export channel_sources="conda-forge,bioconda" -export harfbuzz="8" -export nodejs="18" -export libduckdb_devel="0.9.2" -export pytorch="2.1" -export pulseaudio_client="17.0" -export aws_crt_cpp="0.26.9" -export pango="1.50" -export alsa_lib="1.2" -export bzip2="1" -export tbb="2021" -export root_base="6.28.10" -export libnetcdf="4.9.2" -export cran_mirror="https://cran.r-project.org" -export wxwidgets="3.2" -export orc="2.0.1" -export singular="4.3.2.p8" -export libspatialindex="1.9.3" -export p11_kit="0.24" -export cuda_compiler="None" -export log4cxx="1.2.0" -export cuda_compiler_version_min="11.8" -export msgpack_cxx="6" -export libxml2="2" -export fftw="3" -export libuuid="2" -export wcslib="8" -export VERBOSE_AT="V=1" -export cudnn="8" -export mkl="2023" -export ldas_tools_framecpp="2.9" -export libgoogle_cloud_aiplatform_devel="2.24" -export pyqtchart="5.15" -export qtkeychain="0.14" -export blas_impl="blis" -export nss="3" -export gdk_pixbuf="2" -export gf2x="1.3" -export tensorflow="2.15" -export liblapacke="3.9 *netlib" -export libgoogle_cloud_spanner_devel="2.24" -export pcl="1.14.0" -export krb5="1.21" -export libsvm="332" -export libexactreal="4" -export cgo_compiler="go-cgo" -export petsc4py="3.21" -export poppler="24.04" -export aws_c_event_stream="0.4.2" -export vtk="9.2.6" -export libkml="1.3" -export libssh="0.10" -export flann="1.9.2" -export gfal2="2.22" -export cfitsio="4.3.0" -export s2n="1.4.15" -export rdma_core="51" -export json_c="0.17" -export zfp="1.0" -export libgoogle_cloud_devel="2.24" -export giflib="5.2" -export soapysdr="0.8" -export libblas="3.9 *netlib" -export openjpeg="2" -export mkl_devel="2023" -export imath="3.1.11" -export glib="2" -export libboost_devel="1.82" -export target_gobin="${PREFIX}/bin/" -export libsentencepiece="0.2.0" -export pugixml="1.14" -export antic="0.2" -export libgoogle_cloud_bigtable_devel="2.24" -export sdl2="2" -export ipopt="3.14.16" -export mumps_mpi="5.7.1" -export qt_main="5.15" -export c_ares="1" -export volk="3.1" -export libgoogle_cloud_pubsub_devel="2.24" -export aws_c_cal="0.6.14" -export ffmpeg="6" -export libunwind="1.6" -export gmp="6" -export sdl2_ttf="2" -export capnproto="1.0.2" -export isl="0.26" -export libgoogle_cloud_iam_devel="2.24" -export libaec="1" -export tbb_devel="2021" -export xerces_c="3.2" -export liblapack="3.9 *netlib" -export cairo="1" -export libtiff="4.6" -export aws_c_io="0.14.8" -export dav1d="1.2.1" -export lerc="4" -export target_goarch="amd64" -export proj="9.3.1" -export arb="2.23" -export aws_c_mqtt="0.10.4" -export libgoogle_cloud_speech_devel="2.24" -export expat="2" -export bullet_cpp="3.25" -export srm_ifce="1.24.6" -export libgoogle_cloud_storage_devel="2.24" -export libavif="1" -export postgresql="16" -export glpk="5.0" -export graphviz="9" -export lmdb="0.9.29" -export flatbuffers="24.3.25" -export libxsmm="1" -export freetype="2" -export console_bridge="1.0" -export libgoogle_cloud="2.24" -export aom="3.8" -export rust_compiler="rust" -export libgoogle_cloud_all_devel="2.24" -export libdeflate="1.20" -export nccl="2" -export libgoogle_cloud_discoveryengine_devel="2.24" -export attr="2.5" -export gsoap="2.8.123" -export starlink_ast="9.2.7" -export fortran_compiler="gfortran" -export r_base="4.3.*" -export libwebp="1" -export libsndfile="1.2" -export poco="1.13.3" -export libosqp="0.6.3" -export arrow_cpp="15" -export libarrow="15" -export libarrow_all="15" -export python_impl="cpython" -export c_stdlib_version="2.17" -export cdt_name="cos6" -export c_compiler_version="12" -export cxx_compiler_version="12" -export fortran_compiler_version="12" -export CONDA_BUILD_STATE="BUILD" -export PIP_NO_BUILD_ISOLATION="False" -export PIP_NO_DEPENDENCIES="True" -export PIP_IGNORE_INSTALLED="True" -export PIP_CACHE_DIR="/opt/conda/conda-bld/jbrowse2_1726856947541/pip_cache" -export PIP_NO_INDEX="True" -eval "$('/opt/conda/bin/python' -m conda shell.bash hook)" -conda activate "/home/ross/miniconda3/envs/mulled-v1-ead19212d339c2197ed3232dcd8366627d23ccb1cf4fb8ae3186545effdca881" -conda activate --stack "/opt/conda/conda-bld/jbrowse2_1726856947541/_build_env" diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/conda_build.sh --- a/x/conda_build.sh Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -if [ -z ${CONDA_BUILD+x} ]; then - source /opt/conda/conda-bld/jbrowse2_1726856947541/work/build_env_setup.sh -fi -#!/bin/bash - -# Place the jbrowse2 www content in the conda package -mkdir -p $PREFIX/opt/jbrowse2/ -cp -r * $PREFIX/opt/jbrowse2/ - -# Set an env var for people willing to find the jbrowse2 www content -mkdir -p $PREFIX/etc/conda/activate.d/ -echo "export JBROWSE2_SOURCE_DIR=$PREFIX/opt/jbrowse2" > $PREFIX/etc/conda/activate.d/jbrowse2-sourcedir.sh -chmod a+x $PREFIX/etc/conda/activate.d/jbrowse2-sourcedir.sh - -mkdir -p $PREFIX/etc/conda/deactivate.d/ -echo "unset JBROWSE2_SOURCE_DIR" > $PREFIX/etc/conda/deactivate.d/jbrowse2-sourcedir.sh -chmod a+x $PREFIX/etc/conda/deactivate.d/jbrowse2-sourcedir.sh - -# Install the CLI -npm install --prefix=${PREFIX} -g @jbrowse/cli@${PKG_VERSION} diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/config.json --- a/x/config.json Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -{ - "configuration": { - "disableAnalytics": false, - "theme": { - "palette": { - "primary": { - "main": "#0d233f" - }, - "secondary": { - "main": "#721e63" - }, - "tertiary": { - "main": "#135560" - }, - "quaternary": { - "main": "#ffb11d" - } - }, - "typography": { - "fontSize": 10 - } - } - }, - "defaultSession": { - "name": "New JBrowse2 session", - "views": [ - { - "type": "LinearGenomeView", - "offsetPx": 0, - "bpPerPx": 50, - "minimized": false, - "tracks": [ - { - "type": "QuantitativeTrack", - "configuration": "me.r.l.i-n.bw_0", - "displays": [ - { - "type": "LinearWiggleDisplay", - "displayId": "me.r.l.i-n.bw_0-LinearWiggleDisplay", - "color": "#135560", - "autoscale": "globalsd", - "resolution": 1, - "summaryScoreMode": "whiskers", - "filled": false, - "scaleType": "linear", - "displayCrossHatches": false, - "configuration": "me.r.l.i-n.bw_0-LinearWiggleDisplay" - } - ] - } - ], - "displayedRegions": [ - { - "reversed": false, - "assemblyName": "merlin.fa", - "refName": "Merlin", - "start": 0, - "end": 172788 - } - ] - } - ] - }, - "tracks": [ - { - "type": "QuantitativeTrack", - "trackId": "me.r.l.i-n.bw_0", - "name": "me.r.l.i-n.bw_0", - "category": [ - "Default" - ], - "assemblyNames": [ - "merlin.fa" - ], - "adapter": { - "type": "BigWigAdapter", - "bigWigLocation": { - "uri": "me.r.l.i-n.bw_0" - } - }, - "displays": [ - { - "type": "LinearWiggleDisplay", - "displayId": "me.r.l.i-n.bw_0-LinearWiggleDisplay" - } - ], - "style": { - "type": "LinearWiggleDisplay", - "displayId": "me.r.l.i-n.bw_0-LinearWiggleDisplay", - "color": "#135560", - "autoscale": "globalsd", - "resolution": 1, - "summaryScoreMode": "whiskers", - "filled": false, - "scaleType": "linear", - "displayCrossHatches": false, - "configuration": "me.r.l.i-n.bw_0-LinearWiggleDisplay" - } - } - ], - "assemblies": [ - { - "name": "merlin.fa", - "sequence": { - "type": "ReferenceSequenceTrack", - "trackId": "merlin.fa", - "adapter": { - "type": "BgzipFastaAdapter", - "fastaLocation": { - "uri": "merlin.fa.fa.gz" - }, - "faiLocation": { - "uri": "merlin.fa.fa.gz.fai" - }, - "gziLocation": { - "uri": "merlin.fa.fa.gz.gzi" - } - } - }, - "displays": [ - { - "type": "LinearReferenceSequenceDisplay", - "displayId": "merlin.fa-LinearReferenceSequenceDisplay" - }, - { - "type": "LinearGCContentDisplay", - "displayId": "merlin.fa-LinearGCContentDisplay" - } - ] - } - ] -} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/galaxy.xml --- a/x/galaxy.xml Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ - - - - - - true - 50 - false - #0d233f - #721e63 - #135560 - #ffb11d - 10 - New JBrowse2 session - - http://localhost:8080 - - - - - - - - - - id="8209a7ce5c994d06" - /> - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/index.html --- a/x/index.html Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -JBrowse
\ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/jb2_webserver.py --- a/x/jb2_webserver.py Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,187 +0,0 @@ -#!/usr/bin/env python3 -# spec: simplest python web server with range support and multithreading that takes root path, -# port and bind address as command line arguments; by default uses the current dir as webroot, -# port 8000 and bind address of 0.0.0.0 -# borrowed from https://github.com/danvk/RangeHTTPServer -# and reborrowed from https://gist.github.com/glowinthedark/b99900abe935e4ab4857314d647a9068 -# -# The Apache 2.0 license copy in this repository is distributed with this code in accordance with that licence. -# https://www.apache.org/licenses/LICENSE-2.0.txt -# This part is not MIT licenced like the other components. - -# APPENDIX: How to apply the Apache License to your work. - -# To apply the Apache License to your work, attach the following -# boilerplate notice, with the fields enclosed by brackets "[]" -# replaced with your own identifying information. (Don't include -# the brackets!) The text should be enclosed in the appropriate -# comment syntax for the file format. We also recommend that a -# file or class name and description of purpose be included on the -# same "printed page" as the copyright notice for easier -# identification within third-party archives. - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at - -# http://www.apache.org/licenses/LICENSE-2.0 - -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import argparse -import functools -import os -import re -import socketserver -import webbrowser -from http.server import SimpleHTTPRequestHandler - - -DEFAULT_PORT = 8081 - - -def copy_byte_range(infile, outfile, start=None, stop=None, bufsize=16 * 1024): - """Like shutil.copyfileobj, but only copy a range of the streams. - - Both start and stop are inclusive. - """ - if start is not None: - infile.seek(start) - while 1: - to_read = min(bufsize, stop + 1 - infile.tell() if stop else bufsize) - buf = infile.read(to_read) - if not buf: - break - outfile.write(buf) - - -BYTE_RANGE_RE = re.compile(r"bytes=(\d+)-(\d+)?$") - - -def parse_byte_range(byte_range): - """Returns the two numbers in 'bytes=123-456' or throws ValueError. - - The last number or both numbers may be None. - """ - if byte_range.strip() == "": - return None, None - - m = BYTE_RANGE_RE.match(byte_range) - if not m: - raise ValueError("Invalid byte range %s" % byte_range) - - first, last = [x and int(x) for x in m.groups()] - if last and last < first: - raise ValueError("Invalid byte range %s" % byte_range) - return first, last - - -class RangeRequestHandler(SimpleHTTPRequestHandler): - """Adds support for HTTP 'Range' requests to SimpleHTTPRequestHandler - - The approach is to: - - Override send_head to look for 'Range' and respond appropriately. - - Override copyfile to only transmit a range when requested. - """ - - def handle(self): - try: - SimpleHTTPRequestHandler.handle(self) - except Exception: - # ignored, thrown whenever the client aborts streaming (broken pipe) - pass - - def send_head(self): - if "Range" not in self.headers: - self.range = None - return SimpleHTTPRequestHandler.send_head(self) - try: - self.range = parse_byte_range(self.headers["Range"]) - except ValueError: - self.send_error(400, "Invalid byte range") - return None - first, last = self.range - - # Mirroring SimpleHTTPServer.py here - path = self.translate_path(self.path) - f = None - ctype = self.guess_type(path) - try: - f = open(path, "rb") - except IOError: - self.send_error(404, "File not found") - return None - - fs = os.fstat(f.fileno()) - file_len = fs[6] - if first >= file_len: - self.send_error(416, "Requested Range Not Satisfiable") - return None - - self.send_response(206) - self.send_header("Content-type", ctype) - - if last is None or last >= file_len: - last = file_len - 1 - response_length = last - first + 1 - - self.send_header("Content-Range", "bytes %s-%s/%s" % (first, last, file_len)) - self.send_header("Content-Length", str(response_length)) - self.send_header("Last-Modified", self.date_time_string(fs.st_mtime)) - self.end_headers() - return f - - def end_headers(self): - self.send_header("Accept-Ranges", "bytes") - return SimpleHTTPRequestHandler.end_headers(self) - - def copyfile(self, source, outputfile): - if not self.range: - return SimpleHTTPRequestHandler.copyfile(self, source, outputfile) - - # SimpleHTTPRequestHandler uses shutil.copyfileobj, which doesn't let - # you stop the copying before the end of the file. - start, stop = self.range # set in send_head() - copy_byte_range(source, outputfile, start, stop) - - -class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer): - allow_reuse_address = True - - -if __name__ == "__main__": - parser = argparse.ArgumentParser( - description="Tiny Python Web Server supporting range requests, for local viewing of unzipped Galaxy JBrowse2 configurations" - ) - parser.add_argument( - "--root", - default=os.getcwd(), - help="Root path to serve files from (default: current working directory)", - ) - parser.add_argument( - "--port", - type=int, - default=DEFAULT_PORT, - help=f"Port to listen on (default: {DEFAULT_PORT})", - ) - parser.add_argument( - "--bind", - default="127.0.0.1", - help="IP address to bind to (default: 127.0.0.1 - use 0.0.0.0 to allow access on your network)", - ) - args = parser.parse_args() - - handler = functools.partial(RangeRequestHandler, directory=args.root) - - webbrowser.open(f"http://{args.bind}:{args.port}") - - with ThreadedTCPServer((args.bind, args.port), handler) as httpd: - print( - f"Serving HTTP on {args.bind} port {args.port} (http://{args.bind}:{args.port}/)" - ) - httpd.serve_forever() diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/manifest.json --- a/x/manifest.json Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -{ - "short_name": "JBrowse", - "name": "JBrowse", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 48x48 32x32 24x24 16x16", - "type": "image/x-icon" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#396494", - "background_color": "#fafafa" -} diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/me.r.l.i-n.bw_0 Binary file x/me.r.l.i-n.bw_0 has changed diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/merlin.fa.fa.gz Binary file x/merlin.fa.fa.gz has changed diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/merlin.fa.fa.gz.fai --- a/x/merlin.fa.fa.gz.fai Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Merlin 172788 8 60 61 diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/merlin.fa.fa.gz.gzi Binary file x/merlin.fa.fa.gz.gzi has changed diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/metadata_conda_debug.yaml --- a/x/metadata_conda_debug.yaml Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -package: - name: jbrowse2 - version: 2.15.4 -source: - sha256: fa0a6163dab65d1705c1968cc41adc0f6b035a8fbc572b7ddff12721b5b58642 - url: https://github.com/GMOD/jbrowse-components/releases/download/v2.15.4/jbrowse-web-v2.15.4.zip -build: - noarch: generic - number: '0' - run_exports: - - jbrowse2 -requirements: - host: - - nodejs - run: - - nodejs - - bcftools - - gff3sort - - htslib - - samtools -test: - commands: - - jbrowse help | grep "command line tool for working with JBrowse" -about: - home: https://jbrowse.org/ - license: Apache-2.0 - license_family: Apache - summary: The JBrowse 2 Genome Browser -extra: - final: false - identifiers: - - biotools:jbrowse - - doi:10.1101/gr.094607.109 diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/css/3120.6d3f3959.chunk.css --- a/x/static/css/3120.6d3f3959.chunk.css Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* roboto-cyrillic-ext-400-normal */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-display: swap; - font-weight: 400; - src: url(../../static/media/roboto-cyrillic-ext-400-normal.5cec61a21cc20180fbe1.woff2) format('woff2'), url(../../static/media/roboto-cyrillic-ext-400-normal.135d076fa32aa0b4d105.woff) format('woff'); - unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; -} - -/* roboto-cyrillic-400-normal */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-display: swap; - font-weight: 400; - src: url(../../static/media/roboto-cyrillic-400-normal.a9e19870cf6c4b973427.woff2) format('woff2'), url(../../static/media/roboto-cyrillic-400-normal.5d2930082227d172f62c.woff) format('woff'); - unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; -} - -/* roboto-greek-ext-400-normal */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-display: swap; - font-weight: 400; - src: url(../../static/media/roboto-greek-ext-400-normal.1df4abad55796d11a0c8.woff2) format('woff2'), url(../../static/media/roboto-greek-ext-400-normal.16eb83b4a3b1ea994243.woff) format('woff'); - unicode-range: U+1F00-1FFF; -} - -/* roboto-greek-400-normal */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-display: swap; - font-weight: 400; - src: url(../../static/media/roboto-greek-400-normal.2c32b1315be61477013a.woff2) format('woff2'), url(../../static/media/roboto-greek-400-normal.160a791a8e4f46bca3cc.woff) format('woff'); - unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; -} - -/* roboto-vietnamese-400-normal */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-display: swap; - font-weight: 400; - src: url(../../static/media/roboto-vietnamese-400-normal.d3f8e26d6c27de8102b6.woff2) format('woff2'), url(../../static/media/roboto-vietnamese-400-normal.0dc97c66f9b542d6fa17.woff) format('woff'); - unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; -} - -/* roboto-latin-ext-400-normal */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-display: swap; - font-weight: 400; - src: url(../../static/media/roboto-latin-ext-400-normal.2eeae187764baf05867d.woff2) format('woff2'), url(../../static/media/roboto-latin-ext-400-normal.27da5b36b6d3a16f53f4.woff) format('woff'); - unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; -} - -/* roboto-latin-400-normal */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-display: swap; - font-weight: 400; - src: url(../../static/media/roboto-latin-400-normal.297d48e1b5a10c0831a9.woff2) format('woff2'), url(../../static/media/roboto-latin-400-normal.047a7839f69b209db815.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; -} - -/*# sourceMappingURL=3120.6d3f3959.chunk.css.map*/ \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/css/3120.6d3f3959.chunk.css.map --- a/x/static/css/3120.6d3f3959.chunk.css.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/css/3120.6d3f3959.chunk.css","mappings":"AAAA,mCAAmC;AACnC;EACE,qBAAqB;EACrB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,oHAAuI;EACvI,iFAAiF;AACnF;;AAEA,+BAA+B;AAC/B;EACE,qBAAqB;EACrB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,oHAA+H;EAC/H,gEAAgE;AAClE;;AAEA,gCAAgC;AAChC;EACE,qBAAqB;EACrB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,oHAAiI;EACjI,0BAA0B;AAC5B;;AAEA,4BAA4B;AAC5B;EACE,qBAAqB;EACrB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,oHAAyH;EACzH,iFAAiF;AACnF;;AAEA,iCAAiC;AACjC;EACE,qBAAqB;EACrB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,oHAAmI;EACnI,2JAA2J;AAC7J;;AAEA,gCAAgC;AAChC;EACE,qBAAqB;EACrB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,sHAAiI;EACjI,qIAAqI;AACvI;;AAEA,4BAA4B;AAC5B;EACE,qBAAqB;EACrB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,sHAAyH;EACzH,8KAA8K;AAChL,C","sources":["../../../node_modules/@fontsource/roboto/index.css"],"sourcesContent":["/* roboto-cyrillic-ext-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/roboto-cyrillic-ext-400-normal.woff2) format('woff2'), url(./files/roboto-cyrillic-ext-400-normal.woff) format('woff');\n unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;\n}\n\n/* roboto-cyrillic-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/roboto-cyrillic-400-normal.woff2) format('woff2'), url(./files/roboto-cyrillic-400-normal.woff) format('woff');\n unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;\n}\n\n/* roboto-greek-ext-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/roboto-greek-ext-400-normal.woff2) format('woff2'), url(./files/roboto-greek-ext-400-normal.woff) format('woff');\n unicode-range: U+1F00-1FFF;\n}\n\n/* roboto-greek-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/roboto-greek-400-normal.woff2) format('woff2'), url(./files/roboto-greek-400-normal.woff) format('woff');\n unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;\n}\n\n/* roboto-vietnamese-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/roboto-vietnamese-400-normal.woff2) format('woff2'), url(./files/roboto-vietnamese-400-normal.woff) format('woff');\n unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;\n}\n\n/* roboto-latin-ext-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/roboto-latin-ext-400-normal.woff2) format('woff2'), url(./files/roboto-latin-ext-400-normal.woff) format('woff');\n unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;\n}\n\n/* roboto-latin-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/roboto-latin-400-normal.woff2) format('woff2'), url(./files/roboto-latin-400-normal.woff) format('woff');\n unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1012.a7d14de3.chunk.js --- a/x/static/js/1012.a7d14de3.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1012],{21012:(e,s,t)=>{t.r(s),t.d(s,{default:()=>l.A,getToggleButtonGroupUtilityClass:()=>o.y,toggleButtonGroupClasses:()=>o.A});var l=t(43787),o=t(67647)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1029.8c806427.chunk.js --- a/x/static/js/1029.8c806427.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1029],{41029:(s,a,e)=>{e.r(a),e.d(a,{default:()=>l.A,dialogClasses:()=>b.A,getDialogUtilityClass:()=>b.f});var l=e(40985),b=e(23113)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1051.8e1641e2.chunk.js --- a/x/static/js/1051.8e1641e2.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1051],{21051:(e,t,l)=>{l.r(t),l.d(t,{default:()=>o});var n=l(7552),r=l(68446),c=l(9236),i=l(90257);const o=(0,r.observer)((function({model:e,mouserect:t,mouserectClient:l,xdistance:r}){const{hview:o,vview:s,viewHeight:u}=e;return t?n.createElement(c.default,{placement:r<0?"left":"right",clientPoint:l?{x:l[0],y:l[1]}:void 0},`x - ${(0,i.wJ)(t[0],o)}`,n.createElement("br",null),`y - ${(0,i.wJ)(u-t[1],s)}`,n.createElement("br",null)):null}))}}]); -//# sourceMappingURL=1051.8e1641e2.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1051.8e1641e2.chunk.js.map --- a/x/static/js/1051.8e1641e2.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1051.8e1641e2.chunk.js","mappings":"qMAUA,MA4BA,GA5BgCA,EAAAA,EAAAA,WAAS,UAAU,MACjDC,EAAK,UACLC,EAAS,gBACTC,EAAe,UACfC,IAOA,MAAM,MAAEC,EAAK,MAAEC,EAAK,WAAEC,GAAeN,EACrC,OAAOC,EACLM,EAAAA,cAACC,EAAAA,QAAW,CACVC,UAAWN,EAAY,EAAI,OAAS,QACpCO,YACER,EACI,CAAES,EAAGT,EAAgB,GAAIU,EAAGV,EAAgB,SAC5CW,GAGL,QAAOC,EAAAA,EAAAA,IAAOb,EAAU,GAAIG,KAC7BG,EAAAA,cAAA,WACC,QAAOO,EAAAA,EAAAA,IAAOR,EAAaL,EAAU,GAAII,KAC1CE,EAAAA,cAAA,YAEA,IACN,G","sources":["../../../plugins/dotplot-view/src/DotplotView/components/DotplotTooltipMouseover.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react'\nimport BaseTooltip from '@jbrowse/core/ui/BaseTooltip'\n\n// locals\nimport { DotplotViewModel } from '../model'\nimport { locstr } from './util'\n\ntype Coord = [number, number] | undefined\n\nconst DotplotTooltipMouseover = observer(function ({\n model,\n mouserect,\n mouserectClient,\n xdistance,\n}: {\n model: DotplotViewModel\n mouserect: Coord\n mouserectClient: Coord\n xdistance: number\n}) {\n const { hview, vview, viewHeight } = model\n return mouserect ? (\n \n {`x - ${locstr(mouserect[0], hview)}`}\n
\n {`y - ${locstr(viewHeight - mouserect[1], vview)}`}\n
\n \n ) : null\n})\nexport default DotplotTooltipMouseover\n"],"names":["observer","model","mouserect","mouserectClient","xdistance","hview","vview","viewHeight","React","BaseTooltip","placement","clientPoint","x","y","undefined","locstr"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1110.702cba94.chunk.js --- a/x/static/js/1110.702cba94.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1110],{91110:(e,t,o)=>{o.r(t),o.d(t,{default:()=>Y,getTabsUtilityClass:()=>I,tabsClasses:()=>T});var r=o(7552),l=(o(19487),o(93878)),n=o(70799),s=o(93876),a=o(1045),i=o(51148),c=o(48231),d=o(60129),u=o(4785),b=o(987);function f(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}var h=o(82910),p=o(46689),v=o(69500);const S={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};var m=o(129),w=o(20168),y=o(48054),A=o(33761),g=o(85693);function B(e){return(0,g.Ay)("MuiTabScrollButton",e)}const x=(0,A.A)("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),C=(0,i.Ay)(y.A,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,o.orientation&&t[o.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${x.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),M=r.forwardRef((function(e,t){const o=(0,u.b)({props:e,name:"MuiTabScrollButton"}),{className:r,slots:i={},slotProps:c={},direction:d,orientation:b,disabled:f,...h}=o,p=(0,s.I)(),S={isRtl:p,...o},y=(e=>{const{classes:t,orientation:o,disabled:r}=e,l={root:["root",o,r&&"disabled"]};return(0,n.A)(l,B,t)})(S),A=i.StartScrollButtonIcon??m.A,g=i.EndScrollButtonIcon??w.A,x=(0,a.A)({elementType:A,externalSlotProps:c.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:S}),M=(0,a.A)({elementType:g,externalSlotProps:c.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:S});return(0,v.jsx)(C,{component:"div",className:(0,l.A)(y.root,r),ref:t,role:null,ownerState:S,tabIndex:null,...h,style:{...h.style,..."vertical"===b&&{"--TabScrollButton-svgRotate":`rotate(${p?-90:90}deg)`}},children:"left"===d?(0,v.jsx)(A,{...x}):(0,v.jsx)(g,{...M})})}));var E=o(87422);function I(e){return(0,g.Ay)("MuiTabs",e)}const T=(0,A.A)("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]);var R=o(6676);const k=(e,t)=>e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:e.firstChild,z=(e,t)=>e===t?e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:e.lastChild,L=(e,t,o)=>{let r=!1,l=o(e,t);for(;l;){if(l===e.firstChild){if(r)return;r=!0}const t=l.disabled||"true"===l.getAttribute("aria-disabled");if(l.hasAttribute("tabindex")&&!t)return void l.focus();l=o(e,l)}},j=(0,i.Ay)("div",{name:"MuiTabs",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[{[`& .${T.scrollButtons}`]:t.scrollButtons},{[`& .${T.scrollButtons}`]:o.scrollButtonsHideMobile&&t.scrollButtonsHideMobile},t.root,o.vertical&&t.vertical]}})((0,d.A)((({theme:e})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.scrollButtonsHideMobile,style:{[`& .${T.scrollButtons}`]:{[e.breakpoints.down("sm")]:{display:"none"}}}}]})))),N=(0,i.Ay)("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.scroller,o.fixed&&t.fixed,o.hideScrollbar&&t.hideScrollbar,o.scrollableX&&t.scrollableX,o.scrollableY&&t.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:e})=>e.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:e})=>e.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:e})=>e.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:e})=>e.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),P=(0,i.Ay)("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.flexContainer,o.vertical&&t.flexContainerVertical,o.centered&&t.centered]}})({display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.centered,style:{justifyContent:"center"}}]}),X=(0,i.Ay)("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(e,t)=>t.indicator})((0,d.A)((({theme:e})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(e.vars||e).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(e.vars||e).palette.secondary.main}},{props:({ownerState:e})=>e.vertical,style:{height:"100%",width:2,right:0}}]})))),H=(0,i.Ay)((function(e){const{onChange:t,...o}=e,l=r.useRef(),n=r.useRef(null),s=()=>{l.current=n.current.offsetHeight-n.current.clientHeight};return(0,h.A)((()=>{const e=(0,b.A)((()=>{const e=l.current;s(),e!==l.current&&t(l.current)})),o=(0,p.A)(n.current);return o.addEventListener("resize",e),()=>{e.clear(),o.removeEventListener("resize",e)}}),[t]),r.useEffect((()=>{s(),t(l.current)}),[t]),(0,v.jsx)("div",{style:S,ref:n,...o})}))({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),W={},Y=r.forwardRef((function(e,t){const o=(0,u.b)({props:e,name:"MuiTabs"}),i=(0,c.A)(),d=(0,s.I)(),{"aria-label":h,"aria-labelledby":S,action:m,centered:w=!1,children:y,className:A,component:g="div",allowScrollButtonsMobile:B=!1,indicatorColor:x="primary",onChange:C,orientation:T="horizontal",ScrollButtonComponent:Y=M,scrollButtons:D="auto",selectionFollowsFocus:F,slots:O={},slotProps:$={},TabIndicatorProps:V={},TabScrollButtonProps:_={},textColor:q="primary",value:K,variant:U="standard",visibleScrollbar:G=!1,...J}=o,Q="scrollable"===U,Z="vertical"===T,ee=Z?"scrollTop":"scrollLeft",te=Z?"top":"left",oe=Z?"bottom":"right",re=Z?"clientHeight":"clientWidth",le=Z?"height":"width",ne={...o,component:g,allowScrollButtonsMobile:B,indicatorColor:x,orientation:T,vertical:Z,scrollButtons:D,textColor:q,variant:U,visibleScrollbar:G,fixed:!Q,hideScrollbar:Q&&!G,scrollableX:Q&&!Z,scrollableY:Q&&Z,centered:w&&!Q,scrollButtonsHideMobile:!B},se=(e=>{const{vertical:t,fixed:o,hideScrollbar:r,scrollableX:l,scrollableY:s,centered:a,scrollButtonsHideMobile:i,classes:c}=e,d={root:["root",t&&"vertical"],scroller:["scroller",o&&"fixed",r&&"hideScrollbar",l&&"scrollableX",s&&"scrollableY"],flexContainer:["flexContainer",t&&"flexContainerVertical",a&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",i&&"scrollButtonsHideMobile"],scrollableX:[l&&"scrollableX"],hideScrollbar:[r&&"hideScrollbar"]};return(0,n.A)(d,I,c)})(ne),ae=(0,a.A)({elementType:O.StartScrollButtonIcon,externalSlotProps:$.startScrollButtonIcon,ownerState:ne}),ie=(0,a.A)({elementType:O.EndScrollButtonIcon,externalSlotProps:$.endScrollButtonIcon,ownerState:ne}),[ce,de]=r.useState(!1),[ue,be]=r.useState(W),[fe,he]=r.useState(!1),[pe,ve]=r.useState(!1),[Se,me]=r.useState(!1),[we,ye]=r.useState({overflow:"hidden",scrollbarWidth:0}),Ae=new Map,ge=r.useRef(null),Be=r.useRef(null),xe=()=>{const e=ge.current;let t,o;if(e){const o=e.getBoundingClientRect();t={clientWidth:e.clientWidth,scrollLeft:e.scrollLeft,scrollTop:e.scrollTop,scrollWidth:e.scrollWidth,top:o.top,bottom:o.bottom,left:o.left,right:o.right}}if(e&&!1!==K){const e=Be.current.children;if(e.length>0){const t=e[Ae.get(K)];o=t?t.getBoundingClientRect():null}}return{tabsMeta:t,tabMeta:o}},Ce=(0,E.A)((()=>{const{tabsMeta:e,tabMeta:t}=xe();let o,r=0;Z?(o="top",t&&e&&(r=t.top-e.top+e.scrollTop)):(o=d?"right":"left",t&&e&&(r=(d?-1:1)*(t[o]-e[o]+e.scrollLeft)));const l={[o]:r,[le]:t?t[le]:0};if("number"!=typeof ue[o]||"number"!=typeof ue[le])be(l);else{const e=Math.abs(ue[o]-l[o]),t=Math.abs(ue[le]-l[le]);(e>=1||t>=1)&&be(l)}})),Me=(e,{animation:t=!0}={})=>{t?function(e,t,o,r={},l=()=>{}){const{ease:n=f,duration:s=300}=r;let a=null;const i=t[e];let c=!1;const d=r=>{if(c)return void l(new Error("Animation cancelled"));null===a&&(a=r);const u=Math.min(1,(r-a)/s);t[e]=n(u)*(o-i)+i,u>=1?requestAnimationFrame((()=>{l(null)})):requestAnimationFrame(d)};i===o?l(new Error("Element already at target position")):requestAnimationFrame(d)}(ee,ge.current,e,{duration:i.transitions.duration.standard}):ge.current[ee]=e},Ee=e=>{let t=ge.current[ee];t+=Z?e:e*(d?-1:1),Me(t)},Ie=()=>{const e=ge.current[re];let t=0;const o=Array.from(Be.current.children);for(let r=0;re){0===r&&(t=e);break}t+=l[re]}return t},Te=()=>{Ee(-1*Ie())},Re=()=>{Ee(Ie())},ke=r.useCallback((e=>{ye({overflow:null,scrollbarWidth:e})}),[]),ze=(0,E.A)((e=>{const{tabsMeta:t,tabMeta:o}=xe();if(o&&t)if(o[te]t[oe]){const r=t[ee]+(o[oe]-t[oe]);Me(r,{animation:e})}})),Le=(0,E.A)((()=>{Q&&!1!==D&&me(!Se)}));r.useEffect((()=>{const e=(0,b.A)((()=>{ge.current&&Ce()}));let t;const o=(0,p.A)(ge.current);let r;return o.addEventListener("resize",e),"undefined"!=typeof ResizeObserver&&(t=new ResizeObserver(e),Array.from(Be.current.children).forEach((e=>{t.observe(e)}))),"undefined"!=typeof MutationObserver&&(r=new MutationObserver((o=>{o.forEach((e=>{e.removedNodes.forEach((e=>{t?.unobserve(e)})),e.addedNodes.forEach((e=>{t?.observe(e)}))})),e(),Le()})),r.observe(Be.current,{childList:!0})),()=>{e.clear(),o.removeEventListener("resize",e),r?.disconnect(),t?.disconnect()}}),[Ce,Le]),r.useEffect((()=>{const e=Array.from(Be.current.children),t=e.length;if("undefined"!=typeof IntersectionObserver&&t>0&&Q&&!1!==D){const o=e[0],r=e[t-1],l={root:ge.current,threshold:.99},n=new IntersectionObserver((e=>{he(!e[0].isIntersecting)}),l);n.observe(o);const s=new IntersectionObserver((e=>{ve(!e[0].isIntersecting)}),l);return s.observe(r),()=>{n.disconnect(),s.disconnect()}}}),[Q,D,Se,y?.length]),r.useEffect((()=>{de(!0)}),[]),r.useEffect((()=>{Ce()})),r.useEffect((()=>{ze(W!==ue)}),[ze,ue]),r.useImperativeHandle(m,(()=>({updateIndicator:Ce,updateScrollButtons:Le})),[Ce,Le]);const je=(0,v.jsx)(X,{...V,className:(0,l.A)(se.indicator,V.className),ownerState:ne,style:{...ue,...V.style}});let Ne=0;const Pe=r.Children.map(y,(e=>{if(!r.isValidElement(e))return null;const t=void 0===e.props.value?Ne:e.props.value;Ae.set(t,Ne);const o=t===K;return Ne+=1,r.cloneElement(e,{fullWidth:"fullWidth"===U,indicator:o&&!ce&&je,selected:o,selectionFollowsFocus:F,onChange:C,textColor:q,value:t,...1!==Ne||!1!==K||e.props.tabIndex?{}:{tabIndex:0}})})),Xe=(()=>{const e={};e.scrollbarSizeListener=Q?(0,v.jsx)(H,{onChange:ke,className:(0,l.A)(se.scrollableX,se.hideScrollbar)}):null;const t=Q&&("auto"===D&&(fe||pe)||!0===D);return e.scrollButtonStart=t?(0,v.jsx)(Y,{slots:{StartScrollButtonIcon:O.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:ae},orientation:T,direction:d?"right":"left",onClick:Te,disabled:!fe,..._,className:(0,l.A)(se.scrollButtons,_.className)}):null,e.scrollButtonEnd=t?(0,v.jsx)(Y,{slots:{EndScrollButtonIcon:O.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:ie},orientation:T,direction:d?"left":"right",onClick:Re,disabled:!pe,..._,className:(0,l.A)(se.scrollButtons,_.className)}):null,e})();return(0,v.jsxs)(j,{className:(0,l.A)(se.root,A),ownerState:ne,ref:t,as:g,...J,children:[Xe.scrollButtonStart,Xe.scrollbarSizeListener,(0,v.jsxs)(N,{className:se.scroller,ownerState:ne,style:{overflow:we.overflow,[Z?"margin"+(d?"Left":"Right"):"marginBottom"]:G?void 0:-we.scrollbarWidth},ref:ge,children:[(0,v.jsx)(P,{"aria-label":h,"aria-labelledby":S,"aria-orientation":"vertical"===T?"vertical":null,className:se.flexContainer,ownerState:ne,onKeyDown:e=>{const t=Be.current,o=(0,R.A)(t).activeElement;if("tab"!==o.getAttribute("role"))return;let r="horizontal"===T?"ArrowLeft":"ArrowUp",l="horizontal"===T?"ArrowRight":"ArrowDown";switch("horizontal"===T&&d&&(r="ArrowRight",l="ArrowLeft"),e.key){case r:e.preventDefault(),L(t,o,z);break;case l:e.preventDefault(),L(t,o,k);break;case"Home":e.preventDefault(),L(t,null,k);break;case"End":e.preventDefault(),L(t,null,z)}},ref:Be,role:"tablist",children:Pe}),ce&&je]}),Xe.scrollButtonEnd]})}))},129:(e,t,o)=>{o.d(t,{A:()=>n}),o(7552);var r=o(74893),l=o(69500);const n=(0,r.A)((0,l.jsx)("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft")},20168:(e,t,o)=>{o.d(t,{A:()=>n}),o(7552);var r=o(74893),l=o(69500);const n=(0,r.A)((0,l.jsx)("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight")}}]); -//# sourceMappingURL=1110.702cba94.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1110.702cba94.chunk.js.map --- a/x/static/js/1110.702cba94.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1110.702cba94.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/internal/animate.js","../../../node_modules/@mui/material/Tabs/ScrollbarSize.js","../../../node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js","../../../node_modules/@mui/material/TabScrollButton/TabScrollButton.js","../../../node_modules/@mui/material/Tabs/tabsClasses.js","../../../node_modules/@mui/material/Tabs/Tabs.js","../../../node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","../../../node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js"],"sourcesContent":["function easeInOutSin(time) {\n return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\nexport default function animate(property, element, to, options = {}, cb = () => {}) {\n const {\n ease = easeInOutSin,\n duration = 300 // standard\n } = options;\n let start = null;\n const from = element[property];\n let cancelled = false;\n const cancel = () => {\n cancelled = true;\n };\n const step = timestamp => {\n if (cancelled) {\n cb(new Error('Animation cancelled'));\n return;\n }\n if (start === null) {\n start = timestamp;\n }\n const time = Math.min(1, (timestamp - start) / duration);\n element[property] = ease(time) * (to - from) + from;\n if (time >= 1) {\n requestAnimationFrame(() => {\n cb(null);\n });\n return;\n }\n requestAnimationFrame(step);\n };\n if (from === to) {\n cb(new Error('Element already at target position'));\n return cancel;\n }\n requestAnimationFrame(step);\n return cancel;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from \"../utils/debounce.js\";\nimport { ownerWindow, unstable_useEnhancedEffect as useEnhancedEffect } from \"../utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst styles = {\n width: 99,\n height: 99,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll'\n};\n\n/**\n * @ignore - internal component.\n * The component originates from https://github.com/STORIS/react-scrollbar-size.\n * It has been moved into the core in order to minimize the bundle size.\n */\nexport default function ScrollbarSize(props) {\n const {\n onChange,\n ...other\n } = props;\n const scrollbarHeight = React.useRef();\n const nodeRef = React.useRef(null);\n const setMeasurements = () => {\n scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;\n };\n useEnhancedEffect(() => {\n const handleResize = debounce(() => {\n const prevHeight = scrollbarHeight.current;\n setMeasurements();\n if (prevHeight !== scrollbarHeight.current) {\n onChange(scrollbarHeight.current);\n }\n });\n const containerWindow = ownerWindow(nodeRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [onChange]);\n React.useEffect(() => {\n setMeasurements();\n onChange(scrollbarHeight.current);\n }, [onChange]);\n return /*#__PURE__*/_jsx(\"div\", {\n style: styles,\n ref: nodeRef,\n ...other\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ScrollbarSize.propTypes = {\n onChange: PropTypes.func.isRequired\n} : void 0;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabScrollButtonUtilityClass(slot) {\n return generateUtilityClass('MuiTabScrollButton', slot);\n}\nconst tabScrollButtonClasses = generateUtilityClasses('MuiTabScrollButton', ['root', 'vertical', 'horizontal', 'disabled']);\nexport default tabScrollButtonClasses;","'use client';\n\n/* eslint-disable jsx-a11y/aria-role */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport KeyboardArrowLeft from \"../internal/svg-icons/KeyboardArrowLeft.js\";\nimport KeyboardArrowRight from \"../internal/svg-icons/KeyboardArrowRight.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport tabScrollButtonClasses, { getTabScrollButtonUtilityClass } from \"./tabScrollButtonClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, disabled && 'disabled']\n };\n return composeClasses(slots, getTabScrollButtonUtilityClass, classes);\n};\nconst TabScrollButtonRoot = styled(ButtonBase, {\n name: 'MuiTabScrollButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.orientation && styles[ownerState.orientation]];\n }\n})({\n width: 40,\n flexShrink: 0,\n opacity: 0.8,\n [`&.${tabScrollButtonClasses.disabled}`]: {\n opacity: 0\n },\n variants: [{\n props: {\n orientation: 'vertical'\n },\n style: {\n width: '100%',\n height: 40,\n '& svg': {\n transform: 'var(--TabScrollButton-svgRotate)'\n }\n }\n }]\n});\nconst TabScrollButton = /*#__PURE__*/React.forwardRef(function TabScrollButton(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTabScrollButton'\n });\n const {\n className,\n slots = {},\n slotProps = {},\n direction,\n orientation,\n disabled,\n ...other\n } = props;\n const isRtl = useRtl();\n const ownerState = {\n isRtl,\n ...props\n };\n const classes = useUtilityClasses(ownerState);\n const StartButtonIcon = slots.StartScrollButtonIcon ?? KeyboardArrowLeft;\n const EndButtonIcon = slots.EndScrollButtonIcon ?? KeyboardArrowRight;\n const startButtonIconProps = useSlotProps({\n elementType: StartButtonIcon,\n externalSlotProps: slotProps.startScrollButtonIcon,\n additionalProps: {\n fontSize: 'small'\n },\n ownerState\n });\n const endButtonIconProps = useSlotProps({\n elementType: EndButtonIcon,\n externalSlotProps: slotProps.endScrollButtonIcon,\n additionalProps: {\n fontSize: 'small'\n },\n ownerState\n });\n return /*#__PURE__*/_jsx(TabScrollButtonRoot, {\n component: \"div\",\n className: clsx(classes.root, className),\n ref: ref,\n role: null,\n ownerState: ownerState,\n tabIndex: null,\n ...other,\n style: {\n ...other.style,\n ...(orientation === 'vertical' && {\n '--TabScrollButton-svgRotate': `rotate(${isRtl ? -90 : 90}deg)`\n })\n },\n children: direction === 'left' ? /*#__PURE__*/_jsx(StartButtonIcon, {\n ...startButtonIconProps\n }) : /*#__PURE__*/_jsx(EndButtonIcon, {\n ...endButtonIconProps\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TabScrollButton.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The direction the button should indicate.\n */\n direction: PropTypes.oneOf(['left', 'right']).isRequired,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The component orientation (layout flow direction).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n * @default {}\n */\n slotProps: PropTypes.shape({\n endScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n startScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n EndScrollButtonIcon: PropTypes.elementType,\n StartScrollButtonIcon: PropTypes.elementType\n }),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TabScrollButton;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabsUtilityClass(slot) {\n return generateUtilityClass('MuiTabs', slot);\n}\nconst tabsClasses = generateUtilityClasses('MuiTabs', ['root', 'vertical', 'flexContainer', 'flexContainerVertical', 'centered', 'scroller', 'fixed', 'scrollableX', 'scrollableY', 'hideScrollbar', 'scrollButtons', 'scrollButtonsHideMobile', 'indicator']);\nexport default tabsClasses;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport debounce from \"../utils/debounce.js\";\nimport animate from \"../internal/animate.js\";\nimport ScrollbarSize from \"./ScrollbarSize.js\";\nimport TabScrollButton from \"../TabScrollButton/index.js\";\nimport useEventCallback from \"../utils/useEventCallback.js\";\nimport tabsClasses, { getTabsUtilityClass } from \"./tabsClasses.js\";\nimport ownerDocument from \"../utils/ownerDocument.js\";\nimport ownerWindow from \"../utils/ownerWindow.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst nextItem = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\nconst previousItem = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\nconst moveFocus = (list, currentFocus, traversalFunction) => {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus);\n } else {\n nextFocus.focus();\n return;\n }\n }\n};\nconst useUtilityClasses = ownerState => {\n const {\n vertical,\n fixed,\n hideScrollbar,\n scrollableX,\n scrollableY,\n centered,\n scrollButtonsHideMobile,\n classes\n } = ownerState;\n const slots = {\n root: ['root', vertical && 'vertical'],\n scroller: ['scroller', fixed && 'fixed', hideScrollbar && 'hideScrollbar', scrollableX && 'scrollableX', scrollableY && 'scrollableY'],\n flexContainer: ['flexContainer', vertical && 'flexContainerVertical', centered && 'centered'],\n indicator: ['indicator'],\n scrollButtons: ['scrollButtons', scrollButtonsHideMobile && 'scrollButtonsHideMobile'],\n scrollableX: [scrollableX && 'scrollableX'],\n hideScrollbar: [hideScrollbar && 'hideScrollbar']\n };\n return composeClasses(slots, getTabsUtilityClass, classes);\n};\nconst TabsRoot = styled('div', {\n name: 'MuiTabs',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${tabsClasses.scrollButtons}`]: styles.scrollButtons\n }, {\n [`& .${tabsClasses.scrollButtons}`]: ownerState.scrollButtonsHideMobile && styles.scrollButtonsHideMobile\n }, styles.root, ownerState.vertical && styles.vertical];\n }\n})(memoTheme(({\n theme\n}) => ({\n overflow: 'hidden',\n minHeight: 48,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n display: 'flex',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.vertical,\n style: {\n flexDirection: 'column'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.scrollButtonsHideMobile,\n style: {\n [`& .${tabsClasses.scrollButtons}`]: {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n }\n }\n }]\n})));\nconst TabsScroller = styled('div', {\n name: 'MuiTabs',\n slot: 'Scroller',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.scroller, ownerState.fixed && styles.fixed, ownerState.hideScrollbar && styles.hideScrollbar, ownerState.scrollableX && styles.scrollableX, ownerState.scrollableY && styles.scrollableY];\n }\n})({\n position: 'relative',\n display: 'inline-block',\n flex: '1 1 auto',\n whiteSpace: 'nowrap',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.fixed,\n style: {\n overflowX: 'hidden',\n width: '100%'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.hideScrollbar,\n style: {\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.scrollableX,\n style: {\n overflowX: 'auto',\n overflowY: 'hidden'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.scrollableY,\n style: {\n overflowY: 'auto',\n overflowX: 'hidden'\n }\n }]\n});\nconst FlexContainer = styled('div', {\n name: 'MuiTabs',\n slot: 'FlexContainer',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.flexContainer, ownerState.vertical && styles.flexContainerVertical, ownerState.centered && styles.centered];\n }\n})({\n display: 'flex',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.vertical,\n style: {\n flexDirection: 'column'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.centered,\n style: {\n justifyContent: 'center'\n }\n }]\n});\nconst TabsIndicator = styled('span', {\n name: 'MuiTabs',\n slot: 'Indicator',\n overridesResolver: (props, styles) => styles.indicator\n})(memoTheme(({\n theme\n}) => ({\n position: 'absolute',\n height: 2,\n bottom: 0,\n width: '100%',\n transition: theme.transitions.create(),\n variants: [{\n props: {\n indicatorColor: 'primary'\n },\n style: {\n backgroundColor: (theme.vars || theme).palette.primary.main\n }\n }, {\n props: {\n indicatorColor: 'secondary'\n },\n style: {\n backgroundColor: (theme.vars || theme).palette.secondary.main\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.vertical,\n style: {\n height: '100%',\n width: 2,\n right: 0\n }\n }]\n})));\nconst TabsScrollbarSize = styled(ScrollbarSize)({\n overflowX: 'auto',\n overflowY: 'hidden',\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n }\n});\nconst defaultIndicatorStyle = {};\nlet warnedOnceTabPresent = false;\nconst Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTabs'\n });\n const theme = useTheme();\n const isRtl = useRtl();\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n action,\n centered = false,\n children: childrenProp,\n className,\n component = 'div',\n allowScrollButtonsMobile = false,\n indicatorColor = 'primary',\n onChange,\n orientation = 'horizontal',\n ScrollButtonComponent = TabScrollButton,\n scrollButtons = 'auto',\n selectionFollowsFocus,\n slots = {},\n slotProps = {},\n TabIndicatorProps = {},\n TabScrollButtonProps = {},\n textColor = 'primary',\n value,\n variant = 'standard',\n visibleScrollbar = false,\n ...other\n } = props;\n const scrollable = variant === 'scrollable';\n const vertical = orientation === 'vertical';\n const scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n const start = vertical ? 'top' : 'left';\n const end = vertical ? 'bottom' : 'right';\n const clientSize = vertical ? 'clientHeight' : 'clientWidth';\n const size = vertical ? 'height' : 'width';\n const ownerState = {\n ...props,\n component,\n allowScrollButtonsMobile,\n indicatorColor,\n orientation,\n vertical,\n scrollButtons,\n textColor,\n variant,\n visibleScrollbar,\n fixed: !scrollable,\n hideScrollbar: scrollable && !visibleScrollbar,\n scrollableX: scrollable && !vertical,\n scrollableY: scrollable && vertical,\n centered: centered && !scrollable,\n scrollButtonsHideMobile: !allowScrollButtonsMobile\n };\n const classes = useUtilityClasses(ownerState);\n const startScrollButtonIconProps = useSlotProps({\n elementType: slots.StartScrollButtonIcon,\n externalSlotProps: slotProps.startScrollButtonIcon,\n ownerState\n });\n const endScrollButtonIconProps = useSlotProps({\n elementType: slots.EndScrollButtonIcon,\n externalSlotProps: slotProps.endScrollButtonIcon,\n ownerState\n });\n if (process.env.NODE_ENV !== 'production') {\n if (centered && scrollable) {\n console.error('MUI: You can not use the `centered={true}` and `variant=\"scrollable\"` properties ' + 'at the same time on a `Tabs` component.');\n }\n }\n const [mounted, setMounted] = React.useState(false);\n const [indicatorStyle, setIndicatorStyle] = React.useState(defaultIndicatorStyle);\n const [displayStartScroll, setDisplayStartScroll] = React.useState(false);\n const [displayEndScroll, setDisplayEndScroll] = React.useState(false);\n const [updateScrollObserver, setUpdateScrollObserver] = React.useState(false);\n const [scrollerStyle, setScrollerStyle] = React.useState({\n overflow: 'hidden',\n scrollbarWidth: 0\n });\n const valueToIndex = new Map();\n const tabsRef = React.useRef(null);\n const tabListRef = React.useRef(null);\n const getTabsMeta = () => {\n const tabsNode = tabsRef.current;\n let tabsMeta;\n if (tabsNode) {\n const rect = tabsNode.getBoundingClientRect();\n // create a new object with ClientRect class props + scrollLeft\n tabsMeta = {\n clientWidth: tabsNode.clientWidth,\n scrollLeft: tabsNode.scrollLeft,\n scrollTop: tabsNode.scrollTop,\n scrollWidth: tabsNode.scrollWidth,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right\n };\n }\n let tabMeta;\n if (tabsNode && value !== false) {\n const children = tabListRef.current.children;\n if (children.length > 0) {\n const tab = children[valueToIndex.get(value)];\n if (process.env.NODE_ENV !== 'production') {\n if (!tab) {\n console.error([`MUI: The \\`value\\` provided to the Tabs component is invalid.`, `None of the Tabs' children match with \"${value}\".`, valueToIndex.keys ? `You can provide one of the following values: ${Array.from(valueToIndex.keys()).join(', ')}.` : null].join('\\n'));\n }\n }\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n if (process.env.NODE_ENV !== 'production') {\n if (process.env.NODE_ENV !== 'test' && !warnedOnceTabPresent && tabMeta && tabMeta.width === 0 && tabMeta.height === 0 &&\n // if the whole Tabs component is hidden, don't warn\n tabsMeta.clientWidth !== 0) {\n tabsMeta = null;\n console.error(['MUI: The `value` provided to the Tabs component is invalid.', `The Tab with this \\`value\\` (\"${value}\") is not part of the document layout.`, \"Make sure the tab item is present in the document or that it's not `display: none`.\"].join('\\n'));\n warnedOnceTabPresent = true;\n }\n }\n }\n }\n return {\n tabsMeta,\n tabMeta\n };\n };\n const updateIndicatorState = useEventCallback(() => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n let startValue = 0;\n let startIndicator;\n if (vertical) {\n startIndicator = 'top';\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.top - tabsMeta.top + tabsMeta.scrollTop;\n }\n } else {\n startIndicator = isRtl ? 'right' : 'left';\n if (tabMeta && tabsMeta) {\n startValue = (isRtl ? -1 : 1) * (tabMeta[startIndicator] - tabsMeta[startIndicator] + tabsMeta.scrollLeft);\n }\n }\n const newIndicatorStyle = {\n [startIndicator]: startValue,\n // May be wrong until the font is loaded.\n [size]: tabMeta ? tabMeta[size] : 0\n };\n if (typeof indicatorStyle[startIndicator] !== 'number' || typeof indicatorStyle[size] !== 'number') {\n setIndicatorStyle(newIndicatorStyle);\n } else {\n const dStart = Math.abs(indicatorStyle[startIndicator] - newIndicatorStyle[startIndicator]);\n const dSize = Math.abs(indicatorStyle[size] - newIndicatorStyle[size]);\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(newIndicatorStyle);\n }\n }\n });\n const scroll = (scrollValue, {\n animation = true\n } = {}) => {\n if (animation) {\n animate(scrollStart, tabsRef.current, scrollValue, {\n duration: theme.transitions.duration.standard\n });\n } else {\n tabsRef.current[scrollStart] = scrollValue;\n }\n };\n const moveTabsScroll = delta => {\n let scrollValue = tabsRef.current[scrollStart];\n if (vertical) {\n scrollValue += delta;\n } else {\n scrollValue += delta * (isRtl ? -1 : 1);\n }\n scroll(scrollValue);\n };\n const getScrollSize = () => {\n const containerSize = tabsRef.current[clientSize];\n let totalSize = 0;\n const children = Array.from(tabListRef.current.children);\n for (let i = 0; i < children.length; i += 1) {\n const tab = children[i];\n if (totalSize + tab[clientSize] > containerSize) {\n // If the first item is longer than the container size, then only scroll\n // by the container size.\n if (i === 0) {\n totalSize = containerSize;\n }\n break;\n }\n totalSize += tab[clientSize];\n }\n return totalSize;\n };\n const handleStartScrollClick = () => {\n moveTabsScroll(-1 * getScrollSize());\n };\n const handleEndScrollClick = () => {\n moveTabsScroll(getScrollSize());\n };\n\n // TODO Remove as browser support for hiding the scrollbar\n // with CSS improves.\n const handleScrollbarSizeChange = React.useCallback(scrollbarWidth => {\n setScrollerStyle({\n overflow: null,\n scrollbarWidth\n });\n }, []);\n const getConditionalElements = () => {\n const conditionalElements = {};\n conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/_jsx(TabsScrollbarSize, {\n onChange: handleScrollbarSizeChange,\n className: clsx(classes.scrollableX, classes.hideScrollbar)\n }) : null;\n const scrollButtonsActive = displayStartScroll || displayEndScroll;\n const showScrollButtons = scrollable && (scrollButtons === 'auto' && scrollButtonsActive || scrollButtons === true);\n conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, {\n slots: {\n StartScrollButtonIcon: slots.StartScrollButtonIcon\n },\n slotProps: {\n startScrollButtonIcon: startScrollButtonIconProps\n },\n orientation: orientation,\n direction: isRtl ? 'right' : 'left',\n onClick: handleStartScrollClick,\n disabled: !displayStartScroll,\n ...TabScrollButtonProps,\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n }) : null;\n conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, {\n slots: {\n EndScrollButtonIcon: slots.EndScrollButtonIcon\n },\n slotProps: {\n endScrollButtonIcon: endScrollButtonIconProps\n },\n orientation: orientation,\n direction: isRtl ? 'left' : 'right',\n onClick: handleEndScrollClick,\n disabled: !displayEndScroll,\n ...TabScrollButtonProps,\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n }) : null;\n return conditionalElements;\n };\n const scrollSelectedIntoView = useEventCallback(animation => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n if (!tabMeta || !tabsMeta) {\n return;\n }\n if (tabMeta[start] < tabsMeta[start]) {\n // left side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);\n scroll(nextScrollStart, {\n animation\n });\n } else if (tabMeta[end] > tabsMeta[end]) {\n // right side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);\n scroll(nextScrollStart, {\n animation\n });\n }\n });\n const updateScrollButtonState = useEventCallback(() => {\n if (scrollable && scrollButtons !== false) {\n setUpdateScrollObserver(!updateScrollObserver);\n }\n });\n React.useEffect(() => {\n const handleResize = debounce(() => {\n // If the Tabs component is replaced by Suspense with a fallback, the last\n // ResizeObserver's handler that runs because of the change in the layout is trying to\n // access a dom node that is no longer there (as the fallback component is being shown instead).\n // See https://github.com/mui/material-ui/issues/33276\n // TODO: Add tests that will ensure the component is not failing when\n // replaced by Suspense with a fallback, once React is updated to version 18\n if (tabsRef.current) {\n updateIndicatorState();\n }\n });\n let resizeObserver;\n\n /**\n * @type {MutationCallback}\n */\n const handleMutation = records => {\n records.forEach(record => {\n record.removedNodes.forEach(item => {\n resizeObserver?.unobserve(item);\n });\n record.addedNodes.forEach(item => {\n resizeObserver?.observe(item);\n });\n });\n handleResize();\n updateScrollButtonState();\n };\n const win = ownerWindow(tabsRef.current);\n win.addEventListener('resize', handleResize);\n let mutationObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(handleResize);\n Array.from(tabListRef.current.children).forEach(child => {\n resizeObserver.observe(child);\n });\n }\n if (typeof MutationObserver !== 'undefined') {\n mutationObserver = new MutationObserver(handleMutation);\n mutationObserver.observe(tabListRef.current, {\n childList: true\n });\n }\n return () => {\n handleResize.clear();\n win.removeEventListener('resize', handleResize);\n mutationObserver?.disconnect();\n resizeObserver?.disconnect();\n };\n }, [updateIndicatorState, updateScrollButtonState]);\n\n /**\n * Toggle visibility of start and end scroll buttons\n * Using IntersectionObserver on first and last Tabs.\n */\n React.useEffect(() => {\n const tabListChildren = Array.from(tabListRef.current.children);\n const length = tabListChildren.length;\n if (typeof IntersectionObserver !== 'undefined' && length > 0 && scrollable && scrollButtons !== false) {\n const firstTab = tabListChildren[0];\n const lastTab = tabListChildren[length - 1];\n const observerOptions = {\n root: tabsRef.current,\n threshold: 0.99\n };\n const handleScrollButtonStart = entries => {\n setDisplayStartScroll(!entries[0].isIntersecting);\n };\n const firstObserver = new IntersectionObserver(handleScrollButtonStart, observerOptions);\n firstObserver.observe(firstTab);\n const handleScrollButtonEnd = entries => {\n setDisplayEndScroll(!entries[0].isIntersecting);\n };\n const lastObserver = new IntersectionObserver(handleScrollButtonEnd, observerOptions);\n lastObserver.observe(lastTab);\n return () => {\n firstObserver.disconnect();\n lastObserver.disconnect();\n };\n }\n return undefined;\n }, [scrollable, scrollButtons, updateScrollObserver, childrenProp?.length]);\n React.useEffect(() => {\n setMounted(true);\n }, []);\n React.useEffect(() => {\n updateIndicatorState();\n });\n React.useEffect(() => {\n // Don't animate on the first render.\n scrollSelectedIntoView(defaultIndicatorStyle !== indicatorStyle);\n }, [scrollSelectedIntoView, indicatorStyle]);\n React.useImperativeHandle(action, () => ({\n updateIndicator: updateIndicatorState,\n updateScrollButtons: updateScrollButtonState\n }), [updateIndicatorState, updateScrollButtonState]);\n const indicator = /*#__PURE__*/_jsx(TabsIndicator, {\n ...TabIndicatorProps,\n className: clsx(classes.indicator, TabIndicatorProps.className),\n ownerState: ownerState,\n style: {\n ...indicatorStyle,\n ...TabIndicatorProps.style\n }\n });\n let childIndex = 0;\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Tabs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n const childValue = child.props.value === undefined ? childIndex : child.props.value;\n valueToIndex.set(childValue, childIndex);\n const selected = childValue === value;\n childIndex += 1;\n return /*#__PURE__*/React.cloneElement(child, {\n fullWidth: variant === 'fullWidth',\n indicator: selected && !mounted && indicator,\n selected,\n selectionFollowsFocus,\n onChange,\n textColor,\n value: childValue,\n ...(childIndex === 1 && value === false && !child.props.tabIndex ? {\n tabIndex: 0\n } : {})\n });\n });\n const handleKeyDown = event => {\n const list = tabListRef.current;\n const currentFocus = ownerDocument(list).activeElement;\n // Keyboard navigation assumes that [role=\"tab\"] are siblings\n // though we might warn in the future about nested, interactive elements\n // as a a11y violation\n const role = currentFocus.getAttribute('role');\n if (role !== 'tab') {\n return;\n }\n let previousItemKey = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n let nextItemKey = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n if (orientation === 'horizontal' && isRtl) {\n // swap previousItemKey with nextItemKey\n previousItemKey = 'ArrowRight';\n nextItemKey = 'ArrowLeft';\n }\n switch (event.key) {\n case previousItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n break;\n case nextItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n break;\n case 'Home':\n event.preventDefault();\n moveFocus(list, null, nextItem);\n break;\n case 'End':\n event.preventDefault();\n moveFocus(list, null, previousItem);\n break;\n default:\n break;\n }\n };\n const conditionalElements = getConditionalElements();\n return /*#__PURE__*/_jsxs(TabsRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n as: component,\n ...other,\n children: [conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/_jsxs(TabsScroller, {\n className: classes.scroller,\n ownerState: ownerState,\n style: {\n overflow: scrollerStyle.overflow,\n [vertical ? `margin${isRtl ? 'Left' : 'Right'}` : 'marginBottom']: visibleScrollbar ? undefined : -scrollerStyle.scrollbarWidth\n },\n ref: tabsRef,\n children: [/*#__PURE__*/_jsx(FlexContainer, {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-orientation\": orientation === 'vertical' ? 'vertical' : null,\n className: classes.flexContainer,\n ownerState: ownerState,\n onKeyDown: handleKeyDown,\n ref: tabListRef,\n role: \"tablist\",\n children: children\n }), mounted && indicator]\n }), conditionalElements.scrollButtonEnd]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Tabs.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Callback fired when the component mounts.\n * This is useful when you want to trigger an action programmatically.\n * It supports two actions: `updateIndicator()` and `updateScrollButtons()`\n *\n * @param {object} actions This object contains all possible actions\n * that can be triggered programmatically.\n */\n action: refType,\n /**\n * If `true`, the scroll buttons aren't forced hidden on mobile.\n * By default the scroll buttons are hidden on mobile and takes precedence over `scrollButtons`.\n * @default false\n */\n allowScrollButtonsMobile: PropTypes.bool,\n /**\n * The label for the Tabs as a string.\n */\n 'aria-label': PropTypes.string,\n /**\n * An id or list of ids separated by a space that label the Tabs.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * If `true`, the tabs are centered.\n * This prop is intended for large views.\n * @default false\n */\n centered: PropTypes.bool,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Determines the color of the indicator.\n * @default 'primary'\n */\n indicatorColor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {any} value We default to the index of the child (number)\n */\n onChange: PropTypes.func,\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * The component used to render the scroll buttons.\n * @default TabScrollButton\n */\n ScrollButtonComponent: PropTypes.elementType,\n /**\n * Determine behavior of scroll buttons when tabs are set to scroll:\n *\n * - `auto` will only present them when not all the items are visible.\n * - `true` will always present them.\n * - `false` will never present them.\n *\n * By default the scroll buttons are hidden on mobile.\n * This behavior can be disabled with `allowScrollButtonsMobile`.\n * @default 'auto'\n */\n scrollButtons: PropTypes /* @typescript-to-proptypes-ignore */.oneOf(['auto', false, true]),\n /**\n * If `true` the selected tab changes on focus. Otherwise it only\n * changes on activation.\n */\n selectionFollowsFocus: PropTypes.bool,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n * @default {}\n */\n slotProps: PropTypes.shape({\n endScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n startScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n EndScrollButtonIcon: PropTypes.elementType,\n StartScrollButtonIcon: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Props applied to the tab indicator element.\n * @default {}\n */\n TabIndicatorProps: PropTypes.object,\n /**\n * Props applied to the [`TabScrollButton`](https://mui.com/material-ui/api/tab-scroll-button/) element.\n * @default {}\n */\n TabScrollButtonProps: PropTypes.object,\n /**\n * Determines the color of the `Tab`.\n * @default 'primary'\n */\n textColor: PropTypes.oneOf(['inherit', 'primary', 'secondary']),\n /**\n * The value of the currently selected `Tab`.\n * If you don't want any selected `Tab`, you can set this prop to `false`.\n */\n value: PropTypes.any,\n /**\n * Determines additional display behavior of the tabs:\n *\n * - `scrollable` will invoke scrolling properties and allow for horizontally\n * scrolling (or swiping) of the tab bar.\n * - `fullWidth` will make the tabs grow to use all the available space,\n * which should be used for small views, like on mobile.\n * - `standard` will render the default state.\n * @default 'standard'\n */\n variant: PropTypes.oneOf(['fullWidth', 'scrollable', 'standard']),\n /**\n * If `true`, the scrollbar is visible. It can be useful when displaying\n * a long vertical list of tabs.\n * @default false\n */\n visibleScrollbar: PropTypes.bool\n} : void 0;\nexport default Tabs;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n}), 'KeyboardArrowLeft');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n}), 'KeyboardArrowRight');"],"names":["easeInOutSin","time","Math","sin","PI","styles","width","height","position","top","overflow","getTabScrollButtonUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabScrollButtonRoot","styled","ButtonBase","name","overridesResolver","props","ownerState","root","orientation","flexShrink","opacity","disabled","variants","style","transform","inProps","ref","className","slots","slotProps","direction","other","isRtl","classes","composeClasses","useUtilityClasses","StartButtonIcon","StartScrollButtonIcon","KeyboardArrowLeft","EndButtonIcon","EndScrollButtonIcon","KeyboardArrowRight","startButtonIconProps","useSlotProps","elementType","externalSlotProps","startScrollButtonIcon","additionalProps","fontSize","endButtonIconProps","endScrollButtonIcon","component","clsx","role","tabIndex","children","getTabsUtilityClass","nextItem","list","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","wrappedOnce","nextFocus","nextFocusDisabled","getAttribute","hasAttribute","focus","TabsRoot","scrollButtons","scrollButtonsHideMobile","vertical","memoTheme","theme","minHeight","WebkitOverflowScrolling","display","flexDirection","breakpoints","down","TabsScroller","scroller","fixed","hideScrollbar","scrollableX","scrollableY","flex","whiteSpace","overflowX","scrollbarWidth","overflowY","FlexContainer","flexContainer","flexContainerVertical","centered","justifyContent","TabsIndicator","indicator","bottom","transition","transitions","create","indicatorColor","backgroundColor","vars","palette","primary","main","secondary","right","TabsScrollbarSize","onChange","scrollbarHeight","nodeRef","setMeasurements","current","offsetHeight","clientHeight","useEnhancedEffect","handleResize","debounce","prevHeight","containerWindow","ownerWindow","addEventListener","clear","removeEventListener","defaultIndicatorStyle","useTheme","ariaLabel","ariaLabelledBy","action","childrenProp","allowScrollButtonsMobile","ScrollButtonComponent","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant","visibleScrollbar","scrollable","scrollStart","start","end","clientSize","size","startScrollButtonIconProps","endScrollButtonIconProps","mounted","setMounted","indicatorStyle","setIndicatorStyle","displayStartScroll","setDisplayStartScroll","displayEndScroll","setDisplayEndScroll","updateScrollObserver","setUpdateScrollObserver","scrollerStyle","setScrollerStyle","valueToIndex","Map","tabsRef","tabListRef","getTabsMeta","tabsNode","tabsMeta","tabMeta","rect","getBoundingClientRect","clientWidth","scrollLeft","scrollTop","scrollWidth","left","length","tab","get","updateIndicatorState","useEventCallback","startIndicator","startValue","newIndicatorStyle","dStart","abs","dSize","scroll","scrollValue","animation","property","element","to","options","cb","ease","duration","from","cancelled","step","timestamp","Error","min","requestAnimationFrame","animate","standard","moveTabsScroll","delta","getScrollSize","containerSize","totalSize","Array","i","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollSelectedIntoView","nextScrollStart","updateScrollButtonState","resizeObserver","win","mutationObserver","ResizeObserver","forEach","child","observe","MutationObserver","records","record","removedNodes","unobserve","addedNodes","childList","disconnect","tabListChildren","IntersectionObserver","firstTab","lastTab","observerOptions","threshold","firstObserver","entries","isIntersecting","lastObserver","updateIndicator","updateScrollButtons","childIndex","map","childValue","undefined","set","selected","fullWidth","conditionalElements","scrollbarSizeListener","showScrollButtons","scrollButtonStart","onClick","scrollButtonEnd","getConditionalElements","as","onKeyDown","event","ownerDocument","activeElement","previousItemKey","nextItemKey","key","preventDefault","d"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1157.c0d4652e.chunk.js --- a/x/static/js/1157.c0d4652e.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1157],{75653:(t,e,i)=>{i.d(e,{A:()=>W});var a=i(7552),s=i(93878),n=i(85693),r=i(70799),o=i(33283),d=i(82081),u=i(24959),m=i(72861),x=i(69500);const h=(0,m.A)(),p=(0,u.A)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:i}=t;return[e.root,e[`maxWidth${(0,o.A)(String(i.maxWidth))}`],i.fixed&&e.fixed,i.disableGutters&&e.disableGutters]}}),l=t=>(0,d.A)({props:t,name:"MuiContainer",defaultTheme:h});var b=i(15622),c=i(51148),g=i(31049);const f=function(t={}){const{createStyledComponent:e=p,useThemeProps:i=l,componentName:d="MuiContainer"}=t,u=e((({theme:t,ownerState:e})=>({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",...!e.disableGutters&&{paddingLeft:t.spacing(2),paddingRight:t.spacing(2),[t.breakpoints.up("sm")]:{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}}})),(({theme:t,ownerState:e})=>e.fixed&&Object.keys(t.breakpoints.values).reduce(((e,i)=>{const a=i,s=t.breakpoints.values[a];return 0!==s&&(e[t.breakpoints.up(a)]={maxWidth:`${s}${t.breakpoints.unit}`}),e}),{})),(({theme:t,ownerState:e})=>({..."xs"===e.maxWidth&&{[t.breakpoints.up("xs")]:{maxWidth:Math.max(t.breakpoints.values.xs,444)}},...e.maxWidth&&"xs"!==e.maxWidth&&{[t.breakpoints.up(e.maxWidth)]:{maxWidth:`${t.breakpoints.values[e.maxWidth]}${t.breakpoints.unit}`}}}))),m=a.forwardRef((function(t,e){const a=i(t),{className:m,component:h="div",disableGutters:p=!1,fixed:l=!1,maxWidth:b="lg",classes:c,...g}=a,f={...a,component:h,disableGutters:p,fixed:l,maxWidth:b},W=((t,e)=>{const{classes:i,fixed:a,disableGutters:s,maxWidth:d}=t,u={root:["root",d&&`maxWidth${(0,o.A)(String(d))}`,a&&"fixed",s&&"disableGutters"]};return(0,r.A)(u,(t=>(0,n.Ay)(e,t)),i)})(f,d);return(0,x.jsx)(u,{as:h,ownerState:f,className:(0,s.A)(W.root,m),ref:e,...g})}));return m}({createStyledComponent:(0,c.Ay)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:i}=t;return[e.root,e[`maxWidth${(0,b.A)(String(i.maxWidth))}`],i.fixed&&e.fixed,i.disableGutters&&e.disableGutters]}}),useThemeProps:t=>(0,g.A)({props:t,name:"MuiContainer"})}),W=f},61157:(t,e,i)=>{i.r(e),i.d(e,{containerClasses:()=>o,default:()=>a.A,getContainerUtilityClass:()=>r});var a=i(75653),s=i(33761),n=i(85693);function r(t){return(0,n.Ay)("MuiContainer",t)}const o=(0,s.A)("MuiContainer",["root","disableGutters","fixed","maxWidthXs","maxWidthSm","maxWidthMd","maxWidthLg","maxWidthXl"])},24959:(t,e,i)=>{i.d(e,{A:()=>a});const a=(0,i(15543).Ay)()}}]); -//# sourceMappingURL=1157.c0d4652e.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1157.c0d4652e.chunk.js.map --- a/x/static/js/1157.c0d4652e.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1157.c0d4652e.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/system/Container/createContainer.js","../../../node_modules/@mui/material/Container/Container.js","../../../node_modules/@mui/material/Container/containerClasses.js","../../../node_modules/@mui/system/styled/styled.js"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '@mui/utils/capitalize';\nimport useThemePropsSystem from \"../useThemeProps/index.js\";\nimport systemStyled from \"../styled/index.js\";\nimport createTheme from \"../createTheme/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n});\nconst useThemePropsDefault = inProps => useThemePropsSystem({\n props: inProps,\n name: 'MuiContainer',\n defaultTheme\n});\nconst useUtilityClasses = (ownerState, componentName) => {\n const getContainerUtilityClass = slot => {\n return generateUtilityClass(componentName, slot);\n };\n const {\n classes,\n fixed,\n disableGutters,\n maxWidth\n } = ownerState;\n const slots = {\n root: ['root', maxWidth && `maxWidth${capitalize(String(maxWidth))}`, fixed && 'fixed', disableGutters && 'disableGutters']\n };\n return composeClasses(slots, getContainerUtilityClass, classes);\n};\nexport default function createContainer(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiContainer'\n } = options;\n const ContainerRoot = createStyledComponent(({\n theme,\n ownerState\n }) => ({\n width: '100%',\n marginLeft: 'auto',\n boxSizing: 'border-box',\n marginRight: 'auto',\n ...(!ownerState.disableGutters && {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n })\n }), ({\n theme,\n ownerState\n }) => ownerState.fixed && Object.keys(theme.breakpoints.values).reduce((acc, breakpointValueKey) => {\n const breakpoint = breakpointValueKey;\n const value = theme.breakpoints.values[breakpoint];\n if (value !== 0) {\n // @ts-ignore\n acc[theme.breakpoints.up(breakpoint)] = {\n maxWidth: `${value}${theme.breakpoints.unit}`\n };\n }\n return acc;\n }, {}), ({\n theme,\n ownerState\n }) => ({\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ...(ownerState.maxWidth === 'xs' && {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up('xs')]: {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n maxWidth: Math.max(theme.breakpoints.values.xs, 444)\n }\n }),\n ...(ownerState.maxWidth &&\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ownerState.maxWidth !== 'xs' && {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up(ownerState.maxWidth)]: {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`\n }\n })\n }));\n const Container = /*#__PURE__*/React.forwardRef(function Container(inProps, ref) {\n const props = useThemeProps(inProps);\n const {\n className,\n component = 'div',\n disableGutters = false,\n fixed = false,\n maxWidth = 'lg',\n classes: classesProp,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n disableGutters,\n fixed,\n maxWidth\n };\n\n // @ts-ignore module augmentation fails if custom breakpoints are used\n const classes = useUtilityClasses(ownerState, componentName);\n return (\n /*#__PURE__*/\n // @ts-ignore theme is injected by the styled util\n _jsx(ContainerRoot, {\n as: component\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref,\n ...other\n })\n );\n });\n process.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n component: PropTypes.elementType,\n disableGutters: PropTypes.bool,\n fixed: PropTypes.bool,\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Container;\n}","'use client';\n\nimport PropTypes from 'prop-types';\nimport { createContainer } from '@mui/system';\nimport capitalize from \"../utils/capitalize.js\";\nimport styled from \"../styles/styled.js\";\nimport useThemeProps from \"../styles/useThemeProps.js\";\nconst Container = createContainer({\n createStyledComponent: styled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n }),\n useThemeProps: inProps => useThemeProps({\n props: inProps,\n name: 'MuiContainer'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * Set the max-width to match the min-width of the current breakpoint.\n * This is useful if you'd prefer to design for a fixed set of sizes\n * instead of trying to accommodate a fully fluid viewport.\n * It's fluid by default.\n * @default false\n */\n fixed: PropTypes.bool,\n /**\n * Determine the max-width of the container.\n * The container width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'lg'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Container;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getContainerUtilityClass(slot) {\n return generateUtilityClass('MuiContainer', slot);\n}\nconst containerClasses = generateUtilityClasses('MuiContainer', ['root', 'disableGutters', 'fixed', 'maxWidthXs', 'maxWidthSm', 'maxWidthMd', 'maxWidthLg', 'maxWidthXl']);\nexport default containerClasses;","import createStyled from \"../createStyled/index.js\";\nconst styled = createStyled();\nexport default styled;"],"names":["defaultTheme","createTheme","defaultCreateStyledComponent","name","slot","overridesResolver","props","styles","ownerState","root","capitalize","String","maxWidth","fixed","disableGutters","useThemePropsDefault","inProps","useThemeProps","Container","options","createStyledComponent","componentName","ContainerRoot","theme","width","marginLeft","boxSizing","marginRight","paddingLeft","spacing","paddingRight","breakpoints","up","Object","keys","values","reduce","acc","breakpointValueKey","breakpoint","value","unit","Math","max","xs","ref","className","component","classes","classesProp","other","slots","composeClasses","generateUtilityClass","useUtilityClasses","as","clsx","createContainer","getContainerUtilityClass","generateUtilityClasses"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1189.f18c6e1f.chunk.js --- a/x/static/js/1189.f18c6e1f.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1189],{21189:(e,t,a)=>{a.r(t),a.d(t,{default:()=>m});var n=a(7552),c=a(943),r=a(36715),l=a(5401),o=a(75785),s=a(68446),i=a(90542);const p=(0,o.n9)()((e=>({note:{textAlign:"center",paddingTop:e.spacing(1),paddingBottom:e.spacing(1)},top:{zIndex:1e3}}))),m=(0,s.observer)((function({model:e}){const{classes:t}=p(),{hideNoTracksActive:a}=e;return n.createElement(c.A,{className:t.note},a?n.createElement("div",{style:{height:"48px"}}):n.createElement(n.Fragment,null,n.createElement(r.A,null,"No tracks active."),n.createElement(l.A,{variant:"contained",color:"primary",onClick:()=>e.activateTrackSelector(),className:t.top,startIcon:n.createElement(i.xU,null)},"Open track selector")))}))}}]); -//# sourceMappingURL=1189.f18c6e1f.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1189.f18c6e1f.chunk.js.map --- a/x/static/js/1189.f18c6e1f.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1189.f18c6e1f.chunk.js","mappings":"oOAWA,MAAMA,GAAYC,EAAAA,EAAAA,KAAAA,EAAaC,IAAS,CACtCC,KAAM,CACJC,UAAW,SACXC,WAAYH,EAAMI,QAAQ,GAC1BC,cAAeL,EAAMI,QAAQ,IAE/BE,IAAK,CACHC,OAAQ,SAiCZ,GA7B6BC,EAAAA,EAAAA,WAAS,UAAU,MAC9CC,IAIA,MAAM,QAAEC,GAAYZ,KACd,mBAAEa,GAAuBF,EAC/B,OACEG,EAAAA,cAACC,EAAAA,EAAK,CAACC,UAAWJ,EAAQT,MACtBU,EAcAC,EAAAA,cAAA,OAAKG,MAAO,CAAEC,OAAQ,UAbtBJ,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACK,EAAAA,EAAU,KAAC,qBACZL,EAAAA,cAACM,EAAAA,EAAM,CACLC,QAAQ,YACRC,MAAM,UACNC,QAASA,IAAMZ,EAAMa,wBACrBR,UAAWJ,EAAQJ,IACnBiB,UAAWX,EAAAA,cAACY,EAAAA,GAAiB,OAC9B,wBASX,G","sources":["../../../plugins/linear-genome-view/src/LinearGenomeView/components/NoTracksActiveButton.tsx"],"sourcesContent":["import React from 'react'\nimport { Button, Paper, Typography } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\n\n// icons\nimport { TrackSelector as TrackSelectorIcon } from '@jbrowse/core/ui/Icons'\n\n// locals\nimport { LinearGenomeViewModel } from '..'\n\nconst useStyles = makeStyles()(theme => ({\n note: {\n textAlign: 'center',\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n },\n top: {\n zIndex: 1000,\n },\n}))\n\nconst NoTracksActiveButton = observer(function ({\n model,\n}: {\n model: LinearGenomeViewModel\n}) {\n const { classes } = useStyles()\n const { hideNoTracksActive } = model\n return (\n \n {!hideNoTracksActive ? (\n <>\n No tracks active.\n model.activateTrackSelector()}\n className={classes.top}\n startIcon={}\n >\n Open track selector\n \n \n ) : (\n
\n )}\n \n )\n})\n\nexport default NoTracksActiveButton\n"],"names":["useStyles","makeStyles","theme","note","textAlign","paddingTop","spacing","paddingBottom","top","zIndex","observer","model","classes","hideNoTracksActive","React","Paper","className","style","height","Typography","Button","variant","color","onClick","activateTrackSelector","startIcon","TrackSelectorIcon"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/12.c0c7bdf9.chunk.js --- a/x/static/js/12.c0c7bdf9.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[12],{60012:(o,e,t)=>{t.r(e),t.d(e,{default:()=>z,getIconUtilityClass:()=>S,iconClasses:()=>h});var r=t(7552),n=t(93878),i=t(70799),s=t(15622),l=t(51148),a=t(60129),c=t(58520),p=t(4785),f=t(33761),m=t(85693);function S(o){return(0,m.Ay)("MuiIcon",o)}const h=(0,f.A)("MuiIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);var d=t(69500);const u=(0,l.Ay)("span",{name:"MuiIcon",slot:"Root",overridesResolver:(o,e)=>{const{ownerState:t}=o;return[e.root,"inherit"!==t.color&&e[`color${(0,s.A)(t.color)}`],e[`fontSize${(0,s.A)(t.fontSize)}`]]}})((0,a.A)((({theme:o})=>({userSelect:"none",width:"1em",height:"1em",overflow:"hidden",display:"inline-block",textAlign:"center",flexShrink:0,variants:[{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:o.typography.pxToRem(20)}},{props:{fontSize:"medium"},style:{fontSize:o.typography.pxToRem(24)}},{props:{fontSize:"large"},style:{fontSize:o.typography.pxToRem(36)}},{props:{color:"action"},style:{color:(o.vars||o).palette.action.active}},{props:{color:"disabled"},style:{color:(o.vars||o).palette.action.disabled}},{props:{color:"inherit"},style:{color:void 0}},...Object.entries(o.palette).filter((0,c.A)()).map((([e])=>({props:{color:e},style:{color:(o.vars||o).palette[e].main}})))]})))),y=r.forwardRef((function(o,e){const t=(0,p.b)({props:o,name:"MuiIcon"}),{baseClassName:r="material-icons",className:l,color:a="inherit",component:c="span",fontSize:f="medium",...m}=t,h={...t,baseClassName:r,color:a,component:c,fontSize:f},y=(o=>{const{color:e,fontSize:t,classes:r}=o,n={root:["root","inherit"!==e&&`color${(0,s.A)(e)}`,`fontSize${(0,s.A)(t)}`]};return(0,i.A)(n,S,r)})(h);return(0,d.jsx)(u,{as:c,className:(0,n.A)(r,"notranslate",y.root,l),ownerState:h,"aria-hidden":!0,ref:e,...m})}));y&&(y.muiName="Icon");const z=y}}]); -//# sourceMappingURL=12.c0c7bdf9.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/12.c0c7bdf9.chunk.js.map --- a/x/static/js/12.c0c7bdf9.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/12.c0c7bdf9.chunk.js","mappings":"iTAEO,SAASA,EAAoBC,GAClC,OAAO,EAAAC,EAAA,IAAqB,UAAWD,EACzC,CACA,MACA,GADoB,EAAAE,EAAA,GAAuB,UAAW,CAAC,OAAQ,eAAgB,iBAAkB,cAAe,aAAc,gBAAiB,kBAAmB,gBAAiB,iBAAkB,kB,eCQrM,MAWMC,GAAW,EAAAC,EAAA,IAAO,OAAQ,CAC9BC,KAAM,UACNL,KAAM,OACNM,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJC,GACEF,EACJ,MAAO,CAACC,EAAOE,KAA2B,YAArBD,EAAWE,OAAuBH,EAAO,SAAQ,EAAAI,EAAA,GAAWH,EAAWE,UAAWH,EAAO,YAAW,EAAAI,EAAA,GAAWH,EAAWI,aAAa,GAP/I,EASd,EAAAC,EAAA,IAAU,EACXC,YACI,CACJC,WAAY,OACZC,MAAO,MACPC,OAAQ,MAGRC,SAAU,SACVC,QAAS,eAETC,UAAW,SAEXC,WAAY,EACZC,SAAU,CAAC,CACThB,MAAO,CACLM,SAAU,WAEZW,MAAO,CACLX,SAAU,YAEX,CACDN,MAAO,CACLM,SAAU,SAEZW,MAAO,CACLX,SAAUE,EAAMU,WAAWC,QAAQ,MAEpC,CACDnB,MAAO,CACLM,SAAU,UAEZW,MAAO,CACLX,SAAUE,EAAMU,WAAWC,QAAQ,MAEpC,CACDnB,MAAO,CACLM,SAAU,SAEZW,MAAO,CACLX,SAAUE,EAAMU,WAAWC,QAAQ,MAEpC,CACDnB,MAAO,CACLI,MAAO,UAETa,MAAO,CACLb,OAAQI,EAAMY,MAAQZ,GAAOa,QAAQC,OAAOC,SAE7C,CACDvB,MAAO,CACLI,MAAO,YAETa,MAAO,CACLb,OAAQI,EAAMY,MAAQZ,GAAOa,QAAQC,OAAOE,WAE7C,CACDxB,MAAO,CACLI,MAAO,WAETa,MAAO,CACLb,WAAOqB,OAELC,OAAOC,QAAQnB,EAAMa,SAASO,QAAO,EAAAC,EAAA,MAAkCC,KAAI,EAAE1B,MAAW,CAC5FJ,MAAO,CACLI,SAEFa,MAAO,CACLb,OAAQI,EAAMY,MAAQZ,GAAOa,QAAQjB,GAAO2B,gBAI5CC,EAAoB,cAAiB,SAAcC,EAASC,GAChE,MAAMlC,GAAQ,OAAgB,CAC5BA,MAAOiC,EACPnC,KAAM,aAEF,cACJqC,EAAgB,iBAAgB,UAChCC,EAAS,MACThC,EAAQ,UACRiC,UAAWC,EAAY,OAAM,SAC7BhC,EAAW,YACRiC,GACDvC,EACEE,EAAa,IACdF,EACHmC,gBACA/B,QACAiC,UAAWC,EACXhC,YAEIkC,EAhHkBtC,KACxB,MAAM,MACJE,EAAK,SACLE,EAAQ,QACRkC,GACEtC,EACEuC,EAAQ,CACZtC,KAAM,CAAC,OAAkB,YAAVC,GAAuB,SAAQ,EAAAC,EAAA,GAAWD,KAAU,YAAW,EAAAC,EAAA,GAAWC,OAE3F,OAAO,EAAAoC,EAAA,GAAeD,EAAOjD,EAAqBgD,EAAQ,EAuG1CG,CAAkBzC,GAClC,OAAoB,SAAKN,EAAU,CACjCgD,GAAIN,EACJF,WAAW,EAAAS,EAAA,GAAKV,EAGhB,cAAeK,EAAQrC,KAAMiC,GAC7BlC,WAAYA,EACZ,eAAe,EACfgC,IAAKA,KACFK,GAEP,IA8CIP,IACFA,EAAKc,QAAU,QAEjB,S","sources":["../../../node_modules/@mui/material/Icon/iconClasses.js","../../../node_modules/@mui/material/Icon/Icon.js"],"sourcesContent":["import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getIconUtilityClass(slot) {\n return generateUtilityClass('MuiIcon', slot);\n}\nconst iconClasses = generateUtilityClasses('MuiIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default iconClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getIconUtilityClass } from \"./iconClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getIconUtilityClass, classes);\n};\nconst IconRoot = styled('span', {\n name: 'MuiIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n userSelect: 'none',\n width: '1em',\n height: '1em',\n // Chrome fix for https://bugs.chromium.org/p/chromium/issues/detail?id=820541\n // To remove at some point.\n overflow: 'hidden',\n display: 'inline-block',\n // allow overflow hidden to take action\n textAlign: 'center',\n // support non-square icon\n flexShrink: 0,\n variants: [{\n props: {\n fontSize: 'inherit'\n },\n style: {\n fontSize: 'inherit'\n }\n }, {\n props: {\n fontSize: 'small'\n },\n style: {\n fontSize: theme.typography.pxToRem(20)\n }\n }, {\n props: {\n fontSize: 'medium'\n },\n style: {\n fontSize: theme.typography.pxToRem(24)\n }\n }, {\n props: {\n fontSize: 'large'\n },\n style: {\n fontSize: theme.typography.pxToRem(36)\n }\n }, {\n props: {\n color: 'action'\n },\n style: {\n color: (theme.vars || theme).palette.action.active\n }\n }, {\n props: {\n color: 'disabled'\n },\n style: {\n color: (theme.vars || theme).palette.action.disabled\n }\n }, {\n props: {\n color: 'inherit'\n },\n style: {\n color: undefined\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n color: (theme.vars || theme).palette[color].main\n }\n }))]\n})));\nconst Icon = /*#__PURE__*/React.forwardRef(function Icon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiIcon'\n });\n const {\n baseClassName = 'material-icons',\n className,\n color = 'inherit',\n component: Component = 'span',\n fontSize = 'medium',\n ...other\n } = props;\n const ownerState = {\n ...props,\n baseClassName,\n color,\n component: Component,\n fontSize\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(IconRoot, {\n as: Component,\n className: clsx(baseClassName,\n // Prevent the translation of the text content.\n // The font relies on the exact text content to render the icon.\n 'notranslate', classes.root, className),\n ownerState: ownerState,\n \"aria-hidden\": true,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Icon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The base class applied to the icon. Defaults to 'material-icons', but can be changed to any\n * other base class that suits the icon font you're using (for example material-icons-rounded, fas, etc).\n * @default 'material-icons'\n */\n baseClassName: PropTypes.string,\n /**\n * The name of the icon font ligature.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nif (Icon) {\n Icon.muiName = 'Icon';\n}\nexport default Icon;"],"names":["getIconUtilityClass","slot","generateUtilityClass","generateUtilityClasses","IconRoot","styled","name","overridesResolver","props","styles","ownerState","root","color","capitalize","fontSize","memoTheme","theme","userSelect","width","height","overflow","display","textAlign","flexShrink","variants","style","typography","pxToRem","vars","palette","action","active","disabled","undefined","Object","entries","filter","createSimplePaletteValueFilter","map","main","Icon","inProps","ref","baseClassName","className","component","Component","other","classes","slots","composeClasses","useUtilityClasses","as","clsx","muiName"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/120.a447052d.chunk.js --- a/x/static/js/120.a447052d.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[120],{70120:(e,s,l)=>{l.r(s),l.d(s,{default:()=>r.A,formHelperTextClasses:()=>a.A,getFormHelperTextUtilityClasses:()=>a.h});var r=l(25467),a=l(18735)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1260.ee4ecbf4.chunk.js --- a/x/static/js/1260.ee4ecbf4.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1260],{54617:(e,t,o)=>{o.d(t,{A:()=>S});var n=o(7552),r=o(93878),s=o(78745),a=o(85693),c=o(70799),i=o(24959),l=o(82081),u=o(8455),p=o(72861),d=o(43059),m=o(34901),k=o(69500);const f=(0,p.A)(),b=(0,i.A)("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root});function h(e){return(0,l.A)({props:e,name:"MuiStack",defaultTheme:f})}function v(e,t){const o=n.Children.toArray(e).filter(Boolean);return o.reduce(((e,r,s)=>(e.push(r),s{let o={display:"flex",flexDirection:"column",...(0,d.NI)({theme:t},(0,d.kW)({values:e.direction,breakpoints:t.breakpoints.values}),(e=>({flexDirection:e})))};if(e.spacing){const n=(0,m.LX)(t),r=Object.keys(t.breakpoints.values).reduce(((t,o)=>(("object"==typeof e.spacing&&null!=e.spacing[o]||"object"==typeof e.direction&&null!=e.direction[o])&&(t[o]=!0),t)),{}),a=(0,d.kW)({values:e.direction,base:r}),c=(0,d.kW)({values:e.spacing,base:r});"object"==typeof a&&Object.keys(a).forEach(((e,t,o)=>{if(!a[e]){const n=t>0?a[o[t-1]]:"column";a[e]=n}}));const i=(t,o)=>{return e.useFlexGap?{gap:(0,m._W)(n,t)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${r=o?a[o]:e.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[r]}`]:(0,m._W)(n,t)}};var r};o=(0,s.A)(o,(0,d.NI)({theme:t},c,i))}return o=(0,d.iZ)(t.breakpoints,o),o};var A=o(51148),g=o(31049);const w=function(e={}){const{createStyledComponent:t=b,useThemeProps:o=h,componentName:s="MuiStack"}=e,i=t(y),l=n.forwardRef((function(e,t){const n=o(e),l=(0,u.A)(n),{component:p="div",direction:d="column",spacing:m=0,divider:f,children:b,className:h,useFlexGap:y=!1,...A}=l,g={direction:d,spacing:m,useFlexGap:y},w=(0,c.A)({root:["root"]},(e=>(0,a.Ay)(s,e)),{});return(0,k.jsx)(i,{as:p,ownerState:g,ref:t,className:(0,r.A)(w.root,h),...A,children:f?v(b,f):b})}));return l}({createStyledComponent:(0,A.Ay)("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root}),useThemeProps:e=>(0,g.A)({props:e,name:"MuiStack"})}),S=w},11260:(e,t,o)=>{o.r(t),o.d(t,{default:()=>n.A,stackClasses:()=>r});var n=o(54617);const r=(0,o(33761).A)("MuiStack",["root"])},24959:(e,t,o)=>{o.d(t,{A:()=>n});const n=(0,o(15543).Ay)()}}]); -//# sourceMappingURL=1260.ee4ecbf4.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1260.ee4ecbf4.chunk.js.map --- a/x/static/js/1260.ee4ecbf4.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1260.ee4ecbf4.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/system/Stack/createStack.js","../../../node_modules/@mui/material/Stack/Stack.js","../../../node_modules/@mui/material/Stack/stackClasses.js","../../../node_modules/@mui/system/styled/styled.js"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport deepmerge from '@mui/utils/deepmerge';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport composeClasses from '@mui/utils/composeClasses';\nimport systemStyled from \"../styled/index.js\";\nimport useThemePropsSystem from \"../useThemeProps/index.js\";\nimport { extendSxProp } from \"../styleFunctionSx/index.js\";\nimport createTheme from \"../createTheme/index.js\";\nimport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues } from \"../breakpoints/index.js\";\nimport { createUnarySpacing, getValue } from \"../spacing/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\n// widening Theme to any so that the consumer can own the theme structure.\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n});\nfunction useThemePropsDefault(props) {\n return useThemePropsSystem({\n props,\n name: 'MuiStack',\n defaultTheme\n });\n}\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n if (index < childrenArray.length - 1) {\n output.push(/*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n return output;\n }, []);\n}\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = {\n display: 'flex',\n flexDirection: 'column',\n ...handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n }))\n };\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n const styleFromPropValue = (propValue, breakpoint) => {\n if (ownerState.useFlexGap) {\n return {\n gap: getValue(transformer, propValue)\n };\n }\n return {\n // The useFlexGap={false} implement relies on each child to give up control of the margin.\n // We need to reset the margin to avoid double spacing.\n '& > :not(style):not(style)': {\n margin: 0\n },\n '& > :not(style) ~ :not(style)': {\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nexport default function createStack(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiStack'\n } = options;\n const useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {});\n };\n const StackRoot = createStyledComponent(style);\n const Stack = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps(inProps);\n const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children,\n className,\n useFlexGap = false,\n ...other\n } = props;\n const ownerState = {\n direction,\n spacing,\n useFlexGap\n };\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(StackRoot, {\n as: component,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className),\n ...other,\n children: divider ? joinChildren(children, divider) : children\n });\n });\n process.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n divider: PropTypes.node,\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Stack;\n}","'use client';\n\nimport PropTypes from 'prop-types';\nimport { createStack } from '@mui/system';\nimport styled from \"../styles/styled.js\";\nimport useThemeProps from \"../styles/useThemeProps.js\";\nconst Stack = createStack({\n createStyledComponent: styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n }),\n useThemeProps: inProps => useThemeProps({\n props: inProps,\n name: 'MuiStack'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the [theme's default props](https://mui.com/material-ui/customization/theme-components/#default-props) configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getStackUtilityClass(slot) {\n return generateUtilityClass('MuiStack', slot);\n}\nconst stackClasses = generateUtilityClasses('MuiStack', ['root']);\nexport default stackClasses;","import createStyled from \"../createStyled/index.js\";\nconst styled = createStyled();\nexport default styled;"],"names":["defaultTheme","createTheme","defaultCreateStyledComponent","name","slot","overridesResolver","props","styles","root","useThemePropsDefault","useThemeProps","joinChildren","children","separator","childrenArray","toArray","filter","Boolean","reduce","output","child","index","push","length","key","style","ownerState","theme","display","flexDirection","values","direction","breakpoints","propValue","spacing","transformer","base","Object","keys","acc","breakpoint","directionValues","spacingValues","forEach","previousDirectionValue","styleFromPropValue","useFlexGap","gap","margin","row","column","deepmerge","Stack","options","createStyledComponent","componentName","StackRoot","inProps","ref","themeProps","extendSxProp","component","divider","className","other","classes","composeClasses","generateUtilityClass","as","clsx","createStack"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1266.cd6d9354.chunk.js --- a/x/static/js/1266.cd6d9354.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1266],{91392:(e,t,r)=>{r.d(t,{KM:()=>f,en:()=>p,kb:()=>x,se:()=>g});var n=r(7552),a=r(75785),l=r(68446),o=r(36422),i=r(99546),s=r(95095),c=r(48231),m=r(90257);function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t({vtext:{gridColumn:"1/2",gridRow:"1/2",pointerEvents:"none",userSelect:"none"},htext:{gridColumn:"2/2",gridRow:"2/2",pointerEvents:"none",userSelect:"none"}}))),f=(0,l.observer)((function({model:e}){const{viewWidth:t,borderY:r}=e,{classes:a}=d();return n.createElement("svg",{width:t,height:r,className:a.htext},n.createElement(g,{model:e}))})),g=(0,l.observer)((function({model:e}){const{viewWidth:t,borderX:r,borderY:a,hview:l,htextRotation:d,hticks:f}=e,{offsetPx:g,width:p,dynamicBlocks:x,bpPerPx:y}=l,u=x.contentBlocks,w=(0,m.rQ)(u,t,g),k=(0,c.A)(),v={...(0,o.getSnapshot)(l),width:p,staticBlocks:l.staticBlocks},P=f.map((e=>[e,(0,s.eB)({refName:e.refName,coord:e.base,self:v})?.offsetPx])).filter((e=>void 0!==e[1])).map((e=>[e[0],e[1]-g]));return n.createElement(n.Fragment,null,u.filter((e=>!w.has(e.key))).map((e=>{const t=e.offsetPx,r=Math.floor(t-l.offsetPx);return n.createElement("text",h({transform:`rotate(${d},${r},0)`,key:JSON.stringify(e),x:r,y:1,fontSize:11,dominantBaseline:"hanging",textAnchor:"end"},(0,i.getFillProps)(k.palette.text.primary)),e.refName)})),P.map((([e,t])=>t>0&&t"major"===e[0].type)).map((([e,t])=>t>10&&t[e,(0,s.eB)({refName:e.refName,coord:e.base,self:v})?.offsetPx])).filter((e=>void 0!==e[1])).map((e=>[e[0],e[1]-g]));return n.createElement(n.Fragment,null,u.filter((e=>!w.has(e.key))).map((e=>{const a=e.offsetPx,l=r,o=Math.floor(t-a+g);return n.createElement("text",h({transform:`rotate(${d},${l},${a})`,key:JSON.stringify(e),x:l,y:o,fontSize:11,textAnchor:"end"},(0,i.getFillProps)(k.palette.text.primary)),e.refName)})),P.map((([e,a])=>a>0?n.createElement("line",h({key:`line-${JSON.stringify(e)}`,y1:t-a,y2:t-a,x1:r,x2:r-("major"===e.type?6:4),strokeWidth:1},(0,i.getStrokeProps)(k.palette.grey[400]))):null)),P.filter((e=>"major"===e[0].type)).map((([e,a])=>a>10&&a{r.d(t,{A:()=>c,z:()=>s});var n=r(7552),a=r(68446),l=r(48231),o=r(99546);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const t=e.offsetPx-s.offsetPx,r=Math.floor(t)!==Math.floor(P);return r&&(P=t),r?n.createElement("line",i({key:JSON.stringify(e),x1:t,y1:0,x2:t,y2:a},(0,o.getStrokeProps)(y))):null})),h.map((e=>{const t=a-(e.offsetPx-c.offsetPx),l=Math.floor(t)!==Math.floor(b);return l&&(b=t),l?n.createElement("line",i({key:JSON.stringify(e),x1:0,y1:t,x2:r,y2:t},(0,o.getStrokeProps)(y))):null})),n.createElement("line",i({x1:d,y1:0,x2:d,y2:a},(0,o.getStrokeProps)(y))),n.createElement("line",i({x1:0,y1:a-f,x2:r,y2:a-f},(0,o.getStrokeProps)(y)))),t)}));function c({model:e,children:t}){const{viewWidth:r,viewHeight:a}=e;return n.createElement("svg",{width:r,height:a,style:{background:"rgba(0,0,0,0.12)"}},n.createElement(s,{model:e},t))}},11266:(e,t,r)=>{r.d(t,{renderToSvg:()=>f});var n=r(7552),a=r(42489),l=r(99546),o=r(20139),i=r(49823),s=r(36422),c=r(86495),m=r(91392),h=r(48231);function d({width:e,height:t}){const r=(0,h.A)();return n.createElement("rect",{x:0,y:0,width:e,height:t,fill:(0,l.stripAlpha)(r.palette.background.default)})}async function f(e,t){await(0,a.when)((()=>e.initialized));const{themeName:r="default",Wrapper:h=({children:e})=>e}=t,{createRootFn:f}=(0,s.getRoot)(e),g=(0,l.getSession)(e),p=g.allThemes?.()[r],{width:x,borderX:y,viewWidth:u,viewHeight:w,tracks:k,height:v}=e,P=await Promise.all(k.map((async e=>{const r=e.displays[0];return await(0,a.when)((()=>void 0===r.ready||r.ready)),{track:e,result:await r.renderSvg({...t,theme:p})}}))),b=x+100;return(0,l.renderToStaticMarkup)(n.createElement(o.A,{theme:(0,i.createJBrowseTheme)(p)},n.createElement(h,null,n.createElement("svg",{width:x,height:v,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:[0,0,b,v].toString()},n.createElement(d,{width:b,height:v}),n.createElement(m.kb,{model:e}),n.createElement("g",{transform:`translate(${y} 0)`},n.createElement(c.z,{model:e}),n.createElement("defs",null,n.createElement("clipPath",{id:"clip-ruler"},n.createElement("rect",{x:0,y:0,width:u,height:w}))),n.createElement("g",{clipPath:"url(#clip-ruler)"},P.map((({result:e},t)=>n.createElement("g",{key:t},e))))),n.createElement("g",{transform:`translate(${y} ${w})`},n.createElement(m.se,{model:e}))))),f)}}}]); -//# sourceMappingURL=1266.cd6d9354.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1266.cd6d9354.chunk.js.map --- a/x/static/js/1266.cd6d9354.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1266.cd6d9354.chunk.js","mappings":"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","sources":["../../../plugins/dotplot-view/src/DotplotView/components/Axes.tsx","../../../plugins/dotplot-view/src/DotplotView/components/Grid.tsx","../../../plugins/dotplot-view/src/DotplotView/svgcomponents/SVGBackground.tsx","../../../plugins/dotplot-view/src/DotplotView/svgcomponents/SVGDotplotView.tsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { getSnapshot } from 'mobx-state-tree'\nimport {\n getFillProps,\n getStrokeProps,\n getTickDisplayStr,\n} from '@jbrowse/core/util'\nimport { bpToPx } from '@jbrowse/core/util/Base1DUtils'\nimport { useTheme } from '@mui/material'\n\n// locals\nimport { getBlockLabelKeysToHide } from './util'\nimport { DotplotViewModel } from '../model'\n\nconst useStyles = makeStyles()(() => ({\n vtext: {\n gridColumn: '1/2',\n gridRow: '1/2',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n htext: {\n gridColumn: '2/2',\n gridRow: '2/2',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n}))\nexport const HorizontalAxis = observer(function ({\n model,\n}: {\n model: DotplotViewModel\n}) {\n const { viewWidth, borderY } = model\n const { classes } = useStyles()\n return (\n \n \n \n )\n})\n\nexport const HorizontalAxisRaw = observer(function ({\n model,\n}: {\n model: DotplotViewModel\n}) {\n const { viewWidth, borderX, borderY, hview, htextRotation, hticks } = model\n const { offsetPx, width, dynamicBlocks, bpPerPx } = hview\n const dblocks = dynamicBlocks.contentBlocks\n const hide = getBlockLabelKeysToHide(dblocks, viewWidth, offsetPx)\n const theme = useTheme()\n const hviewSnap = {\n ...getSnapshot(hview),\n width,\n staticBlocks: hview.staticBlocks,\n }\n\n const ticks = hticks\n .map(\n tick =>\n [\n tick,\n bpToPx({\n refName: tick.refName,\n coord: tick.base,\n self: hviewSnap,\n })?.offsetPx,\n ] as const,\n )\n .filter(f => f[1] !== undefined)\n .map(f => [f[0], f[1]! - offsetPx] as const)\n\n return (\n <>\n {dblocks\n .filter(region => !hide.has(region.key))\n .map(region => {\n const x = region.offsetPx\n const y = 0\n const xoff = Math.floor(x - hview.offsetPx)\n\n return (\n \n {region.refName}\n \n )\n })}\n {ticks.map(([tick, x]) =>\n x > 0 && x < width ? (\n \n ) : null,\n )}\n {ticks\n .filter(t => t[0].type === 'major')\n .map(([tick, x]) =>\n x > 10 && x < width ? (\n \n {getTickDisplayStr(tick.base + 1, bpPerPx)}\n \n ) : null,\n )}\n \n {hview.assemblyNames.join(',')}\n \n \n )\n})\nexport const VerticalAxis = observer(function ({\n model,\n}: {\n model: DotplotViewModel\n}) {\n const { borderX, viewHeight } = model\n const { classes } = useStyles()\n return (\n \n \n \n )\n})\n\nexport const VerticalAxisRaw = observer(function ({\n model,\n}: {\n model: DotplotViewModel\n}) {\n const { viewHeight, borderX, borderY, vview, vtextRotation, vticks } = model\n const { offsetPx, width, dynamicBlocks, bpPerPx } = vview\n const dblocks = dynamicBlocks.contentBlocks\n const hide = getBlockLabelKeysToHide(dblocks, viewHeight, offsetPx)\n const theme = useTheme()\n const vviewSnap = {\n ...getSnapshot(vview),\n width,\n staticBlocks: vview.staticBlocks,\n }\n const ticks = vticks\n .map(\n tick =>\n [\n tick,\n bpToPx({\n refName: tick.refName,\n coord: tick.base,\n self: vviewSnap,\n })?.offsetPx,\n ] as const,\n )\n .filter(f => f[1] !== undefined)\n .map(f => [f[0], f[1]! - offsetPx] as const)\n\n return (\n <>\n {dblocks\n .filter(region => !hide.has(region.key))\n .map(region => {\n const y = region.offsetPx\n const x = borderX\n const yoff = Math.floor(viewHeight - y + offsetPx)\n\n return (\n \n {region.refName}\n \n )\n })}\n {ticks.map(([tick, y]) =>\n y > 0 ? (\n \n ) : null,\n )}\n {ticks\n .filter(t => t[0].type === 'major')\n .map(([tick, y]) =>\n y > 10 && y < viewHeight ? (\n \n {getTickDisplayStr(tick.base + 1, bpPerPx)}\n \n ) : null,\n )}\n \n {vview.assemblyNames.join(',')}\n \n \n )\n})\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { useTheme } from '@mui/material'\n\n// locals\nimport { DotplotViewModel } from '../model'\nimport { getFillProps, getStrokeProps } from '@jbrowse/core/util'\n\nexport const GridRaw = observer(function ({\n model,\n children,\n}: {\n model: DotplotViewModel\n children?: React.ReactNode\n}) {\n const { viewWidth, viewHeight, hview, vview } = model\n const hblocks = hview.dynamicBlocks.contentBlocks\n const vblocks = vview.dynamicBlocks.contentBlocks\n if (!hblocks.length || !vblocks.length) {\n return null\n }\n const htop = hview.displayedRegionsTotalPx - hview.offsetPx\n const vtop = vview.displayedRegionsTotalPx - vview.offsetPx\n const hbottom = hblocks[0]!.offsetPx - hview.offsetPx\n const vbottom = vblocks[0]!.offsetPx - vview.offsetPx\n const theme = useTheme()\n const stroke = theme.palette.divider\n\n // Uses math.max/min avoid making very large SVG rect offscreen element,\n // which can sometimes fail to draw\n const rx = Math.max(hbottom, 0)\n const ry = Math.max(viewHeight - vtop, 0)\n const w = Math.min(htop - hbottom, viewWidth)\n const h = Math.min(viewHeight - vbottom - ry, viewHeight)\n\n let lastx = Number.POSITIVE_INFINITY\n let lasty = Number.POSITIVE_INFINITY\n return (\n <>\n \n \n {hblocks.map(region => {\n const x = region.offsetPx - hview.offsetPx\n const render = Math.floor(x) !== Math.floor(lastx)\n if (render) {\n lastx = x\n }\n return render ? (\n \n ) : null\n })}\n {vblocks.map(region => {\n const y = viewHeight - (region.offsetPx - vview.offsetPx)\n const render = Math.floor(y) !== Math.floor(lasty)\n if (render) {\n lasty = y\n }\n return render ? (\n \n ) : null\n })}\n \n \n \n {children}\n \n )\n})\n\nexport default function Grid({\n model,\n children,\n}: {\n model: DotplotViewModel\n children?: React.ReactNode\n}) {\n const { viewWidth, viewHeight } = model\n return (\n \n {children}\n \n )\n}\n","import React from 'react'\nimport { useTheme } from '@mui/material'\nimport { stripAlpha } from '@jbrowse/core/util'\n\nexport default function SVGBackground({\n width,\n height,\n}: {\n width: number\n height: number\n}) {\n const theme = useTheme()\n return (\n \n )\n}\n","import React from 'react'\nimport { when } from 'mobx'\nimport { getSession, renderToStaticMarkup } from '@jbrowse/core/util'\nimport { ThemeProvider } from '@mui/material'\nimport { createJBrowseTheme } from '@jbrowse/core/ui'\nimport { getRoot } from 'mobx-state-tree'\n\n// locals\nimport { DotplotViewModel, ExportSvgOptions } from '../model'\nimport { GridRaw } from '../components/Grid'\nimport { HorizontalAxisRaw, VerticalAxisRaw } from '../components/Axes'\nimport SVGBackground from './SVGBackground'\n\n// render LGV to SVG\nexport async function renderToSvg(\n model: DotplotViewModel,\n opts: ExportSvgOptions,\n) {\n await when(() => model.initialized)\n const { themeName = 'default', Wrapper = ({ children }) => children } = opts\n\n const { createRootFn } = getRoot(model)\n const session = getSession(model)\n const theme = session.allThemes?.()[themeName]\n const { width, borderX, viewWidth, viewHeight, tracks, height } = model\n const shift = 50\n const displayResults = await Promise.all(\n tracks.map(async track => {\n const display = track.displays[0]\n await when(() => (display.ready !== undefined ? display.ready : true))\n return { track, result: await display.renderSvg({ ...opts, theme }) }\n }),\n )\n const w = width + shift * 2\n\n // the xlink namespace is used for rendering tag\n return renderToStaticMarkup(\n \n \n \n \n \n \n \n \n \n \n \n \n \n {displayResults.map(({ result }, i) => (\n /* biome-ignore lint/suspicious/noArrayIndexKey: */\n {result}\n ))}\n \n \n \n \n \n \n \n ,\n createRootFn,\n )\n}\n"],"names":["useStyles","makeStyles","vtext","gridColumn","gridRow","pointerEvents","userSelect","htext","HorizontalAxis","observer","model","viewWidth","borderY","classes","React","width","height","className","HorizontalAxisRaw","borderX","hview","htextRotation","hticks","offsetPx","dynamicBlocks","bpPerPx","dblocks","contentBlocks","hide","getBlockLabelKeysToHide","theme","useTheme","hviewSnap","getSnapshot","staticBlocks","ticks","map","tick","bpToPx","refName","coord","base","self","filter","f","undefined","region","has","key","x","xoff","Math","floor","_extends","transform","JSON","stringify","y","fontSize","dominantBaseline","textAnchor","getFillProps","palette","text","primary","x1","x2","y1","y2","type","strokeWidth","t","getTickDisplayStr","assemblyNames","join","VerticalAxis","viewHeight","VerticalAxisRaw","vview","vtextRotation","vticks","vviewSnap","yoff","getStrokeProps","grey","GridRaw","children","hblocks","vblocks","length","htop","displayedRegionsTotalPx","vtop","hbottom","vbottom","stroke","divider","rx","max","ry","w","min","h","lastx","Number","POSITIVE_INFINITY","lasty","background","default","render","Grid","style","SVGBackground","fill","stripAlpha","async","renderToSvg","opts","when","initialized","themeName","Wrapper","createRootFn","getRoot","session","getSession","allThemes","tracks","displayResults","Promise","all","display","track","displays","ready","result","renderSvg","shift","renderToStaticMarkup","ThemeProvider","createJBrowseTheme","xmlns","xmlnsXlink","viewBox","toString","id","clipPath","i"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1281.1d836fc4.chunk.js --- a/x/static/js/1281.1d836fc4.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1281],{61281:(e,t,a)=>{a.r(t),a.d(t,{default:()=>k});var n=a(7552),r=a(29499),c=a(36715),s=a(1343),l=a(83867),o=a(33371),h=a(32808),i=a(58507),u=a(5401),d=a(49823),m=a(36422),g=a(75785),p=a(68446),A=a(99546);const b=(0,g.n9)()({dialogContent:{width:"40em"}}),k=(0,p.observer)((function({model:e,handleClose:t}){const{classes:a}=b(),[g,p]=(0,n.useState)(""),[k,C]=(0,n.useState)(!0),[E,S]=(0,n.useState)(!0),[w,y]=(0,n.useState)(!0);let v;try{new RegExp(g)}catch(e){v=e}return n.createElement(d.Dialog,{maxWidth:"xl",open:!0,onClose:t,title:"Sequence search"},n.createElement(r.A,{className:a.dialogContent},n.createElement(c.A,null,"Supply a sequence to search for. A track will be created with the resulting matches once submitted. You can also supply regex style expressions e.g. AACT(C|T)."),n.createElement(s.A,{value:g,onChange:e=>{p(e.target.value)},helperText:"Sequence search pattern"}),n.createElement(l.A,null,n.createElement(o.A,{control:n.createElement(h.A,{checked:k,onChange:e=>{C(e.target.checked)}}),label:"Search forward strand"}),n.createElement(o.A,{control:n.createElement(h.A,{checked:E,onChange:e=>{S(e.target.checked)}}),label:"Search reverse strand"}),n.createElement(o.A,{control:n.createElement(h.A,{checked:w,onChange:e=>{y(e.target.checked)}}),label:"Case insensitive"})),v?n.createElement(c.A,{color:"error"},`${v}`):null),n.createElement(i.A,null,n.createElement(u.A,{onClick:()=>{if(g){const t="sequence_search_"+ +Date.now(),a=(0,A.getSession)(e),{assemblyManager:n}=a,r=e.assemblyNames[0];(0,A.isSessionWithAddTracks)(a)&&(a.addTrackConf({trackId:t,name:`Sequence search ${g}`,assemblyNames:[r],type:"FeatureTrack",adapter:{type:"SequenceSearchAdapter",search:g,searchForward:k,searchReverse:E,caseInsensitive:w,sequenceAdapter:(0,m.getSnapshot)(n.get(r)?.configuration.sequence.adapter)}}),e.showTrack(t))}t()},variant:"contained",color:"primary"},"Submit"),n.createElement(u.A,{onClick:()=>{t()},variant:"contained",color:"secondary"},"Close")))}))}}]); -//# sourceMappingURL=1281.1d836fc4.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1281.1d836fc4.chunk.js.map --- a/x/static/js/1281.1d836fc4.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1281.1d836fc4.chunk.js","mappings":"kTAiBA,MAAMA,GAAYC,EAAAA,EAAAA,KAAAA,CAAa,CAC7BC,cAAe,CACbC,MAAO,UAmIX,GA/H6BC,EAAAA,EAAAA,WAAS,UAAU,MAC9CC,EAAK,YACLC,IAQA,MAAM,QAAEC,GAAYP,KACbQ,EAAOC,IAAYC,EAAAA,EAAAA,UAAS,KAC5BC,EAAeC,IAAoBF,EAAAA,EAAAA,WAAS,IAC5CG,EAAeC,IAAoBJ,EAAAA,EAAAA,WAAS,IAC5CK,EAAiBC,IAAsBN,EAAAA,EAAAA,WAAS,GAEvD,IAAIO,EAEJ,IACE,IAAIC,OAAOV,EACb,CAAE,MAAOW,GACPF,EAAQE,CACV,CAEA,OACEC,EAAAA,cAACC,EAAAA,OAAM,CAACC,SAAS,KAAKC,MAAI,EAACC,QAASlB,EAAamB,MAAM,mBACrDL,EAAAA,cAACM,EAAAA,EAAa,CAACC,UAAWpB,EAAQL,eAChCkB,EAAAA,cAACQ,EAAAA,EAAU,KAAC,mKAKZR,EAAAA,cAACS,EAAAA,EAAS,CACRrB,MAAOA,EACPsB,SAAUX,IACRV,EAASU,EAAEY,OAAOvB,MAAM,EAE1BwB,WAAW,4BAEbZ,EAAAA,cAACa,EAAAA,EAAS,KACRb,EAAAA,cAACc,EAAAA,EAAgB,CACfC,QACEf,EAAAA,cAACgB,EAAAA,EAAQ,CACPC,QAAS1B,EACTmB,SAAUQ,IACR1B,EAAiB0B,EAAMP,OAAOM,QAAQ,IAI5CE,MAAM,0BAERnB,EAAAA,cAACc,EAAAA,EAAgB,CACfC,QACEf,EAAAA,cAACgB,EAAAA,EAAQ,CACPC,QAASxB,EACTiB,SAAUQ,IACRxB,EAAiBwB,EAAMP,OAAOM,QAAQ,IAI5CE,MAAM,0BAERnB,EAAAA,cAACc,EAAAA,EAAgB,CACfC,QACEf,EAAAA,cAACgB,EAAAA,EAAQ,CACPC,QAAStB,EACTe,SAAUQ,IACRtB,EAAmBsB,EAAMP,OAAOM,QAAQ,IAI9CE,MAAM,sBAGTtB,EAAQG,EAAAA,cAACQ,EAAAA,EAAU,CAACY,MAAM,SAAS,GAAGvB,KAAwB,MAEjEG,EAAAA,cAACqB,EAAAA,EAAa,KACZrB,EAAAA,cAACsB,EAAAA,EAAM,CACLC,QAASA,KACP,GAAInC,EAAO,CACT,MAAMoC,EAAU,qBAAoBC,KAAKC,MACnCC,GAAUC,EAAAA,EAAAA,YAAW3C,IACrB,gBAAE4C,GAAoBF,EACtBG,EAAe7C,EAAM8C,cAAc,IACrCC,EAAAA,EAAAA,wBAAuBL,KACzBA,EAAQM,aAAa,CACnBT,UACAU,KAAM,mBAAmB9C,IACzB2C,cAAe,CAACD,GAChBK,KAAM,eACNC,QAAS,CACPD,KAAM,wBACNE,OAAQjD,EACRG,gBACAE,gBACAE,kBACA2C,iBAAiBC,EAAAA,EAAAA,aACfV,EAAgBW,IAAIV,IAAeW,cAAcC,SAC9CN,YAITnD,EAAM0D,UAAUnB,GAEpB,CACAtC,GAAa,EAEf0D,QAAQ,YACRxB,MAAM,WACP,UAIDpB,EAAAA,cAACsB,EAAAA,EAAM,CACLC,QAASA,KACPrC,GAAa,EAEf0D,QAAQ,YACRxB,MAAM,aACP,UAMT,G","sources":["../../../plugins/linear-genome-view/src/LinearGenomeView/components/SequenceSearchDialog.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport {\n Button,\n Checkbox,\n DialogActions,\n DialogContent,\n FormGroup,\n FormControlLabel,\n TextField,\n Typography,\n} from '@mui/material'\nimport { Dialog } from '@jbrowse/core/ui'\nimport { getSnapshot } from 'mobx-state-tree'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { getSession, isSessionWithAddTracks } from '@jbrowse/core/util'\n\nconst useStyles = makeStyles()({\n dialogContent: {\n width: '40em',\n },\n})\n\nconst SequenceSearchDialog = observer(function ({\n model,\n handleClose,\n}: {\n model: {\n assemblyNames: string[]\n showTrack: (trackId: string) => void\n }\n handleClose: () => void\n}) {\n const { classes } = useStyles()\n const [value, setValue] = useState('')\n const [searchForward, setSearchForward] = useState(true)\n const [searchReverse, setSearchReverse] = useState(true)\n const [caseInsensitive, setCaseInsensitive] = useState(true)\n\n let error: unknown\n\n try {\n new RegExp(value)\n } catch (e) {\n error = e\n }\n\n return (\n \n \n \n Supply a sequence to search for. A track will be created with the\n resulting matches once submitted. You can also supply regex style\n expressions e.g. AACT(C|T).\n \n {\n setValue(e.target.value)\n }}\n helperText=\"Sequence search pattern\"\n />\n \n {\n setSearchForward(event.target.checked)\n }}\n />\n }\n label=\"Search forward strand\"\n />\n {\n setSearchReverse(event.target.checked)\n }}\n />\n }\n label=\"Search reverse strand\"\n />\n {\n setCaseInsensitive(event.target.checked)\n }}\n />\n }\n label=\"Case insensitive\"\n />\n \n {error ? {`${error}`} : null}\n \n \n {\n if (value) {\n const trackId = `sequence_search_${+Date.now()}`\n const session = getSession(model)\n const { assemblyManager } = session\n const assemblyName = model.assemblyNames[0]!\n if (isSessionWithAddTracks(session)) {\n session.addTrackConf({\n trackId,\n name: `Sequence search ${value}`,\n assemblyNames: [assemblyName],\n type: 'FeatureTrack',\n adapter: {\n type: 'SequenceSearchAdapter',\n search: value,\n searchForward,\n searchReverse,\n caseInsensitive,\n sequenceAdapter: getSnapshot(\n assemblyManager.get(assemblyName)?.configuration.sequence\n .adapter,\n ),\n },\n })\n model.showTrack(trackId)\n }\n }\n handleClose()\n }}\n variant=\"contained\"\n color=\"primary\"\n >\n Submit\n \n\n {\n handleClose()\n }}\n variant=\"contained\"\n color=\"secondary\"\n >\n Close\n \n \n \n )\n})\n\nexport default SequenceSearchDialog\n"],"names":["useStyles","makeStyles","dialogContent","width","observer","model","handleClose","classes","value","setValue","useState","searchForward","setSearchForward","searchReverse","setSearchReverse","caseInsensitive","setCaseInsensitive","error","RegExp","e","React","Dialog","maxWidth","open","onClose","title","DialogContent","className","Typography","TextField","onChange","target","helperText","FormGroup","FormControlLabel","control","Checkbox","checked","event","label","color","DialogActions","Button","onClick","trackId","Date","now","session","getSession","assemblyManager","assemblyName","assemblyNames","isSessionWithAddTracks","addTrackConf","name","type","adapter","search","sequenceAdapter","getSnapshot","get","configuration","sequence","showTrack","variant"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1304.a512b560.chunk.js --- a/x/static/js/1304.a512b560.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1304],{81304:(e,t,l)=>{l.r(t),l.d(t,{DotplotTooltipClick:()=>i,default:()=>r});var n=l(7552),o=l(68446),a=l(9236),s=l(90257);const i=(0,o.observer)((function({model:e,mousedown:t,mousedownClient:l,xdistance:o,ydistance:i}){const{hview:r,vview:b,viewHeight:c}=e,u=(l?.[0]||0)-0,w=(l?.[1]||0)-0;return t&&Math.abs(o)>3&&Math.abs(i)>3?n.createElement(a.default,{clientPoint:{x:u,y:w}},`x - ${(0,s.wJ)(t[0],r)}`,n.createElement("br",null),`y - ${(0,s.wJ)(c-t[1],b)}`,n.createElement("br",null)):null})),r=i}}]); -//# sourceMappingURL=1304.a512b560.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1304.a512b560.chunk.js.map --- a/x/static/js/1304.a512b560.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1304.a512b560.chunk.js","mappings":"+NASO,MAAMA,GAAsBC,EAAAA,EAAAA,WAAS,UAAU,MACpDC,EAAK,UACLC,EAAS,gBACTC,EAAe,UACfC,EAAS,UACTC,IAQA,MAAM,MAAEC,EAAK,MAAEC,EAAK,WAAEC,GAAeP,EAC/BQ,GAAKN,IAAkB,IAAM,GAAsB,EACnDO,GAAKP,IAAkB,IAAM,GAAsB,EAEzD,OAAOD,GAAaS,KAAKC,IAAIR,GAAa,GAAKO,KAAKC,IAAIP,GAAa,EACnEQ,EAAAA,cAACC,EAAAA,QAAW,CAACC,YAAa,CAAEN,IAAGC,MAC5B,QAAOM,EAAAA,EAAAA,IAAOd,EAAU,GAAII,KAC7BO,EAAAA,cAAA,WACC,QAAOG,EAAAA,EAAAA,IAAOR,EAAaN,EAAU,GAAIK,KAC1CM,EAAAA,cAAA,YAEA,IACN,IAEA,G","sources":["../../../plugins/dotplot-view/src/DotplotView/components/DotplotTooltipClick.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react'\nimport BaseTooltip from '@jbrowse/core/ui/BaseTooltip'\n\n// locals\nimport { DotplotViewModel } from '../model'\nimport { locstr } from './util'\n\ntype Coord = [number, number] | undefined\nexport const DotplotTooltipClick = observer(function ({\n model,\n mousedown,\n mousedownClient,\n xdistance,\n ydistance,\n}: {\n model: DotplotViewModel\n mousedown: Coord\n mousedownClient: Coord\n xdistance: number\n ydistance: number\n}) {\n const { hview, vview, viewHeight } = model\n const x = (mousedownClient?.[0] || 0) - (xdistance < 0 ? 0 : 0)\n const y = (mousedownClient?.[1] || 0) - (ydistance < 0 ? 0 : 0)\n\n return mousedown && Math.abs(xdistance) > 3 && Math.abs(ydistance) > 3 ? (\n \n {`x - ${locstr(mousedown[0], hview)}`}\n
\n {`y - ${locstr(viewHeight - mousedown[1], vview)}`}\n
\n
\n ) : null\n})\n\nexport default DotplotTooltipClick\n"],"names":["DotplotTooltipClick","observer","model","mousedown","mousedownClient","xdistance","ydistance","hview","vview","viewHeight","x","y","Math","abs","React","BaseTooltip","clientPoint","locstr"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1310.8a044016.chunk.js --- a/x/static/js/1310.8a044016.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1310],{81310:(b,e,s)=>{s.r(e),s.d(e,{default:()=>a.A});var a=s(6679)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1326.19289940.chunk.js --- a/x/static/js/1326.19289940.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1326],{11326:(e,t,l)=>{l.r(t),l.d(t,{default:()=>m});var o=l(7552),n=l(68446),a=l(29499),r=l(36715),i=l(9937),c=l(58507),s=l(5401),h=l(49823),k=l(66395);const m=(0,n.observer)((function({onClose:e,model:t}){const{selectedBookmarks:l}=t,n=0===l.length,[m,u]=(0,o.useState)(l[0]?.highlight??"rgba(247, 129, 192, 0.35)");return o.createElement(h.Dialog,{open:!0,onClose:e,title:"Highlight bookmarks"},o.createElement(a.A,null,o.createElement(r.A,{variant:"h6"},"Bulk highlight selector"),o.createElement(i.A,{severity:"info"},n?o.createElement("span",null,"Use the checkboxes to select individual bookmarks to edit."):"Only selected bookmarks will be edited."),n?null:o.createElement(k.sk,{color:m,onChange:e=>{u(e)}})),o.createElement(c.A,null,o.createElement(s.A,{variant:"contained",color:"secondary",onClick:()=>{e()}},"Cancel"),o.createElement(s.A,{variant:"contained",color:"primary",onClick:()=>{t.updateBulkBookmarkHighlights(m),e()}},"Confirm")))}))}}]); -//# sourceMappingURL=1326.19289940.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1326.19289940.chunk.js.map --- a/x/static/js/1326.19289940.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1326.19289940.chunk.js","mappings":"2PAeA,MA4DA,GA5DiCA,EAAAA,EAAAA,WAAS,UAAU,QAClDC,EAAO,MACPC,IAKA,MAAM,kBAAEC,GAAsBD,EACxBE,EAAwC,IAA7BD,EAAkBE,QAC5BC,EAAOC,IAAYC,EAAAA,EAAAA,UACxBL,EAAkB,IAAIM,WAAa,6BAGrC,OACEC,EAAAA,cAACC,EAAAA,OAAM,CAACC,MAAI,EAACX,QAASA,EAASY,MAAM,uBACnCH,EAAAA,cAACI,EAAAA,EAAa,KACZJ,EAAAA,cAACK,EAAAA,EAAU,CAACC,QAAQ,MAAK,2BACzBN,EAAAA,cAACO,EAAAA,EAAK,CAACC,SAAS,QACbd,EACCM,EAAAA,cAAA,YAAM,8DAIN,2CAGFN,EAOE,KANFM,EAAAA,cAACS,EAAAA,GAAW,CACVb,MAAOA,EACPc,SAAUC,IACRd,EAASc,EAAM,KAKvBX,EAAAA,cAACY,EAAAA,EAAa,KACZZ,EAAAA,cAACa,EAAAA,EAAM,CACLP,QAAQ,YACRV,MAAM,YACNkB,QAASA,KACPvB,GAAS,GAEZ,UAGDS,EAAAA,cAACa,EAAAA,EAAM,CACLP,QAAQ,YACRV,MAAM,UACNkB,QAASA,KACPtB,EAAMuB,6BAA6BnB,GACnCL,GAAS,GAEZ,YAMT,G","sources":["../../../plugins/grid-bookmark/src/GridBookmarkWidget/components/dialogs/EditHighlightColorDialog.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { observer } from 'mobx-react'\nimport {\n Button,\n DialogContent,\n DialogActions,\n Alert,\n Typography,\n} from '@mui/material'\nimport { Dialog } from '@jbrowse/core/ui'\nimport { ColorPicker } from '@jbrowse/core/ui/ColorPicker'\n\n// locals\nimport { GridBookmarkModel } from '../../model'\n\nconst EditHighlightColorDialog = observer(function ({\n onClose,\n model,\n}: {\n onClose: () => void\n model: GridBookmarkModel\n}) {\n const { selectedBookmarks } = model\n const editNone = selectedBookmarks.length === 0\n const [color, setColor] = useState(\n selectedBookmarks[0]?.highlight ?? 'rgba(247, 129, 192, 0.35)',\n )\n\n return (\n \n \n Bulk highlight selector\n \n {editNone ? (\n \n Use the checkboxes to select individual bookmarks to edit.\n \n ) : (\n 'Only selected bookmarks will be edited.'\n )}\n \n {!editNone ? (\n {\n setColor(event)\n }}\n />\n ) : null}\n \n \n {\n onClose()\n }}\n >\n Cancel\n \n {\n model.updateBulkBookmarkHighlights(color)\n onClose()\n }}\n >\n Confirm\n \n \n \n )\n})\n\nexport default EditHighlightColorDialog\n"],"names":["observer","onClose","model","selectedBookmarks","editNone","length","color","setColor","useState","highlight","React","Dialog","open","title","DialogContent","Typography","variant","Alert","severity","ColorPicker","onChange","event","DialogActions","Button","onClick","updateBulkBookmarkHighlights"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1345.aaaaf175.chunk.js --- a/x/static/js/1345.aaaaf175.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1345],{61345:(t,e,s)=>{s.r(e),s.d(e,{default:()=>A,getListItemAvatarUtilityClass:()=>I,listItemAvatarClasses:()=>c});var a=s(7552),r=s(93878),o=s(70799),i=s(57406),n=s(51148),l=s(4785),m=s(33761),u=s(85693);function I(t){return(0,u.Ay)("MuiListItemAvatar",t)}const c=(0,m.A)("MuiListItemAvatar",["root","alignItemsFlexStart"]);var g=s(69500);const v=(0,n.Ay)("div",{name:"MuiListItemAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:s}=t;return[e.root,"flex-start"===s.alignItems&&e.alignItemsFlexStart]}})({minWidth:56,flexShrink:0,variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}),A=a.forwardRef((function(t,e){const s=(0,l.b)({props:t,name:"MuiListItemAvatar"}),{className:n,...m}=s,u=a.useContext(i.A),c={...s,alignItems:u.alignItems},A=(t=>{const{alignItems:e,classes:s}=t,a={root:["root","flex-start"===e&&"alignItemsFlexStart"]};return(0,o.A)(a,I,s)})(c);return(0,g.jsx)(v,{className:(0,r.A)(A.root,n),ownerState:c,ref:e,...m})}))}}]); -//# sourceMappingURL=1345.aaaaf175.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1345.aaaaf175.chunk.js.map --- a/x/static/js/1345.aaaaf175.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1345.aaaaf175.chunk.js","mappings":"iTAEO,SAASA,EAA8BC,GAC5C,OAAO,EAAAC,EAAA,IAAqB,oBAAqBD,EACnD,CACA,MACA,GAD8B,EAAAE,EAAA,GAAuB,oBAAqB,CAAC,OAAQ,wB,eCMnF,MAUMC,GAAqB,EAAAC,EAAA,IAAO,MAAO,CACvCC,KAAM,oBACNL,KAAM,OACNM,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJC,GACEF,EACJ,MAAO,CAACC,EAAOE,KAAgC,eAA1BD,EAAWE,YAA+BH,EAAOI,oBAAoB,GAPnE,CASxB,CACDC,SAAU,GACVC,WAAY,EACZC,SAAU,CAAC,CACTR,MAAO,CACLI,WAAY,cAEdK,MAAO,CACLC,UAAW,OAoDjB,EA5CoC,cAAiB,SAAwBC,EAASC,GACpF,MAAMZ,GAAQ,OAAgB,CAC5BA,MAAOW,EACPb,KAAM,uBAEF,UACJe,KACGC,GACDd,EACEe,EAAU,aAAiBC,EAAA,GAC3Bd,EAAa,IACdF,EACHI,WAAYW,EAAQX,YAEhBa,EAjDkBf,KACxB,MAAM,WACJE,EAAU,QACVa,GACEf,EACEgB,EAAQ,CACZf,KAAM,CAAC,OAAuB,eAAfC,GAA+B,wBAEhD,OAAO,EAAAe,EAAA,GAAeD,EAAO1B,EAA+ByB,EAAQ,EAyCpDG,CAAkBlB,GAClC,OAAoB,SAAKN,EAAoB,CAC3CiB,WAAW,EAAAQ,EAAA,GAAKJ,EAAQd,KAAMU,GAC9BX,WAAYA,EACZU,IAAKA,KACFE,GAEP,G","sources":["../../../node_modules/@mui/material/ListItemAvatar/listItemAvatarClasses.js","../../../node_modules/@mui/material/ListItemAvatar/ListItemAvatar.js"],"sourcesContent":["import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemAvatarUtilityClass(slot) {\n return generateUtilityClass('MuiListItemAvatar', slot);\n}\nconst listItemAvatarClasses = generateUtilityClasses('MuiListItemAvatar', ['root', 'alignItemsFlexStart']);\nexport default listItemAvatarClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport ListContext from \"../List/ListContext.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getListItemAvatarUtilityClass } from \"./listItemAvatarClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes\n } = ownerState;\n const slots = {\n root: ['root', alignItems === 'flex-start' && 'alignItemsFlexStart']\n };\n return composeClasses(slots, getListItemAvatarUtilityClass, classes);\n};\nconst ListItemAvatarRoot = styled('div', {\n name: 'MuiListItemAvatar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart];\n }\n})({\n minWidth: 56,\n flexShrink: 0,\n variants: [{\n props: {\n alignItems: 'flex-start'\n },\n style: {\n marginTop: 8\n }\n }]\n});\n\n/**\n * A simple wrapper to apply `List` styles to an `Avatar`.\n */\nconst ListItemAvatar = /*#__PURE__*/React.forwardRef(function ListItemAvatar(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItemAvatar'\n });\n const {\n className,\n ...other\n } = props;\n const context = React.useContext(ListContext);\n const ownerState = {\n ...props,\n alignItems: context.alignItems\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListItemAvatarRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemAvatar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally an `Avatar`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItemAvatar;"],"names":["getListItemAvatarUtilityClass","slot","generateUtilityClass","generateUtilityClasses","ListItemAvatarRoot","styled","name","overridesResolver","props","styles","ownerState","root","alignItems","alignItemsFlexStart","minWidth","flexShrink","variants","style","marginTop","inProps","ref","className","other","context","ListContext","classes","slots","composeClasses","useUtilityClasses","clsx"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1354.ded982ce.chunk.js --- a/x/static/js/1354.ded982ce.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1354],{91354:(b,e,s)=>{s.r(e),s.d(e,{default:()=>a.A});var a=s(4407)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/14.b9913d1d.chunk.js --- a/x/static/js/14.b9913d1d.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[14],{10014:(e,t,a)=>{a.r(t),a.d(t,{default:()=>d,featureData:()=>h});var s=a(46377),r=a(99834),n=a(66885),i=a(99546),o=a(32598),c=a(7706);const l=new Set(["DUP","TRA","INV","CNV","DEL"]);function h(e,t,a,s){const r=e.split("\t"),n=r[a?3:0],o=+r[a?4:1],c=+r[a?5:2],h=r[a?0:3],d=+r[a?1:4],f=+r[a?2:5],p=r[6],m=+r[7],w=u(r[8]),g=u(r[9]),b=r.slice(10),T=s?Object.fromEntries(s.slice(10).map(((e,t)=>[e,b[t]]))):b,D=l.has(b[0])?`<${b[0]}>`:void 0;return new i.SimpleFeature({...T,start:o,end:c,type:"paired_feature",refName:n,strand:w,name:p,score:m,uniqueId:t,mate:{refName:h,start:d,end:f,strand:g},...D?{ALT:[D]}:{}})}function u(e){return"+"===e?1:"-"===e?-1:"."===e?0:void 0}class d extends s.BaseFeatureDataAdapter{intervalTrees={};static capabilities=["getFeatures","getRefNames"];async loadDataP(e={}){const t=this.pluginManager,a=this.getConf("bedpeLocation"),s=await(0,r.openLocation)(a,t).readFile(e),n=(0,i.isGzip)(s)?await(0,c.unzip)(s):s;if(n.length>536870888)throw new Error("Data exceeds maximum string length (512MB)");const o=new TextDecoder("utf8",{fatal:!0}).decode(n).split(/\n|\r\n|\r/).filter((e=>!!e)),l=[];let h=0;for(;h{throw this.bedpeFeatures=void 0,e}))),this.bedpeFeatures}async getRefNames(e={}){const{feats1:t,feats2:a}=await this.loadData(e);return[...new Set([...Object.keys(t),...Object.keys(a)])]}async getHeader(e={}){const{header:t}=await this.loadData(e);return t}async getNames(){const{header:e,columnNames:t}=await this.loadData();if(t.length)return t;const a=e.split(/\n|\r\n|\r/).filter((e=>!!e)).at(-1);return a?.includes("\t")?a.slice(1).split("\t").map((e=>e.trim())):void 0}async loadFeatureTreeP(e){const{feats1:t,feats2:a}=await this.loadData(),s=await this.getNames(),r=new o.Ay,n=t[e]?.map(((t,a)=>h(t,`${this.id}-${e}-${a}-r1`,!1,s)))??[],i=a[e]?.map(((t,a)=>h(t,`${this.id}-${e}-${a}-r2`,!0,s)))??[];for(const e of[...n,...i])r.insert([e.get("start"),e.get("end")],e);return r}async loadFeatureTree(e){return this.intervalTrees[e]||(this.intervalTrees[e]=this.loadFeatureTreeP(e).catch((t=>{throw this.intervalTrees[e]=void 0,t}))),this.intervalTrees[e]}getFeatures(e,t={}){return(0,n.ObservableCreate)((async t=>{const{start:a,end:s,refName:r}=e,n=await this.loadFeatureTree(r);n?.search([a,s]).forEach((e=>{t.next(e)})),t.complete()}),t.signal)}freeResources(){}}}}]); -//# sourceMappingURL=14.b9913d1d.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/14.b9913d1d.chunk.js.map --- a/x/static/js/14.b9913d1d.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/14.b9913d1d.chunk.js","mappings":"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","sources":["../../../plugins/bed/src/BedpeAdapter/BedpeAdapter.ts"],"sourcesContent":["import {\n BaseFeatureDataAdapter,\n BaseOptions,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\nimport { openLocation } from '@jbrowse/core/util/io'\nimport { ObservableCreate } from '@jbrowse/core/util/rxjs'\nimport { Region, Feature, SimpleFeature, isGzip } from '@jbrowse/core/util'\nimport IntervalTree from '@flatten-js/interval-tree'\nimport { unzip } from '@gmod/bgzf-filehandle'\n\nconst svTypes = new Set(['DUP', 'TRA', 'INV', 'CNV', 'DEL'])\n\nexport function featureData(\n line: string,\n uniqueId: string,\n flip: boolean,\n names?: string[],\n) {\n const l = line.split('\\t')\n const ref1 = l[flip ? 3 : 0]!\n const start1 = +l[flip ? 4 : 1]!\n const end1 = +l[flip ? 5 : 2]!\n const ref2 = l[!flip ? 3 : 0]!\n const start2 = +l[!flip ? 4 : 1]!\n const end2 = +l[!flip ? 5 : 2]!\n const name = l[6]!\n const score = +l[7]!\n const strand1 = parseStrand(l[8]!)\n const strand2 = parseStrand(l[9]!)\n const extra = l.slice(10)\n const rest = names\n ? Object.fromEntries(names.slice(10).map((n, idx) => [n, extra[idx]]))\n : extra\n const ALT = svTypes.has(extra[0]!) ? `<${extra[0]}>` : undefined\n\n return new SimpleFeature({\n ...rest,\n start: start1,\n end: end1,\n type: 'paired_feature',\n refName: ref1,\n strand: strand1,\n name,\n score,\n uniqueId,\n mate: {\n refName: ref2,\n start: start2,\n end: end2,\n strand: strand2,\n },\n ...(ALT ? { ALT: [ALT] } : {}), // ALT is an array in VCF\n })\n}\n\nfunction parseStrand(strand: string) {\n if (strand === '+') {\n return 1\n }\n if (strand === '-') {\n return -1\n }\n if (strand === '.') {\n return 0\n }\n return undefined\n}\n\nexport default class BedpeAdapter extends BaseFeatureDataAdapter {\n protected bedpeFeatures?: Promise<{\n header: string\n feats1: Record\n feats2: Record\n columnNames: string[]\n }>\n\n protected intervalTrees: Record<\n string,\n Promise | undefined\n > = {}\n\n public static capabilities = ['getFeatures', 'getRefNames']\n\n private async loadDataP(opts: BaseOptions = {}) {\n const pm = this.pluginManager\n const bedLoc = this.getConf('bedpeLocation')\n const buf = await openLocation(bedLoc, pm).readFile(opts)\n const buffer = isGzip(buf) ? await unzip(buf) : buf\n // 512MB max chrome string length is 512MB\n if (buffer.length > 536_870_888) {\n throw new Error('Data exceeds maximum string length (512MB)')\n }\n const data = new TextDecoder('utf8', { fatal: true }).decode(buffer)\n const lines = data.split(/\\n|\\r\\n|\\r/).filter(f => !!f)\n const headerLines = []\n let i = 0\n for (; i < lines.length && lines[i]!.startsWith('#'); i++) {\n headerLines.push(lines[i])\n }\n const header = headerLines.join('\\n')\n const feats1 = {} as Record\n const feats2 = {} as Record\n for (; i < lines.length; i++) {\n const line = lines[i]!\n const cols = line.split('\\t')\n const r1 = cols[0]!\n const r2 = cols[3]!\n if (!feats1[r1]) {\n feats1[r1] = []\n }\n if (!feats2[r2]) {\n feats2[r2] = []\n }\n feats1[r1].push(line)\n feats2[r2].push(line)\n }\n const columnNames = this.getConf('columnNames')\n\n return {\n header,\n feats1,\n feats2,\n columnNames,\n }\n }\n\n private async loadData(opts: BaseOptions = {}) {\n if (!this.bedpeFeatures) {\n this.bedpeFeatures = this.loadDataP(opts).catch((e: unknown) => {\n this.bedpeFeatures = undefined\n throw e\n })\n }\n\n return this.bedpeFeatures\n }\n\n public async getRefNames(opts: BaseOptions = {}) {\n const { feats1, feats2 } = await this.loadData(opts)\n return [...new Set([...Object.keys(feats1), ...Object.keys(feats2)])]\n }\n\n async getHeader(opts: BaseOptions = {}) {\n const { header } = await this.loadData(opts)\n return header\n }\n\n async getNames() {\n const { header, columnNames } = await this.loadData()\n if (columnNames.length) {\n return columnNames\n }\n const defs = header.split(/\\n|\\r\\n|\\r/).filter(f => !!f)\n const defline = defs.at(-1)\n return defline?.includes('\\t')\n ? defline\n .slice(1)\n .split('\\t')\n .map(field => field.trim())\n : undefined\n }\n\n private async loadFeatureTreeP(refName: string) {\n const { feats1, feats2 } = await this.loadData()\n const names = await this.getNames()\n const intervalTree = new IntervalTree()\n const ret1 =\n feats1[refName]?.map((f, i) =>\n featureData(f, `${this.id}-${refName}-${i}-r1`, false, names),\n ) ?? []\n const ret2 =\n feats2[refName]?.map((f, i) =>\n featureData(f, `${this.id}-${refName}-${i}-r2`, true, names),\n ) ?? []\n\n for (const obj of [...ret1, ...ret2]) {\n intervalTree.insert([obj.get('start'), obj.get('end')], obj)\n }\n\n return intervalTree\n }\n\n private async loadFeatureTree(refName: string) {\n if (!this.intervalTrees[refName]) {\n this.intervalTrees[refName] = this.loadFeatureTreeP(refName).catch(\n (e: unknown) => {\n this.intervalTrees[refName] = undefined\n throw e\n },\n )\n }\n return this.intervalTrees[refName]\n }\n\n public getFeatures(query: Region, opts: BaseOptions = {}) {\n return ObservableCreate(async observer => {\n const { start, end, refName } = query\n const intervalTree = await this.loadFeatureTree(refName)\n intervalTree?.search([start, end]).forEach(f => {\n observer.next(f)\n })\n observer.complete()\n }, opts.signal)\n }\n\n public freeResources(): void {}\n}\n"],"names":["svTypes","Set","featureData","line","uniqueId","flip","names","l","split","ref1","start1","end1","ref2","start2","end2","name","score","strand1","parseStrand","strand2","extra","slice","rest","Object","fromEntries","map","n","idx","ALT","has","undefined","SimpleFeature","start","end","type","refName","strand","mate","BedpeAdapter","BaseFeatureDataAdapter","intervalTrees","loadDataP","opts","pm","this","pluginManager","bedLoc","getConf","buf","openLocation","readFile","buffer","isGzip","unzip","length","Error","lines","TextDecoder","fatal","decode","filter","f","headerLines","i","startsWith","push","header","join","feats1","feats2","cols","r1","r2","columnNames","loadData","bedpeFeatures","catch","e","getRefNames","keys","getHeader","getNames","defline","at","includes","field","trim","loadFeatureTreeP","intervalTree","IntervalTree","ret1","id","ret2","obj","insert","get","loadFeatureTree","getFeatures","query","ObservableCreate","async","search","forEach","observer","next","complete","signal","freeResources"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1503.cc48d25a.chunk.js --- a/x/static/js/1503.cc48d25a.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1503],{61503:(e,t,r)=>{r.r(t),r.d(t,{default:()=>y});var n=r(46377),s=r(99834),a=r(66885),i=r(32598),o=r(99546),c=r(7706);const l=["seq_name","source","featureType","start","end","score","strand","frame","attributes"];function u(e){return null===e?null:String(e).replace(/%([0-9A-Fa-f]{2})/g,((e,t)=>String.fromCharCode(parseInt(t,16))))}function f(e,t){return String(t).replace(e,(e=>{let t=e.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=`0${t}`),`%${t}`}))}function h(e){return f(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}const d=["-",".","+"];function p(e,t){const r=null===e.attributes||void 0===e.attributes?".":function(e){const t=[];return Object.keys(e).forEach((r=>{const n=e[r];let s;s=n.hasOwnProperty("toString")?h(n.toString()):Array.isArray(n.values)?n.values.map(h).join(","):Array.isArray(n)?n.map(h).join(","):h(n),t.push(`${h(r)} ${s}`)})),t.length?t.join("; ").concat(";"):"."}(e.attributes),n=[];for(let t=0;t<8;t+=1){const r=e[l[t]];n[t]=6===t?null==r?".":d[r+1]||r:null==r?".":f(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,String(r))}n[8]=r;const s=`${n.join("\t")}\n`;return t[s]?"":(t[s]=!0,s)}function m(e,t){if(Array.isArray(e))return e.map((e=>m(e,t))).join("");const r=[p(e,t)];return["child_features","derived_features"].forEach((n=>{e[n]&&r.push(...e[n].map((e=>m(e,t))))})),r.join("")}function _(e){return m(e,{})}const b={Parent:"child_features",Derives_from:"derived_features"};class v{constructor(e){const t=()=>{};Object.assign(this,{featureCallback:e.featureCallback||t,endCallback:e.endCallback||t,commentCallback:e.commentCallback||t,errorCallback:e.errorCallback||t,directiveCallback:e.directiveCallback||t,sequenceCallback:e.sequenceCallback||t,bufferSize:void 0===e.bufferSize?1e3:e.bufferSize,_underConstructionTopLevel:[],_underConstructionById:{},_completedReferences:{},_underConstructionOrphans:{},eof:!1,lineNumber:0})}addLine(e){if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(e))return void this._bufferLine(e);const t=/^\s*(#+)(.*)/.exec(e);if(t){let[,r,n]=t;if(3===r.length)this._emitAllUnderConstructionFeatures();else if(2===r.length){const t=function(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const r=t[1];let n=t[2];const s={directive:r};if(n.length&&(n=n.replace(/\r?\n$/,""),s.value=n),"sequence-region"===r){const[e,t,r]=n.split(/\s+/,3);s.seq_id=e,s.start=t&&t.replace(/\D/g,""),s.end=r&&r.replace(/\D/g,"")}else if("genome-build"===r){const[e,t]=n.split(/\s+/,2);s.source=e,s.buildname=t}return s}(e);this._emitItem(t)}else n=n.replace(/\s*/,""),this._emitItem({comment:n})}else if(!/^\s*$/.test(e)){const t=e.replace(/\r?\n?$/g,"");throw new Error(`GTF parse error. Cannot parse '${t}'.`)}}_emitItem(e){e[0]?this.featureCallback(e):e.directive?this.directiveCallback(e):e.comment&&this.commentCallback(e)}finish(){this._emitAllUnderConstructionFeatures(),this.endCallback()}_enforceBufferSizeLimit(e=0){const t=e=>{var r,n,s;(null===(s=null===(n=null===(r=null==e?void 0:e[0])||void 0===r?void 0:r.attributes)||void 0===n?void 0:n.ID)||void 0===s?void 0:s[0])&&(e[0].attributes.ID.forEach((e=>{delete this._underConstructionById[e],delete this._completedReferences[e]})),e.forEach((e=>{e.child_features&&e.child_features.forEach((e=>{t(e)})),e.derived_features&&e.derived_features.forEach((e=>{t(e)}))})))};for(;this._underConstructionTopLevel.length+e>this.bufferSize;){const e=this._underConstructionTopLevel.shift();this._emitItem(e),t(e)}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Object.values(this._underConstructionOrphans).filter((e=>Object.keys(e).length)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${JSON.stringify(this._underConstructionOrphans)}`)}_bufferLine(e){const t=function(e){const t=e.split("\t").map((e=>"."===e?null:e));t[0]=u(t[0]),t[1]=u(t[1]),t[2]=u(t[2]),t[8]=function(e){if(!e||!e.length||"."===e)return{};const t={};return e.replace(/\r?\n$/,"").slice(0,-1).split(";").forEach((e=>{if(!e)return;const r=e.trim().split(" ");if(!r[1]||!r[1].length)return;r[0]=r[0].trim();let n=t[r[0].trim()];n||(n=[],t[r[0]]=n),n.push(...r[1].split(",").map((e=>e.trim())).map(u))})),t}(t[8]);const r={};for(let e=0;e{this._underConstructionById[e]||this._bufferLine(function(e){const t=JSON.parse(JSON.stringify(e));return t.featureType="transcript",_(t)}(t))})),s.forEach((e=>{const r=this._underConstructionById[e];r?(r.push(t),o=r):(o=[t],this._enforceBufferSizeLimit(1),a.length||i.length||this._underConstructionTopLevel.push(o),this._underConstructionById[e]=o,this._resolveReferencesTo(o,e))})),this._resolveReferencesFrom(o||[t],{Parent:a,Derives_from:i},s)}_resolveReferencesTo(e,t){const r=this._underConstructionOrphans[t];r&&Object.keys(r).forEach((t=>{const n=b[t]||t.toLowerCase();e.forEach((e=>{e[n].push(...r[t]),delete r[t]}))}))}_parseError(e){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${e}`)}_resolveReferencesFrom(e,t,r){Object.entries(t).forEach((([t,n])=>{let s;n.forEach((n=>{const a=this._underConstructionById[n];var i,o;a?(o=e,(i=a)[0].start=Math.min(i[0].start,o[0].start),i[0].end=Math.max(i[0].end,o[0].end),s||(s=b[t]||t.toLowerCase()),r.filter((e=>function(e,t,r){let n=e[t];n||(n={},e[t]=n);const s=n[r]||!1;return n[r]=!0,s}(this._completedReferences,e,`${t},${n}`))).length||a.forEach((t=>{t[s].push(e)}))):(this._underConstructionOrphans[n]||(this._underConstructionOrphans[n]={}),this._underConstructionOrphans[n][t]||(this._underConstructionOrphans[n][t]=[]),this._underConstructionOrphans[n][t].push(e))}))}))}}function g(e){const t={...e};t.start-=1,t.strand={"+":1,"-":-1,".":0,"?":void 0}[e.strand],t.phase=Number(e.frame),t.refName=e.seq_name,null===e.score&&(t.score=void 0),null===e.frame&&(t.score=void 0);const r=new Set(["start","end","seq_name","score","featureType","source","frame","strand"]);for(const n of Object.keys(e.attributes)){let s=n.toLowerCase();if(r.has(s)&&(s+="2"),e.attributes[n]){let r=e.attributes[n];Array.isArray(r)&&1===r.length&&(r=r[0].replaceAll(/^"|"$/g,"")),t[s]=r}}return t.refName=t.seq_name,t.type=t.featureType,e.child_features&&e.child_features.length>0&&(t.subfeatures=e.child_features.flatMap((e=>e.map((e=>g(e)))))),t.child_features=void 0,t.data=void 0,t.derived_features=void 0,t._linehash=void 0,t.attributes=void 0,t.seq_name=void 0,t.featureType=void 0,t.frame=void 0,t.transcript_id&&(t.name=t.transcript_id),t}const C="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;class y extends n.BaseFeatureDataAdapter{calculatedIntervalTreeMap={};async loadDataP(e){const{statusCallback:t=()=>{}}=e||{},r=await(0,s.openLocation)(this.getConf("gtfLocation"),this.pluginManager).readFile(e),n=(0,o.isGzip)(r)?await(0,o.updateStatus)("Unzipping",t,(()=>(0,c.unzip)(r))):r,a=[],l={};let u=0,f=0;for(;u"))break;{const e=s.indexOf("\t"),t=s.slice(0,e);l[t]||(l[t]=""),l[t]+=`${s}\n`}}f++%1e4==0&&t(`Loading ${Math.floor(u/1e6).toLocaleString("en-US")}/${Math.floor(n.length/1e6).toLocaleString("en-US")} MB`),u=e+1}const h=Object.fromEntries(Object.entries(l).map((([e,t])=>[e,r=>{if(!this.calculatedIntervalTreeMap[e]){r?.("Parsing GTF data");const n=new i.Ay;(function(e){if(!e)return[];const t=[],r=new v({featureCallback:e=>t.push(e),errorCallback:e=>{throw e}});for(const t of e.split(/\r?\n/))r.addLine(t);return r.finish(),t})(t).flat().map(((t,r)=>new o.SimpleFeature({data:g(t),id:`${this.id}-${e}-${r}`}))).forEach((e=>n.insert([e.get("start"),e.get("end")],e))),this.calculatedIntervalTreeMap[e]=n}return this.calculatedIntervalTreeMap[e]}])));return{header:a.join("\n"),intervalTreeMap:h}}async loadData(e={}){return this.gtfFeatures||(this.gtfFeatures=this.loadDataP(e).catch((e=>{throw this.gtfFeatures=void 0,e}))),this.gtfFeatures}async getRefNames(e={}){const{intervalTreeMap:t}=await this.loadData(e);return Object.keys(t)}async getHeader(e={}){const{header:t}=await this.loadData(e);return t}getFeatures(e,t={}){return(0,a.ObservableCreate)((async r=>{try{const{start:n,end:s,refName:a}=e,{intervalTreeMap:i}=await this.loadData(t);i[a]?.(t.statusCallback).search([n,s]).forEach((e=>{r.next(e)})),r.complete()}catch(e){r.error(e)}}),t.signal)}freeResources(){}}}}]); -//# sourceMappingURL=1503.cc48d25a.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1503.cc48d25a.chunk.js.map --- a/x/static/js/1503.cc48d25a.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1503.cc48d25a.chunk.js","mappings":"4NAKA,MAAMA,EAAa,CACjB,WACA,SACA,cACA,QACA,MACA,QACA,SACA,QACA,cAcK,SAAS,EAASC,GACvB,OAAU,OAANA,EACK,KAEFC,OAAOD,GAAGE,QAAQ,sBAAsB,CAACC,EAAGC,IACjDH,OAAOI,aAAaC,SAASF,EAAK,MAEtC,CAQA,SAASG,EAAQC,EAAOR,GACtB,OAAOC,OAAOD,GAAGE,QAAQM,GAAOC,IAC9B,IAAIC,EAAMD,EAAGE,WAAW,GAAGC,SAAS,IAAIC,cAMxC,OAHIH,EAAII,OAAS,IACfJ,EAAM,IAAIA,KAEL,IAAIA,GAAK,GAEpB,CAEO,SAAS,EAAOV,GAErB,OAAOO,EAAQ,mCAAoCP,EACrD,CA2JA,MAAMe,EAAkB,CAAC,IAAK,IAAK,KAEnC,SAASC,EAAqBC,EAAGC,GAC/B,MAAMC,EACa,OAAjBF,EAAEG,iBAAwCC,IAAjBJ,EAAEG,WACvB,IAzBD,SAA0BE,GAC/B,MAAMC,EAAY,GAgBlB,OAfAC,OAAOC,KAAKH,GAAOI,SAAQC,IACzB,MAAMC,EAAMN,EAAMK,GAClB,IAAIE,EAGFA,EADED,EAAIE,eAAe,YACT,EAAOF,EAAIhB,YACdmB,MAAMC,QAAQJ,EAAIK,QACfL,EAAIK,OAAOC,IAAI,GAAQC,KAAK,KAC/BJ,MAAMC,QAAQJ,GACXA,EAAIM,IAAI,GAAQC,KAAK,KAErB,EAAOP,GAErBL,EAAUa,KAAK,GAAG,EAAOT,MAAQE,IAAY,IAExCN,EAAUT,OAASS,EAAUY,KAAK,MAAME,OAAO,KAAO,GAC/D,CAQQC,CAAiBrB,EAAEG,YAEnBmB,EAAS,GACf,IAAK,IAAIC,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAAG,CAC7B,MAAMZ,EAAMX,EAAElB,EAAWyC,IAGvBD,EAAOC,GADC,IAANA,EAEAZ,QACI,IACAb,EAAgBa,EAAM,IAAMA,EAGhCA,QAAoC,IApKnCrB,EAAQ,+BAoK8CN,OAAO2B,GAEpE,CACAW,EAAO,GAAKpB,EAEZ,MAAMsB,EAAkB,GAAGF,EAAOJ,KAAK,UAGvC,OAAIjB,EAAYuB,GACP,IAITvB,EAAYuB,IAAmB,EACxBA,EACT,CAEA,SAASC,EAAeC,EAASzB,GAC/B,GAAIa,MAAMC,QAAQW,GAChB,OAAOA,EAAQT,KAAIjB,GAAKyB,EAAezB,EAAGC,KAAciB,KAAK,IAG/D,MAAMS,EAAU,CAAC5B,EAAqB2B,EAASzB,IAQ/C,MAPC,CAAC,iBAAkB,oBAAoBQ,SAAQmB,IAC1CF,EAAQE,IACVD,EAAQR,QACHO,EAAQE,GAAWX,KAAIjB,GAAKyB,EAAezB,EAAGC,KAErD,IAEK0B,EAAQT,KAAK,GACtB,CAQO,SAASW,EAAcC,GAE5B,OAAOL,EAAeK,EADT,CAAC,EAEhB,CC/QA,MAAMC,EAAsB,CAC1BC,OAAQ,iBACRC,aAAc,oBAGD,MAAMC,EACnB,WAAAC,CAAYC,GAEV,MAAMC,EAAW,OAEjB9B,OAAO+B,OAAOC,KAAM,CAClBC,gBAAiBJ,EAAKI,iBAAmBH,EACzCI,YAAaL,EAAKK,aAAeJ,EACjCK,gBAAiBN,EAAKM,iBAAmBL,EACzCM,cAAeP,EAAKO,eAAiBN,EACrCO,kBAAmBR,EAAKQ,mBAAqBP,EAC7CQ,iBAAkBT,EAAKS,kBAAoBR,EAG3CS,gBAAgC1C,IAApBgC,EAAKU,WAA2B,IAAOV,EAAKU,WAIxDC,2BAA4B,GAE5BC,uBAAwB,CAAC,EAEzBC,qBAAsB,CAAC,EASvBC,0BAA2B,CAAC,EAI5BC,KAAK,EAELC,WAAY,GAEhB,CAEA,OAAAC,CAAQC,GACN,GAAIf,KAAKY,IAEP,OAKF,GAFAZ,KAAKa,YAAc,EAEf,cAAcG,KAAKD,GAGrB,YADAf,KAAKiB,YAAYF,GAInB,MAAMG,EAAQ,eAAeC,KAAKJ,GAClC,GAAIG,EAAO,CAGT,IAAK,CAAEE,EAAWC,GAAYH,EAE9B,GAAyB,IAArBE,EAAU9D,OAEZ0C,KAAKsB,yCACA,GAAyB,IAArBF,EAAU9D,OAAc,CACjC,MAAMiE,EDoFP,SAAwBR,GAC7B,MAAMG,EAAQ,wBAAwBC,KAAKJ,GAE3C,IAAKG,EACH,OAAO,KAIT,MAAMM,EAAON,EAAM,GACnB,IAAIG,EAAWH,EAAM,GACrB,MAAMO,EAAS,CAAEF,UAAWC,GAO5B,GANIH,EAAS/D,SACX+D,EAAWA,EAAS3E,QAAQ,SAAU,IACtC+E,EAAOC,MAAQL,GAIJ,oBAATG,EAA4B,CAC9B,MAAOG,EAAOC,EAAcC,GAAcR,EAASS,MAAM,MAAO,GAChEL,EAAOM,OAASJ,EAChBF,EAAOO,MAAQJ,GAAgBA,EAAalF,QAAQ,MAAO,IAC3D+E,EAAOQ,IAAMJ,GAAcA,EAAWnF,QAAQ,MAAO,GACvD,MAAO,GAAa,iBAAT8E,EAAyB,CAClC,MAAOU,EAAQC,GAAad,EAASS,MAAM,MAAO,GAClDL,EAAOS,OAASA,EAChBT,EAAOU,UAAYA,CACrB,CAEA,OAAOV,CACT,CCjH0B,CAAmBV,GAErCf,KAAKoC,UAAUb,EACjB,MACEF,EAAWA,EAAS3E,QAAQ,MAAO,IACnCsD,KAAKoC,UAAU,CAAEC,QAAShB,GAE9B,MAAO,IAAI,QAAQL,KAAKD,GAEjB,CAEL,MAAMuB,EAAUvB,EAAKrE,QAAQ,WAAY,IACzC,MAAM,IAAI6F,MAAM,mCAAmCD,MACrD,CACF,CAEA,SAAAF,CAAUpD,GACJA,EAAE,GACJgB,KAAKC,gBAAgBjB,GACZA,EAAEuC,UACXvB,KAAKK,kBAAkBrB,GACdA,EAAEqD,SACXrC,KAAKG,gBAAgBnB,EAEzB,CAEA,MAAAwD,GACExC,KAAKsB,oCACLtB,KAAKE,aACP,CAEA,uBAAAuC,CAAwBC,EAAsB,GAC5C,MAAMC,EAAgBC,I,WAEO,QAAzB,EAAqB,QAArB,EAAS,QAAT,EAAAA,aAAI,EAAJA,EAAO,UAAE,eAAEhF,kBAAU,eAAEiF,UAAE,eAAG,MAEhBD,EAAK,GAAGhF,WAAWiF,GAC3B3E,SAAQ4E,WACH9C,KAAKS,uBAAuBqC,UAC5B9C,KAAKU,qBAAqBoC,EAAG,IAEtCF,EAAK1E,SAAQc,IACPA,EAAE+D,gBACJ/D,EAAE+D,eAAe7E,SAAQ8E,IAAOL,EAAcK,EAAE,IAE9ChE,EAAEiE,kBACJjE,EAAEiE,iBAAiB/E,SAAQgF,IAAOP,EAAcO,EAAE,GACpD,IAEJ,EAGF,KACElD,KAAKQ,2BAA2BlD,OAASoF,EACzC1C,KAAKO,YACL,CACA,MAAMqC,EAAO5C,KAAKQ,2BAA2B2C,QAC7CnD,KAAKoC,UAAUQ,GACfD,EAAcC,EAChB,CACF,CAOA,iCAAAtB,GASE,GARAtB,KAAKQ,2BAA2BtC,QAAQ8B,KAAKoC,UAAUgB,KAAKpD,OAE5DA,KAAKQ,2BAA6B,GAClCR,KAAKS,uBAAyB,CAAC,EAC/BT,KAAKU,qBAAuB,CAAC,EAK3B1C,OAAOS,OAAOuB,KAAKW,2BAA2B0C,QAC5CC,GAAStF,OAAOC,KAAKqF,GAAOhG,SAC5BA,OAEF,MAAM,IAAIiF,MACR,sGAAsGgB,KAAKC,UACzGxD,KAAKW,6BAIb,CAGA,WAAAM,CAAYF,GACV,MAAM0C,ED3CH,SAAsB1C,GAG3B,MAAMtD,EAAIsD,EAAKe,MAAM,MAAMpD,KAAIgF,GAAY,MAANA,EAAY,KAAOA,IAGxDjG,EAAE,GAAK,EAASA,EAAE,IAClBA,EAAE,GAAK,EAASA,EAAE,IAClBA,EAAE,GAAK,EAASA,EAAE,IAElBA,EAAE,GAtDG,SAAyBE,GAC9B,IAAMA,IAAcA,EAAWL,QAA0B,MAAfK,EACxC,MAAO,CAAC,EAGV,MAAMG,EAAQ,CAAC,EA8Bf,OA5BAH,EACGjB,QAAQ,SAAU,IAClBiH,MAAM,GAAI,GACV7B,MAAM,KACN5D,SAAQ0F,IACP,IAAKA,EACH,OAEF,MAAMC,EAAOD,EAAUE,OAAOhC,MAAM,KACpC,IAAM+B,EAAK,KAAMA,EAAK,GAAGvG,OACvB,OAGFuG,EAAK,GAAKA,EAAK,GAAGC,OAClB,IAAIC,EAAOjG,EAAM+F,EAAK,GAAGC,QACpBC,IACHA,EAAO,GACPjG,EAAM+F,EAAK,IAAME,GAInBA,EAAKnF,QACAiF,EAAK,GACL/B,MAAM,KACNpD,KAAIlC,GAAKA,EAAEsH,SACXpF,IAAI,GACR,IAEEZ,CACT,CAkBSkG,CAAgBvG,EAAE,IACzB,MAAMgE,EAAS,CAAC,EAChB,IAAK,IAAIzC,EAAI,EAAGA,EAAIzC,EAAWe,OAAQ0B,GAAK,EAC1CyC,EAAOlF,EAAWyC,IAAe,MAATvB,EAAEuB,GAAa,KAAOvB,EAAEuB,GAclD,OAZqB,OAAjByC,EAAOO,QACTP,EAAOO,MAAQlF,SAAS2E,EAAOO,MAAO,KAErB,OAAfP,EAAOQ,MACTR,EAAOQ,IAAMnF,SAAS2E,EAAOQ,IAAK,KAEf,OAAjBR,EAAOwC,QACTxC,EAAOwC,MAAQC,WAAWzC,EAAOwC,MAAO,KAErB,MAAjBxC,EAAO0C,SACT1C,EAAO0C,OAAS1C,EAAO0C,QAElB1C,CACT,CCewB,CAAiBV,GACrC0C,EAAYV,eAAiB,GAC7BU,EAAYR,iBAAmB,GAG/B,MAAMmB,EAAgBpE,KAAKa,WACrBwD,EAA2C,eAA5BZ,EAAYa,YAE3BC,EAAMF,EACRZ,EAAY7F,WAAW4G,eAAiB,GACxC,CAACJ,GACCK,EAAUJ,EACZ,GACAZ,EAAY7F,WAAW4G,eAAiB,GACtCE,EAAUjB,EAAY7F,WAAW8B,cAAgB,GAEvD,IAAK6E,EAAIjH,SAAWmH,EAAQnH,SAAWoH,EAAQpH,OAI7C,YADA0C,KAAKoC,UAAU,CAACqB,IAiBlB,IAAItE,EAPJsF,EAAQvG,SAAQyG,IACK3E,KAAKS,uBAAuBkE,IAE7C3E,KAAKiB,YATT,SAA0B9B,GACxB,MAAMyF,EAASrB,KAAKsB,MAAMtB,KAAKC,UAAUrE,IAEzC,OADAyF,EAAON,YAAc,aACd,EAAkBM,EAC3B,CAKqBE,CAAiBrB,GACpC,IAIFc,EAAIrG,SAAQ4E,IACV,MAAMiC,EAAW/E,KAAKS,uBAAuBqC,GACzCiC,GACFA,EAASnG,KAAK6E,GACdtE,EAAU4F,IAIV5F,EAAU,CAACsE,GAEXzD,KAAKyC,wBAAwB,GACxBgC,EAAQnH,QAAWoH,EAAQpH,QAC9B0C,KAAKQ,2BAA2B5B,KAAKO,GAEvCa,KAAKS,uBAAuBqC,GAAM3D,EAGlCa,KAAKgF,qBAAqB7F,EAAS2D,GACrC,IAIF9C,KAAKiF,uBACH9F,GAAW,CAACsE,GACZ,CAAEhE,OAAQgF,EAAS/E,aAAcgF,GACjCH,EAEJ,CAEA,oBAAAS,CAAqB7F,EAAS2D,GAC5B,MAAMoC,EAAalF,KAAKW,0BAA0BmC,GAC7CoC,GAILlH,OAAOC,KAAKiH,GAAYhH,SAAQiH,IAC9B,MAAMC,EAAQ5F,EAAoB2F,IAAaA,EAASE,cACxDlG,EAAQjB,SAAQoH,IACdA,EAAIF,GAAOxG,QAAQsG,EAAWC,WACvBD,EAAWC,EAAS,GAC3B,GAEN,CAEA,WAAAI,CAAYC,GACVxF,KAAKY,KAAM,EACXZ,KAAKI,cAAc,GAAGJ,KAAKa,eAAe2E,IAC5C,CAEA,sBAAAP,CAAuB9F,EAAS+F,EAAYX,GAwB1CvG,OAAOyH,QAAQP,GAAYhH,SAAQ,EAAEiH,EAAUO,MAC7C,IAAIN,EACJM,EAAMxH,SAAQyH,IACZ,MAAMC,EAAe5F,KAAKS,uBAAuBkF,GAbrD,IAAuBE,EAAeC,EAc9BF,GAd8BE,EAeJ3G,GAfX0G,EAeHD,GAbJ,GAAG5D,MAAQ+D,KAAKC,IAC5BH,EAAc,GAAG7D,MACjB8D,EAAa,GAAG9D,OAGlB6D,EAAc,GAAG5D,IAAM8D,KAAKE,IAAIJ,EAAc,GAAG5D,IAAK6D,EAAa,GAAG7D,KAS7DmD,IACHA,EAAQ5F,EAAoB2F,IAAaA,EAASE,eAIjDd,EAAIlB,QAAOP,GAjCpB,SAAiBoD,EAAKC,EAAOC,GAC3B,IAAIC,EAASH,EAAIC,GACZE,IACHA,EAAS,CAAC,EAEVH,EAAIC,GAASE,GAEf,MAAMC,EAAYD,EAAOD,KAAU,EAEnC,OADAC,EAAOD,IAAS,EACTE,CACT,CAwBUC,CAAQvG,KAAKU,qBAAsBoC,EAAI,GAAGqC,KAAYQ,OACtDrI,QAEFsI,EAAa1H,SAAQsI,IACnBA,EAASpB,GAAOxG,KAAKO,EAAQ,MAI5Ba,KAAKW,0BAA0BgF,KAClC3F,KAAKW,0BAA0BgF,GAAQ,CAAC,GAErC3F,KAAKW,0BAA0BgF,GAAMR,KACxCnF,KAAKW,0BAA0BgF,GAAMR,GAAY,IAEnDnF,KAAKW,0BAA0BgF,GAAMR,GAAUvG,KAAKO,GACtD,GACA,GAEN,ECnSK,SAASsH,EAAYC,GAC1B,MAAMjJ,EAA6B,IAAKiJ,GACtCjJ,EAAEuE,OAAoB,EACxBvE,EAAE0G,OAAS,CAAE,IAAK,EAAG,KAAM,EAAG,IAAK,EAAG,SAAKtG,GAAY6I,EAAKvC,QAC5D1G,EAAEkJ,MAAQC,OAAOF,EAAKG,OACtBpJ,EAAEqJ,QAAUJ,EAAKK,SACE,OAAfL,EAAKzC,QACPxG,EAAEwG,WAAQpG,GAEO,OAAf6I,EAAKG,QACPpJ,EAAEwG,WAAQpG,GAEZ,MAAMmJ,EAAgB,IAAIC,IAAI,CAC5B,QACA,MACA,WACA,QACA,cACA,SACA,QACA,WAEF,IAAK,MAAMvD,KAAK1F,OAAOC,KAAKyI,EAAK9I,YAAa,CAC5C,IAAIsJ,EAAIxD,EAAE2B,cAMV,GALI2B,EAAcG,IAAID,KAGpBA,GAAK,KAEHR,EAAK9I,WAAW8F,GAAI,CACtB,IAAIG,EAAO6C,EAAK9I,WAAW8F,GACvBnF,MAAMC,QAAQqF,IAAyB,IAAhBA,EAAKvG,SAG9BuG,EAAOA,EAAK,GAAIuD,WAAW,SAAU,KAEvC3J,EAAEyJ,GAAKrD,CACT,CACF,CAuBA,OAtBApG,EAAEqJ,QAAUrJ,EAAEsJ,SACdtJ,EAAE4J,KAAO5J,EAAE6G,YAGPoC,EAAK3D,gBAAkB2D,EAAK3D,eAAezF,OAAS,IACtDG,EAAE6J,YAAcZ,EAAK3D,eAAewE,SAAQC,GAC1CA,EAAU9I,KAAI+I,GAAYhB,EAAYgB,QAI1ChK,EAAEsF,oBAAiBlF,EACnBJ,EAAEiJ,UAAO7I,EACTJ,EAAEwF,sBAAmBpF,EACrBJ,EAAEiK,eAAY7J,EACdJ,EAAEG,gBAAaC,EACfJ,EAAEsJ,cAAWlJ,EACbJ,EAAE6G,iBAAczG,EAChBJ,EAAEoJ,WAAQhJ,EAENJ,EAAE+G,gBACJ/G,EAAE+D,KAAO/D,EAAE+G,eAEN/G,CACT,CCtDA,MAAMkK,EACmB,oBAAhBC,YAA8B,IAAIA,YAAY,aAAU/J,EAIlD,MAAMgK,UAAmBC,EAAAA,uBACtCC,0BAA0D,CAAC,EAO3D,eAAcC,CAAUC,GACtB,MAAM,eAAEC,EAAiBA,QAAaD,GAAQ,CAAC,EACzCE,QAAaC,EAAAA,EAAAA,cACjBpI,KAAKqI,QAAQ,eACbrI,KAAKsI,eACLC,SAASN,GAELO,GAASC,EAAAA,EAAAA,QAAON,SACZO,EAAAA,EAAAA,cAAa,YAAaR,GAAgB,KAAMS,EAAAA,EAAAA,OAAMR,KAC5DA,EACES,EAAc,GACdC,EAAa,CAAC,EACpB,IAAIC,EAAa,EAEb9J,EAAI,EACR,KAAO8J,EAAaN,EAAOlL,QAAQ,CACjC,MAAMyL,EAAIP,EAAOQ,QAAQ,KAAMF,GAEzB5B,GACG,IAAP6B,EAAWP,EAAOS,SAASH,GAAcN,EAAOS,SAASH,EAAYC,GACjEhI,GAAQ4G,GAASuB,OAAOhC,IAAMA,EAAE9J,YAAY0G,OAClD,GAAI/C,EACF,GAAIA,EAAKoI,WAAW,KAClBP,EAAYhK,KAAKmC,OACZ,IAAIA,EAAKoI,WAAW,KACzB,MACK,CACL,MAAMC,EAAMrI,EAAKiI,QAAQ,MACnBlC,EAAU/F,EAAK4C,MAAM,EAAGyF,GACzBP,EAAW/B,KACd+B,EAAW/B,GAAW,IAExB+B,EAAW/B,IAAY,GAAG/F,KAC5B,EAEE/B,IAAM,KAAW,GACnBkJ,EACE,WAAWnC,KAAKsD,MAAMP,EAAa,KAAWQ,eAAe,YAAYvD,KAAKsD,MAAMb,EAAOlL,OAAS,KAAWgM,eAAe,eAIlIR,EAAaC,EAAI,CACnB,CAEA,MAAMQ,EAAkBvL,OAAOwL,YAC7BxL,OAAOyH,QAAQoD,GAAYnK,KAAI,EAAEoI,EAAS2C,KAAW,CACnD3C,EACC4C,IACC,IAAK1J,KAAK+H,0BAA0BjB,GAAU,CAC5C4C,IAAK,oBACL,MAAMC,EAAe,IAAIC,EAAAA,IClF9B,SAAyBC,GAC9B,IAAKA,EACH,MAAO,GAGT,MAAMC,EAAmB,GAEnBC,EAAS,IAAIpK,EAAO,CAExBM,gBAAiB2C,GAAQkH,EAAMlL,KAAKgE,GAEpCxC,cAAe4J,IACb,MAAMA,CAAG,IAIb,IAAK,MAAMjJ,KAAQ8I,EAAI/H,MAAM,SAC3BiI,EAAOjJ,QAAQC,GAIjB,OAFAgJ,EAAOvH,SAEAsH,CACT,ED6DcG,CAAgBR,GACfS,OACAxL,KACC,CAACjB,EAAGuB,IACF,IAAImL,EAAAA,cAAc,CAChBzD,KAAMD,EAAYhJ,GAClBqF,GAAI,GAAG9C,KAAK8C,MAAMgE,KAAW9H,QAGlCd,SAAQgI,GACPyD,EAAaS,OAAO,CAAClE,EAAImE,IAAI,SAAUnE,EAAImE,IAAI,QAASnE,KAE5DlG,KAAK+H,0BAA0BjB,GAAW6C,CAC5C,CACA,OAAO3J,KAAK+H,0BAA0BjB,EAAQ,MAKpD,MAAO,CACLwD,OAAQ1B,EAAYjK,KAAK,MACzB4K,kBAEJ,CAEA,cAAcgB,CAAStC,EAAoB,CAAC,GAQ1C,OAPKjI,KAAKwK,cACRxK,KAAKwK,YAAcxK,KAAKgI,UAAUC,GAAMwC,OAAOC,IAE7C,MADA1K,KAAKwK,iBAAc3M,EACb6M,CAAC,KAIJ1K,KAAKwK,WACd,CAEA,iBAAaG,CAAY1C,EAAoB,CAAC,GAC5C,MAAM,gBAAEsB,SAA0BvJ,KAAKuK,SAAStC,GAChD,OAAOjK,OAAOC,KAAKsL,EACrB,CAEA,eAAaqB,CAAU3C,EAAoB,CAAC,GAC1C,MAAM,OAAEqC,SAAiBtK,KAAKuK,SAAStC,GACvC,OAAOqC,CACT,CAEOO,WAAAA,CAAYC,EAAyB7C,EAAoB,CAAC,GAC/D,OAAO8C,EAAAA,EAAAA,mBAA0BC,UAC/B,IACE,MAAM,MAAEhJ,EAAK,IAAEC,EAAG,QAAE6E,GAAYgE,GAC1B,gBAAEvB,SAA0BvJ,KAAKuK,SAAStC,GAChDsB,EAAgBzC,KAAWmB,EAAKC,gBAC7B+C,OAAO,CAACjJ,EAAOC,IACf/D,SAAQT,IACPyN,EAASC,KAAK1N,EAAE,IAEpByN,EAASE,UACX,CAAE,MAAOV,GACPQ,EAASG,MAAMX,EACjB,IACCzC,EAAKqD,OACV,CACOC,aAAAA,GAAiC,E","sources":["../../../node_modules/gtf-nostream/src/util.ts","../../../node_modules/gtf-nostream/src/parse.ts","../../../plugins/gtf/src/util.ts","../../../plugins/gtf/src/GtfAdapter/GtfAdapter.ts","../../../node_modules/gtf-nostream/src/api.ts"],"sourcesContent":["//@ts-nocheck\n/** @module util */\n\n// Forks @gmod/gff-js and adapts it to parse and format GTF.\n\nconst fieldNames = [\n 'seq_name',\n 'source',\n 'featureType',\n 'start',\n 'end',\n 'score',\n 'strand',\n 'frame',\n 'attributes',\n]\n\n// TODO: check about enconding/escaping in gtf 9th column\n/**\n * Unescape a string/text value used in a GTF attribute.\n * Textual attributes should be surrounded by double quotes\n * source info:\n * https://mblab.wustl.edu/GTF22.html\n * https://en.wikipedia.org/wiki/Gene_transfer_format\n *\n * @param {String} s\n * @returns {String}\n */\nexport function unescape(s) {\n if (s === null) {\n return null\n }\n return String(s).replace(/%([0-9A-Fa-f]{2})/g, (_, seq) =>\n String.fromCharCode(parseInt(seq, 16)),\n )\n}\n\n/**\n * Escape a value for use in a GTF attribute value.\n *\n * @param {String} s\n * @returns {String}\n */\nfunction _escape(regex, s) {\n return String(s).replace(regex, ch => {\n let hex = ch.charCodeAt(0).toString(16).toUpperCase()\n\n // lol, apparently there's no native function for fixed-width hex output\n if (hex.length < 2) {\n hex = `0${hex}`\n }\n return `%${hex}`\n })\n}\n\nexport function escape(s) {\n // eslint-disable-next-line no-control-regex\n return _escape(/[\\n;\\r\\t=%&,\\x00-\\x1f\\x7f-\\xff]/g, s)\n}\n\n/**\n * Escape a value for use in a GTF column value.\n *\n * @param {String} s\n * @returns {String}\n */\nexport function escapeColumn(s) {\n // eslint-disable-next-line no-control-regex\n return _escape(/[\\n\\r\\t%\\x00-\\x1f\\x7f-\\xff]/g, s)\n}\n\n/**\n * Parse the 9th column (attributes) of a GTF feature line.\n *\n * @param {String} attrString\n * @returns {Object}\n */\nexport function parseAttributes(attrString) {\n if (!(attrString && attrString.length) || attrString === '.') {\n return {}\n }\n\n const attrs = {}\n\n attrString\n .replace(/\\r?\\n$/, '')\n .slice(0, -1) // need to remove the last semicolon in the attributes\n .split(';')\n .forEach(attribute => {\n if (!attribute) {\n return\n }\n const attr = attribute.trim().split(' ')\n if (!(attr[1] && attr[1].length)) {\n return\n }\n\n attr[0] = attr[0].trim()\n let arec = attrs[attr[0].trim()]\n if (!arec) {\n arec = []\n attrs[attr[0]] = arec\n }\n\n // arec.push(unescape(attr[1].trim()))\n arec.push(\n ...attr[1]\n .split(',')\n .map(s => s.trim())\n .map(unescape),\n )\n })\n return attrs\n}\n\n/**\n * Parse a GTF feature line.\n *\n * @param {String} line\n * returns the parsed line in an object\n */\nexport function parseFeature(line) {\n // assumed that there are no comments at the end of a line\n // split the line into columns and replace '.' with null in each column\n const f = line.split('\\t').map(a => (a === '.' ? null : a))\n\n // unescape only the seq_name, source, and feature columns\n f[0] = unescape(f[0])\n f[1] = unescape(f[1])\n f[2] = unescape(f[2])\n\n f[8] = parseAttributes(f[8])\n const parsed = {}\n for (let i = 0; i < fieldNames.length; i += 1) {\n parsed[fieldNames[i]] = f[i] === '.' ? null : f[i]\n }\n if (parsed.start !== null) {\n parsed.start = parseInt(parsed.start, 10)\n }\n if (parsed.end !== null) {\n parsed.end = parseInt(parsed.end, 10)\n }\n if (parsed.score !== null) {\n parsed.score = parseFloat(parsed.score, 10)\n }\n if (parsed.strand != null) {\n parsed.strand = parsed.strand\n }\n return parsed\n}\n\n/**\n * Parse a GTF directive/comment line.\n *\n * @param {String} line\n * @returns {Object} the information in the directive\n */\nexport function parseDirective(line) {\n const match = /^\\s*##\\s*(\\S+)\\s*(.*)/.exec(line)\n // const match = /^\\s*\\#\\#\\s*(\\S+)\\s*(.*)/.exec(line)\n if (!match) {\n return null\n }\n\n // let [, name, contents] = match\n const name = match[1]\n let contents = match[2]\n const parsed = { directive: name }\n if (contents.length) {\n contents = contents.replace(/\\r?\\n$/, '')\n parsed.value = contents\n }\n\n // do a little additional parsing for sequence-region and genome-build directives\n if (name === 'sequence-region') {\n const [seqId, contentStart, contentEnd] = contents.split(/\\s+/, 3)\n parsed.seq_id = seqId\n parsed.start = contentStart && contentStart.replace(/\\D/g, '')\n parsed.end = contentEnd && contentEnd.replace(/\\D/g, '')\n } else if (name === 'genome-build') {\n const [source, buildname] = contents.split(/\\s+/, 2)\n parsed.source = source\n parsed.buildname = buildname\n }\n\n return parsed\n}\n\n/**\n * Format an attributes object into a string suitable for the 9th column of GTF.\n *\n * @param {Object} attrs\n */\nexport function formatAttributes(attrs) {\n const attrOrder = []\n Object.keys(attrs).forEach(tag => {\n const val = attrs[tag]\n let valstring\n // eslint-disable-next-line no-prototype-builtins\n if (val.hasOwnProperty('toString')) {\n valstring = escape(val.toString())\n } else if (Array.isArray(val.values)) {\n valstring = val.values.map(escape).join(',')\n } else if (Array.isArray(val)) {\n valstring = val.map(escape).join(',')\n } else {\n valstring = escape(val)\n }\n attrOrder.push(`${escape(tag)} ${valstring}`)\n })\n return attrOrder.length ? attrOrder.join('; ').concat(';') : '.'\n}\n\nconst translateStrand = ['-', '.', '+']\n\nfunction _formatSingleFeature(f, seenFeature) {\n const attrString =\n f.attributes === null || f.attributes === undefined\n ? '.'\n : formatAttributes(f.attributes)\n\n const fields = []\n for (let i = 0; i < 8; i += 1) {\n const val = f[fieldNames[i]]\n // deserialize strand\n if (i === 6) {\n fields[i] =\n val === null || val === undefined\n ? '.'\n : translateStrand[val + 1] || val\n } else {\n fields[i] =\n val === null || val === undefined ? '.' : escapeColumn(String(val))\n }\n }\n fields[8] = attrString\n\n const formattedString = `${fields.join('\\t')}\\n`\n\n // if we have already output this exact feature, skip it\n if (seenFeature[formattedString]) {\n return ''\n }\n\n // eslint-disable-next-line no-param-reassign\n seenFeature[formattedString] = true\n return formattedString\n}\n\nfunction _formatFeature(feature, seenFeature) {\n if (Array.isArray(feature)) {\n return feature.map(f => _formatFeature(f, seenFeature)).join('')\n }\n\n const strings = [_formatSingleFeature(feature, seenFeature)]\n ;['child_features', 'derived_features'].forEach(multiSlot => {\n if (feature[multiSlot]) {\n strings.push(\n ...feature[multiSlot].map(f => _formatFeature(f, seenFeature)),\n )\n }\n })\n return strings.join('')\n}\n\n/**\n * Format a feature object or array of\n * feature objects into one or more lines of GTF.\n *\n * @param {Object|Array[Object]} featureOrFeatures\n */\nexport function formatFeature(featureOrFeatures) {\n const seen = {}\n return _formatFeature(featureOrFeatures, seen)\n}\n\n/**\n * Format a directive into a line of GTF.\n *\n * @param {Object} directive\n * @returns {String}\n */\nexport function formatDirective(directive) {\n let str = `##${directive.directive}`\n if (directive.value) {\n str += ` ${directive.value}`\n }\n str += '\\n'\n return str\n}\n\n/**\n * Format a comment into a GTF comment.\n * Yes I know this is just adding a # and a newline.\n *\n * @param {Object} comment\n * @returns {String}\n */\nexport function formatComment(comment) {\n return `# ${comment.comment}\\n`\n}\n\n/**\n * Format a sequence object as FASTA\n *\n * @param {Object} seq\n * @returns {String} formatted single FASTA sequence\n */\nexport function formatSequence(seq) {\n return `>${seq.id}${seq.description ? ` ${seq.description}` : ''}\\n${\n seq.sequence\n }\\n`\n}\n\n/**\n * Format a directive, comment, or feature,\n * or array of such items, into one or more lines of GTF.\n *\n * @param {Object|Array} itemOrItems\n */\nexport function formatItem(itemOrItems) {\n function formatSingleItem(item) {\n if (item[0] || item.attributes) {\n return formatFeature(item)\n }\n if (item.directive) {\n return formatDirective(item)\n }\n if (item.sequence) {\n return formatSequence(item)\n }\n if (item.comment) {\n return formatComment(item)\n }\n return '# (invalid item found during format)\\n'\n }\n\n if (Array.isArray(itemOrItems)) {\n return itemOrItems.map(item => formatSingleItem(item))\n }\n return formatSingleItem(itemOrItems)\n}\n","//@ts-nocheck\nimport * as GTF from './util'\n\nconst containerAttributes = {\n Parent: 'child_features',\n Derives_from: 'derived_features',\n}\n\nexport default class Parser {\n constructor(args) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const nullFunc = () => {}\n\n Object.assign(this, {\n featureCallback: args.featureCallback || nullFunc,\n endCallback: args.endCallback || nullFunc,\n commentCallback: args.commentCallback || nullFunc,\n errorCallback: args.errorCallback || nullFunc,\n directiveCallback: args.directiveCallback || nullFunc,\n sequenceCallback: args.sequenceCallback || nullFunc,\n\n // number of lines to buffer\n bufferSize: args.bufferSize === undefined ? 1000 : args.bufferSize,\n\n // features that we have to keep on hand for now because they\n // might be referenced by something else\n _underConstructionTopLevel: [],\n // index of the above by ID\n _underConstructionById: {},\n\n _completedReferences: {},\n\n // features that reference something we have not seen yet\n // structured as:\n // { 'some_id' : {\n // 'Parent' : [ orphans that have a Parent attr referencing it ],\n // 'Derives_from' : [ orphans that have a Derives_from attr referencing it ],\n // }\n // }\n _underConstructionOrphans: {},\n\n // if this is true, the parser ignores the\n // rest of the lines in the file.\n eof: false,\n\n lineNumber: 0,\n })\n }\n\n addLine(line) {\n if (this.eof) {\n // otherwise, if we are done, ignore this line\n return\n }\n\n this.lineNumber += 1\n\n if (/^\\s*[^#\\s>]/.test(line)) {\n // feature line, most common case\n this._bufferLine(line)\n return\n }\n\n const match = /^\\s*(#+)(.*)/.exec(line)\n if (match) {\n // directive or comment\n // eslint-disable-next-line prefer-const\n let [, hashsigns, contents] = match\n\n if (hashsigns.length === 3) {\n // sync directive, all forward-references are resolved.\n this._emitAllUnderConstructionFeatures()\n } else if (hashsigns.length === 2) {\n const directive = GTF.parseDirective(line)\n\n this._emitItem(directive)\n } else {\n contents = contents.replace(/\\s*/, '')\n this._emitItem({ comment: contents })\n }\n } else if (/^\\s*$/.test(line)) {\n // blank line, do nothing\n } else {\n // it's a parse error\n const errLine = line.replace(/\\r?\\n?$/g, '')\n throw new Error(`GTF parse error. Cannot parse '${errLine}'.`)\n }\n }\n\n _emitItem(i) {\n if (i[0]) {\n this.featureCallback(i)\n } else if (i.directive) {\n this.directiveCallback(i)\n } else if (i.comment) {\n this.commentCallback(i)\n }\n }\n\n finish() {\n this._emitAllUnderConstructionFeatures()\n this.endCallback()\n }\n\n _enforceBufferSizeLimit(additionalItemCount = 0) {\n const _unbufferItem = item => {\n if (\n item?.[0]?.attributes?.ID?.[0]\n ) {\n const ids = item[0].attributes.ID\n ids.forEach(id => {\n delete this._underConstructionById[id]\n delete this._completedReferences[id]\n })\n item.forEach(i => {\n if (i.child_features) {\n i.child_features.forEach(c => { _unbufferItem(c) })\n }\n if (i.derived_features) {\n i.derived_features.forEach(d => { _unbufferItem(d) })\n }\n })\n }\n }\n\n while (\n this._underConstructionTopLevel.length + additionalItemCount >\n this.bufferSize\n ) {\n const item = this._underConstructionTopLevel.shift()\n this._emitItem(item)\n _unbufferItem(item)\n }\n }\n\n /**\n * return all under-construction features, called when we know\n * there will be no additional data to attach to them\n * @private\n */\n _emitAllUnderConstructionFeatures() {\n this._underConstructionTopLevel.forEach(this._emitItem.bind(this))\n\n this._underConstructionTopLevel = []\n this._underConstructionById = {}\n this._completedReferences = {}\n\n // if we have any orphans hanging around still, this is a\n // problem. die with a parse error\n if (\n Object.values(this._underConstructionOrphans).filter(\n entry => Object.keys(entry).length,\n ).length\n ) {\n throw new Error(\n `some features reference other features that do not exist in the file (or in the same '###' scope). ${JSON.stringify(\n this._underConstructionOrphans,\n )}`,\n )\n }\n }\n\n // do the right thing with a newly-parsed feature line\n _bufferLine(line) {\n const featureLine = GTF.parseFeature(line)\n featureLine.child_features = []\n featureLine.derived_features = []\n // featureLine._lineNumber = this.lineNumber //< debugging aid\n\n const featureNumber = this.lineNumber // no such thing as unique ID in GTF. make one up.\n const isTranscript = featureLine.featureType === 'transcript' // trying to support the Cufflinks convention of adding a transcript line\n // NOTE: a feature is an arrayref of one or more feature lines.\n const ids = isTranscript\n ? featureLine.attributes.transcript_id || []\n : [featureNumber]\n const parents = isTranscript\n ? []\n : featureLine.attributes.transcript_id || []\n const derives = featureLine.attributes.Derives_from || []\n\n if (!ids.length && !parents.length && !derives.length) {\n // if it has no IDs and does not refer to anything, we can just\n // output it\n this._emitItem([featureLine])\n return\n }\n\n function createTranscript(feature) {\n const result = JSON.parse(JSON.stringify(feature))\n result.featureType = 'transcript'\n return GTF.formatFeature(result)\n }\n\n parents.forEach(parent => {\n const underConst = this._underConstructionById[parent]\n if (!underConst) {\n this._bufferLine(createTranscript(featureLine))\n }\n })\n\n let feature\n ids.forEach(id => {\n const existing = this._underConstructionById[id]\n if (existing) {\n existing.push(featureLine)\n feature = existing\n } else {\n // haven't seen it yet, so buffer it so we can attach\n // child features to it\n feature = [featureLine]\n\n this._enforceBufferSizeLimit(1)\n if (!parents.length && !derives.length) {\n this._underConstructionTopLevel.push(feature)\n }\n this._underConstructionById[id] = feature\n\n // see if we have anything buffered that refers to it\n this._resolveReferencesTo(feature, id)\n }\n })\n\n // try to resolve all its references\n this._resolveReferencesFrom(\n feature || [featureLine],\n { Parent: parents, Derives_from: derives },\n ids,\n )\n }\n\n _resolveReferencesTo(feature, id) {\n const references = this._underConstructionOrphans[id]\n if (!references) {\n return\n }\n\n Object.keys(references).forEach(attrname => {\n const pname = containerAttributes[attrname] || attrname.toLowerCase()\n feature.forEach(loc => {\n loc[pname].push(...references[attrname])\n delete references[attrname]\n })\n })\n }\n\n _parseError(message) {\n this.eof = true\n this.errorCallback(`${this.lineNumber}: ${message}`)\n }\n\n _resolveReferencesFrom(feature, references, ids) {\n // this is all a bit more awkward in javascript than it was in perl\n function postSet(obj, slot1, slot2) {\n let subObj = obj[slot1]\n if (!subObj) {\n subObj = {}\n \n obj[slot1] = subObj\n }\n const returnVal = subObj[slot2] || false\n subObj[slot2] = true\n return returnVal\n }\n\n function expandFeature(parentFeature, childFeature) {\n \n parentFeature[0].start = Math.min(\n parentFeature[0].start,\n childFeature[0].start,\n )\n \n parentFeature[0].end = Math.max(parentFeature[0].end, childFeature[0].end)\n }\n\n Object.entries(references).forEach(([attrname, toIds]) => {\n let pname\n toIds.forEach(toId => {\n const otherFeature = this._underConstructionById[toId]\n if (otherFeature) {\n expandFeature(otherFeature, feature)\n if (!pname) {\n pname = containerAttributes[attrname] || attrname.toLowerCase()\n }\n\n if (\n !ids.filter(id =>\n postSet(this._completedReferences, id, `${attrname},${toId}`),\n ).length\n ) {\n otherFeature.forEach(location => {\n location[pname].push(feature)\n })\n }\n } else {\n if (!this._underConstructionOrphans[toId]) {\n this._underConstructionOrphans[toId] = {}\n }\n if (!this._underConstructionOrphans[toId][attrname]) {\n this._underConstructionOrphans[toId][attrname] = []\n }\n this._underConstructionOrphans[toId][attrname].push(feature)\n }\n })\n })\n }\n}\n","export type Strand = '+' | '-' | '.' | '?'\nexport interface FeatureLoc {\n [key: string]: unknown\n start: number\n end: number\n strand: Strand\n seq_name: string\n child_features?: FeatureLoc[][]\n data: unknown\n derived_features: unknown\n attributes: Record\n}\n\nexport function featureData(data: FeatureLoc) {\n const f: Record = { ...data }\n ;(f.start as number) -= 1 // convert to interbase\n f.strand = { '+': 1, '-': -1, '.': 0, '?': undefined }[data.strand] // convert strand\n f.phase = Number(data.frame)\n f.refName = data.seq_name\n if (data.score === null) {\n f.score = undefined\n }\n if (data.frame === null) {\n f.score = undefined\n }\n const defaultFields = new Set([\n 'start',\n 'end',\n 'seq_name',\n 'score',\n 'featureType',\n 'source',\n 'frame',\n 'strand',\n ])\n for (const a of Object.keys(data.attributes)) {\n let b = a.toLowerCase()\n if (defaultFields.has(b)) {\n // add \"suffix\" to tag name if it already exists\n // reproduces behavior of NCList\n b += '2'\n }\n if (data.attributes[a]) {\n let attr = data.attributes[a] as string[] | string\n if (Array.isArray(attr) && attr.length === 1) {\n // gtf uses double quotes for text values in the attributes column,\n // remove them\n attr = attr[0]!.replaceAll(/^\"|\"$/g, '')\n }\n f[b] = attr\n }\n }\n f.refName = f.seq_name\n f.type = f.featureType\n\n // the SimpleFeature constructor takes care of recursively inflating subfeatures\n if (data.child_features && data.child_features.length > 0) {\n f.subfeatures = data.child_features.flatMap(childLocs =>\n childLocs.map(childLoc => featureData(childLoc)),\n )\n }\n\n f.child_features = undefined\n f.data = undefined\n f.derived_features = undefined\n f._linehash = undefined\n f.attributes = undefined\n f.seq_name = undefined\n f.featureType = undefined\n f.frame = undefined\n\n if (f.transcript_id) {\n f.name = f.transcript_id\n }\n return f\n}\n","import {\n BaseFeatureDataAdapter,\n BaseOptions,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\nimport { NoAssemblyRegion } from '@jbrowse/core/util/types'\nimport { openLocation } from '@jbrowse/core/util/io'\nimport { ObservableCreate } from '@jbrowse/core/util/rxjs'\nimport IntervalTree from '@flatten-js/interval-tree'\nimport {\n SimpleFeature,\n Feature,\n updateStatus,\n isGzip,\n} from '@jbrowse/core/util'\nimport { unzip } from '@gmod/bgzf-filehandle'\nimport { parseStringSync } from 'gtf-nostream'\nimport type { Buffer } from 'buffer'\n\n// locals\nimport { FeatureLoc, featureData } from '../util'\n\nconst decoder =\n typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined\n\ntype StatusCallback = (arg: string) => void\n\nexport default class GtfAdapter extends BaseFeatureDataAdapter {\n calculatedIntervalTreeMap: Record = {}\n\n gtfFeatures?: Promise<{\n header: string\n intervalTreeMap: Record IntervalTree>\n }>\n\n private async loadDataP(opts?: BaseOptions) {\n const { statusCallback = () => {} } = opts || {}\n const buf = (await openLocation(\n this.getConf('gtfLocation'),\n this.pluginManager,\n ).readFile(opts)) as Buffer\n\n const buffer = isGzip(buf)\n ? await updateStatus('Unzipping', statusCallback, () => unzip(buf))\n : buf\n const headerLines = []\n const featureMap = {} as Record\n let blockStart = 0\n\n let i = 0\n while (blockStart < buffer.length) {\n const n = buffer.indexOf('\\n', blockStart)\n // could be a non-newline ended file, so slice to end of file if n===-1\n const b =\n n === -1 ? buffer.subarray(blockStart) : buffer.subarray(blockStart, n)\n const line = (decoder?.decode(b) || b.toString()).trim()\n if (line) {\n if (line.startsWith('#')) {\n headerLines.push(line)\n } else if (line.startsWith('>')) {\n break\n } else {\n const ret = line.indexOf('\\t')\n const refName = line.slice(0, ret)\n if (!featureMap[refName]) {\n featureMap[refName] = ''\n }\n featureMap[refName] += `${line}\\n`\n }\n }\n if (i++ % 10_000 === 0) {\n statusCallback(\n `Loading ${Math.floor(blockStart / 1_000_000).toLocaleString('en-US')}/${Math.floor(buffer.length / 1_000_000).toLocaleString('en-US')} MB`,\n )\n }\n\n blockStart = n + 1\n }\n\n const intervalTreeMap = Object.fromEntries(\n Object.entries(featureMap).map(([refName, lines]) => [\n refName,\n (sc?: (arg: string) => void) => {\n if (!this.calculatedIntervalTreeMap[refName]) {\n sc?.('Parsing GTF data')\n const intervalTree = new IntervalTree()\n ;(parseStringSync(lines) as FeatureLoc[][])\n .flat()\n .map(\n (f, i) =>\n new SimpleFeature({\n data: featureData(f),\n id: `${this.id}-${refName}-${i}`,\n }),\n )\n .forEach(obj =>\n intervalTree.insert([obj.get('start'), obj.get('end')], obj),\n )\n this.calculatedIntervalTreeMap[refName] = intervalTree\n }\n return this.calculatedIntervalTreeMap[refName]\n },\n ]),\n )\n\n return {\n header: headerLines.join('\\n'),\n intervalTreeMap,\n }\n }\n\n private async loadData(opts: BaseOptions = {}) {\n if (!this.gtfFeatures) {\n this.gtfFeatures = this.loadDataP(opts).catch((e: unknown) => {\n this.gtfFeatures = undefined\n throw e\n })\n }\n\n return this.gtfFeatures\n }\n\n public async getRefNames(opts: BaseOptions = {}) {\n const { intervalTreeMap } = await this.loadData(opts)\n return Object.keys(intervalTreeMap)\n }\n\n public async getHeader(opts: BaseOptions = {}) {\n const { header } = await this.loadData(opts)\n return header\n }\n\n public getFeatures(query: NoAssemblyRegion, opts: BaseOptions = {}) {\n return ObservableCreate(async observer => {\n try {\n const { start, end, refName } = query\n const { intervalTreeMap } = await this.loadData(opts)\n intervalTreeMap[refName]?.(opts.statusCallback)\n .search([start, end])\n .forEach(f => {\n observer.next(f)\n })\n observer.complete()\n } catch (e) {\n observer.error(e)\n }\n }, opts.signal)\n }\n public freeResources(/* { region } */) {}\n}\n","import Parser from './parse'\n\nexport function parseStringSync(str: string): unknown[] {\n if (!str) {\n return []\n }\n\n const items: unknown[] = []\n\n const parser = new Parser({\n // @ts-expect-error\n featureCallback: item => items.push(item),\n // @ts-expect-error\n errorCallback: err => {\n throw err\n },\n })\n\n for (const line of str.split(/\\r?\\n/)) {\n parser.addLine(line)\n }\n parser.finish()\n\n return items\n}\n"],"names":["fieldNames","s","String","replace","_","seq","fromCharCode","parseInt","_escape","regex","ch","hex","charCodeAt","toString","toUpperCase","length","translateStrand","_formatSingleFeature","f","seenFeature","attrString","attributes","undefined","attrs","attrOrder","Object","keys","forEach","tag","val","valstring","hasOwnProperty","Array","isArray","values","map","join","push","concat","formatAttributes","fields","i","formattedString","_formatFeature","feature","strings","multiSlot","formatFeature","featureOrFeatures","containerAttributes","Parent","Derives_from","Parser","constructor","args","nullFunc","assign","this","featureCallback","endCallback","commentCallback","errorCallback","directiveCallback","sequenceCallback","bufferSize","_underConstructionTopLevel","_underConstructionById","_completedReferences","_underConstructionOrphans","eof","lineNumber","addLine","line","test","_bufferLine","match","exec","hashsigns","contents","_emitAllUnderConstructionFeatures","directive","name","parsed","value","seqId","contentStart","contentEnd","split","seq_id","start","end","source","buildname","_emitItem","comment","errLine","Error","finish","_enforceBufferSizeLimit","additionalItemCount","_unbufferItem","item","ID","id","child_features","c","derived_features","d","shift","bind","filter","entry","JSON","stringify","featureLine","a","slice","attribute","attr","trim","arec","parseAttributes","score","parseFloat","strand","featureNumber","isTranscript","featureType","ids","transcript_id","parents","derives","parent","result","parse","createTranscript","existing","_resolveReferencesTo","_resolveReferencesFrom","references","attrname","pname","toLowerCase","loc","_parseError","message","entries","toIds","toId","otherFeature","parentFeature","childFeature","Math","min","max","obj","slot1","slot2","subObj","returnVal","postSet","location","featureData","data","phase","Number","frame","refName","seq_name","defaultFields","Set","b","has","replaceAll","type","subfeatures","flatMap","childLocs","childLoc","_linehash","decoder","TextDecoder","GtfAdapter","BaseFeatureDataAdapter","calculatedIntervalTreeMap","loadDataP","opts","statusCallback","buf","openLocation","getConf","pluginManager","readFile","buffer","isGzip","updateStatus","unzip","headerLines","featureMap","blockStart","n","indexOf","subarray","decode","startsWith","ret","floor","toLocaleString","intervalTreeMap","fromEntries","lines","sc","intervalTree","IntervalTree","str","items","parser","err","parseStringSync","flat","SimpleFeature","insert","get","header","loadData","gtfFeatures","catch","e","getRefNames","getHeader","getFeatures","query","ObservableCreate","async","search","observer","next","complete","error","signal","freeResources"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1516.ca4ab8f0.chunk.js --- a/x/static/js/1516.ca4ab8f0.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1516],{51516:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y,getPaginationUtilityClass:()=>l,paginationClasses:()=>p});var o=a(7552),r=a(93878),i=a(70799),s=a(33761),n=a(85693);function l(e){return(0,n.Ay)("MuiPagination",e)}const p=(0,s.A)("MuiPagination",["root","ul","outlined","text"]);var d=a(97609),c=a(35960),u=a(51148),v=a(4785),g=a(69500);const m=(0,u.Ay)("nav",{name:"MuiPagination",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:a}=e;return[t.root,t[a.variant]]}})({}),b=(0,u.Ay)("ul",{name:"MuiPagination",slot:"Ul",overridesResolver:(e,t)=>t.ul})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"});function h(e,t,a){return"page"===e?`${a?"":"Go to "}page ${t}`:`Go to ${e} page`}const y=o.forwardRef((function(e,t){const a=(0,v.b)({props:e,name:"MuiPagination"}),{boundaryCount:o=1,className:s,color:n="standard",count:p=1,defaultPage:u=1,disabled:y=!1,getItemAriaLabel:x=h,hideNextButton:A=!1,hidePrevButton:f=!1,onChange:$,page:C,renderItem:P=e=>(0,g.jsx)(c.A,{...e}),shape:w="circular",showFirstButton:z=!1,showLastButton:k=!1,siblingCount:M=1,size:R="medium",variant:O="text",...S}=a,{items:L}=function(e={}){const{boundaryCount:t=1,componentName:a="usePagination",count:o=1,defaultPage:r=1,disabled:i=!1,hideNextButton:s=!1,hidePrevButton:n=!1,onChange:l,page:p,showFirstButton:c=!1,showLastButton:u=!1,siblingCount:v=1,...g}=e,[m,b]=(0,d.A)({controlled:p,default:r,name:a,state:"page"}),h=(e,t)=>{p||b(t),l&&l(e,t)},y=(e,t)=>{const a=t-e+1;return Array.from({length:a},((t,a)=>e+a))},x=y(1,Math.min(t,o)),A=y(Math.max(o-t+1,t+1),o),f=Math.max(Math.min(m-v,o-t-2*v-1),t+2),$=Math.min(Math.max(m+v,t+2*v+2),o-t-1),C=[...c?["first"]:[],...n?[]:["previous"],...x,...f>t+2?["start-ellipsis"]:t+1t?[o-t]:[],...A,...s?[]:["next"],...u?["last"]:[]],P=e=>{switch(e){case"first":return 1;case"previous":return m-1;case"next":return m+1;case"last":return o;default:return null}};return{items:C.map((e=>"number"==typeof e?{onClick:t=>{h(t,e)},type:"page",page:e,selected:e===m,disabled:i,"aria-current":e===m?"true":void 0}:{onClick:t=>{h(t,P(e))},type:e,page:P(e),selected:!1,disabled:i||!e.includes("ellipsis")&&("next"===e||"last"===e?m>=o:m<=1)})),...g}}({...a,componentName:"Pagination"}),N={...a,boundaryCount:o,color:n,count:p,defaultPage:u,disabled:y,getItemAriaLabel:x,hideNextButton:A,hidePrevButton:f,renderItem:P,shape:w,showFirstButton:z,showLastButton:k,siblingCount:M,size:R,variant:O},j=(e=>{const{classes:t,variant:a}=e,o={root:["root",a],ul:["ul"]};return(0,i.A)(o,l,t)})(N);return(0,g.jsx)(m,{"aria-label":"pagination navigation",className:(0,r.A)(j.root,s),ownerState:N,ref:t,...S,children:(0,g.jsx)(b,{className:j.ul,ownerState:N,children:L.map(((e,t)=>(0,g.jsx)("li",{children:P({...e,color:n,"aria-label":x(e.type,e.page,e.selected),shape:w,size:R,variant:O})},t)))})})}))},35960:(e,t,a)=>{a.d(t,{A:()=>z});var o=a(7552),r=a(93878),i=a(70799),s=a(72639),n=a(93876),l=a(9547),p=a(48054),d=a(15622),c=a(58520),u=a(30627),v=a(27103),g=a(74893),m=a(69500);const b=(0,g.A)((0,m.jsx)("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"NavigateBefore"),h=(0,g.A)((0,m.jsx)("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext");var y=a(43045),x=a(51148),A=a(60129),f=a(4785);const $=(e,t)=>{const{ownerState:a}=e;return[t.root,t[a.variant],t[`size${(0,d.A)(a.size)}`],"text"===a.variant&&t[`text${(0,d.A)(a.color)}`],"outlined"===a.variant&&t[`outlined${(0,d.A)(a.color)}`],"rounded"===a.shape&&t.rounded,"page"===a.type&&t.page,("start-ellipsis"===a.type||"end-ellipsis"===a.type)&&t.ellipsis,("previous"===a.type||"next"===a.type)&&t.previousNext,("first"===a.type||"last"===a.type)&&t.firstLast]},C=(0,x.Ay)("div",{name:"MuiPaginationItem",slot:"Root",overridesResolver:$})((0,A.A)((({theme:e})=>({...e.typography.body2,borderRadius:16,textAlign:"center",boxSizing:"border-box",minWidth:32,padding:"0 6px",margin:"0 3px",color:(e.vars||e).palette.text.primary,height:"auto",[`&.${l.A.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},variants:[{props:{size:"small"},style:{minWidth:26,borderRadius:13,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,borderRadius:20,padding:"0 10px",fontSize:e.typography.pxToRem(15)}}]})))),P=(0,x.Ay)(p.A,{name:"MuiPaginationItem",slot:"Root",overridesResolver:$})((0,A.A)((({theme:e})=>({...e.typography.body2,borderRadius:16,textAlign:"center",boxSizing:"border-box",minWidth:32,height:32,padding:"0 6px",margin:"0 3px",color:(e.vars||e).palette.text.primary,[`&.${l.A.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${l.A.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},transition:e.transitions.create(["color","background-color"],{duration:e.transitions.duration.short}),"&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${l.A.selected}`]:{backgroundColor:(e.vars||e).palette.action.selected,"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,s.X4)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${l.A.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,s.X4)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)},[`&.${l.A.disabled}`]:{opacity:1,color:(e.vars||e).palette.action.disabled,backgroundColor:(e.vars||e).palette.action.selected}},variants:[{props:{size:"small"},style:{minWidth:26,height:26,borderRadius:13,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,height:40,borderRadius:20,padding:"0 10px",fontSize:e.typography.pxToRem(15)}},{props:{shape:"rounded"},style:{borderRadius:(e.vars||e).shape.borderRadius}},{props:{variant:"outlined"},style:{border:e.vars?`1px solid rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:"1px solid "+("light"===e.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),[`&.${l.A.selected}`]:{[`&.${l.A.disabled}`]:{borderColor:(e.vars||e).palette.action.disabledBackground,color:(e.vars||e).palette.action.disabled}}}},{props:{variant:"text"},style:{[`&.${l.A.selected}`]:{[`&.${l.A.disabled}`]:{color:(e.vars||e).palette.action.disabled}}}},...Object.entries(e.palette).filter((0,c.A)(["dark","contrastText"])).map((([t])=>({props:{variant:"text",color:t},style:{[`&.${l.A.selected}`]:{color:(e.vars||e).palette[t].contrastText,backgroundColor:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:(e.vars||e).palette[t].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t].main}},[`&.${l.A.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t].dark},[`&.${l.A.disabled}`]:{color:(e.vars||e).palette.action.disabled}}}}))),...Object.entries(e.palette).filter((0,c.A)(["light"])).map((([t])=>({props:{variant:"outlined",color:t},style:{[`&.${l.A.selected}`]:{color:(e.vars||e).palette[t].main,border:`1px solid ${e.vars?`rgba(${e.vars.palette[t].mainChannel} / 0.5)`:(0,s.X4)(e.palette[t].main,.5)}`,backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.activatedOpacity})`:(0,s.X4)(e.palette[t].main,e.palette.action.activatedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / calc(${e.vars.palette.action.activatedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,s.X4)(e.palette[t].main,e.palette.action.activatedOpacity+e.palette.action.focusOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${l.A.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / calc(${e.vars.palette.action.activatedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,s.X4)(e.palette[t].main,e.palette.action.activatedOpacity+e.palette.action.focusOpacity)}}}})))]})))),w=(0,x.Ay)("div",{name:"MuiPaginationItem",slot:"Icon",overridesResolver:(e,t)=>t.icon})((0,A.A)((({theme:e})=>({fontSize:e.typography.pxToRem(20),margin:"0 -8px",variants:[{props:{size:"small"},style:{fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:e.typography.pxToRem(22)}}]})))),z=o.forwardRef((function(e,t){const a=(0,f.b)({props:e,name:"MuiPaginationItem"}),{className:o,color:s="standard",component:p,components:c={},disabled:g=!1,page:x,selected:A=!1,shape:$="circular",size:z="medium",slots:k={},slotProps:M={},type:R="page",variant:O="text",...S}=a,L={...a,color:s,disabled:g,selected:A,shape:$,size:z,type:R,variant:O},N=(0,n.I)(),j=(e=>{const{classes:t,color:a,disabled:o,selected:r,size:s,shape:n,type:p,variant:c}=e,u={root:["root",`size${(0,d.A)(s)}`,c,n,"standard"!==a&&`color${(0,d.A)(a)}`,"standard"!==a&&`${c}${(0,d.A)(a)}`,o&&"disabled",r&&"selected",{page:"page",first:"firstLast",last:"firstLast","start-ellipsis":"ellipsis","end-ellipsis":"ellipsis",previous:"previousNext",next:"previousNext"}[p]],icon:["icon"]};return(0,i.A)(u,l.q,t)})(L),B={slots:{previous:k.previous??c.previous,next:k.next??c.next,first:k.first??c.first,last:k.last??c.last},slotProps:M},[I,T]=(0,y.A)("previous",{elementType:b,externalForwardedProps:B,ownerState:L}),[F,W]=(0,y.A)("next",{elementType:h,externalForwardedProps:B,ownerState:L}),[X,V]=(0,y.A)("first",{elementType:u.A,externalForwardedProps:B,ownerState:L}),[_,q]=(0,y.A)("last",{elementType:v.A,externalForwardedProps:B,ownerState:L}),G=N?{previous:"next",next:"previous",first:"last",last:"first"}[R]:R,U={previous:I,next:F,first:X,last:_}[G],H={previous:T,next:W,first:V,last:q}[G];return"start-ellipsis"===R||"end-ellipsis"===R?(0,m.jsx)(C,{ref:t,ownerState:L,className:(0,r.A)(j.root,o),children:"…"}):(0,m.jsxs)(P,{ref:t,ownerState:L,component:p,disabled:g,className:(0,r.A)(j.root,o),...S,children:["page"===R&&x,U?(0,m.jsx)(w,{...H,className:j.icon,as:U}):null]})}))},9547:(e,t,a)=>{a.d(t,{A:()=>s,q:()=>i});var o=a(33761),r=a(85693);function i(e){return(0,r.Ay)("MuiPaginationItem",e)}const s=(0,o.A)("MuiPaginationItem",["root","page","sizeSmall","sizeLarge","text","textPrimary","textSecondary","outlined","outlinedPrimary","outlinedSecondary","rounded","ellipsis","firstLast","previousNext","focusVisible","disabled","selected","icon","colorPrimary","colorSecondary"])},30627:(e,t,a)=>{a.d(t,{A:()=>i}),a(7552);var o=a(74893),r=a(69500);const i=(0,o.A)((0,r.jsx)("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage")},27103:(e,t,a)=>{a.d(t,{A:()=>i}),a(7552);var o=a(74893),r=a(69500);const i=(0,o.A)((0,r.jsx)("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage")}}]); -//# sourceMappingURL=1516.ca4ab8f0.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1516.ca4ab8f0.chunk.js.map --- a/x/static/js/1516.ca4ab8f0.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1516.ca4ab8f0.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/Pagination/paginationClasses.js","../../../node_modules/@mui/material/Pagination/Pagination.js","../../../node_modules/@mui/material/usePagination/usePagination.js","../../../node_modules/@mui/material/internal/svg-icons/NavigateBefore.js","../../../node_modules/@mui/material/internal/svg-icons/NavigateNext.js","../../../node_modules/@mui/material/PaginationItem/PaginationItem.js","../../../node_modules/@mui/material/PaginationItem/paginationItemClasses.js","../../../node_modules/@mui/material/internal/svg-icons/FirstPage.js","../../../node_modules/@mui/material/internal/svg-icons/LastPage.js"],"sourcesContent":["import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getPaginationUtilityClass(slot) {\n return generateUtilityClass('MuiPagination', slot);\n}\nconst paginationClasses = generateUtilityClasses('MuiPagination', ['root', 'ul', 'outlined', 'text']);\nexport default paginationClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport integerPropType from '@mui/utils/integerPropType';\nimport { getPaginationUtilityClass } from \"./paginationClasses.js\";\nimport usePagination from \"../usePagination/index.js\";\nimport PaginationItem from \"../PaginationItem/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant\n } = ownerState;\n const slots = {\n root: ['root', variant],\n ul: ['ul']\n };\n return composeClasses(slots, getPaginationUtilityClass, classes);\n};\nconst PaginationRoot = styled('nav', {\n name: 'MuiPagination',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant]];\n }\n})({});\nconst PaginationUl = styled('ul', {\n name: 'MuiPagination',\n slot: 'Ul',\n overridesResolver: (props, styles) => styles.ul\n})({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n padding: 0,\n margin: 0,\n listStyle: 'none'\n});\nfunction defaultGetAriaLabel(type, page, selected) {\n if (type === 'page') {\n return `${selected ? '' : 'Go to '}page ${page}`;\n }\n return `Go to ${type} page`;\n}\nconst Pagination = /*#__PURE__*/React.forwardRef(function Pagination(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiPagination'\n });\n const {\n boundaryCount = 1,\n className,\n color = 'standard',\n count = 1,\n defaultPage = 1,\n disabled = false,\n getItemAriaLabel = defaultGetAriaLabel,\n hideNextButton = false,\n hidePrevButton = false,\n onChange,\n page,\n renderItem = item => /*#__PURE__*/_jsx(PaginationItem, {\n ...item\n }),\n shape = 'circular',\n showFirstButton = false,\n showLastButton = false,\n siblingCount = 1,\n size = 'medium',\n variant = 'text',\n ...other\n } = props;\n const {\n items\n } = usePagination({\n ...props,\n componentName: 'Pagination'\n });\n const ownerState = {\n ...props,\n boundaryCount,\n color,\n count,\n defaultPage,\n disabled,\n getItemAriaLabel,\n hideNextButton,\n hidePrevButton,\n renderItem,\n shape,\n showFirstButton,\n showLastButton,\n siblingCount,\n size,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(PaginationRoot, {\n \"aria-label\": \"pagination navigation\",\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: /*#__PURE__*/_jsx(PaginationUl, {\n className: classes.ul,\n ownerState: ownerState,\n children: items.map((item, index) => /*#__PURE__*/_jsx(\"li\", {\n children: renderItem({\n ...item,\n color,\n 'aria-label': getItemAriaLabel(item.type, item.page, item.selected),\n shape,\n size,\n variant\n })\n }, index))\n })\n });\n});\n\n// @default tags synced with default values from usePagination\n\nprocess.env.NODE_ENV !== \"production\" ? Pagination.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Number of always visible pages at the beginning and end.\n * @default 1\n */\n boundaryCount: integerPropType,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The active color.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'standard'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'standard']), PropTypes.string]),\n /**\n * The total number of pages.\n * @default 1\n */\n count: integerPropType,\n /**\n * The page selected by default when the component is uncontrolled.\n * @default 1\n */\n defaultPage: integerPropType,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current page.\n * This is important for screen reader users.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @param {string} type The link or button type to format ('page' | 'first' | 'last' | 'next' | 'previous' | 'start-ellipsis' | 'end-ellipsis'). Defaults to 'page'.\n * @param {number | null} page The page number to format.\n * @param {boolean} selected If true, the current page is selected.\n * @returns {string}\n */\n getItemAriaLabel: PropTypes.func,\n /**\n * If `true`, hide the next-page button.\n * @default false\n */\n hideNextButton: PropTypes.bool,\n /**\n * If `true`, hide the previous-page button.\n * @default false\n */\n hidePrevButton: PropTypes.bool,\n /**\n * Callback fired when the page is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onChange: PropTypes.func,\n /**\n * The current page. Unlike `TablePagination`, which starts numbering from `0`, this pagination starts from `1`.\n */\n page: integerPropType,\n /**\n * Render the item.\n * @param {PaginationRenderItemParams} params The props to spread on a PaginationItem.\n * @returns {ReactNode}\n * @default (item) => \n */\n renderItem: PropTypes.func,\n /**\n * The shape of the pagination items.\n * @default 'circular'\n */\n shape: PropTypes.oneOf(['circular', 'rounded']),\n /**\n * If `true`, show the first-page button.\n * @default false\n */\n showFirstButton: PropTypes.bool,\n /**\n * If `true`, show the last-page button.\n * @default false\n */\n showLastButton: PropTypes.bool,\n /**\n * Number of always visible pages before and after the current page.\n * @default 1\n */\n siblingCount: integerPropType,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'text'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['outlined', 'text']), PropTypes.string])\n} : void 0;\nexport default Pagination;","'use client';\n\nimport useControlled from '@mui/utils/useControlled';\nexport default function usePagination(props = {}) {\n // keep default values in sync with @default tags in Pagination.propTypes\n const {\n boundaryCount = 1,\n componentName = 'usePagination',\n count = 1,\n defaultPage = 1,\n disabled = false,\n hideNextButton = false,\n hidePrevButton = false,\n onChange: handleChange,\n page: pageProp,\n showFirstButton = false,\n showLastButton = false,\n siblingCount = 1,\n ...other\n } = props;\n const [page, setPageState] = useControlled({\n controlled: pageProp,\n default: defaultPage,\n name: componentName,\n state: 'page'\n });\n const handleClick = (event, value) => {\n if (!pageProp) {\n setPageState(value);\n }\n if (handleChange) {\n handleChange(event, value);\n }\n };\n\n // https://dev.to/namirsab/comment/2050\n const range = (start, end) => {\n const length = end - start + 1;\n return Array.from({\n length\n }, (_, i) => start + i);\n };\n const startPages = range(1, Math.min(boundaryCount, count));\n const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);\n const siblingsStart = Math.max(Math.min(\n // Natural start\n page - siblingCount,\n // Lower boundary when page is high\n count - boundaryCount - siblingCount * 2 - 1),\n // Greater than startPages\n boundaryCount + 2);\n const siblingsEnd = Math.min(Math.max(\n // Natural end\n page + siblingCount,\n // Upper boundary when page is low\n boundaryCount + siblingCount * 2 + 2),\n // Less than endPages\n count - boundaryCount - 1);\n\n // Basic list of items to render\n // for example itemList = ['first', 'previous', 1, 'ellipsis', 4, 5, 6, 'ellipsis', 10, 'next', 'last']\n const itemList = [...(showFirstButton ? ['first'] : []), ...(hidePrevButton ? [] : ['previous']), ...startPages,\n // Start ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsStart > boundaryCount + 2 ? ['start-ellipsis'] : boundaryCount + 1 < count - boundaryCount ? [boundaryCount + 1] : []),\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n // End ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsEnd < count - boundaryCount - 1 ? ['end-ellipsis'] : count - boundaryCount > boundaryCount ? [count - boundaryCount] : []), ...endPages, ...(hideNextButton ? [] : ['next']), ...(showLastButton ? ['last'] : [])];\n\n // Map the button type to its page number\n const buttonPage = type => {\n switch (type) {\n case 'first':\n return 1;\n case 'previous':\n return page - 1;\n case 'next':\n return page + 1;\n case 'last':\n return count;\n default:\n return null;\n }\n };\n\n // Convert the basic item list to PaginationItem props objects\n const items = itemList.map(item => {\n return typeof item === 'number' ? {\n onClick: event => {\n handleClick(event, item);\n },\n type: 'page',\n page: item,\n selected: item === page,\n disabled,\n 'aria-current': item === page ? 'true' : undefined\n } : {\n onClick: event => {\n handleClick(event, buttonPage(item));\n },\n type: item,\n page: buttonPage(item),\n selected: false,\n disabled: disabled || !item.includes('ellipsis') && (item === 'next' || item === 'last' ? page >= count : page <= 1)\n };\n });\n return {\n items,\n ...other\n };\n}","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"\n}), 'NavigateBefore');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'NavigateNext');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport paginationItemClasses, { getPaginationItemUtilityClass } from \"./paginationItemClasses.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport FirstPageIcon from \"../internal/svg-icons/FirstPage.js\";\nimport LastPageIcon from \"../internal/svg-icons/LastPage.js\";\nimport NavigateBeforeIcon from \"../internal/svg-icons/NavigateBefore.js\";\nimport NavigateNextIcon from \"../internal/svg-icons/NavigateNext.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.variant === 'text' && styles[`text${capitalize(ownerState.color)}`], ownerState.variant === 'outlined' && styles[`outlined${capitalize(ownerState.color)}`], ownerState.shape === 'rounded' && styles.rounded, ownerState.type === 'page' && styles.page, (ownerState.type === 'start-ellipsis' || ownerState.type === 'end-ellipsis') && styles.ellipsis, (ownerState.type === 'previous' || ownerState.type === 'next') && styles.previousNext, (ownerState.type === 'first' || ownerState.type === 'last') && styles.firstLast];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disabled,\n selected,\n size,\n shape,\n type,\n variant\n } = ownerState;\n const slots = {\n root: ['root', `size${capitalize(size)}`, variant, shape, color !== 'standard' && `color${capitalize(color)}`, color !== 'standard' && `${variant}${capitalize(color)}`, disabled && 'disabled', selected && 'selected', {\n page: 'page',\n first: 'firstLast',\n last: 'firstLast',\n 'start-ellipsis': 'ellipsis',\n 'end-ellipsis': 'ellipsis',\n previous: 'previousNext',\n next: 'previousNext'\n }[type]],\n icon: ['icon']\n };\n return composeClasses(slots, getPaginationItemUtilityClass, classes);\n};\nconst PaginationItemEllipsis = styled('div', {\n name: 'MuiPaginationItem',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n borderRadius: 32 / 2,\n textAlign: 'center',\n boxSizing: 'border-box',\n minWidth: 32,\n padding: '0 6px',\n margin: '0 3px',\n color: (theme.vars || theme).palette.text.primary,\n height: 'auto',\n [`&.${paginationItemClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n minWidth: 26,\n borderRadius: 26 / 2,\n margin: '0 1px',\n padding: '0 4px'\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n minWidth: 40,\n borderRadius: 40 / 2,\n padding: '0 10px',\n fontSize: theme.typography.pxToRem(15)\n }\n }]\n})));\nconst PaginationItemPage = styled(ButtonBase, {\n name: 'MuiPaginationItem',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n borderRadius: 32 / 2,\n textAlign: 'center',\n boxSizing: 'border-box',\n minWidth: 32,\n height: 32,\n padding: '0 6px',\n margin: '0 3px',\n color: (theme.vars || theme).palette.text.primary,\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`&.${paginationItemClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n transition: theme.transitions.create(['color', 'background-color'], {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${paginationItemClasses.selected}`]: {\n backgroundColor: (theme.vars || theme).palette.action.selected,\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette.action.selected\n }\n },\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n },\n [`&.${paginationItemClasses.disabled}`]: {\n opacity: 1,\n color: (theme.vars || theme).palette.action.disabled,\n backgroundColor: (theme.vars || theme).palette.action.selected\n }\n },\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n minWidth: 26,\n height: 26,\n borderRadius: 26 / 2,\n margin: '0 1px',\n padding: '0 4px'\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n minWidth: 40,\n height: 40,\n borderRadius: 40 / 2,\n padding: '0 10px',\n fontSize: theme.typography.pxToRem(15)\n }\n }, {\n props: {\n shape: 'rounded'\n },\n style: {\n borderRadius: (theme.vars || theme).shape.borderRadius\n }\n }, {\n props: {\n variant: 'outlined'\n },\n style: {\n border: theme.vars ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : `1px solid ${theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'}`,\n [`&.${paginationItemClasses.selected}`]: {\n [`&.${paginationItemClasses.disabled}`]: {\n borderColor: (theme.vars || theme).palette.action.disabledBackground,\n color: (theme.vars || theme).palette.action.disabled\n }\n }\n }\n }, {\n props: {\n variant: 'text'\n },\n style: {\n [`&.${paginationItemClasses.selected}`]: {\n [`&.${paginationItemClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n }\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['dark', 'contrastText'])).map(([color]) => ({\n props: {\n variant: 'text',\n color\n },\n style: {\n [`&.${paginationItemClasses.selected}`]: {\n color: (theme.vars || theme).palette[color].contrastText,\n backgroundColor: (theme.vars || theme).palette[color].main,\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette[color].dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette[color].main\n }\n },\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette[color].dark\n },\n [`&.${paginationItemClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n }\n }\n })), ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['light'])).map(([color]) => ({\n props: {\n variant: 'outlined',\n color\n },\n style: {\n [`&.${paginationItemClasses.selected}`]: {\n color: (theme.vars || theme).palette[color].main,\n border: `1px solid ${theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / 0.5)` : alpha(theme.palette[color].main, 0.5)}`,\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.activatedOpacity})` : alpha(theme.palette[color].main, theme.palette.action.activatedOpacity),\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette[color].main, theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette[color].main, theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity)\n }\n }\n }\n }))]\n})));\nconst PaginationItemPageIcon = styled('div', {\n name: 'MuiPaginationItem',\n slot: 'Icon',\n overridesResolver: (props, styles) => styles.icon\n})(memoTheme(({\n theme\n}) => ({\n fontSize: theme.typography.pxToRem(20),\n margin: '0 -8px',\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n fontSize: theme.typography.pxToRem(18)\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n fontSize: theme.typography.pxToRem(22)\n }\n }]\n})));\nconst PaginationItem = /*#__PURE__*/React.forwardRef(function PaginationItem(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiPaginationItem'\n });\n const {\n className,\n color = 'standard',\n component,\n components = {},\n disabled = false,\n page,\n selected = false,\n shape = 'circular',\n size = 'medium',\n slots = {},\n slotProps = {},\n type = 'page',\n variant = 'text',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n disabled,\n selected,\n shape,\n size,\n type,\n variant\n };\n const isRtl = useRtl();\n const classes = useUtilityClasses(ownerState);\n const externalForwardedProps = {\n slots: {\n previous: slots.previous ?? components.previous,\n next: slots.next ?? components.next,\n first: slots.first ?? components.first,\n last: slots.last ?? components.last\n },\n slotProps\n };\n const [PreviousSlot, previousSlotProps] = useSlot('previous', {\n elementType: NavigateBeforeIcon,\n externalForwardedProps,\n ownerState\n });\n const [NextSlot, nextSlotProps] = useSlot('next', {\n elementType: NavigateNextIcon,\n externalForwardedProps,\n ownerState\n });\n const [FirstSlot, firstSlotProps] = useSlot('first', {\n elementType: FirstPageIcon,\n externalForwardedProps,\n ownerState\n });\n const [LastSlot, lastSlotProps] = useSlot('last', {\n elementType: LastPageIcon,\n externalForwardedProps,\n ownerState\n });\n const rtlAwareType = isRtl ? {\n previous: 'next',\n next: 'previous',\n first: 'last',\n last: 'first'\n }[type] : type;\n const IconSlot = {\n previous: PreviousSlot,\n next: NextSlot,\n first: FirstSlot,\n last: LastSlot\n }[rtlAwareType];\n const iconSlotProps = {\n previous: previousSlotProps,\n next: nextSlotProps,\n first: firstSlotProps,\n last: lastSlotProps\n }[rtlAwareType];\n return type === 'start-ellipsis' || type === 'end-ellipsis' ? /*#__PURE__*/_jsx(PaginationItemEllipsis, {\n ref: ref,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n children: \"\\u2026\"\n }) : /*#__PURE__*/_jsxs(PaginationItemPage, {\n ref: ref,\n ownerState: ownerState,\n component: component,\n disabled: disabled,\n className: clsx(classes.root, className),\n ...other,\n children: [type === 'page' && page, IconSlot ? /*#__PURE__*/_jsx(PaginationItemPageIcon, {\n ...iconSlotProps,\n className: classes.icon,\n as: IconSlot\n }) : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? PaginationItem.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The active color.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'standard'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'standard']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n components: PropTypes.shape({\n first: PropTypes.elementType,\n last: PropTypes.elementType,\n next: PropTypes.elementType,\n previous: PropTypes.elementType\n }),\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The current page number.\n */\n page: PropTypes.node,\n /**\n * If `true` the pagination item is selected.\n * @default false\n */\n selected: PropTypes.bool,\n /**\n * The shape of the pagination item.\n * @default 'circular'\n */\n shape: PropTypes.oneOf(['circular', 'rounded']),\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n first: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n last: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n next: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n previous: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n first: PropTypes.elementType,\n last: PropTypes.elementType,\n next: PropTypes.elementType,\n previous: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The type of pagination item.\n * @default 'page'\n */\n type: PropTypes.oneOf(['end-ellipsis', 'first', 'last', 'next', 'page', 'previous', 'start-ellipsis']),\n /**\n * The variant to use.\n * @default 'text'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['outlined', 'text']), PropTypes.string])\n} : void 0;\nexport default PaginationItem;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getPaginationItemUtilityClass(slot) {\n return generateUtilityClass('MuiPaginationItem', slot);\n}\nconst paginationItemClasses = generateUtilityClasses('MuiPaginationItem', ['root', 'page', 'sizeSmall', 'sizeLarge', 'text', 'textPrimary', 'textSecondary', 'outlined', 'outlinedPrimary', 'outlinedSecondary', 'rounded', 'ellipsis', 'firstLast', 'previousNext', 'focusVisible', 'disabled', 'selected', 'icon', 'colorPrimary', 'colorSecondary']);\nexport default paginationItemClasses;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\"\n}), 'FirstPage');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"\n}), 'LastPage');"],"names":["getPaginationUtilityClass","slot","generateUtilityClass","generateUtilityClasses","PaginationRoot","styled","name","overridesResolver","props","styles","ownerState","root","variant","PaginationUl","ul","display","flexWrap","alignItems","padding","margin","listStyle","defaultGetAriaLabel","type","page","selected","inProps","ref","boundaryCount","className","color","count","defaultPage","disabled","getItemAriaLabel","hideNextButton","hidePrevButton","onChange","renderItem","item","PaginationItem","shape","showFirstButton","showLastButton","siblingCount","size","other","items","componentName","handleChange","pageProp","setPageState","useControlled","controlled","default","state","handleClick","event","value","range","start","end","length","Array","from","_","i","startPages","Math","min","endPages","max","siblingsStart","siblingsEnd","itemList","buttonPage","map","onClick","undefined","includes","usePagination","classes","slots","composeClasses","useUtilityClasses","clsx","children","index","createSvgIcon","d","capitalize","rounded","ellipsis","previousNext","firstLast","PaginationItemEllipsis","memoTheme","theme","typography","body2","borderRadius","textAlign","boxSizing","minWidth","vars","palette","text","primary","height","paginationItemClasses","opacity","action","disabledOpacity","variants","style","fontSize","pxToRem","PaginationItemPage","ButtonBase","focusVisible","backgroundColor","focus","transition","transitions","create","duration","short","hover","selectedChannel","selectedOpacity","hoverOpacity","focusOpacity","border","common","onBackgroundChannel","mode","borderColor","disabledBackground","Object","entries","filter","createSimplePaletteValueFilter","contrastText","main","dark","mainChannel","activatedOpacity","PaginationItemPageIcon","icon","component","components","slotProps","isRtl","first","last","previous","next","externalForwardedProps","PreviousSlot","previousSlotProps","useSlot","elementType","NavigateBefore","NextSlot","nextSlotProps","NavigateNext","FirstSlot","firstSlotProps","FirstPage","LastSlot","lastSlotProps","LastPage","rtlAwareType","IconSlot","iconSlotProps","as","getPaginationItemUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1537.4fdb4e95.chunk.js --- a/x/static/js/1537.4fdb4e95.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1537],{7720:(e,t,o)=>{o.d(t,{A:()=>n});var r=o(74893),a=o(69500);const n=(0,r.A)((0,a.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore")},63165:(e,t,o)=>{o.d(t,{A:()=>p});var r=o(7552),a=o(93878),n=o(70799),s=o(51148),i=o(60129),d=o(4785),c=o(79509),l=o(69500);const u=(0,s.Ay)("div",{name:"MuiAccordionDetails",slot:"Root",overridesResolver:(e,t)=>t.root})((0,i.A)((({theme:e})=>({padding:e.spacing(1,2,2)})))),p=r.forwardRef((function(e,t){const o=(0,d.b)({props:e,name:"MuiAccordionDetails"}),{className:r,...s}=o,i=o,p=(e=>{const{classes:t}=e;return(0,n.A)({root:["root"]},c.n,t)})(i);return(0,l.jsx)(u,{className:(0,a.A)(p.root,r),ref:t,ownerState:i,...s})}))},79509:(e,t,o)=>{o.d(t,{A:()=>s,n:()=>n});var r=o(33761),a=o(85693);function n(e){return(0,a.Ay)("MuiAccordionDetails",e)}const s=(0,r.A)("MuiAccordionDetails",["root"])},41578:(e,t,o)=>{o.d(t,{A:()=>x});var r=o(7552),a=o(93878),n=o(70799),s=o(51148),i=o(60129),d=o(4785),c=o(48054),l=o(51132),u=o(33761),p=o(85693);function m(e){return(0,p.Ay)("MuiAccordionSummary",e)}const A=(0,u.A)("MuiAccordionSummary",["root","expanded","focusVisible","disabled","gutters","contentGutters","content","expandIconWrapper"]);var v=o(69500);const b=(0,s.Ay)(c.A,{name:"MuiAccordionSummary",slot:"Root",overridesResolver:(e,t)=>t.root})((0,i.A)((({theme:e})=>{const t={duration:e.transitions.duration.shortest};return{display:"flex",minHeight:48,padding:e.spacing(0,2),transition:e.transitions.create(["min-height","background-color"],t),[`&.${A.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${A.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`&:hover:not(.${A.disabled})`]:{cursor:"pointer"},variants:[{props:e=>!e.disableGutters,style:{[`&.${A.expanded}`]:{minHeight:64}}}]}}))),h=(0,s.Ay)("div",{name:"MuiAccordionSummary",slot:"Content",overridesResolver:(e,t)=>t.content})((0,i.A)((({theme:e})=>({display:"flex",flexGrow:1,margin:"12px 0",variants:[{props:e=>!e.disableGutters,style:{transition:e.transitions.create(["margin"],{duration:e.transitions.duration.shortest}),[`&.${A.expanded}`]:{margin:"20px 0"}}}]})))),f=(0,s.Ay)("div",{name:"MuiAccordionSummary",slot:"ExpandIconWrapper",overridesResolver:(e,t)=>t.expandIconWrapper})((0,i.A)((({theme:e})=>({display:"flex",color:(e.vars||e).palette.action.active,transform:"rotate(0deg)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shortest}),[`&.${A.expanded}`]:{transform:"rotate(180deg)"}})))),x=r.forwardRef((function(e,t){const o=(0,d.b)({props:e,name:"MuiAccordionSummary"}),{children:s,className:i,expandIcon:c,focusVisibleClassName:u,onClick:p,...A}=o,{disabled:x=!1,disableGutters:y,expanded:g,toggle:C}=r.useContext(l.A),M={...o,expanded:g,disabled:x,disableGutters:y},w=(e=>{const{classes:t,expanded:o,disabled:r,disableGutters:a}=e,s={root:["root",o&&"expanded",r&&"disabled",!a&&"gutters"],focusVisible:["focusVisible"],content:["content",o&&"expanded",!a&&"contentGutters"],expandIconWrapper:["expandIconWrapper",o&&"expanded"]};return(0,n.A)(s,m,t)})(M);return(0,v.jsxs)(b,{focusRipple:!1,disableRipple:!0,disabled:x,component:"div","aria-expanded":g,className:(0,a.A)(w.root,i),focusVisibleClassName:(0,a.A)(w.focusVisible,u),onClick:e=>{C&&C(e),p&&p(e)},ref:t,ownerState:M,...A,children:[(0,v.jsx)(h,{className:w.content,ownerState:M,children:s}),c&&(0,v.jsx)(f,{className:w.expandIconWrapper,ownerState:M,children:c})]})}))},1773:(e,t,o)=>{o.d(t,{A:()=>p});var r=o(7552),a=o(93878),n=o(70799),s=o(51148),i=o(4785),d=o(943),c=o(50885),l=o(69500);const u=(0,s.Ay)(d.A,{name:"MuiCard",slot:"Root",overridesResolver:(e,t)=>t.root})({overflow:"hidden"}),p=r.forwardRef((function(e,t){const o=(0,i.b)({props:e,name:"MuiCard"}),{className:r,raised:s=!1,...d}=o,p={...o,raised:s},m=(e=>{const{classes:t}=e;return(0,n.A)({root:["root"]},c.T,t)})(p);return(0,l.jsx)(u,{className:(0,a.A)(m.root,r),elevation:s?8:void 0,ref:t,ownerState:p,...d})}))},50885:(e,t,o)=>{o.d(t,{A:()=>s,T:()=>n});var r=o(33761),a=o(85693);function n(e){return(0,a.Ay)("MuiCard",e)}const s=(0,r.A)("MuiCard",["root"])},25355:(e,t,o)=>{o.d(t,{A:()=>u});var r=o(7552),a=o(93878),n=o(70799),s=o(51148),i=o(4785),d=o(61823),c=o(69500);const l=(0,s.Ay)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:16,"&:last-child":{paddingBottom:24}}),u=r.forwardRef((function(e,t){const o=(0,i.b)({props:e,name:"MuiCardContent"}),{className:r,component:s="div",...u}=o,p={...o,component:s},m=(e=>{const{classes:t}=e;return(0,n.A)({root:["root"]},d.h,t)})(p);return(0,c.jsx)(l,{as:s,className:(0,a.A)(m.root,r),ownerState:p,ref:t,...u})}))},61823:(e,t,o)=>{o.d(t,{A:()=>s,h:()=>n});var r=o(33761),a=o(85693);function n(e){return(0,a.Ay)("MuiCardContent",e)}const s=(0,r.A)("MuiCardContent",["root"])},26875:(e,t,o)=>{o.d(t,{A:()=>b});var r=o(7552),a=o(93878),n=o(70799),s=o(90175),i=o(36715),d=o(51148),c=o(4785),l=o(63439),u=o(69500);const p=(0,d.Ay)("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:(e,t)=>({[`& .${l.A.title}`]:t.title,[`& .${l.A.subheader}`]:t.subheader,...t.root})})({display:"flex",alignItems:"center",padding:16}),m=(0,d.Ay)("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:(e,t)=>t.avatar})({display:"flex",flex:"0 0 auto",marginRight:16}),A=(0,d.Ay)("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:(e,t)=>t.action})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),v=(0,d.Ay)("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:(e,t)=>t.content})({flex:"1 1 auto",[`.${s.A.root}:where(& .${l.A.title})`]:{display:"block"},[`.${s.A.root}:where(& .${l.A.subheader})`]:{display:"block"}}),b=r.forwardRef((function(e,t){const o=(0,c.b)({props:e,name:"MuiCardHeader"}),{action:r,avatar:s,className:d,component:b="div",disableTypography:h=!1,subheader:f,subheaderTypographyProps:x,title:y,titleTypographyProps:g,...C}=o,M={...o,component:b,disableTypography:h},w=(e=>{const{classes:t}=e;return(0,n.A)({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},l.u,t)})(M);let R=y;null==R||R.type===i.A||h||(R=(0,u.jsx)(i.A,{variant:s?"body2":"h5",className:w.title,component:"span",...g,children:R}));let N=f;return null==N||N.type===i.A||h||(N=(0,u.jsx)(i.A,{variant:s?"body2":"body1",className:w.subheader,color:"textSecondary",component:"span",...x,children:N})),(0,u.jsxs)(p,{className:(0,a.A)(w.root,d),as:b,ref:t,ownerState:M,...C,children:[s&&(0,u.jsx)(m,{className:w.avatar,ownerState:M,children:s}),(0,u.jsxs)(v,{className:w.content,ownerState:M,children:[R,N]}),r&&(0,u.jsx)(A,{className:w.action,ownerState:M,children:r})]})}))},63439:(e,t,o)=>{o.d(t,{A:()=>s,u:()=>n});var r=o(33761),a=o(85693);function n(e){return(0,a.Ay)("MuiCardHeader",e)}const s=(0,r.A)("MuiCardHeader",["root","avatar","action","content","title","subheader"])}}]); -//# sourceMappingURL=1537.4fdb4e95.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1537.4fdb4e95.chunk.js.map --- a/x/static/js/1537.4fdb4e95.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1537.4fdb4e95.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/icons-material/esm/ExpandMore.js","../../../node_modules/@mui/material/AccordionDetails/AccordionDetails.js","../../../node_modules/@mui/material/AccordionDetails/accordionDetailsClasses.js","../../../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../../../node_modules/@mui/material/AccordionSummary/AccordionSummary.js","../../../node_modules/@mui/material/Card/Card.js","../../../node_modules/@mui/material/Card/cardClasses.js","../../../node_modules/@mui/material/CardContent/CardContent.js","../../../node_modules/@mui/material/CardContent/cardContentClasses.js","../../../node_modules/@mui/material/CardHeader/CardHeader.js","../../../node_modules/@mui/material/CardHeader/cardHeaderClasses.js"],"sourcesContent":["\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getAccordionDetailsUtilityClass } from \"./accordionDetailsClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getAccordionDetailsUtilityClass, classes);\n};\nconst AccordionDetailsRoot = styled('div', {\n name: 'MuiAccordionDetails',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => ({\n padding: theme.spacing(1, 2, 2)\n})));\nconst AccordionDetails = /*#__PURE__*/React.forwardRef(function AccordionDetails(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAccordionDetails'\n });\n const {\n className,\n ...other\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AccordionDetailsRoot, {\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionDetails.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AccordionDetails;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAccordionDetailsUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionDetails', slot);\n}\nconst accordionDetailsClasses = generateUtilityClasses('MuiAccordionDetails', ['root']);\nexport default accordionDetailsClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAccordionSummaryUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionSummary', slot);\n}\nconst accordionSummaryClasses = generateUtilityClasses('MuiAccordionSummary', ['root', 'expanded', 'focusVisible', 'disabled', 'gutters', 'contentGutters', 'content', 'expandIconWrapper']);\nexport default accordionSummaryClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport AccordionContext from \"../Accordion/AccordionContext.js\";\nimport accordionSummaryClasses, { getAccordionSummaryUtilityClass } from \"./accordionSummaryClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n focusVisible: ['focusVisible'],\n content: ['content', expanded && 'expanded', !disableGutters && 'contentGutters'],\n expandIconWrapper: ['expandIconWrapper', expanded && 'expanded']\n };\n return composeClasses(slots, getAccordionSummaryUtilityClass, classes);\n};\nconst AccordionSummaryRoot = styled(ButtonBase, {\n name: 'MuiAccordionSummary',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return {\n display: 'flex',\n minHeight: 48,\n padding: theme.spacing(0, 2),\n transition: theme.transitions.create(['min-height', 'background-color'], transition),\n [`&.${accordionSummaryClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`&.${accordionSummaryClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n [`&:hover:not(.${accordionSummaryClasses.disabled})`]: {\n cursor: 'pointer'\n },\n variants: [{\n props: props => !props.disableGutters,\n style: {\n [`&.${accordionSummaryClasses.expanded}`]: {\n minHeight: 64\n }\n }\n }]\n };\n}));\nconst AccordionSummaryContent = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n flexGrow: 1,\n margin: '12px 0',\n variants: [{\n props: props => !props.disableGutters,\n style: {\n transition: theme.transitions.create(['margin'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n margin: '20px 0'\n }\n }\n }]\n})));\nconst AccordionSummaryExpandIconWrapper = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'ExpandIconWrapper',\n overridesResolver: (props, styles) => styles.expandIconWrapper\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n color: (theme.vars || theme).palette.action.active,\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n transform: 'rotate(180deg)'\n }\n})));\nconst AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAccordionSummary'\n });\n const {\n children,\n className,\n expandIcon,\n focusVisibleClassName,\n onClick,\n ...other\n } = props;\n const {\n disabled = false,\n disableGutters,\n expanded,\n toggle\n } = React.useContext(AccordionContext);\n const handleChange = event => {\n if (toggle) {\n toggle(event);\n }\n if (onClick) {\n onClick(event);\n }\n };\n const ownerState = {\n ...props,\n expanded,\n disabled,\n disableGutters\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionSummaryRoot, {\n focusRipple: false,\n disableRipple: true,\n disabled: disabled,\n component: \"div\",\n \"aria-expanded\": expanded,\n className: clsx(classes.root, className),\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n onClick: handleChange,\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [/*#__PURE__*/_jsx(AccordionSummaryContent, {\n className: classes.content,\n ownerState: ownerState,\n children: children\n }), expandIcon && /*#__PURE__*/_jsx(AccordionSummaryExpandIconWrapper, {\n className: classes.expandIconWrapper,\n ownerState: ownerState,\n children: expandIcon\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionSummary.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The icon to display as the expand indicator.\n */\n expandIcon: PropTypes.node,\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AccordionSummary;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Paper from \"../Paper/index.js\";\nimport { getCardUtilityClass } from \"./cardClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardUtilityClass, classes);\n};\nconst CardRoot = styled(Paper, {\n name: 'MuiCard',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n overflow: 'hidden'\n});\nconst Card = /*#__PURE__*/React.forwardRef(function Card(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCard'\n });\n const {\n className,\n raised = false,\n ...other\n } = props;\n const ownerState = {\n ...props,\n raised\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardRoot, {\n className: clsx(classes.root, className),\n elevation: raised ? 8 : undefined,\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the card will use raised styling.\n * @default false\n */\n raised: chainPropTypes(PropTypes.bool, props => {\n if (props.raised && props.variant === 'outlined') {\n return new Error('MUI: Combining `raised={true}` with `variant=\"outlined\"` has no effect.');\n }\n return null;\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Card;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardUtilityClass(slot) {\n return generateUtilityClass('MuiCard', slot);\n}\nconst cardClasses = generateUtilityClasses('MuiCard', ['root']);\nexport default cardClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getCardContentUtilityClass } from \"./cardContentClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardContentUtilityClass, classes);\n};\nconst CardContentRoot = styled('div', {\n name: 'MuiCardContent',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: 16,\n '&:last-child': {\n paddingBottom: 24\n }\n});\nconst CardContent = /*#__PURE__*/React.forwardRef(function CardContent(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardContent'\n });\n const {\n className,\n component = 'div',\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardContentRoot, {\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardContent.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardContent;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardContentUtilityClass(slot) {\n return generateUtilityClass('MuiCardContent', slot);\n}\nconst cardContentClasses = generateUtilityClasses('MuiCardContent', ['root']);\nexport default cardContentClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Typography, { typographyClasses } from \"../Typography/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport cardHeaderClasses, { getCardHeaderUtilityClass } from \"./cardHeaderClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n avatar: ['avatar'],\n action: ['action'],\n content: ['content'],\n title: ['title'],\n subheader: ['subheader']\n };\n return composeClasses(slots, getCardHeaderUtilityClass, classes);\n};\nconst CardHeaderRoot = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Root',\n overridesResolver: (props, styles) => ({\n [`& .${cardHeaderClasses.title}`]: styles.title,\n [`& .${cardHeaderClasses.subheader}`]: styles.subheader,\n ...styles.root\n })\n})({\n display: 'flex',\n alignItems: 'center',\n padding: 16\n});\nconst CardHeaderAvatar = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Avatar',\n overridesResolver: (props, styles) => styles.avatar\n})({\n display: 'flex',\n flex: '0 0 auto',\n marginRight: 16\n});\nconst CardHeaderAction = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n flex: '0 0 auto',\n alignSelf: 'flex-start',\n marginTop: -4,\n marginRight: -8,\n marginBottom: -4\n});\nconst CardHeaderContent = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})({\n flex: '1 1 auto',\n [`.${typographyClasses.root}:where(& .${cardHeaderClasses.title})`]: {\n display: 'block'\n },\n [`.${typographyClasses.root}:where(& .${cardHeaderClasses.subheader})`]: {\n display: 'block'\n }\n});\nconst CardHeader = /*#__PURE__*/React.forwardRef(function CardHeader(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardHeader'\n });\n const {\n action,\n avatar,\n className,\n component = 'div',\n disableTypography = false,\n subheader: subheaderProp,\n subheaderTypographyProps,\n title: titleProp,\n titleTypographyProps,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n disableTypography\n };\n const classes = useUtilityClasses(ownerState);\n let title = titleProp;\n if (title != null && title.type !== Typography && !disableTypography) {\n title = /*#__PURE__*/_jsx(Typography, {\n variant: avatar ? 'body2' : 'h5',\n className: classes.title,\n component: \"span\",\n ...titleTypographyProps,\n children: title\n });\n }\n let subheader = subheaderProp;\n if (subheader != null && subheader.type !== Typography && !disableTypography) {\n subheader = /*#__PURE__*/_jsx(Typography, {\n variant: avatar ? 'body2' : 'body1',\n className: classes.subheader,\n color: \"textSecondary\",\n component: \"span\",\n ...subheaderTypographyProps,\n children: subheader\n });\n }\n return /*#__PURE__*/_jsxs(CardHeaderRoot, {\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [avatar && /*#__PURE__*/_jsx(CardHeaderAvatar, {\n className: classes.avatar,\n ownerState: ownerState,\n children: avatar\n }), /*#__PURE__*/_jsxs(CardHeaderContent, {\n className: classes.content,\n ownerState: ownerState,\n children: [title, subheader]\n }), action && /*#__PURE__*/_jsx(CardHeaderAction, {\n className: classes.action,\n ownerState: ownerState,\n children: action\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardHeader.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The action to display in the card header.\n */\n action: PropTypes.node,\n /**\n * The Avatar element to display.\n */\n avatar: PropTypes.node,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, `subheader` and `title` won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `title` text, and optional `subheader` text\n * with the Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n /**\n * The content of the component.\n */\n subheader: PropTypes.node,\n /**\n * These props will be forwarded to the subheader\n * (as long as disableTypography is not `true`).\n */\n subheaderTypographyProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The content of the component.\n */\n title: PropTypes.node,\n /**\n * These props will be forwarded to the title\n * (as long as disableTypography is not `true`).\n */\n titleTypographyProps: PropTypes.object\n} : void 0;\nexport default CardHeader;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardHeaderUtilityClass(slot) {\n return generateUtilityClass('MuiCardHeader', slot);\n}\nconst cardHeaderClasses = generateUtilityClasses('MuiCardHeader', ['root', 'avatar', 'action', 'content', 'title', 'subheader']);\nexport default cardHeaderClasses;"],"names":["d","AccordionDetailsRoot","name","slot","overridesResolver","props","styles","root","theme","padding","spacing","inProps","ref","className","other","ownerState","classes","useUtilityClasses","getAccordionDetailsUtilityClass","getAccordionSummaryUtilityClass","generateUtilityClass","generateUtilityClasses","AccordionSummaryRoot","styled","ButtonBase","memoTheme","transition","duration","transitions","shortest","display","minHeight","create","focusVisible","backgroundColor","vars","palette","action","focus","disabled","opacity","disabledOpacity","cursor","variants","disableGutters","style","expanded","AccordionSummaryContent","content","flexGrow","margin","AccordionSummaryExpandIconWrapper","expandIconWrapper","color","active","transform","children","expandIcon","focusVisibleClassName","onClick","toggle","AccordionContext","A","slots","composeClasses","focusRipple","disableRipple","component","clsx","event","CardRoot","overflow","raised","elevation","undefined","getCardUtilityClass","CardContentRoot","paddingBottom","as","getCardContentUtilityClass","CardHeaderRoot","title","subheader","alignItems","CardHeaderAvatar","avatar","flex","marginRight","CardHeaderAction","alignSelf","marginTop","marginBottom","CardHeaderContent","disableTypography","subheaderProp","subheaderTypographyProps","titleProp","titleTypographyProps","type","variant","getCardHeaderUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1598.3b48685f.chunk.js --- a/x/static/js/1598.3b48685f.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1598],{26875:(e,a,t)=>{t.d(a,{A:()=>y});var r=t(7552),o=t(93878),s=t(70799),n=t(90175),l=t(36715),i=t(51148),d=t(4785),c=t(63439),u=t(69500);const h=(0,i.Ay)("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:(e,a)=>({[`& .${c.A.title}`]:a.title,[`& .${c.A.subheader}`]:a.subheader,...a.root})})({display:"flex",alignItems:"center",padding:16}),p=(0,i.Ay)("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:(e,a)=>a.avatar})({display:"flex",flex:"0 0 auto",marginRight:16}),b=(0,i.Ay)("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:(e,a)=>a.action})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),v=(0,i.Ay)("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:(e,a)=>a.content})({flex:"1 1 auto",[`.${n.A.root}:where(& .${c.A.title})`]:{display:"block"},[`.${n.A.root}:where(& .${c.A.subheader})`]:{display:"block"}}),y=r.forwardRef((function(e,a){const t=(0,d.b)({props:e,name:"MuiCardHeader"}),{action:r,avatar:n,className:i,component:y="div",disableTypography:A=!1,subheader:m,subheaderTypographyProps:g,title:f,titleTypographyProps:w,...x}=t,C={...t,component:y,disableTypography:A},H=(e=>{const{classes:a}=e;return(0,s.A)({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},c.u,a)})(C);let j=f;null==j||j.type===l.A||A||(j=(0,u.jsx)(l.A,{variant:n?"body2":"h5",className:H.title,component:"span",...w,children:j}));let R=m;return null==R||R.type===l.A||A||(R=(0,u.jsx)(l.A,{variant:n?"body2":"body1",className:H.subheader,color:"textSecondary",component:"span",...g,children:R})),(0,u.jsxs)(h,{className:(0,o.A)(H.root,i),as:y,ref:a,ownerState:C,...x,children:[n&&(0,u.jsx)(p,{className:H.avatar,ownerState:C,children:n}),(0,u.jsxs)(v,{className:H.content,ownerState:C,children:[j,R]}),r&&(0,u.jsx)(b,{className:H.action,ownerState:C,children:r})]})}))},63439:(e,a,t)=>{t.d(a,{A:()=>n,u:()=>s});var r=t(33761),o=t(85693);function s(e){return(0,o.Ay)("MuiCardHeader",e)}const n=(0,r.A)("MuiCardHeader",["root","avatar","action","content","title","subheader"])},31598:(e,a,t)=>{t.r(a),t.d(a,{cardHeaderClasses:()=>o.A,default:()=>r.A,getCardHeaderUtilityClass:()=>o.u});var r=t(26875),o=t(63439)}}]); -//# sourceMappingURL=1598.3b48685f.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1598.3b48685f.chunk.js.map --- a/x/static/js/1598.3b48685f.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1598.3b48685f.chunk.js","mappings":"+OAWA,MAcMA,GAAiB,QAAO,MAAO,CACnCC,KAAM,gBACNC,KAAM,OACNC,kBAAmB,CAACC,EAAOC,KAAW,CACpC,CAAC,MAAM,IAAkBC,SAAUD,EAAOC,MAC1C,CAAC,MAAM,IAAkBC,aAAcF,EAAOE,aAC3CF,EAAOG,QANS,CAQpB,CACDC,QAAS,OACTC,WAAY,SACZC,QAAS,KAELC,GAAmB,QAAO,MAAO,CACrCX,KAAM,gBACNC,KAAM,SACNC,kBAAmB,CAACC,EAAOC,IAAWA,EAAOQ,QAHtB,CAItB,CACDJ,QAAS,OACTK,KAAM,WACNC,YAAa,KAETC,GAAmB,QAAO,MAAO,CACrCf,KAAM,gBACNC,KAAM,SACNC,kBAAmB,CAACC,EAAOC,IAAWA,EAAOY,QAHtB,CAItB,CACDH,KAAM,WACNI,UAAW,aACXC,WAAY,EACZJ,aAAc,EACdK,cAAe,IAEXC,GAAoB,QAAO,MAAO,CACtCpB,KAAM,gBACNC,KAAM,UACNC,kBAAmB,CAACC,EAAOC,IAAWA,EAAOiB,SAHrB,CAIvB,CACDR,KAAM,WACN,CAAC,IAAI,IAAkBN,iBAAiB,IAAkBF,UAAW,CACnEG,QAAS,SAEX,CAAC,IAAI,IAAkBD,iBAAiB,IAAkBD,cAAe,CACvEE,QAAS,WAiIb,EA9HgC,cAAiB,SAAoBc,EAASC,GAC5E,MAAMpB,GAAQ,OAAgB,CAC5BA,MAAOmB,EACPtB,KAAM,mBAEF,OACJgB,EAAM,OACNJ,EAAM,UACNY,EAAS,UACTC,EAAY,MAAK,kBACjBC,GAAoB,EACpBpB,UAAWqB,EAAa,yBACxBC,EACAvB,MAAOwB,EAAS,qBAChBC,KACGC,GACD5B,EACE6B,EAAa,IACd7B,EACHsB,YACAC,qBAEIO,EAlFkBD,KACxB,MAAM,QACJC,GACED,EASJ,OAAO,OARO,CACZzB,KAAM,CAAC,QACPK,OAAQ,CAAC,UACTI,OAAQ,CAAC,UACTK,QAAS,CAAC,WACVhB,MAAO,CAAC,SACRC,UAAW,CAAC,cAEe,IAA2B2B,EAAQ,EAsEhDC,CAAkBF,GAClC,IAAI3B,EAAQwB,EACC,MAATxB,GAAiBA,EAAM8B,OAAS,KAAeT,IACjDrB,GAAqB,SAAK,IAAY,CACpC+B,QAASxB,EAAS,QAAU,KAC5BY,UAAWS,EAAQ5B,MACnBoB,UAAW,UACRK,EACHO,SAAUhC,KAGd,IAAIC,EAAYqB,EAWhB,OAViB,MAAbrB,GAAqBA,EAAU6B,OAAS,KAAeT,IACzDpB,GAAyB,SAAK,IAAY,CACxC8B,QAASxB,EAAS,QAAU,QAC5BY,UAAWS,EAAQ3B,UACnBgC,MAAO,gBACPb,UAAW,UACRG,EACHS,SAAU/B,MAGM,UAAMP,EAAgB,CACxCyB,WAAW,OAAKS,EAAQ1B,KAAMiB,GAC9Be,GAAId,EACJF,IAAKA,EACLS,WAAYA,KACTD,EACHM,SAAU,CAACzB,IAAuB,SAAKD,EAAkB,CACvDa,UAAWS,EAAQrB,OACnBoB,WAAYA,EACZK,SAAUzB,KACK,UAAMQ,EAAmB,CACxCI,UAAWS,EAAQZ,QACnBW,WAAYA,EACZK,SAAU,CAAChC,EAAOC,KAChBU,IAAuB,SAAKD,EAAkB,CAChDS,UAAWS,EAAQjB,OACnBgB,WAAYA,EACZK,SAAUrB,MAGhB,G,qECrIO,SAASwB,EAA0BvC,GACxC,OAAO,QAAqB,gBAAiBA,EAC/C,CACA,MACA,GAD0B,OAAuB,gBAAiB,CAAC,OAAQ,SAAU,SAAU,UAAW,QAAS,a","sources":["../../../node_modules/@mui/material/CardHeader/CardHeader.js","../../../node_modules/@mui/material/CardHeader/cardHeaderClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Typography, { typographyClasses } from \"../Typography/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport cardHeaderClasses, { getCardHeaderUtilityClass } from \"./cardHeaderClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n avatar: ['avatar'],\n action: ['action'],\n content: ['content'],\n title: ['title'],\n subheader: ['subheader']\n };\n return composeClasses(slots, getCardHeaderUtilityClass, classes);\n};\nconst CardHeaderRoot = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Root',\n overridesResolver: (props, styles) => ({\n [`& .${cardHeaderClasses.title}`]: styles.title,\n [`& .${cardHeaderClasses.subheader}`]: styles.subheader,\n ...styles.root\n })\n})({\n display: 'flex',\n alignItems: 'center',\n padding: 16\n});\nconst CardHeaderAvatar = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Avatar',\n overridesResolver: (props, styles) => styles.avatar\n})({\n display: 'flex',\n flex: '0 0 auto',\n marginRight: 16\n});\nconst CardHeaderAction = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n flex: '0 0 auto',\n alignSelf: 'flex-start',\n marginTop: -4,\n marginRight: -8,\n marginBottom: -4\n});\nconst CardHeaderContent = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})({\n flex: '1 1 auto',\n [`.${typographyClasses.root}:where(& .${cardHeaderClasses.title})`]: {\n display: 'block'\n },\n [`.${typographyClasses.root}:where(& .${cardHeaderClasses.subheader})`]: {\n display: 'block'\n }\n});\nconst CardHeader = /*#__PURE__*/React.forwardRef(function CardHeader(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardHeader'\n });\n const {\n action,\n avatar,\n className,\n component = 'div',\n disableTypography = false,\n subheader: subheaderProp,\n subheaderTypographyProps,\n title: titleProp,\n titleTypographyProps,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n disableTypography\n };\n const classes = useUtilityClasses(ownerState);\n let title = titleProp;\n if (title != null && title.type !== Typography && !disableTypography) {\n title = /*#__PURE__*/_jsx(Typography, {\n variant: avatar ? 'body2' : 'h5',\n className: classes.title,\n component: \"span\",\n ...titleTypographyProps,\n children: title\n });\n }\n let subheader = subheaderProp;\n if (subheader != null && subheader.type !== Typography && !disableTypography) {\n subheader = /*#__PURE__*/_jsx(Typography, {\n variant: avatar ? 'body2' : 'body1',\n className: classes.subheader,\n color: \"textSecondary\",\n component: \"span\",\n ...subheaderTypographyProps,\n children: subheader\n });\n }\n return /*#__PURE__*/_jsxs(CardHeaderRoot, {\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [avatar && /*#__PURE__*/_jsx(CardHeaderAvatar, {\n className: classes.avatar,\n ownerState: ownerState,\n children: avatar\n }), /*#__PURE__*/_jsxs(CardHeaderContent, {\n className: classes.content,\n ownerState: ownerState,\n children: [title, subheader]\n }), action && /*#__PURE__*/_jsx(CardHeaderAction, {\n className: classes.action,\n ownerState: ownerState,\n children: action\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardHeader.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The action to display in the card header.\n */\n action: PropTypes.node,\n /**\n * The Avatar element to display.\n */\n avatar: PropTypes.node,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, `subheader` and `title` won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `title` text, and optional `subheader` text\n * with the Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n /**\n * The content of the component.\n */\n subheader: PropTypes.node,\n /**\n * These props will be forwarded to the subheader\n * (as long as disableTypography is not `true`).\n */\n subheaderTypographyProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The content of the component.\n */\n title: PropTypes.node,\n /**\n * These props will be forwarded to the title\n * (as long as disableTypography is not `true`).\n */\n titleTypographyProps: PropTypes.object\n} : void 0;\nexport default CardHeader;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardHeaderUtilityClass(slot) {\n return generateUtilityClass('MuiCardHeader', slot);\n}\nconst cardHeaderClasses = generateUtilityClasses('MuiCardHeader', ['root', 'avatar', 'action', 'content', 'title', 'subheader']);\nexport default cardHeaderClasses;"],"names":["CardHeaderRoot","name","slot","overridesResolver","props","styles","title","subheader","root","display","alignItems","padding","CardHeaderAvatar","avatar","flex","marginRight","CardHeaderAction","action","alignSelf","marginTop","marginBottom","CardHeaderContent","content","inProps","ref","className","component","disableTypography","subheaderProp","subheaderTypographyProps","titleProp","titleTypographyProps","other","ownerState","classes","useUtilityClasses","type","variant","children","color","as","getCardHeaderUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1637.21a8cf01.chunk.js --- a/x/static/js/1637.21a8cf01.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1637],{1637:(e,a,b)=>{b.r(a),b.d(a,{default:()=>s.BaseCard});var s=b(68984)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1696.8a290cef.chunk.js --- a/x/static/js/1696.8a290cef.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1696],{1696:(e,t,r)=>{r.r(t),r.d(t,{default:()=>h});var i=r(7552),o=r(68446),a=r(29499),n=r(36715),s=r(59705),l=r(58507),c=r(5401),d=r(49823);const m=(0,r(75785).n9)()((e=>({table:{border:"1px solid #888",margin:e.spacing(4),"& td":{padding:e.spacing(1)}}})));function u({modifications:e}){const{classes:t}=m();return i.createElement("table",{className:t.table},i.createElement("tbody",null,e.map((([e,t])=>i.createElement("tr",{key:e},i.createElement("td",null,e),i.createElement("td",null,t),i.createElement("td",{style:{width:"1em",background:t}}))))))}const h=(0,o.observer)((function({model:e,handleClose:t}){const{colorBy:r,modificationTagMap:o}=e,m=[...o.entries()];return i.createElement(d.Dialog,{open:!0,onClose:t,title:"Color by modifications"},i.createElement(a.A,null,i.createElement(n.A,null,"You can choose to color the modifications in the BAM/CRAM MM/ML specification using this dialog. Choosing modifications colors the modified positions and can color multiple modification types. Choosing the methylation setting colors methylated and unmethylated CpG."),i.createElement(n.A,null,"Note: you can revisit this dialog to see the current mapping of colors to modification type for the modification coloring mode"),i.createElement("div",{style:{margin:20}},"modifications"===r?.type?i.createElement("div",null,m.length?i.createElement(i.Fragment,null,"Current modification-type-to-color mapping",i.createElement(u,{modifications:[...o.entries()]})):i.createElement(i.Fragment,null,i.createElement(n.A,null,"Note: color by modifications is already enabled. Loading current modifications..."),i.createElement(s.A,{size:15}))):null,"methylation"===r?.type?i.createElement(u,{modifications:[["methylated","red"],["unmethylated","blue"]]}):null),i.createElement(l.A,null,i.createElement(c.A,{variant:"contained",onClick:()=>{e.setColorScheme({type:"modifications"}),t()}},"Modifications"),i.createElement(c.A,{variant:"contained",onClick:()=>{e.setColorScheme({type:"methylation"}),t()}},"Methylation"),i.createElement(c.A,{variant:"contained",color:"secondary",onClick:()=>{t()}},"Cancel"))))}))},59705:(e,t,r)=>{r.d(t,{A:()=>A});var i=r(7552),o=r(93878),a=r(70799),n=r(64761),s=r(51148),l=r(60129),c=r(4785),d=r(15622),m=r(58520),u=r(72489),h=r(69500);const p=n.i7` - 0% { - transform: rotate(0deg); - } - - 100% { - transform: rotate(360deg); - } -`,f=n.i7` - 0% { - stroke-dasharray: 1px, 200px; - stroke-dashoffset: 0; - } - - 50% { - stroke-dasharray: 100px, 200px; - stroke-dashoffset: -15px; - } - - 100% { - stroke-dasharray: 100px, 200px; - stroke-dashoffset: -125px; - } -`,y="string"!=typeof p?n.AH` - animation: ${p} 1.4s linear infinite; - `:null,g="string"!=typeof f?n.AH` - animation: ${f} 1.4s ease-in-out infinite; - `:null,v=(0,s.Ay)("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.root,t[r.variant],t[`color${(0,d.A)(r.color)}`]]}})((0,l.A)((({theme:e})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("transform")}},{props:{variant:"indeterminate"},style:y||{animation:`${p} 1.4s linear infinite`}},...Object.entries(e.palette).filter((0,m.A)()).map((([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})))]})))),b=(0,s.Ay)("svg",{name:"MuiCircularProgress",slot:"Svg",overridesResolver:(e,t)=>t.svg})({display:"block"}),k=(0,s.Ay)("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.circle,t[`circle${(0,d.A)(r.variant)}`],r.disableShrink&&t.circleDisableShrink]}})((0,l.A)((({theme:e})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:e})=>"indeterminate"===e.variant&&!e.disableShrink,style:g||{animation:`${f} 1.4s ease-in-out infinite`}}]})))),A=i.forwardRef((function(e,t){const r=(0,c.b)({props:e,name:"MuiCircularProgress"}),{className:i,color:n="primary",disableShrink:s=!1,size:l=40,style:m,thickness:p=3.6,value:f=0,variant:y="indeterminate",...g}=r,A={...r,color:n,disableShrink:s,size:l,thickness:p,value:f,variant:y},C=(e=>{const{classes:t,variant:r,color:i,disableShrink:o}=e,n={root:["root",r,`color${(0,d.A)(i)}`],svg:["svg"],circle:["circle",`circle${(0,d.A)(r)}`,o&&"circleDisableShrink"]};return(0,a.A)(n,u.b,t)})(A),E={},x={},S={};if("determinate"===y){const e=2*Math.PI*((44-p)/2);E.strokeDasharray=e.toFixed(3),S["aria-valuenow"]=Math.round(f),E.strokeDashoffset=`${((100-f)/100*e).toFixed(3)}px`,x.transform="rotate(-90deg)"}return(0,h.jsx)(v,{className:(0,o.A)(C.root,i),style:{width:l,height:l,...x,...m},ownerState:A,ref:t,role:"progressbar",...S,...g,children:(0,h.jsx)(b,{className:C.svg,ownerState:A,viewBox:"22 22 44 44",children:(0,h.jsx)(k,{className:C.circle,style:E,ownerState:A,cx:44,cy:44,r:(44-p)/2,fill:"none",strokeWidth:p})})})}))},72489:(e,t,r)=>{r.d(t,{A:()=>n,b:()=>a});var i=r(33761),o=r(85693);function a(e){return(0,o.Ay)("MuiCircularProgress",e)}const n=(0,i.A)("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","circle","circleDeterminate","circleIndeterminate","circleDisableShrink"])}}]); -//# sourceMappingURL=1696.8a290cef.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1696.8a290cef.chunk.js.map --- a/x/static/js/1696.8a290cef.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1696.8a290cef.chunk.js","mappings":"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","sources":["../../../plugins/alignments/src/LinearPileupDisplay/components/ModificationsTable.tsx","../../../plugins/alignments/src/LinearPileupDisplay/components/ColorByModificationsDialog.tsx","../../../node_modules/@mui/material/CircularProgress/CircularProgress.js","../../../node_modules/@mui/material/CircularProgress/circularProgressClasses.js"],"sourcesContent":["import React from 'react'\nimport { makeStyles } from 'tss-react/mui'\n\nconst useStyles = makeStyles()(theme => ({\n table: {\n border: '1px solid #888',\n margin: theme.spacing(4),\n '& td': {\n padding: theme.spacing(1),\n },\n },\n}))\n\nexport default function ModificationTable({\n modifications,\n}: {\n modifications: [string, string | undefined][]\n}) {\n const { classes } = useStyles()\n return (\n \n \n {modifications.map(([key, value]) => (\n \n \n \n \n \n ))}\n \n
{key}{value}
\n )\n}\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { ObservableMap } from 'mobx'\nimport {\n Button,\n CircularProgress,\n DialogActions,\n DialogContent,\n Typography,\n} from '@mui/material'\nimport { Dialog } from '@jbrowse/core/ui'\nimport ModificationTable from './ModificationsTable'\n\nconst ColorByModificationsDialog = observer(function ({\n model,\n handleClose,\n}: {\n model: {\n setColorScheme: (arg: { type: string }) => void\n modificationTagMap: ObservableMap\n colorBy?: { type: string }\n }\n handleClose: () => void\n}) {\n const { colorBy, modificationTagMap } = model\n\n const modifications = [...modificationTagMap.entries()]\n\n return (\n \n \n \n You can choose to color the modifications in the BAM/CRAM MM/ML\n specification using this dialog. Choosing modifications colors the\n modified positions and can color multiple modification types. Choosing\n the methylation setting colors methylated and unmethylated CpG.\n \n \n Note: you can revisit this dialog to see the current mapping of colors\n to modification type for the modification coloring mode\n \n
\n {colorBy?.type === 'modifications' ? (\n
\n {modifications.length ? (\n <>\n Current modification-type-to-color mapping\n \n \n ) : (\n <>\n \n Note: color by modifications is already enabled. Loading\n current modifications...\n \n \n \n )}\n
\n ) : null}\n {colorBy?.type === 'methylation' ? (\n \n ) : null}\n
\n \n {\n model.setColorScheme({ type: 'modifications' })\n handleClose()\n }}\n >\n Modifications\n \n {\n model.setColorScheme({ type: 'methylation' })\n handleClose()\n }}\n >\n Methylation\n \n {\n handleClose()\n }}\n >\n Cancel\n \n \n
\n
\n )\n})\n\nexport default ColorByModificationsDialog\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { keyframes, css, styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { getCircularProgressUtilityClass } from \"./circularProgressClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SIZE = 44;\nconst circularRotateKeyframe = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`;\nconst circularDashKeyframe = keyframes`\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n`;\n\n// This implementation is for supporting both Styled-components v4+ and Pigment CSS.\n// A global animation has to be created here for Styled-components v4+ (https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#12).\n// which can be done by checking typeof indeterminate1Keyframe !== 'string' (at runtime, Pigment CSS transform keyframes`` to a string).\nconst rotateAnimation = typeof circularRotateKeyframe !== 'string' ? css`\n animation: ${circularRotateKeyframe} 1.4s linear infinite;\n ` : null;\nconst dashAnimation = typeof circularDashKeyframe !== 'string' ? css`\n animation: ${circularDashKeyframe} 1.4s ease-in-out infinite;\n ` : null;\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color,\n disableShrink\n } = ownerState;\n const slots = {\n root: ['root', variant, `color${capitalize(color)}`],\n svg: ['svg'],\n circle: ['circle', `circle${capitalize(variant)}`, disableShrink && 'circleDisableShrink']\n };\n return composeClasses(slots, getCircularProgressUtilityClass, classes);\n};\nconst CircularProgressRoot = styled('span', {\n name: 'MuiCircularProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'inline-block',\n variants: [{\n props: {\n variant: 'determinate'\n },\n style: {\n transition: theme.transitions.create('transform')\n }\n }, {\n props: {\n variant: 'indeterminate'\n },\n style: rotateAnimation || {\n animation: `${circularRotateKeyframe} 1.4s linear infinite`\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n color: (theme.vars || theme).palette[color].main\n }\n }))]\n})));\nconst CircularProgressSVG = styled('svg', {\n name: 'MuiCircularProgress',\n slot: 'Svg',\n overridesResolver: (props, styles) => styles.svg\n})({\n display: 'block' // Keeps the progress centered\n});\nconst CircularProgressCircle = styled('circle', {\n name: 'MuiCircularProgress',\n slot: 'Circle',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];\n }\n})(memoTheme(({\n theme\n}) => ({\n stroke: 'currentColor',\n variants: [{\n props: {\n variant: 'determinate'\n },\n style: {\n transition: theme.transitions.create('stroke-dashoffset')\n }\n }, {\n props: {\n variant: 'indeterminate'\n },\n style: {\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: '80px, 200px',\n strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.variant === 'indeterminate' && !ownerState.disableShrink,\n style: dashAnimation || {\n // At runtime for Pigment CSS, `bufferAnimation` will be null and the generated keyframe will be used.\n animation: `${circularDashKeyframe} 1.4s ease-in-out infinite`\n }\n }]\n})));\n\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\nconst CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCircularProgress'\n });\n const {\n className,\n color = 'primary',\n disableShrink = false,\n size = 40,\n style,\n thickness = 3.6,\n value = 0,\n variant = 'indeterminate',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n disableShrink,\n size,\n thickness,\n value,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n const circleStyle = {};\n const rootStyle = {};\n const rootProps = {};\n if (variant === 'determinate') {\n const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps['aria-valuenow'] = Math.round(value);\n circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;\n rootStyle.transform = 'rotate(-90deg)';\n }\n return /*#__PURE__*/_jsx(CircularProgressRoot, {\n className: clsx(classes.root, className),\n style: {\n width: size,\n height: size,\n ...rootStyle,\n ...style\n },\n ownerState: ownerState,\n ref: ref,\n role: \"progressbar\",\n ...rootProps,\n ...other,\n children: /*#__PURE__*/_jsx(CircularProgressSVG, {\n className: classes.svg,\n ownerState: ownerState,\n viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,\n children: /*#__PURE__*/_jsx(CircularProgressCircle, {\n className: classes.circle,\n style: circleStyle,\n ownerState: ownerState,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: \"none\",\n strokeWidth: thickness\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the shrink animation is disabled.\n * This only works if variant is `indeterminate`.\n * @default false\n */\n disableShrink: chainPropTypes(PropTypes.bool, props => {\n if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n return new Error('MUI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n }\n return null;\n }),\n /**\n * The size of the component.\n * If using a number, the pixel unit is assumed.\n * If using a string, you need to provide the CSS unit, for example '3rem'.\n * @default 40\n */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The thickness of the circle.\n * @default 3.6\n */\n thickness: PropTypes.number,\n /**\n * The value of the progress indicator for the determinate variant.\n * Value between 0 and 100.\n * @default 0\n */\n value: PropTypes.number,\n /**\n * The variant to use.\n * Use indeterminate when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['determinate', 'indeterminate'])\n} : void 0;\nexport default CircularProgress;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCircularProgressUtilityClass(slot) {\n return generateUtilityClass('MuiCircularProgress', slot);\n}\nconst circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);\nexport default circularProgressClasses;"],"names":["useStyles","makeStyles","theme","table","border","margin","spacing","padding","ModificationTable","modifications","classes","React","className","map","key","value","style","width","background","observer","model","handleClose","colorBy","modificationTagMap","entries","Dialog","open","onClose","title","DialogContent","Typography","type","length","CircularProgress","size","DialogActions","Button","variant","onClick","setColorScheme","color","circularRotateKeyframe","circularDashKeyframe","rotateAnimation","dashAnimation","CircularProgressRoot","name","slot","overridesResolver","props","styles","ownerState","root","display","variants","transition","transitions","create","animation","Object","palette","filter","vars","main","CircularProgressSVG","svg","CircularProgressCircle","circle","disableShrink","circleDisableShrink","stroke","strokeDasharray","strokeDashoffset","inProps","ref","thickness","other","slots","useUtilityClasses","circleStyle","rootStyle","rootProps","circumference","Math","PI","toFixed","round","transform","height","role","children","viewBox","cx","cy","r","fill","strokeWidth","getCircularProgressUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1725.795fc4d3.chunk.js --- a/x/static/js/1725.795fc4d3.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1725],{1114:(e,t,r)=>{r.d(t,{A:()=>o});var i=r(74893),n=r(69500);const o=(0,i.A)((0,n.jsx)("path",{d:"M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Grade")},69833:(e,t,r)=>{r.d(t,{A:()=>o});var i=r(74893),n=r(69500);const o=(0,i.A)((0,n.jsx)("path",{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9m-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8z"}),"History")},922:(e,t,r)=>{r.d(t,{A:()=>o});var i=r(74893),n=r(69500);const o=(0,i.A)((0,n.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu")},30476:(e,t,r)=>{r.d(t,{A:()=>o});var i=r(74893),n=r(69500);const o=(0,i.A)((0,n.jsx)("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreHoriz")},7215:(e,t,r)=>{r.d(t,{A:()=>o});var i=r(74893),n=r(69500);const o=(0,i.A)((0,n.jsx)("path",{d:"M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2M1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2"}),"ShoppingCart")},1185:(e,t,r)=>{r.d(t,{A:()=>o});var i=r(74893),n=r(69500);const o=(0,i.A)((0,n.jsx)("path",{d:"M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star")},84181:(e,t,r)=>{r.d(t,{A:()=>o});var i=r(74893),n=r(69500);const o=(0,i.A)((0,n.jsx)("path",{d:"m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28z"}),"StarBorderOutlined")},84885:(e,t,r)=>{r.d(t,{A:()=>v});var i=r(7552),n=r(93878),o=r(43583),a=r(70799),s=r(1045);var l=r(51148),c=r(60129),d=r(58520),u=r(4785),h=r(15622),p=r(47839),f=r(69500);const g=(0,l.Ay)("span",{name:"MuiBadge",slot:"Root",overridesResolver:(e,t)=>t.root})({position:"relative",display:"inline-flex",verticalAlign:"middle",flexShrink:0}),m=(0,l.Ay)("span",{name:"MuiBadge",slot:"Badge",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.badge,t[r.variant],t[`anchorOrigin${(0,h.A)(r.anchorOrigin.vertical)}${(0,h.A)(r.anchorOrigin.horizontal)}${(0,h.A)(r.overlap)}`],"default"!==r.color&&t[`color${(0,h.A)(r.color)}`],r.invisible&&t.invisible]}})((0,c.A)((({theme:e})=>({display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",boxSizing:"border-box",fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(12),minWidth:20,lineHeight:1,padding:"0 6px",height:20,borderRadius:10,zIndex:1,transition:e.transitions.create("transform",{easing:e.transitions.easing.easeInOut,duration:e.transitions.duration.enteringScreen}),variants:[...Object.entries(e.palette).filter((0,d.A)(["contrastText"])).map((([t])=>({props:{color:t},style:{backgroundColor:(e.vars||e).palette[t].main,color:(e.vars||e).palette[t].contrastText}}))),{props:{variant:"dot"},style:{borderRadius:4,height:8,minWidth:8,padding:0}},{props:({ownerState:e})=>"top"===e.anchorOrigin.vertical&&"right"===e.anchorOrigin.horizontal&&"rectangular"===e.overlap,style:{top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",[`&.${p.A.invisible}`]:{transform:"scale(0) translate(50%, -50%)"}}},{props:({ownerState:e})=>"bottom"===e.anchorOrigin.vertical&&"right"===e.anchorOrigin.horizontal&&"rectangular"===e.overlap,style:{bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",[`&.${p.A.invisible}`]:{transform:"scale(0) translate(50%, 50%)"}}},{props:({ownerState:e})=>"top"===e.anchorOrigin.vertical&&"left"===e.anchorOrigin.horizontal&&"rectangular"===e.overlap,style:{top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",[`&.${p.A.invisible}`]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:({ownerState:e})=>"bottom"===e.anchorOrigin.vertical&&"left"===e.anchorOrigin.horizontal&&"rectangular"===e.overlap,style:{bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",[`&.${p.A.invisible}`]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:({ownerState:e})=>"top"===e.anchorOrigin.vertical&&"right"===e.anchorOrigin.horizontal&&"circular"===e.overlap,style:{top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",[`&.${p.A.invisible}`]:{transform:"scale(0) translate(50%, -50%)"}}},{props:({ownerState:e})=>"bottom"===e.anchorOrigin.vertical&&"right"===e.anchorOrigin.horizontal&&"circular"===e.overlap,style:{bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",[`&.${p.A.invisible}`]:{transform:"scale(0) translate(50%, 50%)"}}},{props:({ownerState:e})=>"top"===e.anchorOrigin.vertical&&"left"===e.anchorOrigin.horizontal&&"circular"===e.overlap,style:{top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",[`&.${p.A.invisible}`]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:({ownerState:e})=>"bottom"===e.anchorOrigin.vertical&&"left"===e.anchorOrigin.horizontal&&"circular"===e.overlap,style:{bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",[`&.${p.A.invisible}`]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:{invisible:!0},style:{transition:e.transitions.create("transform",{easing:e.transitions.easing.easeInOut,duration:e.transitions.duration.leavingScreen})}}]})))),v=i.forwardRef((function(e,t){const r=(0,u.b)({props:e,name:"MuiBadge"}),{anchorOrigin:i={vertical:"top",horizontal:"right"},className:l,classes:c,component:d,components:v={},componentsProps:_={},children:b,overlap:z="rectangular",color:S="default",invisible:y=!1,max:w=99,badgeContent:O,slots:x,slotProps:A,showZero:R=!1,variant:I="standard",...C}=r,{badgeContent:T,invisible:M,max:L,displayValue:W}=function(e){const{badgeContent:t,invisible:r=!1,max:i=99,showZero:n=!1}=e,a=(0,o.A)({badgeContent:t,max:i});let s=r;!1!==r||0!==t||n||(s=!0);const{badgeContent:l,max:c=i}=s?a:e;return{badgeContent:l,invisible:s,max:c,displayValue:l&&Number(l)>c?`${c}+`:l}}({max:w,invisible:y,badgeContent:O,showZero:R}),k=(0,o.A)({anchorOrigin:i,color:S,overlap:z,variant:I,badgeContent:O}),E=M||null==T&&"dot"!==I,{color:D=S,overlap:N=z,anchorOrigin:H=i,variant:F=I}=E?k:r,P="dot"!==F?W:void 0,$={...r,badgeContent:T,invisible:E,max:L,displayValue:P,showZero:R,anchorOrigin:H,color:D,overlap:N,variant:F},B=(e=>{const{color:t,anchorOrigin:r,invisible:i,overlap:n,variant:o,classes:s={}}=e,l={root:["root"],badge:["badge",o,i&&"invisible",`anchorOrigin${(0,h.A)(r.vertical)}${(0,h.A)(r.horizontal)}`,`anchorOrigin${(0,h.A)(r.vertical)}${(0,h.A)(r.horizontal)}${(0,h.A)(n)}`,`overlap${(0,h.A)(n)}`,"default"!==t&&`color${(0,h.A)(t)}`]};return(0,a.A)(l,p.w,s)})($),j=x?.root??v.Root??g,q=x?.badge??v.Badge??m,V=A?.root??_.root,U=A?.badge??_.badge,Z=(0,s.A)({elementType:j,externalSlotProps:V,externalForwardedProps:C,additionalProps:{ref:t,as:d},ownerState:$,className:(0,n.A)(V?.className,B.root,l)}),K=(0,s.A)({elementType:q,externalSlotProps:U,ownerState:$,className:(0,n.A)(B.badge,U?.className)});return(0,f.jsxs)(j,{...Z,children:[b,(0,f.jsx)(q,{...K,children:P})]})}))},47839:(e,t,r)=>{r.d(t,{A:()=>a,w:()=>o});var i=r(33761),n=r(85693);function o(e){return(0,n.Ay)("MuiBadge",e)}const a=(0,i.A)("MuiBadge",["root","badge","dot","standard","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft","invisible","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","overlapRectangular","overlapCircular","anchorOriginTopLeftCircular","anchorOriginTopLeftRectangular","anchorOriginTopRightCircular","anchorOriginTopRightRectangular","anchorOriginBottomLeftCircular","anchorOriginBottomLeftRectangular","anchorOriginBottomRightCircular","anchorOriginBottomRightRectangular"])},62859:(e,t,r)=>{r.d(t,{A:()=>m});var i=r(7552),n=r(93878),o=r(70799),a=r(48054),s=r(15622),l=r(1791),c=r(55270),d=r(51148),u=r(60129),h=r(58520),p=r(4785),f=r(69500);const g=(0,d.Ay)(a.A,{name:"MuiFab",slot:"Root",shouldForwardProp:e=>(0,c.A)(e)||"classes"===e,overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.root,t[r.variant],t[`size${(0,s.A)(r.size)}`],"inherit"===r.color&&t.colorInherit,t[(0,s.A)(r.size)],t[r.color]]}})((0,u.A)((({theme:e})=>({...e.typography.button,minHeight:36,transition:e.transitions.create(["background-color","box-shadow","border-color"],{duration:e.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,zIndex:(e.vars||e).zIndex.fab,boxShadow:(e.vars||e).shadows[6],"&:active":{boxShadow:(e.vars||e).shadows[12]},color:e.vars?e.vars.palette.text.primary:e.palette.getContrastText?.(e.palette.grey[300]),backgroundColor:(e.vars||e).palette.grey[300],"&:hover":{backgroundColor:(e.vars||e).palette.grey.A100,"@media (hover: none)":{backgroundColor:(e.vars||e).palette.grey[300]},textDecoration:"none"},[`&.${l.A.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},variants:[{props:{size:"small"},style:{width:40,height:40}},{props:{size:"medium"},style:{width:48,height:48}},{props:{variant:"extended"},style:{borderRadius:24,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48}},{props:{variant:"extended",size:"small"},style:{width:"auto",padding:"0 8px",borderRadius:17,minWidth:34,height:34}},{props:{variant:"extended",size:"medium"},style:{width:"auto",padding:"0 16px",borderRadius:20,minWidth:40,height:40}},{props:{color:"inherit"},style:{color:"inherit"}}]}))),(0,u.A)((({theme:e})=>({variants:[...Object.entries(e.palette).filter((0,h.A)(["dark","contrastText"])).map((([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].contrastText,backgroundColor:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:(e.vars||e).palette[t].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t].main}}}})))]}))),(0,u.A)((({theme:e})=>({[`&.${l.A.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}})))),m=i.forwardRef((function(e,t){const r=(0,p.b)({props:e,name:"MuiFab"}),{children:i,className:a,color:c="default",component:d="button",disabled:u=!1,disableFocusRipple:h=!1,focusVisibleClassName:m,size:v="large",variant:_="circular",...b}=r,z={...r,color:c,component:d,disabled:u,disableFocusRipple:h,size:v,variant:_},S=(e=>{const{color:t,variant:r,classes:i,size:n}=e,a={root:["root",r,`size${(0,s.A)(n)}`,"inherit"===t?"colorInherit":t]},c=(0,o.A)(a,l.C,i);return{...i,...c}})(z);return(0,f.jsx)(g,{className:(0,n.A)(S.root,a),component:d,disabled:u,focusRipple:!h,focusVisibleClassName:(0,n.A)(S.focusVisible,m),ownerState:z,ref:t,...b,classes:S,children:i})}))},1791:(e,t,r)=>{r.d(t,{A:()=>a,C:()=>o});var i=r(33761),n=r(85693);function o(e){return(0,n.Ay)("MuiFab",e)}const a=(0,i.A)("MuiFab",["root","primary","secondary","extended","circular","focusVisible","disabled","colorInherit","sizeSmall","sizeMedium","sizeLarge","info","error","warning","success"])},28685:(e,t,r)=>{r.d(t,{Ay:()=>u});var i=r(7552);let n;n="undefined"!=typeof window?window:"undefined"!=typeof self?self:r.g;let o=null,a=null;const s=n.clearTimeout,l=n.setTimeout,c=n.cancelAnimationFrame||n.mozCancelAnimationFrame||n.webkitCancelAnimationFrame,d=n.requestAnimationFrame||n.mozRequestAnimationFrame||n.webkitRequestAnimationFrame;null==c||null==d?(o=s,a=function(e){return l(e,20)}):(o=function([e,t]){c(e),s(t)},a=function(e){const t=d((function(){s(r),e()})),r=l((function(){c(t),e()}),20);return[t,r]});class u extends i.Component{constructor(...e){super(...e),this.state={height:this.props.defaultHeight||0,scaledHeight:this.props.defaultHeight||0,scaledWidth:this.props.defaultWidth||0,width:this.props.defaultWidth||0},this._autoSizer=null,this._detectElementResize=null,this._parentNode=null,this._resizeObserver=null,this._timeoutId=null,this._onResize=()=>{this._timeoutId=null;const{disableHeight:e,disableWidth:t,onResize:r}=this.props;if(this._parentNode){const i=window.getComputedStyle(this._parentNode)||{},n=parseFloat(i.paddingLeft||"0"),o=parseFloat(i.paddingRight||"0"),a=parseFloat(i.paddingTop||"0"),s=parseFloat(i.paddingBottom||"0"),l=this._parentNode.getBoundingClientRect(),c=l.height-a-s,d=l.width-n-o,u=this._parentNode.offsetHeight-a-s,h=this._parentNode.offsetWidth-n-o;(e||this.state.height===u&&this.state.scaledHeight===c)&&(t||this.state.width===h&&this.state.scaledWidth===d)||(this.setState({height:u,width:h,scaledHeight:c,scaledWidth:d}),"function"==typeof r&&r({height:u,scaledHeight:c,scaledWidth:d,width:h}))}},this._setRef=e=>{this._autoSizer=e}}componentDidMount(){const{nonce:e}=this.props,t=this._autoSizer?this._autoSizer.parentNode:null;if(null!=t&&t.ownerDocument&&t.ownerDocument.defaultView&&t instanceof t.ownerDocument.defaultView.HTMLElement){this._parentNode=t;const r=t.ownerDocument.defaultView.ResizeObserver;null!=r?(this._resizeObserver=new r((()=>{this._timeoutId=setTimeout(this._onResize,0)})),this._resizeObserver.observe(t)):(this._detectElementResize=function(e){let t,r,i,s,l,c,d;const u="undefined"!=typeof document&&document.attachEvent;if(!u){c=function(e){const t=e.__resizeTriggers__,r=t.firstElementChild,i=t.lastElementChild,n=r.firstElementChild;i.scrollLeft=i.scrollWidth,i.scrollTop=i.scrollHeight,n.style.width=r.offsetWidth+1+"px",n.style.height=r.offsetHeight+1+"px",r.scrollLeft=r.scrollWidth,r.scrollTop=r.scrollHeight},l=function(e){return e.offsetWidth!==e.__resizeLast__.width||e.offsetHeight!==e.__resizeLast__.height},d=function(e){if(e.target.className&&"function"==typeof e.target.className.indexOf&&e.target.className.indexOf("contract-trigger")<0&&e.target.className.indexOf("expand-trigger")<0)return;const t=this;c(this),this.__resizeRAF__&&o(this.__resizeRAF__),this.__resizeRAF__=a((function(){l(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach((function(r){r.call(t,e)})))}))};let e=!1,n="";i="animationstart";const u="Webkit Moz O ms".split(" ");let h="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),p="";{const t=document.createElement("fakeelement");if(void 0!==t.style.animationName&&(e=!0),!1===e)for(let r=0;r div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',n=r.head||r.getElementsByTagName("head")[0],o=r.createElement("style");o.id="detectElementResize",o.type="text/css",null!=e&&o.setAttribute("nonce",e),o.styleSheet?o.styleSheet.cssText=i:o.appendChild(r.createTextNode(i)),n.appendChild(o)}}(a),o.__resizeLast__={},o.__resizeListeners__=[],(o.__resizeTriggers__=a.createElement("div")).className="resize-triggers";const u=a.createElement("div");u.className="expand-trigger",u.appendChild(a.createElement("div"));const h=a.createElement("div");h.className="contract-trigger",o.__resizeTriggers__.appendChild(u),o.__resizeTriggers__.appendChild(h),o.appendChild(o.__resizeTriggers__),c(o),o.addEventListener("scroll",d,!0),i&&(o.__resizeTriggers__.__animationListener__=function(e){e.animationName===r&&c(o)},o.__resizeTriggers__.addEventListener(i,o.__resizeTriggers__.__animationListener__))}o.__resizeListeners__.push(a)}},removeResizeListener:function(e,t){if(u)e.detachEvent("onresize",t);else if(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),!e.__resizeListeners__.length){e.removeEventListener("scroll",d,!0),e.__resizeTriggers__.__animationListener__&&(e.__resizeTriggers__.removeEventListener(i,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(e){}}}}}(e),this._detectElementResize.addResizeListener(t,this._onResize)),this._onResize()}}componentWillUnmount(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),null!==this._timeoutId&&clearTimeout(this._timeoutId),this._resizeObserver&&this._resizeObserver.disconnect())}render(){const{children:e,defaultHeight:t,defaultWidth:r,disableHeight:n=!1,disableWidth:o=!1,doNotBailOutOnEmptyChildren:a=!1,nonce:s,onResize:l,style:c={},tagName:d="div",...u}=this.props,{height:h,scaledHeight:p,scaledWidth:f,width:g}=this.state,m={overflow:"visible"},v={};let _=!1;return n||(0===h&&(_=!0),m.height=0,v.height=h,v.scaledHeight=p),o||(0===g&&(_=!0),m.width=0,v.width=g,v.scaledWidth=f),a&&(_=!1),(0,i.createElement)(d,{ref:this._setRef,style:{...m,...c},...u},!_&&e(v))}}},32296:(e,t,r)=>{r.d(t,{SS:()=>M});var i=r(7552),n=r(6614),o=r(60191),a=r(80467);var s=function(){},l=function(e,t){return void 0===t&&(t=null),{child:null,isShown:!t||t.public.isOpen&&t.isShown,parent:t,public:e,sibling:null,visited:!1}},c=function(e,t){return(0,t.getRecordData)(e).data.id},d=function(e){return function(t,r,i){return i.refresh?function(e,t,r){var i=e.createRecord,n=t.buildingTaskTimeout,o=t.placeholder,a=t.async,s=void 0!==a&&a,l=t.treeWalker,c=s&&void 0!==r.records,d=r.records,u=[],h=new Map,p=n?{timeout:n}:void 0,f=new WeakMap,g=l(),m=g.next().value,v=i(m.data,r,void 0,c?d.get(m.data.id):void 0);h.set(v.public.data.id,v),f.set(v,m);var _=v,b=!0,z=v,S=void 0!==o&&!(null===o&&!r.order),y=S?function(e){return e.timeRemaining()>0}:function(){return!0},w=function e(t){for(;null!==_;){if(!y(t))return void requestIdleCallback(e,p);if(_.visited)_.visited=!1,_=null!==_.sibling?_.sibling:_.parent,z=_;else{var n=g.next(f.get(_)).value;if(void 0===n){b?b=!1:(_.isShown&&u.push(_.public.data.id),_.visited=null!==_.child,_=null!==_.child?_.child:null!==_.sibling?_.sibling:_.parent),z=_;continue}var o=i(n.data,r,b?void 0:_,c?d.get(n.data.id):void 0);h.set(o.public.data.id,o),f.set(o,n),b||z!==_?z.sibling=o:z.child=o,z=o}}S&&r.setState({order:u,records:h,updateRequest:{}})};return S?requestIdleCallback(w,p):w(),void 0!==o&&s&&r.order?r:{order:u,records:h}}(e,t,r):function(e,t){var r=e.order,i=e.records,n=t.opennessState;if("object"!=typeof n)return null;for(var o in n)if(i.has(o)){var a=n[o],l=i.get(o),c="boolean"==typeof a?{open:a}:a,d=c.open,u=c.subtreeCallback,h=void 0===u?s:u,p=s,f=s;l.isShown&&(d?function(){for(var e=r.indexOf(o),t=l;null!==t;){if(null!==t.sibling){t=t.sibling;break}t=t.parent}var i=null===t?r.length-1-e:r.indexOf(t.public.data.id)-1-e,n=[[e+1,i]];p=function(t){if(t.isShown=!t.parent||t.parent.public.isOpen&&t.parent.isShown,t.isShown){var r=n[n.length-1];r.push(t.public.data.id),32770===r.length&&n.push([e+1+32768*n.length,0])}},f=function(){for(var e=0;e0?S="positive-descending":(t.scrollLeft=1,S=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),S}return S}var w=function(e,t){return e};function O(e){var t,r=e.getItemOffset,s=e.getEstimatedTotalSize,l=e.getItemSize,c=e.getOffsetForIndexAndAlignment,d=e.getStartIndexForOffset,u=e.getStopIndexForStartIndex,h=e.initInstanceProps,p=e.shouldResetStyleCacheOnItemSizeChange,f=e.validateProps;return t=function(e){function t(t){var i;return(i=e.call(this,t)||this)._instanceProps=h(i.props,(0,o.A)(i)),i._outerRef=void 0,i._resetIsScrollingTimeoutId=null,i.state={instance:(0,o.A)(i),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"==typeof i.props.initialScrollOffset?i.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},i._callOnItemsRendered=void 0,i._callOnItemsRendered=m((function(e,t,r,n){return i.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:r,visibleStopIndex:n})})),i._callOnScroll=void 0,i._callOnScroll=m((function(e,t,r){return i.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:r})})),i._getItemStyle=void 0,i._getItemStyle=function(e){var t,n=i.props,o=n.direction,a=n.itemSize,s=n.layout,c=i._getItemStyleCache(p&&a,p&&s,p&&o);if(c.hasOwnProperty(e))t=c[e];else{var d=r(i.props,e,i._instanceProps),u=l(i.props,e,i._instanceProps),h="horizontal"===o||"horizontal"===s,f="rtl"===o,g=h?d:0;c[e]=t={position:"absolute",left:f?void 0:g,right:f?g:void 0,top:h?0:d,height:h?"100%":u,width:h?u:"100%"}}return t},i._getItemStyleCache=void 0,i._getItemStyleCache=m((function(e,t,r){return{}})),i._onScrollHorizontal=function(e){var t=e.currentTarget,r=t.clientWidth,n=t.scrollLeft,o=t.scrollWidth;i.setState((function(e){if(e.scrollOffset===n)return null;var t=i.props.direction,a=n;if("rtl"===t)switch(y()){case"negative":a=-n;break;case"positive-descending":a=o-r-n}return a=Math.max(0,Math.min(a,o-r)),{isScrolling:!0,scrollDirection:e.scrollOffset=t?e.call(null):n.id=requestAnimationFrame(i)}))})},i._resetIsScrolling=function(){i._resetIsScrollingTimeoutId=null,i.setState({isScrolling:!1},(function(){i._getItemStyleCache(-1,null)}))},i}(0,a.A)(t,e),t.getDerivedStateFromProps=function(e,t){return x(e,t),f(e),null};var g=t.prototype;return g.scrollTo=function(e){e=Math.max(0,e),this.setState((function(t){return t.scrollOffset===e?null:{scrollDirection:t.scrollOffsets.clientWidth?z():0:s.scrollHeight>s.clientHeight?z():0}this.scrollTo(c(this.props,e,t,o,this._instanceProps,a))},g.componentDidMount=function(){var e=this.props,t=e.direction,r=e.initialScrollOffset,i=e.layout;if("number"==typeof r&&null!=this._outerRef){var n=this._outerRef;"horizontal"===t||"horizontal"===i?n.scrollLeft=r:n.scrollTop=r}this._callPropsCallbacks()},g.componentDidUpdate=function(){var e=this.props,t=e.direction,r=e.layout,i=this.state,n=i.scrollOffset;if(i.scrollUpdateWasRequested&&null!=this._outerRef){var o=this._outerRef;if("horizontal"===t||"horizontal"===r)if("rtl"===t)switch(y()){case"negative":o.scrollLeft=-n;break;case"positive-ascending":o.scrollLeft=n;break;default:var a=o.clientWidth,s=o.scrollWidth;o.scrollLeft=s-a-n}else o.scrollLeft=n;else o.scrollTop=n}this._callPropsCallbacks()},g.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&_(this._resetIsScrollingTimeoutId)},g.render=function(){var e=this.props,t=e.children,r=e.className,o=e.direction,a=e.height,l=e.innerRef,c=e.innerElementType,d=e.innerTagName,u=e.itemCount,h=e.itemData,p=e.itemKey,f=void 0===p?w:p,g=e.layout,m=e.outerElementType,v=e.outerTagName,_=e.style,b=e.useIsScrolling,z=e.width,S=this.state.isScrolling,y="horizontal"===o||"horizontal"===g,O=y?this._onScrollHorizontal:this._onScrollVertical,x=this._getRangeToRender(),A=x[0],R=x[1],I=[];if(u>0)for(var C=A;C<=R;C++)I.push((0,i.createElement)(t,{data:h,key:f(C,h),index:C,isScrolling:b?S:void 0,style:this._getItemStyle(C)}));var T=s(this.props,this._instanceProps);return(0,i.createElement)(m||v||"div",{className:r,onScroll:O,ref:this._outerRefSetter,style:(0,n.A)({position:"relative",height:a,width:z,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},_)},(0,i.createElement)(c||d||"div",{children:I,ref:l,style:{height:y?"100%":T,pointerEvents:S?"none":void 0,width:y?T:"100%"}}))},g._callPropsCallbacks=function(){if("function"==typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],r=e[1],i=e[2],n=e[3];this._callOnItemsRendered(t,r,i,n)}if("function"==typeof this.props.onScroll){var o=this.state,a=o.scrollDirection,s=o.scrollOffset,l=o.scrollUpdateWasRequested;this._callOnScroll(a,s,l)}},g._getRangeToRender=function(){var e=this.props,t=e.itemCount,r=e.overscanCount,i=this.state,n=i.isScrolling,o=i.scrollDirection,a=i.scrollOffset;if(0===t)return[0,0,0,0];var s=d(this.props,a,this._instanceProps),l=u(this.props,s,a,this._instanceProps),c=n&&"backward"!==o?1:Math.max(1,r),h=n&&"forward"!==o?1:Math.max(1,r);return[Math.max(0,s-c),Math.max(0,Math.min(t-1,l+h)),s,l]},t}(i.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},t}var x=function(e,t){e.children,e.direction,e.height,e.layout,e.innerTagName,e.outerTagName,e.width,t.instance},A=function(e,t,r){var i=e.itemSize,n=r.itemMetadataMap,o=r.lastMeasuredIndex;if(t>o){var a=0;if(o>=0){var s=n[o];a=s.offset+s.size}for(var l=o+1;l<=t;l++){var c=i(l);n[l]={offset:a,size:c},a+=c}r.lastMeasuredIndex=t}return n[t]},R=function(e,t,r,i,n){for(;i<=r;){var o=i+Math.floor((r-i)/2),a=A(e,o,t).offset;if(a===n)return o;an&&(r=o-1)}return i>0?i-1:0},I=function(e,t){var r=e.itemCount,i=t.itemMetadataMap,n=t.estimatedItemSize,o=t.lastMeasuredIndex,a=0;if(o>=r&&(o=r-1),o>=0){var s=i[o];a=s.offset+s.size}return a+(r-o-1)*n},C=O({getItemOffset:function(e,t,r){return A(e,t,r).offset},getItemSize:function(e,t,r){return r.itemMetadataMap[t].size},getEstimatedTotalSize:I,getOffsetForIndexAndAlignment:function(e,t,r,i,n,o){var a=e.direction,s=e.height,l=e.layout,c=e.width,d="horizontal"===a||"horizontal"===l?c:s,u=A(e,t,n),h=I(e,n),p=Math.max(0,Math.min(h-d,u.offset)),f=Math.max(0,u.offset-d+u.size+o);switch("smart"===r&&(r=i>=f-d&&i<=p+d?"auto":"center"),r){case"start":return p;case"end":return f;case"center":return Math.round(f+(p-f)/2);default:return i>=f&&i<=p?i:i0?i[n].offset:0)>=r?R(e,t,n,0,r):function(e,t,r,i){for(var n=e.itemCount,o=1;r {\n const {\n color,\n anchorOrigin,\n invisible,\n overlap,\n variant,\n classes = {}\n } = ownerState;\n const slots = {\n root: ['root'],\n badge: ['badge', variant, invisible && 'invisible', `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`, `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}${capitalize(overlap)}`, `overlap${capitalize(overlap)}`, color !== 'default' && `color${capitalize(color)}`]\n };\n return composeClasses(slots, getBadgeUtilityClass, classes);\n};\nconst BadgeRoot = styled('span', {\n name: 'MuiBadge',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n position: 'relative',\n display: 'inline-flex',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n flexShrink: 0\n});\nconst BadgeBadge = styled('span', {\n name: 'MuiBadge',\n slot: 'Badge',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.badge, styles[ownerState.variant], styles[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}${capitalize(ownerState.overlap)}`], ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], ownerState.invisible && styles.invisible];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n boxSizing: 'border-box',\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(12),\n minWidth: RADIUS_STANDARD * 2,\n lineHeight: 1,\n padding: '0 6px',\n height: RADIUS_STANDARD * 2,\n borderRadius: RADIUS_STANDARD,\n zIndex: 1,\n // Render the badge on top of potential ripples.\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.enteringScreen\n }),\n variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['contrastText'])).map(([color]) => ({\n props: {\n color\n },\n style: {\n backgroundColor: (theme.vars || theme).palette[color].main,\n color: (theme.vars || theme).palette[color].contrastText\n }\n })), {\n props: {\n variant: 'dot'\n },\n style: {\n borderRadius: RADIUS_DOT,\n height: RADIUS_DOT * 2,\n minWidth: RADIUS_DOT * 2,\n padding: 0\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'rectangular',\n style: {\n top: 0,\n right: 0,\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, -50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'rectangular',\n style: {\n bottom: 0,\n right: 0,\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, 50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'rectangular',\n style: {\n top: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'rectangular',\n style: {\n bottom: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'circular',\n style: {\n top: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, -50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'circular',\n style: {\n bottom: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, 50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'circular',\n style: {\n top: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'circular',\n style: {\n bottom: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n }\n }, {\n props: {\n invisible: true\n },\n style: {\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.leavingScreen\n })\n }\n }]\n})));\nconst Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiBadge'\n });\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n className,\n classes: classesProp,\n component,\n components = {},\n componentsProps = {},\n children,\n overlap: overlapProp = 'rectangular',\n color: colorProp = 'default',\n invisible: invisibleProp = false,\n max: maxProp = 99,\n badgeContent: badgeContentProp,\n slots,\n slotProps,\n showZero = false,\n variant: variantProp = 'standard',\n ...other\n } = props;\n const {\n badgeContent,\n invisible: invisibleFromHook,\n max,\n displayValue: displayValueFromHook\n } = useBadge({\n max: maxProp,\n invisible: invisibleProp,\n badgeContent: badgeContentProp,\n showZero\n });\n const prevProps = usePreviousProps({\n anchorOrigin: anchorOriginProp,\n color: colorProp,\n overlap: overlapProp,\n variant: variantProp,\n badgeContent: badgeContentProp\n });\n const invisible = invisibleFromHook || badgeContent == null && variantProp !== 'dot';\n const {\n color = colorProp,\n overlap = overlapProp,\n anchorOrigin = anchorOriginProp,\n variant = variantProp\n } = invisible ? prevProps : props;\n const displayValue = variant !== 'dot' ? displayValueFromHook : undefined;\n const ownerState = {\n ...props,\n badgeContent,\n invisible,\n max,\n displayValue,\n showZero,\n anchorOrigin,\n color,\n overlap,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n\n // support both `slots` and `components` for backward compatibility\n const RootSlot = slots?.root ?? components.Root ?? BadgeRoot;\n const BadgeSlot = slots?.badge ?? components.Badge ?? BadgeBadge;\n const rootSlotProps = slotProps?.root ?? componentsProps.root;\n const badgeSlotProps = slotProps?.badge ?? componentsProps.badge;\n const rootProps = useSlotProps({\n elementType: RootSlot,\n externalSlotProps: rootSlotProps,\n externalForwardedProps: other,\n additionalProps: {\n ref,\n as: component\n },\n ownerState,\n className: clsx(rootSlotProps?.className, classes.root, className)\n });\n const badgeProps = useSlotProps({\n elementType: BadgeSlot,\n externalSlotProps: badgeSlotProps,\n ownerState,\n className: clsx(classes.badge, badgeSlotProps?.className)\n });\n return /*#__PURE__*/_jsxs(RootSlot, {\n ...rootProps,\n children: [children, /*#__PURE__*/_jsx(BadgeSlot, {\n ...badgeProps,\n children: displayValue\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Badge.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The anchor of the badge.\n * @default {\n * vertical: 'top',\n * horizontal: 'right',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n /**\n * The content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n /**\n * The badge will be added relative to this node.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'default'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Badge: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n badge: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * If `true`, the badge is invisible.\n * @default false\n */\n invisible: PropTypes.bool,\n /**\n * Max count to show.\n * @default 99\n */\n max: PropTypes.number,\n /**\n * Wrapped shape the badge should overlap.\n * @default 'rectangular'\n */\n overlap: PropTypes.oneOf(['circular', 'rectangular']),\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n * @default false\n */\n showZero: PropTypes.bool,\n /**\n * The props used for each slot inside the Badge.\n * @default {}\n */\n slotProps: PropTypes.shape({\n badge: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Badge.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n badge: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['dot', 'standard']), PropTypes.string])\n} : void 0;\nexport default Badge;","'use client';\n\nimport { usePreviousProps } from '@mui/utils';\n/**\n *\n * Demos:\n *\n * - [Badge](https://mui.com/base-ui/react-badge/#hook)\n *\n * API:\n *\n * - [useBadge API](https://mui.com/base-ui/react-badge/hooks-api/#use-badge)\n */\nfunction useBadge(parameters) {\n const {\n badgeContent: badgeContentProp,\n invisible: invisibleProp = false,\n max: maxProp = 99,\n showZero = false\n } = parameters;\n const prevProps = usePreviousProps({\n badgeContent: badgeContentProp,\n max: maxProp\n });\n let invisible = invisibleProp;\n if (invisibleProp === false && badgeContentProp === 0 && !showZero) {\n invisible = true;\n }\n const {\n badgeContent,\n max = maxProp\n } = invisible ? prevProps : parameters;\n const displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;\n return {\n badgeContent,\n invisible,\n max,\n displayValue\n };\n}\nexport default useBadge;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getBadgeUtilityClass(slot) {\n return generateUtilityClass('MuiBadge', slot);\n}\nconst badgeClasses = generateUtilityClasses('MuiBadge', ['root', 'badge', 'dot', 'standard', 'anchorOriginTopRight', 'anchorOriginBottomRight', 'anchorOriginTopLeft', 'anchorOriginBottomLeft', 'invisible', 'colorError', 'colorInfo', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorWarning', 'overlapRectangular', 'overlapCircular',\n// TODO: v6 remove the overlap value from these class keys\n'anchorOriginTopLeftCircular', 'anchorOriginTopLeftRectangular', 'anchorOriginTopRightCircular', 'anchorOriginTopRightRectangular', 'anchorOriginBottomLeftCircular', 'anchorOriginBottomLeftRectangular', 'anchorOriginBottomRightCircular', 'anchorOriginBottomRightRectangular']);\nexport default badgeClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport fabClasses, { getFabUtilityClass } from \"./fabClasses.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n variant,\n classes,\n size\n } = ownerState;\n const slots = {\n root: ['root', variant, `size${capitalize(size)}`, color === 'inherit' ? 'colorInherit' : color]\n };\n const composedClasses = composeClasses(slots, getFabUtilityClass, classes);\n return {\n ...classes,\n // forward the focused, disabled, etc. classes to the ButtonBase\n ...composedClasses\n };\n};\nconst FabRoot = styled(ButtonBase, {\n name: 'MuiFab',\n slot: 'Root',\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.color === 'inherit' && styles.colorInherit, styles[capitalize(ownerState.size)], styles[ownerState.color]];\n }\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.button,\n minHeight: 36,\n transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color'], {\n duration: theme.transitions.duration.short\n }),\n borderRadius: '50%',\n padding: 0,\n minWidth: 0,\n width: 56,\n height: 56,\n zIndex: (theme.vars || theme).zIndex.fab,\n boxShadow: (theme.vars || theme).shadows[6],\n '&:active': {\n boxShadow: (theme.vars || theme).shadows[12]\n },\n color: theme.vars ? theme.vars.palette.text.primary : theme.palette.getContrastText?.(theme.palette.grey[300]),\n backgroundColor: (theme.vars || theme).palette.grey[300],\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.grey.A100,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette.grey[300]\n },\n textDecoration: 'none'\n },\n [`&.${fabClasses.focusVisible}`]: {\n boxShadow: (theme.vars || theme).shadows[6]\n },\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n width: 40,\n height: 40\n }\n }, {\n props: {\n size: 'medium'\n },\n style: {\n width: 48,\n height: 48\n }\n }, {\n props: {\n variant: 'extended'\n },\n style: {\n borderRadius: 48 / 2,\n padding: '0 16px',\n width: 'auto',\n minHeight: 'auto',\n minWidth: 48,\n height: 48\n }\n }, {\n props: {\n variant: 'extended',\n size: 'small'\n },\n style: {\n width: 'auto',\n padding: '0 8px',\n borderRadius: 34 / 2,\n minWidth: 34,\n height: 34\n }\n }, {\n props: {\n variant: 'extended',\n size: 'medium'\n },\n style: {\n width: 'auto',\n padding: '0 16px',\n borderRadius: 40 / 2,\n minWidth: 40,\n height: 40\n }\n }, {\n props: {\n color: 'inherit'\n },\n style: {\n color: 'inherit'\n }\n }]\n})), memoTheme(({\n theme\n}) => ({\n variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['dark', 'contrastText'])) // check all the used fields in the style below\n .map(([color]) => ({\n props: {\n color\n },\n style: {\n color: (theme.vars || theme).palette[color].contrastText,\n backgroundColor: (theme.vars || theme).palette[color].main,\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette[color].dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette[color].main\n }\n }\n }\n }))]\n})), memoTheme(({\n theme\n}) => ({\n [`&.${fabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled,\n boxShadow: (theme.vars || theme).shadows[0],\n backgroundColor: (theme.vars || theme).palette.action.disabledBackground\n }\n})));\nconst Fab = /*#__PURE__*/React.forwardRef(function Fab(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiFab'\n });\n const {\n children,\n className,\n color = 'default',\n component = 'button',\n disabled = false,\n disableFocusRipple = false,\n focusVisibleClassName,\n size = 'large',\n variant = 'circular',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n component,\n disabled,\n disableFocusRipple,\n size,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FabRoot, {\n className: clsx(classes.root, className),\n component: component,\n disabled: disabled,\n focusRipple: !disableFocusRipple,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ownerState: ownerState,\n ref: ref,\n ...other,\n classes: classes,\n children: children\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Fab.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'default'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'error', 'info', 'inherit', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * The URL to link to when the button is clicked.\n * If defined, an `a` element will be used as the root node.\n */\n href: PropTypes.string,\n /**\n * The size of the component.\n * `small` is equivalent to the dense button styling.\n * @default 'large'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'circular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['circular', 'extended']), PropTypes.string])\n} : void 0;\nexport default Fab;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFabUtilityClass(slot) {\n return generateUtilityClass('MuiFab', slot);\n}\nconst fabClasses = generateUtilityClasses('MuiFab', ['root', 'primary', 'secondary', 'extended', 'circular', 'focusVisible', 'disabled', 'colorInherit', 'sizeSmall', 'sizeMedium', 'sizeLarge', 'info', 'error', 'warning', 'success']);\nexport default fabClasses;","import { Component, createElement } from 'react';\n\n/**\n * Detect Element Resize.\n * https://github.com/sdecima/javascript-detect-element-resize\n * Sebastian Decima\n *\n * Forked from version 0.5.3; includes the following modifications:\n * 1) Guard against unsafe 'window' and 'document' references (to support SSR).\n * 2) Defer initialization code via a top-level function wrapper (to support SSR).\n * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.\n * 4) Add nonce for style element.\n * 5) Use 'export' statement over 'module.exports' assignment\n **/\n\n// Check `document` and `window` in case of server-side rendering\nlet windowObject;\nif (typeof window !== \"undefined\") {\n windowObject = window;\n\n // eslint-disable-next-line no-restricted-globals\n} else if (typeof self !== \"undefined\") {\n // eslint-disable-next-line no-restricted-globals\n windowObject = self;\n} else {\n windowObject = global;\n}\nlet cancelFrame = null;\nlet requestFrame = null;\nconst TIMEOUT_DURATION = 20;\nconst clearTimeoutFn = windowObject.clearTimeout;\nconst setTimeoutFn = windowObject.setTimeout;\nconst cancelAnimationFrameFn = windowObject.cancelAnimationFrame || windowObject.mozCancelAnimationFrame || windowObject.webkitCancelAnimationFrame;\nconst requestAnimationFrameFn = windowObject.requestAnimationFrame || windowObject.mozRequestAnimationFrame || windowObject.webkitRequestAnimationFrame;\nif (cancelAnimationFrameFn == null || requestAnimationFrameFn == null) {\n // For environments that don't support animation frame,\n // fallback to a setTimeout based approach.\n cancelFrame = clearTimeoutFn;\n requestFrame = function requestAnimationFrameViaSetTimeout(callback) {\n return setTimeoutFn(callback, TIMEOUT_DURATION);\n };\n} else {\n // Counter intuitively, environments that support animation frames can be trickier.\n // Chrome's \"Throttle non-visible cross-origin iframes\" flag can prevent rAFs from being called.\n // In this case, we should fallback to a setTimeout() implementation.\n cancelFrame = function cancelFrame([animationFrameID, timeoutID]) {\n cancelAnimationFrameFn(animationFrameID);\n clearTimeoutFn(timeoutID);\n };\n requestFrame = function requestAnimationFrameWithSetTimeoutFallback(callback) {\n const animationFrameID = requestAnimationFrameFn(function animationFrameCallback() {\n clearTimeoutFn(timeoutID);\n callback();\n });\n const timeoutID = setTimeoutFn(function timeoutCallback() {\n cancelAnimationFrameFn(animationFrameID);\n callback();\n }, TIMEOUT_DURATION);\n return [animationFrameID, timeoutID];\n };\n}\nfunction createDetectElementResize(nonce) {\n let animationKeyframes;\n let animationName;\n let animationStartEvent;\n let animationStyle;\n let checkTriggers;\n let resetTriggers;\n let scrollListener;\n const attachEvent = typeof document !== \"undefined\" && document.attachEvent;\n if (!attachEvent) {\n resetTriggers = function (element) {\n const triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + \"px\";\n expandChild.style.height = expand.offsetHeight + 1 + \"px\";\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n checkTriggers = function (element) {\n return element.offsetWidth !== element.__resizeLast__.width || element.offsetHeight !== element.__resizeLast__.height;\n };\n scrollListener = function (e) {\n // Don't measure (which forces) reflow for scrolls that happen inside of children!\n if (e.target.className && typeof e.target.className.indexOf === \"function\" && e.target.className.indexOf(\"contract-trigger\") < 0 && e.target.className.indexOf(\"expand-trigger\") < 0) {\n return;\n }\n const element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) {\n cancelFrame(this.__resizeRAF__);\n }\n this.__resizeRAF__ = requestFrame(function animationFrame() {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function forEachResizeListener(fn) {\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n let animation = false;\n let keyframeprefix = \"\";\n animationStartEvent = \"animationstart\";\n const domPrefixes = \"Webkit Moz O ms\".split(\" \");\n let startEvents = \"webkitAnimationStart animationstart oAnimationStart MSAnimationStart\".split(\" \");\n let pfx = \"\";\n {\n const elm = document.createElement(\"fakeelement\");\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n if (animation === false) {\n for (let i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + \"AnimationName\"] !== undefined) {\n pfx = domPrefixes[i];\n keyframeprefix = \"-\" + pfx.toLowerCase() + \"-\";\n animationStartEvent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n animationName = \"resizeanim\";\n animationKeyframes = \"@\" + keyframeprefix + \"keyframes \" + animationName + \" { from { opacity: 0; } to { opacity: 0; } } \";\n animationStyle = keyframeprefix + \"animation: 1ms \" + animationName + \"; \";\n }\n const createStyles = function (doc) {\n if (!doc.getElementById(\"detectElementResize\")) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n const css = (animationKeyframes ? animationKeyframes : \"\") + \".resize-triggers { \" + (animationStyle ? animationStyle : \"\") + \"visibility: hidden; opacity: 0; } \" + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = doc.head || doc.getElementsByTagName(\"head\")[0],\n style = doc.createElement(\"style\");\n style.id = \"detectElementResize\";\n style.type = \"text/css\";\n if (nonce != null) {\n style.setAttribute(\"nonce\", nonce);\n }\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(doc.createTextNode(css));\n }\n head.appendChild(style);\n }\n };\n const addResizeListener = function (element, fn) {\n if (attachEvent) {\n element.attachEvent(\"onresize\", fn);\n } else {\n if (!element.__resizeTriggers__) {\n const doc = element.ownerDocument;\n const elementStyle = windowObject.getComputedStyle(element);\n if (elementStyle && elementStyle.position === \"static\") {\n element.style.position = \"relative\";\n }\n createStyles(doc);\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = doc.createElement(\"div\")).className = \"resize-triggers\";\n const expandTrigger = doc.createElement(\"div\");\n expandTrigger.className = \"expand-trigger\";\n expandTrigger.appendChild(doc.createElement(\"div\"));\n const contractTrigger = doc.createElement(\"div\");\n contractTrigger.className = \"contract-trigger\";\n element.__resizeTriggers__.appendChild(expandTrigger);\n element.__resizeTriggers__.appendChild(contractTrigger);\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener(\"scroll\", scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n if (animationStartEvent) {\n element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n if (e.animationName === animationName) {\n resetTriggers(element);\n }\n };\n element.__resizeTriggers__.addEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);\n }\n }\n element.__resizeListeners__.push(fn);\n }\n };\n const removeResizeListener = function (element, fn) {\n if (attachEvent) {\n element.detachEvent(\"onresize\", fn);\n } else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener(\"scroll\", scrollListener, true);\n if (element.__resizeTriggers__.__animationListener__) {\n element.__resizeTriggers__.removeEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);\n element.__resizeTriggers__.__animationListener__ = null;\n }\n try {\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n } catch (e) {\n // Preact compat; see developit/preact-compat/issues/228\n }\n }\n }\n };\n return {\n addResizeListener,\n removeResizeListener\n };\n}\n\nclass AutoSizer extends Component {\n constructor(...args) {\n super(...args);\n this.state = {\n height: this.props.defaultHeight || 0,\n scaledHeight: this.props.defaultHeight || 0,\n scaledWidth: this.props.defaultWidth || 0,\n width: this.props.defaultWidth || 0\n };\n this._autoSizer = null;\n this._detectElementResize = null;\n this._parentNode = null;\n this._resizeObserver = null;\n this._timeoutId = null;\n this._onResize = () => {\n this._timeoutId = null;\n const {\n disableHeight,\n disableWidth,\n onResize\n } = this.props;\n if (this._parentNode) {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n\n const style = window.getComputedStyle(this._parentNode) || {};\n const paddingLeft = parseFloat(style.paddingLeft || \"0\");\n const paddingRight = parseFloat(style.paddingRight || \"0\");\n const paddingTop = parseFloat(style.paddingTop || \"0\");\n const paddingBottom = parseFloat(style.paddingBottom || \"0\");\n const rect = this._parentNode.getBoundingClientRect();\n const scaledHeight = rect.height - paddingTop - paddingBottom;\n const scaledWidth = rect.width - paddingLeft - paddingRight;\n const height = this._parentNode.offsetHeight - paddingTop - paddingBottom;\n const width = this._parentNode.offsetWidth - paddingLeft - paddingRight;\n if (!disableHeight && (this.state.height !== height || this.state.scaledHeight !== scaledHeight) || !disableWidth && (this.state.width !== width || this.state.scaledWidth !== scaledWidth)) {\n this.setState({\n height,\n width,\n scaledHeight,\n scaledWidth\n });\n if (typeof onResize === \"function\") {\n onResize({\n height,\n scaledHeight,\n scaledWidth,\n width\n });\n }\n }\n }\n };\n this._setRef = autoSizer => {\n this._autoSizer = autoSizer;\n };\n }\n componentDidMount() {\n const {\n nonce\n } = this.props;\n const parentNode = this._autoSizer ? this._autoSizer.parentNode : null;\n if (parentNode != null && parentNode.ownerDocument && parentNode.ownerDocument.defaultView && parentNode instanceof parentNode.ownerDocument.defaultView.HTMLElement) {\n // Delay access of parentNode until mount.\n // This handles edge-cases where the component has already been unmounted before its ref has been set,\n // As well as libraries like react-lite which have a slightly different lifecycle.\n this._parentNode = parentNode;\n\n // Use ResizeObserver from the same context where parentNode (which we will observe) was defined\n // Using just global can result into onResize events not being emitted in cases with multiple realms\n const ResizeObserverInstance = parentNode.ownerDocument.defaultView.ResizeObserver;\n if (ResizeObserverInstance != null) {\n this._resizeObserver = new ResizeObserverInstance(() => {\n // Guard against \"ResizeObserver loop limit exceeded\" error;\n // could be triggered if the state update causes the ResizeObserver handler to run long.\n // See https://github.com/bvaughn/react-virtualized-auto-sizer/issues/55\n this._timeoutId = setTimeout(this._onResize, 0);\n });\n this._resizeObserver.observe(parentNode);\n } else {\n // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n this._detectElementResize = createDetectElementResize(nonce);\n this._detectElementResize.addResizeListener(parentNode, this._onResize);\n }\n this._onResize();\n }\n }\n componentWillUnmount() {\n if (this._parentNode) {\n if (this._detectElementResize) {\n this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n }\n if (this._timeoutId !== null) {\n clearTimeout(this._timeoutId);\n }\n if (this._resizeObserver) {\n this._resizeObserver.disconnect();\n }\n }\n }\n render() {\n const {\n children,\n defaultHeight,\n defaultWidth,\n disableHeight = false,\n disableWidth = false,\n doNotBailOutOnEmptyChildren = false,\n nonce,\n onResize,\n style = {},\n tagName = \"div\",\n ...rest\n } = this.props;\n const {\n height,\n scaledHeight,\n scaledWidth,\n width\n } = this.state;\n\n // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n const outerStyle = {\n overflow: \"visible\"\n };\n const childParams = {};\n\n // Avoid rendering children before the initial measurements have been collected.\n // At best this would just be wasting cycles.\n let bailoutOnChildren = false;\n if (!disableHeight) {\n if (height === 0) {\n bailoutOnChildren = true;\n }\n outerStyle.height = 0;\n childParams.height = height;\n childParams.scaledHeight = scaledHeight;\n }\n if (!disableWidth) {\n if (width === 0) {\n bailoutOnChildren = true;\n }\n outerStyle.width = 0;\n childParams.width = width;\n childParams.scaledWidth = scaledWidth;\n }\n if (doNotBailOutOnEmptyChildren) {\n bailoutOnChildren = false;\n }\n return createElement(tagName, {\n ref: this._setRef,\n style: {\n ...outerStyle,\n ...style\n },\n ...rest\n }, !bailoutOnChildren && children(childParams));\n }\n}\n\nfunction isHeightAndWidthProps(props) {\n return props && props.disableHeight !== true && props.disableWidth !== true;\n}\nfunction isHeightOnlyProps(props) {\n return props && props.disableHeight !== true && props.disableWidth === true;\n}\nfunction isWidthOnlyProps(props) {\n return props && props.disableHeight === true && props.disableWidth !== true;\n}\n\nexport { AutoSizer as default, isHeightAndWidthProps, isHeightOnlyProps, isWidthOnlyProps };\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport var noop = function noop() {};\nexport var identity = function identity(value) {\n return value;\n};\nexport var createBasicRecord = function createBasicRecord(pub, parent) {\n if (parent === void 0) {\n parent = null;\n }\n\n return {\n child: null,\n isShown: parent ? parent.public.isOpen && parent.isShown : true,\n parent: parent,\n public: pub,\n sibling: null,\n visited: false\n };\n};\nexport var getIdByIndex = function getIdByIndex(index, _ref) {\n var getRecordData = _ref.getRecordData;\n\n var _getRecordData = getRecordData(index),\n id = _getRecordData.data.id;\n\n return id;\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\n\n/* eslint-disable no-labels,max-depth,complexity */\nimport React, { createRef, PureComponent } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport { noop } from './utils';\n// eslint-disable-next-line @typescript-eslint/naming-convention,@typescript-eslint/prefer-readonly-parameter-types\nexport var Row = function Row(_ref) {\n var index = _ref.index,\n _ref$data = _ref.data,\n Node = _ref$data.component,\n getRecordData = _ref$data.getRecordData,\n treeData = _ref$data.treeData,\n style = _ref.style,\n isScrolling = _ref.isScrolling;\n var data = getRecordData(index);\n return /*#__PURE__*/React.createElement(Node, Object.assign({\n isScrolling: isScrolling,\n style: style,\n treeData: treeData\n }, data));\n};\n\n// If refresh is required, we will run the TreeWalker. It will completely\n// update all requests and reset every state to default.\nvar generateNewTree = function generateNewTree(_ref2, _ref3, state) {\n var createRecord = _ref2.createRecord;\n var buildingTaskTimeout = _ref3.buildingTaskTimeout,\n placeholder = _ref3.placeholder,\n _ref3$async = _ref3.async,\n async = _ref3$async === void 0 ? false : _ref3$async,\n treeWalker = _ref3.treeWalker;\n var shouldPreservePreviousState = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n async && state.records !== undefined;\n var previousRecords = state.records;\n var order = [];\n var records = new Map();\n var requestIdleCallbackOptions = buildingTaskTimeout ? {\n timeout: buildingTaskTimeout\n } : undefined;\n var meta = new WeakMap();\n var iter = treeWalker();\n\n var _iter$next = iter.next(),\n root = _iter$next.value; // Each record has a link to a parent, the next sibling and the next child.\n // Having this info, we can perform a depth-first traverse.\n\n\n var rootRecord = createRecord(root.data, state, undefined, shouldPreservePreviousState ? previousRecords.get(root.data.id) : undefined);\n records.set(rootRecord.public.data.id, rootRecord);\n meta.set(rootRecord, root);\n var currentRecord = rootRecord;\n var isTraversingRoot = true;\n var tempRecord = rootRecord;\n var useIdleCallback = typeof 'requestIdleCallback' !== 'undefined' && placeholder !== undefined && // If placeholder is set to null and this is the first build, idle callback\n // won't be used. It is necessary for trees with async data which can be\n // extremely complex but the first build is quite easy. During the following\n // idle callbacks the old tree will be shown.\n !(placeholder === null && !state.order);\n var hasTime = useIdleCallback ? function (deadline) {\n return deadline.timeRemaining() > 0;\n } : function () {\n return true;\n };\n\n var task = function task(deadline) {\n while (currentRecord !== null) {\n if (!hasTime(deadline)) {\n requestIdleCallback(task, requestIdleCallbackOptions);\n return;\n }\n\n if (!currentRecord.visited) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n var _iter$next2 = iter.next(meta.get(currentRecord)),\n child = _iter$next2.value; // When the generator returns the undefined value we consider that all\n // children are already sent and we need to select the new parent\n // element to get its children.\n\n\n if (child === undefined) {\n if (isTraversingRoot) {\n isTraversingRoot = false;\n } else {\n if (currentRecord.isShown) {\n order.push(currentRecord.public.data.id);\n }\n\n currentRecord.visited = currentRecord.child !== null;\n currentRecord = currentRecord.child !== null ? currentRecord.child : currentRecord.sibling !== null ? currentRecord.sibling : currentRecord.parent;\n }\n\n tempRecord = currentRecord;\n continue;\n }\n\n var childRecord = createRecord(child.data, state, isTraversingRoot ? undefined : currentRecord, shouldPreservePreviousState ? previousRecords.get(child.data.id) : undefined);\n records.set(childRecord.public.data.id, childRecord);\n meta.set(childRecord, child);\n\n if (!isTraversingRoot && tempRecord === currentRecord) {\n tempRecord.child = childRecord;\n } else {\n tempRecord.sibling = childRecord;\n }\n\n tempRecord = childRecord;\n } else {\n currentRecord.visited = false;\n currentRecord = currentRecord.sibling !== null ? currentRecord.sibling : currentRecord.parent;\n tempRecord = currentRecord;\n }\n }\n\n if (useIdleCallback) {\n state.setState({\n order: order,\n records: records,\n updateRequest: {}\n });\n }\n };\n\n if (useIdleCallback) {\n requestIdleCallback(task, requestIdleCallbackOptions);\n } else {\n task();\n } // If we want to preserve the previous state and use the requestIdleCallback,\n // we need to return the old state.\n\n\n return placeholder !== undefined && async && state.order ? state : {\n order: order,\n records: records\n };\n};\n\nvar MAX_FUNCTION_ARGUMENTS = 32768;\nvar SPLICE_DEFAULT_ARGUMENTS_NUMBER = 2; // If we need to perform only the update, treeWalker won't be used. Update will\n// work internally, traversing only the subtree of elements that require\n// update through the opennessState option.\n\nvar updateExistingTree = function updateExistingTree(_ref4, _ref5) {\n var order = _ref4.order,\n records = _ref4.records;\n var opennessState = _ref5.opennessState;\n\n if (typeof opennessState !== 'object') {\n return null;\n }\n\n for (var id in opennessState) {\n if (!records.has(id)) {\n continue;\n }\n\n var opts = opennessState[id];\n var ownerRecord = records.get(id); // Here we unify the shape of openness state options\n\n var _ref6 = typeof opts === 'boolean' ? {\n open: opts\n } : opts,\n open = _ref6.open,\n _ref6$subtreeCallback = _ref6.subtreeCallback,\n subtreeCallback = _ref6$subtreeCallback === void 0 ? noop : _ref6$subtreeCallback;\n\n var update = noop;\n var apply = noop;\n\n if (ownerRecord.isShown) {\n if (open) {\n (function () {\n // If received rules require us to open the subtree, we have 2 cases:\n // 1. The node is not opened yet. In this case we simply have to\n // calculate and add new ids.\n // 2. The node is opened already. In this case we have to remove all\n // existing ids and replace them with new ids.\n var index = order.indexOf(id); // Here we calculate a count of visible subtree nodes to remove from\n // `order`. Then we will replace the gap with the updated list of\n // subtree nodes.\n\n var recordNextToSubtree = ownerRecord;\n\n while (recordNextToSubtree !== null) {\n if (recordNextToSubtree.sibling !== null) {\n recordNextToSubtree = recordNextToSubtree.sibling;\n break;\n }\n\n recordNextToSubtree = recordNextToSubtree.parent;\n }\n\n var countToRemove = recordNextToSubtree === null ? order.length - 1 - index : order.indexOf(recordNextToSubtree.public.data.id) - 1 - index;\n var orderParts = [[index + 1, countToRemove]]; // Unfortunately, splice cannot work with big arrays. If array exceeds\n // some length it may fire an exception. The length is specific for\n // each engine; e.g., MDN says about 65536 for Webkit. So, to avoid this\n // overflow, I split `order` parts to chunks by 32768 elements in each\n // one. These chunks will be sent as arguments to the `splice` method.\n //\n // To avoid array concatenations which may cause Major GC, I set two\n // first arguments as `splice`'s `start` and `deleteCount` arguments.\n\n update = function update(record) {\n // We have to consider only the newly shown elements that are not in\n // the order list yet. We should do it AFTER the visibility update\n // happens because otherwise we won't be able to distinguish if the\n // element should be included in the order list.\n // Update record visibility\n record.isShown = record.parent ? record.parent.public.isOpen && record.parent.isShown : true;\n\n if (record.isShown) {\n var currentOrderPart = orderParts[orderParts.length - 1];\n currentOrderPart.push(record.public.data.id);\n\n if (currentOrderPart.length === MAX_FUNCTION_ARGUMENTS + SPLICE_DEFAULT_ARGUMENTS_NUMBER) {\n orderParts.push([index + 1 + MAX_FUNCTION_ARGUMENTS * orderParts.length, 0]);\n }\n }\n };\n\n apply = function apply() {\n for (var i = 0; i < orderParts.length; i++) {\n var _ref7;\n\n // @ts-expect-error: too generic for TS\n (_ref7 = order).splice.apply(_ref7, orderParts[i]);\n }\n };\n })();\n } else if (ownerRecord.public.isOpen) {\n (function () {\n // If received rules require us to close the subtree, we have to remove\n // all subtree ids from the order list.\n var index = order.indexOf(id);\n var count = 0;\n\n update = function update(record) {\n // We have to consider only currently visible subtree nodes BEFORE\n // their visibility is updated. Otherwise we will have incorrect\n // number of items to remove: we cannot remove elements that are not\n // in the order list.\n //\n // If we do it after the visibility update, we will be unable to\n // understand if the element is still in the order list.\n if (record.isShown) {\n count += 1;\n } // Update record visibility\n\n\n record.isShown = record.parent ? record.parent.public.isOpen && record.parent.isShown : true;\n };\n\n apply = function apply() {\n // Remove data after element with index\n order.splice(index + 1, count);\n };\n })();\n }\n }\n\n var currentRecord = ownerRecord;\n\n while (currentRecord !== null) {\n if (!currentRecord.visited) {\n currentRecord.public.isOpen = currentRecord === ownerRecord ? open : currentRecord.public.isOpen;\n subtreeCallback(currentRecord.public, ownerRecord.public);\n\n if (currentRecord !== ownerRecord) {\n update(currentRecord);\n }\n\n currentRecord.visited = currentRecord.child !== null; // This algorithm is a bit different from the visit algorithm in the\n // tree generator. We are restricted with the bounds of a subtree and\n // shouldn't go over it. So we cannot search for the ownerRecord's\n // parent or sibling because it will lead us out of the subtree.\n\n currentRecord = // Look for child in any case\n currentRecord.child !== null ? currentRecord.child : // Stop looking for next element if currentRecord is root.\n currentRecord === ownerRecord ? null : // Otherwise, look for sibling or parent\n currentRecord.sibling !== null ? currentRecord.sibling : currentRecord.parent;\n } else {\n currentRecord.visited = false;\n currentRecord = currentRecord === ownerRecord ? null : currentRecord.sibling !== null ? currentRecord.sibling : currentRecord.parent;\n }\n }\n\n apply();\n }\n\n return {\n order: order,\n records: records,\n updateRequest: {}\n };\n};\n\nexport var createTreeComputer = function createTreeComputer(creatorOptions) {\n return function (props, state, options) {\n return options.refresh ? generateNewTree(creatorOptions, props, state) : updateExistingTree(state, options);\n };\n};\n\nvar Tree = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(Tree, _PureComponent);\n\n Tree.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var _props$listRef = props.listRef,\n listRef = _props$listRef === void 0 ? null : _props$listRef,\n treeWalker = props.treeWalker;\n var computeTree = state.computeTree,\n list = state.list,\n order = state.order,\n oldTreeWalker = state.treeWalker;\n return _extends({\n attachRefs: mergeRefs([list, listRef])\n }, treeWalker !== oldTreeWalker || !order ? computeTree(props, state, {\n refresh: true\n }) : null, {\n treeWalker: treeWalker\n });\n };\n\n function Tree(props, context) {\n var _this;\n\n _this = _PureComponent.call(this, props, context) || this;\n _this.getRecordData = _this.getRecordData.bind(_assertThisInitialized(_this));\n /* eslint-disable react/no-unused-state,@typescript-eslint/consistent-type-assertions */\n\n _this.state = {\n list: /*#__PURE__*/createRef(),\n recomputeTree: _this.recomputeTree.bind(_assertThisInitialized(_this)),\n setState: _this.setState.bind(_assertThisInitialized(_this))\n };\n /* eslint-enable react/no-unused-state,@typescript-eslint/consistent-type-assertions */\n\n return _this;\n }\n\n var _proto = Tree.prototype;\n\n _proto.getItemData = function getItemData() {\n var _this$props = this.props,\n component = _this$props.children,\n treeData = _this$props.itemData;\n return {\n component: component,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n getRecordData: this.getRecordData,\n treeData: treeData\n };\n };\n\n _proto.getRecordData = function getRecordData(index) {\n var _this$state = this.state,\n order = _this$state.order,\n records = _this$state.records;\n return records.get(order[index]).public;\n };\n\n _proto.recomputeTree = function recomputeTree(state) {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n _this2.setState(function (prevState) {\n return prevState.computeTree(_this2.props, prevState, {\n opennessState: state\n });\n }, resolve);\n });\n };\n\n _proto.scrollTo = function scrollTo(scrollOffset) {\n var _this$state$list$curr;\n\n // eslint-disable-next-line react/destructuring-assignment\n (_this$state$list$curr = this.state.list.current) == null ? void 0 : _this$state$list$curr.scrollTo(scrollOffset);\n };\n\n _proto.scrollToItem = function scrollToItem(id, align) {\n var _this$state$list$curr2;\n\n // eslint-disable-next-line react/destructuring-assignment\n (_this$state$list$curr2 = this.state.list.current) == null ? void 0 : _this$state$list$curr2.scrollToItem(this.state.order.indexOf(id), align);\n };\n\n return Tree;\n}(PureComponent);\n\nTree.defaultProps = {\n rowComponent: Row\n};\nexport default Tree;","import * as React from \"react\";\n\nexport default function mergeRefs(\n refs: Array | React.LegacyRef>\n): React.RefCallback {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null) {\n (ref as React.MutableRefObject).current = value;\n }\n });\n };\n}\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport React from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Tree, { createTreeComputer } from './Tree';\nimport { createBasicRecord, getIdByIndex } from './utils';\nvar computeTree = createTreeComputer({\n createRecord: function createRecord(data, _ref, parent, previousRecord) {\n var recomputeTree = _ref.recomputeTree;\n return createBasicRecord({\n data: data,\n isOpen: previousRecord ? previousRecord.public.isOpen : data.isOpenByDefault,\n setOpen: function setOpen(state) {\n var _recomputeTree;\n\n return recomputeTree((_recomputeTree = {}, _recomputeTree[data.id] = state, _recomputeTree));\n }\n }, parent);\n }\n});\nexport var FixedSizeTree = /*#__PURE__*/function (_Tree) {\n _inheritsLoose(FixedSizeTree, _Tree);\n\n function FixedSizeTree(props, context) {\n var _this;\n\n _this = _Tree.call(this, props, context) || this;\n _this.state = _extends({}, _this.state, {\n computeTree: computeTree\n });\n return _this;\n }\n\n var _proto = FixedSizeTree.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n listRef = _this$props.listRef,\n placeholder = _this$props.placeholder,\n treeWalker = _this$props.treeWalker,\n rowComponent = _this$props.rowComponent,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"listRef\", \"placeholder\", \"treeWalker\", \"rowComponent\"]);\n\n var _this$state = this.state,\n attachRefs = _this$state.attachRefs,\n order = _this$state.order;\n return placeholder && order.length === 0 ? placeholder : /*#__PURE__*/React.createElement(FixedSizeList, Object.assign({}, rest, {\n itemCount: order.length,\n itemData: this.getItemData() // eslint-disable-next-line @typescript-eslint/unbound-method\n ,\n itemKey: getIdByIndex // eslint-disable-next-line @typescript-eslint/unbound-method\n ,\n ref: attachRefs\n }), rowComponent);\n };\n\n return FixedSizeTree;\n}(Tree);","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","// @flow\n\n// Animation frame based implementation of setTimeout.\n// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js\n\nconst hasNativePerformanceNow =\n typeof performance === 'object' && typeof performance.now === 'function';\n\nconst now = hasNativePerformanceNow\n ? () => performance.now()\n : () => Date.now();\n\nexport type TimeoutID = {|\n id: AnimationFrameID,\n|};\n\nexport function cancelTimeout(timeoutID: TimeoutID) {\n cancelAnimationFrame(timeoutID.id);\n}\n\nexport function requestTimeout(callback: Function, delay: number): TimeoutID {\n const start = now();\n\n function tick() {\n if (now() - start >= delay) {\n callback.call(null);\n } else {\n timeoutID.id = requestAnimationFrame(tick);\n }\n }\n\n const timeoutID: TimeoutID = {\n id: requestAnimationFrame(tick),\n };\n\n return timeoutID;\n}\n","// @flow\n\nlet size: number = -1;\n\n// This utility copied from \"dom-helpers\" package.\nexport function getScrollbarSize(recalculate?: boolean = false): number {\n if (size === -1 || recalculate) {\n const div = document.createElement('div');\n const style = div.style;\n style.width = '50px';\n style.height = '50px';\n style.overflow = 'scroll';\n\n ((document.body: any): HTMLBodyElement).appendChild(div);\n\n size = div.offsetWidth - div.clientWidth;\n\n ((document.body: any): HTMLBodyElement).removeChild(div);\n }\n\n return size;\n}\n\nexport type RTLOffsetType =\n | 'negative'\n | 'positive-descending'\n | 'positive-ascending';\n\nlet cachedRTLResult: RTLOffsetType | null = null;\n\n// TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\nexport function getRTLOffsetType(recalculate?: boolean = false): RTLOffsetType {\n if (cachedRTLResult === null || recalculate) {\n const outerDiv = document.createElement('div');\n const outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n\n const innerDiv = document.createElement('div');\n const innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n\n outerDiv.appendChild(innerDiv);\n\n ((document.body: any): HTMLBodyElement).appendChild(outerDiv);\n\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n\n ((document.body: any): HTMLBodyElement).removeChild(outerDiv);\n\n return cachedRTLResult;\n }\n\n return cachedRTLResult;\n}\n","// @flow\n\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport { cancelTimeout, requestTimeout } from './timer';\nimport { getScrollbarSize, getRTLOffsetType } from './domHelpers';\n\nimport type { TimeoutID } from './timer';\n\ntype Direction = 'ltr' | 'rtl';\nexport type ScrollToAlign = 'auto' | 'smart' | 'center' | 'start' | 'end';\n\ntype itemSize = number | ((index: number) => number);\n\ntype RenderComponentProps = {|\n columnIndex: number,\n data: T,\n isScrolling?: boolean,\n rowIndex: number,\n style: Object,\n|};\nexport type RenderComponent = React$ComponentType<\n $Shape>\n>;\n\ntype ScrollDirection = 'forward' | 'backward';\n\ntype OnItemsRenderedCallback = ({\n overscanColumnStartIndex: number,\n overscanColumnStopIndex: number,\n overscanRowStartIndex: number,\n overscanRowStopIndex: number,\n visibleColumnStartIndex: number,\n visibleColumnStopIndex: number,\n visibleRowStartIndex: number,\n visibleRowStopIndex: number,\n}) => void;\ntype OnScrollCallback = ({\n horizontalScrollDirection: ScrollDirection,\n scrollLeft: number,\n scrollTop: number,\n scrollUpdateWasRequested: boolean,\n verticalScrollDirection: ScrollDirection,\n}) => void;\n\ntype ScrollEvent = SyntheticEvent;\ntype ItemStyleCache = { [key: string]: Object };\n\ntype OuterProps = {|\n children: React$Node,\n className: string | void,\n onScroll: ScrollEvent => void,\n style: {\n [string]: mixed,\n },\n|};\n\ntype InnerProps = {|\n children: React$Node,\n style: {\n [string]: mixed,\n },\n|};\n\nexport type Props = {|\n children: RenderComponent,\n className?: string,\n columnCount: number,\n columnWidth: itemSize,\n direction: Direction,\n height: number,\n initialScrollLeft?: number,\n initialScrollTop?: number,\n innerRef?: any,\n innerElementType?: string | React$AbstractComponent,\n innerTagName?: string, // deprecated\n itemData: T,\n itemKey?: (params: {|\n columnIndex: number,\n data: T,\n rowIndex: number,\n |}) => any,\n onItemsRendered?: OnItemsRenderedCallback,\n onScroll?: OnScrollCallback,\n outerRef?: any,\n outerElementType?: string | React$AbstractComponent,\n outerTagName?: string, // deprecated\n overscanColumnCount?: number,\n overscanColumnsCount?: number, // deprecated\n overscanCount?: number, // deprecated\n overscanRowCount?: number,\n overscanRowsCount?: number, // deprecated\n rowCount: number,\n rowHeight: itemSize,\n style?: Object,\n useIsScrolling: boolean,\n width: number,\n|};\n\ntype State = {|\n instance: any,\n isScrolling: boolean,\n horizontalScrollDirection: ScrollDirection,\n scrollLeft: number,\n scrollTop: number,\n scrollUpdateWasRequested: boolean,\n verticalScrollDirection: ScrollDirection,\n|};\n\ntype getItemOffset = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype getItemSize = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype getEstimatedTotalSize = (props: Props, instanceProps: any) => number;\ntype GetOffsetForItemAndAlignment = (\n props: Props,\n index: number,\n align: ScrollToAlign,\n scrollOffset: number,\n instanceProps: any,\n scrollbarSize: number\n) => number;\ntype GetStartIndexForOffset = (\n props: Props,\n offset: number,\n instanceProps: any\n) => number;\ntype GetStopIndexForStartIndex = (\n props: Props,\n startIndex: number,\n scrollOffset: number,\n instanceProps: any\n) => number;\ntype InitInstanceProps = (props: Props, instance: any) => any;\ntype ValidateProps = (props: Props) => void;\n\nconst IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nconst defaultItemKey = ({ columnIndex, data, rowIndex }) =>\n `${rowIndex}:${columnIndex}`;\n\n// In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\nlet devWarningsOverscanCount = null;\nlet devWarningsOverscanRowsColumnsCount = null;\nlet devWarningsTagName = null;\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsOverscanCount = new WeakSet();\n devWarningsOverscanRowsColumnsCount = new WeakSet();\n devWarningsTagName = new WeakSet();\n }\n}\n\nexport default function createGridComponent({\n getColumnOffset,\n getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex,\n getColumnWidth,\n getEstimatedTotalHeight,\n getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment,\n getOffsetForRowAndAlignment,\n getRowHeight,\n getRowOffset,\n getRowStartIndexForOffset,\n getRowStopIndexForStartIndex,\n initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange,\n validateProps,\n}: {|\n getColumnOffset: getItemOffset,\n getColumnStartIndexForOffset: GetStartIndexForOffset,\n getColumnStopIndexForStartIndex: GetStopIndexForStartIndex,\n getColumnWidth: getItemSize,\n getEstimatedTotalHeight: getEstimatedTotalSize,\n getEstimatedTotalWidth: getEstimatedTotalSize,\n getOffsetForColumnAndAlignment: GetOffsetForItemAndAlignment,\n getOffsetForRowAndAlignment: GetOffsetForItemAndAlignment,\n getRowOffset: getItemOffset,\n getRowHeight: getItemSize,\n getRowStartIndexForOffset: GetStartIndexForOffset,\n getRowStopIndexForStartIndex: GetStopIndexForStartIndex,\n initInstanceProps: InitInstanceProps,\n shouldResetStyleCacheOnItemSizeChange: boolean,\n validateProps: ValidateProps,\n|}) {\n return class Grid extends PureComponent, State> {\n _instanceProps: any = initInstanceProps(this.props, this);\n _resetIsScrollingTimeoutId: TimeoutID | null = null;\n _outerRef: ?HTMLDivElement;\n\n static defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n useIsScrolling: false,\n };\n\n state: State = {\n instance: this,\n isScrolling: false,\n horizontalScrollDirection: 'forward',\n scrollLeft:\n typeof this.props.initialScrollLeft === 'number'\n ? this.props.initialScrollLeft\n : 0,\n scrollTop:\n typeof this.props.initialScrollTop === 'number'\n ? this.props.initialScrollTop\n : 0,\n scrollUpdateWasRequested: false,\n verticalScrollDirection: 'forward',\n };\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n constructor(props: Props) {\n super(props);\n }\n\n static getDerivedStateFromProps(\n nextProps: Props,\n prevState: State\n ): $Shape | null {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n }\n\n scrollTo({\n scrollLeft,\n scrollTop,\n }: {\n scrollLeft: number,\n scrollTop: number,\n }): void {\n if (scrollLeft !== undefined) {\n scrollLeft = Math.max(0, scrollLeft);\n }\n if (scrollTop !== undefined) {\n scrollTop = Math.max(0, scrollTop);\n }\n\n this.setState(prevState => {\n if (scrollLeft === undefined) {\n scrollLeft = prevState.scrollLeft;\n }\n if (scrollTop === undefined) {\n scrollTop = prevState.scrollTop;\n }\n\n if (\n prevState.scrollLeft === scrollLeft &&\n prevState.scrollTop === scrollTop\n ) {\n return null;\n }\n\n return {\n horizontalScrollDirection:\n prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollUpdateWasRequested: true,\n verticalScrollDirection:\n prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n };\n }, this._resetIsScrollingDebounced);\n }\n\n scrollToItem({\n align = 'auto',\n columnIndex,\n rowIndex,\n }: {\n align: ScrollToAlign,\n columnIndex?: number,\n rowIndex?: number,\n }): void {\n const { columnCount, height, rowCount, width } = this.props;\n const { scrollLeft, scrollTop } = this.state;\n const scrollbarSize = getScrollbarSize();\n\n if (columnIndex !== undefined) {\n columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1));\n }\n if (rowIndex !== undefined) {\n rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1));\n }\n\n const estimatedTotalHeight = getEstimatedTotalHeight(\n this.props,\n this._instanceProps\n );\n const estimatedTotalWidth = getEstimatedTotalWidth(\n this.props,\n this._instanceProps\n );\n\n // The scrollbar size should be considered when scrolling an item into view,\n // to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n const horizontalScrollbarSize =\n estimatedTotalWidth > width ? scrollbarSize : 0;\n const verticalScrollbarSize =\n estimatedTotalHeight > height ? scrollbarSize : 0;\n\n this.scrollTo({\n scrollLeft:\n columnIndex !== undefined\n ? getOffsetForColumnAndAlignment(\n this.props,\n columnIndex,\n align,\n scrollLeft,\n this._instanceProps,\n verticalScrollbarSize\n )\n : scrollLeft,\n scrollTop:\n rowIndex !== undefined\n ? getOffsetForRowAndAlignment(\n this.props,\n rowIndex,\n align,\n scrollTop,\n this._instanceProps,\n horizontalScrollbarSize\n )\n : scrollTop,\n });\n }\n\n componentDidMount() {\n const { initialScrollLeft, initialScrollTop } = this.props;\n\n if (this._outerRef != null) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n if (typeof initialScrollLeft === 'number') {\n outerRef.scrollLeft = initialScrollLeft;\n }\n if (typeof initialScrollTop === 'number') {\n outerRef.scrollTop = initialScrollTop;\n }\n }\n\n this._callPropsCallbacks();\n }\n\n componentDidUpdate() {\n const { direction } = this.props;\n const { scrollLeft, scrollTop, scrollUpdateWasRequested } = this.state;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n const outerRef = ((this._outerRef: any): HTMLElement);\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollLeft;\n break;\n case 'positive-ascending':\n outerRef.scrollLeft = scrollLeft;\n break;\n default:\n const { clientWidth, scrollWidth } = outerRef;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } else {\n outerRef.scrollLeft = Math.max(0, scrollLeft);\n }\n\n outerRef.scrollTop = Math.max(0, scrollTop);\n }\n\n this._callPropsCallbacks();\n }\n\n componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n }\n\n render() {\n const {\n children,\n className,\n columnCount,\n direction,\n height,\n innerRef,\n innerElementType,\n innerTagName,\n itemData,\n itemKey = defaultItemKey,\n outerElementType,\n outerTagName,\n rowCount,\n style,\n useIsScrolling,\n width,\n } = this.props;\n const { isScrolling } = this.state;\n\n const [\n columnStartIndex,\n columnStopIndex,\n ] = this._getHorizontalRangeToRender();\n const [rowStartIndex, rowStopIndex] = this._getVerticalRangeToRender();\n\n const items = [];\n if (columnCount > 0 && rowCount) {\n for (\n let rowIndex = rowStartIndex;\n rowIndex <= rowStopIndex;\n rowIndex++\n ) {\n for (\n let columnIndex = columnStartIndex;\n columnIndex <= columnStopIndex;\n columnIndex++\n ) {\n items.push(\n createElement(children, {\n columnIndex,\n data: itemData,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n key: itemKey({ columnIndex, data: itemData, rowIndex }),\n rowIndex,\n style: this._getItemStyle(rowIndex, columnIndex),\n })\n );\n }\n }\n }\n\n // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n const estimatedTotalHeight = getEstimatedTotalHeight(\n this.props,\n this._instanceProps\n );\n const estimatedTotalWidth = getEstimatedTotalWidth(\n this.props,\n this._instanceProps\n );\n\n return createElement(\n outerElementType || outerTagName || 'div',\n {\n className,\n onScroll: this._onScroll,\n ref: this._outerRefSetter,\n style: {\n position: 'relative',\n height,\n width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction,\n ...style,\n },\n },\n createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: estimatedTotalHeight,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: estimatedTotalWidth,\n },\n })\n );\n }\n\n _callOnItemsRendered: (\n overscanColumnStartIndex: number,\n overscanColumnStopIndex: number,\n overscanRowStartIndex: number,\n overscanRowStopIndex: number,\n visibleColumnStartIndex: number,\n visibleColumnStopIndex: number,\n visibleRowStartIndex: number,\n visibleRowStopIndex: number\n ) => void;\n _callOnItemsRendered = memoizeOne(\n (\n overscanColumnStartIndex: number,\n overscanColumnStopIndex: number,\n overscanRowStartIndex: number,\n overscanRowStopIndex: number,\n visibleColumnStartIndex: number,\n visibleColumnStopIndex: number,\n visibleRowStartIndex: number,\n visibleRowStopIndex: number\n ) =>\n ((this.props.onItemsRendered: any): OnItemsRenderedCallback)({\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex,\n })\n );\n\n _callOnScroll: (\n scrollLeft: number,\n scrollTop: number,\n horizontalScrollDirection: ScrollDirection,\n verticalScrollDirection: ScrollDirection,\n scrollUpdateWasRequested: boolean\n ) => void;\n _callOnScroll = memoizeOne(\n (\n scrollLeft: number,\n scrollTop: number,\n horizontalScrollDirection: ScrollDirection,\n verticalScrollDirection: ScrollDirection,\n scrollUpdateWasRequested: boolean\n ) =>\n ((this.props.onScroll: any): OnScrollCallback)({\n horizontalScrollDirection,\n scrollLeft,\n scrollTop,\n verticalScrollDirection,\n scrollUpdateWasRequested,\n })\n );\n\n _callPropsCallbacks() {\n const { columnCount, onItemsRendered, onScroll, rowCount } = this.props;\n\n if (typeof onItemsRendered === 'function') {\n if (columnCount > 0 && rowCount > 0) {\n const [\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n ] = this._getHorizontalRangeToRender();\n const [\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex,\n ] = this._getVerticalRangeToRender();\n this._callOnItemsRendered(\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex\n );\n }\n }\n\n if (typeof onScroll === 'function') {\n const {\n horizontalScrollDirection,\n scrollLeft,\n scrollTop,\n scrollUpdateWasRequested,\n verticalScrollDirection,\n } = this.state;\n this._callOnScroll(\n scrollLeft,\n scrollTop,\n horizontalScrollDirection,\n verticalScrollDirection,\n scrollUpdateWasRequested\n );\n }\n }\n\n // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n _getItemStyle: (rowIndex: number, columnIndex: number) => Object;\n _getItemStyle = (rowIndex: number, columnIndex: number): Object => {\n const { columnWidth, direction, rowHeight } = this.props;\n\n const itemStyleCache = this._getItemStyleCache(\n shouldResetStyleCacheOnItemSizeChange && columnWidth,\n shouldResetStyleCacheOnItemSizeChange && direction,\n shouldResetStyleCacheOnItemSizeChange && rowHeight\n );\n\n const key = `${rowIndex}:${columnIndex}`;\n\n let style;\n if (itemStyleCache.hasOwnProperty(key)) {\n style = itemStyleCache[key];\n } else {\n const offset = getColumnOffset(\n this.props,\n columnIndex,\n this._instanceProps\n );\n const isRtl = direction === 'rtl';\n itemStyleCache[key] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offset,\n right: isRtl ? offset : undefined,\n top: getRowOffset(this.props, rowIndex, this._instanceProps),\n height: getRowHeight(this.props, rowIndex, this._instanceProps),\n width: getColumnWidth(this.props, columnIndex, this._instanceProps),\n };\n }\n\n return style;\n };\n\n _getItemStyleCache: (_: any, __: any, ___: any) => ItemStyleCache;\n _getItemStyleCache = memoizeOne((_: any, __: any, ___: any) => ({}));\n\n _getHorizontalRangeToRender(): [number, number, number, number] {\n const {\n columnCount,\n overscanColumnCount,\n overscanColumnsCount,\n overscanCount,\n rowCount,\n } = this.props;\n const { horizontalScrollDirection, isScrolling, scrollLeft } = this.state;\n\n const overscanCountResolved: number =\n overscanColumnCount || overscanColumnsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n const startIndex = getColumnStartIndexForOffset(\n this.props,\n scrollLeft,\n this._instanceProps\n );\n const stopIndex = getColumnStopIndexForStartIndex(\n this.props,\n startIndex,\n scrollLeft,\n this._instanceProps\n );\n\n // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n const overscanBackward =\n !isScrolling || horizontalScrollDirection === 'backward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n const overscanForward =\n !isScrolling || horizontalScrollDirection === 'forward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n\n return [\n Math.max(0, startIndex - overscanBackward),\n Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)),\n startIndex,\n stopIndex,\n ];\n }\n\n _getVerticalRangeToRender(): [number, number, number, number] {\n const {\n columnCount,\n overscanCount,\n overscanRowCount,\n overscanRowsCount,\n rowCount,\n } = this.props;\n const { isScrolling, verticalScrollDirection, scrollTop } = this.state;\n\n const overscanCountResolved: number =\n overscanRowCount || overscanRowsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n const startIndex = getRowStartIndexForOffset(\n this.props,\n scrollTop,\n this._instanceProps\n );\n const stopIndex = getRowStopIndexForStartIndex(\n this.props,\n startIndex,\n scrollTop,\n this._instanceProps\n );\n\n // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n const overscanBackward =\n !isScrolling || verticalScrollDirection === 'backward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n const overscanForward =\n !isScrolling || verticalScrollDirection === 'forward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n\n return [\n Math.max(0, startIndex - overscanBackward),\n Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)),\n startIndex,\n stopIndex,\n ];\n }\n\n _onScroll = (event: ScrollEvent): void => {\n const {\n clientHeight,\n clientWidth,\n scrollLeft,\n scrollTop,\n scrollHeight,\n scrollWidth,\n } = event.currentTarget;\n this.setState(prevState => {\n if (\n prevState.scrollLeft === scrollLeft &&\n prevState.scrollTop === scrollTop\n ) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n const { direction } = this.props;\n\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n let calculatedScrollLeft = scrollLeft;\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n calculatedScrollLeft = -scrollLeft;\n break;\n case 'positive-descending':\n calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n calculatedScrollLeft = Math.max(\n 0,\n Math.min(calculatedScrollLeft, scrollWidth - clientWidth)\n );\n const calculatedScrollTop = Math.max(\n 0,\n Math.min(scrollTop, scrollHeight - clientHeight)\n );\n\n return {\n isScrolling: true,\n horizontalScrollDirection:\n prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: calculatedScrollLeft,\n scrollTop: calculatedScrollTop,\n verticalScrollDirection:\n prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n scrollUpdateWasRequested: false,\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _outerRefSetter = (ref: any): void => {\n const { outerRef } = this.props;\n\n this._outerRef = ((ref: any): HTMLDivElement);\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (\n outerRef != null &&\n typeof outerRef === 'object' &&\n outerRef.hasOwnProperty('current')\n ) {\n outerRef.current = ref;\n }\n };\n\n _resetIsScrollingDebounced = () => {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n\n this._resetIsScrollingTimeoutId = requestTimeout(\n this._resetIsScrolling,\n IS_SCROLLING_DEBOUNCE_INTERVAL\n );\n };\n\n _resetIsScrolling = () => {\n this._resetIsScrollingTimeoutId = null;\n\n this.setState({ isScrolling: false }, () => {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n this._getItemStyleCache(-1);\n });\n };\n };\n}\n\nconst validateSharedProps = (\n {\n children,\n direction,\n height,\n innerTagName,\n outerTagName,\n overscanColumnsCount,\n overscanCount,\n overscanRowsCount,\n width,\n }: Props,\n { instance }: State\n): void => {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof overscanCount === 'number') {\n if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) {\n devWarningsOverscanCount.add(instance);\n console.warn(\n 'The overscanCount prop has been deprecated. ' +\n 'Please use the overscanColumnCount and overscanRowCount props instead.'\n );\n }\n }\n\n if (\n typeof overscanColumnsCount === 'number' ||\n typeof overscanRowsCount === 'number'\n ) {\n if (\n devWarningsOverscanRowsColumnsCount &&\n !devWarningsOverscanRowsColumnsCount.has(instance)\n ) {\n devWarningsOverscanRowsColumnsCount.add(instance);\n console.warn(\n 'The overscanColumnsCount and overscanRowsCount props have been deprecated. ' +\n 'Please use the overscanColumnCount and overscanRowCount props instead.'\n );\n }\n }\n\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn(\n 'The innerTagName and outerTagName props have been deprecated. ' +\n 'Please use the innerElementType and outerElementType props instead.'\n );\n }\n }\n\n if (children == null) {\n throw Error(\n 'An invalid \"children\" prop has been specified. ' +\n 'Value should be a React component. ' +\n `\"${children === null ? 'null' : typeof children}\" was specified.`\n );\n }\n\n switch (direction) {\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n default:\n throw Error(\n 'An invalid \"direction\" prop has been specified. ' +\n 'Value should be either \"ltr\" or \"rtl\". ' +\n `\"${direction}\" was specified.`\n );\n }\n\n if (typeof width !== 'number') {\n throw Error(\n 'An invalid \"width\" prop has been specified. ' +\n 'Grids must specify a number for width. ' +\n `\"${width === null ? 'null' : typeof width}\" was specified.`\n );\n }\n\n if (typeof height !== 'number') {\n throw Error(\n 'An invalid \"height\" prop has been specified. ' +\n 'Grids must specify a number for height. ' +\n `\"${height === null ? 'null' : typeof height}\" was specified.`\n );\n }\n }\n};\n","// @flow\n\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport { cancelTimeout, requestTimeout } from './timer';\nimport { getScrollbarSize, getRTLOffsetType } from './domHelpers';\n\nimport type { TimeoutID } from './timer';\n\nexport type ScrollToAlign = 'auto' | 'smart' | 'center' | 'start' | 'end';\n\ntype itemSize = number | ((index: number) => number);\n// TODO Deprecate directions \"horizontal\" and \"vertical\"\ntype Direction = 'ltr' | 'rtl' | 'horizontal' | 'vertical';\ntype Layout = 'horizontal' | 'vertical';\n\ntype RenderComponentProps = {|\n data: T,\n index: number,\n isScrolling?: boolean,\n style: Object,\n|};\ntype RenderComponent = React$ComponentType<$Shape>>;\n\ntype ScrollDirection = 'forward' | 'backward';\n\ntype onItemsRenderedCallback = ({\n overscanStartIndex: number,\n overscanStopIndex: number,\n visibleStartIndex: number,\n visibleStopIndex: number,\n}) => void;\ntype onScrollCallback = ({\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean,\n}) => void;\n\ntype ScrollEvent = SyntheticEvent;\ntype ItemStyleCache = { [index: number]: Object };\n\ntype OuterProps = {|\n children: React$Node,\n className: string | void,\n onScroll: ScrollEvent => void,\n style: {\n [string]: mixed,\n },\n|};\n\ntype InnerProps = {|\n children: React$Node,\n style: {\n [string]: mixed,\n },\n|};\n\nexport type Props = {|\n children: RenderComponent,\n className?: string,\n direction: Direction,\n height: number | string,\n initialScrollOffset?: number,\n innerRef?: any,\n innerElementType?: string | React$AbstractComponent,\n innerTagName?: string, // deprecated\n itemCount: number,\n itemData: T,\n itemKey?: (index: number, data: T) => any,\n itemSize: itemSize,\n layout: Layout,\n onItemsRendered?: onItemsRenderedCallback,\n onScroll?: onScrollCallback,\n outerRef?: any,\n outerElementType?: string | React$AbstractComponent,\n outerTagName?: string, // deprecated\n overscanCount: number,\n style?: Object,\n useIsScrolling: boolean,\n width: number | string,\n|};\n\ntype State = {|\n instance: any,\n isScrolling: boolean,\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean,\n|};\n\ntype GetItemOffset = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype GetItemSize = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype GetEstimatedTotalSize = (props: Props, instanceProps: any) => number;\ntype GetOffsetForIndexAndAlignment = (\n props: Props,\n index: number,\n align: ScrollToAlign,\n scrollOffset: number,\n instanceProps: any\n) => number;\ntype GetStartIndexForOffset = (\n props: Props,\n offset: number,\n instanceProps: any\n) => number;\ntype GetStopIndexForStartIndex = (\n props: Props,\n startIndex: number,\n scrollOffset: number,\n instanceProps: any\n) => number;\ntype InitInstanceProps = (props: Props, instance: any) => any;\ntype ValidateProps = (props: Props) => void;\n\nconst IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nconst defaultItemKey = (index: number, data: any) => index;\n\n// In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\nlet devWarningsDirection = null;\nlet devWarningsTagName = null;\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection = new WeakSet();\n devWarningsTagName = new WeakSet();\n }\n}\n\nexport default function createListComponent({\n getItemOffset,\n getEstimatedTotalSize,\n getItemSize,\n getOffsetForIndexAndAlignment,\n getStartIndexForOffset,\n getStopIndexForStartIndex,\n initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange,\n validateProps,\n}: {|\n getItemOffset: GetItemOffset,\n getEstimatedTotalSize: GetEstimatedTotalSize,\n getItemSize: GetItemSize,\n getOffsetForIndexAndAlignment: GetOffsetForIndexAndAlignment,\n getStartIndexForOffset: GetStartIndexForOffset,\n getStopIndexForStartIndex: GetStopIndexForStartIndex,\n initInstanceProps: InitInstanceProps,\n shouldResetStyleCacheOnItemSizeChange: boolean,\n validateProps: ValidateProps,\n|}) {\n return class List extends PureComponent, State> {\n _instanceProps: any = initInstanceProps(this.props, this);\n _outerRef: ?HTMLDivElement;\n _resetIsScrollingTimeoutId: TimeoutID | null = null;\n\n static defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n layout: 'vertical',\n overscanCount: 2,\n useIsScrolling: false,\n };\n\n state: State = {\n instance: this,\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset:\n typeof this.props.initialScrollOffset === 'number'\n ? this.props.initialScrollOffset\n : 0,\n scrollUpdateWasRequested: false,\n };\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n constructor(props: Props) {\n super(props);\n }\n\n static getDerivedStateFromProps(\n nextProps: Props,\n prevState: State\n ): $Shape | null {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n }\n\n scrollTo(scrollOffset: number): void {\n scrollOffset = Math.max(0, scrollOffset);\n\n this.setState(prevState => {\n if (prevState.scrollOffset === scrollOffset) {\n return null;\n }\n return {\n scrollDirection:\n prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: true,\n };\n }, this._resetIsScrollingDebounced);\n }\n\n scrollToItem(index: number, align: ScrollToAlign = 'auto'): void {\n const { itemCount, layout } = this.props;\n const { scrollOffset } = this.state;\n\n index = Math.max(0, Math.min(index, itemCount - 1));\n\n // The scrollbar size should be considered when scrolling an item into view, to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n // This is an edge case for lists; normally they only scroll in the dominant direction.\n let scrollbarSize = 0;\n if (this._outerRef) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n if (layout === 'vertical') {\n scrollbarSize =\n outerRef.scrollWidth > outerRef.clientWidth\n ? getScrollbarSize()\n : 0;\n } else {\n scrollbarSize =\n outerRef.scrollHeight > outerRef.clientHeight\n ? getScrollbarSize()\n : 0;\n }\n }\n\n this.scrollTo(\n getOffsetForIndexAndAlignment(\n this.props,\n index,\n align,\n scrollOffset,\n this._instanceProps,\n scrollbarSize\n )\n );\n }\n\n componentDidMount() {\n const { direction, initialScrollOffset, layout } = this.props;\n\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n // TODO Deprecate direction \"horizontal\"\n if (direction === 'horizontal' || layout === 'horizontal') {\n outerRef.scrollLeft = initialScrollOffset;\n } else {\n outerRef.scrollTop = initialScrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n }\n\n componentDidUpdate() {\n const { direction, layout } = this.props;\n const { scrollOffset, scrollUpdateWasRequested } = this.state;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n\n // TODO Deprecate direction \"horizontal\"\n if (direction === 'horizontal' || layout === 'horizontal') {\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset;\n break;\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset;\n break;\n default:\n const { clientWidth, scrollWidth } = outerRef;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset;\n break;\n }\n } else {\n outerRef.scrollLeft = scrollOffset;\n }\n } else {\n outerRef.scrollTop = scrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n }\n\n componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n }\n\n render() {\n const {\n children,\n className,\n direction,\n height,\n innerRef,\n innerElementType,\n innerTagName,\n itemCount,\n itemData,\n itemKey = defaultItemKey,\n layout,\n outerElementType,\n outerTagName,\n style,\n useIsScrolling,\n width,\n } = this.props;\n const { isScrolling } = this.state;\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal =\n direction === 'horizontal' || layout === 'horizontal';\n\n const onScroll = isHorizontal\n ? this._onScrollHorizontal\n : this._onScrollVertical;\n\n const [startIndex, stopIndex] = this._getRangeToRender();\n\n const items = [];\n if (itemCount > 0) {\n for (let index = startIndex; index <= stopIndex; index++) {\n items.push(\n createElement(children, {\n data: itemData,\n key: itemKey(index, itemData),\n index,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n style: this._getItemStyle(index),\n })\n );\n }\n }\n\n // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n const estimatedTotalSize = getEstimatedTotalSize(\n this.props,\n this._instanceProps\n );\n\n return createElement(\n outerElementType || outerTagName || 'div',\n {\n className,\n onScroll,\n ref: this._outerRefSetter,\n style: {\n position: 'relative',\n height,\n width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction,\n ...style,\n },\n },\n createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: isHorizontal ? estimatedTotalSize : '100%',\n },\n })\n );\n }\n\n _callOnItemsRendered: (\n overscanStartIndex: number,\n overscanStopIndex: number,\n visibleStartIndex: number,\n visibleStopIndex: number\n ) => void;\n _callOnItemsRendered = memoizeOne(\n (\n overscanStartIndex: number,\n overscanStopIndex: number,\n visibleStartIndex: number,\n visibleStopIndex: number\n ) =>\n ((this.props.onItemsRendered: any): onItemsRenderedCallback)({\n overscanStartIndex,\n overscanStopIndex,\n visibleStartIndex,\n visibleStopIndex,\n })\n );\n\n _callOnScroll: (\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean\n ) => void;\n _callOnScroll = memoizeOne(\n (\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean\n ) =>\n ((this.props.onScroll: any): onScrollCallback)({\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested,\n })\n );\n\n _callPropsCallbacks() {\n if (typeof this.props.onItemsRendered === 'function') {\n const { itemCount } = this.props;\n if (itemCount > 0) {\n const [\n overscanStartIndex,\n overscanStopIndex,\n visibleStartIndex,\n visibleStopIndex,\n ] = this._getRangeToRender();\n this._callOnItemsRendered(\n overscanStartIndex,\n overscanStopIndex,\n visibleStartIndex,\n visibleStopIndex\n );\n }\n }\n\n if (typeof this.props.onScroll === 'function') {\n const {\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested,\n } = this.state;\n this._callOnScroll(\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested\n );\n }\n }\n\n // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n _getItemStyle: (index: number) => Object;\n _getItemStyle = (index: number): Object => {\n const { direction, itemSize, layout } = this.props;\n\n const itemStyleCache = this._getItemStyleCache(\n shouldResetStyleCacheOnItemSizeChange && itemSize,\n shouldResetStyleCacheOnItemSizeChange && layout,\n shouldResetStyleCacheOnItemSizeChange && direction\n );\n\n let style;\n if (itemStyleCache.hasOwnProperty(index)) {\n style = itemStyleCache[index];\n } else {\n const offset = getItemOffset(this.props, index, this._instanceProps);\n const size = getItemSize(this.props, index, this._instanceProps);\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal =\n direction === 'horizontal' || layout === 'horizontal';\n\n const isRtl = direction === 'rtl';\n const offsetHorizontal = isHorizontal ? offset : 0;\n itemStyleCache[index] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offsetHorizontal,\n right: isRtl ? offsetHorizontal : undefined,\n top: !isHorizontal ? offset : 0,\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%',\n };\n }\n\n return style;\n };\n\n _getItemStyleCache: (_: any, __: any, ___: any) => ItemStyleCache;\n _getItemStyleCache = memoizeOne((_: any, __: any, ___: any) => ({}));\n\n _getRangeToRender(): [number, number, number, number] {\n const { itemCount, overscanCount } = this.props;\n const { isScrolling, scrollDirection, scrollOffset } = this.state;\n\n if (itemCount === 0) {\n return [0, 0, 0, 0];\n }\n\n const startIndex = getStartIndexForOffset(\n this.props,\n scrollOffset,\n this._instanceProps\n );\n const stopIndex = getStopIndexForStartIndex(\n this.props,\n startIndex,\n scrollOffset,\n this._instanceProps\n );\n\n // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n const overscanBackward =\n !isScrolling || scrollDirection === 'backward'\n ? Math.max(1, overscanCount)\n : 1;\n const overscanForward =\n !isScrolling || scrollDirection === 'forward'\n ? Math.max(1, overscanCount)\n : 1;\n\n return [\n Math.max(0, startIndex - overscanBackward),\n Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)),\n startIndex,\n stopIndex,\n ];\n }\n\n _onScrollHorizontal = (event: ScrollEvent): void => {\n const { clientWidth, scrollLeft, scrollWidth } = event.currentTarget;\n this.setState(prevState => {\n if (prevState.scrollOffset === scrollLeft) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n const { direction } = this.props;\n\n let scrollOffset = scrollLeft;\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft;\n break;\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n scrollOffset = Math.max(\n 0,\n Math.min(scrollOffset, scrollWidth - clientWidth)\n );\n\n return {\n isScrolling: true,\n scrollDirection:\n prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset,\n scrollUpdateWasRequested: false,\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _onScrollVertical = (event: ScrollEvent): void => {\n const { clientHeight, scrollHeight, scrollTop } = event.currentTarget;\n this.setState(prevState => {\n if (prevState.scrollOffset === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n const scrollOffset = Math.max(\n 0,\n Math.min(scrollTop, scrollHeight - clientHeight)\n );\n\n return {\n isScrolling: true,\n scrollDirection:\n prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset,\n scrollUpdateWasRequested: false,\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _outerRefSetter = (ref: any): void => {\n const { outerRef } = this.props;\n\n this._outerRef = ((ref: any): HTMLDivElement);\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (\n outerRef != null &&\n typeof outerRef === 'object' &&\n outerRef.hasOwnProperty('current')\n ) {\n outerRef.current = ref;\n }\n };\n\n _resetIsScrollingDebounced = () => {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n\n this._resetIsScrollingTimeoutId = requestTimeout(\n this._resetIsScrolling,\n IS_SCROLLING_DEBOUNCE_INTERVAL\n );\n };\n\n _resetIsScrolling = () => {\n this._resetIsScrollingTimeoutId = null;\n\n this.setState({ isScrolling: false }, () => {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n this._getItemStyleCache(-1, null);\n });\n };\n };\n}\n\n// NOTE: I considered further wrapping individual items with a pure ListItem component.\n// This would avoid ever calling the render function for the same index more than once,\n// But it would also add the overhead of a lot of components/fibers.\n// I assume people already do this (render function returning a class component),\n// So my doing it would just unnecessarily double the wrappers.\n\nconst validateSharedProps = (\n {\n children,\n direction,\n height,\n layout,\n innerTagName,\n outerTagName,\n width,\n }: Props,\n { instance }: State\n): void => {\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn(\n 'The innerTagName and outerTagName props have been deprecated. ' +\n 'Please use the innerElementType and outerElementType props instead.'\n );\n }\n }\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n\n switch (direction) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance);\n console.warn(\n 'The direction prop should be either \"ltr\" (default) or \"rtl\". ' +\n 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.'\n );\n }\n break;\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n default:\n throw Error(\n 'An invalid \"direction\" prop has been specified. ' +\n 'Value should be either \"ltr\" or \"rtl\". ' +\n `\"${direction}\" was specified.`\n );\n }\n\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break;\n default:\n throw Error(\n 'An invalid \"layout\" prop has been specified. ' +\n 'Value should be either \"horizontal\" or \"vertical\". ' +\n `\"${layout}\" was specified.`\n );\n }\n\n if (children == null) {\n throw Error(\n 'An invalid \"children\" prop has been specified. ' +\n 'Value should be a React component. ' +\n `\"${children === null ? 'null' : typeof children}\" was specified.`\n );\n }\n\n if (isHorizontal && typeof width !== 'number') {\n throw Error(\n 'An invalid \"width\" prop has been specified. ' +\n 'Horizontal lists must specify a number for width. ' +\n `\"${width === null ? 'null' : typeof width}\" was specified.`\n );\n } else if (!isHorizontal && typeof height !== 'number') {\n throw Error(\n 'An invalid \"height\" prop has been specified. ' +\n 'Vertical lists must specify a number for height. ' +\n `\"${height === null ? 'null' : typeof height}\" was specified.`\n );\n }\n }\n};\n","// @flow\n\nimport createListComponent from './createListComponent';\n\nimport type { Props, ScrollToAlign } from './createListComponent';\n\nconst DEFAULT_ESTIMATED_ITEM_SIZE = 50;\n\ntype VariableSizeProps = {|\n estimatedItemSize: number,\n ...Props,\n|};\n\ntype itemSizeGetter = (index: number) => number;\n\ntype ItemMetadata = {|\n offset: number,\n size: number,\n|};\ntype InstanceProps = {|\n itemMetadataMap: { [index: number]: ItemMetadata },\n estimatedItemSize: number,\n lastMeasuredIndex: number,\n|};\n\nconst getItemMetadata = (\n props: Props,\n index: number,\n instanceProps: InstanceProps\n): ItemMetadata => {\n const { itemSize } = ((props: any): VariableSizeProps);\n const { itemMetadataMap, lastMeasuredIndex } = instanceProps;\n\n if (index > lastMeasuredIndex) {\n let offset = 0;\n if (lastMeasuredIndex >= 0) {\n const itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (let i = lastMeasuredIndex + 1; i <= index; i++) {\n let size = ((itemSize: any): itemSizeGetter)(i);\n\n itemMetadataMap[i] = {\n offset,\n size,\n };\n\n offset += size;\n }\n\n instanceProps.lastMeasuredIndex = index;\n }\n\n return itemMetadataMap[index];\n};\n\nconst findNearestItem = (\n props: Props,\n instanceProps: InstanceProps,\n offset: number\n) => {\n const { itemMetadataMap, lastMeasuredIndex } = instanceProps;\n\n const lastMeasuredItemOffset =\n lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch(\n props,\n instanceProps,\n lastMeasuredIndex,\n 0,\n offset\n );\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch(\n props,\n instanceProps,\n Math.max(0, lastMeasuredIndex),\n offset\n );\n }\n};\n\nconst findNearestItemBinarySearch = (\n props: Props,\n instanceProps: InstanceProps,\n high: number,\n low: number,\n offset: number\n): number => {\n while (low <= high) {\n const middle = low + Math.floor((high - low) / 2);\n const currentOffset = getItemMetadata(props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nconst findNearestItemExponentialSearch = (\n props: Props,\n instanceProps: InstanceProps,\n index: number,\n offset: number\n): number => {\n const { itemCount } = props;\n let interval = 1;\n\n while (\n index < itemCount &&\n getItemMetadata(props, index, instanceProps).offset < offset\n ) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch(\n props,\n instanceProps,\n Math.min(index, itemCount - 1),\n Math.floor(index / 2),\n offset\n );\n};\n\nconst getEstimatedTotalSize = (\n { itemCount }: Props,\n { itemMetadataMap, estimatedItemSize, lastMeasuredIndex }: InstanceProps\n) => {\n let totalSizeOfMeasuredItems = 0;\n\n // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n if (lastMeasuredIndex >= itemCount) {\n lastMeasuredIndex = itemCount - 1;\n }\n\n if (lastMeasuredIndex >= 0) {\n const itemMetadata = itemMetadataMap[lastMeasuredIndex];\n totalSizeOfMeasuredItems = itemMetadata.offset + itemMetadata.size;\n }\n\n const numUnmeasuredItems = itemCount - lastMeasuredIndex - 1;\n const totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedItemSize;\n\n return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems;\n};\n\nconst VariableSizeList = createListComponent({\n getItemOffset: (\n props: Props,\n index: number,\n instanceProps: InstanceProps\n ): number => getItemMetadata(props, index, instanceProps).offset,\n\n getItemSize: (\n props: Props,\n index: number,\n instanceProps: InstanceProps\n ): number => instanceProps.itemMetadataMap[index].size,\n\n getEstimatedTotalSize,\n\n getOffsetForIndexAndAlignment: (\n props: Props,\n index: number,\n align: ScrollToAlign,\n scrollOffset: number,\n instanceProps: InstanceProps,\n scrollbarSize: number\n ): number => {\n const { direction, height, layout, width } = props;\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n const size = (((isHorizontal ? width : height): any): number);\n const itemMetadata = getItemMetadata(props, index, instanceProps);\n\n // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n const estimatedTotalSize = getEstimatedTotalSize(props, instanceProps);\n\n const maxOffset = Math.max(\n 0,\n Math.min(estimatedTotalSize - size, itemMetadata.offset)\n );\n const minOffset = Math.max(\n 0,\n itemMetadata.offset - size + itemMetadata.size + scrollbarSize\n );\n\n if (align === 'smart') {\n if (\n scrollOffset >= minOffset - size &&\n scrollOffset <= maxOffset + size\n ) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n case 'end':\n return minOffset;\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n }\n },\n\n getStartIndexForOffset: (\n props: Props,\n offset: number,\n instanceProps: InstanceProps\n ): number => findNearestItem(props, instanceProps, offset),\n\n getStopIndexForStartIndex: (\n props: Props,\n startIndex: number,\n scrollOffset: number,\n instanceProps: InstanceProps\n ): number => {\n const { direction, height, itemCount, layout, width } = props;\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n const size = (((isHorizontal ? width : height): any): number);\n const itemMetadata = getItemMetadata(props, startIndex, instanceProps);\n const maxOffset = scrollOffset + size;\n\n let offset = itemMetadata.offset + itemMetadata.size;\n let stopIndex = startIndex;\n\n while (stopIndex < itemCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata(props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n\n initInstanceProps(props: Props, instance: any): InstanceProps {\n const { estimatedItemSize } = ((props: any): VariableSizeProps);\n\n const instanceProps = {\n itemMetadataMap: {},\n estimatedItemSize: estimatedItemSize || DEFAULT_ESTIMATED_ITEM_SIZE,\n lastMeasuredIndex: -1,\n };\n\n instance.resetAfterIndex = (\n index: number,\n shouldForceUpdate?: boolean = true\n ) => {\n instanceProps.lastMeasuredIndex = Math.min(\n instanceProps.lastMeasuredIndex,\n index - 1\n );\n\n // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n\n shouldResetStyleCacheOnItemSizeChange: false,\n\n validateProps: ({ itemSize }: Props): void => {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'function') {\n throw Error(\n 'An invalid \"itemSize\" prop has been specified. ' +\n 'Value should be a function. ' +\n `\"${itemSize === null ? 'null' : typeof itemSize}\" was specified.`\n );\n }\n }\n },\n});\n\nexport default VariableSizeList;\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport React from 'react';\nimport { VariableSizeList } from 'react-window';\nimport Tree, { createTreeComputer } from './Tree';\nimport { createBasicRecord, getIdByIndex } from './utils';\nvar computeTree = createTreeComputer({\n createRecord: function createRecord(data, _ref, parent, previousRecord) {\n var recomputeTree = _ref.recomputeTree,\n resetAfterId = _ref.resetAfterId;\n var record = createBasicRecord({\n data: data,\n height: previousRecord ? previousRecord.public.height : data.defaultHeight,\n isOpen: previousRecord ? previousRecord.public.isOpen : data.isOpenByDefault,\n resize: function resize(height, shouldForceUpdate) {\n record.public.height = height;\n resetAfterId(record.public.data.id, shouldForceUpdate);\n },\n setOpen: function setOpen(state) {\n var _recomputeTree;\n\n return recomputeTree((_recomputeTree = {}, _recomputeTree[data.id] = state, _recomputeTree));\n }\n }, parent);\n return record;\n }\n});\nexport var VariableSizeTree = /*#__PURE__*/function (_Tree) {\n _inheritsLoose(VariableSizeTree, _Tree);\n\n function VariableSizeTree(props, context) {\n var _this;\n\n _this = _Tree.call(this, props, context) || this;\n _this.getItemSize = _this.getItemSize.bind(_assertThisInitialized(_this));\n _this.state = _extends({}, _this.state, {\n computeTree: computeTree,\n resetAfterId: _this.resetAfterId.bind(_assertThisInitialized(_this))\n });\n return _this;\n }\n\n var _proto = VariableSizeTree.prototype;\n\n _proto.resetAfterId = function resetAfterId(id, shouldForceUpdate) {\n var _list$current;\n\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = false;\n }\n\n var _this$state = this.state,\n list = _this$state.list,\n order = _this$state.order;\n (_list$current = list.current) == null ? void 0 : _list$current.resetAfterIndex(order.indexOf(id), shouldForceUpdate);\n };\n\n _proto.recomputeTree = function recomputeTree(state) {\n var _this2 = this;\n\n return _Tree.prototype.recomputeTree.call(this, state).then(function () {\n var _this2$state$list$cur;\n\n (_this2$state$list$cur = _this2.state.list.current) == null ? void 0 : _this2$state$list$cur.resetAfterIndex(0, true);\n });\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n placeholder = _this$props.placeholder,\n itemSize = _this$props.itemSize,\n rowComponent = _this$props.rowComponent,\n treeWalker = _this$props.treeWalker,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"placeholder\", \"itemSize\", \"rowComponent\", \"treeWalker\"]);\n\n var _this$state2 = this.state,\n attachRefs = _this$state2.attachRefs,\n order = _this$state2.order;\n return placeholder && order.length === 0 ? placeholder : /*#__PURE__*/React.createElement(VariableSizeList, Object.assign({}, rest, {\n itemCount: order.length,\n itemData: this.getItemData() // eslint-disable-next-line @typescript-eslint/unbound-method\n ,\n itemKey: getIdByIndex // eslint-disable-next-line @typescript-eslint/unbound-method\n ,\n itemSize: itemSize != null ? itemSize : this.getItemSize // eslint-disable-next-line @typescript-eslint/unbound-method\n ,\n ref: attachRefs\n }), rowComponent);\n };\n\n _proto.getItemSize = function getItemSize(index) {\n return this.getRecordData(index).height;\n };\n\n return VariableSizeTree;\n}(Tree);"],"names":["d","BadgeRoot","styled","name","slot","overridesResolver","props","styles","root","position","display","verticalAlign","flexShrink","BadgeBadge","ownerState","badge","variant","capitalize","anchorOrigin","vertical","horizontal","overlap","color","invisible","memoTheme","theme","flexDirection","flexWrap","justifyContent","alignContent","alignItems","boxSizing","fontFamily","typography","fontWeight","fontWeightMedium","fontSize","pxToRem","minWidth","RADIUS_STANDARD","lineHeight","padding","height","borderRadius","zIndex","transition","transitions","create","easing","easeInOut","duration","enteringScreen","variants","Object","entries","palette","filter","createSimplePaletteValueFilter","map","style","backgroundColor","vars","main","contrastText","RADIUS_DOT","top","right","transform","transformOrigin","badgeClasses","bottom","left","leavingScreen","inProps","ref","anchorOriginProp","className","classes","classesProp","component","components","componentsProps","children","overlapProp","colorProp","invisibleProp","max","maxProp","badgeContent","badgeContentProp","slots","slotProps","showZero","variantProp","other","invisibleFromHook","displayValue","displayValueFromHook","parameters","prevProps","usePreviousProps","Number","undefined","composeClasses","useUtilityClasses","RootSlot","Root","BadgeSlot","Badge","rootSlotProps","badgeSlotProps","rootProps","useSlotProps","elementType","externalSlotProps","externalForwardedProps","additionalProps","as","clsx","badgeProps","getBadgeUtilityClass","FabRoot","shouldForwardProp","prop","size","colorInherit","button","minHeight","short","width","fab","boxShadow","shadows","text","primary","getContrastText","grey","A100","textDecoration","focusVisible","dark","disabled","action","disabledBackground","disableFocusRipple","focusVisibleClassName","composedClasses","focusRipple","getFabUtilityClass","windowObject","window","self","g","cancelFrame","requestFrame","clearTimeoutFn","clearTimeout","setTimeoutFn","setTimeout","cancelAnimationFrameFn","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","requestAnimationFrameFn","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","callback","animationFrameID","timeoutID","AutoSizer","Component","constructor","args","super","this","state","defaultHeight","scaledHeight","scaledWidth","defaultWidth","_autoSizer","_detectElementResize","_parentNode","_resizeObserver","_timeoutId","_onResize","disableHeight","disableWidth","onResize","getComputedStyle","paddingLeft","parseFloat","paddingRight","paddingTop","paddingBottom","rect","getBoundingClientRect","offsetHeight","offsetWidth","setState","_setRef","autoSizer","componentDidMount","nonce","parentNode","ownerDocument","defaultView","HTMLElement","ResizeObserverInstance","ResizeObserver","observe","animationKeyframes","animationName","animationStartEvent","animationStyle","checkTriggers","resetTriggers","scrollListener","attachEvent","document","element","triggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollLeft","scrollWidth","scrollTop","scrollHeight","__resizeLast__","e","target","indexOf","__resizeRAF__","__resizeListeners__","forEach","fn","call","animation","keyframeprefix","domPrefixes","split","startEvents","pfx","elm","createElement","i","length","toLowerCase","addResizeListener","doc","elementStyle","getElementById","css","head","getElementsByTagName","id","type","setAttribute","styleSheet","cssText","appendChild","createTextNode","createStyles","expandTrigger","contractTrigger","addEventListener","__animationListener__","push","removeResizeListener","detachEvent","splice","removeEventListener","removeChild","createDetectElementResize","componentWillUnmount","disconnect","render","doNotBailOutOnEmptyChildren","tagName","rest","outerStyle","overflow","childParams","bailoutOnChildren","noop","createBasicRecord","pub","parent","child","isShown","public","isOpen","sibling","visited","index","_ref","getRecordData","data","createTreeComputer","creatorOptions","options","refresh","_ref2","_ref3","createRecord","buildingTaskTimeout","placeholder","_ref3$async","async","treeWalker","shouldPreservePreviousState","records","previousRecords","order","Map","requestIdleCallbackOptions","timeout","meta","WeakMap","iter","next","value","rootRecord","get","set","currentRecord","isTraversingRoot","tempRecord","useIdleCallback","hasTime","deadline","timeRemaining","task","requestIdleCallback","childRecord","updateRequest","generateNewTree","_ref4","_ref5","opennessState","has","opts","ownerRecord","_ref6","open","_ref6$subtreeCallback","subtreeCallback","update","apply","recordNextToSubtree","countToRemove","orderParts","record","currentOrderPart","MAX_FUNCTION_ARGUMENTS","_ref7","count","updateExistingTree","_PureComponent","Tree","context","_this","bind","list","createRef","recomputeTree","getDerivedStateFromProps","refs","_props$listRef","listRef","computeTree","oldTreeWalker","attachRefs","current","_proto","prototype","getItemData","_this$props","treeData","itemData","_this$state","_this2","Promise","resolve","prevState","scrollTo","scrollOffset","_this$state$list$curr","scrollToItem","align","_this$state$list$curr2","PureComponent","defaultProps","rowComponent","_ref$data","Node","isScrolling","assign","previousRecord","isOpenByDefault","setOpen","_recomputeTree","safeIsNaN","isNaN","areInputsEqual","newInputs","lastInputs","first","second","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","_i","arguments","now","performance","Date","cancelTimeout","getScrollbarSize","recalculate","div","body","clientWidth","cachedRTLResult","getRTLOffsetType","outerDiv","direction","innerDiv","innerStyle","defaultItemKey","createListComponent","getItemOffset","getEstimatedTotalSize","getItemSize","getOffsetForIndexAndAlignment","getStartIndexForOffset","getStopIndexForStartIndex","initInstanceProps","shouldResetStyleCacheOnItemSizeChange","validateProps","_instanceProps","_outerRef","_resetIsScrollingTimeoutId","instance","scrollDirection","initialScrollOffset","scrollUpdateWasRequested","_callOnItemsRendered","memoizeOne","overscanStartIndex","overscanStopIndex","visibleStartIndex","visibleStopIndex","onItemsRendered","_callOnScroll","onScroll","_getItemStyle","itemSize","layout","itemStyleCache","_getItemStyleCache","hasOwnProperty","offset","isHorizontal","isRtl","offsetHorizontal","_","__","___","_onScrollHorizontal","event","currentTarget","Math","min","_resetIsScrollingDebounced","_onScrollVertical","clientHeight","_outerRefSetter","outerRef","delay","start","_resetIsScrolling","tick","nextProps","validateSharedProps","itemCount","scrollbarSize","_callPropsCallbacks","componentDidUpdate","innerRef","innerElementType","innerTagName","itemKey","outerElementType","outerTagName","useIsScrolling","_getRangeToRender","startIndex","stopIndex","items","key","estimatedTotalSize","WebkitOverflowScrolling","willChange","pointerEvents","overscanCount","overscanBackward","overscanForward","getItemMetadata","instanceProps","itemMetadataMap","lastMeasuredIndex","itemMetadata","findNearestItemBinarySearch","high","low","middle","floor","currentOffset","estimatedItemSize","totalSizeOfMeasuredItems","VariableSizeList","maxOffset","minOffset","round","interval","findNearestItemExponentialSearch","findNearestItem","resetAfterIndex","shouldForceUpdate","forceUpdate","resetAfterId","resize","VariableSizeTree","_Tree","_list$current","then","_this2$state$list$cur","_this$state2"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1752.a727a500.chunk.js --- a/x/static/js/1752.a727a500.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1752],{31752:(e,t,a)=>{a.d(t,{drawDotplot:()=>u});var o=a(68584),r=a(95095),s=a(36422),n=a(82727),f=a(49823);const{parseCigar:c}=n.aF,l="fell outside of range due to CIGAR string",i="(less than min coordinate of feature)",d="(greater than max coordinate of feature)",g=1;function h(e,t,a,o=1){e.beginPath(),e.arc(t,a,o/2,0,2*Math.PI),e.fill()}async function u(e,t){const{config:a,views:n,height:u,drawCigar:m,theme:p}=t,b=(0,o.readConfObject)(a,"color"),$=(0,o.readConfObject)(a,"posColor"),k=(0,o.readConfObject)(a,"negColor"),C=(0,o.readConfObject)(a,"colorBy"),w=(0,o.readConfObject)(a,"lineWidth"),P=(0,o.readConfObject)(a,"thresholds"),B=(0,o.readConfObject)(a,"thresholdsPalette"),y=a.color.isCallback,N=n[0],j=n[1],v=N.dynamicBlocks.contentBlocks[0]?.offsetPx,x=j.dynamicBlocks.contentBlocks[0]?.offsetPx,O=[];e.lineWidth=w;const{bpPerPx:T}=N,{bpPerPx:M}=j;function I(e,t,a,o){const r=o.get("strand")||1;if(-1===r&&([a,t]=[t,a]),ea+g){const e=o.get("strand")||1,t=1===e?o.get("start"):o.get("end"),r=1===e?o.get("end"):o.get("start"),s=o.get("refName");return O.push({message:`feature at (X ${s}:${t}-${r}) ${l} ${d}`,effect:"clipped the feature"}),a}return e}function S(e,t,a,o){if(ea+g){const e=o.get("mate"),{refName:t,start:r,end:s}=e;return O.push({message:`feature at (Y ${t}:${r}-${s}) ${l} ${d}`,effect:"clipped the feature"}),a}return e}const X={...(0,s.getSnapshot)(N),staticBlocks:N.staticBlocks,width:N.width},_={...(0,s.getSnapshot)(j),staticBlocks:j.staticBlocks,width:j.width},Q=(0,f.createJBrowseTheme)(p);for(const t of N.features||[]){const s=t.get("strand")||1,n=1===s?t.get("start"):t.get("end"),f=1===s?t.get("end"):t.get("start"),l=t.get("refName"),i=t.get("mate"),d=i.refName;let g="black";if("identity"===C){const e=t.get("identity");for(let t=0;t+P[t]){g=B[t]||"black";break}}else"meanQueryIdentity"===C?g=`hsl(${200*t.get("meanScore")},100%,40%)`:"mappingQuality"===C?g=`hsl(${t.get("mappingQual")},100%,40%)`:"strand"===C?g=-1===s?k:$:"default"===C&&(g=y?(0,o.readConfObject)(a,"color",{feature:t}):"#f0f"===b?Q.palette.text.primary:b);e.fillStyle=g,e.strokeStyle=g;const p=(0,r.eB)({self:X,refName:l,coord:n}),N=(0,r.eB)({self:X,refName:l,coord:f}),j=(0,r.eB)({self:_,refName:d,coord:i.start}),Y=(0,r.eB)({self:_,refName:d,coord:i.end});if(void 0!==p&&void 0!==N&&void 0!==j&&void 0!==Y){const a=p.offsetPx-v,o=N.offsetPx-v,r=j.offsetPx-x,n=Y.offsetPx-x;if(Math.abs(a-o)<=4&&Math.abs(r-n)<=4)h(e,a,u-r,w);else{let f=a,l=r;const i=t.get("CIGAR");if(m&&i){const d=c(i);e.beginPath(),e.moveTo(f,u-l);let g=f,h=f;for(let c=0;c.5||Math.abs(l-h)>.5)&&(e.lineTo(f,u-l),g=f,h=l)}e.stroke()}else e.beginPath(),e.moveTo(a,u-r),e.lineTo(o,u-n),e.stroke()}}else O.length<=5&&(void 0===p||void 0===N?O.push({message:`feature at (X ${l}:${n}-${f}) not plotted, fell outside of range`,effect:"feature not rendered"}):O.push({message:`feature at (Y ${d}:${i.start}-${i.end}) not plotted, fell outside of range`,effect:"feature not rendered"}))}return{warnings:O}}}}]); -//# sourceMappingURL=1752.a727a500.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1752.a727a500.chunk.js.map --- a/x/static/js/1752.a727a500.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1752.a727a500.chunk.js","mappings":"+MAcA,MAAM,WAAEA,GAAeC,EAAAA,GAajBC,EAAI,4CACJC,EAAK,wCACLC,EAAK,2CACLC,EAAc,EAEpB,SAASC,EAAQC,EAA+BC,EAAWC,EAAWP,EAAI,GACxEK,EAAIG,YACJH,EAAII,IAAIH,EAAGC,EAAGP,EAAI,EAAG,EAAG,EAAIU,KAAKC,IACjCN,EAAIO,MACN,CAEOC,eAAeC,EACpBT,EACAU,GAEA,MAAM,OAAEC,EAAM,MAAEC,EAAK,OAAEC,EAAM,UAAEC,EAAS,MAAEC,GAAUL,EAC9CM,GAAQC,EAAAA,EAAAA,gBAAeN,EAAQ,SAC/BO,GAAWD,EAAAA,EAAAA,gBAAeN,EAAQ,YAClCQ,GAAWF,EAAAA,EAAAA,gBAAeN,EAAQ,YAClCS,GAAUH,EAAAA,EAAAA,gBAAeN,EAAQ,WACjCU,GAAYJ,EAAAA,EAAAA,gBAAeN,EAAQ,aACnCW,GAAaL,EAAAA,EAAAA,gBAAeN,EAAQ,cACpCY,GAAUN,EAAAA,EAAAA,gBAAeN,EAAQ,qBACjCa,EAAab,EAAOK,MAAMQ,WAC1BC,EAAQb,EAAM,GACdc,EAAQd,EAAM,GACde,EAAMF,EAAMG,cAAcC,cAAc,IAAIC,SAC5CC,EAAML,EAAME,cAAcC,cAAc,IAAIC,SAC5CE,EAAW,GACjBhC,EAAIqB,UAAYA,EAIhB,MAAQY,QAASC,GAAaT,GACtBQ,QAASE,GAAaT,EAE9B,SAASU,EACPC,EACAC,EACAC,EACAC,GAEA,MAAMC,EAASD,EAAQE,IAAI,WAAa,EAIxC,IAHgB,IAAZD,KACAF,EAAKD,GAAO,CAACA,EAAKC,IAElBF,EAAMC,EAAMxC,EAAa,CAC3B,IAAI6C,EAAQH,EAAQE,IAAI,SACpBE,EAAMJ,EAAQE,IAAI,OACtB,MAAMG,EAAUL,EAAQE,IAAI,WAS5B,OARgB,IAAZD,KACAG,EAAKD,GAAS,CAACA,EAAOC,IAG1BZ,EAASc,KAAK,CACZC,QAAS,iBAAiBF,KAAWF,KAASC,MAAQjD,KAAKC,IAC3DoD,OAAQ,wBAEHV,CACT,CACA,GAAID,EAAME,EAAMzC,EAAa,CAC3B,MAAM2C,EAASD,EAAQE,IAAI,WAAa,EAClCC,EAAmB,IAAXF,EAAeD,EAAQE,IAAI,SAAWF,EAAQE,IAAI,OAC1DE,EAAiB,IAAXH,EAAeD,EAAQE,IAAI,OAASF,EAAQE,IAAI,SACtDG,EAAUL,EAAQE,IAAI,WAM5B,OAJAV,EAASc,KAAK,CACZC,QAAS,iBAAiBF,KAAWF,KAASC,MAAQjD,KAAKE,IAC3DmD,OAAQ,wBAEHT,CACT,CACA,OAAOF,CACT,CAEA,SAASY,EACPZ,EACAC,EACAC,EACAC,GAEA,GAAIH,EAAMC,EAAMxC,EAAa,CAC3B,MAAMoD,EAAOV,EAAQE,IAAI,SACnB,QAAEG,EAAO,MAAEF,EAAK,IAAEC,GAAQM,EAKhC,OAJAlB,EAASc,KAAK,CACZC,QAAS,iBAAiBF,KAAWF,KAASC,MAAQjD,KAAKC,IAC3DoD,OAAQ,wBAEHV,CACT,CACA,GAAID,EAAME,EAAMzC,EAAa,CAC3B,MAAMoD,EAAOV,EAAQE,IAAI,SACnB,QAAEG,EAAO,MAAEF,EAAK,IAAEC,GAAQM,EAMhC,OAJAlB,EAASc,KAAK,CACZC,QAAS,iBAAiBF,KAAWF,KAASC,MAAQjD,KAAKE,IAC3DmD,OAAQ,wBAEHT,CACT,CACA,OAAOF,CACT,CAEA,MAAMc,EAAQ,KACTC,EAAAA,EAAAA,aAAY3B,GACf4B,aAAc5B,EAAM4B,aACpBC,MAAO7B,EAAM6B,OAETC,EAAQ,KACTH,EAAAA,EAAAA,aAAY1B,GACf2B,aAAc3B,EAAM2B,aACpBC,MAAO5B,EAAM4B,OAETE,GAAIC,EAAAA,EAAAA,oBAAmB1C,GAC7B,IAAK,MAAMyB,KAAWf,EAAMiC,UAAY,GAAI,CAC1C,MAAMjB,EAASD,EAAQE,IAAI,WAAa,EAClCC,EAAmB,IAAXF,EAAeD,EAAQE,IAAI,SAAWF,EAAQE,IAAI,OAC1DE,EAAiB,IAAXH,EAAeD,EAAQE,IAAI,OAASF,EAAQE,IAAI,SACtDG,EAAUL,EAAQE,IAAI,WACtBQ,EAAOV,EAAQE,IAAI,QACnBiB,EAAUT,EAAKL,QAErB,IAAIlD,EAAI,QACR,GAAgB,aAAZyB,EAAwB,CAC1B,MAAMwC,EAAWpB,EAAQE,IAAI,YAC7B,IAAK,IAAImB,EAAI,EAAGA,EAAIvC,EAAWwC,OAAQD,IACrC,GAAID,GAAYtC,EAAWuC,GAAI,CAC7BlE,EAAI4B,EAAQsC,IAAM,QAClB,KACF,CAEJ,KAAuB,sBAAZzC,EACTzB,EAAI,OAAkC,IAA3B6C,EAAQE,IAAI,yBACF,mBAAZtB,EACTzB,EAAI,OAAO6C,EAAQE,IAAI,2BACF,WAAZtB,EACTzB,GAAgB,IAAZ8C,EAAgBtB,EAAWD,EACV,YAAZE,IACTzB,EAAI6B,GACAP,EAAAA,EAAAA,gBAAeN,EAAQ,QAAS,CAAE6B,YACxB,SAAVxB,EACEwC,EAAEjC,QAAQwC,KAAKC,QACfhD,GAERhB,EAAIiE,UAAYtE,EAChBK,EAAIkE,YAAcvE,EAElB,MAAMwE,GAAMC,EAAAA,EAAAA,IAAO,CAAEC,KAAMlB,EAAON,UAASyB,MAAO3B,IAC5C4B,GAAMH,EAAAA,EAAAA,IAAO,CAAEC,KAAMlB,EAAON,UAASyB,MAAO1B,IAC5C4B,GAAMJ,EAAAA,EAAAA,IAAO,CAAEC,KAAMd,EAAOV,QAASc,EAASW,MAAOpB,EAAKP,QAC1D8B,GAAML,EAAAA,EAAAA,IAAO,CAAEC,KAAMd,EAAOV,QAASc,EAASW,MAAOpB,EAAKN,MAChE,QACU8B,IAARP,QACQO,IAARH,QACQG,IAARF,QACQE,IAARD,EACA,CACA,MAAME,EAAKR,EAAIrC,SAAWH,EACpBiD,EAAKL,EAAIzC,SAAWH,EACpBkD,EAAKL,EAAI1C,SAAWC,EACpB+C,EAAKL,EAAI3C,SAAWC,EAC1B,GAAI1B,KAAK0E,IAAIJ,EAAKC,IAAO,GAAKvE,KAAK0E,IAAIF,EAAKC,IAAO,EACjD/E,EAAQC,EAAK2E,EAAI9D,EAASgE,EAAIxD,OACzB,CACL,IAAI2D,EAAQL,EACRM,EAAQJ,EACZ,MAAMK,EAAQ1C,EAAQE,IAAI,SAC1B,GAAI5B,GAAaoE,EAAO,CACtB,MAAMC,EAAW1F,EAAWyF,GAE5BlF,EAAIG,YACJH,EAAIoF,OAAOJ,EAAOnE,EAASoE,GAE3B,IAAII,EAAaL,EACbM,EAAaN,EACjB,IAAK,IAAInB,EAAI,EAAGA,EAAIsB,EAASrB,OAAQD,GAAK,EAAG,CAC3C,MAAM0B,GAAOJ,EAAStB,GAChB2B,EAAKL,EAAStB,EAAI,GACb,MAAP2B,GAAqB,MAAPA,GAAqB,MAAPA,GAC9BR,GAAUO,EAAMrD,EAAYO,EAC5BwC,GAASM,EAAMpD,GACC,MAAPqD,GAAqB,MAAPA,EACvBR,GAAUO,EAAMrD,EAAYO,EACZ,MAAP+C,IACTP,GAASM,EAAMpD,GAEjB6C,EAAQ5C,EAAe4C,EAAOL,EAAIC,EAAIpC,GACtCyC,EAAQhC,EAAegC,EAAOJ,EAAIC,EAAItC,IAIpCnC,KAAK0E,IAAIC,EAAQK,GAAc,IAC/BhF,KAAK0E,IAAIE,EAAQK,GAAc,MAE/BtF,EAAIyF,OAAOT,EAAOnE,EAASoE,GAC3BI,EAAaL,EACbM,EAAaL,EAEjB,CAEAjF,EAAI0F,QACN,MACE1F,EAAIG,YACJH,EAAIoF,OAAOT,EAAI9D,EAASgE,GACxB7E,EAAIyF,OAAOb,EAAI/D,EAASiE,GACxB9E,EAAI0F,QAER,CACF,MACM1D,EAAS8B,QAAU,SACTY,IAARP,QAA6BO,IAARH,EACvBvC,EAASc,KAAK,CACZC,QAAS,iBAAiBF,KAAWF,KAASC,wCAC9CI,OAAQ,yBAGVhB,EAASc,KAAK,CACZC,QAAS,iBAAiBY,KAAWT,EAAKP,SAASO,EAAKN,0CACxDI,OAAQ,yBAKlB,CAEA,MAAO,CAAEhB,WACX,C","sources":["../../../plugins/dotplot-view/src/DotplotRenderer/drawDotplot.ts"],"sourcesContent":["import {\n readConfObject,\n AnyConfigurationModel,\n} from '@jbrowse/core/configuration'\nimport { Feature } from '@jbrowse/core/util'\nimport { bpToPx } from '@jbrowse/core/util/Base1DUtils'\nimport { getSnapshot } from 'mobx-state-tree'\nimport { RenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/ComparativeServerSideRendererType'\nimport { MismatchParser } from '@jbrowse/plugin-alignments'\n\n// locals\nimport { Dotplot1DViewModel } from '../DotplotView/model'\nimport { createJBrowseTheme } from '@jbrowse/core/ui'\n\nconst { parseCigar } = MismatchParser\n\nexport interface DotplotRenderArgsDeserialized extends RenderArgsDeserialized {\n adapterConfig: AnyConfigurationModel\n height: number\n width: number\n highResolutionScaling: number\n view: {\n hview: Dotplot1DViewModel\n vview: Dotplot1DViewModel\n }\n}\n\nconst r = 'fell outside of range due to CIGAR string'\nconst lt = '(less than min coordinate of feature)'\nconst gt = '(greater than max coordinate of feature)'\nconst fudgeFactor = 1 // allow 1px fuzzyness before warn\n\nfunction drawCir(ctx: CanvasRenderingContext2D, x: number, y: number, r = 1) {\n ctx.beginPath()\n ctx.arc(x, y, r / 2, 0, 2 * Math.PI)\n ctx.fill()\n}\n\nexport async function drawDotplot(\n ctx: CanvasRenderingContext2D,\n props: DotplotRenderArgsDeserialized & { views: Dotplot1DViewModel[] },\n) {\n const { config, views, height, drawCigar, theme } = props\n const color = readConfObject(config, 'color')\n const posColor = readConfObject(config, 'posColor')\n const negColor = readConfObject(config, 'negColor')\n const colorBy = readConfObject(config, 'colorBy')\n const lineWidth = readConfObject(config, 'lineWidth')\n const thresholds = readConfObject(config, 'thresholds')\n const palette = readConfObject(config, 'thresholdsPalette') as string[]\n const isCallback = config.color.isCallback\n const hview = views[0]!\n const vview = views[1]!\n const db1 = hview.dynamicBlocks.contentBlocks[0]?.offsetPx\n const db2 = vview.dynamicBlocks.contentBlocks[0]?.offsetPx\n const warnings = [] as { message: string; effect: string }[]\n ctx.lineWidth = lineWidth\n\n // we operate on snapshots of these attributes of the hview/vview because\n // it is significantly faster than accessing the mobx objects\n const { bpPerPx: hBpPerPx } = hview\n const { bpPerPx: vBpPerPx } = vview\n\n function clampWithWarnX(\n num: number,\n min: number,\n max: number,\n feature: Feature,\n ) {\n const strand = feature.get('strand') || 1\n if (strand === -1) {\n ;[max, min] = [min, max]\n }\n if (num < min - fudgeFactor) {\n let start = feature.get('start')\n let end = feature.get('end')\n const refName = feature.get('refName')\n if (strand === -1) {\n ;[end, start] = [start, end]\n }\n\n warnings.push({\n message: `feature at (X ${refName}:${start}-${end}) ${r} ${lt}`,\n effect: 'clipped the feature',\n })\n return min\n }\n if (num > max + fudgeFactor) {\n const strand = feature.get('strand') || 1\n const start = strand === 1 ? feature.get('start') : feature.get('end')\n const end = strand === 1 ? feature.get('end') : feature.get('start')\n const refName = feature.get('refName')\n\n warnings.push({\n message: `feature at (X ${refName}:${start}-${end}) ${r} ${gt}`,\n effect: 'clipped the feature',\n })\n return max\n }\n return num\n }\n\n function clampWithWarnY(\n num: number,\n min: number,\n max: number,\n feature: Feature,\n ) {\n if (num < min - fudgeFactor) {\n const mate = feature.get('mate')\n const { refName, start, end } = mate\n warnings.push({\n message: `feature at (Y ${refName}:${start}-${end}) ${r} ${lt}`,\n effect: 'clipped the feature',\n })\n return min\n }\n if (num > max + fudgeFactor) {\n const mate = feature.get('mate')\n const { refName, start, end } = mate\n\n warnings.push({\n message: `feature at (Y ${refName}:${start}-${end}) ${r} ${gt}`,\n effect: 'clipped the feature',\n })\n return max\n }\n return num\n }\n\n const hsnap = {\n ...getSnapshot(hview),\n staticBlocks: hview.staticBlocks,\n width: hview.width,\n }\n const vsnap = {\n ...getSnapshot(vview),\n staticBlocks: vview.staticBlocks,\n width: vview.width,\n }\n const t = createJBrowseTheme(theme)\n for (const feature of hview.features || []) {\n const strand = feature.get('strand') || 1\n const start = strand === 1 ? feature.get('start') : feature.get('end')\n const end = strand === 1 ? feature.get('end') : feature.get('start')\n const refName = feature.get('refName')\n const mate = feature.get('mate')\n const mateRef = mate.refName\n\n let r = 'black'\n if (colorBy === 'identity') {\n const identity = feature.get('identity')\n for (let i = 0; i < thresholds.length; i++) {\n if (identity > +thresholds[i]) {\n r = palette[i] || 'black'\n break\n }\n }\n } else if (colorBy === 'meanQueryIdentity') {\n r = `hsl(${feature.get('meanScore') * 200},100%,40%)`\n } else if (colorBy === 'mappingQuality') {\n r = `hsl(${feature.get('mappingQual')},100%,40%)`\n } else if (colorBy === 'strand') {\n r = strand === -1 ? negColor : posColor\n } else if (colorBy === 'default') {\n r = isCallback\n ? readConfObject(config, 'color', { feature })\n : color === '#f0f'\n ? t.palette.text.primary\n : color\n }\n ctx.fillStyle = r\n ctx.strokeStyle = r\n\n const b10 = bpToPx({ self: hsnap, refName, coord: start })\n const b20 = bpToPx({ self: hsnap, refName, coord: end })\n const e10 = bpToPx({ self: vsnap, refName: mateRef, coord: mate.start })\n const e20 = bpToPx({ self: vsnap, refName: mateRef, coord: mate.end })\n if (\n b10 !== undefined &&\n b20 !== undefined &&\n e10 !== undefined &&\n e20 !== undefined\n ) {\n const b1 = b10.offsetPx - db1!\n const b2 = b20.offsetPx - db1!\n const e1 = e10.offsetPx - db2!\n const e2 = e20.offsetPx - db2!\n if (Math.abs(b1 - b2) <= 4 && Math.abs(e1 - e2) <= 4) {\n drawCir(ctx, b1, height - e1, lineWidth)\n } else {\n let currX = b1\n let currY = e1\n const cigar = feature.get('CIGAR')\n if (drawCigar && cigar) {\n const cigarOps = parseCigar(cigar)\n\n ctx.beginPath()\n ctx.moveTo(currX, height - currY)\n\n let lastDrawnX = currX\n let lastDrawnY = currX\n for (let i = 0; i < cigarOps.length; i += 2) {\n const val = +cigarOps[i]!\n const op = cigarOps[i + 1]!\n if (op === 'M' || op === '=' || op === 'X') {\n currX += (val / hBpPerPx) * strand\n currY += val / vBpPerPx\n } else if (op === 'D' || op === 'N') {\n currX += (val / hBpPerPx) * strand\n } else if (op === 'I') {\n currY += val / vBpPerPx\n }\n currX = clampWithWarnX(currX, b1, b2, feature)\n currY = clampWithWarnY(currY, e1, e2, feature)\n\n // only draw a line segment if it is bigger than 0.5px\n if (\n Math.abs(currX - lastDrawnX) > 0.5 ||\n Math.abs(currY - lastDrawnY) > 0.5\n ) {\n ctx.lineTo(currX, height - currY)\n lastDrawnX = currX\n lastDrawnY = currY\n }\n }\n\n ctx.stroke()\n } else {\n ctx.beginPath()\n ctx.moveTo(b1, height - e1)\n ctx.lineTo(b2, height - e2)\n ctx.stroke()\n }\n }\n } else {\n if (warnings.length <= 5) {\n if (b10 === undefined || b20 === undefined) {\n warnings.push({\n message: `feature at (X ${refName}:${start}-${end}) not plotted, fell outside of range`,\n effect: 'feature not rendered',\n })\n } else {\n warnings.push({\n message: `feature at (Y ${mateRef}:${mate.start}-${mate.end}) not plotted, fell outside of range`,\n effect: 'feature not rendered',\n })\n }\n }\n }\n }\n\n return { warnings }\n}\n"],"names":["parseCigar","MismatchParser","r","lt","gt","fudgeFactor","drawCir","ctx","x","y","beginPath","arc","Math","PI","fill","async","drawDotplot","props","config","views","height","drawCigar","theme","color","readConfObject","posColor","negColor","colorBy","lineWidth","thresholds","palette","isCallback","hview","vview","db1","dynamicBlocks","contentBlocks","offsetPx","db2","warnings","bpPerPx","hBpPerPx","vBpPerPx","clampWithWarnX","num","min","max","feature","strand","get","start","end","refName","push","message","effect","clampWithWarnY","mate","hsnap","getSnapshot","staticBlocks","width","vsnap","t","createJBrowseTheme","features","mateRef","identity","i","length","text","primary","fillStyle","strokeStyle","b10","bpToPx","self","coord","b20","e10","e20","undefined","b1","b2","e1","e2","abs","currX","currY","cigar","cigarOps","moveTo","lastDrawnX","lastDrawnY","val","op","lineTo","stroke"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1757.a6d05bc3.chunk.js --- a/x/static/js/1757.a6d05bc3.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1757],{61757:(e,s,t)=>{t.r(s),t.d(s,{default:()=>b.A,getListItemTextUtilityClass:()=>l.b,listItemTextClasses:()=>l.A});var b=t(81453),l=t(69285)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1811.7cfd8419.chunk.js --- a/x/static/js/1811.7cfd8419.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1811],{71811:(e,l,t)=>{t.r(l),t.d(l,{default:()=>k});var n=t(7552),o=t(68446),a=t(29499),r=t(9937),c=t(58507),s=t(5401),i=t(49823);const k=(0,o.observer)((function({onClose:e,model:l}){const{selectedBookmarks:t}=l,o=0===t.length;return n.createElement(i.Dialog,{open:!0,onClose:e,title:"Delete bookmarks"},n.createElement(a.A,null,n.createElement(r.A,{severity:"warning"},o?n.createElement(n.Fragment,null,n.createElement("span",null,"All bookmarks will be deleted."),n.createElement("br",null),n.createElement("span",null,"Use the checkboxes to select individual bookmarks to delete.")):"Only selected bookmarks will be deleted.")),n.createElement(c.A,null,n.createElement(s.A,{variant:"contained",color:"secondary",onClick:()=>{e()}},"Cancel"),n.createElement(s.A,{variant:"contained",color:"primary",onClick:()=>{o&&l.clearAllBookmarks(),l.clearSelectedBookmarks(),e()}},"Confirm")))}))}}]); -//# sourceMappingURL=1811.7cfd8419.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1811.7cfd8419.chunk.js.map --- a/x/static/js/1811.7cfd8419.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1811.7cfd8419.chunk.js","mappings":"qOAQA,MAwDA,GAxD8BA,EAAAA,EAAAA,WAAS,UAAU,QAC/CC,EAAO,MACPC,IAKA,MAAM,kBAAEC,GAAsBD,EACxBE,EAAyC,IAA7BD,EAAkBE,OAEpC,OACEC,EAAAA,cAACC,EAAAA,OAAM,CAACC,MAAI,EAACP,QAASA,EAASQ,MAAM,oBACnCH,EAAAA,cAACI,EAAAA,EAAa,KACZJ,EAAAA,cAACK,EAAAA,EAAK,CAACC,SAAS,WACbR,EACCE,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,YAAM,kCACNA,EAAAA,cAAA,WACAA,EAAAA,cAAA,YAAM,iEAKR,6CAINA,EAAAA,cAACO,EAAAA,EAAa,KACZP,EAAAA,cAACQ,EAAAA,EAAM,CACLC,QAAQ,YACRC,MAAM,YACNC,QAASA,KACPhB,GAAS,GAEZ,UAGDK,EAAAA,cAACQ,EAAAA,EAAM,CACLC,QAAQ,YACRC,MAAM,UACNC,QAASA,KACHb,GACFF,EAAMgB,oBAGRhB,EAAMiB,yBACNlB,GAAS,GAEZ,YAMT,G","sources":["../../../plugins/grid-bookmark/src/GridBookmarkWidget/components/dialogs/DeleteBookmarksDialog.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react'\nimport { Button, DialogContent, DialogActions, Alert } from '@mui/material'\nimport { Dialog } from '@jbrowse/core/ui'\n\n// locals\nimport { GridBookmarkModel } from '../../model'\n\nconst DeleteBookmarksDialog = observer(function ({\n onClose,\n model,\n}: {\n onClose: () => void\n model: GridBookmarkModel\n}) {\n const { selectedBookmarks } = model\n const deleteAll = selectedBookmarks.length === 0\n\n return (\n \n \n \n {deleteAll ? (\n <>\n All bookmarks will be deleted.\n
\n \n Use the checkboxes to select individual bookmarks to delete.\n \n \n ) : (\n 'Only selected bookmarks will be deleted.'\n )}\n
\n
\n \n {\n onClose()\n }}\n >\n Cancel\n \n {\n if (deleteAll) {\n model.clearAllBookmarks()\n }\n\n model.clearSelectedBookmarks()\n onClose()\n }}\n >\n Confirm\n \n \n
\n )\n})\n\nexport default DeleteBookmarksDialog\n"],"names":["observer","onClose","model","selectedBookmarks","deleteAll","length","React","Dialog","open","title","DialogContent","Alert","severity","DialogActions","Button","variant","color","onClick","clearAllBookmarks","clearSelectedBookmarks"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1822.2cbe112a.chunk.js --- a/x/static/js/1822.2cbe112a.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1822],{31822:(e,a,t)=>{t.r(a),t.d(a,{default:()=>u});var s=t(46377),r=t(66885),i=t(99546),n=t(62718),o=t(34796);function c(e){const a=e.slice(e.lastIndexOf("/")+1);return a.slice(0,a.lastIndexOf("."))}class u extends s.BaseFeatureDataAdapter{static capabilities=["hasResolution","hasLocalStats","hasGlobalStats"];async getAdapters(){const e=this.getSubAdapter;if(!e)throw new Error("no getSubAdapter available");let a=this.getConf("subadapters");return a?.length||(a=this.getConf("bigWigs").map((e=>({type:"BigWigAdapter",source:c(e),bigWigLocation:{uri:e}})))),Promise.all(a.map((async a=>{const t=(await e(a)).dataAdapter;return{source:a.name||t.id,...a,dataAdapter:t}})))}async getRefNames(e){const a=await this.getAdapters(),t=await Promise.all(a.map((a=>a.dataAdapter.getRefNames(e))));return[...new Set(t.flat())]}async getGlobalStats(e){const a=await this.getAdapters(),t=(await Promise.all(a.map((a=>a.dataAdapter.getGlobalStats?.(e))))).filter((e=>!!e));return{scoreMin:(0,i.min)(t.map((e=>e.scoreMin))),scoreMax:(0,i.max)(t.map((e=>e.scoreMax)))}}getFeatures(e,a={}){return(0,r.ObservableCreate)((async t=>{const s=await this.getAdapters();(0,n.h)(...s.map((t=>t.dataAdapter.getFeatures(e,a).pipe((0,o.T)((e=>e.get("source")?e:new i.SimpleFeature({...e.toJSON(),uniqueId:`${t.source}-${e.id()}`,source:t.source}))))))).subscribe(t)}),a.signal)}async getMultiRegionFeatureDensityStats(e){return{featureDensity:0}}async getSources(){return(await this.getAdapters()).map((({dataAdapter:e,source:a,name:t,...s})=>({name:a,__name:t,...s})))}freeResources(){}}}}]); -//# sourceMappingURL=1822.2cbe112a.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1822.2cbe112a.chunk.js.map --- a/x/static/js/1822.2cbe112a.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/1822.2cbe112a.chunk.js","mappings":"kNAcA,SAASA,EAAYC,GACnB,MAAMC,EAAWD,EAAIE,MAAMF,EAAIG,YAAY,KAAO,GAClD,OAAOF,EAASC,MAAM,EAAGD,EAASE,YAAY,KAChD,CAUe,MAAMC,UAA2BC,EAAAA,uBAC9C,oBAA6B,CAC3B,gBACA,gBACA,kBAGF,iBAAaC,GACX,MAAMC,EAAgBC,KAAKD,cAC3B,IAAKA,EACH,MAAM,IAAIE,MAAM,8BAElB,IAAIC,EAAWF,KAAKG,QAAQ,eAY5B,OAXKD,GAAUE,SAEbF,EADgBF,KAAKG,QAAQ,WACVE,KAAIC,IAAS,CAC9BC,KAAM,gBACNC,OAAQjB,EAAYe,GACpBG,eAAgB,CACdjB,IAAKc,QAKJI,QAAQC,IACbT,EAASG,KAAIO,UACX,MAAMC,SAAqBd,EAAce,IACtCD,YACH,MAAO,CACLL,OAAQM,EAAKC,MAAQF,EAAYG,MAC9BF,EACHD,cACD,IAGP,CAGA,iBAAaI,CAAYC,GACvB,MAAMC,QAAiBnB,KAAKF,cACtBsB,QAAiBV,QAAQC,IAC7BQ,EAASd,KAAIgB,GAAKA,EAAER,YAAYI,YAAYC,MAE9C,MAAO,IAAI,IAAII,IAAIF,EAASG,QAC9B,CAEA,oBAAaC,CAAeN,GAC1B,MAAMC,QAAiBnB,KAAKF,cACtB2B,SACGf,QAAQC,IAEbQ,EAASd,KAAIqB,GAAOA,EAAIb,YAAYW,iBAAiBN,OAEvDS,QAAOC,KAAOA,IAGhB,MAAO,CAAEC,UAFQC,EAAAA,EAAAA,KAAIL,EAAMpB,KAAI0B,GAAKA,EAAEF,YAEnBG,UADFC,EAAAA,EAAAA,KAAIR,EAAMpB,KAAI0B,GAAKA,EAAEC,YAExC,CAEOE,WAAAA,CAAYC,EAAgBjB,EAAsB,CAAC,GACxD,OAAOkB,EAAAA,EAAAA,mBAA0BxB,UAC/B,MAAMO,QAAiBnB,KAAKF,eAC5BuC,EAAAA,EAAAA,MACKlB,EAASd,KAAIqB,GACdA,EAAIb,YAAYqB,YAAYC,EAAQjB,GAAMoB,MACxCjC,EAAAA,EAAAA,IAAIkC,GAEFA,EAAEC,IAAI,UACFD,EACA,IAAIE,EAAAA,cAAc,IACbF,EAAEG,SACLC,SAAU,GAAGjB,EAAIlB,UAAU+B,EAAEvB,OAC7BR,OAAQkB,EAAIlB,eAKxBoC,UAAUC,EAAS,GACpB3B,EAAK4B,OACV,CAGA,uCAAMC,CAAkCC,GACtC,MAAO,CAAEC,eAAgB,EAC3B,CAIA,gBAAMC,GAEJ,aADuBlD,KAAKF,eACZO,KAAI,EAAGQ,cAAaL,SAAQO,UAASoC,MAAW,CAC9DpC,KAAMP,EACN4C,OAAQrC,KACLoC,KAEP,CAEOE,aAAAA,GAAuB,E","sources":["../../../plugins/wiggle/src/MultiWiggleAdapter/MultiWiggleAdapter.ts"],"sourcesContent":["import {\n BaseFeatureDataAdapter,\n BaseOptions,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\nimport { AugmentedRegion as Region } from '@jbrowse/core/util/types'\nimport { ObservableCreate } from '@jbrowse/core/util/rxjs'\nimport { SimpleFeature, Feature, min, max } from '@jbrowse/core/util'\nimport { merge } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\ninterface WiggleOptions extends BaseOptions {\n resolution?: number\n}\n\nfunction getFilename(uri: string) {\n const filename = uri.slice(uri.lastIndexOf('/') + 1)\n return filename.slice(0, filename.lastIndexOf('.'))\n}\n\ninterface AdapterEntry {\n dataAdapter: BaseFeatureDataAdapter\n source: string\n [key: string]: unknown\n}\n\ntype MaybeStats = { scoreMin: number; scoreMax: number } | undefined\n\nexport default class MultiWiggleAdapter extends BaseFeatureDataAdapter {\n public static capabilities = [\n 'hasResolution',\n 'hasLocalStats',\n 'hasGlobalStats',\n ]\n\n public async getAdapters(): Promise {\n const getSubAdapter = this.getSubAdapter\n if (!getSubAdapter) {\n throw new Error('no getSubAdapter available')\n }\n let subConfs = this.getConf('subadapters')\n if (!subConfs?.length) {\n const entries = this.getConf('bigWigs') as string[]\n subConfs = entries.map(entry => ({\n type: 'BigWigAdapter',\n source: getFilename(entry),\n bigWigLocation: {\n uri: entry,\n },\n }))\n }\n\n return Promise.all(\n subConfs.map(async (conf: any) => {\n const dataAdapter = (await getSubAdapter(conf))\n .dataAdapter as BaseFeatureDataAdapter\n return {\n source: conf.name || dataAdapter.id,\n ...conf,\n dataAdapter,\n }\n }),\n )\n }\n\n // note: can't really have dis-agreeing refNames\n public async getRefNames(opts?: BaseOptions) {\n const adapters = await this.getAdapters()\n const allNames = await Promise.all(\n adapters.map(a => a.dataAdapter.getRefNames(opts)),\n )\n return [...new Set(allNames.flat())]\n }\n\n public async getGlobalStats(opts?: BaseOptions) {\n const adapters = await this.getAdapters()\n const stats = (\n (await Promise.all(\n // @ts-expect-error\n adapters.map(adp => adp.dataAdapter.getGlobalStats?.(opts)),\n )) as MaybeStats[]\n ).filter(f => !!f)\n const scoreMin = min(stats.map(s => s.scoreMin))\n const scoreMax = max(stats.map(s => s.scoreMax))\n return { scoreMin, scoreMax }\n }\n\n public getFeatures(region: Region, opts: WiggleOptions = {}) {\n return ObservableCreate(async observer => {\n const adapters = await this.getAdapters()\n merge(\n ...adapters.map(adp =>\n adp.dataAdapter.getFeatures(region, opts).pipe(\n map(p =>\n // add source field if it does not exist\n p.get('source')\n ? p\n : new SimpleFeature({\n ...p.toJSON(),\n uniqueId: `${adp.source}-${p.id()}`,\n source: adp.source,\n }),\n ),\n ),\n ),\n ).subscribe(observer)\n }, opts.signal)\n }\n\n // always render bigwig instead of calculating a feature density for it\n async getMultiRegionFeatureDensityStats(_regions: Region[]) {\n return { featureDensity: 0 }\n }\n\n // in another adapter type, this could be dynamic depending on region or\n // something, but it is static for this particular multi-wiggle adapter type\n async getSources() {\n const adapters = await this.getAdapters()\n return adapters.map(({ dataAdapter, source, name, ...rest }) => ({\n name: source,\n __name: name,\n ...rest,\n }))\n }\n\n public freeResources(): void {}\n}\n"],"names":["getFilename","uri","filename","slice","lastIndexOf","MultiWiggleAdapter","BaseFeatureDataAdapter","getAdapters","getSubAdapter","this","Error","subConfs","getConf","length","map","entry","type","source","bigWigLocation","Promise","all","async","dataAdapter","conf","name","id","getRefNames","opts","adapters","allNames","a","Set","flat","getGlobalStats","stats","adp","filter","f","scoreMin","min","s","scoreMax","max","getFeatures","region","ObservableCreate","merge","pipe","p","get","SimpleFeature","toJSON","uniqueId","subscribe","observer","signal","getMultiRegionFeatureDensityStats","_regions","featureDensity","getSources","rest","__name","freeResources"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1824.c2ed4bca.chunk.js --- a/x/static/js/1824.c2ed4bca.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1824],{91824:(e,l,r)=>{r.r(l),r.d(l,{SliderMark:()=>a.d6,SliderMarkLabel:()=>a.xO,SliderRail:()=>a.Ww,SliderRoot:()=>a.g1,SliderThumb:()=>a.OQ,SliderTrack:()=>a.hB,SliderValueLabel:()=>a.nx,default:()=>a.Ay,getSliderUtilityClass:()=>i.W,sliderClasses:()=>i.A});var a=r(77005),i=r(19951)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1978.1faf7d31.chunk.js --- a/x/static/js/1978.1faf7d31.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1978],{1978:(e,o,s)=>{s.r(o),s.d(o,{PopoverPaper:()=>t.IJ,PopoverRoot:()=>t.yt,default:()=>t.Ay,getOffsetLeft:()=>t.fB,getOffsetTop:()=>t.Dy,getPopoverUtilityClass:()=>p.K,popoverClasses:()=>p.A});var t=s(9555),p=s(51015)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1996.a37d9ec7.chunk.js --- a/x/static/js/1996.a37d9ec7.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1996],{1996:(s,e,l)=>{l.r(e),l.d(e,{default:()=>t.A,getTooltipUtilityClass:()=>a.E,tooltipClasses:()=>a.A});var t=l(89003),a=l(23724)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/1999.2554e815.chunk.js --- a/x/static/js/1999.2554e815.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[1999],{11999:(s,a,e)=>{e.r(a),e.d(a,{backdropClasses:()=>l.A,default:()=>b.A,getBackdropUtilityClass:()=>l.R});var b=e(19937),l=e(32049)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2018.9ce7fb06.chunk.js --- a/x/static/js/2018.9ce7fb06.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2018],{52018:(e,t,a)=>{a.r(t),a.d(t,{default:()=>m});var l=a(7552),i=a(943),o=a(1343),n=a(5401),s=a(75785),r=a(99546),c=a(91468);const u=(0,s.n9)()((e=>({textbox:{width:"100%"},paper:{margin:e.spacing(),padding:e.spacing()},submit:{marginTop:25,marginBottom:100,display:"block"}})));function m({model:e}){const{classes:t}=u(),[a,s]=(0,l.useState)(""),[m,p]=(0,l.useState)("MultiWiggle"+ +Date.now());return l.createElement(i.A,{className:t.paper},l.createElement("ul",null,l.createElement("li",null,"Enter list of URLs for bigwig files in the textbox"),l.createElement("li",null,"Or, use the button below the text box to select files from your computer")),l.createElement(o.A,{multiline:!0,rows:10,value:a,onChange:e=>{s(e.target.value)},placeholder:"Paste list of URLs here, or use file selector below",variant:"outlined",className:t.textbox}),l.createElement(n.A,{variant:"outlined",component:"label"},"Choose Files from your computer",l.createElement("input",{type:"file",hidden:!0,multiple:!0,onChange:({target:e})=>{const t=[...e.files||[]].map((e=>({type:"BigWigAdapter",bigWigLocation:r.isElectron?{localPath:e.path,locationType:"LocalPathLocation"}:(0,c.storeBlobLocation)({blob:e}),source:e.name})));s(JSON.stringify(t,null,2))}})),l.createElement(o.A,{value:m,onChange:e=>{p(e.target.value)},helperText:"Track name"}),l.createElement(n.A,{variant:"contained",className:t.submit,onClick:()=>{const t=(0,r.getSession)(e),l=[`${m.toLowerCase().replaceAll(" ","_")}-${Date.now()}`,t.adminMode?"":"-sessionTrack"].join("");let i;try{i=JSON.parse(a)}catch(e){i=a.split(/\n|\r\n|\r/).map((e=>e.trim())).filter((e=>!!e))}const o="string"==typeof i[0]?{bigWigs:i}:{subadapters:i};(0,r.isSessionWithAddTracks)(t)&&(t.addTrackConf({trackId:l,type:"MultiQuantitativeTrack",name:m,assemblyNames:[e.assembly],adapter:{type:"MultiWiggleAdapter",...o}}),e.view?.showTrack(l)),e.clearData(),(0,r.isSessionModelWithWidgets)(t)&&t.hideWidget(e)}},"Submit"),l.createElement("p",null,"Additional notes: "),l.createElement("ul",null,l.createElement("li",null,"The list of bigwig files in the text box can be a list of URLs, or a list of elements like"," ",l.createElement("code",null,'[{"type":"BigWigAdapter","bigWigLocation":{"uri":"http://host/file.bw"}, "color":"green","source":"name for subtrack"}]')," ","to apply e.g. the color attribute to the view"),l.createElement("li",null,'Adding local files will update the textbox with JSON contents that are ready to submit with the "Submit" button')))}}}]); -//# sourceMappingURL=2018.9ce7fb06.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2018.9ce7fb06.chunk.js.map --- a/x/static/js/2018.9ce7fb06.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2018.9ce7fb06.chunk.js","mappings":"mOAYA,MAAMA,GAAYC,EAAAA,EAAAA,KAAAA,EAAaC,IAAS,CACtCC,QAAS,CACPC,MAAO,QAETC,MAAO,CACLC,OAAQJ,EAAMK,UACdC,QAASN,EAAMK,WAEjBE,OAAQ,CACNC,UAAW,GACXC,aAAc,IACdC,QAAS,aAIE,SAASC,GAAkB,MAAEC,IAC1C,MAAM,QAAEC,GAAYf,KACbgB,EAAKC,IAAUC,EAAAA,EAAAA,UAAS,KACxBC,EAAWC,IAAgBF,EAAAA,EAAAA,UAAS,gBAAeG,KAAKC,OAC/D,OACEC,EAAAA,cAACC,EAAAA,EAAK,CAACC,UAAWV,EAAQV,OACxBkB,EAAAA,cAAA,UACEA,EAAAA,cAAA,UAAI,sDACJA,EAAAA,cAAA,UAAI,6EAMNA,EAAAA,cAACG,EAAAA,EAAS,CACRC,WAAS,EACTC,KAAM,GACNC,MAAOb,EACPc,SAAUC,IACRd,EAAOc,EAAMC,OAAOH,MAAM,EAE5BI,YAAa,sDACbC,QAAQ,WACRT,UAAWV,EAAQZ,UAGrBoB,EAAAA,cAACY,EAAAA,EAAM,CAACD,QAAQ,WAAWE,UAAU,SAAQ,kCAE3Cb,EAAAA,cAAA,SACEc,KAAK,OACLC,QAAM,EACNC,UAAQ,EACRT,SAAUA,EAAGE,aACX,MAAMQ,EAAM,IAAKR,EAAOS,OAAS,IAAKC,KAAIC,IAAQ,CAChDN,KAAM,gBACNO,eAAgBC,EAAAA,WACZ,CACEC,UAAYH,EAAiCI,KAC7CC,aAAc,sBAEhBC,EAAAA,EAAAA,mBAAkB,CAAEC,KAAMP,IAC9BQ,OAAQR,EAAKS,SAEfnC,EAAOoC,KAAKC,UAAUd,EAAK,KAAM,GAAG,KAI1CjB,EAAAA,cAACG,EAAAA,EAAS,CACRG,MAAOV,EACPW,SAAUC,IACRX,EAAaW,EAAMC,OAAOH,MAAM,EAElC0B,WAAW,eAEbhC,EAAAA,cAACY,EAAAA,EAAM,CACLD,QAAQ,YACRT,UAAWV,EAAQN,OACnB+C,QAASA,KACP,MAAMC,GAAUC,EAAAA,EAAAA,YAAW5C,GAErB6C,EAAU,CACd,GAAGxC,EAAUyC,cAAcC,WAAW,IAAK,QAAQxC,KAAKC,QACxDmC,EAAQK,UAAY,GAAK,iBACzBC,KAAK,IAGP,IAAIC,EACJ,IACEA,EAAUX,KAAKY,MAAMjD,EACvB,CAAE,MAAOkD,GACPF,EAAUhD,EACPmD,MAAM,cACNzB,KAAI0B,GAAKA,EAAEC,SACXC,QAAOF,KAAOA,GACnB,CACA,MAAMG,EACkB,iBAAfP,EAAQ,GACX,CAAEA,WACF,CAAEQ,YAAaR,IAEjBS,EAAAA,EAAAA,wBAAuBhB,KACzBA,EAAQiB,aAAa,CACnBf,UACAtB,KAAM,yBACNe,KAAMjC,EACNwD,cAAe,CAAC7D,EAAM8D,UACtBC,QAAS,CACPxC,KAAM,wBACHkC,KAIPzD,EAAMgE,MAAMC,UAAUpB,IAExB7C,EAAMkE,aACFC,EAAAA,EAAAA,2BAA0BxB,IAC5BA,EAAQyB,WAAWpE,EACrB,GAEH,UAIDS,EAAAA,cAAA,SAAG,sBACHA,EAAAA,cAAA,UACEA,EAAAA,cAAA,UAAI,6FAEoB,IACtBA,EAAAA,cAAA,YAAO,2HAAkI,IAAI,iDAG/IA,EAAAA,cAAA,UAAI,oHAOZ,C","sources":["../../../plugins/wiggle/src/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Button, Paper, TextField } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport {\n getSession,\n isElectron,\n isSessionModelWithWidgets,\n isSessionWithAddTracks,\n} from '@jbrowse/core/util'\nimport { storeBlobLocation } from '@jbrowse/core/util/tracks'\nimport { AddTrackModel } from '@jbrowse/plugin-data-management'\n\nconst useStyles = makeStyles()(theme => ({\n textbox: {\n width: '100%',\n },\n paper: {\n margin: theme.spacing(),\n padding: theme.spacing(),\n },\n submit: {\n marginTop: 25,\n marginBottom: 100,\n display: 'block',\n },\n}))\n\nexport default function MultiWiggleWidget({ model }: { model: AddTrackModel }) {\n const { classes } = useStyles()\n const [val, setVal] = useState('')\n const [trackName, setTrackName] = useState(`MultiWiggle${+Date.now()}`)\n return (\n \n
    \n
  • Enter list of URLs for bigwig files in the textbox
  • \n
  • \n Or, use the button below the text box to select files from your\n computer\n
  • \n
\n\n {\n setVal(event.target.value)\n }}\n placeholder={'Paste list of URLs here, or use file selector below'}\n variant=\"outlined\"\n className={classes.textbox}\n />\n\n \n {\n setTrackName(event.target.value)\n }}\n helperText=\"Track name\"\n />\n {\n const session = getSession(model)\n\n const trackId = [\n `${trackName.toLowerCase().replaceAll(' ', '_')}-${Date.now()}`,\n session.adminMode ? '' : '-sessionTrack',\n ].join('')\n\n // allow list of bigwigs in JSON format or line-by-line\n let bigWigs: unknown[]\n try {\n bigWigs = JSON.parse(val)\n } catch (e) {\n bigWigs = val\n .split(/\\n|\\r\\n|\\r/)\n .map(f => f.trim())\n .filter(f => !!f)\n }\n const obj =\n typeof bigWigs[0] === 'string'\n ? { bigWigs }\n : { subadapters: bigWigs }\n\n if (isSessionWithAddTracks(session)) {\n session.addTrackConf({\n trackId,\n type: 'MultiQuantitativeTrack',\n name: trackName,\n assemblyNames: [model.assembly],\n adapter: {\n type: 'MultiWiggleAdapter',\n ...obj,\n },\n })\n\n model.view?.showTrack(trackId)\n }\n model.clearData()\n if (isSessionModelWithWidgets(session)) {\n session.hideWidget(model)\n }\n }}\n >\n Submit\n \n\n

Additional notes:

\n
    \n
  • \n The list of bigwig files in the text box can be a list of URLs, or a\n list of elements like{' '}\n {`[{\"type\":\"BigWigAdapter\",\"bigWigLocation\":{\"uri\":\"http://host/file.bw\"}, \"color\":\"green\",\"source\":\"name for subtrack\"}]`}{' '}\n to apply e.g. the color attribute to the view\n
  • \n
  • \n Adding local files will update the textbox with JSON contents that are\n ready to submit with the \"Submit\" button\n
  • \n
\n
\n )\n}\n"],"names":["useStyles","makeStyles","theme","textbox","width","paper","margin","spacing","padding","submit","marginTop","marginBottom","display","MultiWiggleWidget","model","classes","val","setVal","useState","trackName","setTrackName","Date","now","React","Paper","className","TextField","multiline","rows","value","onChange","event","target","placeholder","variant","Button","component","type","hidden","multiple","res","files","map","file","bigWigLocation","isElectron","localPath","path","locationType","storeBlobLocation","blob","source","name","JSON","stringify","helperText","onClick","session","getSession","trackId","toLowerCase","replaceAll","adminMode","join","bigWigs","parse","e","split","f","trim","filter","obj","subadapters","isSessionWithAddTracks","addTrackConf","assemblyNames","assembly","adapter","view","showTrack","clearData","isSessionModelWithWidgets","hideWidget"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2047.b1e80504.chunk.js --- a/x/static/js/2047.b1e80504.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -(()=>{var e,t,n,r,o={68584:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ConfigurationReference:()=>r.A,ConfigurationSchema:()=>r.S,getConf:()=>o.FI,getTypeNamesFromExplicitlyTypedUnion:()=>o.JC,isBareConfigurationSchemaType:()=>o.C$,isConfigurationModel:()=>o.wo,isConfigurationSchemaType:()=>o.oG,isConfigurationSlotType:()=>o.Rg,readConfObject:()=>o.QZ});var r=n(42498),o=n(35254)},3496:(e,t,n)=>{"use strict";n.d(t,{cK:()=>a,pZ:()=>i});var r=n(26257);let o={};async function a(e,t,n){const i=function(e={}){return`${(0,r.A)(e)}`}(n);if(!o[i]){const r=n?.type;if(!r)throw new Error(`could not determine adapter type from adapter config snapshot ${JSON.stringify(n)}`);const s=e.getAdapterType(r);if(!s)throw new Error(`unknown data adapter type ${r}`);const c=s.configSchema.create(n,{pluginManager:e}),l=a.bind(null,e,t),u=new(await s.getAdapterClass())(c,l,e);o[i]={dataAdapter:u,sessionIds:new Set([t])}}const s=o[i];return s.sessionIds.add(t),s}function i(e){let t=0;const n=Object.keys(e);if(1===n.length&&"sessionId"===n[0]){const{sessionId:n}=e;Object.entries(o).forEach((([e,r])=>{r.sessionIds.delete(n),0===r.sessionIds.size&&(t+=1,delete o[e])}))}else Object.values(o).forEach((t=>{const n=e.regions||(e.region?[e.region]:[]);for(const e of n)void 0!==e.refName&&t.dataAdapter.freeResources(e)}));return t}},24388:(e,t,n)=>{"use strict";function r(e){return"object"==typeof e&&null!==e&&"abortSignalId"in e&&"number"==typeof e.abortSignalId}n.d(t,{IY:()=>s,SF:()=>a,bw:()=>r}),new WeakMap;const o=new Map;function a({abortSignalId:e}){let t=o.get(e);return t||(t=new AbortController,o.set(e,t)),t.signal}function i(e){const{signalId:t}=e,n=o.get(t);n&&n.abort()}function s(){return{signalAbort:i}}},85206:(e,t,n)=>{"use strict";n.d(t,{A:()=>C});var r=n(7552),o=n(29629),a=n(66765),i=n(81453),s=n(2051),c=n(24387),l=n(55851),u=n(8463),d=n(45266),f=n(63672),m=n(68850);function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t{t&&a.close(),e?.(n)}}))}function g({title:e,Icon:t,inset:n,popupId:s,...c}){const{parentPopupState:l}=(0,r.useContext)(h),u=(0,d.T6)({popupId:s,variant:"popover",parentPopupState:l});return r.createElement(r.Fragment,null,r.createElement(o.A,p({},(0,d._k)(u),(0,d.oe)(u)),t?r.createElement(a.A,null,r.createElement(t,null)):null,r.createElement(i.A,{primary:e,inset:n}),r.createElement(m.A,null)),r.createElement(y,p({},c,{anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"left"},popupState:u})))}function y({popupState:e,onMenuItemClick:t,menuItems:n,classes:o,...a}){const{rootPopupState:i}=(0,r.useContext)(h),s=(0,r.useMemo)((()=>({rootPopupState:i||e,parentPopupState:e})),[i,e]);return r.createElement(h.Provider,{value:s},r.createElement(f.A,p({},a,(0,d.NA)(e))))}function v({popupState:e,onMenuItemClick:t,menuItems:n,...o}){const{rootPopupState:a}=(0,r.useContext)(h),i=(0,r.useMemo)((()=>({rootPopupState:a||e,parentPopupState:e})),[a,e]);return r.createElement(h.Provider,{value:i},r.createElement(s.A,p({},o,(0,d.NA)(e))))}function A({item:e}){return"subMenu"in e?r.createElement(u.m,{type:"subMenu"}):"checkbox"===e.type||"radio"===e.type?r.createElement(u.m,{type:e.type,checked:e.checked,disabled:e.disabled}):null}function E({onMenuItemClick:e,closeAfterItemClick:t,menuItems:n,...o}){const s=n.some((e=>"icon"in e&&e.icon));return r.createElement(r.Fragment,null,n.sort(((e,t)=>(t.priority||0)-(e.priority||0))).map(((n,u)=>{return"subMenu"in n?r.createElement(g,{key:`subMenu-${n.label}-${u}`,popupId:`subMenu-${n.label}`,title:n.label,Icon:n.icon,inset:s&&!n.icon,onMenuItemClick:e,menuItems:n.subMenu},r.createElement(E,p({},o,{closeAfterItemClick:t,onMenuItemClick:e,menuItems:n.subMenu}))):"divider"===n.type?r.createElement(c.A,{key:`divider-${JSON.stringify(n)}-${u}`,component:"li"}):"subHeader"===n.type?r.createElement(l.A,{key:`subHeader-${n.label}-${u}`},n.label):r.createElement(b,{key:`${n.label}-${u}`,closeAfterItemClick:t,onClick:"onClick"in n?(d=n.onClick,t=>{e(t,d)}):void 0,disabled:Boolean(n.disabled)},n.icon?r.createElement(a.A,null,r.createElement(n.icon,null)):null," ",r.createElement(i.A,{primary:n.label,secondary:n.subLabel,inset:s&&!n.icon}),r.createElement("div",{style:{flexGrow:1,minWidth:10}}),r.createElement(A,{item:n}));var d})))}const C=function(e){const{closeAfterItemClick:t=!0,...n}=e;return r.createElement(v,n,r.createElement(E,p({},n,{closeAfterItemClick:t})))}},92562:(e,t,n)=>{"use strict";n.d(t,{A:()=>A});var r=n(7552),o=n(48231),a=n(40985),i=n(2187),s=n(43163),c=n(61723),l=n(24387),u=n(20139),d=n(89022),f=n(68446),m=n(75785),p=n(82725),h=n(30157),b=n(38033),g=n(13476);const y=(0,m.n9)()((e=>({closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}})));function v({error:e}){return r.createElement("div",{style:{width:800,margin:40}},r.createElement(b.A,{error:e}))}const A=(0,f.observer)((function(e){const{classes:t}=y(),{title:n,header:f,children:m,onClose:b}=e,A=(0,o.A)();return r.createElement(a.A,e,r.createElement(i.A,null,r.isValidElement(f)?f:r.createElement(s.A,null,r.createElement(g.A,{html:n||""}),b?r.createElement(c.A,{className:t.closeButton,onClick:()=>{b()}},r.createElement(h.A,null)):null),r.createElement(l.A,null),r.createElement(p.tH,{FallbackComponent:v},r.createElement(u.A,{theme:(0,d.A)(A,{components:{MuiInputBase:{styleOverrides:{input:{boxSizing:"content-box!important"}}}}})},m))))}))},88373:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(7552),o=n(48231),a=n(36715),i=n(98879),s=n(75785),c=n(40085);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t({input:{},inputBase:{},typography:{top:6,left:2,position:"absolute",whiteSpace:"nowrap",visibility:"hidden"},inputRoot:{padding:e.spacing(.5)},inputFocused:{borderStyle:"solid",borderWidth:2}}))),d=r.forwardRef((function(e,t){const{value:n,setValue:s,variant:d,...f}=e,[m,{width:p}]=(0,c.A)(),[h,b]=(0,r.useState)(),[g,y]=(0,r.useState)(null),[v,A]=(0,r.useState)(!1);(0,r.useEffect)((()=>{v&&(g?.blur(),A(!1))}),[v,g]);const{classes:E}=u(e,{props:e}),C=(0,o.A)(),w=void 0===h?n:h;return r.createElement("div",l({},f,{ref:t}),r.createElement("div",{style:{position:"relative"}},r.createElement(a.A,{ref:m,component:"span",variant:d,className:E.typography},w)),r.createElement(i.Ay,{inputRef:e=>{y(e)},className:E.inputBase,inputProps:{style:{width:p,...d&&"inherit"!==d?C.typography[d]:{}}},classes:{input:E.input,root:E.inputRoot,focused:E.inputFocused},value:w,onChange:e=>{b(e.target.value)},onKeyDown:e=>{"Enter"===e.key?g?.blur():"Escape"===e.key&&(b(void 0),A(!0))},onBlur:()=>{s(h||n||""),b(void 0)}}))}))},38033:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(7552),o=n(89003),a=n(61723),i=n(75785),s=n(21311),c=n(4902),l=n(71627);const u=(0,r.lazy)((()=>Promise.all([n.e(9245),n.e(4630)]).then(n.bind(n,74630)))),d=(0,i.n9)()((e=>({bg:{background:e.palette.divider,border:"1px solid black",margin:20},iconFloat:{float:"right",marginLeft:100}})));function f({error:e,onReset:t}){const{classes:n}=d(),[i,s]=(0,r.useState)(!1);return r.createElement("div",{className:n.iconFloat},"object"==typeof e&&e&&"stack"in e?r.createElement(o.A,{title:"Get stack trace"},r.createElement(a.A,{onClick:()=>{s(!0)},color:"primary"},r.createElement(l.A,null))):null,t?r.createElement(o.A,{title:"Retry"},r.createElement(a.A,{onClick:t,color:"primary"},r.createElement(c.A,null))):null,i?r.createElement(r.Suspense,{fallback:null},r.createElement(u,{error:e,onClose:()=>{s(!1)}})):null)}const m=function({error:e,onReset:t}){const{classes:n}=d(),o=`${e}`,a=o.indexOf("expected an instance of"),i=-1!==a?o.slice(0,a):o,c=function(e){let t="";const n=e.indexOf("is not assignable");if(-1!==n){const r=e.slice(0,n+17),o=/.*at path "(.*)" snapshot `(.*)` is not assignable/m.exec(r);o&&(e=`Failed to load element at ${o[1]}...Failed element had snapshot`,t=o[2]);const a=/.*snapshot `(.*)` is not assignable/.exec(r);a&&(e="Failed to load element...Failed element had snapshot",t=a[1])}return t}(o);return r.createElement(s.A,null,i.slice(0,1e4),r.createElement(f,{error:e,onReset:t}),c?r.createElement("pre",{className:n.bg},JSON.stringify(JSON.parse(c),null,2)):null)}},69941:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(7552),o=n(29499),a=n(99123),i=n(58507),s=n(5401),c=n(92562);function l({onClose:e,open:t,onFactoryReset:n}){function l(t){"reset"===t&&n(),e()}return r.createElement(c.A,{title:"Reset",onClose:()=>{l()},open:t},r.createElement(o.A,null,r.createElement(a.A,null,"Are you sure you want to reset? This will restore the default configuration.")),r.createElement(i.A,null,r.createElement(s.A,{onClick:()=>{l()},color:"primary"},"Cancel"),r.createElement(s.A,{onClick:()=>{l("reset")},color:"primary",variant:"contained"},"OK")))}},90542:(e,t,n)=>{"use strict";n.d(t,{PM:()=>a,jT:()=>i,xU:()=>s});var r=n(2859),o=n(7552);function a(e){return o.createElement(r.A,e,o.createElement("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function i(e){return o.createElement(r.A,e,o.createElement("path",{d:"M19.31 18.9L22.39 22L21 23.39L17.88 20.32C17.19 20.75 16.37 21 15.5 21C13 21 11 19 11 16.5C11 14 13 12 15.5 12C18 12 20 14 20 16.5C20 17.38 19.75 18.21 19.31 18.9M15.5 19C16.88 19 18 17.88 18 16.5C18 15.12 16.88 14 15.5 14C14.12 14 13 15.12 13 16.5C13 17.88 14.12 19 15.5 19M21 4V6H3V4H21M3 16V14H9V16H3M3 11V9H21V11H18.97C17.96 10.37 16.77 10 15.5 10C14.23 10 13.04 10.37 12.03 11H3Z"}))}function s(e){return o.createElement(r.A,e,o.createElement("path",{d:"M21 19v-2H8v2h13m0-6v-2H8v2h13M8 7h13V5H8v2M4 5v2h2V5H4M3 5a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1V5m1 6v2h2v-2H4m-1 0a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1v-2m1 6v2h2v-2H4m-1 0a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1v-2z"}))}},34895:(e,t,n)=>{"use strict";n.d(t,{P:()=>i,R:()=>a});var r=n(7552);function o(e){return"black"===e?{midnight:"#808080",forrest:"#666666",grape:"#4d4d4d",mandarin:"#333333",gray:"#1a1a1a"}:"white"===e?{midnight:"#ffffff",forrest:"#e6e6e6",grape:"#cccccc",mandarin:"#b3b3b3",gray:"#999999"}:{midnight:"#0d233f",forrest:"#135560",grape:"#721e63",mandarin:"#ffb11d",gray:"#dadada"}}function a({variant:e}){return r.createElement("svg",{viewBox:"0 0 175 175"},r.createElement(s,{variant:e}))}function i({variant:e}){return r.createElement("svg",{viewBox:"0 0 641 175"},r.createElement(c,{variant:e}),r.createElement(s,{variant:e}))}function s({variant:e}){const t=o(e);return r.createElement(r.Fragment,null,r.createElement("path",{style:{fill:t.midnight},d:"M120.5,57.5c.168,0,.333.012.5.013V40.506c-.167,0-.333-.006-.5-.006a98.325,98.325,0,0,0-77.4,37.565q-2.664,3.378-5.023,6.994l14.206,9.327Q54.043,91.709,56,89.179A81.363,81.363,0,0,1,120.5,57.5Z"}),r.createElement("path",{style:{fill:t.forrest},d:"M148.668,86.223c.308.133.6.283.908.42l6.746-15.618c-.153-.067-.3-.143-.454-.21a81.36,81.36,0,0,0-71.777,3.5q-2.8,1.544-5.469,3.309l9.249,14.054A63.93,63.93,0,0,1,148.668,86.223Z"}),r.createElement("path",{style:{fill:t.grape},d:"M170.894,109.37A63.929,63.929,0,0,0,113.4,88.861l2.336,15.474a48.456,48.456,0,0,1,44.322,15.42c.111.125.214.255.324.381l11.16-10C171.323,109.879,171.118,109.62,170.894,109.37Z"}),r.createElement("path",{style:{fill:t.mandarin},d:"M150.921,150.314c.04.163.07.326.107.489l16.509-4.058c-.039-.163-.067-.326-.107-.489A48.457,48.457,0,0,0,135.575,111.8l-5.515,15.591A32.466,32.466,0,0,1,150.921,150.314Z"}),r.createElement("path",{style:{fill:t.gray},d:"M134.1,138.129l-9.779,13.213a32.486,32.486,0,0,1,7.823,14.463l15.147.852c.012-.166.032-.331.041-.5A32.464,32.464,0,0,0,134.1,138.129Z"}))}function c({variant:e}){const t=o(e);return r.createElement("g",{"aria-label":"JBrowse",transform:"translate(213.084 144.241)",style:{fill:t.midnight}},r.createElement("path",{d:"m 26.355,-71.505 v 54.075 2.835 q 0,6.825 -0.42,10.185 -0.735,5.67 -2.835,9.135 -3.255,5.355 -8.505,8.4 -4.83,2.73 -11.55,3.57 L 1.47,11.76 Q 7.35,10.185 9.24,4.2 10.605,-0.105 10.605,-9.975 v -5.565 -55.965 q 1.785,0 4.62,0.315 2.835,0.21 3.255,0.21 1.785,0 2.94,-0.105 4.515,-0.42 4.935,-0.42 z"}),r.createElement("path",{d:"m 60.68836,-65.415 v 24.78 h 3.255 q 2.94,0 4.935,-0.525 2.1,-0.525 3.885,-2.1 2.31,-1.995 3.36,-4.83 1.155,-2.835 1.155,-6.09 0,-5.565 -2.94,-8.61 -2.94,-3.045 -8.295,-3.045 -2.52,0 -5.355,0.42 z m 0,30.87 V -6.09 h 5.25 q 4.725,0 8.505,-3.675 3.885,-3.78 3.885,-10.08 0,-8.19 -4.62,-11.655 -4.095,-3.045 -13.02,-3.045 z M 44.93836,0 v -71.505 h 27.09 q 9.135,0 14.385,3.255 6.51,3.99 6.51,12.6 0,7.035 -5.25,11.655 -4.62,4.095 -11.97,5.145 v 0.945 q 7.56,0.735 12.285,3.99 6.615,4.62 6.615,13.335 0,10.185 -7.98,15.75 -6.93,4.83 -17.43,4.83 z"}),r.createElement("path",{d:"M 109.44281,0.525 V -50.4 q 1.785,0.21 3.99,0.42 2.31,0.105 3.255,0.105 2.31,0 4.2,-0.21 1.89,-0.21 3.045,-0.315 v 13.02 q 1.89,-6.51 5.46,-9.87 4.41,-4.095 11.655,-4.095 -0.315,2.73 -0.42,6.825 -0.105,3.99 -0.105,7.455 l -0.945,0.84 q -0.945,-0.735 -2.415,-1.05 -1.47,-0.315 -2.94,-0.315 -3.57,0 -6.195,1.89 -2.52,1.785 -3.465,5.04 -0.42,1.155 -0.525,3.15 -0.105,1.89 -0.105,4.515 v 4.515 19.005 q -1.785,-0.21 -2.625,-0.21 -3.675,-0.315 -4.62,-0.315 -2.31,0 -4.2,0.21 -1.89,0.21 -3.045,0.315 z"}),r.createElement("path",{d:"m 173.77337,1.47 q -11.655,0 -18.585,-6.825 -6.93,-6.825 -6.93,-18.48 0,-12.6 6.72,-20.055 6.825,-7.455 18.9,-7.455 11.97,0 18.9,6.72 6.93,6.72 6.93,18.48 0,12.285 -6.72,19.74 -7.14,7.875 -19.215,7.875 z m 0.735,-48.09 q -5.88,0 -8.505,6.51 -2.205,5.565 -2.205,15.96 0,8.19 1.47,12.915 2.415,7.98 8.505,7.98 5.565,0 8.19,-7.875 2.205,-6.51 2.205,-16.695 0,-8.505 -2.1,-13.23 -2.52,-5.565 -7.56,-5.565 z"}),r.createElement("path",{d:"m 222.03563,-50.4 10.5,36.015 q 3.675,-11.235 5.67,-17.85 2.415,-8.085 5.04,-18.165 1.05,0.105 3.045,0.315 2.1,0.21 2.835,0.21 1.995,0 3.15,-0.105 1.26,-0.21 2.73,-0.42 l 10.71,36.015 q 5.88,-17.43 10.71,-36.015 l 4.2,0.315 4.095,-0.315 q -5.145,13.125 -9.135,24.57 -5.04,14.28 -8.505,26.355 -1.89,-0.21 -3.36,-0.42 -1.365,-0.105 -2.205,-0.105 -1.89,0 -3.36,0.21 -1.365,0.21 -2.31,0.315 l -10.605,-34.755 q -4.41,13.65 -6.72,21.105 -2.31,7.35 -4.095,13.65 -1.89,-0.21 -3.36,-0.42 -1.365,-0.105 -2.31,-0.105 -1.995,0 -3.465,0.21 -1.365,0.21 -2.31,0.315 -3.78,-12.81 -5.04,-17.01 -2.205,-7.245 -5.46,-17.01 -2.835,-8.4 -5.88,-16.905 1.575,0 4.305,0.315 2.73,0.21 3.36,0.21 1.47,0 4.305,-0.21 2.835,-0.315 3.465,-0.315 z"}),r.createElement("path",{d:"m 292.84172,-12.81 h 2.625 q 1.47,4.095 4.62,6.51 3.15,2.415 7.35,2.415 2.94,0 5.46,-1.785 2.625,-1.89 2.625,-4.62 0,-3.885 -6.195,-6.615 -10.395,-4.62 -11.655,-5.46 -6.405,-4.515 -6.405,-12.285 0,-7.77 5.25,-12.18 5.25,-4.515 12.81,-4.515 3.99,0 8.085,1.365 4.095,1.26 7.14,3.57 l -2.52,9.24 h -2.94 q -0.63,-3.57 -3.57,-6.195 -2.835,-2.625 -6.405,-2.625 -3.15,0 -5.46,1.575 -2.31,1.47 -2.31,4.515 0,3.885 6.405,6.51 10.185,4.095 11.865,5.25 6.405,4.41 6.405,12.81 0,7.455 -5.46,12.18 -5.355,4.62 -14.805,4.62 -8.19,0 -14.49,-4.305 z"}),r.createElement("path",{d:"m 349.61228,-29.925 h 15.54 q 0,-6.51 -1.05,-10.395 -1.68,-6.3 -5.88,-6.3 -5.04,0 -7.14,6.195 -1.47,4.305 -1.47,10.5 z m 30.03,5.04 h -30.03 q 0,9.135 3.045,13.86 3.57,5.67 11.55,5.67 3.255,0 6.405,-1.26 3.15,-1.26 5.88,-3.465 l 1.26,0.945 -2.31,5.88 q -6.72,4.725 -15.015,4.725 -12.915,0 -19.635,-7.245 -6.72,-7.245 -6.72,-20.37 0,-11.235 6.405,-18.165 6.51,-7.035 17.64,-7.035 11.655,0 16.905,7.56 4.62,6.615 4.62,18.9 z"}))}},8463:(e,t,n)=>{"use strict";n.d(t,{A:()=>M,m:()=>C});var r=n(7552),o=n(6679),a=n(24387),i=n(55851),s=n(66765),c=n(29629),l=n(81453),u=n(4407),d=n(943),f=n(9555),m=n(75785),p=n(12756),h=n(49296),b=n(23224),g=n(69381),y=n(70996),v=n(99546);function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t{P||(f(void 0),p(void 0))}),[P]),(0,r.useEffect)((()=>{const e=P&&Boolean(n);let t;return e&&!h?t=setTimeout((()=>{b(!0)}),300):!e&&h&&(t=setTimeout((()=>{b(!1)}),300)),()=>{clearTimeout(t)}}),[h,P,n]),(0,r.useEffect)((()=>{if(O){const e=O.getBoundingClientRect();A&&e.top===A.top&&e.left+e.width===A.left||M({top:e.top,left:e.left+e.width})}else A||M({})}),[A,O]);const R=x.some((e=>"icon"in e&&e.icon)),F={},$=r.createElement(r.Fragment,null,r.createElement(o.A,{autoFocusItem:P&&!h,dense:!0},x.sort(((e,t)=>(t.priority||0)-(e.priority||0))).map(((e,t)=>{if("divider"===e.type)return r.createElement(a.A,{key:`divider-${JSON.stringify(e)}-${t}`,component:"li"});if("subHeader"===e.type)return r.createElement(i.A,{key:`subHeader-${e.label}-${t}`},e.label);let n=null,o=null;if(e.icon){const t=e.icon;n=r.createElement(s.A,null,r.createElement(t,null))}"subMenu"in e?o=r.createElement(C,{type:"subMenu"}):"checkbox"!==e.type&&"radio"!==e.type||(o=r.createElement(C,{type:e.type,checked:e.checked,disabled:e.disabled}));const u="onClick"in e?(d=e.onClick,e=>{I(e,d)}):void 0;var d;return r.createElement(c.A,{key:e.id||String(e.label),style:F,selected:t===g,onClick:u,onMouseMove:n=>{n.currentTarget!==document.activeElement&&(n.currentTarget.focus(),y(t)),"subMenu"in e?m!==t&&(f(n.currentTarget),p(t)):(f(void 0),p(void 0))},onKeyDown:n=>{switch(n.key){case"ArrowLeft":case"Escape":N?.(n,"escapeKeyDown");break;case"ArrowUp":y(function(e,t){return(0,v.findLastIndex)(e.slice(0,t),w)}(x,t));break;case"ArrowDown":{const e=function(e,t){const n=e.slice(t+1).findIndex(w);return-1===n?n:t+1+n}(x,t);y(e);break}default:!("subMenu"in e)||"ArrowRight"!==n.key&&"Enter"!==n.key||(f(n.currentTarget),p(t),b(!0))}},disabled:Boolean(e.disabled)},n,r.createElement(l.A,{primary:e.label,secondary:e.subLabel,inset:R&&!e.icon}),o)}))),x.map(((e,t)=>{let o=null;return"subMenu"in e&&(o=r.createElement(S,{key:e.id||String(e.label),anchorEl:n,open:h&&m===t,onClose:()=>{b(!1),f(void 0)},onMenuItemClick:I,menuItems:e.subMenu})),o})));return L?$:r.createElement(u.A,{in:P,style:{transformOrigin:"0 0 0"},ref:t},r.createElement(d.A,{elevation:8,ref:T,className:k.paper,style:{...A}},$))})),M=function(e){const{open:t,onClose:n,menuItems:o,onMenuItemClick:a,...i}=e;return r.createElement(f.Ay,A({open:t,onClose:n,anchorOrigin:{vertical:"bottom",horizontal:"right",...i.anchorOrigin},transformOrigin:{vertical:"top",horizontal:"left",...i.transformOrigin}},i),r.createElement(S,{open:t,onClose:n,menuItems:o,onMenuItemClick:a,top:!0}))}},66684:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(7552);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{function n(n){n.preventDefault();const r=t?n.clientX:n.clientY,o=d.current-r,a=r-f.current;f.current=r,e(a,o)}function r(){u(!1)}return l?(window.addEventListener("mousemove",n,!0),window.addEventListener("mouseup",r,!0),()=>{window.removeEventListener("mousemove",n,!0),window.removeEventListener("mouseup",r,!0)}):()=>{}}),[l,e,t]),h=n?t?m.flexbox_verticalHandle:m.flexbox_horizontalHandle:t?m.verticalHandle:m.horizontalHandle,r.createElement("div",o({"data-resizer":"true",onMouseDown:e=>{e.preventDefault();const n=t?e.clientX:e.clientY;d.current=n,f.current=n,u(!0),s?.(e)},className:p(h,i)},c))}},87686:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(7552),o=n(68446),a=n(29499),i=n(36715),s=n(58507),c=n(5401),l=n(92562);const u=(0,o.observer)((function({model:e,handleClose:t}){return r.createElement(l.A,{maxWidth:"xl",open:!0,onClose:t,title:"Reference sequence"},r.createElement(a.A,null,r.createElement(i.A,null,"Are you sure you want to return to the import form? This will lose your current view")),r.createElement(s.A,null,r.createElement(c.A,{onClick:()=>{e.clearView(),t()},variant:"contained",color:"primary",autoFocus:!0},"OK"),r.createElement(c.A,{onClick:()=>{t()},color:"secondary",variant:"contained"},"Cancel")))}))},13476:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(7552),o=n(10424),a=n.n(o),i=n(53778),s=n.n(i),c=n(99546);let l=!1;const u=new RegExp(["a","b","br","code","div","em","h1","h2","h3","h4","h5","h6","i","img","li","p","pre","span","small","strong","table","tbody","sup","sub","td","tfoot","th","thead","tr","u","ul"].map((e=>`<${e}\\b[^>]*>`)).join("|"),"i");function d({html:e,className:t}){const n=(0,c.linkify)(e),o=(i=n,u.test(i)?n:a()(n));var i;return l||(l=!0,s().addHook("afterSanitizeAttributes",(e=>{"A"===e.tagName&&(e.setAttribute("rel","noopener noreferrer"),e.setAttribute("target","_blank"))}))),r.createElement("span",{className:t,dangerouslySetInnerHTML:{__html:s().sanitize(o)}})}},49823:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AssemblySelector:()=>z,CascadingMenu:()=>G.A,Dialog:()=>_.A,EditableTypography:()=>j.A,ErrorMessage:()=>D.A,FactoryResetDialog:()=>U.default,FatalErrorDialog:()=>H.A,FileSelector:()=>oe,LoadingEllipses:()=>ae.A,LogoFull:()=>k.P,Logomark:()=>k.R,Menu:()=>ie.A,MenuItemEndDecoration:()=>ie.m,PrerenderedCanvas:()=>ce,ResizeHandle:()=>ue.A,ReturnToImportFormDialog:()=>le.default,SanitizedHTML:()=>de.A,createJBrowseBaseTheme:()=>S,createJBrowseTheme:()=>M,defaultThemes:()=>C});var r=n(53954),o=n(46033),a=n(37231),i=n(8998),s=n(55194),c=n(89022),l=n(35068),u=n.n(l);const d=(0,c.A)(),f="#0D233F",m="#721E63",p=d.palette.augmentColor({color:{main:"#135560"}}),h=d.palette.augmentColor({color:{main:"#FFB11D"}}),b={A:d.palette.augmentColor({color:r.A}),C:d.palette.augmentColor({color:o.A}),G:d.palette.augmentColor({color:a.A}),T:d.palette.augmentColor({color:i.A})},g=[null,d.palette.augmentColor({color:{main:"#FF8080"}}),d.palette.augmentColor({color:{main:"#80FF80"}}),d.palette.augmentColor({color:{main:"#8080FF"}}),d.palette.augmentColor({color:{main:"#8080FF"}}),d.palette.augmentColor({color:{main:"#80FF80"}}),d.palette.augmentColor({color:{main:"#FF8080"}})],y=[null,d.palette.augmentColor({color:{main:"#8f8f8f"}}),d.palette.augmentColor({color:{main:"#adadad"}}),d.palette.augmentColor({color:{main:"#d8d8d8"}}),d.palette.augmentColor({color:{main:"#d8d8d8"}}),d.palette.augmentColor({color:{main:"#adadad"}}),d.palette.augmentColor({color:{main:"#8f8f8f"}})],v="#e22",A="#3e3";function E(){return{palette:{mode:void 0,primary:{main:f},secondary:{main:m},tertiary:p,quaternary:h,highlight:h,stopCodon:v,startCodon:A,bases:b,frames:y,framesCDS:g},components:{MuiLink:{styleOverrides:{root:({theme:e})=>({color:e.palette.tertiary.main})}}}}}const C={default:{...E(),name:"Default (from config)"},lightStock:{...E(),name:"Light (stock)"},lightMinimal:{name:"Light (minimal)",palette:{primary:{main:s.A[900]},secondary:{main:s.A[800]},tertiary:d.palette.augmentColor({color:{main:s.A[900]}}),quaternary:h,highlight:h,stopCodon:v,startCodon:A,bases:b,frames:y,framesCDS:g}},darkMinimal:{name:"Dark (minimal)",palette:{mode:"dark",primary:{main:s.A[700]},secondary:{main:s.A[800]},tertiary:d.palette.augmentColor({color:{main:s.A[900]}}),quaternary:h,highlight:h,stopCodon:v,startCodon:A,bases:b,frames:y,framesCDS:g}},darkStock:{name:"Dark (stock)",palette:{mode:"dark",primary:{main:f},secondary:{main:m},tertiary:p,quaternary:h,highlight:h,stopCodon:v,startCodon:A,bases:b,frames:y,framesCDS:g},components:{MuiAppBar:{defaultProps:{enableColorOnDark:!0},styleOverrides:{root:({theme:e})=>e.palette.primary.main}}}}};function w(e,t){return t}function S(e){const t={palette:e?.palette,typography:{fontSize:12},spacing:4,components:{MuiButton:{defaultProps:{size:"small"},styleOverrides:{root:({theme:e})=>"dark"===e.palette.mode?{color:e.palette.text.primary}:void 0}},MuiAccordion:{defaultProps:{disableGutters:!0,slotProps:{transition:{timeout:150,unmountOnExit:!0}}}},MuiFilledInput:{defaultProps:{margin:"dense"}},MuiFormControl:{defaultProps:{margin:"dense",size:"small"}},MuiFormHelperText:{defaultProps:{margin:"dense"}},MuiIconButton:{defaultProps:{size:"small"}},MuiInputBase:{defaultProps:{margin:"dense"}},MuiAutocomplete:{defaultProps:{size:"small"}},MuiInputLabel:{defaultProps:{margin:"dense"}},MuiToolbar:{defaultProps:{variant:"dense"}},MuiListItem:{defaultProps:{dense:!0}},MuiOutlinedInput:{defaultProps:{margin:"dense"}},MuiFab:{defaultProps:{size:"small"},styleOverrides:{secondary:{backgroundColor:e?.palette?.quaternary?.main}}},MuiTable:{defaultProps:{size:"small"}},MuiPopover:{defaultProps:{transitionDuration:0}},MuiMenu:{defaultProps:{transitionDuration:0}},MuiMenuItem:{defaultProps:{dense:!0}},MuiTextField:{defaultProps:{margin:"dense",variant:"standard"}},MuiLink:{styleOverrides:{root:({theme:e})=>({color:e.palette.text.secondary})}},MuiCheckbox:{styleOverrides:{root:({theme:e})=>"dark"===e.palette.mode?{color:e.palette.text.secondary,"&.Mui-checked":{color:e.palette.text.secondary}}:void 0}},MuiRadio:{styleOverrides:{root:({theme:e})=>"dark"===e.palette.mode?{color:e.palette.text.secondary,"&.Mui-checked":{color:e.palette.text.secondary}}:void 0}},MuiFormLabel:{styleOverrides:{root:({theme:e})=>"dark"===e.palette.mode?{color:e.palette.text.secondary,"&.Mui-focused":{color:e.palette.text.secondary}}:void 0}},MuiAccordionSummary:{styleOverrides:{root:{backgroundColor:e?.palette?.tertiary?.main},content:{color:e?.palette?.tertiary?.contrastText}}},MuiToggleButtonGroup:{defaultProps:{size:"small"}}}};return u()(t,e||{},{arrayMerge:w})}function M(e={},t=C,n="default"){return(0,c.A)(S("default"===n?u()(t.default,T(e),{arrayMerge:w}):function(e={}){return e=T(e),e.palette?.quaternary||(e=u()(e,{palette:{quaternary:d.palette.augmentColor({color:{main:"#aaa"}})}})),e.palette?.tertiary||(e=u()(e,{palette:{tertiary:d.palette.augmentColor({color:{main:"#aaa"}})}})),e}(t[n])))}function T(e={}){return e.palette?.tertiary&&(e=u()(e,{palette:{tertiary:d.palette.augmentColor("color"in e.palette.tertiary?e.palette.tertiary:{color:e.palette.tertiary})}})),e.palette?.quaternary&&(e=u()(e,{palette:{quaternary:d.palette.augmentColor("color"in e.palette.quaternary?e.palette.quaternary:{color:e.palette.quaternary})}})),e}var k=n(34895),x=n(7552),I=n(1343),P=n(29629),N=n(68446),O=n(75785),L=n(68584),R=n(99546);function F(){return F=Object.assign?Object.assign.bind():function(e){for(var t=1;t{m&&m!==n&&t(m)}),[m,t,n]);const p=c.length?"":"No configured assemblies";return x.createElement(I.A,F({select:!0,label:"Assembly",variant:"outlined",helperText:p||i,value:m||"",inputProps:{"data-testid":"assembly-selector"},onChange:e=>{f(e.target.value)},error:!!p,InputProps:r,disabled:!!p,className:s.importFormEntry},o),c.map((e=>{const t=l.get(e),n=t?(0,L.getConf)(t,"displayName"):"";return x.createElement(P.A,{key:e,value:e},n||e)})))}));var G=n(85206),_=n(92562),j=n(88373),D=n(38033),U=n(69941),H=n(56174),B=n(89003),q=n(82620),V=n(17776),J=n(17125),W=n(43787),K=n(2051),Y=n(25467),Z=n(92516),Q=n(43550),X=n(14862),ee=n(32813);function te(){return te=Object.assign?Object.assign.bind():function(e){for(var t=1;tt?`${e.slice(0,Math.max(0,t))}…`:e}const oe=(0,N.observer)((function(e){const{location:t,name:n,description:r,rootModel:o,setLocation:a}=e,i=!t||(0,Z.C1)(t)?"url":"file",[s,c]=(0,x.useState)(t&&"internetAccountId"in t&&t.internetAccountId?t.internetAccountId:i),l=(0,Z.bV)(o)?o.internetAccounts.filter((e=>"HTTPBasicInternetAccount"!==e.type)):[],[u,d]=(0,R.useLocalStorage)("fileSelector-recentlyUsedInternetAccounts",[]),f=Object.fromEntries(l.map((e=>[e.internetAccountId,e]))),m=[...new Set(l.map((e=>e.internetAccountId)))].sort(((e,t)=>u.indexOf(e)-u.indexOf(t))),p=m.slice(0,2),h=m.slice(2),[b,g]=(0,x.useState)(null),y=f[s],v=(0,x.useCallback)((e=>{a({...e,...y&&(0,Z.C1)(e)?{internetAccountId:y.internetAccountId}:{}})}),[a,y]);(0,x.useEffect)((()=>{y&&(0,Z.C1)(t)&&t.internetAccountId!==y.internetAccountId&&v(t)}),[t,y,v]);let A=x.createElement(X.A,te({},e,{setLocation:v,label:y?.selectorLabel}));if("file"===s&&(A=x.createElement(Q.A,e)),y?.SelectorComponent){const{SelectorComponent:t}=y;A=x.createElement(t,te({},e,{setLocation:v}))}return x.createElement(x.Fragment,null,x.createElement(V.A,{display:"flex"},x.createElement(J.A,{shrink:!0},n)),x.createElement(V.A,{display:"flex",flexDirection:"row"},x.createElement(V.A,null,x.createElement(W.A,{value:s,exclusive:!0,onChange:(e,n)=>{d([...new Set([n,...u].filter(R.notEmpty))]),n&&c(n),(0,Z.C1)(t)&&v(t)},"aria-label":"file, url, or account picker"},new URLSearchParams(window.location.search).get("adminKey")?null:x.createElement(q.A,{value:"file","aria-label":"local file"},"File"),x.createElement(q.A,{value:"url","aria-label":"url"},"URL"),p.map((e=>{const{internetAccountId:t,name:n,toggleContents:r}=f[e];return x.createElement(ne,{key:e,value:t,title:n},"string"==typeof r?re(r,5):r||re(n,5))})),h.length>0?x.createElement(q.A,{onClick:e=>{g(e.target)},selected:!1},"More",x.createElement(ee.A,null)):null),x.createElement(K.A,{open:Boolean(b),anchorEl:b,onClose:()=>{g(null)},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"}},h.map((e=>{const{internetAccountId:t,name:n}=f[e];return x.createElement(P.A,{key:e,value:t,onClick:()=>{d([...new Set([t,...u].filter(R.notEmpty))]),c(t),g(null)}},n)}))))),A,x.createElement(Y.A,null,r))}));var ae=n(37565),ie=n(8463),se=n(18010);const ce=function(e){const{width:t,height:n,highResolutionScaling:r=1,style:o={},imageData:a,blockKey:i,showSoftClip:s}=e,[c,l]=(0,x.useState)(!1),u=(0,x.useRef)(null);return(0,x.useEffect)((()=>{if(!a)return;const e=u.current;if(!e)return;const t=e.getContext("2d");t&&((0,se.pv)(a,t),l(!0))}),[a]),x.createElement("canvas",{"data-testid":["prerendered_canvas",s?"softclipped":"",i,c?"done":""].filter((e=>!!e)).join("_"),ref:u,width:t*r,height:n*r,style:{width:t,height:n,...o}})};var le=n(87686),ue=n(66684),de=n(13476)},43334:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});class r extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)||(yield e)}for(const e of this.cache){const[t,n]=e;this._deleteIfExpired(t,n)||(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(!this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){const r="number"==typeof n&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;this.cache.has(e)?this.cache.set(e,{value:t,expiry:r}):this._set(e,{value:t,expiry:r})}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,n]=e;this._deleteIfExpired(t,n)||(yield[t,n.value])}for(const e of this.oldCache){const[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)||(yield[t,n.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const n=e[t],[r,o]=n;this._deleteIfExpired(r,o)||(yield[r,o.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const n=e[t],[r,o]=n;this.cache.has(r)||this._deleteIfExpired(r,o)||(yield[r,o.value])}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[n,r]of this.entriesAscending())e.call(t,r,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}},99546:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AuthNeededError:()=>c._u,ImageBitmapType:()=>b.bV,ReactRendering:()=>g.aE,RetryError:()=>c.J_,SimpleFeature:()=>y.A,TextSearchManager:()=>c.rz,abortBreakPoint:()=>l.Yo,assembleLocString:()=>P,assembleLocStringFast:()=>N,avg:()=>Fe,blobToDataURL:()=>v.y,bpSpanPx:()=>q,bpToPx:()=>z,bytesForRegions:()=>be,cartesianToPolar:()=>H,checkAbortSignal:()=>l.pB,clamp:()=>$,coarseStripHTML:()=>Te,compareLocStrings:()=>F,compareLocs:()=>R,complement:()=>oe,createCanvas:()=>b.Nw,createImageBitmap:()=>b.T9,dedupe:()=>h.Q,defaultCodonTable:()=>de,defaultStarts:()=>le,defaultStops:()=>ue,degToRad:()=>D,doesIntersect2:()=>p.R6,drawImageOntoCanvasContext:()=>b.pv,featureSpanPx:()=>B,findLast:()=>W,findLastIndex:()=>J,findParentThat:()=>w,findParentThatIs:()=>M,gatherOverlaps:()=>_e,generateCodonTable:()=>fe,getBpDisplayStr:()=>ye,getContainingDisplay:()=>I,getContainingTrack:()=>x,getContainingView:()=>k,getEnv:()=>Ie,getFillProps:()=>Ue,getFrame:()=>ce,getLayoutId:()=>Ce,getSerializedSvg:()=>g.Jy,getSession:()=>T,getStr:()=>Me,getStrokeProps:()=>De,getTickDisplayStr:()=>Ae,getUriLink:()=>Se,getViewParams:()=>Ee,groupBy:()=>$e,hashCode:()=>pe,intersection2:()=>p.ky,isAbortException:()=>l.Kp,isAbstractMenuManager:()=>c.Nh,isAppRootModel:()=>c.bV,isAuthNeededException:()=>c.ZL,isBlobLocation:()=>c.rF,isContainedWithin:()=>p.Xx,isDisplayModel:()=>c.Uy,isElectron:()=>te,isFeature:()=>y.l,isGzip:()=>Be,isLocalPathLocation:()=>c.EV,isRetryException:()=>c.yH,isRootModelWithInternetAccounts:()=>c.lL,isSelectionContainer:()=>c.mY,isSessionModel:()=>c.Y$,isSessionModelWithConfigEditing:()=>c.u3,isSessionModelWithConnectionEditing:()=>c.gx,isSessionModelWithConnections:()=>c.BY,isSessionModelWithWidgets:()=>c.lO,isSessionWithAddTracks:()=>c.QW,isSessionWithSessionPlugins:()=>c.zA,isSessionWithShareURL:()=>c.xv,isSupportedIndexingAdapter:()=>ge,isTrackModel:()=>c.xU,isTrackViewModel:()=>c.EO,isUriLocation:()=>c.C1,isViewContainer:()=>c.DW,isViewModel:()=>c.Tl,iterMap:()=>V,linkify:()=>ke,localStorageGetItem:()=>Pe,localStorageSetItem:()=>Ne,makeAbortError:()=>l.zm,makeAbortableReaction:()=>K,max:()=>Oe,measureGridWidth:()=>xe,measureText:()=>se,mergeIntervals:()=>Ge,min:()=>Le,minmax:()=>Q,notEmpty:()=>ze,objectHash:()=>he,observeAbortSignal:()=>l.R1,parseLocString:()=>L,parseLocStringOneBased:()=>O,polarToCartesian:()=>U,rIC:()=>ae,radToDeg:()=>j,renameRegionIfNeeded:()=>Y,renameRegionsIfNeeded:()=>Z,renderToAbstractCanvas:()=>g.u1,renderToStaticMarkup:()=>He,revcom:()=>ne,reverse:()=>re,shorten:()=>X,springAnimate:()=>S,stringify:()=>ee,stripAlpha:()=>je,sum:()=>Re,toLocale:()=>ve,updateStatus:()=>me,useDebounce:()=>A,useDebouncedCallback:()=>C,useLocalStorage:()=>we,useWidthSetter:()=>E,when:()=>m.z,whenPresent:()=>m.I});var r=n(7552),o=n(503),a=n.n(o),i=n(36422),s=n(42489),c=n(92516),l=n(20166),u=n(40085),d=n(87485),f=n(28485),m=n(1864),p=n(32595),h=n(3519),b=n(18010),g=n(98506),y=n(6434),v=n(31673);function A(e,t){const[n,o]=(0,r.useState)(e);return(0,r.useEffect)((()=>{const n=setTimeout((()=>{o(e)}),t);return()=>{clearTimeout(n)}}),[e,t]),n}function E(e,t){const[n,{width:o}]=(0,u.A)();return(0,r.useEffect)((()=>{o&&(0,i.isAlive)(e)&&requestAnimationFrame((()=>{e.setWidth(o-2*Number.parseInt(t,10))}))}),[t,e,o]),n}function C(e,t=400){const n=(0,r.useRef)(),o=(0,r.useRef)();return(0,r.useEffect)((()=>{o.current&&clearTimeout(o.current)}),[]),function(...r){n.current=r,o.current&&clearTimeout(o.current),o.current=setTimeout((()=>{n.current&&e(...n.current)}),t)}}function w(e,t){if(!(0,i.hasParent)(e))throw new Error("node does not have parent");let n=(0,i.getParent)(e);for(;n&&(0,i.isAlive)(n);){if(t(n))return n;if(!(0,i.hasParent)(n))break;n=(0,i.getParent)(n)}throw new Error("no matching node found")}function S(e,t,n,r=()=>{},o=0,a=400,i=20,s=!0){let c;function l(u){const d=Date.now();let f=u.lastPosition,m=u.lastTime||d,p=u.lastVelocity||0;d>m+64&&(m=d);const h=Math.floor(d-m);for(let e=0;et:f{l({lastPosition:f,lastTime:d,lastVelocity:p})})))}return o||(o=Math.abs(t-e)/1e3),[()=>{l({lastPosition:e})},()=>{cancelAnimationFrame(c)}]}function M(e,t){return w(e,t)}function T(e){try{return M(e,c.Y$)}catch(e){throw new Error("no session model found!")}}function k(e){try{return M(e,c.Tl)}catch(e){throw new Error("no containing view found")}}function x(e){try{return M(e,c.xU)}catch(e){throw new Error("no containing track found")}}function I(e){try{return M(e,c.Uy)}catch(e){throw new Error("no containing display found")}}function P(e){return N(e,ve)}function N(e,t=e=>e){const{assemblyName:n,refName:r,start:o,end:a,reversed:i}=e,s=n?`{${n}}`:"";let c,l;c=void 0!==o?`:${t(o+1)}`:void 0!==a?":1":"",l=void 0!==a?void 0!==o&&o+1===a?"":`..${t(a)}`:void 0!==o?"..":"";let u="";return i&&(u="[rev]"),`${s}${r}${c}${l}${u}`}function O(e,t){if(!e)throw new Error("no location string provided, could not parse");let n=!1;e.endsWith("[rev]")&&(n=!0,e=e.replace(/\[rev]$/,"")),e=e.replace(/\s/,"");const r=/({(.+)})?(.+)/.exec(e);if(!r)throw new Error(`invalid location string: "${e}"`);const[,,o,a]=r,i=o,s=a;if(!i&&s.startsWith("{}"))throw new Error(`no assembly name was provided in location "${s}"`);const c=s.lastIndexOf(":");if(-1===c){if(t(s,i))return{assemblyName:i,refName:s,reversed:n};throw new Error(`Unknown reference sequence "${s}"`)}const l=s.slice(0,c),u=s.slice(c+1);if(t(l,i)&&t(s,i))throw new Error(`ambiguous location string: "${e}"`);if(t(l,i)){if(!u)return{assemblyName:i,refName:l,reversed:n};{const t=/^(-?(\d+|\d{1,3}(,\d{3})*))(\.\.|-)(-?(\d+|\d{1,3}(,\d{3})*))$/.exec(u),r=/^(-?(\d+|\d{1,3}(,\d{3})*))(\.\.|-)?$/.exec(u);if(t){const[,e,,,,r]=t;if(void 0!==e&&void 0!==r)return{assemblyName:i,refName:l,start:+e.replaceAll(",",""),end:+r.replaceAll(",",""),reversed:n}}else{if(!r)throw new Error(`could not parse range "${u}" on location "${e}"`);{const[,e,,,t]=r;if(void 0!==e)return t?{assemblyName:i,refName:l,start:+e.replaceAll(",",""),reversed:n}:{assemblyName:i,refName:l,start:+e.replaceAll(",",""),end:+e.replaceAll(",",""),reversed:n}}}}}else if(t(s,i))return{assemblyName:i,refName:s,reversed:n};throw new Error(`unknown reference sequence name in location "${e}"`)}function L(e,t){const n=O(e,t);return"number"==typeof n.start&&(n.start-=1),n}function R(e,t){const n=e.assemblyName||t.assemblyName?(e.assemblyName||"").localeCompare(t.assemblyName||""):0;if(n)return n;const r=e.refName||t.refName?(e.refName||"").localeCompare(t.refName||""):0;if(r)return r;if(void 0!==e.start&&void 0!==t.start){const n=e.start-t.start;if(n)return n}if(void 0!==e.end&&void 0!==t.end){const n=e.end-t.end;if(n)return n}return 0}function F(e,t,n){return R(L(e,n),L(t,n))}function $(e,t,n){return en?n:e}function z(e,{reversed:t,end:n=0,start:r=0},o){return a=(t?n-e:e-r)/o,Math.round(10*a)/10;var a}const G=180/Math.PI,_=Math.PI/180;function j(e){return e*G%360}function D(e){return e*_%(2*Math.PI)}function U(e,t){return[e*Math.cos(t),e*Math.sin(t)]}function H(e,t){return[Math.sqrt(e*e+t*t),Math.atan(t/e)]}function B(e,t,n){return q(e.get("start"),e.get("end"),t,n)}function q(e,t,n,r){const o=z(e,n,r),a=z(t,n,r);return n.reversed?[a,o]:[o,a]}function V(e,t,n){const r=Array.from({length:n||0});let o=0;for(const n of e)r[o]=t(n),o+=1;return r}function J(e,t){let n=e.length;for(;n--;)if(t(e[n],n,e))return n;return-1}function W(e,t){let n=e.length;for(;n--;)if(t(e[n],n,e))return e[n]}function K(e,t,n,r,o,a,c){let u;function d(t){(0,l.Kp)(t)||((0,i.isAlive)(e)?c(t):console.error(t))}(0,i.addDisposer)(e,(0,s.reaction)((()=>{try{return t(e)}catch(e){return void d(e)}}),(async(t,r)=>{if(u&&!u.signal.aborted&&u.abort(),!(0,i.isAlive)(e))return;u=new AbortController;const s=u;o(s);try{const o=await n(t,s.signal,e,r);(0,l.pB)(s.signal),(0,i.isAlive)(e)&&a(o)}catch(e){s.signal.aborted||s.abort(),d(e)}}),r)),(0,i.addDisposer)(e,(()=>{u&&!u.signal.aborted&&u.abort()}))}function Y(e,t){if((0,i.isStateTreeNode)(t)&&!(0,i.isAlive)(t))return t;if(e?.[t.refName]){const n=e[(t=(0,i.isStateTreeNode)(t)?{...(0,i.getSnapshot)(t)}:{...t}).refName];if(n)return{...t,refName:n,originalRefName:t.refName}}return t}async function Z(e,t){const{regions:n=[],adapterConfig:r}=t;if(!t.sessionId)throw new Error("sessionId is required");const o=n.map((e=>e.assemblyName)),a=Object.fromEntries(await Promise.all([...new Set(o)].map((async n=>[n,await e.getRefNameMapForAdapter(r,n,t)]))));return{...t,regions:n.map(((e,t)=>Y(a[o[t]],e)))}}function Q(e,t){return[Math.min(e,t),Math.max(e,t)]}function X(e,t=70,n=30){return e.length>t?`${e.slice(0,n)}...${e.slice(-n)}`:e}function ee({refName:e,coord:t,assemblyName:n,oob:r},o){return[n&&o?`{${n}}`:"",e?`${X(e)}:${ve(t)}${r?" (out of bounds)":""}`:""].join("")}const te=/electron/i.test("undefined"!=typeof navigator?navigator.userAgent:"");function ne(e){return re(oe(e))}function re(e){return e.split("").reverse().join("")}const oe=(()=>{const e=/[ACGT]/gi,t={S:"S",w:"w",T:"A",r:"y",a:"t",N:"N",K:"M",x:"x",d:"h",Y:"R",V:"B",y:"r",M:"K",h:"d",k:"m",C:"G",g:"c",t:"a",A:"T",n:"n",W:"W",X:"X",m:"k",v:"b",B:"V",s:"s",H:"D",c:"g",D:"H",b:"v",R:"Y",G:"C"};return n=>n.replaceAll(e,(e=>t[e]||""))})(),ae="undefined"==typeof jest?"undefined"!=typeof window&&window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout((()=>{e()}),1):e=>{e()},ie=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2796875,.2765625,.3546875,.5546875,.5546875,.8890625,.665625,.190625,.3328125,.3328125,.3890625,.5828125,.2765625,.3328125,.2765625,.3015625,.5546875,.5546875,.5546875,.5546875,.5546875,.5546875,.5546875,.5546875,.5546875,.5546875,.2765625,.2765625,.584375,.5828125,.584375,.5546875,1.0140625,.665625,.665625,.721875,.721875,.665625,.609375,.7765625,.721875,.2765625,.5,.665625,.5546875,.8328125,.721875,.7765625,.665625,.7765625,.721875,.665625,.609375,.721875,.665625,.94375,.665625,.665625,.609375,.2765625,.3546875,.2765625,.4765625,.5546875,.3328125,.5546875,.5546875,.5,.5546875,.5546875,.2765625,.5546875,.5546875,.221875,.240625,.5,.221875,.8328125,.5546875,.5546875,.5546875,.5546875,.3328125,.5,.2765625,.5546875,.5,.721875,.5,.5,.5,.3546875,.259375,.353125,.5890625];function se(e,t=10){const n=String(e);let r=0;for(let e=0;e{const r=e[n],o=[];for(let e=0;e<3;e++){const t=n.charAt(e);o[e]=[],o[e][0]=t.toUpperCase(),o[e][1]=t.toLowerCase()}for(let e=0;e<2;e++){const n=o[0][e];for(let e=0;e<2;e++){const a=o[1][e];for(let e=0;e<2;e++){const i=o[2][e];t[n+a+i]=r}}}})),t}async function me(e,t,n){t(e);const r=await n();return t(""),r}function pe(e){let t=0;if(0===e.length)return t;for(let n=0;nt.blocksForRange(e.refName,e.start,e.end))))).flat().map((e=>({start:e.minv.blockPosition,end:e.maxv.blockPosition+65535}))).reduce(((e,t)=>e+t.end-t.start),0)}function ge(e=""){return["Gff3TabixAdapter","VcfTabixAdapter","Gff3Adapter","VcfAdapter"].includes(e)}function ye(e){return Math.floor(e/1e6)>0?`${Number.parseFloat((e/1e6).toPrecision(3))}Mbp`:Math.floor(e/1e3)>0?`${Number.parseFloat((e/1e3).toPrecision(3))}Kbp`:`${ve(Math.floor(e))}bp`}function ve(e){return e.toLocaleString("en-US")}function Ae(e,t){return Math.floor(t/1e3)>0?`${ve(Number.parseFloat((e/1e6).toFixed(2)))}M`:ve(Math.floor(e))}function Ee(e,t){const{dynamicBlocks:n,staticBlocks:r,offsetPx:o}=k(e),a=n?.contentBlocks[0]||{},i=r?.contentBlocks[0]||{},s=r?.contentBlocks[1]||{};return{offsetPx:t?0:o-i.offsetPx,offsetPx1:t?0:o-s.offsetPx,start:a.start,end:a.end}}function Ce({sessionId:e,layoutId:t}){return`${e}-${t}`}function we(e,t){const[n,o]=(0,r.useState)((()=>{if("undefined"==typeof window)return t;try{const n=window.localStorage.getItem(e);return n?JSON.parse(n):t}catch(e){return console.error(e),t}}));return[n,t=>{try{const r=t instanceof Function?t(n):t;o(r),"undefined"!=typeof window&&window.localStorage.setItem(e,JSON.stringify(r))}catch(e){console.error(e)}}]}function Se(e){const{uri:t,baseUri:n=""}=e;let r;try{r=new URL(t,n).href}catch(e){r=t}return r}function Me(e){return a()(e)?(0,c.C1)(e)?Se(e):JSON.stringify(e):String(e)}function Te(e){return e.replaceAll(/(<([^>]+)>)/gi,"")}function ke(e){return e.replaceAll(/(^|[\s\n]|<[A-Za-z]*\/?>)((?:https?|ftp):\/\/[-A-Z0-9+\u0026\u2019@#/%?=()~_|!:,.;]*[-A-Z0-9+\u0026@#/%=~()_|])/gi,"$1$2")}function xe(e,t){const{padding:n=30,minWidth:r=80,fontSize:o=12,maxWidth:a=1e3,stripHTML:i=!1}=t||{};return Oe(e.map((e=>Me(e))).map((e=>i?Te(e):e)).map((e=>se(e,o))).map((e=>Math.min(Math.max(e+n,r),a))))}function Ie(e){return(0,i.getEnv)(e)}function Pe(e){return"undefined"!=typeof localStorage?localStorage.getItem(e):void 0}function Ne(e,t){"undefined"!=typeof localStorage&&localStorage.setItem(e,t)}function Oe(e,t=Number.NEGATIVE_INFINITY){let n=t;for(const t of e)n=t>n?t:n;return n}function Le(e,t=Number.POSITIVE_INFINITY){let n=t;for(const t of e)n=te.start-t.start)),n.push(e[0]);for(let o=1;oGe(e.sort(((e,t)=>e.start-t.start)),t)))}function je(e){return(0,d.M)(e).alpha(1).toHex()}function De(e){const t=(0,d.M)(e);return{strokeOpacity:t.alpha(),stroke:t.alpha(1).toHex()}}function Ue(e){const t=(0,d.M)(e);return{fillOpacity:t.alpha(),fill:t.alpha(1).toHex()}}function He(e,t){const n=document.createElement("div");return(0,f.flushSync)((()=>{t?t(n).render(e):(0,f.render)(e,n)})),n.innerHTML.replaceAll(/\brgba\((.+?),[^,]+?\)/g,"rgb($1)")}function Be(e){return 31===e[0]&&139===e[1]&&8===e[2]}},91468:(e,t,n)=>{"use strict";n.r(t),n.d(t,{UNKNOWN:()=>u,UNSUPPORTED:()=>d,generateUnknownTrackConf:()=>S,generateUnsupportedTrackConf:()=>w,getBlob:()=>m,getBlobMap:()=>p,getConfAssemblyNames:()=>s,getFileName:()=>A,getParentRenderProps:()=>l,getRpcSessionId:()=>c,getTrackAssemblyNames:()=>i,getTrackName:()=>M,guessAdapter:()=>E,guessTrackType:()=>C,makeIndex:()=>y,makeIndexType:()=>v,setBlobMap:()=>h,storeBlobLocation:()=>g});var r=n(36422),o=n(99546),a=n(68584);function i(e){return s(e.configuration)}function s(e){const t=(0,a.readConfObject)(e,"assemblyNames");if(!t){const t=(0,r.getParent)(e);if("sequence"in t)return[(0,a.readConfObject)(t,"name")];throw new Error("unknown assembly names")}return t}function c(e){let t;for(let n=e;!(0,r.isRoot)(n);n=(0,r.getParent)(n))"rpcSessionId"in n&&(t=n.rpcSessionId);if(!t)throw new Error("getRpcSessionId failed, no parent node in the state tree has an `rpcSessionId` attribute");return t}function l(e){for(let t=(0,r.getParent)(e);!(0,r.isRoot)(t);t=(0,r.getParent)(t))if("renderProps"in t)return t.renderProps();return{}}const u="UNKNOWN",d="UNSUPPORTED";let f={};function m(e){return f[e]}function p(){return f}function h(e){f=e}let b=0;function g(e){if("blob"in e){const t=`b${+Date.now()}-${b++}`;return f[t]=e.blob,{name:e.blob.name,blobId:t,locationType:"BlobLocation"}}return e}function y(e,t){return"uri"in e?{uri:e.uri+t,locationType:"UriLocation"}:"localPath"in e?{localPath:e.localPath+t,locationType:"LocalPathLocation"}:e}function v(e,t,n){return e?.toUpperCase().endsWith(t)?t:n}function A(e){const t="uri"in e?e.uri:void 0,n="localPath"in e?e.localPath:void 0,r="blobId"in e?e:void 0;return r?.name||t?.slice(t.lastIndexOf("/")+1)||n?.slice(n.replace(/\\/g,"/").lastIndexOf("/")+1)||""}function E(e,t,n,r){if(r){const{pluginManager:a}=(0,o.getEnv)(r),i=a.evaluateExtensionPoint("Core-guessAdapterForLocation",((e,t,n)=>{}))(e,t,n);if(i)return i}return{type:u}}function C(e,t){if(t){const n=(0,o.getSession)(t),r=(0,o.getEnv)(n).pluginManager.evaluateExtensionPoint("Core-guessTrackTypeForLocation",(e=>{}))(e);if(r)return r}return"FeatureTrack"}function w(e,t,n){const r={type:"FeatureTrack",name:`${e} (Unsupported)`,description:`Support not yet implemented for "${t}"`,category:n,trackId:""};return r.trackId=(0,o.objectHash)(r),r}function S(e,t,n){const r={type:"FeatureTrack",name:`${e} (Unknown)`,description:`Could not determine track type for "${t}"`,category:n,trackId:""};return r.trackId=(0,o.objectHash)(r),r}function M(e,t){const n=(0,a.readConfObject)(e,"name");if(!n&&"ReferenceSequenceTrack"===(0,a.readConfObject)(e,"type")){const n=t.assemblies.find((t=>t.sequence===e));return n?`Reference sequence (${(0,a.readConfObject)(n,"displayName")||(0,a.readConfObject)(n,"name")})`:"Reference sequence"}return n}},8832:(e,t,n)=>{"use strict";n.r(t),n.d(t,{BlobLocation:()=>l,ElementId:()=>a,FileLocation:()=>f,LocalPathLocation:()=>c,NoAssemblyRegion:()=>i,Region:()=>s,UriLocation:()=>d,UriLocationRaw:()=>u});var r=n(36422),o=n(32761);const a=r.types.optional(r.types.identifier,(()=>(0,o.Ak)())),i=r.types.model("NoAssemblyRegion",{refName:r.types.string,start:r.types.number,end:r.types.number,reversed:r.types.optional(r.types.boolean,!1)}).actions((e=>({setRefName(t){e.refName=t}}))),s=r.types.compose("Region",i,r.types.model({assemblyName:r.types.string})),c=r.types.model("LocalPathLocation",{locationType:r.types.literal("LocalPathLocation"),localPath:r.types.string}),l=r.types.model("BlobLocation",{locationType:r.types.literal("BlobLocation"),name:r.types.string,blobId:r.types.string}),u=r.types.model("UriLocation",{locationType:r.types.literal("UriLocation"),uri:r.types.string,baseUri:r.types.maybe(r.types.string),internetAccountId:r.types.maybe(r.types.string),internetAccountPreAuthorization:r.types.maybe(r.types.model("InternetAccountPreAuthorization",{internetAccountType:r.types.string,authInfo:r.types.frozen()}))}),d=r.types.snapshotProcessor(u,{postProcessor:e=>{const{baseUri:t,...n}=e;return t?e:n}}),f=r.types.snapshotProcessor(r.types.union(c,d,l),{preProcessor(e){if(!e)return;const{locationType:t,...n}=e;if(!t){const{uri:e,localPath:t,blob:r}=n;let o="";return void 0!==e?o="UriLocation":void 0!==t?o="LocalPathLocation":void 0!==r&&(o="BlobLocation"),{...n,locationType:o}}return e}})},16574:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(7552),o=n(12678),a=n(9043),i=n(62367),s=n(69426),c=n(679),l=n(68384);const u=(0,r.lazy)((()=>n.e(8009).then(n.bind(n,18009))));class d extends o.A{name="DataManagementPlugin";exports={AssemblyManager:u};install(e){(0,a.A)(e),(0,i.A)(e),(0,l.Ay)(e),(0,s.A)(e),(0,c.A)(e)}configure(e){}}},2657:(e,t,n)=>{"use strict";n(68970);var r=n(76519),o=n(70129),a=n(24388),i=n(45103),s=n.n(i),c=n(12678),l=n(2862),u=n(99546);function d(e){return(void 0!==e.umdUrl||void 0!==e.url||void 0!==e.umdLoc)&&void 0!==e.name}function f(e){return void 0!==e.esmUrl||void 0!==e.esmLoc}function m(e){return void 0!==e.cjsUrl}class p{definitions=[];constructor(e=[],t){this.fetchESM=t?.fetchESM,this.fetchCJS=t?.fetchCJS,this.definitions=JSON.parse(JSON.stringify(e))}async loadCJSPlugin(e,t){const n=new URL(e.cjsUrl,t);if("http:"!==n.protocol&&"https:"!==n.protocol)throw new Error(`Cannot load plugins using protocol "${n.protocol}"`);if(!this.fetchCJS)throw new Error("No fetchCJS callback provided");return this.fetchCJS(n.href)}async loadESMPlugin(e,t){const n="esmUrl"in e?new URL(e.esmUrl,t):new URL(e.esmLoc.uri,e.esmLoc.baseUri);if("http:"!==n.protocol&&"https:"!==n.protocol)throw new Error(`cannot load plugins using protocol "${n.protocol}"`);if(!this.fetchESM)throw new Error("No ESM fetcher installed");const r=await this.fetchESM(n.href);if(!r)throw new Error(`Could not load ESM plugin: ${n}`);return r}async loadUMDPlugin(e,t){const n="url"in e?new URL(e.url,t):"umdUrl"in e?new URL(e.umdUrl,t):new URL(e.umdLoc.uri,e.umdLoc.baseUri);if("http:"!==n.protocol&&"https:"!==n.protocol)throw new Error(`cannot load plugins using protocol "${n.protocol}"`);const r=e.name,o=`JBrowsePlugin${r}`;"undefined"==typeof jest?await async function(e){if(!Boolean("WorkerGlobalScope"in globalThis))return t=e,new Promise(((e,n)=>{s()(t,((t,r)=>{t?n(t):e(r.src)}))}));var t;if(!globalThis.importScripts)throw new Error("cannot figure out how to load external JS scripts in this environment");await globalThis.importScripts(e)}(n.href):globalThis[o]={default:c.A};const a=globalThis[o];if(!a)throw new Error(`Failed to load UMD bundle for ${r}, ${o} is undefined`);return a}async loadPlugin(e,t){let n;if(u.isElectron&&m(e))n=await this.loadCJSPlugin(e,t);else if(f(e))n=await this.loadESMPlugin(e,t);else{if(!d(e))throw!u.isElectron&&m(e)?new Error(`CommonJS plugin found, but not in a NodeJS environment: ${JSON.stringify(e)}`):new Error(`Could not determine plugin type: ${JSON.stringify(e)}`);n=await this.loadUMDPlugin(e,t)}if(!n.default)throw new Error((d(r=e)?`UMD plugin ${r.name}`:f(r)?`ESM plugin ${r.esmUrl||r.esmLoc.uri}`:m(r)?`CJS plugin ${r.cjsUrl}`:"unknown plugin")+" does not have a default export, cannot load");var r;return n.default}installGlobalReExports(e){return e.JBrowseExports=Object.fromEntries(Object.entries(l.A).map((([e,t])=>[e,t]))),this}async load(e){return Promise.all(this.definitions.map((async t=>({plugin:await this.loadPlugin(t,e),definition:t}))))}}var h=n(39154);var b=n(2356),g=n(63163);(0,b.eO)(!0),async function(e,t){try{const n=await async function(e,t){const n=await function(){const e=new Promise((e=>{self.addEventListener("message",(function t(n){"config"===n.data.message&&(e(n.data.config),removeEventListener("message",t))}))}));return postMessage({message:"readyForConfig"}),e}(),r=new p(n.plugins,t).installGlobalReExports(self);return new o.A([...e.map((e=>({plugin:e}))),...await r.load(n.windowHref)].map((e=>new e.plugin))).createPluggableElements().configure()}(e,t),i=Object.fromEntries(n.getRpcElements().map((e=>{return[e.name,(t=e.execute.bind(e),e=>{const{channel:n,rpcDriverClassName:r}=e;return t({...e,statusCallback:e=>{self.rpcServer.emit(n,e)}},r)})];var t})));self.rpcServer=new r.A.Server({...i,...(0,a.IY)(),ping:async()=>{}}),postMessage({message:"ready"})}catch(e){postMessage({message:"error",error:(0,h.serializeError)(e)})}}(g.A,{fetchESM:e=>import(e)})},68970:()=>{self.window={addEventListener(){},fetch:self.fetch.bind(self),location:self.location,Date:self.Date,requestIdleCallback:e=>{e()},cancelIdleCallback:()=>{},requestAnimationFrame:e=>{e()},cancelAnimationFrame:()=>{},navigator:{}},self.document={createTextNode(){},querySelector:()=>({appendChild(){}}),documentElement:{},querySelectorAll:()=>[],createElement:()=>({style:{},setAttribute(){},removeAttribute(){},appendChild(){}})}}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return o[e].call(n.exports,n,n.exports,i),n.exports}i.m=o,i.x=()=>{var e=i.O(void 0,[5255,3301,6837],(()=>i(2657)));return i.O(e)},e=[],i.O=(t,n,r,o)=>{if(!n){var a=1/0;for(u=0;u=o)&&Object.keys(i.O).every((e=>i.O[e](n[c])))?n.splice(c--,1):(s=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);i.r(o);var a={};t=t||[null,n({}),n([]),n(n)];for(var s=2&r&&e;"object"==typeof s&&!~t.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((t=>a[t]=()=>e[t]));return a.default=()=>e,i.d(o,a),o},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>"static/js/"+e+"."+{12:"c0c7bdf9",14:"b9913d1d",26:"604133d9",120:"a447052d",246:"9848bd41",266:"94eb2bf9",311:"2c004784",366:"b00bf6ca",399:"e36b7683",419:"021427b6",439:"bdc14632",457:"6d7b716d",489:"43cb4a5f",491:"0011d1ad",518:"7222a328",561:"8b38948f",596:"84c38eb7",722:"4329bc98",741:"a9772d36",759:"9c32be0d",772:"83c2d2db",937:"4f610bdf",946:"245d7df9",972:"c0d17685",1012:"a7d14de3",1029:"8c806427",1051:"8e1641e2",1110:"702cba94",1157:"c0d4652e",1189:"f18c6e1f",1260:"ee4ecbf4",1266:"cd6d9354",1281:"1d836fc4",1304:"a512b560",1310:"8a044016",1326:"19289940",1345:"aaaaf175",1354:"ded982ce",1503:"cc48d25a",1516:"ca4ab8f0",1537:"4fdb4e95",1598:"3b48685f",1637:"21a8cf01",1696:"8a290cef",1725:"795fc4d3",1752:"a727a500",1757:"a6d05bc3",1811:"7cfd8419",1822:"2cbe112a",1824:"c2ed4bca",1978:"1faf7d31",1996:"a37d9ec7",1999:"2554e815",2018:"9ce7fb06",2062:"a28f26f8",2141:"d36fb4a8",2197:"a5134ce4",2212:"116fbbf4",2241:"3d359b22",2246:"e5e65a4f",2249:"b91f0bb3",2306:"f8d640f4",2321:"ef211da9",2398:"731eb1c6",2412:"10574f7d",2418:"0b1f308b",2424:"7cd6703f",2493:"20e8e76c",2583:"db78b17f",2627:"300bea43",2645:"4b79a04c",2697:"4ab94d07",2729:"9660c29b",2775:"e25b4dd4",2777:"56f29f41",2820:"3c0e09be",2847:"009c96ee",2861:"aa6cd5b7",2872:"5129bbd8",2885:"8a30e856",2977:"aa562b03",2989:"031b43a0",3003:"0f0cbacd",3011:"9da53e7c",3012:"9940fd01",3029:"cd8dcca2",3103:"4dfe3f78",3106:"e1981605",3109:"3173f682",3162:"eb9bf76d",3167:"312d0953",3175:"af2c93a5",3199:"a36b17a7",3266:"accbd4dc",3274:"053c3df5",3301:"db457761",3304:"65e5d8dd",3311:"92fac4a6",3368:"6e9b017b",3384:"e146a796",3416:"f7c72cbe",3425:"be85a6ad",3474:"8c1888be",3497:"9db6611b",3525:"e74d3ff0",3550:"089089a8",3578:"058bdae5",3614:"af493134",3682:"840e721c",3728:"99a63442",3778:"e18101e6",3795:"0386c297",3862:"9fd8e870",3902:"69c7ff0c",3940:"c8b3da50",4033:"df8ecd0d",4060:"8757dbe8",4133:"451f5e47",4138:"57ad92a3",4234:"63e1ba57",4284:"61dbc58f",4345:"0a9072cc",4395:"8fda7b8b",4414:"7f4caeab",4435:"a57cabe2",4456:"93a06b74",4499:"3f0b2e70",4615:"dc35870f",4629:"1f1a55a3",4630:"f0bdb9f0",4659:"b65d8547",4704:"9b3995ff",4753:"834007ba",4755:"8d938db2",4770:"3d757d6b",4773:"6cd74b80",4806:"7e497d7a",4861:"6244e4c0",4863:"9dfed19c",4864:"28cfc358",4902:"452e575b",4947:"2e80fd2d",4974:"cf97ef5b",5008:"f8d32f92",5031:"6eccfd35",5090:"bc77ac67",5099:"14f82444",5101:"993a6b6e",5132:"00a31df0",5156:"75195722",5189:"3e22269d",5243:"9de20396",5255:"af554ced",5260:"e7b7aeb6",5327:"8f1dcfc1",5331:"28d667f0",5369:"993afa3f",5461:"5c8cf5d1",5484:"3ceeebff",5511:"154ce441",5515:"671905b2",5595:"b4517d69",5608:"1b8d39e1",5640:"33b8306c",5668:"73016b9c",5676:"818528e8",5677:"28a25579",5682:"ea285a50",5727:"f7a524b6",5736:"48705208",5746:"39e4296b",5763:"48010c9a",5896:"622b5e88",5903:"9145cef7",5904:"240caa72",5930:"0ffd2546",5951:"251be759",5998:"22bd8296",6021:"21769087",6043:"e402bf73",6054:"e0881c55",6149:"c6c4af73",6157:"96f40683",6205:"903f897d",6214:"0ed0ac32",6235:"93768761",6310:"ae82dc58",6323:"1c706a2d",6342:"62a02e7b",6391:"aabba4a1",6395:"f6027b24",6397:"8fc250af",6423:"1e8da08b",6435:"b4633aa1",6514:"d36ecbb8",6526:"b2c8fd93",6621:"cf64e54c",6658:"fe512b5a",6683:"2a35f0fe",6703:"faa93a20",6746:"8d3f75be",6785:"07d4b66b",6799:"754a77ae",6823:"6e35b0cf",6833:"c77c5928",6834:"bc9e9f2b",6837:"a706c464",6861:"66a2e4c0",6932:"a37ea756",6946:"dd09a891",6999:"3486cca0",7013:"5240d550",7067:"e9508417",7087:"79101e8e",7117:"b3239756",7126:"b4b7d70b",7181:"938de865",7203:"03e2b86a",7309:"f9d18abb",7348:"40afbdc0",7374:"932d083d",7389:"fa6a1eb0",7407:"4421929d",7409:"8e71acc1",7418:"2ac24978",7428:"1e6f676f",7489:"b8a76d29",7579:"1b98701c",7584:"a162e3d6",7627:"31dfd44e",7706:"430ce07e",7753:"87963fd9",7761:"0cf7cf29",7773:"7e072552",7790:"3790bece",7809:"eb2c5f08",7812:"6bb31bfb",7831:"cfcb0221",7842:"cbff451c",7864:"59d0de32",7865:"e02aee95",7902:"f48e3002",7909:"8f1d759d",7911:"764ec401",7974:"3f19c570",7991:"5d96c772",8009:"a65f1b78",8052:"7d772984",8105:"4fd35586",8109:"344e1845",8114:"eb856986",8120:"85042513",8150:"09c54606",8165:"d07843b4",8187:"383aefbf",8216:"16f39607",8301:"877076ce",8341:"fa84fa67",8343:"dd515382",8408:"2e2896bf",8424:"a1a3e663",8435:"484d30f8",8483:"7fadf4ea",8526:"5dd9c712",8528:"f68ff14f",8535:"189d090a",8546:"0a89cbee",8556:"0053a402",8565:"c4ea9980",8582:"9b93fffc",8615:"0950a86f",8624:"190dd7af",8678:"8424d5dc",8704:"ae4808df",8762:"3d2b9142",8797:"3168365d",8856:"4593419f",8859:"efb2561f",8869:"74066774",8876:"24bf6aed",8880:"6ae9d985",8929:"70ce258f",8965:"51db703f",8984:"1a816123",9028:"12f6efe2",9032:"b54e1975",9037:"03715b7f",9067:"1cc02121",9070:"d49de235",9086:"035adaa3",9088:"9fbbeb5c",9106:"b274c701",9114:"d412d44e",9168:"6afdec67",9206:"bbf34514",9245:"d882c265",9280:"6e897b98",9292:"96b77fb0",9305:"4d748fb5",9314:"3e43d34c",9329:"c269472b",9372:"67d6f914",9374:"8ac7e6d7",9384:"a4e7a69a",9409:"c7569196",9449:"2e1d2652",9458:"07f0ae54",9589:"9087e0ea",9657:"0cccd5bf",9658:"33669a59",9690:"0cd8a2c8",9756:"4ac80c37",9824:"b9ece376",9831:"de8b3aa9",9870:"f395e633",9943:"d3ab0f18"}[e]+".chunk.js",i.miniCssF=e=>{},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.j=2047,(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=n[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e+"../../"})(),(()=>{var e={2047:1};i.f.i=(t,n)=>{e[t]||importScripts(i.p+i.u(t))};var t=globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[],n=t.push.bind(t);t.push=t=>{var[r,o,a]=t;for(var s in o)i.o(o,s)&&(i.m[s]=o[s]);for(a&&a(i);r.length;)e[r.pop()]=1;n(t)}})(),i.nc=void 0,r=i.x,i.x=()=>Promise.all([5255,3301,6837].map(i.e,i)).then(r),i.x()})(); -//# sourceMappingURL=2047.b1e80504.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2047.b1e80504.chunk.js.map --- a/x/static/js/2047.b1e80504.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2047.b1e80504.chunk.js","mappings":"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AO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KA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","sources":["../webpack/runtime/chunk loaded","../webpack/runtime/create fake namespace object","../webpack/runtime/startup chunk dependencies","../../../packages/core/data_adapters/dataAdapterCache.ts","../../../packages/core/rpc/remoteAbortSignals.ts","../../../packages/core/ui/CascadingMenu.tsx","../../../packages/core/ui/Dialog.tsx","../../../packages/core/ui/EditableTypography.tsx","../../../packages/core/ui/ErrorMessage.tsx","../../../packages/core/ui/FactoryResetDialog.tsx","../../../packages/core/ui/Icons.tsx","../../../packages/core/ui/Logo.tsx","../../../packages/core/ui/Menu.tsx","../../../packages/core/ui/ResizeHandle.tsx","../../../packages/core/ui/ReturnToImportFormDialog.tsx","../../../packages/core/ui/SanitizedHTML.tsx","../../../packages/core/ui/theme.ts","../../../packages/core/ui/AssemblySelector.tsx","../../../packages/core/ui/FileSelector/FileSelector.tsx","../../../packages/core/ui/PrerenderedCanvas.tsx","../../../packages/core/util/QuickLRU.js","../../../packages/core/util/index.ts","../../../packages/core/util/tracks.ts","../../../packages/core/util/types/mst.ts","../../../plugins/data-management/src/index.ts","../../../packages/core/PluginLoader.ts","rpcWorker.ts","../../../packages/product-core/src/rpcWorker.ts","workerPolyfill.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/runtimeId","../webpack/runtime/publicPath","../webpack/runtime/importScripts chunk loading","../webpack/runtime/nonce","../webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([5255,3301,6837].map(__webpack_require__.e, __webpack_require__)).then(next);\n};","import { SnapshotIn } from 'mobx-state-tree'\nimport PluginManager from '../PluginManager'\nimport { AnyConfigurationSchemaType } from '../configuration'\nimport { AnyDataAdapter } from './BaseAdapter'\nimport idMaker from '../util/idMaker'\n\ntype ConfigSnap = SnapshotIn\n\nexport function adapterConfigCacheKey(conf: Record = {}) {\n return `${idMaker(conf)}`\n}\n\ninterface AdapterCacheEntry {\n dataAdapter: AnyDataAdapter\n sessionIds: Set\n}\n\nlet adapterCache: Record = {}\n\n/**\n * instantiate a data adapter, or return an already-instantiated one if we have\n * one with the same configuration\n *\n * @param pluginManager\n *\n * @param sessionId - session ID of the associated worker session. used for\n * reference counting\n *\n * @param adapterConfigSnapshot - plain-JS configuration snapshot for the\n * adapter\n */\nexport async function getAdapter(\n pluginManager: PluginManager,\n sessionId: string,\n adapterConfigSnapshot: SnapshotIn,\n): Promise {\n // cache the adapter object\n const cacheKey = adapterConfigCacheKey(adapterConfigSnapshot)\n if (!adapterCache[cacheKey]) {\n const adapterType = adapterConfigSnapshot?.type\n\n if (!adapterType) {\n throw new Error(\n `could not determine adapter type from adapter config snapshot ${JSON.stringify(\n adapterConfigSnapshot,\n )}`,\n )\n }\n const dataAdapterType = pluginManager.getAdapterType(adapterType)\n if (!dataAdapterType) {\n throw new Error(`unknown data adapter type ${adapterType}`)\n }\n\n // instantiate the data adapter's config schema so it gets its defaults,\n // callbacks, etc\n const adapterConfig = dataAdapterType.configSchema.create(\n adapterConfigSnapshot,\n { pluginManager },\n )\n\n const getSubAdapter = getAdapter.bind(null, pluginManager, sessionId)\n const CLASS = await dataAdapterType.getAdapterClass()\n const dataAdapter = new CLASS(adapterConfig, getSubAdapter, pluginManager)\n\n // store it in our cache\n adapterCache[cacheKey] = {\n dataAdapter,\n sessionIds: new Set([sessionId]),\n }\n }\n\n const cacheEntry = adapterCache[cacheKey]\n cacheEntry.sessionIds.add(sessionId)\n\n return cacheEntry\n}\n\n/**\n * this is a callback that is passed to adapters that\n * allows them to get any sub-adapters that they need\n * internally, staying with the same worker session ID\n */\nexport type getSubAdapterType = (\n adapterConfigSnap: ConfigSnap,\n) => ReturnType\n\nexport function freeAdapterResources(specification: Record) {\n let deleteCount = 0\n const specKeys = Object.keys(specification)\n\n // if we don't specify a range, delete any adapters that are only associated\n // with that session\n if (specKeys.length === 1 && specKeys[0] === 'sessionId') {\n const { sessionId } = specification\n Object.entries(adapterCache).forEach(([cacheKey, cacheEntry]) => {\n cacheEntry.sessionIds.delete(sessionId)\n if (cacheEntry.sessionIds.size === 0) {\n deleteCount += 1\n delete adapterCache[cacheKey]\n }\n })\n } else {\n // otherwise call freeResources on all the cached data adapters\n Object.values(adapterCache).forEach(cacheEntry => {\n const regions =\n specification.regions ||\n (specification.region ? [specification.region] : [])\n for (const region of regions) {\n if (region.refName !== undefined) {\n cacheEntry.dataAdapter.freeResources(region)\n }\n }\n })\n }\n\n return deleteCount\n}\n\nexport function clearAdapterCache() {\n adapterCache = {}\n}\n","/* ---------------- for the RPC client ----------------- */\n\nlet abortSignalCounter = 0\nexport interface RemoteAbortSignal {\n abortSignalId: number\n}\nconst abortSignalIds = new WeakMap() // map of abortsignal => numerical ID\n\n/**\n * assign an ID to the given abort signal and return a plain object\n * representation\n *\n * @param signal - the signal to serialize\n * @param callfunc - function used to call\n * a remote method, will be called like callfunc('signalAbort', signalId)\n */\nexport function serializeAbortSignal(\n signal: AbortSignal,\n callfunc: (name: string, abortSignalId: number) => void,\n): RemoteAbortSignal {\n let abortSignalId = abortSignalIds.get(signal)\n if (!abortSignalId) {\n abortSignalCounter += 1\n abortSignalIds.set(signal, abortSignalCounter)\n abortSignalId = abortSignalCounter\n signal.addEventListener('abort', () => {\n const signalId = abortSignalIds.get(signal)\n if (signalId !== undefined) {\n callfunc('signalAbort', signalId)\n }\n })\n }\n return { abortSignalId }\n}\n\n/* ---------------- for the RPC server ----------------- */\n\n/**\n * test whether a given object\n * @param thing - the thing to test\n * @returns true if the thing is a remote abort signal\n */\nexport function isRemoteAbortSignal(\n thing: unknown,\n): thing is RemoteAbortSignal {\n return (\n typeof thing === 'object' &&\n thing !== null &&\n 'abortSignalId' in thing &&\n typeof thing.abortSignalId === 'number'\n )\n}\n\n// the server side keeps a set of surrogate abort controllers that can be\n// aborted based on ID\nconst surrogateAbortControllers = new Map() // numerical ID => surrogate abort controller\n\n/**\n * deserialize the result of serializeAbortSignal into an AbortSignal\n *\n * @param signal -\n * @returns an abort signal that corresponds to the given ID\n */\nexport function deserializeAbortSignal({\n abortSignalId,\n}: RemoteAbortSignal): AbortSignal {\n let surrogateAbortController = surrogateAbortControllers.get(abortSignalId)\n if (!surrogateAbortController) {\n surrogateAbortController = new AbortController()\n surrogateAbortControllers.set(abortSignalId, surrogateAbortController)\n }\n return surrogateAbortController.signal\n}\n\n/**\n * fire an abort signal from a remote abort signal ID\n *\n * @param abortSignalId -\n */\nexport function remoteAbort(props: { signalId: number }) {\n const { signalId: abortSignalId } = props\n const surrogateAbortController = surrogateAbortControllers.get(abortSignalId)\n\n if (surrogateAbortController) {\n surrogateAbortController.abort()\n }\n}\n\nexport function remoteAbortRpcHandler() {\n return {\n signalAbort: remoteAbort,\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-function-type */\nimport React, { useContext, useMemo } from 'react'\nimport {\n Divider,\n ListItemIcon,\n ListItemText,\n ListSubheader,\n Menu,\n MenuItem,\n PopoverOrigin,\n SvgIconProps,\n} from '@mui/material'\nimport { MenuItem as JBMenuItem, MenuItemEndDecoration } from './Menu'\nimport {\n bindHover,\n bindFocus,\n bindMenu,\n usePopupState,\n PopupState,\n} from 'material-ui-popup-state/hooks'\nimport HoverMenu from 'material-ui-popup-state/HoverMenu'\nimport ChevronRight from '@mui/icons-material/ChevronRight'\n\nconst CascadingContext = React.createContext({\n parentPopupState: null,\n rootPopupState: null,\n} as { parentPopupState: PopupState | null; rootPopupState: PopupState | null })\n\nfunction CascadingMenuItem({\n onClick,\n closeAfterItemClick,\n ...props\n}: {\n closeAfterItemClick: boolean\n onClick?: Function\n disabled?: boolean\n children: React.ReactNode\n}) {\n const { rootPopupState } = useContext(CascadingContext)\n if (!rootPopupState) {\n throw new Error('must be used inside a CascadingMenu')\n }\n\n return (\n {\n if (closeAfterItemClick) {\n rootPopupState.close()\n }\n onClick?.(event)\n }}\n />\n )\n}\n\nfunction CascadingSubmenu({\n title,\n Icon,\n inset,\n popupId,\n ...props\n}: {\n children: React.ReactNode\n title: React.ReactNode\n onMenuItemClick: Function\n Icon: React.ComponentType | undefined\n\n inset: boolean\n menuItems: JBMenuItem[]\n popupId: string\n}) {\n const { parentPopupState } = useContext(CascadingContext)\n const popupState = usePopupState({\n popupId,\n variant: 'popover',\n parentPopupState,\n })\n return (\n <>\n \n {Icon ? (\n \n \n \n ) : null}\n \n \n \n \n \n )\n}\n\nfunction CascadingSubmenuHover({\n popupState,\n onMenuItemClick,\n menuItems,\n classes,\n ...props\n}: {\n classes?: Record\n popupState: PopupState\n anchorOrigin: PopoverOrigin\n transformOrigin: PopoverOrigin\n onMenuItemClick: Function\n menuItems: JBMenuItem[]\n}) {\n const { rootPopupState } = useContext(CascadingContext)\n const context = useMemo(\n () => ({\n rootPopupState: rootPopupState || popupState,\n parentPopupState: popupState,\n }),\n [rootPopupState, popupState],\n )\n\n return (\n \n \n \n )\n}\n\nfunction CascadingMenu({\n popupState,\n onMenuItemClick,\n menuItems,\n ...props\n}: {\n popupState: PopupState\n onMenuItemClick: Function\n menuItems: JBMenuItem[]\n}) {\n const { rootPopupState } = useContext(CascadingContext)\n const context = useMemo(\n () => ({\n rootPopupState: rootPopupState || popupState,\n parentPopupState: popupState,\n }),\n [rootPopupState, popupState],\n )\n\n return (\n \n \n \n )\n}\n\nfunction EndDecoration({ item }: { item: JBMenuItem }) {\n if ('subMenu' in item) {\n return \n } else if (item.type === 'checkbox' || item.type === 'radio') {\n return (\n \n )\n }\n return null\n}\n\nfunction CascadingMenuList({\n onMenuItemClick,\n closeAfterItemClick,\n menuItems,\n ...props\n}: {\n menuItems: JBMenuItem[]\n closeAfterItemClick: boolean\n onMenuItemClick: Function\n}) {\n function handleClick(callback: Function) {\n return (event: React.MouseEvent) => {\n onMenuItemClick(event, callback)\n }\n }\n\n const hasIcon = menuItems.some(m => 'icon' in m && m.icon)\n return (\n <>\n {menuItems\n .sort((a, b) => (b.priority || 0) - (a.priority || 0))\n .map((item, idx) => {\n return 'subMenu' in item ? (\n \n \n \n ) : item.type === 'divider' ? (\n \n ) : item.type === 'subHeader' ? (\n \n {item.label}\n \n ) : (\n \n {item.icon ? (\n \n \n \n ) : null}{' '}\n \n
\n \n \n )\n })}\n \n )\n}\n\nfunction CascadingMenuChildren(props: {\n onMenuItemClick: Function\n closeAfterItemClick?: boolean\n menuItems: JBMenuItem[]\n popupState: PopupState\n}) {\n const { closeAfterItemClick = true, ...rest } = props\n return (\n \n \n \n )\n}\n\nexport default CascadingMenuChildren\n","import React from 'react'\nimport {\n Dialog as MUIDialog,\n DialogTitle,\n DialogProps,\n Divider,\n IconButton,\n ScopedCssBaseline,\n ThemeProvider,\n createTheme,\n useTheme,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { makeStyles } from 'tss-react/mui'\nimport { ErrorBoundary } from 'react-error-boundary'\n\n// icons\nimport CloseIcon from '@mui/icons-material/Close'\n// locals\nimport ErrorMessage from './ErrorMessage'\nimport SanitizedHTML from './SanitizedHTML'\n\nconst useStyles = makeStyles()(theme => ({\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n },\n}))\n\nfunction DialogError({ error }: { error: unknown }) {\n return (\n
\n \n
\n )\n}\n\ninterface Props extends DialogProps {\n header?: React.ReactNode\n}\n\nconst Dialog = observer(function (props: Props) {\n const { classes } = useStyles()\n const { title, header, children, onClose } = props\n const theme = useTheme()\n\n return (\n \n \n {React.isValidElement(header) ? (\n header\n ) : (\n \n \n {onClose ? (\n {\n // @ts-expect-error\n onClose()\n }}\n >\n \n \n ) : null}\n \n )}\n \n\n \n \n {children}\n \n \n \n \n )\n})\n\nexport default Dialog\n","import React, { useEffect, useState } from 'react'\nimport { InputBase, Typography, TypographyProps, useTheme } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport useMeasure from '@jbrowse/core/util/useMeasure'\n\ntype Variant = TypographyProps['variant']\n\ntype EditableTypographyClassKey =\n | 'input'\n | 'inputBase'\n | 'inputRoot'\n | 'inputFocused'\n\nconst useStyles = makeStyles()(theme => ({\n input: {},\n inputBase: {},\n typography: {\n top: 6,\n left: 2,\n position: 'absolute',\n whiteSpace: 'nowrap',\n visibility: 'hidden',\n },\n inputRoot: {\n padding: theme.spacing(0.5),\n },\n inputFocused: {\n borderStyle: 'solid',\n borderWidth: 2,\n },\n}))\n\ninterface Props {\n value: string\n setValue: (value: string) => void\n variant: Variant\n classes?: Partial>\n}\n\n// using forwardRef so that MUI Tooltip can wrap this component\nconst EditableTypography = React.forwardRef(\n function EditableTypography2(props, ref) {\n const { value, setValue, variant, ...other } = props\n const [ref2, { width }] = useMeasure()\n const [editedValue, setEditedValue] = useState()\n const [inputNode, setInputNode] = useState(null)\n const [blur, setBlur] = useState(false)\n\n useEffect(() => {\n if (blur) {\n inputNode?.blur()\n setBlur(false)\n }\n }, [blur, inputNode])\n\n // possibly tss-react does not understand the passing of props to\n // useStyles, but it appears to work\n // @ts-expect-error\n const { classes } = useStyles(props, { props })\n const theme = useTheme()\n\n const val = editedValue === undefined ? value : editedValue\n\n return (\n
\n
\n \n {val}\n \n
\n {\n setInputNode(node)\n }}\n className={classes.inputBase}\n inputProps={{\n style: {\n width,\n ...(variant && variant !== 'inherit'\n ? theme.typography[variant]\n : {}),\n },\n }}\n classes={{\n input: classes.input,\n root: classes.inputRoot,\n focused: classes.inputFocused,\n }}\n value={val}\n onChange={event => {\n setEditedValue(event.target.value)\n }}\n onKeyDown={event => {\n if (event.key === 'Enter') {\n inputNode?.blur()\n } else if (event.key === 'Escape') {\n setEditedValue(undefined)\n setBlur(true)\n }\n }}\n onBlur={() => {\n setValue(editedValue || value || '')\n setEditedValue(undefined)\n }}\n />\n
\n )\n },\n)\n\nexport default EditableTypography\n","import React, { Suspense, lazy, useState } from 'react'\nimport { IconButton, Tooltip } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n\n// locals\nimport RedErrorMessageBox from './RedErrorMessageBox'\n\n// icons\nimport RefreshIcon from '@mui/icons-material/Refresh'\nimport ReportIcon from '@mui/icons-material/Report'\n\n// lazies\nconst ErrorMessageStackTraceDialog = lazy(\n () => import('./ErrorMessageStackTraceDialog'),\n)\n\nconst useStyles = makeStyles()(theme => ({\n bg: {\n background: theme.palette.divider,\n border: '1px solid black',\n margin: 20,\n },\n iconFloat: {\n float: 'right',\n marginLeft: 100,\n },\n}))\n\nfunction parseError(str: string) {\n let snapshotError = ''\n const findStr = 'is not assignable'\n const idx = str.indexOf(findStr)\n if (idx !== -1) {\n const trim = str.slice(0, idx + findStr.length)\n // best effort to make a better error message than the default\n // mobx-state-tree\n\n // case 1. element has a path\n const match = /.*at path \"(.*)\" snapshot `(.*)` is not assignable/m.exec(\n trim,\n )\n if (match) {\n str = `Failed to load element at ${match[1]}...Failed element had snapshot`\n snapshotError = match[2]!\n }\n\n // case 2. element has no path\n const match2 = /.*snapshot `(.*)` is not assignable/.exec(trim)\n if (match2) {\n str = 'Failed to load element...Failed element had snapshot'\n snapshotError = match2[1]!\n }\n }\n return snapshotError\n}\n\nfunction ErrorButtons({\n error,\n onReset,\n}: {\n error: unknown\n onReset?: () => void\n}) {\n const { classes } = useStyles()\n const [showStack, setShowStack] = useState(false)\n return (\n
\n {typeof error === 'object' && error && 'stack' in error ? (\n \n {\n setShowStack(true)\n }}\n color=\"primary\"\n >\n \n \n \n ) : null}\n {onReset ? (\n \n \n \n \n \n ) : null}\n {showStack ? (\n \n {\n setShowStack(false)\n }}\n />\n \n ) : null}\n
\n )\n}\n\nfunction ErrorMessage({\n error,\n onReset,\n}: {\n error: unknown\n onReset?: () => void\n}) {\n const { classes } = useStyles()\n const str = `${error}`\n const str2 = str.indexOf('expected an instance of')\n const str3 = str2 !== -1 ? str.slice(0, str2) : str\n const snapshotError = parseError(str)\n return (\n \n {str3.slice(0, 10000)}\n \n {snapshotError ? (\n
\n          {JSON.stringify(JSON.parse(snapshotError), null, 2)}\n        
\n ) : null}\n
\n )\n}\n\nexport default ErrorMessage\n","import React from 'react'\nimport {\n Button,\n DialogContent,\n DialogContentText,\n DialogActions,\n} from '@mui/material'\nimport Dialog from '@jbrowse/core/ui/Dialog'\n\nexport default function FactoryResetDialog({\n onClose,\n open,\n onFactoryReset,\n}: {\n onClose: () => void\n open: boolean\n onFactoryReset: () => void\n}) {\n function handleDialogClose(action?: string) {\n if (action === 'reset') {\n onFactoryReset()\n }\n onClose()\n }\n\n return (\n {\n handleDialogClose()\n }}\n open={open}\n >\n \n \n Are you sure you want to reset? This will restore the default\n configuration.\n \n \n \n {\n handleDialogClose()\n }}\n color=\"primary\"\n >\n Cancel\n \n {\n handleDialogClose('reset')\n }}\n color=\"primary\"\n variant=\"contained\"\n >\n OK\n \n \n \n )\n}\n","import SvgIcon, { SvgIconProps } from '@mui/material/SvgIcon'\nimport React from 'react'\n\n// Icons below come from https://material.io/resources/icons/?icon=line_style&style=baseline\nexport function ContentCopy(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\n// https://materialdesignicons.com/ text-search icon\nexport function Indexing(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\nexport function ContentCut(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\nexport function ContentPaste(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\n// format-list-checkbox from https://materialdesignicons.com/\nexport function TrackSelector(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\n// content-save-edit from https://materialdesignicons.com/\nexport function SaveAs(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\n// content-save from https://materialdesignicons.com/\nexport function Save(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\n// dna from https://materialdesignicons.com/\nexport function DNA(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\nexport function Cable(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n","import React from 'react'\n\ntype LogoVariant = 'color' | 'black' | 'white'\n\ninterface LogoProps {\n variant?: LogoVariant\n}\n\nfunction getColors(variant?: LogoVariant) {\n if (variant === 'black') {\n return {\n midnight: '#808080',\n forrest: '#666666',\n grape: '#4d4d4d',\n mandarin: '#333333',\n gray: '#1a1a1a',\n }\n }\n if (variant === 'white') {\n return {\n midnight: '#ffffff',\n forrest: '#e6e6e6',\n grape: '#cccccc',\n mandarin: '#b3b3b3',\n gray: '#999999',\n }\n }\n return {\n midnight: '#0d233f',\n forrest: '#135560',\n grape: '#721e63',\n mandarin: '#ffb11d',\n gray: '#dadada',\n }\n}\n\nexport function Logomark({ variant }: LogoProps) {\n return (\n \n \n \n )\n}\n\nexport function LogoFull({ variant }: LogoProps) {\n return (\n \n \n \n \n )\n}\n\nfunction Icon({ variant }: LogoProps) {\n const colors = getColors(variant)\n return (\n <>\n \n \n \n \n \n \n )\n}\n\nfunction Text({ variant }: LogoProps) {\n const colors = getColors(variant)\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport {\n Divider,\n ListItemIcon,\n ListItemText,\n ListSubheader,\n MenuProps as MUIMenuProps,\n MenuItem as MUIMenuItem,\n MenuItemProps,\n MenuList,\n Paper,\n Popover,\n PopoverProps,\n SvgIconProps,\n Grow,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n// icons\nimport ArrowRightIcon from '@mui/icons-material/ArrowRight'\nimport CheckBoxIcon from '@mui/icons-material/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank'\nimport RadioButtonCheckedIcon from '@mui/icons-material/RadioButtonChecked'\nimport RadioButtonUncheckedIcon from '@mui/icons-material/RadioButtonUnchecked'\n\n// other\nimport { findLastIndex } from '../util'\n\nconst useStyles = makeStyles()({\n paper: {\n position: 'fixed',\n overflowY: 'auto',\n overflowX: 'hidden',\n // So we see the popover when it's empty.\n minWidth: 16,\n minHeight: 16,\n maxWidth: 'calc(100% - 32px)',\n maxHeight: 'calc(100% - 32px)',\n top: 0,\n left: 0,\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n },\n menuItemEndDecoration: {\n padding: 0,\n margin: 0,\n height: 16,\n },\n})\n\ninterface MenuItemEndDecorationSubMenuProps {\n type: 'subMenu'\n}\n\ninterface MenuItemEndDecorationSelectorProps {\n type: 'checkbox' | 'radio'\n checked: boolean\n disabled?: boolean\n}\n\ntype MenuItemEndDecorationProps =\n | MenuItemEndDecorationSubMenuProps\n | MenuItemEndDecorationSelectorProps\n\nexport function MenuItemEndDecoration(props: MenuItemEndDecorationProps) {\n const { classes } = useStyles()\n const { type } = props\n let checked: boolean | undefined\n let disabled: boolean | undefined\n if ('checked' in props) {\n ;({ checked, disabled } = props)\n }\n let icon: React.ReactElement\n switch (type) {\n case 'subMenu': {\n icon = \n break\n }\n case 'checkbox': {\n if (checked) {\n const color = disabled ? 'inherit' : undefined\n icon = \n } else {\n icon = \n }\n break\n }\n case 'radio': {\n if (checked) {\n const color = disabled ? 'inherit' : undefined\n icon = \n } else {\n icon = \n }\n break\n }\n // No default\n }\n return
{icon}
\n}\n\nexport interface MenuDivider {\n priority?: number\n type: 'divider'\n}\n\nexport interface MenuSubHeader {\n type: 'subHeader'\n priority?: number\n label: string\n}\n\nexport interface BaseMenuItem {\n id?: string // used as react key if provided\n label: React.ReactNode\n priority?: number\n subLabel?: string\n icon?: React.ComponentType\n disabled?: boolean\n}\n\nexport interface NormalMenuItem extends BaseMenuItem {\n type?: 'normal'\n onClick: (...args: any[]) => void\n}\n\nexport interface CheckboxMenuItem extends BaseMenuItem {\n type: 'checkbox'\n checked: boolean\n onClick: (...args: any[]) => void\n}\n\nexport interface RadioMenuItem extends BaseMenuItem {\n type: 'radio'\n checked: boolean\n onClick: (...args: any[]) => void\n}\n\nexport interface SubMenuItem extends BaseMenuItem {\n type?: 'subMenu'\n subMenu: MenuItem[]\n}\n\nexport type MenuItem =\n | MenuDivider\n | MenuSubHeader\n | NormalMenuItem\n | CheckboxMenuItem\n | RadioMenuItem\n | SubMenuItem\n\ntype AnchorElProp = MUIMenuProps['anchorEl']\ntype OpenProp = MUIMenuProps['open']\ntype OnCloseProp = MUIMenuProps['onClose']\n\ninterface MenuPageProps {\n menuItems: MenuItem[]\n onMenuItemClick: (\n event: React.MouseEvent,\n callback: (...args: any[]) => void,\n ) => void\n anchorEl?: AnchorElProp\n open: OpenProp\n onClose: OnCloseProp\n top?: boolean\n}\n\ntype MenuItemStyleProp = MenuItemProps['style']\n\nfunction checkIfValid(m: MenuItem) {\n return m.type !== 'divider' && m.type !== 'subHeader' && !m.disabled\n}\nfunction findNextValidIdx(menuItems: MenuItem[], currentIdx: number) {\n const idx = menuItems.slice(currentIdx + 1).findIndex(checkIfValid)\n if (idx === -1) {\n return idx\n }\n return currentIdx + 1 + idx\n}\n\nfunction findPreviousValidIdx(menuItems: MenuItem[], currentIdx: number) {\n return findLastIndex(menuItems.slice(0, currentIdx), checkIfValid)\n}\n\nconst MenuPage = React.forwardRef(\n function MenuPage2(props, ref) {\n const [subMenuAnchorEl, setSubMenuAnchorEl] = useState()\n const [openSubMenuIdx, setOpenSubMenuIdx] = useState()\n const [isSubMenuOpen, setIsSubMenuOpen] = useState(false)\n const [selectedMenuItemIdx, setSelectedMenuItemIdx] = useState()\n const [position, setPosition] = useState<{\n top?: number\n left?: number\n }>()\n const paperRef = useRef(null)\n const { classes } = useStyles()\n\n const {\n menuItems,\n onMenuItemClick,\n open,\n onClose,\n anchorEl,\n top = false,\n } = props\n\n useEffect(() => {\n if (!open) {\n setSubMenuAnchorEl(undefined)\n setOpenSubMenuIdx(undefined)\n }\n }, [open])\n\n useEffect(() => {\n const shouldSubMenuBeOpen = open && Boolean(subMenuAnchorEl)\n let timer: ReturnType\n if (shouldSubMenuBeOpen && !isSubMenuOpen) {\n timer = setTimeout(() => {\n setIsSubMenuOpen(true)\n }, 300)\n } else if (!shouldSubMenuBeOpen && isSubMenuOpen) {\n timer = setTimeout(() => {\n setIsSubMenuOpen(false)\n }, 300)\n }\n return () => {\n clearTimeout(timer)\n }\n }, [isSubMenuOpen, open, subMenuAnchorEl])\n\n useEffect(() => {\n if (anchorEl) {\n const rect = (anchorEl as HTMLElement).getBoundingClientRect()\n if (position) {\n if (\n rect.top !== position.top ||\n rect.left + rect.width !== position.left\n ) {\n setPosition({ top: rect.top, left: rect.left + rect.width })\n }\n } else {\n setPosition({ top: rect.top, left: rect.left + rect.width })\n }\n } else if (!position) {\n setPosition({})\n }\n }, [position, anchorEl])\n\n const hasIcon = menuItems.some(\n menuItem => 'icon' in menuItem && menuItem.icon,\n )\n const menuItemStyle: MenuItemStyleProp = {}\n\n function handleClick(callback: (...args: any[]) => void) {\n return (event: React.MouseEvent) => {\n onMenuItemClick(event, callback)\n }\n }\n\n const ListContents = (\n <>\n \n {menuItems\n .sort((a, b) => (b.priority || 0) - (a.priority || 0))\n .map((menuItem, idx) => {\n if (menuItem.type === 'divider') {\n return (\n \n )\n }\n if (menuItem.type === 'subHeader') {\n return (\n \n {menuItem.label}\n \n )\n }\n let icon = null\n let endDecoration = null\n if (menuItem.icon) {\n const Icon = menuItem.icon\n icon = (\n \n \n \n )\n }\n if ('subMenu' in menuItem) {\n endDecoration = \n } else if (\n menuItem.type === 'checkbox' ||\n menuItem.type === 'radio'\n ) {\n endDecoration = (\n \n )\n }\n const onClick =\n 'onClick' in menuItem\n ? handleClick(menuItem.onClick)\n : undefined\n return (\n {\n if (e.currentTarget !== document.activeElement) {\n e.currentTarget.focus()\n setSelectedMenuItemIdx(idx)\n }\n if ('subMenu' in menuItem) {\n if (openSubMenuIdx !== idx) {\n setSubMenuAnchorEl(e.currentTarget)\n setOpenSubMenuIdx(idx)\n }\n } else {\n setSubMenuAnchorEl(undefined)\n setOpenSubMenuIdx(undefined)\n }\n }}\n onKeyDown={e => {\n switch (e.key) {\n case 'ArrowLeft':\n case 'Escape': {\n onClose?.(e, 'escapeKeyDown')\n\n break\n }\n case 'ArrowUp': {\n setSelectedMenuItemIdx(\n findPreviousValidIdx(menuItems, idx),\n )\n\n break\n }\n case 'ArrowDown': {\n const a = findNextValidIdx(menuItems, idx)\n setSelectedMenuItemIdx(a)\n\n break\n }\n default: {\n if (\n 'subMenu' in menuItem &&\n (e.key === 'ArrowRight' || e.key === 'Enter')\n ) {\n setSubMenuAnchorEl(e.currentTarget)\n setOpenSubMenuIdx(idx)\n setIsSubMenuOpen(true)\n }\n }\n }\n }}\n disabled={Boolean(menuItem.disabled)}\n >\n {icon}\n \n {endDecoration}\n \n )\n })}\n \n {menuItems.map((menuItem, idx) => {\n let subMenu = null\n if ('subMenu' in menuItem) {\n subMenu = (\n {\n setIsSubMenuOpen(false)\n setSubMenuAnchorEl(undefined)\n }}\n onMenuItemClick={onMenuItemClick}\n menuItems={menuItem.subMenu}\n />\n )\n }\n return subMenu\n })}\n \n )\n\n return top ? (\n ListContents\n ) : (\n // Grow is required for cascading sub-menus\n \n \n {ListContents}\n \n \n )\n },\n)\n\ninterface MenuProps extends PopoverProps {\n menuItems: MenuItem[]\n onMenuItemClick: (\n event: React.MouseEvent,\n callback: (...args: any[]) => void,\n ) => void\n}\n\nfunction Menu(props: MenuProps) {\n const { open, onClose, menuItems, onMenuItemClick, ...other } = props\n\n return (\n \n \n \n )\n}\n\nexport default Menu\n","import React, { useEffect, useState, useRef } from 'react'\nimport { makeStyles } from 'tss-react/mui'\n\nconst useStyles = makeStyles()({\n horizontalHandle: {\n cursor: 'row-resize',\n width: '100%',\n },\n verticalHandle: {\n cursor: 'col-resize',\n height: '100%',\n },\n flexbox_verticalHandle: {\n cursor: 'col-resize',\n alignSelf: 'stretch', // the height: 100% is actually unable to function inside flexbox\n },\n flexbox_horizontalHandle: {\n cursor: 'row-resize',\n alignSelf: 'stretch', // similar to above\n },\n})\n\nfunction ResizeHandle({\n onDrag,\n vertical = false,\n flexbox = false,\n className: originalClassName,\n onMouseDown,\n ...props\n}: {\n onDrag: (\n lastFrameDistance: number,\n totalDistance: number,\n ) => number | undefined\n onMouseDown?: (event: React.MouseEvent) => void\n vertical?: boolean\n flexbox?: boolean\n className?: string\n [props: string]: unknown\n}) {\n const [mouseDragging, setMouseDragging] = useState(false)\n const initialPosition = useRef(0)\n const prevPos = useRef(0)\n const { classes, cx } = useStyles()\n\n useEffect(() => {\n function mouseMove(event: MouseEvent) {\n event.preventDefault()\n const pos = vertical ? event.clientX : event.clientY\n const totalDistance = initialPosition.current - pos\n const lastFrameDistance = pos - prevPos.current\n prevPos.current = pos\n onDrag(lastFrameDistance, totalDistance)\n }\n\n function mouseUp() {\n setMouseDragging(false)\n }\n if (mouseDragging) {\n window.addEventListener('mousemove', mouseMove, true)\n window.addEventListener('mouseup', mouseUp, true)\n return () => {\n window.removeEventListener('mousemove', mouseMove, true)\n window.removeEventListener('mouseup', mouseUp, true)\n }\n }\n return () => {}\n }, [mouseDragging, onDrag, vertical])\n\n let className: string\n if (flexbox) {\n className = vertical\n ? classes.flexbox_verticalHandle\n : classes.flexbox_horizontalHandle\n } else if (vertical) {\n className = classes.verticalHandle\n } else {\n className = classes.horizontalHandle\n }\n\n return (\n {\n event.preventDefault()\n const pos = vertical ? event.clientX : event.clientY\n initialPosition.current = pos\n prevPos.current = pos\n setMouseDragging(true)\n onMouseDown?.(event)\n }}\n className={cx(className, originalClassName)}\n {...props}\n />\n )\n}\n\nexport default ResizeHandle\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { Button, DialogActions, DialogContent, Typography } from '@mui/material'\nimport Dialog from './Dialog'\n\nconst ReturnToImportFormDialog = observer(function ({\n model,\n handleClose,\n}: {\n model: { clearView: () => void }\n handleClose: () => void\n}) {\n return (\n \n \n \n Are you sure you want to return to the import form? This will lose\n your current view\n \n \n \n {\n model.clearView()\n handleClose()\n }}\n variant=\"contained\"\n color=\"primary\"\n autoFocus\n >\n OK\n \n {\n handleClose()\n }}\n color=\"secondary\"\n variant=\"contained\"\n >\n Cancel\n \n \n \n )\n})\n\nexport default ReturnToImportFormDialog\n","import React from 'react'\nimport escapeHTML from 'escape-html'\nimport dompurify from 'dompurify'\nimport { linkify } from '../util'\n\n// source https://github.com/sindresorhus/html-tags/blob/master/html-tags.json\n// with some random uncommon ones removed. note: we just use this to run the content\n// through dompurify without escaping if we see an htmlTag from this list\n// otherwise we escape angle brackets and things prematurely because it might be\n// something like in VCF. Ref #657\nconst htmlTags = [\n 'a',\n 'b',\n 'br',\n 'code',\n 'div',\n 'em',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'i',\n 'img',\n 'li',\n 'p',\n 'pre',\n 'span',\n 'small',\n 'strong',\n 'table',\n 'tbody',\n 'sup',\n 'sub',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'tr',\n 'u',\n 'ul',\n]\n\nlet added = false\n\n// adapted from is-html\n// https://github.com/sindresorhus/is-html/blob/master/index.js\nconst full = new RegExp(htmlTags.map(tag => `<${tag}\\\\b[^>]*>`).join('|'), 'i')\nfunction isHTML(str: string) {\n return full.test(str)\n}\n\n// note this is mocked during testing, see\n// packages/__mocks__/@jbrowse/core/ui/SanitizedHTML something about dompurify\n// behavior causes errors during tests, was seen in\n// products/jbrowse-web/src/tests/Connection.test.tsx test (can delete mock to\n// see)\n//\nexport default function SanitizedHTML({\n html: pre,\n className,\n}: {\n className?: string\n html: string\n}) {\n // try to add links to the text first\n const html = linkify(pre)\n const value = isHTML(html) ? html : escapeHTML(html)\n if (!added) {\n added = true\n // see https://github.com/cure53/DOMPurify/issues/317\n // only have to add this once, and can't do it globally because dompurify\n // not yet initialized at global scope\n dompurify.addHook(\n 'afterSanitizeAttributes',\n (node: {\n tagName: string\n setAttribute: (arg0: string, arg1: string) => void\n }) => {\n if (node.tagName === 'A') {\n node.setAttribute('rel', 'noopener noreferrer')\n node.setAttribute('target', '_blank')\n }\n },\n )\n }\n\n return (\n \n )\n}\n","import { blue, green, red, grey, orange } from '@mui/material/colors'\nimport { createTheme, ThemeOptions } from '@mui/material/styles'\nimport type {\n PaletteAugmentColorOptions,\n PaletteColor,\n} from '@mui/material/styles/createPalette'\nimport deepmerge from 'deepmerge'\n\ndeclare module '@mui/material/styles/createPalette' {\n interface Palette {\n tertiary: Palette['primary']\n quaternary: Palette['primary']\n highlight: Palette['primary']\n stopCodon?: string\n startCodon?: string\n bases: {\n A: Palette['primary']\n C: Palette['primary']\n G: Palette['primary']\n T: Palette['primary']\n }\n frames: [\n null,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n ]\n framesCDS: [\n null,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n ]\n }\n interface PaletteOptions {\n tertiary?: PaletteOptions['primary']\n quaternary?: PaletteOptions['primary']\n highlight?: PaletteOptions['primary']\n stopCodon?: string\n startCodon?: string\n bases?: {\n A?: PaletteOptions['primary']\n C?: PaletteOptions['primary']\n G?: PaletteOptions['primary']\n T?: PaletteOptions['primary']\n }\n framesCDS?: [\n null,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n ]\n frames?: [\n null,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n ]\n }\n}\n\ntype Frames = [\n null,\n PaletteColor,\n PaletteColor,\n PaletteColor,\n PaletteColor,\n PaletteColor,\n PaletteColor,\n]\n\nconst refTheme = createTheme()\nconst midnight = '#0D233F'\nconst grape = '#721E63'\nconst forest = refTheme.palette.augmentColor({ color: { main: '#135560' } })\nconst mandarin = refTheme.palette.augmentColor({ color: { main: '#FFB11D' } })\nconst bases = {\n A: refTheme.palette.augmentColor({ color: green }),\n C: refTheme.palette.augmentColor({ color: blue }),\n G: refTheme.palette.augmentColor({ color: orange }),\n T: refTheme.palette.augmentColor({ color: red }),\n}\nconst framesCDS = [\n null,\n refTheme.palette.augmentColor({ color: { main: '#FF8080' } }),\n refTheme.palette.augmentColor({ color: { main: '#80FF80' } }),\n refTheme.palette.augmentColor({ color: { main: '#8080FF' } }),\n refTheme.palette.augmentColor({ color: { main: '#8080FF' } }),\n refTheme.palette.augmentColor({ color: { main: '#80FF80' } }),\n refTheme.palette.augmentColor({ color: { main: '#FF8080' } }),\n] as Frames\nconst frames = [\n null,\n refTheme.palette.augmentColor({ color: { main: '#8f8f8f' } }),\n refTheme.palette.augmentColor({ color: { main: '#adadad' } }),\n refTheme.palette.augmentColor({ color: { main: '#d8d8d8' } }),\n refTheme.palette.augmentColor({ color: { main: '#d8d8d8' } }),\n refTheme.palette.augmentColor({ color: { main: '#adadad' } }),\n refTheme.palette.augmentColor({ color: { main: '#8f8f8f' } }),\n] as Frames\nconst stopCodon = '#e22'\nconst startCodon = '#3e3'\n\nfunction stockTheme() {\n return {\n palette: {\n mode: undefined,\n primary: { main: midnight },\n secondary: { main: grape },\n tertiary: forest,\n quaternary: mandarin,\n highlight: mandarin,\n stopCodon,\n startCodon,\n bases,\n frames,\n framesCDS,\n },\n components: {\n MuiLink: {\n styleOverrides: {\n // the default link color uses theme.palette.primary.main which is\n // very bad with dark mode+midnight primary\n root: ({ theme }) => ({\n color: theme.palette.tertiary.main,\n }),\n },\n },\n },\n } satisfies ThemeOptions\n}\n\nfunction getDefaultTheme() {\n return {\n ...stockTheme(),\n name: 'Default (from config)',\n }\n}\n\nfunction getLightStockTheme() {\n return {\n ...stockTheme(),\n name: 'Light (stock)',\n }\n}\n\nfunction getDarkStockTheme() {\n return {\n name: 'Dark (stock)',\n palette: {\n mode: 'dark',\n primary: { main: midnight },\n secondary: { main: grape },\n tertiary: forest,\n quaternary: mandarin,\n highlight: mandarin,\n stopCodon,\n startCodon,\n bases,\n frames,\n framesCDS,\n },\n components: {\n MuiAppBar: {\n defaultProps: {\n enableColorOnDark: true,\n },\n styleOverrides: {\n root: ({ theme }) => {\n return theme.palette.primary.main\n },\n },\n },\n },\n } satisfies ThemeOptions & { name: string }\n}\n\nfunction getDarkMinimalTheme() {\n return {\n name: 'Dark (minimal)',\n palette: {\n mode: 'dark' as const,\n primary: { main: grey[700] },\n secondary: { main: grey[800] },\n tertiary: refTheme.palette.augmentColor({ color: { main: grey[900] } }),\n quaternary: mandarin,\n highlight: mandarin,\n stopCodon,\n startCodon,\n bases,\n frames,\n framesCDS,\n },\n } satisfies ThemeOptions & { name: string }\n}\n\nfunction getMinimalTheme() {\n return {\n name: 'Light (minimal)',\n palette: {\n primary: { main: grey[900] },\n secondary: { main: grey[800] },\n tertiary: refTheme.palette.augmentColor({ color: { main: grey[900] } }),\n quaternary: mandarin,\n highlight: mandarin,\n stopCodon,\n startCodon,\n bases,\n frames,\n framesCDS,\n },\n } satisfies ThemeOptions & { name: string }\n}\n\nexport const defaultThemes = {\n default: getDefaultTheme(),\n lightStock: getLightStockTheme(),\n lightMinimal: getMinimalTheme(),\n darkMinimal: getDarkMinimalTheme(),\n darkStock: getDarkStockTheme(),\n} as ThemeMap\n\nfunction overwriteArrayMerge(_: unknown, sourceArray: unknown[]) {\n return sourceArray\n}\n\nexport function createJBrowseBaseTheme(theme?: ThemeOptions): ThemeOptions {\n const themeP: ThemeOptions = {\n palette: theme?.palette,\n typography: {\n fontSize: 12,\n },\n spacing: 4,\n components: {\n MuiButton: {\n defaultProps: {\n size: 'small' as const,\n },\n styleOverrides: {\n // the default button, especially when not using variant=contained,\n // uses theme.palette.primary.main for text which is very bad with\n // dark mode+midnight primary\n //\n // keeps text secondary for darkmode, uses\n // a text-like coloring to ensure contrast\n // xref https://stackoverflow.com/a/72546130/2129219\n root: ({ theme }) =>\n theme.palette.mode === 'dark'\n ? {\n color: theme.palette.text.primary,\n }\n : undefined,\n },\n },\n MuiAccordion: {\n defaultProps: {\n disableGutters: true,\n slotProps: {\n transition: {\n timeout: 150,\n unmountOnExit: true,\n },\n },\n },\n },\n MuiFilledInput: {\n defaultProps: {\n margin: 'dense' as const,\n },\n },\n MuiFormControl: {\n defaultProps: {\n margin: 'dense' as const,\n size: 'small' as const,\n },\n },\n MuiFormHelperText: {\n defaultProps: {\n margin: 'dense' as const,\n },\n },\n\n MuiIconButton: {\n defaultProps: {\n size: 'small' as const,\n },\n },\n MuiInputBase: {\n defaultProps: {\n margin: 'dense' as const,\n },\n },\n MuiAutocomplete: {\n defaultProps: {\n size: 'small' as const,\n },\n },\n MuiInputLabel: {\n defaultProps: {\n margin: 'dense' as const,\n },\n },\n MuiToolbar: {\n defaultProps: {\n variant: 'dense' as const,\n },\n },\n MuiListItem: {\n defaultProps: {\n dense: true,\n },\n },\n MuiOutlinedInput: {\n defaultProps: {\n margin: 'dense' as const,\n },\n },\n MuiFab: {\n defaultProps: {\n size: 'small' as const,\n },\n styleOverrides: {\n secondary: {\n // @ts-expect-error\n backgroundColor: theme?.palette?.quaternary?.main,\n },\n },\n },\n MuiTable: {\n defaultProps: {\n size: 'small' as const,\n },\n },\n MuiPopover: {\n defaultProps: {\n transitionDuration: 0,\n },\n },\n MuiMenu: {\n defaultProps: {\n transitionDuration: 0,\n },\n },\n MuiMenuItem: {\n defaultProps: {\n dense: true,\n },\n },\n\n MuiTextField: {\n defaultProps: {\n margin: 'dense' as const,\n variant: 'standard' as const,\n },\n },\n MuiLink: {\n styleOverrides: {\n // the default link color uses theme.palette.primary.main which is\n // very bad with dark mode+midnight primary\n root: ({ theme }) => ({\n color: theme.palette.text.secondary,\n }),\n },\n },\n MuiCheckbox: {\n styleOverrides: {\n // the default checkbox-when-checked color uses\n // theme.palette.primary.main which is very bad with dark\n // mode+midnight primary\n //\n // keeps the forest-green checkbox by default but for darkmode, uses\n // a text-like coloring to ensure contrast xref\n // https://stackoverflow.com/a/72546130/2129219\n root: ({ theme }) =>\n theme.palette.mode === 'dark'\n ? {\n color: theme.palette.text.secondary,\n '&.Mui-checked': {\n color: theme.palette.text.secondary,\n },\n }\n : undefined,\n },\n },\n MuiRadio: {\n styleOverrides: {\n // the default checkbox-when-checked color uses\n // theme.palette.primary.main which is very bad with dark\n // mode+midnight primary\n //\n // keeps the forest-green checkbox by default but for darkmode, uses\n // a text-like coloring to ensure contrast\n // xref https://stackoverflow.com/a/72546130/2129219\n root: ({ theme }) =>\n theme.palette.mode === 'dark'\n ? {\n color: theme.palette.text.secondary,\n '&.Mui-checked': {\n color: theme.palette.text.secondary,\n },\n }\n : undefined,\n },\n },\n MuiFormLabel: {\n styleOverrides: {\n // the default checkbox-when-checked color uses\n // theme.palette.primary.main which is very bad with dark\n // mode+midnight primary\n //\n // keeps the forest-green checkbox by default but for darkmode, uses\n // a text-like coloring to ensure contrast\n // xref https://stackoverflow.com/a/72546130/2129219\n //\n\n root: ({ theme }) =>\n theme.palette.mode === 'dark'\n ? {\n color: theme.palette.text.secondary,\n '&.Mui-focused': {\n color: theme.palette.text.secondary,\n },\n }\n : undefined,\n },\n },\n MuiAccordionSummary: {\n styleOverrides: {\n root: {\n // @ts-expect-error\n backgroundColor: theme?.palette?.tertiary?.main,\n },\n content: {\n // @ts-expect-error\n color: theme?.palette?.tertiary?.contrastText,\n },\n },\n },\n MuiToggleButtonGroup: {\n defaultProps: {\n size: 'small' as const,\n },\n },\n },\n }\n return deepmerge(themeP, theme || {}, { arrayMerge: overwriteArrayMerge })\n}\n\ntype ThemeMap = Record\n\nexport function createJBrowseTheme(\n configTheme: ThemeOptions = {},\n themes = defaultThemes,\n themeName = 'default',\n) {\n return createTheme(\n createJBrowseBaseTheme(\n themeName === 'default'\n ? deepmerge(themes.default!, augmentTheme(configTheme), {\n arrayMerge: overwriteArrayMerge,\n })\n : augmentThemePlus(themes[themeName]),\n ),\n )\n}\n\nfunction augmentTheme(theme: ThemeOptions = {}) {\n if (theme.palette?.tertiary) {\n theme = deepmerge(theme, {\n palette: {\n tertiary: refTheme.palette.augmentColor(\n 'color' in theme.palette.tertiary\n ? (theme.palette.tertiary as PaletteAugmentColorOptions)\n : { color: theme.palette.tertiary },\n ),\n },\n })\n }\n\n if (theme.palette?.quaternary) {\n theme = deepmerge(theme, {\n palette: {\n quaternary: refTheme.palette.augmentColor(\n 'color' in theme.palette.quaternary\n ? (theme.palette.quaternary as PaletteAugmentColorOptions)\n : { color: theme.palette.quaternary },\n ),\n },\n })\n }\n\n return theme\n}\n\n// creates some blank quaternary/tertiary colors if unsupplied by a user theme\nfunction augmentThemePlus(theme: ThemeOptions = {}) {\n theme = augmentTheme(theme)\n if (!theme.palette?.quaternary) {\n theme = deepmerge(theme, {\n palette: {\n quaternary: refTheme.palette.augmentColor({\n color: {\n main: '#aaa',\n },\n }),\n },\n })\n }\n if (!theme.palette?.tertiary) {\n theme = deepmerge(theme, {\n palette: {\n tertiary: refTheme.palette.augmentColor({\n color: {\n main: '#aaa',\n },\n }),\n },\n })\n }\n return theme\n}\n","import React, { useState, useEffect } from 'react'\nimport {\n TextField,\n MenuItem,\n InputProps as IIP,\n TextFieldProps as TFP,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { makeStyles } from 'tss-react/mui'\n\n// locals\nimport { getConf } from '../configuration'\nimport { useLocalStorage, AbstractSessionModel } from '../util'\n\nconst useStyles = makeStyles()({\n importFormEntry: {\n minWidth: 180,\n },\n})\n\nconst AssemblySelector = observer(function ({\n session,\n onChange,\n selected,\n InputProps,\n TextFieldProps,\n localStorageKey,\n helperText = 'Select assembly to view',\n}: {\n session: AbstractSessionModel\n helperText?: string\n onChange: (arg: string) => void\n selected?: string\n localStorageKey?: string\n InputProps?: IIP\n TextFieldProps?: TFP\n}) {\n const { classes } = useStyles()\n const { assemblyNames, assemblyManager } = session\n\n // constructs a localstorage key based on host/path/config to help\n // remember. non-config assists usage with e.g. embedded apps\n const config = new URLSearchParams(window.location.search).get('config')\n const [lastSelected, setLastSelected] =\n typeof jest === 'undefined' && localStorageKey\n ? useLocalStorage(\n `lastAssembly-${[\n window.location.host + window.location.pathname,\n config,\n localStorageKey,\n ].join('-')}`,\n selected,\n )\n : useState(selected)\n\n const selection = assemblyNames.includes(lastSelected || '')\n ? lastSelected\n : selected\n\n useEffect(() => {\n if (selection && selection !== selected) {\n onChange(selection)\n }\n }, [selection, onChange, selected])\n\n const error = assemblyNames.length ? '' : 'No configured assemblies'\n return (\n {\n setLastSelected(event.target.value)\n }}\n error={!!error}\n InputProps={InputProps}\n disabled={!!error}\n className={classes.importFormEntry}\n {...TextFieldProps}\n >\n {assemblyNames.map(name => {\n const assembly = assemblyManager.get(name)\n const displayName = assembly ? getConf(assembly, 'displayName') : ''\n return (\n \n {displayName || name}\n \n )\n })}\n \n )\n})\n\nexport default AssemblySelector\n","import React, { useCallback, useEffect, useState } from 'react'\nimport { observer } from 'mobx-react'\nimport {\n Box,\n FormHelperText,\n InputLabel,\n Menu,\n MenuItem,\n Tooltip,\n ToggleButtonGroup,\n ToggleButton,\n ToggleButtonProps,\n} from '@mui/material'\n\n// locals\nimport {\n FileLocation,\n AbstractRootModel,\n isUriLocation,\n isAppRootModel,\n} from '../../util/types'\nimport LocalFileChooser from './LocalFileChooser'\nimport UrlChooser from './UrlChooser'\nimport { notEmpty, useLocalStorage } from '../../util'\n\n// icons\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'\n\nconst NUM_SHOWN = 2\n\nfunction ToggleButtonWithTooltip(props: ToggleButtonProps) {\n const { title, children, ...other } = props\n return (\n \n {children}\n \n )\n}\n\nfunction shorten(str: string, len: number) {\n if (typeof str === 'string' && str.length > len) {\n return `${str.slice(0, Math.max(0, len))}…`\n }\n return str\n}\n\nconst FileSelector = observer(function (props: {\n location?: FileLocation\n setLocation: (param: FileLocation) => void\n setName?: (str: string) => void\n name?: string\n description?: string\n rootModel?: AbstractRootModel\n}) {\n const { location, name, description, rootModel, setLocation } = props\n const fileOrUrl = !location || isUriLocation(location) ? 'url' : 'file'\n const [toggleButtonValue, setToggleButtonValue] = useState(\n location && 'internetAccountId' in location && location.internetAccountId\n ? location.internetAccountId\n : fileOrUrl,\n )\n const accounts = isAppRootModel(rootModel)\n ? rootModel.internetAccounts.filter(\n f => f.type !== 'HTTPBasicInternetAccount',\n )\n : []\n\n const [recentlyUsedInternetAccounts, setRecentlyUsedInternetAccounts] =\n useLocalStorage('fileSelector-recentlyUsedInternetAccounts', [] as string[])\n\n const map = Object.fromEntries(accounts.map(a => [a.internetAccountId, a]))\n const arr = [...new Set(accounts.map(s => s.internetAccountId))].sort(\n (a, b) =>\n recentlyUsedInternetAccounts.indexOf(a) -\n recentlyUsedInternetAccounts.indexOf(b),\n )\n const shownAccounts = arr.slice(0, NUM_SHOWN)\n const hiddenAccounts = arr.slice(NUM_SHOWN)\n const [anchorEl, setAnchorEl] = useState(null)\n const selectedAccount = map[toggleButtonValue]\n\n const setLocationWithAccount = useCallback(\n (location: FileLocation) => {\n setLocation({\n ...location,\n ...(selectedAccount && isUriLocation(location)\n ? { internetAccountId: selectedAccount.internetAccountId }\n : {}),\n })\n },\n [setLocation, selectedAccount],\n )\n\n useEffect(() => {\n // if you swap account selection after inputting url\n if (\n selectedAccount &&\n isUriLocation(location) &&\n location.internetAccountId !== selectedAccount.internetAccountId\n ) {\n setLocationWithAccount(location)\n }\n }, [location, selectedAccount, setLocationWithAccount])\n\n let locationInput = (\n \n )\n if (toggleButtonValue === 'file') {\n locationInput = \n }\n if (selectedAccount?.SelectorComponent) {\n const { SelectorComponent } = selectedAccount\n locationInput = (\n \n )\n }\n\n return (\n <>\n \n {name}\n \n \n \n {\n setRecentlyUsedInternetAccounts([\n ...new Set(\n [newState, ...recentlyUsedInternetAccounts].filter(notEmpty),\n ),\n ])\n if (newState) {\n setToggleButtonValue(newState)\n }\n if (isUriLocation(location)) {\n setLocationWithAccount(location)\n }\n }}\n aria-label=\"file, url, or account picker\"\n >\n {new URLSearchParams(window.location.search).get(\n 'adminKey',\n ) ? null : (\n \n File\n \n )}\n \n URL\n \n {shownAccounts.map(id => {\n const { internetAccountId, name, toggleContents } = map[id]!\n return (\n \n {typeof toggleContents === 'string'\n ? shorten(toggleContents, 5)\n : toggleContents || shorten(name, 5)}\n \n )\n })}\n {hiddenAccounts.length > 0 ? (\n // @ts-expect-error\n {\n setAnchorEl(event.target as HTMLElement)\n }}\n selected={false}\n >\n More\n \n \n ) : null}\n \n\n {\n setAnchorEl(null)\n }}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\n transformOrigin={{ vertical: 'top', horizontal: 'center' }}\n >\n {hiddenAccounts.map(id => {\n const { internetAccountId, name } = map[id]!\n return (\n {\n setRecentlyUsedInternetAccounts([\n ...new Set(\n [\n internetAccountId,\n ...recentlyUsedInternetAccounts,\n ].filter(notEmpty),\n ),\n ])\n\n setToggleButtonValue(internetAccountId)\n setAnchorEl(null)\n }}\n >\n {name}\n \n )\n })}\n
\n \n \n {locationInput}\n {description}\n \n )\n})\n\nexport default FileSelector\n","import React, { useState, useRef, useEffect } from 'react'\nimport { drawImageOntoCanvasContext } from '../util/offscreenCanvasPonyfill'\n\nfunction PrerenderedCanvas(props: {\n width: number\n height: number\n highResolutionScaling?: number\n style?: any\n imageData?: any\n showSoftClip?: boolean\n blockKey?: string\n}) {\n const {\n width,\n height,\n highResolutionScaling = 1,\n style = {},\n imageData,\n blockKey,\n showSoftClip,\n } = props\n const [done, setDone] = useState(false)\n\n const featureCanvas = useRef(null)\n\n useEffect(() => {\n if (!imageData) {\n return\n }\n const canvas = featureCanvas.current\n if (!canvas) {\n return\n }\n const context = canvas.getContext('2d')\n if (!context) {\n return\n }\n drawImageOntoCanvasContext(imageData, context)\n setDone(true)\n }, [imageData])\n\n return (\n !!f)\n .join('_')}\n ref={featureCanvas}\n width={width * highResolutionScaling}\n height={height * highResolutionScaling}\n style={{ width, height, ...style }}\n />\n )\n}\n\nexport default PrerenderedCanvas\n","// vendored from quick-lru@6.1.1, didn't like being compiled as a 'pure-esm' nodejs dependency\n// the license is reproduced below https://github.com/sindresorhus/quick-lru/blob/main/license\n// MIT License\n\n// Copyright (c) Sindre Sorhus (https://sindresorhus.com)\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nexport default class QuickLRU extends Map {\n constructor(options = {}) {\n super()\n\n if (!(options.maxSize && options.maxSize > 0)) {\n throw new TypeError('`maxSize` must be a number greater than 0')\n }\n\n if (typeof options.maxAge === 'number' && options.maxAge === 0) {\n throw new TypeError('`maxAge` must be a number greater than 0')\n }\n\n // TODO: Use private class fields when ESLint supports them.\n this.maxSize = options.maxSize\n this.maxAge = options.maxAge || Number.POSITIVE_INFINITY\n this.onEviction = options.onEviction\n this.cache = new Map()\n this.oldCache = new Map()\n this._size = 0\n }\n\n // TODO: Use private class methods when targeting Node.js 16.\n _emitEvictions(cache) {\n if (typeof this.onEviction !== 'function') {\n return\n }\n\n for (const [key, item] of cache) {\n this.onEviction(key, item.value)\n }\n }\n\n _deleteIfExpired(key, item) {\n if (typeof item.expiry === 'number' && item.expiry <= Date.now()) {\n if (typeof this.onEviction === 'function') {\n this.onEviction(key, item.value)\n }\n\n return this.delete(key)\n }\n\n return false\n }\n\n _getOrDeleteIfExpired(key, item) {\n const deleted = this._deleteIfExpired(key, item)\n if (!deleted) {\n return item.value\n }\n }\n\n _getItemValue(key, item) {\n return item.expiry ? this._getOrDeleteIfExpired(key, item) : item.value\n }\n\n _peek(key, cache) {\n const item = cache.get(key)\n\n return this._getItemValue(key, item)\n }\n\n _set(key, value) {\n this.cache.set(key, value)\n this._size++\n\n if (this._size >= this.maxSize) {\n this._size = 0\n this._emitEvictions(this.oldCache)\n this.oldCache = this.cache\n this.cache = new Map()\n }\n }\n\n _moveToRecent(key, item) {\n this.oldCache.delete(key)\n this._set(key, item)\n }\n\n *_entriesAscending() {\n for (const item of this.oldCache) {\n const [key, value] = item\n if (!this.cache.has(key)) {\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield item\n }\n }\n }\n\n for (const item of this.cache) {\n const [key, value] = item\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield item\n }\n }\n }\n\n get(key) {\n if (this.cache.has(key)) {\n const item = this.cache.get(key)\n\n return this._getItemValue(key, item)\n }\n\n if (this.oldCache.has(key)) {\n const item = this.oldCache.get(key)\n if (!this._deleteIfExpired(key, item)) {\n this._moveToRecent(key, item)\n return item.value\n }\n }\n }\n\n set(key, value, { maxAge = this.maxAge } = {}) {\n const expiry =\n typeof maxAge === 'number' && maxAge !== Number.POSITIVE_INFINITY\n ? Date.now() + maxAge\n : undefined\n if (this.cache.has(key)) {\n this.cache.set(key, {\n value,\n expiry,\n })\n } else {\n this._set(key, { value, expiry })\n }\n }\n\n has(key) {\n if (this.cache.has(key)) {\n return !this._deleteIfExpired(key, this.cache.get(key))\n }\n\n if (this.oldCache.has(key)) {\n return !this._deleteIfExpired(key, this.oldCache.get(key))\n }\n\n return false\n }\n\n peek(key) {\n if (this.cache.has(key)) {\n return this._peek(key, this.cache)\n }\n\n if (this.oldCache.has(key)) {\n return this._peek(key, this.oldCache)\n }\n }\n\n delete(key) {\n const deleted = this.cache.delete(key)\n if (deleted) {\n this._size--\n }\n\n return this.oldCache.delete(key) || deleted\n }\n\n clear() {\n this.cache.clear()\n this.oldCache.clear()\n this._size = 0\n }\n\n resize(newSize) {\n if (!(newSize && newSize > 0)) {\n throw new TypeError('`maxSize` must be a number greater than 0')\n }\n\n const items = [...this._entriesAscending()]\n const removeCount = items.length - newSize\n if (removeCount < 0) {\n this.cache = new Map(items)\n this.oldCache = new Map()\n this._size = items.length\n } else {\n if (removeCount > 0) {\n this._emitEvictions(items.slice(0, removeCount))\n }\n\n this.oldCache = new Map(items.slice(removeCount))\n this.cache = new Map()\n this._size = 0\n }\n\n this.maxSize = newSize\n }\n\n *keys() {\n for (const [key] of this) {\n yield key\n }\n }\n\n *values() {\n for (const [, value] of this) {\n yield value\n }\n }\n\n *[Symbol.iterator]() {\n for (const item of this.cache) {\n const [key, value] = item\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield [key, value.value]\n }\n }\n\n for (const item of this.oldCache) {\n const [key, value] = item\n if (!this.cache.has(key)) {\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield [key, value.value]\n }\n }\n }\n }\n\n *entriesDescending() {\n let items = [...this.cache]\n for (let i = items.length - 1; i >= 0; --i) {\n const item = items[i]\n const [key, value] = item\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield [key, value.value]\n }\n }\n\n items = [...this.oldCache]\n for (let i = items.length - 1; i >= 0; --i) {\n const item = items[i]\n const [key, value] = item\n if (!this.cache.has(key)) {\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield [key, value.value]\n }\n }\n }\n }\n\n *entriesAscending() {\n for (const [key, value] of this._entriesAscending()) {\n yield [key, value.value]\n }\n }\n\n get size() {\n if (!this._size) {\n return this.oldCache.size\n }\n\n let oldCacheSize = 0\n for (const key of this.oldCache.keys()) {\n if (!this.cache.has(key)) {\n oldCacheSize++\n }\n }\n\n return Math.min(this._size + oldCacheSize, this.maxSize)\n }\n\n entries() {\n return this.entriesAscending()\n }\n\n forEach(callbackFunction, thisArgument = this) {\n for (const [key, value] of this.entriesAscending()) {\n callbackFunction.call(thisArgument, value, key, this)\n }\n }\n\n get [Symbol.toStringTag]() {\n return JSON.stringify([...this.entriesAscending()])\n }\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport isObject from 'is-object'\nimport PluginManager from '../PluginManager'\nimport type { Buffer } from 'buffer'\nimport {\n addDisposer,\n getParent,\n getSnapshot,\n getEnv as getEnvMST,\n isAlive,\n isStateTreeNode,\n hasParent,\n IAnyStateTreeNode,\n IStateTreeNode,\n Instance,\n} from 'mobx-state-tree'\nimport { reaction, IReactionPublic, IReactionOptions } from 'mobx'\nimport { Feature } from './simpleFeature'\nimport {\n isSessionModel,\n isDisplayModel,\n isViewModel,\n isTrackModel,\n AssemblyManager,\n Region,\n TypeTestedByPredicate,\n} from './types'\nimport type { Region as MUIRegion } from './types/mst'\nimport { isAbortException, checkAbortSignal } from './aborting'\nimport { BaseBlock } from './blockTypes'\nimport { isUriLocation } from './types'\n\n// has to be the full path and not the relative path to get the jest mock\nimport useMeasure from '@jbrowse/core/util/useMeasure'\nimport { colord } from './colord'\n// eslint-disable-next-line react/no-deprecated\nimport { flushSync, render } from 'react-dom'\nexport * from './types'\nexport * from './aborting'\nexport * from './when'\nexport * from './range'\nexport * from './dedupe'\n\nexport * from './offscreenCanvasPonyfill'\nexport * from './offscreenCanvasUtils'\n\nexport function useDebounce(value: T, delay: number) {\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const handle = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n return () => {\n clearTimeout(handle)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n\n// used in ViewContainer files to get the width\nexport function useWidthSetter(\n view: { setWidth: (arg: number) => void },\n padding: string,\n) {\n const [ref, { width }] = useMeasure()\n useEffect(() => {\n if (width && isAlive(view)) {\n // sets after a requestAnimationFrame\n // https://stackoverflow.com/a/58701523/2129219\n // avoids ResizeObserver loop error being shown during development\n requestAnimationFrame(() => {\n view.setWidth(width - Number.parseInt(padding, 10) * 2)\n })\n }\n }, [padding, view, width])\n return ref\n}\n\n// https://stackoverflow.com/questions/56283920/\nexport function useDebouncedCallback(\n callback: (...args: T[]) => void,\n wait = 400,\n) {\n // track args & timeout handle between calls\n const argsRef = useRef()\n const timeout = useRef>()\n\n // make sure our timeout gets cleared if our consuming component gets\n // unmounted\n useEffect(() => {\n if (timeout.current) {\n clearTimeout(timeout.current)\n }\n }, [])\n\n return function debouncedCallback(...args: T[]) {\n // capture latest args\n argsRef.current = args\n\n // clear debounce timer\n if (timeout.current) {\n clearTimeout(timeout.current)\n }\n\n // start waiting again\n timeout.current = setTimeout(() => {\n if (argsRef.current) {\n callback(...argsRef.current)\n }\n }, wait)\n }\n}\n\n/**\n * find the first node in the hierarchy that matches the given predicate\n */\nexport function findParentThat(\n node: IAnyStateTreeNode,\n predicate: (thing: IAnyStateTreeNode) => boolean,\n) {\n if (!hasParent(node)) {\n throw new Error('node does not have parent')\n }\n let currentNode: IAnyStateTreeNode | undefined = getParent(node)\n while (currentNode && isAlive(currentNode)) {\n if (predicate(currentNode)) {\n return currentNode\n }\n if (hasParent(currentNode)) {\n currentNode = getParent(currentNode)\n } else {\n break\n }\n }\n throw new Error('no matching node found')\n}\n\ninterface Animation {\n lastPosition: number\n lastTime?: number\n lastVelocity?: number\n}\n\n// based on https://github.com/react-spring/react-spring/blob/cd5548a987383b8023efd620f3726a981f9e18ea/src/animated/FrameLoop.ts\nexport function springAnimate(\n fromValue: number,\n toValue: number,\n setValue: (value: number) => void,\n onFinish = () => {},\n precision = 0,\n tension = 400,\n friction = 20,\n clamp = true,\n) {\n const mass = 1\n if (!precision) {\n precision = Math.abs(toValue - fromValue) / 1000\n }\n\n let animationFrameId: number\n\n function update(animation: Animation) {\n const time = Date.now()\n let position = animation.lastPosition\n let lastTime = animation.lastTime || time\n let velocity = animation.lastVelocity || 0\n // If we lost a lot of frames just jump to the end.\n if (time > lastTime + 64) {\n lastTime = time\n }\n // http://gafferongames.com/game-physics/fix-your-timestep/\n const numSteps = Math.floor(time - lastTime)\n for (let i = 0; i < numSteps; ++i) {\n const force = -tension * (position - toValue)\n const damping = -friction * velocity\n const acceleration = (force + damping) / mass\n velocity += (acceleration * 1) / 1000\n position += (velocity * 1) / 1000\n }\n const isVelocity = Math.abs(velocity) <= precision\n const isDisplacement =\n tension !== 0 ? Math.abs(toValue - position) <= precision : true\n const isOvershooting =\n clamp && tension !== 0\n ? fromValue < toValue\n ? position > toValue\n : position < toValue\n : false\n const endOfAnimation = isOvershooting || (isVelocity && isDisplacement)\n if (endOfAnimation) {\n setValue(toValue)\n onFinish()\n } else {\n setValue(position)\n animationFrameId = requestAnimationFrame(() => {\n update({\n lastPosition: position,\n lastTime: time,\n lastVelocity: velocity,\n })\n })\n }\n }\n\n return [\n () => {\n update({ lastPosition: fromValue })\n },\n () => {\n cancelAnimationFrame(animationFrameId)\n },\n ]\n}\n\n/**\n * find the first node in the hierarchy that matches the given 'is' typescript\n * type guard predicate\n */\nexport function findParentThatIs boolean>(\n node: IAnyStateTreeNode,\n predicate: T,\n): TypeTestedByPredicate {\n return findParentThat(node, predicate)\n}\n\n/**\n * get the current JBrowse session model, starting at any node in the state\n * tree\n */\nexport function getSession(node: IAnyStateTreeNode) {\n try {\n return findParentThatIs(node, isSessionModel)\n } catch (e) {\n throw new Error('no session model found!')\n }\n}\n\n/**\n * get the state model of the view in the state tree that contains the given\n * node\n */\nexport function getContainingView(node: IAnyStateTreeNode) {\n try {\n return findParentThatIs(node, isViewModel)\n } catch (e) {\n throw new Error('no containing view found')\n }\n}\n\n/**\n * get the state model of the view in the state tree that contains the given\n * node\n */\nexport function getContainingTrack(node: IAnyStateTreeNode) {\n try {\n return findParentThatIs(node, isTrackModel)\n } catch (e) {\n throw new Error('no containing track found')\n }\n}\n\n/**\n * get the state model of the display in the state tree that contains the given\n * node\n */\nexport function getContainingDisplay(node: IAnyStateTreeNode) {\n try {\n return findParentThatIs(node, isDisplayModel)\n } catch (e) {\n throw new Error('no containing display found')\n }\n}\n\n/**\n * Assemble a 1-based \"locString\" from an interbase genomic location\n * @param region - Region\n * @example\n * ```ts\n * assembleLocString({ refName: 'chr1', start: 0, end: 100 })\n * // ↳ 'chr1:1..100'\n * ```\n * @example\n * ```ts\n * assembleLocString({ assemblyName: 'hg19', refName: 'chr1', start: 0, end: 100 })\n * // ↳ '{hg19}chr1:1..100'\n * ```\n * @example\n * ```ts\n * assembleLocString({ refName: 'chr1' })\n * // ↳ 'chr1'\n * ```\n * @example\n * ```ts\n * assembleLocString({ refName: 'chr1', start: 0 })\n * // ↳ 'chr1:1..'\n * ```\n * @example\n * ```ts\n * assembleLocString({ refName: 'chr1', end: 100 })\n * // ↳ 'chr1:1..100'\n * ```\n * @example\n * ```ts\n * assembleLocString({ refName: 'chr1', start: 0, end: 1 })\n * // ↳ 'chr1:1'\n * ```\n */\nexport function assembleLocString(region: ParsedLocString) {\n return assembleLocStringFast(region, toLocale)\n}\n\n// same as assembleLocString above, but does not perform toLocaleString which\n// can slow down the speed of block calculations which use assembleLocString\n// for block.key\nexport function assembleLocStringFast(\n region: ParsedLocString,\n cb = (n: number): string | number => n,\n) {\n const { assemblyName, refName, start, end, reversed } = region\n const assemblyNameString = assemblyName ? `{${assemblyName}}` : ''\n let startString: string\n if (start !== undefined) {\n startString = `:${cb(start + 1)}`\n } else if (end !== undefined) {\n startString = ':1'\n } else {\n startString = ''\n }\n let endString: string\n if (end !== undefined) {\n endString = start !== undefined && start + 1 === end ? '' : `..${cb(end)}`\n } else {\n endString = start !== undefined ? '..' : ''\n }\n let rev = ''\n if (reversed) {\n rev = '[rev]'\n }\n return `${assemblyNameString}${refName}${startString}${endString}${rev}`\n}\n\nexport interface ParsedLocString {\n assemblyName?: string\n refName: string\n start?: number\n end?: number\n reversed?: boolean\n}\n\nexport function parseLocStringOneBased(\n locString: string,\n isValidRefName: (refName: string, assemblyName?: string) => boolean,\n): ParsedLocString {\n if (!locString) {\n throw new Error('no location string provided, could not parse')\n }\n let reversed = false\n if (locString.endsWith('[rev]')) {\n reversed = true\n locString = locString.replace(/\\[rev]$/, '')\n }\n // remove any whitespace\n locString = locString.replace(/\\s/, '')\n // refNames can have colons, refer to\n // https://samtools.github.io/hts-specs/SAMv1.pdf Appendix A\n const assemblyMatch = /({(.+)})?(.+)/.exec(locString)\n if (!assemblyMatch) {\n throw new Error(`invalid location string: \"${locString}\"`)\n }\n const [, , assemblyName2, location2] = assemblyMatch\n const assemblyName = assemblyName2!\n const location = location2!\n if (!assemblyName && location.startsWith('{}')) {\n throw new Error(`no assembly name was provided in location \"${location}\"`)\n }\n const lastColonIdx = location.lastIndexOf(':')\n if (lastColonIdx === -1) {\n if (isValidRefName(location, assemblyName)) {\n return {\n assemblyName,\n refName: location,\n reversed,\n }\n }\n throw new Error(`Unknown reference sequence \"${location}\"`)\n }\n const prefix = location.slice(0, lastColonIdx)\n const suffix = location.slice(lastColonIdx + 1)\n if (\n isValidRefName(prefix, assemblyName) &&\n isValidRefName(location, assemblyName)\n ) {\n throw new Error(`ambiguous location string: \"${locString}\"`)\n } else if (isValidRefName(prefix, assemblyName)) {\n if (suffix) {\n // see if it's a range\n const rangeMatch =\n /^(-?(\\d+|\\d{1,3}(,\\d{3})*))(\\.\\.|-)(-?(\\d+|\\d{1,3}(,\\d{3})*))$/.exec(\n suffix,\n )\n // see if it's a single point\n const singleMatch = /^(-?(\\d+|\\d{1,3}(,\\d{3})*))(\\.\\.|-)?$/.exec(suffix)\n if (rangeMatch) {\n const [, start, , , , end] = rangeMatch\n if (start !== undefined && end !== undefined) {\n return {\n assemblyName,\n refName: prefix,\n start: +start.replaceAll(',', ''),\n end: +end.replaceAll(',', ''),\n reversed,\n }\n }\n } else if (singleMatch) {\n const [, start, , , separator] = singleMatch\n if (start !== undefined) {\n if (separator) {\n // indefinite end\n return {\n assemblyName,\n refName: prefix,\n start: +start.replaceAll(',', ''),\n reversed,\n }\n }\n return {\n assemblyName,\n refName: prefix,\n start: +start.replaceAll(',', ''),\n end: +start.replaceAll(',', ''),\n reversed,\n }\n }\n } else {\n throw new Error(\n `could not parse range \"${suffix}\" on location \"${locString}\"`,\n )\n }\n } else {\n return {\n assemblyName,\n refName: prefix,\n reversed,\n }\n }\n } else if (isValidRefName(location, assemblyName)) {\n return {\n assemblyName,\n refName: location,\n reversed,\n }\n }\n throw new Error(`unknown reference sequence name in location \"${locString}\"`)\n}\n\n/**\n * Parse a 1-based location string into an interbase genomic location\n * @param locString - Location string\n * @param isValidRefName - Function that checks if a refName exists in the set\n * of all known refNames, or in the set of refNames for an assembly if\n * assemblyName is given\n * @example\n * ```ts\n * parseLocString('chr1:1..100', isValidRefName)\n * // ↳ { refName: 'chr1', start: 0, end: 100 }\n * ```\n * @example\n * ```ts\n * parseLocString('chr1:1-100', isValidRefName)\n * // ↳ { refName: 'chr1', start: 0, end: 100 }\n * ```\n * @example\n * ```ts\n * parseLocString(`{hg19}chr1:1..100`, isValidRefName)\n * // ↳ { assemblyName: 'hg19', refName: 'chr1', start: 0, end: 100 }\n * ```\n * @example\n * ```ts\n * parseLocString('chr1', isValidRefName)\n * // ↳ { refName: 'chr1' }\n * ```\n * @example\n * ```ts\n * parseLocString('chr1:1', isValidRefName)\n * // ↳ { refName: 'chr1', start: 0, end: 1 }\n * ```\n * @example\n * ```ts\n * parseLocString('chr1:1..', isValidRefName)\n * // ↳ { refName: 'chr1', start: 0}\n * ```\n */\nexport function parseLocString(\n locString: string,\n isValidRefName: (refName: string, assemblyName?: string) => boolean,\n) {\n const parsed = parseLocStringOneBased(locString, isValidRefName)\n if (typeof parsed.start === 'number') {\n parsed.start -= 1\n }\n return parsed\n}\n\nexport function compareLocs(locA: ParsedLocString, locB: ParsedLocString) {\n const assemblyComp =\n locA.assemblyName || locB.assemblyName\n ? (locA.assemblyName || '').localeCompare(locB.assemblyName || '')\n : 0\n if (assemblyComp) {\n return assemblyComp\n }\n\n const refComp =\n locA.refName || locB.refName\n ? (locA.refName || '').localeCompare(locB.refName || '')\n : 0\n if (refComp) {\n return refComp\n }\n\n if (locA.start !== undefined && locB.start !== undefined) {\n const startComp = locA.start - locB.start\n if (startComp) {\n return startComp\n }\n }\n if (locA.end !== undefined && locB.end !== undefined) {\n const endComp = locA.end - locB.end\n if (endComp) {\n return endComp\n }\n }\n return 0\n}\n\nexport function compareLocStrings(\n a: string,\n b: string,\n isValidRefName: (refName: string, assemblyName?: string) => boolean,\n) {\n const locA = parseLocString(a, isValidRefName)\n const locB = parseLocString(b, isValidRefName)\n return compareLocs(locA, locB)\n}\n\n/**\n * Ensure that a number is at least min and at most max.\n *\n * @param num -\n * @param min -\n * @param max -\n */\nexport function clamp(num: number, min: number, max: number) {\n if (num < min) {\n return min\n }\n if (num > max) {\n return max\n }\n return num\n}\n\nfunction roundToNearestPointOne(num: number) {\n return Math.round(num * 10) / 10\n}\n\n/**\n * @param bp -\n * @param region -\n * @param bpPerPx -\n */\nexport function bpToPx(\n bp: number,\n {\n reversed,\n end = 0,\n start = 0,\n }: { start?: number; end?: number; reversed?: boolean },\n bpPerPx: number,\n) {\n return roundToNearestPointOne((reversed ? end - bp : bp - start) / bpPerPx)\n}\n\nconst oneEightyOverPi = 180 / Math.PI\nconst piOverOneEighty = Math.PI / 180\nexport function radToDeg(radians: number) {\n return (radians * oneEightyOverPi) % 360\n}\nexport function degToRad(degrees: number) {\n return (degrees * piOverOneEighty) % (2 * Math.PI)\n}\n\n/**\n * @returns [x, y]\n */\nexport function polarToCartesian(rho: number, theta: number) {\n return [rho * Math.cos(theta), rho * Math.sin(theta)] as [number, number]\n}\n\n/**\n * @param x - the x\n * @param y - the y\n * @returns [rho, theta]\n */\nexport function cartesianToPolar(x: number, y: number) {\n const rho = Math.sqrt(x * x + y * y)\n const theta = Math.atan(y / x)\n return [rho, theta] as [number, number]\n}\n\nexport function featureSpanPx(\n feature: Feature,\n region: { start: number; end: number; reversed?: boolean },\n bpPerPx: number,\n): [number, number] {\n return bpSpanPx(feature.get('start'), feature.get('end'), region, bpPerPx)\n}\n\nexport function bpSpanPx(\n leftBp: number,\n rightBp: number,\n region: { start: number; end: number; reversed?: boolean },\n bpPerPx: number,\n): [number, number] {\n const start = bpToPx(leftBp, region, bpPerPx)\n const end = bpToPx(rightBp, region, bpPerPx)\n return region.reversed ? [end, start] : [start, end]\n}\n\n// do an array map of an iterable\nexport function iterMap(\n iter: Iterable,\n func: (arg: T) => U,\n sizeHint?: number,\n) {\n const results = Array.from({ length: sizeHint || 0 })\n let counter = 0\n for (const item of iter) {\n results[counter] = func(item)\n counter += 1\n }\n return results\n}\n\n/**\n * Returns the index of the last element in the array where predicate is true,\n * and -1 otherwise.\n * Based on https://stackoverflow.com/a/53187807\n *\n * @param array - The source array to search in\n *\n * @param predicate - find calls predicate once for each element of the array, in\n * descending order, until it finds one where predicate returns true.\n *\n * @returns findLastIndex returns element index where predicate is true.\n * Otherwise, findLastIndex returns -1.\n */\nexport function findLastIndex(\n array: T[],\n predicate: (value: T, index: number, obj: T[]) => boolean,\n): number {\n let l = array.length\n while (l--) {\n if (predicate(array[l]!, l, array)) {\n return l\n }\n }\n return -1\n}\n\nexport function findLast(\n array: T[],\n predicate: (value: T, index: number, obj: T[]) => boolean,\n): T | undefined {\n let l = array.length\n while (l--) {\n if (predicate(array[l]!, l, array)) {\n return array[l]\n }\n }\n return undefined\n}\n\n/**\n * makes a mobx reaction with the given functions, that calls actions on the\n * model for each stage of execution, and to abort the reaction function when\n * the model is destroyed.\n *\n * Will call startedFunction(signal), successFunction(result), and\n * errorFunction(error) when the async reaction function starts, completes, and\n * errors respectively.\n *\n * @param self -\n * @param dataFunction -\n * @param asyncReactionFunction -\n * @param reactionOptions -\n * @param startedFunction -\n * @param successFunction -\n * @param errorFunction -\n */\nexport function makeAbortableReaction(\n self: T,\n dataFunction: (arg: T) => U,\n asyncReactionFunction: (\n arg: U | undefined,\n signal: AbortSignal,\n model: T,\n handle: IReactionPublic,\n ) => Promise,\n // @ts-expect-error\n reactionOptions: IReactionOptions,\n startedFunction: (aborter: AbortController) => void,\n successFunction: (arg: V) => void,\n errorFunction: (err: unknown) => void,\n) {\n let inProgress: AbortController | undefined\n\n function handleError(error: unknown) {\n if (!isAbortException(error)) {\n if (isAlive(self)) {\n errorFunction(error)\n } else {\n console.error(error)\n }\n }\n }\n\n addDisposer(\n self,\n reaction(\n () => {\n try {\n return dataFunction(self)\n } catch (e) {\n handleError(e)\n return undefined\n }\n },\n async (data, mobxReactionHandle) => {\n if (inProgress && !inProgress.signal.aborted) {\n inProgress.abort()\n }\n\n if (!isAlive(self)) {\n return\n }\n inProgress = new AbortController()\n\n const thisInProgress = inProgress\n startedFunction(thisInProgress)\n try {\n const result = await asyncReactionFunction(\n data,\n thisInProgress.signal,\n self,\n // @ts-expect-error\n mobxReactionHandle,\n )\n checkAbortSignal(thisInProgress.signal)\n if (isAlive(self)) {\n successFunction(result)\n }\n } catch (e) {\n if (!thisInProgress.signal.aborted) {\n thisInProgress.abort()\n }\n handleError(e)\n }\n },\n reactionOptions,\n ),\n )\n addDisposer(self, () => {\n if (inProgress && !inProgress.signal.aborted) {\n inProgress.abort()\n }\n })\n}\n\nexport function renameRegionIfNeeded(\n refNameMap: Record | undefined,\n region: Region | Instance,\n): Region & { originalRefName?: string } {\n if (isStateTreeNode(region) && !isAlive(region)) {\n return region\n }\n\n if (refNameMap?.[region.refName]) {\n // clone the region so we don't modify it\n region = isStateTreeNode(region)\n ? { ...getSnapshot(region) }\n : { ...region }\n\n // modify it directly in the container\n const newRef = refNameMap[region.refName]\n if (newRef) {\n return { ...region, refName: newRef, originalRefName: region.refName }\n }\n }\n return region\n}\n\nexport async function renameRegionsIfNeeded<\n ARGTYPE extends {\n assemblyName?: string\n regions?: Region[]\n signal?: AbortSignal\n adapterConfig: Record\n sessionId: string\n statusCallback?: (arg: string) => void\n },\n>(assemblyManager: AssemblyManager, args: ARGTYPE) {\n const { regions = [], adapterConfig } = args\n if (!args.sessionId) {\n throw new Error('sessionId is required')\n }\n\n const assemblyNames = regions.map(region => region.assemblyName)\n const assemblyMaps = Object.fromEntries(\n await Promise.all(\n [...new Set(assemblyNames)].map(async assemblyName => {\n return [\n assemblyName,\n await assemblyManager.getRefNameMapForAdapter(\n adapterConfig,\n assemblyName,\n args,\n ),\n ]\n }),\n ),\n )\n\n return {\n ...args,\n regions: regions.map((region, i) =>\n // note: uses assemblyNames defined above since region could be dead now\n renameRegionIfNeeded(assemblyMaps[assemblyNames[i]!], region),\n ),\n }\n}\n\nexport function minmax(a: number, b: number) {\n return [Math.min(a, b), Math.max(a, b)] as const\n}\n\nexport function shorten(name: string, max = 70, short = 30) {\n return name.length > max\n ? `${name.slice(0, short)}...${name.slice(-short)}`\n : name\n}\n\nexport function stringify(\n {\n refName,\n coord,\n assemblyName,\n oob,\n }: {\n assemblyName?: string\n coord: number\n refName?: string\n oob?: boolean\n },\n useAssemblyName?: boolean,\n) {\n return [\n assemblyName && useAssemblyName ? `{${assemblyName}}` : '',\n refName\n ? `${shorten(refName)}:${toLocale(coord)}${oob ? ' (out of bounds)' : ''}`\n : '',\n ].join('')\n}\n\n// this is recommended in a later comment in\n// https://github.com/electron/electron/issues/2288 for detecting electron in a\n// renderer process, which is the one that has node enabled for us\n//\n// const isElectron = process.versions.electron\n// const i2 = process.versions.hasOwnProperty('electron')\nexport const isElectron = /electron/i.test(\n typeof navigator !== 'undefined' ? navigator.userAgent : '',\n)\n\nexport function revcom(seqString: string) {\n return reverse(complement(seqString))\n}\n\nexport function reverse(seqString: string) {\n return seqString.split('').reverse().join('')\n}\n\nexport const complement = (() => {\n const complementRegex = /[ACGT]/gi\n\n // from bioperl: tr/acgtrymkswhbvdnxACGTRYMKSWHBVDNX/tgcayrkmswdvbhnxTGCAYRKMSWDVBHNX/\n // generated with:\n // perl -MJSON -E '@l = split \"\",\"acgtrymkswhbvdnxACGTRYMKSWHBVDNX\"; print to_json({ map { my $in = $_; tr/acgtrymkswhbvdnxACGTRYMKSWHBVDNX/tgcayrkmswdvbhnxTGCAYRKMSWDVBHNX/; $in => $_ } @l})'\n const complementTable = {\n S: 'S',\n w: 'w',\n T: 'A',\n r: 'y',\n a: 't',\n N: 'N',\n K: 'M',\n x: 'x',\n d: 'h',\n Y: 'R',\n V: 'B',\n y: 'r',\n M: 'K',\n h: 'd',\n k: 'm',\n C: 'G',\n g: 'c',\n t: 'a',\n A: 'T',\n n: 'n',\n W: 'W',\n X: 'X',\n m: 'k',\n v: 'b',\n B: 'V',\n s: 's',\n H: 'D',\n c: 'g',\n D: 'H',\n b: 'v',\n R: 'Y',\n G: 'C',\n } as Record\n\n return (seqString: string) => {\n return seqString.replaceAll(complementRegex, m => complementTable[m] || '')\n }\n})()\n\n// requires immediate execution in jest environment, because (hypothesis) it\n// otherwise listens for prerendered_canvas but reads empty pixels, and doesn't\n// get the contents of the canvas\nexport const rIC =\n typeof jest === 'undefined'\n ? // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n typeof window !== 'undefined' && window.requestIdleCallback\n ? window.requestIdleCallback\n : (cb: () => void) =>\n setTimeout(() => {\n cb()\n }, 1)\n : (cb: () => void) => {\n cb()\n }\n\n// prettier-ignore\nconst widths = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2796875,0.2765625,0.3546875,0.5546875,0.5546875,0.8890625,0.665625,0.190625,0.3328125,0.3328125,0.3890625,0.5828125,0.2765625,0.3328125,0.2765625,0.3015625,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.2765625,0.2765625,0.584375,0.5828125,0.584375,0.5546875,1.0140625,0.665625,0.665625,0.721875,0.721875,0.665625,0.609375,0.7765625,0.721875,0.2765625,0.5,0.665625,0.5546875,0.8328125,0.721875,0.7765625,0.665625,0.7765625,0.721875,0.665625,0.609375,0.721875,0.665625,0.94375,0.665625,0.665625,0.609375,0.2765625,0.3546875,0.2765625,0.4765625,0.5546875,0.3328125,0.5546875,0.5546875,0.5,0.5546875,0.5546875,0.2765625,0.5546875,0.5546875,0.221875,0.240625,0.5,0.221875,0.8328125,0.5546875,0.5546875,0.5546875,0.5546875,0.3328125,0.5,0.2765625,0.5546875,0.5,0.721875,0.5,0.5,0.5,0.3546875,0.259375,0.353125,0.5890625]\n\n// xref https://gist.github.com/tophtucker/62f93a4658387bb61e4510c37e2e97cf\nexport function measureText(str: unknown, fontSize = 10) {\n const avg = 0.5279276315789471\n const s = String(str)\n let total = 0\n for (let i = 0; i < s.length; i++) {\n const code = s.charCodeAt(i)\n total += widths[code] ?? avg\n }\n return total * fontSize\n}\n\nexport type Frame = 1 | 2 | 3 | -1 | -2 | -3\n\nexport function getFrame(\n start: number,\n end: number,\n strand: 1 | -1,\n phase: 0 | 1 | 2,\n): Frame {\n return strand === 1\n ? ((((start + phase) % 3) + 1) as 1 | 2 | 3)\n : ((-1 * ((end - phase) % 3) - 1) as -1 | -2 | -3)\n}\n\nexport const defaultStarts = ['ATG']\nexport const defaultStops = ['TAA', 'TAG', 'TGA']\nexport const defaultCodonTable = {\n TCA: 'S',\n TCC: 'S',\n TCG: 'S',\n TCT: 'S',\n TTC: 'F',\n TTT: 'F',\n TTA: 'L',\n TTG: 'L',\n TAC: 'Y',\n TAT: 'Y',\n TAA: '*',\n TAG: '*',\n TGC: 'C',\n TGT: 'C',\n TGA: '*',\n TGG: 'W',\n CTA: 'L',\n CTC: 'L',\n CTG: 'L',\n CTT: 'L',\n CCA: 'P',\n CCC: 'P',\n CCG: 'P',\n CCT: 'P',\n CAC: 'H',\n CAT: 'H',\n CAA: 'Q',\n CAG: 'Q',\n CGA: 'R',\n CGC: 'R',\n CGG: 'R',\n CGT: 'R',\n ATA: 'I',\n ATC: 'I',\n ATT: 'I',\n ATG: 'M',\n ACA: 'T',\n ACC: 'T',\n ACG: 'T',\n ACT: 'T',\n AAC: 'N',\n AAT: 'N',\n AAA: 'K',\n AAG: 'K',\n AGC: 'S',\n AGT: 'S',\n AGA: 'R',\n AGG: 'R',\n GTA: 'V',\n GTC: 'V',\n GTG: 'V',\n GTT: 'V',\n GCA: 'A',\n GCC: 'A',\n GCG: 'A',\n GCT: 'A',\n GAC: 'D',\n GAT: 'D',\n GAA: 'E',\n GAG: 'E',\n GGA: 'G',\n GGC: 'G',\n GGG: 'G',\n GGT: 'G',\n}\n\n/**\n * take CodonTable above and generate larger codon table that includes all\n * permutations of upper and lower case nucleotides\n */\nexport function generateCodonTable(table: any) {\n const tempCodonTable: Record = {}\n Object.keys(table).forEach(codon => {\n const aa = table[codon]\n const nucs: string[][] = []\n for (let i = 0; i < 3; i++) {\n const nuc = codon.charAt(i)\n nucs[i] = []\n nucs[i]![0] = nuc.toUpperCase()\n nucs[i]![1] = nuc.toLowerCase()\n }\n for (let i = 0; i < 2; i++) {\n const n0 = nucs[0]![i]!\n for (let j = 0; j < 2; j++) {\n const n1 = nucs[1]![j]!\n for (let k = 0; k < 2; k++) {\n const n2 = nucs[2]![k]!\n const triplet = n0 + n1 + n2\n tempCodonTable[triplet] = aa\n }\n }\n }\n })\n return tempCodonTable\n}\n\n// call statusCallback with current status and clear when finished\nexport async function updateStatus(\n msg: string,\n cb: (arg: string) => void,\n fn: () => U | Promise,\n) {\n cb(msg)\n const res = await fn()\n cb('')\n return res\n}\n\nexport function hashCode(str: string) {\n let hash = 0\n if (str.length === 0) {\n return hash\n }\n for (let i = 0; i < str.length; i++) {\n const chr = str.charCodeAt(i)\n hash = (hash << 5) - hash + chr\n hash |= 0 // Convert to 32bit integer\n }\n return hash\n}\n\nexport function objectHash(obj: Record) {\n return `${hashCode(JSON.stringify(obj))}`\n}\n\ninterface VirtualOffset {\n blockPosition: number\n}\ninterface Block {\n minv: VirtualOffset\n maxv: VirtualOffset\n}\n\nexport async function bytesForRegions(\n regions: Region[],\n index: {\n blocksForRange: (\n ref: string,\n start: number,\n end: number,\n ) => Promise\n },\n) {\n const blockResults = await Promise.all(\n regions.map(r => index.blocksForRange(r.refName, r.start, r.end)),\n )\n\n return blockResults\n .flat()\n .map(block => ({\n start: block.minv.blockPosition,\n end: block.maxv.blockPosition + 65535,\n }))\n .reduce((a, b) => a + b.end - b.start, 0)\n}\n\nexport interface ViewSnap {\n bpPerPx: number\n interRegionPaddingWidth: number\n minimumBlockWidth: number\n width: number\n offsetPx: number\n staticBlocks: { contentBlocks: BaseBlock[]; blocks: BaseBlock[] }\n displayedRegions: (IStateTreeNode & {\n start: number\n end: number\n refName: string\n reversed?: boolean\n assemblyName: string\n })[]\n}\n\n// supported adapter types by text indexer ensure that this matches the method\n// found in @jbrowse/text-indexing/util\nexport function isSupportedIndexingAdapter(type = '') {\n return [\n 'Gff3TabixAdapter',\n 'VcfTabixAdapter',\n 'Gff3Adapter',\n 'VcfAdapter',\n ].includes(type)\n}\n\nexport function getBpDisplayStr(totalBp: number) {\n if (Math.floor(totalBp / 1_000_000) > 0) {\n return `${Number.parseFloat((totalBp / 1_000_000).toPrecision(3))}Mbp`\n } else if (Math.floor(totalBp / 1_000) > 0) {\n return `${Number.parseFloat((totalBp / 1_000).toPrecision(3))}Kbp`\n } else {\n return `${toLocale(Math.floor(totalBp))}bp`\n }\n}\n\nexport function toLocale(n: number) {\n return n.toLocaleString('en-US')\n}\n\nexport function getTickDisplayStr(totalBp: number, bpPerPx: number) {\n return Math.floor(bpPerPx / 1_000) > 0\n ? `${toLocale(Number.parseFloat((totalBp / 1_000_000).toFixed(2)))}M`\n : toLocale(Math.floor(totalBp))\n}\n\nexport function getViewParams(model: IAnyStateTreeNode, exportSVG?: boolean) {\n // @ts-expect-error\n const { dynamicBlocks, staticBlocks, offsetPx } = getContainingView(model)\n const b = dynamicBlocks?.contentBlocks[0] || {}\n const staticblock = staticBlocks?.contentBlocks[0] || {}\n const staticblock1 = staticBlocks?.contentBlocks[1] || {}\n return {\n offsetPx: exportSVG ? 0 : offsetPx - staticblock.offsetPx,\n offsetPx1: exportSVG ? 0 : offsetPx - staticblock1.offsetPx,\n start: b.start as number,\n end: b.end as number,\n }\n}\n\nexport function getLayoutId({\n sessionId,\n layoutId,\n}: {\n sessionId: string\n layoutId: string\n}) {\n return `${sessionId}-${layoutId}`\n}\n\n// Hook from https://usehooks.com/useLocalStorage/\nexport function useLocalStorage(key: string, initialValue: T) {\n const [storedValue, setStoredValue] = useState(() => {\n if (typeof window === 'undefined') {\n return initialValue\n }\n try {\n const item = window.localStorage.getItem(key)\n return item ? JSON.parse(item) : initialValue\n } catch (error) {\n console.error(error)\n return initialValue\n }\n })\n const setValue = (value: T | ((val: T) => T)) => {\n try {\n const valueToStore =\n value instanceof Function ? value(storedValue) : value\n setStoredValue(valueToStore)\n if (typeof window !== 'undefined') {\n window.localStorage.setItem(key, JSON.stringify(valueToStore))\n }\n } catch (error) {\n console.error(error)\n }\n }\n return [storedValue, setValue] as const\n}\n\nexport function getUriLink(value: { uri: string; baseUri?: string }) {\n const { uri, baseUri = '' } = value\n let href: string\n try {\n href = new URL(uri, baseUri).href\n } catch (e) {\n href = uri\n }\n return href\n}\n\nexport function getStr(obj: unknown) {\n return isObject(obj)\n ? isUriLocation(obj)\n ? getUriLink(obj)\n : JSON.stringify(obj)\n : String(obj)\n}\n\n// tries to measure grid width without HTML tags included\nexport function coarseStripHTML(s: string) {\n return s.replaceAll(/(<([^>]+)>)/gi, '')\n}\n\n// based on autolink-js, license MIT\n// https://github.com/bryanwoods/autolink-js/blob/1418049970152c56ced73d43dcc62d80b320fb71/autolink.js#L9\nexport function linkify(s: string) {\n const pattern =\n /(^|[\\s\\n]|<[A-Za-z]*\\/?>)((?:https?|ftp):\\/\\/[-A-Z0-9+\\u0026\\u2019@#/%?=()~_|!:,.;]*[-A-Z0-9+\\u0026@#/%=~()_|])/gi\n return s.replaceAll(pattern, '$1$2')\n}\n\n// heuristic measurement for a column of a @mui/x-data-grid, pass in\n// values from a column\nexport function measureGridWidth(\n elements: unknown[],\n args?: {\n minWidth?: number\n fontSize?: number\n maxWidth?: number\n padding?: number\n stripHTML?: boolean\n },\n) {\n const {\n padding = 30,\n minWidth = 80,\n fontSize = 12,\n maxWidth = 1000,\n stripHTML = false,\n } = args || {}\n return max(\n elements\n .map(element => getStr(element))\n .map(str => (stripHTML ? coarseStripHTML(str) : str))\n .map(str => measureText(str, fontSize))\n .map(n => Math.min(Math.max(n + padding, minWidth), maxWidth)),\n )\n}\n\nexport function getEnv(obj: any) {\n return getEnvMST<{ pluginManager: PluginManager }>(obj)\n}\n\nexport function localStorageGetItem(item: string) {\n return typeof localStorage !== 'undefined'\n ? localStorage.getItem(item)\n : undefined\n}\n\nexport function localStorageSetItem(str: string, item: string) {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(str, item)\n }\n}\n\nexport function max(arr: number[], init = Number.NEGATIVE_INFINITY) {\n let max = init\n for (const entry of arr) {\n max = entry > max ? entry : max\n }\n return max\n}\n\nexport function min(arr: number[], init = Number.POSITIVE_INFINITY) {\n let min = init\n for (const entry of arr) {\n min = entry < min ? entry : min\n }\n return min\n}\n\nexport function sum(arr: number[]) {\n let sum = 0\n for (const entry of arr) {\n sum += entry\n }\n return sum\n}\n\nexport function avg(arr: number[]) {\n return sum(arr) / arr.length\n}\n\nexport function groupBy(array: Iterable, predicate: (v: T) => string) {\n const result = {} as Record\n for (const value of array) {\n const t = predicate(value)\n if (!result[t]) {\n result[t] = []\n }\n result[t].push(value)\n }\n return result\n}\n\nexport function notEmpty(value: T | null | undefined): value is T {\n return value !== null && value !== undefined\n}\n\nexport function mergeIntervals(\n intervals: T[],\n w = 5000,\n) {\n // test if there are at least 2 intervals\n if (intervals.length <= 1) {\n return intervals\n }\n\n const stack = [] as T[]\n let top = null\n\n // sort the intervals based on their start values\n intervals = intervals.sort((a, b) => a.start - b.start)\n\n // push the 1st interval into the stack\n stack.push(intervals[0]!)\n\n // start from the next interval and merge if needed\n for (let i = 1; i < intervals.length; i++) {\n // get the top element\n top = stack.at(-1)!\n\n // if the current interval doesn't overlap with the\n // stack top element, push it to the stack\n if (top.end + w < intervals[i]!.start - w) {\n stack.push(intervals[i]!)\n }\n // otherwise update the end value of the top element\n // if end of current interval is higher\n else if (top.end < intervals[i]!.end) {\n top.end = Math.max(top.end, intervals[i]!.end)\n stack.pop()\n stack.push(top)\n }\n }\n\n return stack\n}\n\ninterface BasicFeature {\n end: number\n start: number\n refName: string\n assemblyName?: string\n}\n\n// returns new array non-overlapping features\nexport function gatherOverlaps(regions: BasicFeature[], w = 5000) {\n const memo = {} as Record\n for (const x of regions) {\n if (!memo[x.refName]) {\n memo[x.refName] = []\n }\n memo[x.refName]!.push(x)\n }\n\n return Object.values(memo).flatMap(group =>\n mergeIntervals(\n group.sort((a, b) => a.start - b.start),\n w,\n ),\n )\n}\n\nexport function stripAlpha(str: string) {\n return colord(str).alpha(1).toHex()\n}\n\nexport function getStrokeProps(str: string) {\n const c = colord(str)\n return {\n strokeOpacity: c.alpha(),\n stroke: c.alpha(1).toHex(),\n }\n}\n\nexport function getFillProps(str: string) {\n const c = colord(str)\n return {\n fillOpacity: c.alpha(),\n fill: c.alpha(1).toHex(),\n }\n}\n\n// https://react.dev/reference/react-dom/server/renderToString#removing-rendertostring-from-the-client-code\nexport function renderToStaticMarkup(\n node: React.ReactElement,\n createRootFn?: (elt: Element | DocumentFragment) => {\n render: (node: React.ReactElement) => unknown\n },\n) {\n const div = document.createElement('div')\n flushSync(() => {\n if (createRootFn) {\n createRootFn(div).render(node)\n } else {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n render(node, div)\n }\n })\n return div.innerHTML.replaceAll(/\\brgba\\((.+?),[^,]+?\\)/g, 'rgb($1)')\n}\n\nexport function isGzip(buf: Buffer) {\n return buf[0] === 31 && buf[1] === 139 && buf[2] === 8\n}\n\nexport {\n default as SimpleFeature,\n type Feature,\n type SimpleFeatureSerialized,\n isFeature,\n} from './simpleFeature'\n\nexport { blobToDataURL } from './blobToDataURL'\n","import { getParent, isRoot, IAnyStateTreeNode } from 'mobx-state-tree'\nimport { getSession, objectHash, getEnv } from './index'\nimport { PreFileLocation, FileLocation } from './types'\nimport { readConfObject, AnyConfigurationModel } from '../configuration'\n\n/* utility functions for use by track models and so forth */\n\nexport function getTrackAssemblyNames(\n track: IAnyStateTreeNode & { configuration: AnyConfigurationModel },\n) {\n return getConfAssemblyNames(track.configuration)\n}\n\nexport function getConfAssemblyNames(conf: AnyConfigurationModel) {\n const trackAssemblyNames = readConfObject(conf, 'assemblyNames') as\n | string[]\n | undefined\n if (!trackAssemblyNames) {\n // Check if it's an assembly sequence track\n const parent = getParent(conf)\n if ('sequence' in parent) {\n return [readConfObject(parent, 'name') as string]\n } else {\n throw new Error('unknown assembly names')\n }\n }\n return trackAssemblyNames\n}\n\n/**\n * return the rpcSessionId of the highest parent node in the tree that has an\n * rpcSessionId */\n\nexport function getRpcSessionId(thisNode: IAnyStateTreeNode) {\n interface NodeWithRpcSessionId extends IAnyStateTreeNode {\n rpcSessionId: string\n }\n let highestRpcSessionId: string | undefined\n\n for (let node = thisNode; !isRoot(node); node = getParent(node)) {\n if ('rpcSessionId' in node) {\n highestRpcSessionId = (node as NodeWithRpcSessionId).rpcSessionId\n }\n }\n if (!highestRpcSessionId) {\n throw new Error(\n 'getRpcSessionId failed, no parent node in the state tree has an `rpcSessionId` attribute',\n )\n }\n return highestRpcSessionId\n}\n\n/**\n * given an MST node, get the renderprops of the first parent container that\n * has renderProps\n * @param node -\n * @returns renderprops, or empty object if none found\n */\nexport function getParentRenderProps(node: IAnyStateTreeNode) {\n for (\n let currentNode = getParent(node);\n !isRoot(currentNode);\n currentNode = getParent(currentNode)\n ) {\n if ('renderProps' in currentNode) {\n return currentNode.renderProps()\n }\n }\n\n return {}\n}\n\nexport const UNKNOWN = 'UNKNOWN'\nexport const UNSUPPORTED = 'UNSUPPORTED'\n\nlet blobMap: Record = {}\n\n// get a specific blob\nexport function getBlob(id: string) {\n return blobMap[id]\n}\n\n// used to export entire context to webworker\nexport function getBlobMap() {\n return blobMap\n}\n\n// used in new contexts like webworkers\nexport function setBlobMap(map: Record) {\n blobMap = map\n}\n\nlet counter = 0\n\n// blob files are stored in a global map. the blobId is based on a combination\n// of timestamp plus counter to be unique across sessions and fast repeated\n// calls\nexport function storeBlobLocation(location: PreFileLocation) {\n if ('blob' in location) {\n const blobId = `b${+Date.now()}-${counter++}`\n blobMap[blobId] = location.blob\n return { name: location.blob.name, blobId, locationType: 'BlobLocation' }\n }\n return location\n}\n\n/**\n * creates a new location from the provided location including the appropriate suffix and location type\n * @param location - the FileLocation\n * @param suffix - the file suffix (e.g. .bam)\n * @returns the constructed location object from the provided parameters\n */\nexport function makeIndex(location: FileLocation, suffix: string) {\n if ('uri' in location) {\n return { uri: location.uri + suffix, locationType: 'UriLocation' }\n }\n\n if ('localPath' in location) {\n return {\n localPath: location.localPath + suffix,\n locationType: 'LocalPathLocation',\n }\n }\n\n return location\n}\n\n/**\n * constructs a potential index file (with suffix) from the provided file name\n * @param name - the name of the index file\n * @param typeA - one option of a potential two file suffix (e.g. CSI, BAI)\n * @param typeB - the second option of a potential two file suffix (e.g. CSI, BAI)\n * @returns a likely name of the index file for a given filename\n */\nexport function makeIndexType(\n name: string | undefined,\n typeA: string,\n typeB: string,\n) {\n return name?.toUpperCase().endsWith(typeA) ? typeA : typeB\n}\n\nexport interface AdapterConfig {\n type: string\n [key: string]: unknown\n}\n\nexport type AdapterGuesser = (\n file: FileLocation,\n index?: FileLocation,\n adapterHint?: string,\n) => AdapterConfig | undefined\n\nexport type TrackTypeGuesser = (adapterName: string) => string | undefined\n\nexport function getFileName(track: FileLocation) {\n const uri = 'uri' in track ? track.uri : undefined\n const localPath = 'localPath' in track ? track.localPath : undefined\n const blob = 'blobId' in track ? track : undefined\n return (\n blob?.name ||\n uri?.slice(uri.lastIndexOf('/') + 1) ||\n localPath?.slice(localPath.replace(/\\\\/g, '/').lastIndexOf('/') + 1) ||\n ''\n )\n}\n\nexport function guessAdapter(\n file: FileLocation,\n index: FileLocation | undefined,\n adapterHint?: string,\n model?: IAnyStateTreeNode,\n) {\n if (model) {\n const { pluginManager } = getEnv(model)\n const adapterGuesser = pluginManager.evaluateExtensionPoint(\n 'Core-guessAdapterForLocation',\n (\n _file: FileLocation,\n _index?: FileLocation,\n _adapterHint?: string,\n ): AdapterConfig | undefined => {\n return undefined\n },\n ) as AdapterGuesser\n\n const adapter = adapterGuesser(file, index, adapterHint)\n\n if (adapter) {\n return adapter\n }\n }\n\n return {\n type: UNKNOWN,\n }\n}\n\nexport function guessTrackType(\n adapterType: string,\n model?: IAnyStateTreeNode,\n): string {\n if (model) {\n const session = getSession(model)\n\n const trackTypeGuesser = getEnv(\n session,\n ).pluginManager.evaluateExtensionPoint(\n 'Core-guessTrackTypeForLocation',\n (_adapterName: string): AdapterConfig | undefined => {\n return undefined\n },\n ) as TrackTypeGuesser\n\n const trackType = trackTypeGuesser(adapterType)\n\n if (trackType) {\n return trackType\n }\n }\n return 'FeatureTrack'\n}\n\nexport function generateUnsupportedTrackConf(\n trackName: string,\n trackUrl: string,\n categories: string[] | undefined,\n) {\n const conf = {\n type: 'FeatureTrack',\n name: `${trackName} (Unsupported)`,\n description: `Support not yet implemented for \"${trackUrl}\"`,\n category: categories,\n trackId: '',\n }\n conf.trackId = objectHash(conf)\n return conf\n}\n\nexport function generateUnknownTrackConf(\n trackName: string,\n trackUrl: string,\n categories: string[] | undefined,\n) {\n const conf = {\n type: 'FeatureTrack',\n name: `${trackName} (Unknown)`,\n description: `Could not determine track type for \"${trackUrl}\"`,\n category: categories,\n trackId: '',\n }\n conf.trackId = objectHash(conf)\n return conf\n}\n\nexport function getTrackName(\n conf: AnyConfigurationModel,\n session: { assemblies: AnyConfigurationModel[] },\n) {\n const trackName = readConfObject(conf, 'name') as string\n if (!trackName && readConfObject(conf, 'type') === 'ReferenceSequenceTrack') {\n const asm = session.assemblies.find(a => a.sequence === conf)\n return asm\n ? `Reference sequence (${\n readConfObject(asm, 'displayName') || readConfObject(asm, 'name')\n })`\n : 'Reference sequence'\n }\n return trackName\n}\n","import { types } from 'mobx-state-tree'\nimport { nanoid } from '../nanoid'\n\nexport const ElementId = types.optional(types.identifier, () => nanoid())\n\nexport const NoAssemblyRegion = types\n .model('NoAssemblyRegion', {\n refName: types.string,\n start: types.number,\n end: types.number,\n reversed: types.optional(types.boolean, false),\n })\n .actions(self => ({\n setRefName(newRefName: string): void {\n self.refName = newRefName\n },\n }))\n\nexport const Region = types.compose(\n 'Region',\n NoAssemblyRegion,\n types.model({\n assemblyName: types.string,\n }),\n)\n\nexport const LocalPathLocation = types.model('LocalPathLocation', {\n locationType: types.literal('LocalPathLocation'),\n localPath: types.string,\n})\n\n// like how blobId is used to get a blob map\nexport const BlobLocation = types.model('BlobLocation', {\n locationType: types.literal('BlobLocation'),\n name: types.string,\n blobId: types.string,\n})\n\nexport const UriLocationRaw = types.model('UriLocation', {\n locationType: types.literal('UriLocation'),\n uri: types.string,\n baseUri: types.maybe(types.string),\n\n internetAccountId: types.maybe(types.string),\n\n // auths information (such as tokens) needed for using this resource.\n // if provided, these must be completely sufficient for using it\n internetAccountPreAuthorization: types.maybe(\n types.model('InternetAccountPreAuthorization', {\n internetAccountType: types.string,\n authInfo: types.frozen(),\n }),\n ),\n})\n\nexport const UriLocation = types.snapshotProcessor(UriLocationRaw, {\n postProcessor: snap => {\n // xref https://github.com/mobxjs/mobx-state-tree/issues/1524 for Omit\n const { baseUri, ...rest } = snap as Omit\n if (!baseUri) {\n return rest\n }\n return snap\n },\n})\n\nexport const FileLocation = types.snapshotProcessor(\n types.union(LocalPathLocation, UriLocation, BlobLocation),\n {\n // @ts-expect-error\n preProcessor(snap) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!snap) {\n return undefined\n }\n\n // @ts-expect-error\n // xref https://github.com/mobxjs/mobx-state-tree/issues/1524 for Omit\n const { locationType, ...rest } = snap as Omit\n if (!locationType) {\n // @ts-expect-error\n const { uri, localPath, blob } = rest\n let locationType = ''\n if (uri !== undefined) {\n locationType = 'UriLocation'\n } else if (localPath !== undefined) {\n locationType = 'LocalPathLocation'\n } else if (blob !== undefined) {\n locationType = 'BlobLocation'\n }\n\n return { ...rest, locationType }\n }\n return snap\n },\n },\n)\n","import { lazy } from 'react'\nimport Plugin from '@jbrowse/core/Plugin'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport UCSCTrackHubConnectionF from './ucsc-trackhub'\nimport AddTrackWidgetF from './AddTrackWidget'\n\nimport AddConnectionWidgetF from './AddConnectionWidget'\nimport PluginStoreWidgetF from './PluginStoreWidget'\nimport HierarchicalTrackSelectorWidgetF from './HierarchicalTrackSelectorWidget'\n\nconst AssemblyManager = lazy(() => import('./AssemblyManager'))\n\nexport default class DataManagementPlugin extends Plugin {\n name = 'DataManagementPlugin'\n\n exports = {\n AssemblyManager,\n }\n\n install(pluginManager: PluginManager) {\n UCSCTrackHubConnectionF(pluginManager)\n AddTrackWidgetF(pluginManager)\n HierarchicalTrackSelectorWidgetF(pluginManager)\n AddConnectionWidgetF(pluginManager)\n PluginStoreWidgetF(pluginManager)\n }\n\n configure(_pluginManager: PluginManager) {}\n}\n\nexport { AssemblyManager }\n\nexport { type AddTrackModel } from './AddTrackWidget/model'\nexport { type HierarchicalTrackSelectorModel } from './HierarchicalTrackSelectorWidget'\n","import domLoadScript from 'load-script'\n\n// locals\nimport Plugin, { PluginConstructor } from './Plugin'\nimport ReExports from './ReExports'\nimport { isElectron } from './util'\n\nexport interface UMDLocPluginDefinition {\n umdLoc: {\n uri: string\n baseUri?: string\n }\n name: string\n}\n\nexport interface UMDUrlPluginDefinition {\n umdUrl: string\n name: string\n}\n\nexport interface LegacyUMDPluginDefinition {\n url: string\n name: string\n}\n\ntype UMDPluginDefinition = UMDLocPluginDefinition | UMDUrlPluginDefinition\n\nexport function isUMDPluginDefinition(\n def: PluginDefinition,\n): def is UMDPluginDefinition | LegacyUMDPluginDefinition {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n ((def as UMDUrlPluginDefinition).umdUrl !== undefined ||\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (def as LegacyUMDPluginDefinition).url !== undefined ||\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (def as UMDLocPluginDefinition).umdLoc !== undefined) &&\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (def as LegacyUMDPluginDefinition | UMDPluginDefinition).name !== undefined\n )\n}\n\nexport interface ESMLocPluginDefinition {\n esmLoc: {\n uri: string\n baseUri?: string\n }\n}\nexport interface ESMUrlPluginDefinition {\n esmUrl: string\n}\n\nexport type ESMPluginDefinition =\n | ESMLocPluginDefinition\n | ESMUrlPluginDefinition\n\nexport function isESMPluginDefinition(\n def: PluginDefinition,\n): def is ESMPluginDefinition {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (def as ESMUrlPluginDefinition).esmUrl !== undefined ||\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (def as ESMLocPluginDefinition).esmLoc !== undefined\n )\n}\n\nexport interface CJSPluginDefinition {\n cjsUrl: string\n}\n\nfunction promisifiedLoadScript(src: string) {\n return new Promise((resolve, reject) => {\n domLoadScript(src, (err, script) => {\n if (err) {\n reject(err)\n } else {\n resolve(script.src)\n }\n })\n })\n}\n\nasync function loadScript(scriptUrl: string) {\n if (!isInWebWorker()) {\n return promisifiedLoadScript(scriptUrl)\n }\n\n // @ts-expect-error\n if (globalThis.importScripts) {\n // @ts-expect-error\n await globalThis.importScripts(scriptUrl)\n return\n }\n throw new Error(\n 'cannot figure out how to load external JS scripts in this environment',\n )\n}\n\nexport function isCJSPluginDefinition(\n def: PluginDefinition,\n): def is CJSPluginDefinition {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return (def as CJSPluginDefinition).cjsUrl !== undefined\n}\n\nexport type PluginDefinition =\n | UMDUrlPluginDefinition\n | UMDLocPluginDefinition\n | LegacyUMDPluginDefinition\n | ESMLocPluginDefinition\n | ESMUrlPluginDefinition\n | CJSPluginDefinition\n\nexport interface PluginRecord {\n plugin: PluginConstructor\n definition: PluginDefinition\n}\n\nexport interface LoadedPlugin {\n default: PluginConstructor\n}\n\nexport function pluginDescriptionString(pluginDefinition: PluginDefinition) {\n if (isUMDPluginDefinition(pluginDefinition)) {\n return `UMD plugin ${pluginDefinition.name}`\n }\n if (isESMPluginDefinition(pluginDefinition)) {\n return `ESM plugin ${\n (pluginDefinition as ESMUrlPluginDefinition).esmUrl ||\n (pluginDefinition as ESMLocPluginDefinition).esmLoc.uri\n }`\n }\n if (isCJSPluginDefinition(pluginDefinition)) {\n return `CJS plugin ${pluginDefinition.cjsUrl}`\n }\n return 'unknown plugin'\n}\n\nfunction isInWebWorker() {\n return Boolean('WorkerGlobalScope' in globalThis)\n}\n\nexport default class PluginLoader {\n definitions: PluginDefinition[] = []\n\n fetchESM?: (url: string) => Promise\n fetchCJS?: (url: string) => Promise\n\n constructor(\n defs: PluginDefinition[] = [],\n args?: {\n fetchESM?: (url: string) => Promise\n fetchCJS?: (url: string) => Promise\n },\n ) {\n this.fetchESM = args?.fetchESM\n this.fetchCJS = args?.fetchCJS\n this.definitions = JSON.parse(JSON.stringify(defs))\n }\n\n async loadCJSPlugin(def: CJSPluginDefinition, baseUri?: string) {\n const parsedUrl = new URL(def.cjsUrl, baseUri)\n if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n throw new Error(\n `Cannot load plugins using protocol \"${parsedUrl.protocol}\"`,\n )\n }\n if (!this.fetchCJS) {\n throw new Error('No fetchCJS callback provided')\n }\n\n return this.fetchCJS(parsedUrl.href)\n }\n\n async loadESMPlugin(def: ESMPluginDefinition, baseUri?: string) {\n const parsedUrl =\n 'esmUrl' in def\n ? new URL(def.esmUrl, baseUri)\n : new URL(def.esmLoc.uri, def.esmLoc.baseUri)\n\n if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n throw new Error(\n `cannot load plugins using protocol \"${parsedUrl.protocol}\"`,\n )\n }\n\n if (!this.fetchESM) {\n throw new Error('No ESM fetcher installed')\n }\n const plugin = await this.fetchESM(parsedUrl.href)\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!plugin) {\n throw new Error(`Could not load ESM plugin: ${parsedUrl}`)\n }\n return plugin\n }\n\n async loadUMDPlugin(\n def: UMDPluginDefinition | LegacyUMDPluginDefinition,\n baseUri?: string,\n ) {\n const parsedUrl =\n 'url' in def\n ? new URL(def.url, baseUri)\n : 'umdUrl' in def\n ? new URL(def.umdUrl, baseUri)\n : new URL(def.umdLoc.uri, def.umdLoc.baseUri)\n\n if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n throw new Error(\n `cannot load plugins using protocol \"${parsedUrl.protocol}\"`,\n )\n }\n const moduleName = def.name\n const umdName = `JBrowsePlugin${moduleName}`\n if (typeof jest === 'undefined') {\n await loadScript(parsedUrl.href)\n } else {\n // @ts-expect-error\n globalThis[umdName] = { default: Plugin }\n }\n\n // @ts-expect-error\n const plugin = globalThis[umdName] as\n | { default: PluginConstructor }\n | undefined\n if (!plugin) {\n throw new Error(\n `Failed to load UMD bundle for ${moduleName}, ${umdName} is undefined`,\n )\n }\n return plugin\n }\n\n async loadPlugin(def: PluginDefinition, baseUri?: string) {\n let plugin: LoadedPlugin\n if (isElectron && isCJSPluginDefinition(def)) {\n plugin = await this.loadCJSPlugin(def, baseUri)\n } else if (isESMPluginDefinition(def)) {\n plugin = await this.loadESMPlugin(def, baseUri)\n } else if (isUMDPluginDefinition(def)) {\n plugin = await this.loadUMDPlugin(def, baseUri)\n } else if (!isElectron && isCJSPluginDefinition(def)) {\n throw new Error(\n `CommonJS plugin found, but not in a NodeJS environment: ${JSON.stringify(\n def,\n )}`,\n )\n } else {\n throw new Error(`Could not determine plugin type: ${JSON.stringify(def)}`)\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!plugin.default) {\n throw new Error(\n `${pluginDescriptionString(\n def,\n )} does not have a default export, cannot load`,\n )\n }\n return plugin.default\n }\n\n installGlobalReExports(target: WindowOrWorkerGlobalScope) {\n // @ts-expect-error\n target.JBrowseExports = Object.fromEntries(\n Object.entries(ReExports).map(([moduleName, module]) => {\n return [moduleName, module]\n }),\n )\n return this\n }\n\n async load(baseUri?: string) {\n return Promise.all(\n this.definitions.map(async definition => ({\n plugin: await this.loadPlugin(definition, baseUri),\n definition,\n })),\n )\n }\n}\n","import './workerPolyfill'\nimport { initializeWorker } from '@jbrowse/product-core'\nimport { enableStaticRendering } from 'mobx-react'\n\n// locals\nimport corePlugins from './corePlugins'\n\n// static rendering is used for \"SSR\" style rendering which is done on the\n// worker\nenableStaticRendering(true)\n\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\ninitializeWorker(corePlugins, {\n fetchESM: url => import(/* webpackIgnore:true */ url),\n})\n\nexport default function doNothing() {\n /* do nothing */\n}\n","import RpcServer from 'librpc-web-mod'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { remoteAbortRpcHandler } from '@jbrowse/core/rpc/remoteAbortSignals'\nimport PluginLoader, {\n LoadedPlugin,\n PluginDefinition,\n} from '@jbrowse/core/PluginLoader'\nimport { PluginConstructor } from '@jbrowse/core/Plugin'\nimport { serializeError } from 'serialize-error'\n\ninterface WorkerConfiguration {\n plugins: PluginDefinition[]\n windowHref: string\n}\n\n// waits for a message from the main thread containing our configuration, which\n// must be sent on boot\nfunction receiveConfiguration() {\n const configurationP = new Promise(resolve => {\n function listener(e: MessageEvent) {\n if (e.data.message === 'config') {\n resolve(e.data.config as WorkerConfiguration)\n removeEventListener('message', listener)\n }\n }\n self.addEventListener('message', listener)\n })\n postMessage({ message: 'readyForConfig' })\n return configurationP\n}\n\nasync function getPluginManager(\n corePlugins: PluginConstructor[],\n opts: { fetchESM?: (url: string) => Promise },\n) {\n // Load runtime plugins\n const config = await receiveConfiguration()\n const pluginLoader = new PluginLoader(\n config.plugins,\n opts,\n ).installGlobalReExports(self)\n return new PluginManager(\n [\n ...corePlugins.map(p => ({ plugin: p })),\n ...(await pluginLoader.load(config.windowHref)),\n ].map(P => new P.plugin()),\n )\n .createPluggableElements()\n .configure()\n}\n\ninterface WrappedFuncArgs {\n rpcDriverClassName: string\n channel: string\n [key: string]: unknown\n}\n\ntype RpcFunc = (args: unknown, rpcDriverClassName: string) => unknown\n\nfunction wrapForRpc(func: RpcFunc) {\n return (args: WrappedFuncArgs) => {\n const { channel, rpcDriverClassName } = args\n return func(\n {\n ...args,\n statusCallback: (message: string) => {\n // @ts-expect-error\n self.rpcServer.emit(channel, message)\n },\n },\n rpcDriverClassName,\n )\n }\n}\n\nexport async function initializeWorker(\n corePlugins: PluginConstructor[],\n opts: {\n fetchESM?: (url: string) => Promise\n fetchCJS?: (url: string) => Promise\n },\n) {\n try {\n const pluginManager = await getPluginManager(corePlugins, opts)\n const rpcConfig = Object.fromEntries(\n pluginManager\n .getRpcElements()\n .map(e => [e.name, wrapForRpc(e.execute.bind(e))]),\n )\n\n // @ts-expect-error\n self.rpcServer = new RpcServer.Server({\n ...rpcConfig,\n ...remoteAbortRpcHandler(),\n ping: async () => {\n // the ping method is required by the worker driver for checking the\n // health of the worker\n },\n })\n postMessage({ message: 'ready' })\n } catch (e) {\n postMessage({ message: 'error', error: serializeError(e) })\n }\n /* do nothing */\n}\n","// this is a little polyfill for running in workers that\n// contains just enough stubbing to make webpack style-loader\n// think that it is actually inserting styles into the DOM\n\nself.window = {\n addEventListener() {},\n fetch: self.fetch.bind(self),\n location: self.location,\n Date: self.Date,\n requestIdleCallback: cb => {\n cb()\n },\n cancelIdleCallback: () => {},\n requestAnimationFrame: cb => {\n cb()\n },\n cancelAnimationFrame: () => {},\n navigator: {},\n}\nself.document = {\n createTextNode() {},\n querySelector() {\n return { appendChild() {} }\n },\n documentElement: {},\n querySelectorAll: () => [],\n createElement() {\n return {\n style: {},\n setAttribute() {},\n removeAttribute() {},\n appendChild() {},\n }\n },\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [5255,3301,6837], () => (__webpack_require__(2657)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"12\":\"c0c7bdf9\",\"14\":\"b9913d1d\",\"26\":\"604133d9\",\"120\":\"a447052d\",\"246\":\"9848bd41\",\"266\":\"94eb2bf9\",\"311\":\"2c004784\",\"366\":\"b00bf6ca\",\"399\":\"e36b7683\",\"419\":\"021427b6\",\"439\":\"bdc14632\",\"457\":\"6d7b716d\",\"489\":\"43cb4a5f\",\"491\":\"0011d1ad\",\"518\":\"7222a328\",\"561\":\"8b38948f\",\"596\":\"84c38eb7\",\"722\":\"4329bc98\",\"741\":\"a9772d36\",\"759\":\"9c32be0d\",\"772\":\"83c2d2db\",\"937\":\"4f610bdf\",\"946\":\"245d7df9\",\"972\":\"c0d17685\",\"1012\":\"a7d14de3\",\"1029\":\"8c806427\",\"1051\":\"8e1641e2\",\"1110\":\"702cba94\",\"1157\":\"c0d4652e\",\"1189\":\"f18c6e1f\",\"1260\":\"ee4ecbf4\",\"1266\":\"cd6d9354\",\"1281\":\"1d836fc4\",\"1304\":\"a512b560\",\"1310\":\"8a044016\",\"1326\":\"19289940\",\"1345\":\"aaaaf175\",\"1354\":\"ded982ce\",\"1503\":\"cc48d25a\",\"1516\":\"ca4ab8f0\",\"1537\":\"4fdb4e95\",\"1598\":\"3b48685f\",\"1637\":\"21a8cf01\",\"1696\":\"8a290cef\",\"1725\":\"795fc4d3\",\"1752\":\"a727a500\",\"1757\":\"a6d05bc3\",\"1811\":\"7cfd8419\",\"1822\":\"2cbe112a\",\"1824\":\"c2ed4bca\",\"1978\":\"1faf7d31\",\"1996\":\"a37d9ec7\",\"1999\":\"2554e815\",\"2018\":\"9ce7fb06\",\"2062\":\"a28f26f8\",\"2141\":\"d36fb4a8\",\"2197\":\"a5134ce4\",\"2212\":\"116fbbf4\",\"2241\":\"3d359b22\",\"2246\":\"e5e65a4f\",\"2249\":\"b91f0bb3\",\"2306\":\"f8d640f4\",\"2321\":\"ef211da9\",\"2398\":\"731eb1c6\",\"2412\":\"10574f7d\",\"2418\":\"0b1f308b\",\"2424\":\"7cd6703f\",\"2493\":\"20e8e76c\",\"2583\":\"db78b17f\",\"2627\":\"300bea43\",\"2645\":\"4b79a04c\",\"2697\":\"4ab94d07\",\"2729\":\"9660c29b\",\"2775\":\"e25b4dd4\",\"2777\":\"56f29f41\",\"2820\":\"3c0e09be\",\"2847\":\"009c96ee\",\"2861\":\"aa6cd5b7\",\"2872\":\"5129bbd8\",\"2885\":\"8a30e856\",\"2977\":\"aa562b03\",\"2989\":\"031b43a0\",\"3003\":\"0f0cbacd\",\"3011\":\"9da53e7c\",\"3012\":\"9940fd01\",\"3029\":\"cd8dcca2\",\"3103\":\"4dfe3f78\",\"3106\":\"e1981605\",\"3109\":\"3173f682\",\"3162\":\"eb9bf76d\",\"3167\":\"312d0953\",\"3175\":\"af2c93a5\",\"3199\":\"a36b17a7\",\"3266\":\"accbd4dc\",\"3274\":\"053c3df5\",\"3301\":\"db457761\",\"3304\":\"65e5d8dd\",\"3311\":\"92fac4a6\",\"3368\":\"6e9b017b\",\"3384\":\"e146a796\",\"3416\":\"f7c72cbe\",\"3425\":\"be85a6ad\",\"3474\":\"8c1888be\",\"3497\":\"9db6611b\",\"3525\":\"e74d3ff0\",\"3550\":\"089089a8\",\"3578\":\"058bdae5\",\"3614\":\"af493134\",\"3682\":\"840e721c\",\"3728\":\"99a63442\",\"3778\":\"e18101e6\",\"3795\":\"0386c297\",\"3862\":\"9fd8e870\",\"3902\":\"69c7ff0c\",\"3940\":\"c8b3da50\",\"4033\":\"df8ecd0d\",\"4060\":\"8757dbe8\",\"4133\":\"451f5e47\",\"4138\":\"57ad92a3\",\"4234\":\"63e1ba57\",\"4284\":\"61dbc58f\",\"4345\":\"0a9072cc\",\"4395\":\"8fda7b8b\",\"4414\":\"7f4caeab\",\"4435\":\"a57cabe2\",\"4456\":\"93a06b74\",\"4499\":\"3f0b2e70\",\"4615\":\"dc35870f\",\"4629\":\"1f1a55a3\",\"4630\":\"f0bdb9f0\",\"4659\":\"b65d8547\",\"4704\":\"9b3995ff\",\"4753\":\"834007ba\",\"4755\":\"8d938db2\",\"4770\":\"3d757d6b\",\"4773\":\"6cd74b80\",\"4806\":\"7e497d7a\",\"4861\":\"6244e4c0\",\"4863\":\"9dfed19c\",\"4864\":\"28cfc358\",\"4902\":\"452e575b\",\"4947\":\"2e80fd2d\",\"4974\":\"cf97ef5b\",\"5008\":\"f8d32f92\",\"5031\":\"6eccfd35\",\"5090\":\"bc77ac67\",\"5099\":\"14f82444\",\"5101\":\"993a6b6e\",\"5132\":\"00a31df0\",\"5156\":\"75195722\",\"5189\":\"3e22269d\",\"5243\":\"9de20396\",\"5255\":\"af554ced\",\"5260\":\"e7b7aeb6\",\"5327\":\"8f1dcfc1\",\"5331\":\"28d667f0\",\"5369\":\"993afa3f\",\"5461\":\"5c8cf5d1\",\"5484\":\"3ceeebff\",\"5511\":\"154ce441\",\"5515\":\"671905b2\",\"5595\":\"b4517d69\",\"5608\":\"1b8d39e1\",\"5640\":\"33b8306c\",\"5668\":\"73016b9c\",\"5676\":\"818528e8\",\"5677\":\"28a25579\",\"5682\":\"ea285a50\",\"5727\":\"f7a524b6\",\"5736\":\"48705208\",\"5746\":\"39e4296b\",\"5763\":\"48010c9a\",\"5896\":\"622b5e88\",\"5903\":\"9145cef7\",\"5904\":\"240caa72\",\"5930\":\"0ffd2546\",\"5951\":\"251be759\",\"5998\":\"22bd8296\",\"6021\":\"21769087\",\"6043\":\"e402bf73\",\"6054\":\"e0881c55\",\"6149\":\"c6c4af73\",\"6157\":\"96f40683\",\"6205\":\"903f897d\",\"6214\":\"0ed0ac32\",\"6235\":\"93768761\",\"6310\":\"ae82dc58\",\"6323\":\"1c706a2d\",\"6342\":\"62a02e7b\",\"6391\":\"aabba4a1\",\"6395\":\"f6027b24\",\"6397\":\"8fc250af\",\"6423\":\"1e8da08b\",\"6435\":\"b4633aa1\",\"6514\":\"d36ecbb8\",\"6526\":\"b2c8fd93\",\"6621\":\"cf64e54c\",\"6658\":\"fe512b5a\",\"6683\":\"2a35f0fe\",\"6703\":\"faa93a20\",\"6746\":\"8d3f75be\",\"6785\":\"07d4b66b\",\"6799\":\"754a77ae\",\"6823\":\"6e35b0cf\",\"6833\":\"c77c5928\",\"6834\":\"bc9e9f2b\",\"6837\":\"a706c464\",\"6861\":\"66a2e4c0\",\"6932\":\"a37ea756\",\"6946\":\"dd09a891\",\"6999\":\"3486cca0\",\"7013\":\"5240d550\",\"7067\":\"e9508417\",\"7087\":\"79101e8e\",\"7117\":\"b3239756\",\"7126\":\"b4b7d70b\",\"7181\":\"938de865\",\"7203\":\"03e2b86a\",\"7309\":\"f9d18abb\",\"7348\":\"40afbdc0\",\"7374\":\"932d083d\",\"7389\":\"fa6a1eb0\",\"7407\":\"4421929d\",\"7409\":\"8e71acc1\",\"7418\":\"2ac24978\",\"7428\":\"1e6f676f\",\"7489\":\"b8a76d29\",\"7579\":\"1b98701c\",\"7584\":\"a162e3d6\",\"7627\":\"31dfd44e\",\"7706\":\"430ce07e\",\"7753\":\"87963fd9\",\"7761\":\"0cf7cf29\",\"7773\":\"7e072552\",\"7790\":\"3790bece\",\"7809\":\"eb2c5f08\",\"7812\":\"6bb31bfb\",\"7831\":\"cfcb0221\",\"7842\":\"cbff451c\",\"7864\":\"59d0de32\",\"7865\":\"e02aee95\",\"7902\":\"f48e3002\",\"7909\":\"8f1d759d\",\"7911\":\"764ec401\",\"7974\":\"3f19c570\",\"7991\":\"5d96c772\",\"8009\":\"a65f1b78\",\"8052\":\"7d772984\",\"8105\":\"4fd35586\",\"8109\":\"344e1845\",\"8114\":\"eb856986\",\"8120\":\"85042513\",\"8150\":\"09c54606\",\"8165\":\"d07843b4\",\"8187\":\"383aefbf\",\"8216\":\"16f39607\",\"8301\":\"877076ce\",\"8341\":\"fa84fa67\",\"8343\":\"dd515382\",\"8408\":\"2e2896bf\",\"8424\":\"a1a3e663\",\"8435\":\"484d30f8\",\"8483\":\"7fadf4ea\",\"8526\":\"5dd9c712\",\"8528\":\"f68ff14f\",\"8535\":\"189d090a\",\"8546\":\"0a89cbee\",\"8556\":\"0053a402\",\"8565\":\"c4ea9980\",\"8582\":\"9b93fffc\",\"8615\":\"0950a86f\",\"8624\":\"190dd7af\",\"8678\":\"8424d5dc\",\"8704\":\"ae4808df\",\"8762\":\"3d2b9142\",\"8797\":\"3168365d\",\"8856\":\"4593419f\",\"8859\":\"efb2561f\",\"8869\":\"74066774\",\"8876\":\"24bf6aed\",\"8880\":\"6ae9d985\",\"8929\":\"70ce258f\",\"8965\":\"51db703f\",\"8984\":\"1a816123\",\"9028\":\"12f6efe2\",\"9032\":\"b54e1975\",\"9037\":\"03715b7f\",\"9067\":\"1cc02121\",\"9070\":\"d49de235\",\"9086\":\"035adaa3\",\"9088\":\"9fbbeb5c\",\"9106\":\"b274c701\",\"9114\":\"d412d44e\",\"9168\":\"6afdec67\",\"9206\":\"bbf34514\",\"9245\":\"d882c265\",\"9280\":\"6e897b98\",\"9292\":\"96b77fb0\",\"9305\":\"4d748fb5\",\"9314\":\"3e43d34c\",\"9329\":\"c269472b\",\"9372\":\"67d6f914\",\"9374\":\"8ac7e6d7\",\"9384\":\"a4e7a69a\",\"9409\":\"c7569196\",\"9449\":\"2e1d2652\",\"9458\":\"07f0ae54\",\"9589\":\"9087e0ea\",\"9657\":\"0cccd5bf\",\"9658\":\"33669a59\",\"9690\":\"0cd8a2c8\",\"9756\":\"4ac80c37\",\"9824\":\"b9ece376\",\"9831\":\"de8b3aa9\",\"9870\":\"f395e633\",\"9943\":\"d3ab0f18\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.j = 2047;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl + \"../../\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t2047: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunk_jbrowse_web\"] = globalThis[\"webpackChunk_jbrowse_web\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","__webpack_require__.nc = undefined;","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","leafPrototypes","getProto","next","adapterCache","async","getAdapter","pluginManager","sessionId","adapterConfigSnapshot","cacheKey","conf","idMaker","adapterConfigCacheKey","adapterType","type","Error","JSON","stringify","dataAdapterType","getAdapterType","adapterConfig","configSchema","create","getSubAdapter","bind","dataAdapter","getAdapterClass","sessionIds","Set","cacheEntry","add","freeAdapterResources","specification","deleteCount","specKeys","Object","keys","length","entries","forEach","delete","size","values","regions","region","undefined","refName","freeResources","isRemoteAbortSignal","thing","abortSignalId","WeakMap","surrogateAbortControllers","Map","deserializeAbortSignal","surrogateAbortController","get","AbortController","set","signal","remoteAbort","props","signalId","abort","remoteAbortRpcHandler","signalAbort","CascadingContext","React","parentPopupState","rootPopupState","CascadingMenuItem","onClick","closeAfterItemClick","useContext","MenuItem","_extends","event","close","CascadingSubmenu","title","Icon","inset","popupId","popupState","usePopupState","variant","bindHover","bindFocus","ListItemIcon","ListItemText","primary","ChevronRight","CascadingSubmenuHover","anchorOrigin","vertical","horizontal","transformOrigin","onMenuItemClick","menuItems","classes","context","useMemo","Provider","value","HoverMenu","bindMenu","CascadingMenu","Menu","EndDecoration","item","MenuItemEndDecoration","checked","disabled","CascadingMenuList","hasIcon","some","m","icon","sort","a","b","priority","map","idx","key","label","subMenu","Divider","component","ListSubheader","callback","Boolean","secondary","subLabel","style","flexGrow","minWidth","rest","useStyles","makeStyles","theme","closeButton","position","right","spacing","top","color","palette","grey","DialogError","error","width","margin","ErrorMessage","observer","header","children","onClose","useTheme","MUIDialog","ScopedCssBaseline","DialogTitle","SanitizedHTML","html","IconButton","className","CloseIcon","ErrorBoundary","FallbackComponent","ThemeProvider","createTheme","components","MuiInputBase","styleOverrides","input","boxSizing","inputBase","typography","left","whiteSpace","visibility","inputRoot","padding","inputFocused","borderStyle","borderWidth","ref","setValue","other","ref2","useMeasure","editedValue","setEditedValue","useState","inputNode","setInputNode","blur","setBlur","useEffect","val","Typography","InputBase","inputRef","node","inputProps","root","focused","onChange","target","onKeyDown","onBlur","ErrorMessageStackTraceDialog","lazy","bg","background","divider","border","iconFloat","float","marginLeft","ErrorButtons","onReset","showStack","setShowStack","Tooltip","ReportIcon","RefreshIcon","Suspense","fallback","str","str2","indexOf","str3","slice","snapshotError","trim","findStr","match","exec","match2","parseError","RedErrorMessageBox","parse","FactoryResetDialog","open","onFactoryReset","handleDialogClose","action","Dialog","DialogContent","DialogContentText","DialogActions","Button","ContentCopy","SvgIcon","d","Indexing","TrackSelector","getColors","midnight","forrest","grape","mandarin","gray","Logomark","viewBox","LogoFull","Text","colors","fill","transform","paper","overflowY","overflowX","minHeight","maxWidth","maxHeight","outline","menuItemEndDecoration","height","ArrowRightIcon","CheckBoxIcon","CheckBoxOutlineBlankIcon","RadioButtonCheckedIcon","RadioButtonUncheckedIcon","checkIfValid","MenuPage","subMenuAnchorEl","setSubMenuAnchorEl","openSubMenuIdx","setOpenSubMenuIdx","isSubMenuOpen","setIsSubMenuOpen","selectedMenuItemIdx","setSelectedMenuItemIdx","setPosition","paperRef","useRef","anchorEl","shouldSubMenuBeOpen","timer","setTimeout","clearTimeout","rect","getBoundingClientRect","menuItem","menuItemStyle","ListContents","MenuList","autoFocusItem","dense","endDecoration","MUIMenuItem","id","String","selected","onMouseMove","e","currentTarget","document","activeElement","focus","currentIdx","findLastIndex","findPreviousValidIdx","findIndex","findNextValidIdx","Grow","in","Paper","elevation","Popover","horizontalHandle","cursor","verticalHandle","flexbox_verticalHandle","alignSelf","flexbox_horizontalHandle","onDrag","flexbox","originalClassName","onMouseDown","mouseDragging","setMouseDragging","initialPosition","prevPos","cx","mouseMove","preventDefault","pos","clientX","clientY","totalDistance","current","lastFrameDistance","mouseUp","window","addEventListener","removeEventListener","model","handleClose","clearView","autoFocus","added","full","RegExp","tag","join","pre","linkify","test","escapeHTML","dompurify","tagName","setAttribute","dangerouslySetInnerHTML","__html","refTheme","forest","augmentColor","main","bases","A","green","C","blue","G","orange","T","red","framesCDS","frames","stopCodon","startCodon","stockTheme","mode","tertiary","quaternary","highlight","MuiLink","defaultThemes","default","name","lightStock","lightMinimal","darkMinimal","darkStock","MuiAppBar","defaultProps","enableColorOnDark","overwriteArrayMerge","_","sourceArray","createJBrowseBaseTheme","themeP","fontSize","MuiButton","text","MuiAccordion","disableGutters","slotProps","transition","timeout","unmountOnExit","MuiFilledInput","MuiFormControl","MuiFormHelperText","MuiIconButton","MuiAutocomplete","MuiInputLabel","MuiToolbar","MuiListItem","MuiOutlinedInput","MuiFab","backgroundColor","MuiTable","MuiPopover","transitionDuration","MuiMenu","MuiMenuItem","MuiTextField","MuiCheckbox","MuiRadio","MuiFormLabel","MuiAccordionSummary","content","contrastText","MuiToggleButtonGroup","deepmerge","arrayMerge","createJBrowseTheme","configTheme","themes","themeName","augmentTheme","augmentThemePlus","importFormEntry","session","InputProps","TextFieldProps","localStorageKey","helperText","assemblyNames","assemblyManager","config","URLSearchParams","location","search","lastSelected","setLastSelected","jest","useLocalStorage","host","pathname","selection","includes","TextField","select","assembly","displayName","getConf","ToggleButtonWithTooltip","ToggleButton","shorten","len","Math","max","description","rootModel","setLocation","fileOrUrl","isUriLocation","toggleButtonValue","setToggleButtonValue","internetAccountId","accounts","isAppRootModel","internetAccounts","filter","f","recentlyUsedInternetAccounts","setRecentlyUsedInternetAccounts","fromEntries","arr","s","shownAccounts","hiddenAccounts","setAnchorEl","selectedAccount","setLocationWithAccount","useCallback","locationInput","UrlChooser","selectorLabel","LocalFileChooser","SelectorComponent","Box","display","InputLabel","shrink","flexDirection","ToggleButtonGroup","exclusive","_event","newState","notEmpty","toggleContents","ArrowDropDownIcon","FormHelperText","highResolutionScaling","imageData","blockKey","showSoftClip","done","setDone","featureCanvas","canvas","getContext","drawImageOntoCanvasContext","QuickLRU","constructor","options","super","maxSize","TypeError","maxAge","this","Number","POSITIVE_INFINITY","onEviction","cache","oldCache","_size","_emitEvictions","_deleteIfExpired","expiry","Date","now","_getOrDeleteIfExpired","_getItemValue","_peek","_set","_moveToRecent","_entriesAscending","has","peek","deleted","clear","resize","newSize","items","removeCount","Symbol","iterator","entriesDescending","i","entriesAscending","oldCacheSize","min","callbackFunction","thisArgument","call","toStringTag","useDebounce","delay","debouncedValue","setDebouncedValue","handle","useWidthSetter","view","isAlive","requestAnimationFrame","setWidth","parseInt","useDebouncedCallback","wait","argsRef","args","findParentThat","predicate","hasParent","currentNode","getParent","springAnimate","fromValue","toValue","onFinish","precision","tension","friction","clamp","animationFrameId","update","animation","time","lastPosition","lastTime","velocity","lastVelocity","numSteps","floor","isVelocity","abs","isDisplacement","cancelAnimationFrame","findParentThatIs","getSession","isSessionModel","getContainingView","isViewModel","getContainingTrack","isTrackModel","getContainingDisplay","isDisplayModel","assembleLocString","assembleLocStringFast","toLocale","cb","n","assemblyName","start","end","reversed","assemblyNameString","startString","endString","rev","parseLocStringOneBased","locString","isValidRefName","endsWith","replace","assemblyMatch","assemblyName2","location2","startsWith","lastColonIdx","lastIndexOf","prefix","suffix","rangeMatch","singleMatch","replaceAll","separator","parseLocString","parsed","compareLocs","locA","locB","assemblyComp","localeCompare","refComp","startComp","endComp","compareLocStrings","num","bpToPx","bp","bpPerPx","round","oneEightyOverPi","PI","piOverOneEighty","radToDeg","radians","degToRad","degrees","polarToCartesian","rho","theta","cos","sin","cartesianToPolar","x","y","sqrt","atan","featureSpanPx","feature","bpSpanPx","leftBp","rightBp","iterMap","iter","func","sizeHint","results","Array","from","counter","array","l","findLast","makeAbortableReaction","self","dataFunction","asyncReactionFunction","reactionOptions","startedFunction","successFunction","errorFunction","inProgress","handleError","isAbortException","console","addDisposer","reaction","data","mobxReactionHandle","aborted","thisInProgress","result","checkAbortSignal","renameRegionIfNeeded","refNameMap","isStateTreeNode","newRef","getSnapshot","originalRefName","renameRegionsIfNeeded","assemblyMaps","Promise","all","getRefNameMapForAdapter","minmax","short","coord","oob","useAssemblyName","isElectron","navigator","userAgent","revcom","seqString","reverse","complement","split","complementRegex","complementTable","S","w","r","N","K","Y","V","M","h","k","g","t","W","X","v","B","H","c","D","R","rIC","requestIdleCallback","widths","measureText","total","code","charCodeAt","getFrame","strand","phase","defaultStarts","defaultStops","defaultCodonTable","TCA","TCC","TCG","TCT","TTC","TTT","TTA","TTG","TAC","TAT","TAA","TAG","TGC","TGT","TGA","TGG","CTA","CTC","CTG","CTT","CCA","CCC","CCG","CCT","CAC","CAT","CAA","CAG","CGA","CGC","CGG","CGT","ATA","ATC","ATT","ATG","ACA","ACC","ACG","ACT","AAC","AAT","AAA","AAG","AGC","AGT","AGA","AGG","GTA","GTC","GTG","GTT","GCA","GCC","GCG","GCT","GAC","GAT","GAA","GAG","GGA","GGC","GGG","GGT","generateCodonTable","table","tempCodonTable","codon","aa","nucs","nuc","charAt","toUpperCase","toLowerCase","n0","j","n1","n2","updateStatus","msg","fn","res","hashCode","hash","objectHash","obj","bytesForRegions","index","blocksForRange","flat","block","minv","blockPosition","maxv","reduce","isSupportedIndexingAdapter","getBpDisplayStr","totalBp","parseFloat","toPrecision","toLocaleString","getTickDisplayStr","toFixed","getViewParams","exportSVG","dynamicBlocks","staticBlocks","offsetPx","contentBlocks","staticblock","staticblock1","offsetPx1","getLayoutId","layoutId","initialValue","storedValue","setStoredValue","localStorage","getItem","valueToStore","Function","setItem","getUriLink","uri","baseUri","href","URL","getStr","isObject","coarseStripHTML","measureGridWidth","elements","stripHTML","element","getEnv","getEnvMST","localStorageGetItem","localStorageSetItem","init","NEGATIVE_INFINITY","entry","sum","avg","groupBy","push","mergeIntervals","intervals","stack","at","pop","gatherOverlaps","memo","flatMap","group","stripAlpha","colord","alpha","toHex","getStrokeProps","strokeOpacity","stroke","getFillProps","fillOpacity","renderToStaticMarkup","createRootFn","div","createElement","flushSync","render","innerHTML","isGzip","buf","getTrackAssemblyNames","track","getConfAssemblyNames","configuration","trackAssemblyNames","readConfObject","parent","getRpcSessionId","thisNode","highestRpcSessionId","isRoot","rpcSessionId","getParentRenderProps","renderProps","UNKNOWN","UNSUPPORTED","blobMap","getBlob","getBlobMap","setBlobMap","storeBlobLocation","blobId","blob","locationType","makeIndex","localPath","makeIndexType","typeA","typeB","getFileName","guessAdapter","file","adapterHint","adapter","evaluateExtensionPoint","_file","_index","_adapterHint","adapterGuesser","guessTrackType","trackType","_adapterName","trackTypeGuesser","generateUnsupportedTrackConf","trackName","trackUrl","categories","category","trackId","generateUnknownTrackConf","getTrackName","asm","assemblies","find","sequence","ElementId","types","optional","identifier","nanoid","NoAssemblyRegion","string","number","boolean","actions","setRefName","newRefName","Region","compose","LocalPathLocation","literal","BlobLocation","UriLocationRaw","maybe","internetAccountPreAuthorization","internetAccountType","authInfo","frozen","UriLocation","snapshotProcessor","postProcessor","snap","FileLocation","union","preProcessor","AssemblyManager","DataManagementPlugin","Plugin","exports","install","UCSCTrackHubConnectionF","AddTrackWidgetF","HierarchicalTrackSelectorWidgetF","AddConnectionWidgetF","PluginStoreWidgetF","configure","_pluginManager","isUMDPluginDefinition","def","umdUrl","url","umdLoc","isESMPluginDefinition","esmUrl","esmLoc","isCJSPluginDefinition","cjsUrl","PluginLoader","definitions","defs","fetchESM","fetchCJS","loadCJSPlugin","parsedUrl","protocol","loadESMPlugin","plugin","loadUMDPlugin","moduleName","umdName","scriptUrl","globalThis","src","resolve","reject","domLoadScript","err","script","importScripts","loadScript","loadPlugin","pluginDefinition","installGlobalReExports","JBrowseExports","ReExports","module","load","definition","enableStaticRendering","corePlugins","opts","configurationP","listener","message","postMessage","receiveConfiguration","pluginLoader","plugins","PluginManager","p","windowHref","P","createPluggableElements","getPluginManager","rpcConfig","getRpcElements","execute","channel","rpcDriverClassName","statusCallback","rpcServer","emit","RpcServer","Server","ping","serializeError","initializeWorker","import","fetch","cancelIdleCallback","createTextNode","querySelector","appendChild","documentElement","querySelectorAll","removeAttribute","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__webpack_exports__","O","chunkIds","notFulfilled","Infinity","fulfilled","every","splice","getter","__esModule","getPrototypeOf","then","ns","getOwnPropertyNames","o","defineProperty","enumerable","chunkId","promises","u","miniCssF","prop","prototype","hasOwnProperty","currentScript","scripts","getElementsByTagName","installedChunks","chunkLoadingGlobal","parentChunkLoadingFunction","moreModules","runtime","nc"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2062.a28f26f8.chunk.js --- a/x/static/js/2062.a28f26f8.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2062],{81762:(e,t,o)=>{o.d(t,{A:()=>i,P:()=>n});var r=o(7552);const a=r.createContext({});function n(){return r.useContext(a)}const i=a},12062:(e,t,o)=>{o.r(t),o.d(t,{default:()=>f,getStepButtonUtilityClass:()=>b,stepButtonClasses:()=>A});var r=o(7552),a=o(93878),n=o(70799),i=o(51148),l=o(4785),s=o(48054),c=o(96403),p=o(3755),d=o(29628),u=o(81762),m=o(33761),v=o(85693);function b(e){return(0,v.Ay)("MuiStepButton",e)}const A=(0,m.A)("MuiStepButton",["root","horizontal","vertical","touchRipple"]);var x=o(69500);const h=(0,i.Ay)(s.A,{name:"MuiStepButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[{[`& .${A.touchRipple}`]:t.touchRipple},t.root,t[o.orientation]]}})({width:"100%",padding:"24px 16px",margin:"-24px -16px",boxSizing:"content-box",[`& .${A.touchRipple}`]:{color:"rgba(0, 0, 0, 0.3)"},variants:[{props:{orientation:"vertical"},style:{justifyContent:"flex-start",padding:"8px",margin:"-8px"}}]}),f=r.forwardRef((function(e,t){const o=(0,l.b)({props:e,name:"MuiStepButton"}),{children:i,className:s,icon:m,optional:v,...A}=o,{disabled:f,active:y}=r.useContext(u.A),{orientation:S}=r.useContext(d.A),C={...o,orientation:S},g=(e=>{const{classes:t,orientation:o}=e,r={root:["root",o],touchRipple:["touchRipple"]};return(0,n.A)(r,b,t)})(C),w={icon:m,optional:v},L=(0,p.A)(i,["StepLabel"])?r.cloneElement(i,w):(0,x.jsx)(c.A,{...w,children:i});return(0,x.jsx)(h,{focusRipple:!0,disabled:f,TouchRippleProps:{className:g.touchRipple},className:(0,a.A)(g.root,s),ref:t,ownerState:C,"aria-current":y?"step":void 0,...A,children:L})}))},47450:(e,t,o)=>{o.d(t,{A:()=>h});var r=o(7552),a=o(93878),n=o(70799),i=o(51148),l=o(60129),s=o(4785),c=o(74893),p=o(69500);const d=(0,c.A)((0,p.jsx)("path",{d:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z"}),"CheckCircle"),u=(0,c.A)((0,p.jsx)("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");var m,v=o(2859),b=o(72755);const A=(0,i.Ay)(v.A,{name:"MuiStepIcon",slot:"Root",overridesResolver:(e,t)=>t.root})((0,l.A)((({theme:e})=>({display:"block",transition:e.transitions.create("color",{duration:e.transitions.duration.shortest}),color:(e.vars||e).palette.text.disabled,[`&.${b.A.completed}`]:{color:(e.vars||e).palette.primary.main},[`&.${b.A.active}`]:{color:(e.vars||e).palette.primary.main},[`&.${b.A.error}`]:{color:(e.vars||e).palette.error.main}})))),x=(0,i.Ay)("text",{name:"MuiStepIcon",slot:"Text",overridesResolver:(e,t)=>t.text})((0,l.A)((({theme:e})=>({fill:(e.vars||e).palette.primary.contrastText,fontSize:e.typography.caption.fontSize,fontFamily:e.typography.fontFamily})))),h=r.forwardRef((function(e,t){const o=(0,s.b)({props:e,name:"MuiStepIcon"}),{active:r=!1,className:i,completed:l=!1,error:c=!1,icon:v,...h}=o,f={...o,active:r,completed:l,error:c},y=(e=>{const{classes:t,active:o,completed:r,error:a}=e,i={root:["root",o&&"active",r&&"completed",a&&"error"],text:["text"]};return(0,n.A)(i,b.K,t)})(f);if("number"==typeof v||"string"==typeof v){const e=(0,a.A)(i,y.root);return c?(0,p.jsx)(A,{as:u,className:e,ref:t,ownerState:f,...h}):l?(0,p.jsx)(A,{as:d,className:e,ref:t,ownerState:f,...h}):(0,p.jsxs)(A,{className:e,ref:t,ownerState:f,...h,children:[m||(m=(0,p.jsx)("circle",{cx:"12",cy:"12",r:"12"})),(0,p.jsx)(x,{className:y.text,x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",ownerState:f,children:v})]})}return v}))},72755:(e,t,o)=>{o.d(t,{A:()=>i,K:()=>n});var r=o(33761),a=o(85693);function n(e){return(0,a.Ay)("MuiStepIcon",e)}const i=(0,r.A)("MuiStepIcon",["root","active","completed","error","text"])},96403:(e,t,o)=>{o.d(t,{A:()=>y});var r=o(70799),a=o(93878),n=o(7552),i=o(81762),l=o(47450),s=o(29628),c=o(51148),p=o(60129),d=o(4785),u=o(34247),m=o(43045),v=o(69500);const b=(0,c.Ay)("span",{name:"MuiStepLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,t[o.orientation]]}})({display:"flex",alignItems:"center",[`&.${u.A.alternativeLabel}`]:{flexDirection:"column"},[`&.${u.A.disabled}`]:{cursor:"default"},variants:[{props:{orientation:"vertical"},style:{textAlign:"left",padding:"8px 0"}}]}),A=(0,c.Ay)("span",{name:"MuiStepLabel",slot:"Label",overridesResolver:(e,t)=>t.label})((0,p.A)((({theme:e})=>({...e.typography.body2,display:"block",transition:e.transitions.create("color",{duration:e.transitions.duration.shortest}),[`&.${u.A.active}`]:{color:(e.vars||e).palette.text.primary,fontWeight:500},[`&.${u.A.completed}`]:{color:(e.vars||e).palette.text.primary,fontWeight:500},[`&.${u.A.alternativeLabel}`]:{marginTop:16},[`&.${u.A.error}`]:{color:(e.vars||e).palette.error.main}})))),x=(0,c.Ay)("span",{name:"MuiStepLabel",slot:"IconContainer",overridesResolver:(e,t)=>t.iconContainer})({flexShrink:0,display:"flex",paddingRight:8,[`&.${u.A.alternativeLabel}`]:{paddingRight:0}}),h=(0,c.Ay)("span",{name:"MuiStepLabel",slot:"LabelContainer",overridesResolver:(e,t)=>t.labelContainer})((0,p.A)((({theme:e})=>({width:"100%",color:(e.vars||e).palette.text.secondary,[`&.${u.A.alternativeLabel}`]:{textAlign:"center"}})))),f=n.forwardRef((function(e,t){const o=(0,d.b)({props:e,name:"MuiStepLabel"}),{children:c,className:p,componentsProps:f={},error:y=!1,icon:S,optional:C,slots:g={},slotProps:w={},StepIconComponent:L,StepIconProps:R,...M}=o,{alternativeLabel:j,orientation:N}=n.useContext(s.A),{active:$,disabled:I,completed:z,icon:k}=n.useContext(i.A),P=S||k;let T=L;P&&!T&&(T=l.A);const B={...o,active:$,alternativeLabel:j,completed:z,disabled:I,error:y,orientation:N},F=(e=>{const{classes:t,orientation:o,active:a,completed:n,error:i,disabled:l,alternativeLabel:s}=e,c={root:["root",o,i&&"error",l&&"disabled",s&&"alternativeLabel"],label:["label",a&&"active",n&&"completed",i&&"error",l&&"disabled",s&&"alternativeLabel"],iconContainer:["iconContainer",a&&"active",n&&"completed",i&&"error",l&&"disabled",s&&"alternativeLabel"],labelContainer:["labelContainer",s&&"alternativeLabel"]};return(0,r.A)(c,u.p,t)})(B),_={slots:g,slotProps:{stepIcon:R,...f,...w}},[W,K]=(0,m.A)("label",{elementType:A,externalForwardedProps:_,ownerState:B}),[D,E]=(0,m.A)("stepIcon",{elementType:T,externalForwardedProps:_,ownerState:B});return(0,v.jsxs)(b,{className:(0,a.A)(F.root,p),ref:t,ownerState:B,...M,children:[P||D?(0,v.jsx)(x,{className:F.iconContainer,ownerState:B,children:(0,v.jsx)(D,{completed:z,active:$,error:y,icon:P,...E})}):null,(0,v.jsxs)(h,{className:F.labelContainer,ownerState:B,children:[c?(0,v.jsx)(W,{...K,className:(0,a.A)(F.label,K?.className),children:c}):null,C]})]})}));f&&(f.muiName="StepLabel");const y=f},34247:(e,t,o)=>{o.d(t,{A:()=>i,p:()=>n});var r=o(33761),a=o(85693);function n(e){return(0,a.Ay)("MuiStepLabel",e)}const i=(0,r.A)("MuiStepLabel",["root","horizontal","vertical","label","active","completed","error","disabled","iconContainer","alternativeLabel","labelContainer"])},29628:(e,t,o)=>{o.d(t,{A:()=>i,s:()=>n});var r=o(7552);const a=r.createContext({});function n(){return r.useContext(a)}const i=a}}]); -//# sourceMappingURL=2062.a28f26f8.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2062.a28f26f8.chunk.js.map --- a/x/static/js/2062.a28f26f8.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2062.a28f26f8.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/Step/StepContext.js","../../../node_modules/@mui/material/StepButton/stepButtonClasses.js","../../../node_modules/@mui/material/StepButton/StepButton.js","../../../node_modules/@mui/material/internal/svg-icons/CheckCircle.js","../../../node_modules/@mui/material/internal/svg-icons/Warning.js","../../../node_modules/@mui/material/StepIcon/StepIcon.js","../../../node_modules/@mui/material/StepIcon/stepIconClasses.js","../../../node_modules/@mui/material/StepLabel/StepLabel.js","../../../node_modules/@mui/material/StepLabel/stepLabelClasses.js","../../../node_modules/@mui/material/Stepper/StepperContext.js"],"sourcesContent":["import * as React from 'react';\n/**\n * Provides information about the current step in Stepper.\n */\nconst StepContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n StepContext.displayName = 'StepContext';\n}\n\n/**\n * Returns the current StepContext or an empty object if no StepContext\n * has been defined in the component tree.\n */\nexport function useStepContext() {\n return React.useContext(StepContext);\n}\nexport default StepContext;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getStepButtonUtilityClass(slot) {\n return generateUtilityClass('MuiStepButton', slot);\n}\nconst stepButtonClasses = generateUtilityClasses('MuiStepButton', ['root', 'horizontal', 'vertical', 'touchRipple']);\nexport default stepButtonClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport StepLabel from \"../StepLabel/index.js\";\nimport isMuiElement from \"../utils/isMuiElement.js\";\nimport StepperContext from \"../Stepper/StepperContext.js\";\nimport StepContext from \"../Step/StepContext.js\";\nimport stepButtonClasses, { getStepButtonUtilityClass } from \"./stepButtonClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation\n } = ownerState;\n const slots = {\n root: ['root', orientation],\n touchRipple: ['touchRipple']\n };\n return composeClasses(slots, getStepButtonUtilityClass, classes);\n};\nconst StepButtonRoot = styled(ButtonBase, {\n name: 'MuiStepButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${stepButtonClasses.touchRipple}`]: styles.touchRipple\n }, styles.root, styles[ownerState.orientation]];\n }\n})({\n width: '100%',\n padding: '24px 16px',\n margin: '-24px -16px',\n boxSizing: 'content-box',\n [`& .${stepButtonClasses.touchRipple}`]: {\n color: 'rgba(0, 0, 0, 0.3)'\n },\n variants: [{\n props: {\n orientation: 'vertical'\n },\n style: {\n justifyContent: 'flex-start',\n padding: '8px',\n margin: '-8px'\n }\n }]\n});\nconst StepButton = /*#__PURE__*/React.forwardRef(function StepButton(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiStepButton'\n });\n const {\n children,\n className,\n icon,\n optional,\n ...other\n } = props;\n const {\n disabled,\n active\n } = React.useContext(StepContext);\n const {\n orientation\n } = React.useContext(StepperContext);\n const ownerState = {\n ...props,\n orientation\n };\n const classes = useUtilityClasses(ownerState);\n const childProps = {\n icon,\n optional\n };\n const child = isMuiElement(children, ['StepLabel']) ? (/*#__PURE__*/React.cloneElement(children, childProps)) : /*#__PURE__*/_jsx(StepLabel, {\n ...childProps,\n children: children\n });\n return /*#__PURE__*/_jsx(StepButtonRoot, {\n focusRipple: true,\n disabled: disabled,\n TouchRippleProps: {\n className: classes.touchRipple\n },\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n \"aria-current\": active ? 'step' : undefined,\n ...other,\n children: child\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? StepButton.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Can be a `StepLabel` or a node to place inside `StepLabel` as children.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The icon displayed by the step label.\n */\n icon: PropTypes.node,\n /**\n * The optional node to display.\n */\n optional: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default StepButton;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z\"\n}), 'CheckCircle');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');","'use client';\n\nvar _circle;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport CheckCircle from \"../internal/svg-icons/CheckCircle.js\";\nimport Warning from \"../internal/svg-icons/Warning.js\";\nimport SvgIcon from \"../SvgIcon/index.js\";\nimport stepIconClasses, { getStepIconUtilityClass } from \"./stepIconClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n active,\n completed,\n error\n } = ownerState;\n const slots = {\n root: ['root', active && 'active', completed && 'completed', error && 'error'],\n text: ['text']\n };\n return composeClasses(slots, getStepIconUtilityClass, classes);\n};\nconst StepIconRoot = styled(SvgIcon, {\n name: 'MuiStepIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => ({\n display: 'block',\n transition: theme.transitions.create('color', {\n duration: theme.transitions.duration.shortest\n }),\n color: (theme.vars || theme).palette.text.disabled,\n [`&.${stepIconClasses.completed}`]: {\n color: (theme.vars || theme).palette.primary.main\n },\n [`&.${stepIconClasses.active}`]: {\n color: (theme.vars || theme).palette.primary.main\n },\n [`&.${stepIconClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n})));\nconst StepIconText = styled('text', {\n name: 'MuiStepIcon',\n slot: 'Text',\n overridesResolver: (props, styles) => styles.text\n})(memoTheme(({\n theme\n}) => ({\n fill: (theme.vars || theme).palette.primary.contrastText,\n fontSize: theme.typography.caption.fontSize,\n fontFamily: theme.typography.fontFamily\n})));\nconst StepIcon = /*#__PURE__*/React.forwardRef(function StepIcon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiStepIcon'\n });\n const {\n active = false,\n className: classNameProp,\n completed = false,\n error = false,\n icon,\n ...other\n } = props;\n const ownerState = {\n ...props,\n active,\n completed,\n error\n };\n const classes = useUtilityClasses(ownerState);\n if (typeof icon === 'number' || typeof icon === 'string') {\n const className = clsx(classNameProp, classes.root);\n if (error) {\n return /*#__PURE__*/_jsx(StepIconRoot, {\n as: Warning,\n className: className,\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n }\n if (completed) {\n return /*#__PURE__*/_jsx(StepIconRoot, {\n as: CheckCircle,\n className: className,\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n }\n return /*#__PURE__*/_jsxs(StepIconRoot, {\n className: className,\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [_circle || (_circle = /*#__PURE__*/_jsx(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"12\"\n })), /*#__PURE__*/_jsx(StepIconText, {\n className: classes.text,\n x: \"12\",\n y: \"12\",\n textAnchor: \"middle\",\n dominantBaseline: \"central\",\n ownerState: ownerState,\n children: icon\n })]\n });\n }\n return icon;\n});\nprocess.env.NODE_ENV !== \"production\" ? StepIcon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Whether this step is active.\n * @default false\n */\n active: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Mark the step as completed. Is passed to child components.\n * @default false\n */\n completed: PropTypes.bool,\n /**\n * If `true`, the step is marked as failed.\n * @default false\n */\n error: PropTypes.bool,\n /**\n * The label displayed in the step icon.\n */\n icon: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default StepIcon;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getStepIconUtilityClass(slot) {\n return generateUtilityClass('MuiStepIcon', slot);\n}\nconst stepIconClasses = generateUtilityClasses('MuiStepIcon', ['root', 'active', 'completed', 'error', 'text']);\nexport default stepIconClasses;","'use client';\n\nimport composeClasses from '@mui/utils/composeClasses';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport StepContext from \"../Step/StepContext.js\";\nimport StepIcon from \"../StepIcon/index.js\";\nimport StepperContext from \"../Stepper/StepperContext.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport stepLabelClasses, { getStepLabelUtilityClass } from \"./stepLabelClasses.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n active,\n completed,\n error,\n disabled,\n alternativeLabel\n } = ownerState;\n const slots = {\n root: ['root', orientation, error && 'error', disabled && 'disabled', alternativeLabel && 'alternativeLabel'],\n label: ['label', active && 'active', completed && 'completed', error && 'error', disabled && 'disabled', alternativeLabel && 'alternativeLabel'],\n iconContainer: ['iconContainer', active && 'active', completed && 'completed', error && 'error', disabled && 'disabled', alternativeLabel && 'alternativeLabel'],\n labelContainer: ['labelContainer', alternativeLabel && 'alternativeLabel']\n };\n return composeClasses(slots, getStepLabelUtilityClass, classes);\n};\nconst StepLabelRoot = styled('span', {\n name: 'MuiStepLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation]];\n }\n})({\n display: 'flex',\n alignItems: 'center',\n [`&.${stepLabelClasses.alternativeLabel}`]: {\n flexDirection: 'column'\n },\n [`&.${stepLabelClasses.disabled}`]: {\n cursor: 'default'\n },\n variants: [{\n props: {\n orientation: 'vertical'\n },\n style: {\n textAlign: 'left',\n padding: '8px 0'\n }\n }]\n});\nconst StepLabelLabel = styled('span', {\n name: 'MuiStepLabel',\n slot: 'Label',\n overridesResolver: (props, styles) => styles.label\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n display: 'block',\n transition: theme.transitions.create('color', {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${stepLabelClasses.active}`]: {\n color: (theme.vars || theme).palette.text.primary,\n fontWeight: 500\n },\n [`&.${stepLabelClasses.completed}`]: {\n color: (theme.vars || theme).palette.text.primary,\n fontWeight: 500\n },\n [`&.${stepLabelClasses.alternativeLabel}`]: {\n marginTop: 16\n },\n [`&.${stepLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n})));\nconst StepLabelIconContainer = styled('span', {\n name: 'MuiStepLabel',\n slot: 'IconContainer',\n overridesResolver: (props, styles) => styles.iconContainer\n})({\n flexShrink: 0,\n display: 'flex',\n paddingRight: 8,\n [`&.${stepLabelClasses.alternativeLabel}`]: {\n paddingRight: 0\n }\n});\nconst StepLabelLabelContainer = styled('span', {\n name: 'MuiStepLabel',\n slot: 'LabelContainer',\n overridesResolver: (props, styles) => styles.labelContainer\n})(memoTheme(({\n theme\n}) => ({\n width: '100%',\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${stepLabelClasses.alternativeLabel}`]: {\n textAlign: 'center'\n }\n})));\nconst StepLabel = /*#__PURE__*/React.forwardRef(function StepLabel(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiStepLabel'\n });\n const {\n children,\n className,\n componentsProps = {},\n error = false,\n icon: iconProp,\n optional,\n slots = {},\n slotProps = {},\n StepIconComponent: StepIconComponentProp,\n StepIconProps,\n ...other\n } = props;\n const {\n alternativeLabel,\n orientation\n } = React.useContext(StepperContext);\n const {\n active,\n disabled,\n completed,\n icon: iconContext\n } = React.useContext(StepContext);\n const icon = iconProp || iconContext;\n let StepIconComponent = StepIconComponentProp;\n if (icon && !StepIconComponent) {\n StepIconComponent = StepIcon;\n }\n const ownerState = {\n ...props,\n active,\n alternativeLabel,\n completed,\n disabled,\n error,\n orientation\n };\n const classes = useUtilityClasses(ownerState);\n const externalForwardedProps = {\n slots,\n slotProps: {\n stepIcon: StepIconProps,\n ...componentsProps,\n ...slotProps\n }\n };\n const [LabelSlot, labelProps] = useSlot('label', {\n elementType: StepLabelLabel,\n externalForwardedProps,\n ownerState\n });\n const [StepIconSlot, stepIconProps] = useSlot('stepIcon', {\n elementType: StepIconComponent,\n externalForwardedProps,\n ownerState\n });\n return /*#__PURE__*/_jsxs(StepLabelRoot, {\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [icon || StepIconSlot ? /*#__PURE__*/_jsx(StepLabelIconContainer, {\n className: classes.iconContainer,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(StepIconSlot, {\n completed: completed,\n active: active,\n error: error,\n icon: icon,\n ...stepIconProps\n })\n }) : null, /*#__PURE__*/_jsxs(StepLabelLabelContainer, {\n className: classes.labelContainer,\n ownerState: ownerState,\n children: [children ? /*#__PURE__*/_jsx(LabelSlot, {\n ...labelProps,\n className: clsx(classes.label, labelProps?.className),\n children: children\n }) : null, optional]\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? StepLabel.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * In most cases will simply be a string containing a title for the label.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The props used for each slot inside.\n * @default {}\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n componentsProps: PropTypes.shape({\n label: PropTypes.object\n }),\n /**\n * If `true`, the step is marked as failed.\n * @default false\n */\n error: PropTypes.bool,\n /**\n * Override the default label of the step icon.\n */\n icon: PropTypes.node,\n /**\n * The optional node to display.\n */\n optional: PropTypes.node,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n label: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n stepIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n label: PropTypes.elementType,\n stepIcon: PropTypes.elementType\n }),\n /**\n * The component to render in place of the [`StepIcon`](https://mui.com/material-ui/api/step-icon/).\n */\n StepIconComponent: PropTypes.elementType,\n /**\n * Props applied to the [`StepIcon`](https://mui.com/material-ui/api/step-icon/) element.\n */\n StepIconProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nif (StepLabel) {\n StepLabel.muiName = 'StepLabel';\n}\nexport default StepLabel;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getStepLabelUtilityClass(slot) {\n return generateUtilityClass('MuiStepLabel', slot);\n}\nconst stepLabelClasses = generateUtilityClasses('MuiStepLabel', ['root', 'horizontal', 'vertical', 'label', 'active', 'completed', 'error', 'disabled', 'iconContainer', 'alternativeLabel', 'labelContainer']);\nexport default stepLabelClasses;","import * as React from 'react';\n/**\n * Provides information about the current step in Stepper.\n */\nconst StepperContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n StepperContext.displayName = 'StepperContext';\n}\n\n/**\n * Returns the current StepperContext or an empty object if no StepperContext\n * has been defined in the component tree.\n */\nexport function useStepperContext() {\n return React.useContext(StepperContext);\n}\nexport default StepperContext;"],"names":["StepContext","useStepContext","getStepButtonUtilityClass","slot","generateUtilityClass","generateUtilityClasses","StepButtonRoot","styled","ButtonBase","name","overridesResolver","props","styles","ownerState","touchRipple","root","orientation","width","padding","margin","boxSizing","color","variants","style","justifyContent","inProps","ref","children","className","icon","optional","other","disabled","active","StepperContext","classes","slots","composeClasses","useUtilityClasses","childProps","child","isMuiElement","StepLabel","focusRipple","TouchRippleProps","clsx","undefined","createSvgIcon","d","_circle","StepIconRoot","SvgIcon","memoTheme","theme","display","transition","transitions","create","duration","shortest","vars","palette","text","stepIconClasses","completed","primary","main","error","StepIconText","fill","contrastText","fontSize","typography","caption","fontFamily","classNameProp","as","Warning","CheckCircle","cx","cy","r","x","y","textAnchor","dominantBaseline","getStepIconUtilityClass","StepLabelRoot","alignItems","alternativeLabel","flexDirection","cursor","textAlign","StepLabelLabel","label","body2","fontWeight","marginTop","StepLabelIconContainer","iconContainer","flexShrink","paddingRight","StepLabelLabelContainer","labelContainer","secondary","componentsProps","iconProp","slotProps","StepIconComponent","StepIconComponentProp","StepIconProps","iconContext","externalForwardedProps","stepIcon","LabelSlot","labelProps","elementType","StepIconSlot","stepIconProps","muiName","getStepLabelUtilityClass","useStepperContext"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2141.d36fb4a8.chunk.js --- a/x/static/js/2141.d36fb4a8.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2141],{38815:(e,o,i)=>{i.d(o,{A:()=>p});var a=i(7552),r=i(93878),t=i(70799),n=i(51148),s=i(4785),d=i(61547),c=i(69500);const m=(0,n.Ay)("div",{name:"MuiCardMedia",slot:"Root",overridesResolver:(e,o)=>{const{ownerState:i}=e,{isMediaComponent:a,isImageComponent:r}=i;return[o.root,a&&o.media,r&&o.img]}})({display:"block",backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center",variants:[{props:{isMediaComponent:!0},style:{width:"100%"}},{props:{isImageComponent:!0},style:{objectFit:"cover"}}]}),l=["video","audio","picture","iframe","img"],u=["picture","img"],p=a.forwardRef((function(e,o){const i=(0,s.b)({props:e,name:"MuiCardMedia"}),{children:a,className:n,component:p="div",image:g,src:C,style:b,...M}=i,v=l.includes(p),w=!v&&g?{backgroundImage:`url("${g}")`,...b}:b,k={...i,component:p,isMediaComponent:v,isImageComponent:u.includes(p)},A=(e=>{const{classes:o,isMediaComponent:i,isImageComponent:a}=e,r={root:["root",i&&"media",a&&"img"]};return(0,t.A)(r,d.R,o)})(k);return(0,c.jsx)(m,{className:(0,r.A)(A.root,n),as:p,role:!v&&g?"img":void 0,ref:o,style:w,ownerState:k,src:v?g||C:void 0,...M,children:a})}))},61547:(e,o,i)=>{i.d(o,{A:()=>n,R:()=>t});var a=i(33761),r=i(85693);function t(e){return(0,r.Ay)("MuiCardMedia",e)}const n=(0,a.A)("MuiCardMedia",["root","media","img"])},12141:(e,o,i)=>{i.r(o),i.d(o,{cardMediaClasses:()=>r.A,default:()=>a.A,getCardMediaUtilityClass:()=>r.R});var a=i(38815),r=i(61547)}}]); -//# sourceMappingURL=2141.d36fb4a8.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2141.d36fb4a8.chunk.js.map --- a/x/static/js/2141.d36fb4a8.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2141.d36fb4a8.chunk.js","mappings":"yNAWA,MAWMA,GAAgB,QAAO,MAAO,CAClCC,KAAM,eACNC,KAAM,OACNC,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJC,GACEF,GACE,iBACJG,EAAgB,iBAChBC,GACEF,EACJ,MAAO,CAACD,EAAOI,KAAMF,GAAoBF,EAAOK,MAAOF,GAAoBH,EAAOM,IAAI,GAXpE,CAanB,CACDC,QAAS,QACTC,eAAgB,QAChBC,iBAAkB,YAClBC,mBAAoB,SACpBC,SAAU,CAAC,CACTZ,MAAO,CACLG,kBAAkB,GAEpBU,MAAO,CACLC,MAAO,SAER,CACDd,MAAO,CACLI,kBAAkB,GAEpBS,MAAO,CACLE,UAAW,aAIXC,EAAmB,CAAC,QAAS,QAAS,UAAW,SAAU,OAC3DC,EAAmB,CAAC,UAAW,OAuFrC,EAtF+B,cAAiB,SAAmBC,EAASC,GAC1E,MAAMnB,GAAQ,OAAgB,CAC5BA,MAAOkB,EACPrB,KAAM,kBAEF,SACJuB,EAAQ,UACRC,EAAS,UACTC,EAAY,MAAK,MACjBC,EAAK,IACLC,EAAG,MACHX,KACGY,GACDzB,EACEG,EAAmBa,EAAiBU,SAASJ,GAC7CK,GAAiBxB,GAAoBoB,EAAQ,CACjDK,gBAAiB,QAAQL,SACtBV,GACDA,EACEX,EAAa,IACdF,EACHsB,YACAnB,mBACAC,iBAAkBa,EAAiBS,SAASJ,IAExCO,EAxEkB3B,KACxB,MAAM,QACJ2B,EAAO,iBACP1B,EAAgB,iBAChBC,GACEF,EACE4B,EAAQ,CACZzB,KAAM,CAAC,OAAQF,GAAoB,QAASC,GAAoB,QAElE,OAAO,OAAe0B,EAAO,IAA0BD,EAAQ,EA+D/CE,CAAkB7B,GAClC,OAAoB,SAAKN,EAAe,CACtCyB,WAAW,OAAKQ,EAAQxB,KAAMgB,GAC9BW,GAAIV,EACJW,MAAO9B,GAAoBoB,EAAQ,WAAQW,EAC3Cf,IAAKA,EACLN,MAAOc,EACPzB,WAAYA,EACZsB,IAAKrB,EAAmBoB,GAASC,OAAMU,KACpCT,EACHL,SAAUA,GAEd,G,qEC7FO,SAASe,EAAyBrC,GACvC,OAAO,QAAqB,eAAgBA,EAC9C,CACA,MACA,GADyB,OAAuB,eAAgB,CAAC,OAAQ,QAAS,O","sources":["../../../node_modules/@mui/material/CardMedia/CardMedia.js","../../../node_modules/@mui/material/CardMedia/cardMediaClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getCardMediaUtilityClass } from \"./cardMediaClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n isMediaComponent,\n isImageComponent\n } = ownerState;\n const slots = {\n root: ['root', isMediaComponent && 'media', isImageComponent && 'img']\n };\n return composeClasses(slots, getCardMediaUtilityClass, classes);\n};\nconst CardMediaRoot = styled('div', {\n name: 'MuiCardMedia',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n isMediaComponent,\n isImageComponent\n } = ownerState;\n return [styles.root, isMediaComponent && styles.media, isImageComponent && styles.img];\n }\n})({\n display: 'block',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n variants: [{\n props: {\n isMediaComponent: true\n },\n style: {\n width: '100%'\n }\n }, {\n props: {\n isImageComponent: true\n },\n style: {\n objectFit: 'cover'\n }\n }]\n});\nconst MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img'];\nconst IMAGE_COMPONENTS = ['picture', 'img'];\nconst CardMedia = /*#__PURE__*/React.forwardRef(function CardMedia(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardMedia'\n });\n const {\n children,\n className,\n component = 'div',\n image,\n src,\n style,\n ...other\n } = props;\n const isMediaComponent = MEDIA_COMPONENTS.includes(component);\n const composedStyle = !isMediaComponent && image ? {\n backgroundImage: `url(\"${image}\")`,\n ...style\n } : style;\n const ownerState = {\n ...props,\n component,\n isMediaComponent,\n isImageComponent: IMAGE_COMPONENTS.includes(component)\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardMediaRoot, {\n className: clsx(classes.root, className),\n as: component,\n role: !isMediaComponent && image ? 'img' : undefined,\n ref: ref,\n style: composedStyle,\n ownerState: ownerState,\n src: isMediaComponent ? image || src : undefined,\n ...other,\n children: children\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardMedia.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: chainPropTypes(PropTypes.node, props => {\n if (!props.children && !props.image && !props.src && !props.component) {\n return new Error('MUI: Either `children`, `image`, `src` or `component` prop must be specified.');\n }\n return null;\n }),\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Image to be displayed as a background image.\n * Either `image` or `src` prop must be specified.\n * Note that caller must specify height otherwise the image will not be visible.\n */\n image: PropTypes.string,\n /**\n * An alias for `image` property.\n * Available only with media components.\n * Media components: `video`, `audio`, `picture`, `iframe`, `img`.\n */\n src: PropTypes.string,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardMedia;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardMediaUtilityClass(slot) {\n return generateUtilityClass('MuiCardMedia', slot);\n}\nconst cardMediaClasses = generateUtilityClasses('MuiCardMedia', ['root', 'media', 'img']);\nexport default cardMediaClasses;"],"names":["CardMediaRoot","name","slot","overridesResolver","props","styles","ownerState","isMediaComponent","isImageComponent","root","media","img","display","backgroundSize","backgroundRepeat","backgroundPosition","variants","style","width","objectFit","MEDIA_COMPONENTS","IMAGE_COMPONENTS","inProps","ref","children","className","component","image","src","other","includes","composedStyle","backgroundImage","classes","slots","useUtilityClasses","as","role","undefined","getCardMediaUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2189.3c65daf8.chunk.js --- a/x/static/js/2189.3c65daf8.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2189],{12189:(e,t,a)=>{a.r(t),a.d(t,{default:()=>O});var n=a(7552),l=a(61723),s=a(75653),r=a(36715),m=a(67314),u=a(58181),c=a(2051),o=a(55851),i=a(29629),A=a(66765),v=a(75785),b=a(49823),f=a(99546),E=a(58701),L=a(22168),W=a(1773),d=a(38815);const p="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACWCAMAAACsAjcrAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAHsIAAB7CAF4JB2hAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAEVQTFRFAAAACSRAElJkdhtk/60bDCQ/ElRgch5j/7EeEUFUSzRim3UsxHM7UTBjr4IoEUJUUjBi1oYwEURVDSM/E1Vgch5j/7Edkdc3HwAAABN0Uk5TABwcHBxVVVVVenp6er+/wMDAxLY4CkUAAAEKSURBVHja7ddbUsJAEEDRiBCiCIpI9r9URR6S+ZuuwmqGc3dwPm/XSZIkSVJ7zfqi2Z1C+q+iHgQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBOSBIE+L2l5KyOuytucbQBa76t6njvW+umUOyFQScKSBXEsijjyQP0nIkQhylsQcmSBHSdCRCnKQRB25ILvPj30bkM22DchmHLctQH4ccUkiyK8jLMkDOTmikjSQiyMoyQK5csQkSSATR0hyC0j9WK3GorcUY1XfUEKGO312EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQkP9pPhTNO0mSJElqr2+Mch/wyKIo2gAAAABJRU5ErkJggg==",q="data:image/png;base64,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",S="data:image/png;base64,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",V=(0,v.n9)()({card:{width:200,height:150,cursor:"pointer"},name:{marginTop:4,textAlign:"center",maxWidth:200},media:{height:150}}),B={name:`New session ${(new Date).toLocaleString()}`,connections:{}};function T({name:e,onClick:t=()=>{},image:a}){const{classes:l}=V(),[m,u]=(0,n.useState)(!1);return n.createElement(s.A,null,n.createElement(W.A,{className:l.card,onMouseOver:()=>{u(!0)},onMouseOut:()=>{u(!1)},onClick:t,raised:Boolean(m)},n.createElement(d.A,{className:l.media,image:a})),n.createElement(r.A,{variant:"subtitle2",className:l.name,style:{cursor:"pointer"},onClick:t},e))}function N({rootModel:e}){return n.createElement(T,{name:"Empty",image:p,onClick:()=>{e.setSession(B)}})}function k({rootModel:e}){return n.createElement(T,{name:"Linear Genome View",image:q,onClick:()=>{e.setSession({...B,name:`New session ${(new Date).toLocaleString()}`,views:[{type:"LinearGenomeView"}]})}})}function H({rootModel:e}){return n.createElement(T,{name:"Structural Variant Inspector",image:S,onClick:()=>{e.setSession({...B,name:`New session ${(new Date).toLocaleString()}`,views:[{type:"SvInspectorView"}]})}})}var x=a(45331),J=a(70087),g=a(89003),U=a(25762),j=a(17307);const Z=function({sessionName:e,onClick:t,onDelete:a}){const[s,m]=(0,n.useState)(null);return n.createElement(n.Fragment,null,n.createElement(x.Ay,{secondaryAction:n.createElement(l.A,{onClick:e=>{e.stopPropagation(),m(e.currentTarget)}},n.createElement(j.A,null))},n.createElement(J.A,{onClick:()=>{t(e)}},n.createElement(g.A,{title:e,enterDelay:300},n.createElement(r.A,{variant:"body2",noWrap:!0},e)))),n.createElement(c.A,{anchorEl:s,open:Boolean(s),onClose:()=>{m(null)}},n.createElement(i.A,{onClick:()=>{m(null),a?.(e)},disabled:!a},n.createElement(A.A,null,n.createElement(U.A,null)),n.createElement(r.A,{variant:"inherit"},"Delete"))))},y=(0,n.lazy)((()=>a.e(765).then(a.bind(a,40765)))),z=(0,n.lazy)((()=>Promise.resolve().then(a.bind(a,69941)))),R=(0,v.n9)()((e=>({newSession:{backgroundColor:e.palette.grey[300],padding:8,marginTop:8},header:{margin:8},settings:{float:"right"},list:{overflow:"auto",maxHeight:200}})));function O({rootModel:e,onFactoryReset:t}){const{classes:a}=R(),[v,W]=(0,n.useState)([]),[d,p]=(0,n.useState)(),[q,S]=(0,n.useState)(),[V,B]=(0,n.useState)(),[T,x]=(0,n.useState)(!0),[J,g]=(0,n.useState)(null),[U,j]=(0,n.useState)(!1);(0,n.useEffect)((()=>{(async()=>{try{q&&e.activateSession(q)}catch(e){B(e)}})()}),[e,q]),(0,n.useEffect)((()=>{(async()=>{try{T&&(x(!1),W(e.savedSessions.map((e=>e.name)).filter(f.notEmpty)))}catch(e){B(e)}})()}),[e.savedSessions,T]);const O=JSON.parse((0,f.localStorageGetItem)(e.previousAutosaveId)||"{}").session;return n.createElement(n.Fragment,null,U?n.createElement(n.Suspense,{fallback:null},n.createElement(z,{open:U,onFactoryReset:t,onClose:()=>{j(!1)}})):null,d?n.createElement(n.Suspense,{fallback:null},n.createElement(y,{rootModel:e,sessionToDelete:d,onClose:e=>{p(void 0),x(e)}})):null,n.createElement(l.A,{className:a.settings,onClick:e=>{e.stopPropagation(),g(e.currentTarget)}},n.createElement(L.A,null)),n.createElement(s.A,{maxWidth:"md"},n.createElement(b.LogoFull,null),n.createElement("div",{className:a.newSession},n.createElement(r.A,{variant:"h5",className:a.header},"Start a new session"),n.createElement(m.Ay,{container:!0,spacing:4},n.createElement(m.Ay,{item:!0},n.createElement(N,{rootModel:e})),n.createElement(m.Ay,{item:!0},n.createElement(k,{rootModel:e})),n.createElement(m.Ay,{item:!0},n.createElement(H,{rootModel:e})))),n.createElement("div",null,n.createElement(r.A,{variant:"h5",className:a.header},"Recent sessions"),n.createElement(u.A,{className:a.list},v.map((e=>n.createElement(Z,{key:e,sessionName:e,onClick:()=>{S(e)},onDelete:()=>{p(e)}})))),O?n.createElement(n.Fragment,null,n.createElement(r.A,{variant:"h5",className:a.header},"Last autosave session"),n.createElement(u.A,{className:a.list},n.createElement(Z,{sessionName:O.name,onClick:()=>{e.loadAutosaveSession()}}))):null,V?n.createElement(b.ErrorMessage,{error:V}):null)),n.createElement(c.A,{anchorEl:J,keepMounted:!0,open:Boolean(J),onClose:()=>{g(null)}},n.createElement(o.A,null,"Advanced Settings"),n.createElement(i.A,{onClick:()=>{j(!0),g(null)}},n.createElement(A.A,null,n.createElement(E.A,null)),n.createElement(r.A,{variant:"inherit"},"Reset"))))}}}]); -//# sourceMappingURL=2189.3c65daf8.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2189.3c65daf8.chunk.js.map --- a/x/static/js/2189.3c65daf8.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2189.3c65daf8.chunk.js","mappings":"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","sources":["components/img/index.ts","components/NewSessionCards.tsx","components/RecentSessionCard.tsx","components/StartScreen.tsx"],"sourcesContent":["export const emptyIcon =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACWCAMAAACsAjcrAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAHsIAAB7CAF4JB2hAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAEVQTFRFAAAACSRAElJkdhtk/60bDCQ/ElRgch5j/7EeEUFUSzRim3UsxHM7UTBjr4IoEUJUUjBi1oYwEURVDSM/E1Vgch5j/7Edkdc3HwAAABN0Uk5TABwcHBxVVVVVenp6er+/wMDAxLY4CkUAAAEKSURBVHja7ddbUsJAEEDRiBCiCIpI9r9URR6S+ZuuwmqGc3dwPm/XSZIkSVJ7zfqi2Z1C+q+iHgQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBOSBIE+L2l5KyOuytucbQBa76t6njvW+umUOyFQScKSBXEsijjyQP0nIkQhylsQcmSBHSdCRCnKQRB25ILvPj30bkM22DchmHLctQH4ccUkiyK8jLMkDOTmikjSQiyMoyQK5csQkSSATR0hyC0j9WK3GorcUY1XfUEKGO312EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQkP9pPhTNO0mSJElqr2+Mch/wyKIo2gAAAABJRU5ErkJggg=='\n\nexport const linearGenomeViewIcon =\n 'data:image/png;base64,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'\n\nexport const svInspectorIcon =\n 'data:image/png;base64,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'\n","import React, { useState } from 'react'\nimport { Card, CardMedia, Container, Typography } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n\nimport { emptyIcon, linearGenomeViewIcon, svInspectorIcon } from './img'\n\nconst useStyles = makeStyles()({\n card: {\n width: 200,\n height: 150,\n cursor: 'pointer',\n },\n name: {\n marginTop: 4, // theme.spacing(),\n textAlign: 'center',\n maxWidth: 200,\n },\n media: {\n height: 150,\n },\n})\n\nconst emptySessionSnapshot = {\n name: `New session ${new Date().toLocaleString()}`,\n connections: {},\n}\n\nfunction NewSessionCard({\n name,\n onClick = () => {},\n image,\n}: {\n name: string\n onClick: () => void\n image?: string\n}) {\n const { classes } = useStyles()\n const [hovered, setHovered] = useState(false)\n return (\n \n {\n setHovered(true)\n }}\n onMouseOut={() => {\n setHovered(false)\n }}\n onClick={onClick}\n raised={Boolean(hovered)}\n >\n \n \n \n {name}\n \n \n )\n}\n\ninterface RootModel {\n setSession: (arg: unknown) => void\n}\n\nexport function NewEmptySession({ rootModel }: { rootModel: RootModel }) {\n return (\n {\n rootModel.setSession(emptySessionSnapshot)\n }}\n />\n )\n}\n\nexport function NewLinearGenomeViewSession({\n rootModel,\n}: {\n rootModel: RootModel\n}) {\n return (\n {\n rootModel.setSession({\n ...emptySessionSnapshot,\n name: `New session ${new Date().toLocaleString()}`,\n views: [{ type: 'LinearGenomeView' }],\n })\n }}\n />\n )\n}\n\nexport function NewSVInspectorSession({ rootModel }: { rootModel: RootModel }) {\n return (\n {\n rootModel.setSession({\n ...emptySessionSnapshot,\n name: `New session ${new Date().toLocaleString()}`,\n views: [{ type: 'SvInspectorView' }],\n })\n }}\n />\n )\n}\n","import React, { useState } from 'react'\nimport {\n IconButton,\n ListItem,\n ListItemButton,\n ListItemIcon,\n Menu,\n MenuItem,\n Tooltip,\n Typography,\n} from '@mui/material'\n\n// icons\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport MoreVertIcon from '@mui/icons-material/MoreVert'\n\nfunction RecentSessionCard({\n sessionName,\n onClick,\n onDelete,\n}: {\n sessionName: string\n onClick: (arg: string) => void\n onDelete?: (arg: string) => void\n}) {\n const [menuAnchorEl, setMenuAnchorEl] = useState(null)\n\n return (\n <>\n {\n event.stopPropagation()\n setMenuAnchorEl(event.currentTarget)\n }}\n >\n \n \n }\n >\n {\n onClick(sessionName)\n }}\n >\n \n \n {sessionName}\n \n \n \n \n {\n setMenuAnchorEl(null)\n }}\n >\n {\n setMenuAnchorEl(null)\n onDelete?.(sessionName)\n }}\n disabled={!onDelete}\n >\n \n \n \n Delete\n \n \n \n )\n}\n\nexport default RecentSessionCard\n","import React, { lazy, useEffect, useState } from 'react'\nimport {\n Container,\n Grid,\n IconButton,\n List,\n ListItemIcon,\n ListSubheader,\n Menu,\n MenuItem,\n Typography,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { LogoFull, ErrorMessage } from '@jbrowse/core/ui'\nimport { localStorageGetItem, notEmpty } from '@jbrowse/core/util'\n\n// icons\nimport WarningIcon from '@mui/icons-material/Warning'\nimport SettingsIcon from '@mui/icons-material/Settings'\n\n// locals\nimport {\n NewEmptySession,\n NewLinearGenomeViewSession,\n NewSVInspectorSession,\n} from './NewSessionCards'\nimport RecentSessionCard from './RecentSessionCard'\nimport type { WebRootModel } from '../rootModel/rootModel'\n\n// lazies\nconst DeleteSessionDialog = lazy(() => import('./DeleteSessionDialog'))\nconst FactoryResetDialog = lazy(\n () => import('@jbrowse/core/ui/FactoryResetDialog'),\n)\n\nconst useStyles = makeStyles()(theme => ({\n newSession: {\n backgroundColor: theme.palette.grey['300'],\n padding: 8,\n marginTop: 8,\n },\n header: {\n margin: 8, // theme.spacing(2),\n },\n settings: {\n float: 'right',\n },\n list: {\n overflow: 'auto',\n maxHeight: 200,\n },\n}))\n\nexport default function StartScreen({\n rootModel,\n onFactoryReset,\n}: {\n rootModel: WebRootModel\n onFactoryReset: () => void\n}) {\n const { classes } = useStyles()\n\n const [sessionNames, setSessionNames] = useState([])\n const [sessionToDelete, setSessionToDelete] = useState()\n const [sessionToLoad, setSessionToLoad] = useState()\n const [error, setError] = useState()\n const [updateSessionsList, setUpdateSessionsList] = useState(true)\n const [menuAnchorEl, setMenuAnchorEl] = useState(null)\n const [reset, setReset] = useState(false)\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ;(async () => {\n try {\n if (sessionToLoad) {\n rootModel.activateSession(sessionToLoad)\n }\n } catch (e) {\n setError(e)\n }\n })()\n }, [rootModel, sessionToLoad])\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ;(async () => {\n try {\n if (updateSessionsList) {\n setUpdateSessionsList(false)\n\n setSessionNames(\n rootModel.savedSessions.map(s => s.name).filter(notEmpty),\n )\n }\n } catch (e) {\n setError(e)\n }\n })()\n }, [rootModel.savedSessions, updateSessionsList])\n\n const lastAutosavedSession = JSON.parse(\n localStorageGetItem(rootModel.previousAutosaveId) || '{}',\n ).session\n\n return (\n <>\n {reset ? (\n \n {\n setReset(false)\n }}\n />\n \n ) : null}\n {sessionToDelete ? (\n \n {\n setSessionToDelete(undefined)\n setUpdateSessionsList(update)\n }}\n />\n \n ) : null}\n {\n event.stopPropagation()\n setMenuAnchorEl(event.currentTarget)\n }}\n >\n \n \n \n \n
\n \n Start a new session\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n Recent sessions\n \n \n {sessionNames.map(name => (\n {\n setSessionToLoad(name)\n }}\n onDelete={() => {\n setSessionToDelete(name)\n }}\n />\n ))}\n \n {lastAutosavedSession ? (\n <>\n \n Last autosave session\n \n \n {\n rootModel.loadAutosaveSession()\n }}\n />\n \n \n ) : null}\n {error ? : null}\n
\n
\n\n {\n setMenuAnchorEl(null)\n }}\n >\n Advanced Settings\n {\n setReset(true)\n setMenuAnchorEl(null)\n }}\n >\n \n \n \n Reset\n \n \n \n )\n}\n"],"names":["emptyIcon","linearGenomeViewIcon","svInspectorIcon","useStyles","makeStyles","card","width","height","cursor","name","marginTop","textAlign","maxWidth","media","emptySessionSnapshot","Date","toLocaleString","connections","NewSessionCard","onClick","image","classes","hovered","setHovered","useState","React","Container","Card","className","onMouseOver","onMouseOut","raised","Boolean","CardMedia","Typography","variant","style","NewEmptySession","rootModel","setSession","NewLinearGenomeViewSession","views","type","NewSVInspectorSession","sessionName","onDelete","menuAnchorEl","setMenuAnchorEl","ListItem","secondaryAction","IconButton","event","stopPropagation","currentTarget","MoreVertIcon","ListItemButton","Tooltip","title","enterDelay","noWrap","Menu","anchorEl","open","onClose","MenuItem","disabled","ListItemIcon","DeleteIcon","DeleteSessionDialog","lazy","FactoryResetDialog","theme","newSession","backgroundColor","palette","grey","padding","header","margin","settings","float","list","overflow","maxHeight","StartScreen","onFactoryReset","sessionNames","setSessionNames","sessionToDelete","setSessionToDelete","sessionToLoad","setSessionToLoad","error","setError","updateSessionsList","setUpdateSessionsList","reset","setReset","useEffect","activateSession","e","savedSessions","map","s","filter","notEmpty","lastAutosavedSession","JSON","parse","localStorageGetItem","previousAutosaveId","session","fallback","update","undefined","SettingsIcon","LogoFull","Grid","container","spacing","item","List","RecentSessionCard","key","loadAutosaveSession","ErrorMessage","keepMounted","ListSubheader","WarningIcon"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2197.a5134ce4.chunk.js --- a/x/static/js/2197.a5134ce4.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2197],{22197:(e,s,l)=>{l.r(s),l.d(s,{alertClasses:()=>b.A,default:()=>a.A,getAlertUtilityClass:()=>b.X});var a=l(9937),b=l(67015)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2212.116fbbf4.chunk.js --- a/x/static/js/2212.116fbbf4.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2212],{12212:(e,a,b)=>{b.r(a),b.d(a,{default:()=>s.FeatureDetails});var s=b(68984)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2241.3d359b22.chunk.js --- a/x/static/js/2241.3d359b22.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2241],{72241:(e,t,l)=>{l.r(t),l.d(t,{default:()=>c});var n=l(7552),r=l(49823),a=l(68446),s=l(9236);const u=n.forwardRef((function({message:e},t){return n.createElement("div",{ref:t},n.isValidElement(e)?e:e?n.createElement(r.SanitizedHTML,{html:String(e)}):null)})),c=(0,a.observer)((function({contents:e}){return e?n.createElement(n.Suspense,{fallback:null},n.createElement(s.default,null,n.createElement(u,{message:e}))):null}))}}]); -//# sourceMappingURL=2241.3d359b22.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2241.3d359b22.chunk.js.map --- a/x/static/js/2241.3d359b22.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2241.3d359b22.chunk.js","mappings":"qMAQA,MAAMA,EAAkBC,EAAAA,YACtB,UAA0B,QAAEC,GAAWC,GACrC,OACEF,EAAAA,cAAA,OAAKE,IAAKA,GACPF,EAAAA,eAAqBC,GACpBA,EACEA,EACFD,EAAAA,cAACG,EAAAA,cAAa,CAACC,KAAMC,OAAOJ,KAC1B,KAGV,IAaF,GAVmBK,EAAAA,EAAAA,WAAS,UAAU,SAAEC,IACtC,OAAOA,EACLP,EAAAA,cAACQ,EAAAA,SAAQ,CAACC,SAAU,MAClBT,EAAAA,cAACU,EAAAA,QAAW,KACVV,EAAAA,cAACD,EAAe,CAACE,QAASM,MAG5B,IACN,G","sources":["../../../plugins/arc/src/ArcTooltip.tsx"],"sourcesContent":["import React, { Suspense } from 'react'\nimport { SanitizedHTML } from '@jbrowse/core/ui'\nimport { observer } from 'mobx-react'\nimport BaseTooltip from '@jbrowse/core/ui/BaseTooltip'\n\ninterface Props {\n message: React.ReactNode | string\n}\nconst TooltipContents = React.forwardRef(\n function TooltipContents2({ message }, ref) {\n return (\n
\n {React.isValidElement(message) ? (\n message\n ) : message ? (\n \n ) : null}\n
\n )\n },\n)\n\nconst ArcTooltip = observer(function ({ contents }: { contents?: string }) {\n return contents ? (\n \n \n \n \n \n ) : null\n})\n\nexport default ArcTooltip\n"],"names":["TooltipContents","React","message","ref","SanitizedHTML","html","String","observer","contents","Suspense","fallback","BaseTooltip"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2246.e5e65a4f.chunk.js --- a/x/static/js/2246.e5e65a4f.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2246],{47450:(e,t,r)=>{r.d(t,{A:()=>y});var o=r(7552),a=r(93878),s=r(70799),n=r(51148),c=r(60129),i=r(4785),l=r(74893),p=r(69500);const m=(0,l.A)((0,p.jsx)("path",{d:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z"}),"CheckCircle"),d=(0,l.A)((0,p.jsx)("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");var v,h=r(2859),u=r(72755);const x=(0,n.Ay)(h.A,{name:"MuiStepIcon",slot:"Root",overridesResolver:(e,t)=>t.root})((0,c.A)((({theme:e})=>({display:"block",transition:e.transitions.create("color",{duration:e.transitions.duration.shortest}),color:(e.vars||e).palette.text.disabled,[`&.${u.A.completed}`]:{color:(e.vars||e).palette.primary.main},[`&.${u.A.active}`]:{color:(e.vars||e).palette.primary.main},[`&.${u.A.error}`]:{color:(e.vars||e).palette.error.main}})))),A=(0,n.Ay)("text",{name:"MuiStepIcon",slot:"Text",overridesResolver:(e,t)=>t.text})((0,c.A)((({theme:e})=>({fill:(e.vars||e).palette.primary.contrastText,fontSize:e.typography.caption.fontSize,fontFamily:e.typography.fontFamily})))),y=o.forwardRef((function(e,t){const r=(0,i.b)({props:e,name:"MuiStepIcon"}),{active:o=!1,className:n,completed:c=!1,error:l=!1,icon:h,...y}=r,f={...r,active:o,completed:c,error:l},b=(e=>{const{classes:t,active:r,completed:o,error:a}=e,n={root:["root",r&&"active",o&&"completed",a&&"error"],text:["text"]};return(0,s.A)(n,u.K,t)})(f);if("number"==typeof h||"string"==typeof h){const e=(0,a.A)(n,b.root);return l?(0,p.jsx)(x,{as:d,className:e,ref:t,ownerState:f,...y}):c?(0,p.jsx)(x,{as:m,className:e,ref:t,ownerState:f,...y}):(0,p.jsxs)(x,{className:e,ref:t,ownerState:f,...y,children:[v||(v=(0,p.jsx)("circle",{cx:"12",cy:"12",r:"12"})),(0,p.jsx)(A,{className:b.text,x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",ownerState:f,children:h})]})}return h}))},32246:(e,t,r)=>{r.r(t),r.d(t,{default:()=>o.A,getStepIconUtilityClass:()=>a.K,stepIconClasses:()=>a.A});var o=r(47450),a=r(72755)},72755:(e,t,r)=>{r.d(t,{A:()=>n,K:()=>s});var o=r(33761),a=r(85693);function s(e){return(0,a.Ay)("MuiStepIcon",e)}const n=(0,o.A)("MuiStepIcon",["root","active","completed","error","text"])}}]); -//# sourceMappingURL=2246.e5e65a4f.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2246.e5e65a4f.chunk.js.map --- a/x/static/js/2246.e5e65a4f.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2246.e5e65a4f.chunk.js","mappings":"oOASA,SAAe,EAAAA,EAAA,IAA2B,SAAK,OAAQ,CACrDC,EAAG,2FACD,eCFJ,GAAe,EAAAD,EAAA,IAA2B,SAAK,OAAQ,CACrDC,EAAG,uDACD,W,ICTAC,E,qBAaJ,MAaMC,GAAe,EAAAC,EAAA,IAAOC,EAAA,EAAS,CACnCC,KAAM,cACNC,KAAM,OACNC,kBAAmB,CAACC,EAAOC,IAAWA,EAAOC,MAH1B,EAIlB,EAAAC,EAAA,IAAU,EACXC,YACI,CACJC,QAAS,QACTC,WAAYF,EAAMG,YAAYC,OAAO,QAAS,CAC5CC,SAAUL,EAAMG,YAAYE,SAASC,WAEvCC,OAAQP,EAAMQ,MAAQR,GAAOS,QAAQC,KAAKC,SAC1C,CAAC,KAAKC,EAAA,EAAgBC,aAAc,CAClCN,OAAQP,EAAMQ,MAAQR,GAAOS,QAAQK,QAAQC,MAE/C,CAAC,KAAKH,EAAA,EAAgBI,UAAW,CAC/BT,OAAQP,EAAMQ,MAAQR,GAAOS,QAAQK,QAAQC,MAE/C,CAAC,KAAKH,EAAA,EAAgBK,SAAU,CAC9BV,OAAQP,EAAMQ,MAAQR,GAAOS,QAAQQ,MAAMF,WAGzCG,GAAe,EAAA3B,EAAA,IAAO,OAAQ,CAClCE,KAAM,cACNC,KAAM,OACNC,kBAAmB,CAACC,EAAOC,IAAWA,EAAOa,MAH1B,EAIlB,EAAAX,EAAA,IAAU,EACXC,YACI,CACJmB,MAAOnB,EAAMQ,MAAQR,GAAOS,QAAQK,QAAQM,aAC5CC,SAAUrB,EAAMsB,WAAWC,QAAQF,SACnCG,WAAYxB,EAAMsB,WAAWE,gBAqG/B,EAnG8B,cAAiB,SAAkBC,EAASC,GACxE,MAAM9B,GAAQ,OAAgB,CAC5BA,MAAO6B,EACPhC,KAAM,iBAEF,OACJuB,GAAS,EACTW,UAAWC,EAAa,UACxBf,GAAY,EAAK,MACjBI,GAAQ,EAAK,KACbY,KACGC,GACDlC,EACEmC,EAAa,IACdnC,EACHoB,SACAH,YACAI,SAEIe,EAjEkBD,KACxB,MAAM,QACJC,EAAO,OACPhB,EAAM,UACNH,EAAS,MACTI,GACEc,EACEE,EAAQ,CACZnC,KAAM,CAAC,OAAQkB,GAAU,SAAUH,GAAa,YAAaI,GAAS,SACtEP,KAAM,CAAC,SAET,OAAO,EAAAwB,EAAA,GAAeD,EAAO,IAAyBD,EAAQ,EAsD9CG,CAAkBJ,GAClC,GAAoB,iBAATF,GAAqC,iBAATA,EAAmB,CACxD,MAAMF,GAAY,EAAAS,EAAA,GAAKR,EAAeI,EAAQlC,MAC9C,OAAImB,GACkB,SAAK3B,EAAc,CACrC+C,GAAIC,EACJX,UAAWA,EACXD,IAAKA,EACLK,WAAYA,KACTD,IAGHjB,GACkB,SAAKvB,EAAc,CACrC+C,GAAIE,EACJZ,UAAWA,EACXD,IAAKA,EACLK,WAAYA,KACTD,KAGa,UAAMxC,EAAc,CACtCqC,UAAWA,EACXD,IAAKA,EACLK,WAAYA,KACTD,EACHU,SAAU,CAACnD,IAAYA,GAAuB,SAAK,SAAU,CAC3DoD,GAAI,KACJC,GAAI,KACJC,EAAG,SACa,SAAKzB,EAAc,CACnCS,UAAWK,EAAQtB,KACnBkC,EAAG,KACHC,EAAG,KACHC,WAAY,SACZC,iBAAkB,UAClBhB,WAAYA,EACZS,SAAUX,MAGhB,CACA,OAAOA,CACT,G,wMCxHO,SAASmB,EAAwBtD,GACtC,OAAO,QAAqB,cAAeA,EAC7C,CACA,MACA,GADwB,OAAuB,cAAe,CAAC,OAAQ,SAAU,YAAa,QAAS,Q","sources":["../../../node_modules/@mui/material/internal/svg-icons/CheckCircle.js","../../../node_modules/@mui/material/internal/svg-icons/Warning.js","../../../node_modules/@mui/material/StepIcon/StepIcon.js","../../../node_modules/@mui/material/StepIcon/stepIconClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z\"\n}), 'CheckCircle');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');","'use client';\n\nvar _circle;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport CheckCircle from \"../internal/svg-icons/CheckCircle.js\";\nimport Warning from \"../internal/svg-icons/Warning.js\";\nimport SvgIcon from \"../SvgIcon/index.js\";\nimport stepIconClasses, { getStepIconUtilityClass } from \"./stepIconClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n active,\n completed,\n error\n } = ownerState;\n const slots = {\n root: ['root', active && 'active', completed && 'completed', error && 'error'],\n text: ['text']\n };\n return composeClasses(slots, getStepIconUtilityClass, classes);\n};\nconst StepIconRoot = styled(SvgIcon, {\n name: 'MuiStepIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => ({\n display: 'block',\n transition: theme.transitions.create('color', {\n duration: theme.transitions.duration.shortest\n }),\n color: (theme.vars || theme).palette.text.disabled,\n [`&.${stepIconClasses.completed}`]: {\n color: (theme.vars || theme).palette.primary.main\n },\n [`&.${stepIconClasses.active}`]: {\n color: (theme.vars || theme).palette.primary.main\n },\n [`&.${stepIconClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n})));\nconst StepIconText = styled('text', {\n name: 'MuiStepIcon',\n slot: 'Text',\n overridesResolver: (props, styles) => styles.text\n})(memoTheme(({\n theme\n}) => ({\n fill: (theme.vars || theme).palette.primary.contrastText,\n fontSize: theme.typography.caption.fontSize,\n fontFamily: theme.typography.fontFamily\n})));\nconst StepIcon = /*#__PURE__*/React.forwardRef(function StepIcon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiStepIcon'\n });\n const {\n active = false,\n className: classNameProp,\n completed = false,\n error = false,\n icon,\n ...other\n } = props;\n const ownerState = {\n ...props,\n active,\n completed,\n error\n };\n const classes = useUtilityClasses(ownerState);\n if (typeof icon === 'number' || typeof icon === 'string') {\n const className = clsx(classNameProp, classes.root);\n if (error) {\n return /*#__PURE__*/_jsx(StepIconRoot, {\n as: Warning,\n className: className,\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n }\n if (completed) {\n return /*#__PURE__*/_jsx(StepIconRoot, {\n as: CheckCircle,\n className: className,\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n }\n return /*#__PURE__*/_jsxs(StepIconRoot, {\n className: className,\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [_circle || (_circle = /*#__PURE__*/_jsx(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"12\"\n })), /*#__PURE__*/_jsx(StepIconText, {\n className: classes.text,\n x: \"12\",\n y: \"12\",\n textAnchor: \"middle\",\n dominantBaseline: \"central\",\n ownerState: ownerState,\n children: icon\n })]\n });\n }\n return icon;\n});\nprocess.env.NODE_ENV !== \"production\" ? StepIcon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Whether this step is active.\n * @default false\n */\n active: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Mark the step as completed. Is passed to child components.\n * @default false\n */\n completed: PropTypes.bool,\n /**\n * If `true`, the step is marked as failed.\n * @default false\n */\n error: PropTypes.bool,\n /**\n * The label displayed in the step icon.\n */\n icon: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default StepIcon;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getStepIconUtilityClass(slot) {\n return generateUtilityClass('MuiStepIcon', slot);\n}\nconst stepIconClasses = generateUtilityClasses('MuiStepIcon', ['root', 'active', 'completed', 'error', 'text']);\nexport default stepIconClasses;"],"names":["createSvgIcon","d","_circle","StepIconRoot","styled","SvgIcon","name","slot","overridesResolver","props","styles","root","memoTheme","theme","display","transition","transitions","create","duration","shortest","color","vars","palette","text","disabled","stepIconClasses","completed","primary","main","active","error","StepIconText","fill","contrastText","fontSize","typography","caption","fontFamily","inProps","ref","className","classNameProp","icon","other","ownerState","classes","slots","composeClasses","useUtilityClasses","clsx","as","Warning","CheckCircle","children","cx","cy","r","x","y","textAnchor","dominantBaseline","getStepIconUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2249.b91f0bb3.chunk.js --- a/x/static/js/2249.b91f0bb3.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2249],{92249:(e,t,s)=>{s.r(t),s.d(t,{default:()=>i});var a=s(46377),r=s(99834);class i extends a.BaseAdapter{async getRefNameAliases(){const e=this.getConf("location");if(""===e.uri||"/path/to/my/aliases.txt"===e.uri)return[];const t=await(0,r.openLocation)(e,this.pluginManager).readFile("utf8"),s=this.getConf("refNameColumn");return t.trim().split(/\n|\r\n|\r/).filter((e=>!!e&&!e.startsWith("#"))).map((e=>{const t=e.split("\t"),[a]=t.splice(s,1);return{refName:a,aliases:t.filter((e=>!!e.trim()))}}))}async freeResources(){}}}}]); -//# sourceMappingURL=2249.b91f0bb3.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2249.b91f0bb3.chunk.js.map --- a/x/static/js/2249.b91f0bb3.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2249.b91f0bb3.chunk.js","mappings":"iLAMe,MAAMA,UACXC,EAAAA,YAGR,uBAAMC,GACJ,MAAMC,EAAMC,KAAKC,QAAQ,YACzB,GAAgB,KAAZF,EAAIG,KAA0B,4BAAZH,EAAIG,IACxB,MAAO,GAET,MAAMC,QAAgBC,EAAAA,EAAAA,cAAaL,EAAKC,KAAKK,eAAeC,SAAS,QAC/DC,EAAYP,KAAKC,QAAQ,iBAC/B,OAAOE,EACJK,OACAC,MAAM,cACNC,QAAOC,KAAOA,IAAMA,EAAEC,WAAW,OACjCC,KAAIC,IACH,MAAMC,EAAUD,EAAIL,MAAM,OACnBO,GAAWD,EAAQE,OAAOV,EAAW,GAC5C,MAAO,CACLS,QAASA,EACTD,QAASA,EAAQL,QAAOC,KAAOA,EAAEH,SAClC,GAEP,CAEA,mBAAMU,GAAiB,E","sources":["../../../plugins/config/src/RefNameAliasAdapter/RefNameAliasAdapter.ts"],"sourcesContent":["import {\n BaseRefNameAliasAdapter,\n BaseAdapter,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\nimport { openLocation } from '@jbrowse/core/util/io'\n\nexport default class RefNameAliasAdapter\n extends BaseAdapter\n implements BaseRefNameAliasAdapter\n{\n async getRefNameAliases() {\n const loc = this.getConf('location')\n if (loc.uri === '' || loc.uri === '/path/to/my/aliases.txt') {\n return []\n }\n const results = await openLocation(loc, this.pluginManager).readFile('utf8')\n const refColumn = this.getConf('refNameColumn')\n return results\n .trim()\n .split(/\\n|\\r\\n|\\r/)\n .filter(f => !!f && !f.startsWith('#'))\n .map(row => {\n const aliases = row.split('\\t')\n const [refName] = aliases.splice(refColumn, 1)\n return {\n refName: refName!,\n aliases: aliases.filter(f => !!f.trim()),\n }\n })\n }\n\n async freeResources() {}\n}\n"],"names":["RefNameAliasAdapter","BaseAdapter","getRefNameAliases","loc","this","getConf","uri","results","openLocation","pluginManager","readFile","refColumn","trim","split","filter","f","startsWith","map","row","aliases","refName","splice","freeResources"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2306.f8d640f4.chunk.js --- a/x/static/js/2306.f8d640f4.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2306],{71379:(s,a,t)=>{t.d(a,{A:()=>p});var e=t(7552),n=t(93878),o=t(70799),r=t(51148),i=t(4785),c=t(93863),l=t(69500);const d=(0,r.Ay)("div",{name:"MuiCardActions",slot:"Root",overridesResolver:(s,a)=>{const{ownerState:t}=s;return[a.root,!t.disableSpacing&&a.spacing]}})({display:"flex",alignItems:"center",padding:8,variants:[{props:{disableSpacing:!1},style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),p=e.forwardRef((function(s,a){const t=(0,i.b)({props:s,name:"MuiCardActions"}),{disableSpacing:e=!1,className:r,...p}=t,u={...t,disableSpacing:e},A=(s=>{const{classes:a,disableSpacing:t}=s,e={root:["root",!t&&"spacing"]};return(0,o.A)(e,c.E,a)})(u);return(0,l.jsx)(d,{className:(0,n.A)(A.root,r),ownerState:u,ref:a,...p})}))},93863:(s,a,t)=>{t.d(a,{A:()=>r,E:()=>o});var e=t(33761),n=t(85693);function o(s){return(0,n.Ay)("MuiCardActions",s)}const r=(0,e.A)("MuiCardActions",["root","spacing"])},32306:(s,a,t)=>{t.r(a),t.d(a,{cardActionsClasses:()=>n.A,default:()=>e.A,getCardActionsUtilityClass:()=>n.E});var e=t(71379),n=t(93863)}}]); -//# sourceMappingURL=2306.f8d640f4.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2306.f8d640f4.chunk.js.map --- a/x/static/js/2306.f8d640f4.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2306.f8d640f4.chunk.js","mappings":"yNAUA,MAUMA,GAAkB,QAAO,MAAO,CACpCC,KAAM,iBACNC,KAAM,OACNC,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJC,GACEF,EACJ,MAAO,CAACC,EAAOE,MAAOD,EAAWE,gBAAkBH,EAAOI,QAAQ,GAP9C,CASrB,CACDC,QAAS,OACTC,WAAY,SACZC,QAAS,EACTC,SAAU,CAAC,CACTT,MAAO,CACLI,gBAAgB,GAElBM,MAAO,CACL,gCAAiC,CAC/BC,WAAY,QAsDpB,EAjDiC,cAAiB,SAAqBC,EAASC,GAC9E,MAAMb,GAAQ,OAAgB,CAC5BA,MAAOY,EACPf,KAAM,oBAEF,eACJO,GAAiB,EAAK,UACtBU,KACGC,GACDf,EACEE,EAAa,IACdF,EACHI,kBAEIY,EAhDkBd,KACxB,MAAM,QACJc,EAAO,eACPZ,GACEF,EACEe,EAAQ,CACZd,KAAM,CAAC,QAASC,GAAkB,YAEpC,OAAO,OAAea,EAAO,IAA4BD,EAAQ,EAwCjDE,CAAkBhB,GAClC,OAAoB,SAAKN,EAAiB,CACxCkB,WAAW,OAAKE,EAAQb,KAAMW,GAC9BZ,WAAYA,EACZW,IAAKA,KACFE,GAEP,G,qEC/DO,SAASI,EAA2BrB,GACzC,OAAO,QAAqB,iBAAkBA,EAChD,CACA,MACA,GAD2B,OAAuB,iBAAkB,CAAC,OAAQ,W","sources":["../../../node_modules/@mui/material/CardActions/CardActions.js","../../../node_modules/@mui/material/CardActions/cardActionsClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getCardActionsUtilityClass } from \"./cardActionsClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableSpacing\n } = ownerState;\n const slots = {\n root: ['root', !disableSpacing && 'spacing']\n };\n return composeClasses(slots, getCardActionsUtilityClass, classes);\n};\nconst CardActionsRoot = styled('div', {\n name: 'MuiCardActions',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableSpacing && styles.spacing];\n }\n})({\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n variants: [{\n props: {\n disableSpacing: false\n },\n style: {\n '& > :not(style) ~ :not(style)': {\n marginLeft: 8\n }\n }\n }]\n});\nconst CardActions = /*#__PURE__*/React.forwardRef(function CardActions(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardActions'\n });\n const {\n disableSpacing = false,\n className,\n ...other\n } = props;\n const ownerState = {\n ...props,\n disableSpacing\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardActionsRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardActions.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the actions do not have additional margin.\n * @default false\n */\n disableSpacing: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardActions;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardActionsUtilityClass(slot) {\n return generateUtilityClass('MuiCardActions', slot);\n}\nconst cardActionsClasses = generateUtilityClasses('MuiCardActions', ['root', 'spacing']);\nexport default cardActionsClasses;"],"names":["CardActionsRoot","name","slot","overridesResolver","props","styles","ownerState","root","disableSpacing","spacing","display","alignItems","padding","variants","style","marginLeft","inProps","ref","className","other","classes","slots","useUtilityClasses","getCardActionsUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2321.ef211da9.chunk.js --- a/x/static/js/2321.ef211da9.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2321],{42321:(e,s,t)=>{t.r(s),t.d(s,{default:()=>a.A,dialogContentTextClasses:()=>l.A,getDialogContentTextUtilityClass:()=>l.D});var a=t(99123),l=t(48839)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2398.731eb1c6.chunk.js --- a/x/static/js/2398.731eb1c6.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2398],{22398:(e,s,l)=>{l.r(s),l.d(s,{default:()=>a.A,formControlLabelClasses:()=>b.A,getFormControlLabelUtilityClasses:()=>b.u});var a=l(33371),b=l(18095)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2412.10574f7d.chunk.js --- a/x/static/js/2412.10574f7d.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2412],{92412:(e,t,l)=>{l.r(t),l.d(t,{default:()=>h});var a=l(7552),n=l(68446),r=l(49823),o=l(29499),i=l(1343),s=l(58507),c=l(5401),u=l(75785),m=l(43283);const d=(0,u.n9)()({dialogContent:{width:"80em"},textAreaFont:{fontFamily:"Courier New"},error:{color:"red",fontSize:"0.8em"}}),h=(0,n.observer)((function({model:e,handleClose:t}){const{classes:l}=d(),{activeFilters:n}=e,[u,h]=(0,a.useState)(n.join("\n")),[p,f]=(0,a.useState)();return(0,a.useEffect)((()=>{try{u.split("\n").map((e=>e.trim())).filter((e=>!!e)).map((e=>{var t;t=e.trim(),(0,m.A)(t)})),f(void 0)}catch(e){console.error(e),f(e)}}),[u]),a.createElement(r.Dialog,{maxWidth:"xl",open:!0,onClose:t,title:"Add track filters"},a.createElement(o.A,null,a.createElement("div",null,"Add filters, in jexl format, one per line, starting with the string jexl:. Examples:"," ",a.createElement("ul",null,a.createElement("li",null,a.createElement("code",null,"jexl:get(feature,'name')=='BRCA1'")," - show only feature where the name attribute is BRCA1"),a.createElement("li",null,a.createElement("code",null,"jexl:get(feature,'type')=='gene'")," - show only gene type features in a GFF that has many other feature types"),a.createElement("li",null,a.createElement("code",null,"jexl:get(feature,'score') > 400")," - show only features that have a score greater than 400"))),p?a.createElement("p",{className:l.error},`${p}`):null,a.createElement(i.A,{variant:"outlined",multiline:!0,minRows:5,maxRows:10,className:l.dialogContent,fullWidth:!0,value:u,onChange:e=>{h(e.target.value)},InputProps:{classes:{input:l.textAreaFont}}})),a.createElement(s.A,null,a.createElement(c.A,{variant:"contained",color:"primary",type:"submit",autoFocus:!0,disabled:!!p,onClick:()=>{e.setJexlFilters(u.split("\n")),t()}},"Submit"),a.createElement(c.A,{variant:"contained",color:"secondary",onClick:()=>{t()}},"Cancel")))}))}}]); -//# sourceMappingURL=2412.10574f7d.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2412.10574f7d.chunk.js.map --- a/x/static/js/2412.10574f7d.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2412.10574f7d.chunk.js","mappings":"2PAOA,MAAMA,GAAYC,EAAAA,EAAAA,KAAAA,CAAa,CAC7BC,cAAe,CACbC,MAAO,QAETC,aAAc,CACZC,WAAY,eAGdC,MAAO,CACLC,MAAO,MACPC,SAAU,WA6Gd,GArGyBC,EAAAA,EAAAA,WAAS,UAAU,MAC1CC,EAAK,YACLC,IASA,MAAM,QAAEC,GAAYZ,KACd,cAAEa,GAAkBH,GACnBI,EAAMC,IAAWC,EAAAA,EAAAA,UAASH,EAAcI,KAAK,QAC7CX,EAAOY,IAAYF,EAAAA,EAAAA,YAkB1B,OAhBAG,EAAAA,EAAAA,YAAU,KACR,IACEL,EACGM,MAAM,MACNC,KAAIC,GAAQA,EAAKC,SACjBC,QAAOF,KAAUA,IACjBD,KAAIC,IA1Bb,IAAmBG,IA2BCH,EAAKC,QA1BvBG,EAAAA,EAAAA,GAAuBD,EA0BO,IAE1BP,OAASS,EACX,CAAE,MAAOC,GACPC,QAAQvB,MAAMsB,GACdV,EAASU,EACX,IACC,CAACd,IAGFgB,EAAAA,cAACC,EAAAA,OAAM,CAACC,SAAS,KAAKC,MAAI,EAACC,QAASvB,EAAawB,MAAM,qBACrDL,EAAAA,cAACM,EAAAA,EAAa,KACZN,EAAAA,cAAA,WAAK,uFAEc,IACjBA,EAAAA,cAAA,UACEA,EAAAA,cAAA,UACEA,EAAAA,cAAA,YAAM,qCAAwC,0DAGhDA,EAAAA,cAAA,UACEA,EAAAA,cAAA,YAAM,oCAAuC,8EAG/CA,EAAAA,cAAA,UACEA,EAAAA,cAAA,YAAM,mCAAyC,8DAMpDxB,EAAQwB,EAAAA,cAAA,KAAGO,UAAWzB,EAAQN,OAAQ,GAAGA,KAAe,KACzDwB,EAAAA,cAACQ,EAAAA,EAAS,CACRC,QAAQ,WACRC,WAAS,EACTC,QAAS,EACTC,QAAS,GACTL,UAAWzB,EAAQV,cACnByC,WAAS,EACTC,MAAO9B,EACP+B,SAAUC,IACR/B,EAAQ+B,EAAMC,OAAOH,MAAM,EAE7BI,WAAY,CACVpC,QAAS,CACPqC,MAAOrC,EAAQR,kBAKvB0B,EAAAA,cAACoB,EAAAA,EAAa,KACZpB,EAAAA,cAACqB,EAAAA,EAAM,CACLZ,QAAQ,YACRhC,MAAM,UACN6C,KAAK,SACLC,WAAS,EACTC,WAAYhD,EACZiD,QAASA,KACP7C,EAAM8C,eAAe1C,EAAKM,MAAM,OAChCT,GAAa,GAEhB,UAGDmB,EAAAA,cAACqB,EAAAA,EAAM,CACLZ,QAAQ,YACRhC,MAAM,YACNgD,QAASA,KACP5C,GAAa,GAEhB,WAMT,G","sources":["../../../plugins/linear-genome-view/src/LinearBasicDisplay/components/AddFiltersDialog.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport { observer } from 'mobx-react'\nimport { Dialog } from '@jbrowse/core/ui'\nimport { Button, DialogActions, DialogContent, TextField } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { stringToJexlExpression } from '@jbrowse/core/util/jexlStrings'\n\nconst useStyles = makeStyles()({\n dialogContent: {\n width: '80em',\n },\n textAreaFont: {\n fontFamily: 'Courier New',\n },\n\n error: {\n color: 'red',\n fontSize: '0.8em',\n },\n})\n\nfunction checkJexl(code: string) {\n stringToJexlExpression(code)\n}\n\nconst AddFiltersDialog = observer(function ({\n model,\n handleClose,\n}: {\n model: {\n jexlFilters?: string[]\n activeFilters: string[]\n setJexlFilters: (arg?: string[]) => void\n }\n handleClose: () => void\n}) {\n const { classes } = useStyles()\n const { activeFilters } = model\n const [data, setData] = useState(activeFilters.join('\\n'))\n const [error, setError] = useState()\n\n useEffect(() => {\n try {\n data\n .split('\\n')\n .map(line => line.trim())\n .filter(line => !!line)\n .map(line => {\n checkJexl(line.trim())\n })\n setError(undefined)\n } catch (e) {\n console.error(e)\n setError(e)\n }\n }, [data])\n\n return (\n \n \n
\n Add filters, in jexl format, one per line, starting with the string\n jexl:. Examples:{' '}\n
    \n
  • \n jexl:get(feature,'name')=='BRCA1' - show only feature\n where the name attribute is BRCA1\n
  • \n
  • \n jexl:get(feature,'type')=='gene' - show only gene\n type features in a GFF that has many other feature types\n
  • \n
  • \n jexl:get(feature,'score') > 400 - show only\n features that have a score greater than 400\n
  • \n
\n
\n\n {error ?

{`${error}`}

: null}\n {\n setData(event.target.value)\n }}\n InputProps={{\n classes: {\n input: classes.textAreaFont,\n },\n }}\n />\n
\n \n {\n model.setJexlFilters(data.split('\\n'))\n handleClose()\n }}\n >\n Submit\n \n {\n handleClose()\n }}\n >\n Cancel\n \n \n
\n )\n})\n\nexport default AddFiltersDialog\n"],"names":["useStyles","makeStyles","dialogContent","width","textAreaFont","fontFamily","error","color","fontSize","observer","model","handleClose","classes","activeFilters","data","setData","useState","join","setError","useEffect","split","map","line","trim","filter","code","stringToJexlExpression","undefined","e","console","React","Dialog","maxWidth","open","onClose","title","DialogContent","className","TextField","variant","multiline","minRows","maxRows","fullWidth","value","onChange","event","target","InputProps","input","DialogActions","Button","type","autoFocus","disabled","onClick","setJexlFilters"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2418.0b1f308b.chunk.js --- a/x/static/js/2418.0b1f308b.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2418],{88215:(e,t,n)=>{n.d(t,{x:()=>u});var r=n(7552),o=n(29527),a=n(89887),i=n(99305),s=n(28325),c=n(69500);function l(e){return e.substring(2).toLowerCase()}function u(e){const{children:t,disableReactTree:n=!1,mouseEvent:u="onClick",onClickAway:d,touchEvent:p="onTouchEnd"}=e,m=r.useRef(!1),f=r.useRef(null),h=r.useRef(!1),g=r.useRef(!1);r.useEffect((()=>(setTimeout((()=>{h.current=!0}),0),()=>{h.current=!1})),[]);const v=(0,o.A)((0,s.A)(t),f),b=(0,a.A)((e=>{const t=g.current;g.current=!1;const r=(0,i.A)(f.current);if(!h.current||!f.current||"clientX"in e&&function(e,t){return t.documentElement.clientWidthn=>{g.current=!0;const r=t.props[e];r&&r(n)},A={ref:v};return!1!==p&&(A[p]=w(p)),r.useEffect((()=>{if(!1!==p){const e=l(p),t=(0,i.A)(f.current),n=()=>{m.current=!0};return t.addEventListener(e,b),t.addEventListener("touchmove",n),()=>{t.removeEventListener(e,b),t.removeEventListener("touchmove",n)}}}),[b,p]),!1!==u&&(A[u]=w(u)),r.useEffect((()=>{if(!1!==u){const e=l(u),t=(0,i.A)(f.current);return t.addEventListener(e,b),()=>{t.removeEventListener(e,b)}}}),[b,u]),(0,c.jsx)(r.Fragment,{children:r.cloneElement(t,A)})}},42418:(e,t,n)=>{n.d(t,{A:()=>A});var r=n(7552),o=n(70799),a=n(1045),i=n(26218),s=n(89887),c=n(29091);var l=n(88215),u=n(51148),d=n(48231),p=n(60129),m=n(4785),f=n(15622),h=n(4407),g=n(85283),v=n(58763),b=n(69500);const w=(0,u.Ay)("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`anchorOrigin${(0,f.A)(n.anchorOrigin.vertical)}${(0,f.A)(n.anchorOrigin.horizontal)}`]]}})((0,p.A)((({theme:e})=>({zIndex:(e.vars||e).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:e})=>"top"===e.anchorOrigin.vertical,style:{top:8,[e.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:e})=>"top"!==e.anchorOrigin.vertical,style:{bottom:8,[e.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:e})=>"left"===e.anchorOrigin.horizontal,style:{justifyContent:"flex-start",[e.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:e})=>"right"===e.anchorOrigin.horizontal,style:{justifyContent:"flex-end",[e.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:e})=>"center"===e.anchorOrigin.horizontal,style:{[e.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]})))),A=r.forwardRef((function(e,t){const n=(0,m.b)({props:e,name:"MuiSnackbar"}),u=(0,d.A)(),p={enter:u.transitions.duration.enteringScreen,exit:u.transitions.duration.leavingScreen},{action:A,anchorOrigin:{vertical:k,horizontal:E}={vertical:"bottom",horizontal:"left"},autoHideDuration:y=null,children:C,className:x,ClickAwayListenerProps:S,ContentProps:L,disableWindowBlurListener:R=!1,message:O,onBlur:M,onClose:j,onFocus:T,onMouseEnter:P,onMouseLeave:z,open:B,resumeHideDuration:D,TransitionComponent:W=h.A,transitionDuration:H=p,TransitionProps:{onEnter:N,onExited:F,...I}={},...$}=n,_={...n,anchorOrigin:{vertical:k,horizontal:E},autoHideDuration:y,disableWindowBlurListener:R,TransitionComponent:W,transitionDuration:H},X=(e=>{const{classes:t,anchorOrigin:n}=e,r={root:["root",`anchorOrigin${(0,f.A)(n.vertical)}${(0,f.A)(n.horizontal)}`]};return(0,o.A)(r,v.W,t)})(_),{getRootProps:G,onClickAway:q}=function(e={}){const{autoHideDuration:t=null,disableWindowBlurListener:n=!1,onClose:o,open:a,resumeHideDuration:l}=e,u=(0,i.A)();r.useEffect((()=>{if(a)return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)};function e(e){e.defaultPrevented||"Escape"===e.key&&o?.(e,"escapeKeyDown")}}),[a,o]);const d=(0,s.A)(((e,t)=>{o?.(e,t)})),p=(0,s.A)((e=>{o&&null!=e&&u.start(e,(()=>{d(null,"timeout")}))}));r.useEffect((()=>(a&&p(t),u.clear)),[a,t,p,u]);const m=u.clear,f=r.useCallback((()=>{null!=t&&p(null!=l?l:.5*t)}),[t,l,p]),h=e=>t=>{const n=e.onFocus;n?.(t),m()},g=e=>t=>{const n=e.onMouseEnter;n?.(t),m()},v=e=>t=>{const n=e.onMouseLeave;n?.(t),f()};return r.useEffect((()=>{if(!n&&a)return window.addEventListener("focus",f),window.addEventListener("blur",m),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",m)}}),[n,a,f,m]),{getRootProps:(t={})=>{const n={...(0,c.A)(e),...(0,c.A)(t)};return{role:"presentation",...t,...n,onBlur:(r=n,e=>{const t=r.onBlur;t?.(e),f()}),onFocus:h(n),onMouseEnter:g(n),onMouseLeave:v(n)};var r},onClickAway:e=>{o?.(e,"clickaway")}}}({..._}),[K,Y]=r.useState(!0),J=(0,a.A)({elementType:w,getSlotProps:G,externalForwardedProps:$,ownerState:_,additionalProps:{ref:t},className:[X.root,x]});return!B&&K?null:(0,b.jsx)(l.x,{onClickAway:q,...S,children:(0,b.jsx)(w,{...J,children:(0,b.jsx)(W,{appear:!0,in:B,timeout:H,direction:"top"===k?"down":"up",onEnter:(e,t)=>{Y(!1),N&&N(e,t)},onExited:e=>{Y(!0),F&&F(e)},...I,children:C||(0,b.jsx)(g.A,{message:O,action:A,...L})})})})}))},58763:(e,t,n)=>{n.d(t,{A:()=>i,W:()=>a});var r=n(33761),o=n(85693);function a(e){return(0,o.Ay)("MuiSnackbar",e)}const i=(0,r.A)("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"])},85283:(e,t,n)=>{n.d(t,{A:()=>g});var r=n(7552),o=n(93878),a=n(70799),i=n(72639),s=n(51148),c=n(60129),l=n(4785),u=n(943),d=n(27799),p=n(69500);const m=(0,s.Ay)(u.A,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:(e,t)=>t.root})((0,c.A)((({theme:e})=>{const t="light"===e.palette.mode?.8:.98,n=(0,i.tL)(e.palette.background.default,t);return{...e.typography.body2,color:e.vars?e.vars.palette.SnackbarContent.color:e.palette.getContrastText(n),backgroundColor:e.vars?e.vars.palette.SnackbarContent.bg:n,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:(e.vars||e).shape.borderRadius,flexGrow:1,[e.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}}))),f=(0,s.Ay)("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:(e,t)=>t.message})({padding:"8px 0"}),h=(0,s.Ay)("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:(e,t)=>t.action})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),g=r.forwardRef((function(e,t){const n=(0,l.b)({props:e,name:"MuiSnackbarContent"}),{action:r,className:i,message:s,role:c="alert",...u}=n,g=n,v=(e=>{const{classes:t}=e;return(0,a.A)({root:["root"],action:["action"],message:["message"]},d.d,t)})(g);return(0,p.jsxs)(m,{role:c,square:!0,elevation:6,className:(0,o.A)(v.root,i),ownerState:g,ref:t,...u,children:[(0,p.jsx)(f,{className:v.message,ownerState:g,children:s}),r?(0,p.jsx)(h,{className:v.action,ownerState:g,children:r}):null]})}))},27799:(e,t,n)=>{n.d(t,{A:()=>i,d:()=>a});var r=n(33761),o=n(85693);function a(e){return(0,o.Ay)("MuiSnackbarContent",e)}const i=(0,r.A)("MuiSnackbarContent",["root","message","action"])}}]); -//# sourceMappingURL=2418.0b1f308b.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2418.0b1f308b.chunk.js.map --- a/x/static/js/2418.0b1f308b.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2418.0b1f308b.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/ClickAwayListener/ClickAwayListener.js","../../../node_modules/@mui/material/Snackbar/Snackbar.js","../../../node_modules/@mui/material/Snackbar/useSnackbar.js","../../../node_modules/@mui/material/Snackbar/snackbarClasses.js","../../../node_modules/@mui/material/SnackbarContent/SnackbarContent.js","../../../node_modules/@mui/material/SnackbarContent/snackbarContentClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport getReactNodeRef from '@mui/utils/getReactNodeRef';\n\n// TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase : never` once generatePropTypes runs with TS 4.1\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click-Away Listener](https://mui.com/material-ui/react-click-away-listener/)\n * - [Menu](https://mui.com/material-ui/react-menu/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/material-ui/api/click-away-listener/)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = 'onClick',\n onClickAway,\n touchEvent = 'onTouchEnd'\n } = props;\n const movedRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n React.useEffect(() => {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = useForkRef(getReactNodeRef(children), nodeRef);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n const handleClickAway = useEventCallback(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current);\n\n // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n }\n\n // Do not act if user performed touchmove\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n let insideDOM;\n\n // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n if (event.composedPath) {\n insideDOM = event.composedPath().includes(nodeRef.current);\n } else {\n insideDOM = !doc.documentElement.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n });\n\n // Keep track of mouse/touch events that bubbled up through the portal.\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const childrenProps = {\n ref: handleRef\n };\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n React.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = ownerDocument(nodeRef.current);\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n return undefined;\n }, [handleClickAway, touchEvent]);\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n React.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n * @default false\n */\n disableReactTree: PropTypes.bool,\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n * @default 'onClick'\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n * @default 'onTouchEnd'\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport { ClickAwayListener };","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport useSnackbar from \"./useSnackbar.js\";\nimport ClickAwayListener from \"../ClickAwayListener/index.js\";\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport Grow from \"../Grow/index.js\";\nimport SnackbarContent from \"../SnackbarContent/index.js\";\nimport { getSnackbarUtilityClass } from \"./snackbarClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n anchorOrigin\n } = ownerState;\n const slots = {\n root: ['root', `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`]\n };\n return composeClasses(slots, getSnackbarUtilityClass, classes);\n};\nconst SnackbarRoot = styled('div', {\n name: 'MuiSnackbar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n zIndex: (theme.vars || theme).zIndex.snackbar,\n position: 'fixed',\n display: 'flex',\n left: 8,\n right: 8,\n justifyContent: 'center',\n alignItems: 'center',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'top',\n style: {\n top: 8,\n [theme.breakpoints.up('sm')]: {\n top: 24\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical !== 'top',\n style: {\n bottom: 8,\n [theme.breakpoints.up('sm')]: {\n bottom: 24\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.horizontal === 'left',\n style: {\n justifyContent: 'flex-start',\n [theme.breakpoints.up('sm')]: {\n left: 24,\n right: 'auto'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.horizontal === 'right',\n style: {\n justifyContent: 'flex-end',\n [theme.breakpoints.up('sm')]: {\n right: 24,\n left: 'auto'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.horizontal === 'center',\n style: {\n [theme.breakpoints.up('sm')]: {\n left: '50%',\n right: 'auto',\n transform: 'translateX(-50%)'\n }\n }\n }]\n})));\nconst Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSnackbar'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n action,\n anchorOrigin: {\n vertical,\n horizontal\n } = {\n vertical: 'bottom',\n horizontal: 'left'\n },\n autoHideDuration = null,\n children,\n className,\n ClickAwayListenerProps,\n ContentProps,\n disableWindowBlurListener = false,\n message,\n onBlur,\n onClose,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n open,\n resumeHideDuration,\n TransitionComponent = Grow,\n transitionDuration = defaultTransitionDuration,\n TransitionProps: {\n onEnter,\n onExited,\n ...TransitionProps\n } = {},\n ...other\n } = props;\n const ownerState = {\n ...props,\n anchorOrigin: {\n vertical,\n horizontal\n },\n autoHideDuration,\n disableWindowBlurListener,\n TransitionComponent,\n transitionDuration\n };\n const classes = useUtilityClasses(ownerState);\n const {\n getRootProps,\n onClickAway\n } = useSnackbar({\n ...ownerState\n });\n const [exited, setExited] = React.useState(true);\n const rootProps = useSlotProps({\n elementType: SnackbarRoot,\n getSlotProps: getRootProps,\n externalForwardedProps: other,\n ownerState,\n additionalProps: {\n ref\n },\n className: [classes.root, className]\n });\n const handleExited = node => {\n setExited(true);\n if (onExited) {\n onExited(node);\n }\n };\n const handleEnter = (node, isAppearing) => {\n setExited(false);\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n };\n\n // So we only render active snackbars.\n if (!open && exited) {\n return null;\n }\n return /*#__PURE__*/_jsx(ClickAwayListener, {\n onClickAway: onClickAway,\n ...ClickAwayListenerProps,\n children: /*#__PURE__*/_jsx(SnackbarRoot, {\n ...rootProps,\n children: /*#__PURE__*/_jsx(TransitionComponent, {\n appear: true,\n in: open,\n timeout: transitionDuration,\n direction: vertical === 'top' ? 'down' : 'up',\n onEnter: handleEnter,\n onExited: handleExited,\n ...TransitionProps,\n children: children || /*#__PURE__*/_jsx(SnackbarContent, {\n message: message,\n action: action,\n ...ContentProps\n })\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Snackbar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The action to display. It renders after the message, at the end of the snackbar.\n */\n action: PropTypes.node,\n /**\n * The anchor of the `Snackbar`.\n * On smaller screens, the component grows to occupy all the available width,\n * the horizontal alignment is ignored.\n * @default { vertical: 'bottom', horizontal: 'left' }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['center', 'left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n /**\n * The number of milliseconds to wait before automatically calling the\n * `onClose` function. `onClose` should then set the state of the `open`\n * prop to hide the Snackbar. This behavior is disabled by default with\n * the `null` value.\n * @default null\n */\n autoHideDuration: PropTypes.number,\n /**\n * Replace the `SnackbarContent` component.\n */\n children: PropTypes.element,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Props applied to the `ClickAwayListener` element.\n */\n ClickAwayListenerProps: PropTypes.object,\n /**\n * Props applied to the [`SnackbarContent`](https://mui.com/material-ui/api/snackbar-content/) element.\n */\n ContentProps: PropTypes.object,\n /**\n * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.\n * @default false\n */\n disableWindowBlurListener: PropTypes.bool,\n /**\n * When displaying multiple consecutive snackbars using a single parent-rendered\n * ``, add the `key` prop to ensure independent treatment of each message.\n * For instance, use ``. Otherwise, messages might update\n * in place, and features like `autoHideDuration` could be affected.\n */\n key: () => null,\n /**\n * The message to display.\n */\n message: PropTypes.node,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n * Typically `onClose` is used to set state in the parent component,\n * which is used to control the `Snackbar` `open` prop.\n * The `reason` parameter can optionally be used to control the response to `onClose`,\n * for example ignoring `clickaway`.\n *\n * @param {React.SyntheticEvent | Event} event The event source of the callback.\n * @param {string} reason Can be: `\"timeout\"` (`autoHideDuration` expired), `\"clickaway\"`, or `\"escapeKeyDown\"`.\n */\n onClose: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n onMouseEnter: PropTypes.func,\n /**\n * @ignore\n */\n onMouseLeave: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n /**\n * The number of milliseconds to wait before dismissing after user interaction.\n * If `autoHideDuration` prop isn't specified, it does nothing.\n * If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,\n * we default to `autoHideDuration / 2` ms.\n */\n resumeHideDuration: PropTypes.number,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Grow\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Snackbar;","'use client';\n\nimport * as React from 'react';\nimport { unstable_useEventCallback as useEventCallback, unstable_useTimeout as useTimeout } from '@mui/utils';\nimport extractEventHandlers from '@mui/utils/extractEventHandlers';\n/**\n * The basic building block for creating custom snackbar.\n *\n * Demos:\n *\n * - [Snackbar](https://mui.com/base-ui/react-snackbar/#hook)\n *\n * API:\n *\n * - [useSnackbar API](https://mui.com/base-ui/react-snackbar/hooks-api/#use-snackbar)\n */\nfunction useSnackbar(parameters = {}) {\n const {\n autoHideDuration = null,\n disableWindowBlurListener = false,\n onClose,\n open,\n resumeHideDuration\n } = parameters;\n const timerAutoHide = useTimeout();\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n /**\n * @param {KeyboardEvent} nativeEvent\n */\n function handleKeyDown(nativeEvent) {\n if (!nativeEvent.defaultPrevented) {\n if (nativeEvent.key === 'Escape') {\n // not calling `preventDefault` since we don't know if people may ignore this event e.g. a permanently open snackbar\n onClose?.(nativeEvent, 'escapeKeyDown');\n }\n }\n }\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [open, onClose]);\n const handleClose = useEventCallback((event, reason) => {\n onClose?.(event, reason);\n });\n const setAutoHideTimer = useEventCallback(autoHideDurationParam => {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n timerAutoHide.start(autoHideDurationParam, () => {\n handleClose(null, 'timeout');\n });\n });\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n return timerAutoHide.clear;\n }, [open, autoHideDuration, setAutoHideTimer, timerAutoHide]);\n const handleClickAway = event => {\n onClose?.(event, 'clickaway');\n };\n\n // Pause the timer when the user is interacting with the Snackbar\n // or when the user hide the window.\n const handlePause = timerAutoHide.clear;\n\n // Restart the timer when the user is no longer interacting with the Snackbar\n // or when the window is shown back.\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n const createHandleBlur = otherHandlers => event => {\n const onBlurCallback = otherHandlers.onBlur;\n onBlurCallback?.(event);\n handleResume();\n };\n const createHandleFocus = otherHandlers => event => {\n const onFocusCallback = otherHandlers.onFocus;\n onFocusCallback?.(event);\n handlePause();\n };\n const createMouseEnter = otherHandlers => event => {\n const onMouseEnterCallback = otherHandlers.onMouseEnter;\n onMouseEnterCallback?.(event);\n handlePause();\n };\n const createMouseLeave = otherHandlers => event => {\n const onMouseLeaveCallback = otherHandlers.onMouseLeave;\n onMouseLeaveCallback?.(event);\n handleResume();\n };\n React.useEffect(() => {\n // TODO: window global should be refactored here\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n return undefined;\n }, [disableWindowBlurListener, open, handleResume, handlePause]);\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = {\n ...extractEventHandlers(parameters),\n ...extractEventHandlers(externalProps)\n };\n return {\n // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.\n // See https://github.com/mui/material-ui/issues/29080\n role: 'presentation',\n ...externalProps,\n ...externalEventHandlers,\n onBlur: createHandleBlur(externalEventHandlers),\n onFocus: createHandleFocus(externalEventHandlers),\n onMouseEnter: createMouseEnter(externalEventHandlers),\n onMouseLeave: createMouseLeave(externalEventHandlers)\n };\n };\n return {\n getRootProps,\n onClickAway: handleClickAway\n };\n}\nexport default useSnackbar;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSnackbarUtilityClass(slot) {\n return generateUtilityClass('MuiSnackbar', slot);\n}\nconst snackbarClasses = generateUtilityClasses('MuiSnackbar', ['root', 'anchorOriginTopCenter', 'anchorOriginBottomCenter', 'anchorOriginTopRight', 'anchorOriginBottomRight', 'anchorOriginTopLeft', 'anchorOriginBottomLeft']);\nexport default snackbarClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { emphasize } from '@mui/system/colorManipulator';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Paper from \"../Paper/index.js\";\nimport { getSnackbarContentUtilityClass } from \"./snackbarContentClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n action: ['action'],\n message: ['message']\n };\n return composeClasses(slots, getSnackbarContentUtilityClass, classes);\n};\nconst SnackbarContentRoot = styled(Paper, {\n name: 'MuiSnackbarContent',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => {\n const emphasis = theme.palette.mode === 'light' ? 0.8 : 0.98;\n const backgroundColor = emphasize(theme.palette.background.default, emphasis);\n return {\n ...theme.typography.body2,\n color: theme.vars ? theme.vars.palette.SnackbarContent.color : theme.palette.getContrastText(backgroundColor),\n backgroundColor: theme.vars ? theme.vars.palette.SnackbarContent.bg : backgroundColor,\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n padding: '6px 16px',\n borderRadius: (theme.vars || theme).shape.borderRadius,\n flexGrow: 1,\n [theme.breakpoints.up('sm')]: {\n flexGrow: 'initial',\n minWidth: 288\n }\n };\n}));\nconst SnackbarContentMessage = styled('div', {\n name: 'MuiSnackbarContent',\n slot: 'Message',\n overridesResolver: (props, styles) => styles.message\n})({\n padding: '8px 0'\n});\nconst SnackbarContentAction = styled('div', {\n name: 'MuiSnackbarContent',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: 16,\n marginRight: -8\n});\nconst SnackbarContent = /*#__PURE__*/React.forwardRef(function SnackbarContent(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSnackbarContent'\n });\n const {\n action,\n className,\n message,\n role = 'alert',\n ...other\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SnackbarContentRoot, {\n role: role,\n square: true,\n elevation: 6,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: [/*#__PURE__*/_jsx(SnackbarContentMessage, {\n className: classes.message,\n ownerState: ownerState,\n children: message\n }), action ? /*#__PURE__*/_jsx(SnackbarContentAction, {\n className: classes.action,\n ownerState: ownerState,\n children: action\n }) : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? SnackbarContent.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The action to display. It renders after the message, at the end of the snackbar.\n */\n action: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The message to display.\n */\n message: PropTypes.node,\n /**\n * The ARIA role attribute of the element.\n * @default 'alert'\n */\n role: PropTypes /* @typescript-to-proptypes-ignore */.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default SnackbarContent;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSnackbarContentUtilityClass(slot) {\n return generateUtilityClass('MuiSnackbarContent', slot);\n}\nconst snackbarContentClasses = generateUtilityClasses('MuiSnackbarContent', ['root', 'message', 'action']);\nexport default snackbarContentClasses;"],"names":["mapEventPropToEvent","eventProp","substring","toLowerCase","ClickAwayListener","props","children","disableReactTree","mouseEvent","onClickAway","touchEvent","movedRef","nodeRef","activatedRef","syntheticEventRef","setTimeout","current","handleRef","handleClickAway","event","insideReactTree","doc","documentElement","clientWidth","clientX","clientHeight","clientY","clickedRootScrollbar","insideDOM","composedPath","includes","contains","target","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","ref","mappedTouchEvent","handleTouchMove","addEventListener","removeEventListener","mappedMouseEvent","SnackbarRoot","styled","name","slot","overridesResolver","styles","ownerState","root","capitalize","anchorOrigin","vertical","horizontal","memoTheme","theme","zIndex","vars","snackbar","position","display","left","right","justifyContent","alignItems","variants","style","top","breakpoints","up","bottom","transform","inProps","useTheme","defaultTransitionDuration","enter","transitions","duration","enteringScreen","exit","leavingScreen","action","autoHideDuration","className","ClickAwayListenerProps","ContentProps","disableWindowBlurListener","message","onBlur","onClose","onFocus","onMouseEnter","onMouseLeave","open","resumeHideDuration","TransitionComponent","Grow","transitionDuration","TransitionProps","onEnter","onExited","other","classes","slots","composeClasses","useUtilityClasses","getRootProps","parameters","timerAutoHide","useTimeout","document","handleKeyDown","nativeEvent","defaultPrevented","key","handleClose","useEventCallback","reason","setAutoHideTimer","autoHideDurationParam","start","clear","handlePause","handleResume","createHandleFocus","otherHandlers","onFocusCallback","createMouseEnter","onMouseEnterCallback","createMouseLeave","onMouseLeaveCallback","window","externalProps","externalEventHandlers","extractEventHandlers","role","onBlurCallback","exited","setExited","rootProps","useSlotProps","elementType","getSlotProps","externalForwardedProps","additionalProps","appear","in","timeout","direction","node","isAppearing","SnackbarContent","getSnackbarUtilityClass","SnackbarContentRoot","emphasis","palette","mode","backgroundColor","background","default","typography","body2","color","getContrastText","bg","flexWrap","padding","borderRadius","shape","flexGrow","minWidth","SnackbarContentMessage","SnackbarContentAction","marginLeft","paddingLeft","marginRight","square","elevation","getSnackbarContentUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2424.7cd6703f.chunk.js --- a/x/static/js/2424.7cd6703f.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2424],{52424:(e,t,n)=>{n.r(t),n.d(t,{default:()=>s});var a=n(7552),o=n(68446),r=n(99546),l=n(49792);const i=(0,o.observer)((function({model:e}){const t=(0,r.getContainingView)(e),n=Math.round(t.dynamicBlocks.totalWidthPx),o=e.height,l=(0,a.useCallback)((t=>{e.setRef(t)}),[e,n,o]);return a.createElement("canvas",{"data-testid":"arc-canvas",ref:l,style:{width:n,height:o,position:"absolute"},width:2*n,height:2*o})})),s=(0,o.observer)((function({model:e}){return a.createElement(l.A,{model:e},a.createElement(i,{model:e}))}))},49792:(e,t,n)=>{n.d(t,{A:()=>h});var a=n(7552),o=n(49823),r=n(20529),l=n(75785),i=n(68446),s=n(99546),d=n(89003),c=n(5401);const g=(0,l.n9)()((e=>({loading:{backgroundColor:e.palette.background.default,backgroundImage:`repeating-linear-gradient(45deg, transparent, transparent 5px, ${e.palette.action.disabledBackground} 5px, ${e.palette.action.disabledBackground} 10px)`,position:"absolute",bottom:0,height:50,width:300,right:0,pointerEvents:"none",textAlign:"center"}}))),m=(0,i.observer)((function({model:e,children:t}){const{error:n,regionTooLarge:o}=e;return n?a.createElement(r.LW,{message:`${n}`,severity:"error",action:a.createElement(d.A,{title:"Reload"},a.createElement(c.A,{"data-testid":"reload_button",onClick:()=>{e.reload()}},"Reload"))}):o?e.regionCannotBeRendered():a.createElement(u,{model:e},t)})),u=(0,i.observer)((function({model:e,children:t}){const{drawn:n,loading:o}=e,r=(0,s.getContainingView)(e),l=(e.lastDrawnOffsetPx||0)-r.offsetPx;return a.createElement("div",{"data-testid":`drawn-${n}`},a.createElement("div",{style:{position:"absolute",left:l}},t),0!==l||o?a.createElement(b,{model:e}):null)})),b=(0,i.observer)((function({model:e}){const{classes:t}=g(),{message:n}=e;return a.createElement("div",{className:t.loading},a.createElement(o.LoadingEllipses,{message:n}))})),h=m}}]); -//# sourceMappingURL=2424.7cd6703f.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2424.7cd6703f.chunk.js.map --- a/x/static/js/2424.7cd6703f.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2424.7cd6703f.chunk.js","mappings":"sMAWA,MAAMA,GAAOC,EAAAA,EAAAA,WAAS,UAAU,MAC9BC,IAIA,MAAMC,GAAOC,EAAAA,EAAAA,mBAAkBF,GACzBG,EAAQC,KAAKC,MAAMJ,EAAKK,cAAcC,cACtCC,EAASR,EAAMQ,OAEfC,GAAKC,EAAAA,EAAAA,cACRC,IACCX,EAAMY,OAAOD,EAAI,GAGnB,CAACX,EAAOG,EAAOK,IAIjB,OACEK,EAAAA,cAAA,UACE,cAAY,aACZF,IAAKF,EACLK,MAAO,CAAEX,QAAOK,SAAQO,SAAU,YAClCZ,MAAe,EAARA,EACPK,OAAiB,EAATA,GAGd,IAcA,GAZqCT,EAAAA,EAAAA,WAAS,UAAU,MACtDC,IAIA,OACEa,EAAAA,cAACG,EAAAA,EAAoB,CAAChB,MAAOA,GAC3Ba,EAAAA,cAACf,EAAI,CAACE,MAAOA,IAGnB,G,6HCnCA,MAAMiB,GAAYC,EAAAA,EAAAA,KAAAA,EAAaC,IAAS,CACtCC,QAAS,CACPC,gBAAiBF,EAAMG,QAAQC,WAAWC,QAC1CC,gBAAiB,kEAAkEN,EAAMG,QAAQI,OAAOC,2BAA2BR,EAAMG,QAAQI,OAAOC,2BACxJZ,SAAU,WACVa,OAAQ,EACRpB,OAAQ,GACRL,MAAO,IACP0B,MAAO,EACPC,cAAe,OACfC,UAAW,cAITf,GAAuBjB,EAAAA,EAAAA,WAAS,UAAU,MAC9CC,EAAK,SACLgC,IAKA,MAAM,MAAEC,EAAK,eAAEC,GAAmBlC,EAClC,OAAOiC,EACLpB,EAAAA,cAACsB,EAAAA,GAAQ,CACPC,QAAS,GAAGH,IACZI,SAAS,QACTX,OACEb,EAAAA,cAACyB,EAAAA,EAAO,CAACC,MAAM,UACb1B,EAAAA,cAAC2B,EAAAA,EAAM,CACL,cAAY,gBACZC,QAASA,KACPzC,EAAM0C,QAAQ,GAEjB,aAMLR,EACFlC,EAAM2C,yBAEN9B,EAAAA,cAAC+B,EAAW,CAAC5C,MAAOA,GAAQgC,EAEhC,IAEMY,GAAc7C,EAAAA,EAAAA,WAAS,UAAU,MACrCC,EAAK,SACLgC,IAKA,MAAM,MAAEa,EAAK,QAAEzB,GAAYpB,EACrBC,GAAOC,EAAAA,EAAAA,mBAAkBF,GACzB8C,GAAQ9C,EAAM+C,mBAAqB,GAAK9C,EAAK+C,SACnD,OAGEnC,EAAAA,cAAA,OAAK,cAAa,SAASgC,KACzBhC,EAAAA,cAAA,OAAKC,MAAO,CAAEC,SAAU,WAAY+B,SAASd,GACnC,IAATc,GAAc1B,EAAUP,EAAAA,cAACoC,EAAU,CAACjD,MAAOA,IAAY,KAG9D,IAEMiD,GAAalD,EAAAA,EAAAA,WAAS,UAAU,MACpCC,IAIA,MAAM,QAAEkD,GAAYjC,KACd,QAAEmB,GAAYpC,EACpB,OACEa,EAAAA,cAAA,OAAKsC,UAAWD,EAAQ9B,SACtBP,EAAAA,cAACuC,EAAAA,gBAAe,CAAChB,QAASA,IAGhC,IAEA,G","sources":["../../../plugins/alignments/src/LinearReadArcsDisplay/components/ReactComponent.tsx","../../../plugins/alignments/src/shared/BaseDisplayComponent.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport { observer } from 'mobx-react'\nimport { getContainingView } from '@jbrowse/core/util'\nimport { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view'\n\n// local\nimport { LinearReadArcsDisplayModel } from '../model'\nimport BaseDisplayComponent from '../../shared/BaseDisplayComponent'\n\ntype LGV = LinearGenomeViewModel\n\nconst Arcs = observer(function ({\n model,\n}: {\n model: LinearReadArcsDisplayModel\n}) {\n const view = getContainingView(model) as LGV\n const width = Math.round(view.dynamicBlocks.totalWidthPx)\n const height = model.height\n // biome-ignore lint/correctness/useExhaustiveDependencies:\n const cb = useCallback(\n (ref: HTMLCanvasElement) => {\n model.setRef(ref)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [model, width, height],\n )\n\n // note: the position absolute below avoids scrollbar from appearing on track\n return (\n \n )\n})\n\nconst LinearReadArcsReactComponent = observer(function ({\n model,\n}: {\n model: LinearReadArcsDisplayModel\n}) {\n return (\n \n \n \n )\n})\n\nexport default LinearReadArcsReactComponent\n","import React from 'react'\nimport { LoadingEllipses } from '@jbrowse/core/ui'\nimport {\n BlockMsg,\n LinearGenomeViewModel,\n} from '@jbrowse/plugin-linear-genome-view'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { getContainingView } from '@jbrowse/core/util'\nimport { Button, Tooltip } from '@mui/material'\n\n// local\nimport { LinearReadCloudDisplayModel } from '../LinearReadCloudDisplay/model'\nimport { LinearReadArcsDisplayModel } from '../LinearReadArcsDisplay/model'\n\nconst useStyles = makeStyles()(theme => ({\n loading: {\n backgroundColor: theme.palette.background.default,\n backgroundImage: `repeating-linear-gradient(45deg, transparent, transparent 5px, ${theme.palette.action.disabledBackground} 5px, ${theme.palette.action.disabledBackground} 10px)`,\n position: 'absolute',\n bottom: 0,\n height: 50,\n width: 300,\n right: 0,\n pointerEvents: 'none',\n textAlign: 'center',\n },\n}))\n\nconst BaseDisplayComponent = observer(function ({\n model,\n children,\n}: {\n model: LinearReadArcsDisplayModel | LinearReadCloudDisplayModel\n children?: React.ReactNode\n}) {\n const { error, regionTooLarge } = model\n return error ? (\n \n {\n model.reload()\n }}\n >\n Reload\n \n \n }\n />\n ) : regionTooLarge ? (\n model.regionCannotBeRendered()\n ) : (\n {children}\n )\n})\n\nconst DataDisplay = observer(function ({\n model,\n children,\n}: {\n model: LinearReadArcsDisplayModel | LinearReadCloudDisplayModel\n children?: React.ReactNode\n}) {\n const { drawn, loading } = model\n const view = getContainingView(model) as LinearGenomeViewModel\n const left = (model.lastDrawnOffsetPx || 0) - view.offsetPx\n return (\n // this data-testid is located here because changing props on the canvas\n // itself is very sensitive to triggering ref invalidation\n
\n
{children}
\n {left !== 0 || loading ? : null}\n
\n )\n})\n\nconst LoadingBar = observer(function ({\n model,\n}: {\n model: LinearReadArcsDisplayModel | LinearReadCloudDisplayModel\n}) {\n const { classes } = useStyles()\n const { message } = model\n return (\n
\n \n
\n )\n})\n\nexport default BaseDisplayComponent\n"],"names":["Arcs","observer","model","view","getContainingView","width","Math","round","dynamicBlocks","totalWidthPx","height","cb","useCallback","ref","setRef","React","style","position","BaseDisplayComponent","useStyles","makeStyles","theme","loading","backgroundColor","palette","background","default","backgroundImage","action","disabledBackground","bottom","right","pointerEvents","textAlign","children","error","regionTooLarge","BlockMsg","message","severity","Tooltip","title","Button","onClick","reload","regionCannotBeRendered","DataDisplay","drawn","left","lastDrawnOffsetPx","offsetPx","LoadingBar","classes","className","LoadingEllipses"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/246.9848bd41.chunk.js --- a/x/static/js/246.9848bd41.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[246,8341,722,5484,7865,2627,5008],{59705:(e,r,t)=>{t.d(r,{A:()=>k});var n=t(7552),s=t(93878),i=t(70799),o=t(64761),a=t(51148),c=t(60129),l=t(4785),u=t(15622),d=t(58520),p=t(72489),m=t(69500);const v=o.i7` - 0% { - transform: rotate(0deg); - } - - 100% { - transform: rotate(360deg); - } -`,f=o.i7` - 0% { - stroke-dasharray: 1px, 200px; - stroke-dashoffset: 0; - } - - 50% { - stroke-dasharray: 100px, 200px; - stroke-dashoffset: -15px; - } - - 100% { - stroke-dasharray: 100px, 200px; - stroke-dashoffset: -125px; - } -`,h="string"!=typeof v?o.AH` - animation: ${v} 1.4s linear infinite; - `:null,g="string"!=typeof f?o.AH` - animation: ${f} 1.4s ease-in-out infinite; - `:null,b=(0,a.Ay)("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(e,r)=>{const{ownerState:t}=e;return[r.root,r[t.variant],r[`color${(0,u.A)(t.color)}`]]}})((0,c.A)((({theme:e})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("transform")}},{props:{variant:"indeterminate"},style:h||{animation:`${v} 1.4s linear infinite`}},...Object.entries(e.palette).filter((0,d.A)()).map((([r])=>({props:{color:r},style:{color:(e.vars||e).palette[r].main}})))]})))),y=(0,a.Ay)("svg",{name:"MuiCircularProgress",slot:"Svg",overridesResolver:(e,r)=>r.svg})({display:"block"}),A=(0,a.Ay)("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,r)=>{const{ownerState:t}=e;return[r.circle,r[`circle${(0,u.A)(t.variant)}`],t.disableShrink&&r.circleDisableShrink]}})((0,c.A)((({theme:e})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:e})=>"indeterminate"===e.variant&&!e.disableShrink,style:g||{animation:`${f} 1.4s ease-in-out infinite`}}]})))),k=n.forwardRef((function(e,r){const t=(0,l.b)({props:e,name:"MuiCircularProgress"}),{className:n,color:o="primary",disableShrink:a=!1,size:c=40,style:d,thickness:v=3.6,value:f=0,variant:h="indeterminate",...g}=t,k={...t,color:o,disableShrink:a,size:c,thickness:v,value:f,variant:h},x=(e=>{const{classes:r,variant:t,color:n,disableShrink:s}=e,o={root:["root",t,`color${(0,u.A)(n)}`],svg:["svg"],circle:["circle",`circle${(0,u.A)(t)}`,s&&"circleDisableShrink"]};return(0,i.A)(o,p.b,r)})(k),w={},S={},E={};if("determinate"===h){const e=2*Math.PI*((44-v)/2);w.strokeDasharray=e.toFixed(3),E["aria-valuenow"]=Math.round(f),w.strokeDashoffset=`${((100-f)/100*e).toFixed(3)}px`,S.transform="rotate(-90deg)"}return(0,m.jsx)(b,{className:(0,s.A)(x.root,n),style:{width:c,height:c,...S,...d},ownerState:k,ref:r,role:"progressbar",...E,...g,children:(0,m.jsx)(y,{className:x.svg,ownerState:k,viewBox:"22 22 44 44",children:(0,m.jsx)(A,{className:x.circle,style:w,ownerState:k,cx:44,cy:44,r:(44-v)/2,fill:"none",strokeWidth:v})})})}))},72489:(e,r,t)=>{t.d(r,{A:()=>o,b:()=>i});var n=t(33761),s=t(85693);function i(e){return(0,s.Ay)("MuiCircularProgress",e)}const o=(0,n.A)("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","circle","circleDeterminate","circleIndeterminate","circleDisableShrink"])},88215:(e,r,t)=>{t.d(r,{x:()=>u});var n=t(7552),s=t(29527),i=t(89887),o=t(99305),a=t(28325),c=t(69500);function l(e){return e.substring(2).toLowerCase()}function u(e){const{children:r,disableReactTree:t=!1,mouseEvent:u="onClick",onClickAway:d,touchEvent:p="onTouchEnd"}=e,m=n.useRef(!1),v=n.useRef(null),f=n.useRef(!1),h=n.useRef(!1);n.useEffect((()=>(setTimeout((()=>{f.current=!0}),0),()=>{f.current=!1})),[]);const g=(0,s.A)((0,a.A)(r),v),b=(0,i.A)((e=>{const r=h.current;h.current=!1;const n=(0,o.A)(v.current);if(!f.current||!v.current||"clientX"in e&&function(e,r){return r.documentElement.clientWidtht=>{h.current=!0;const n=r.props[e];n&&n(t)},A={ref:g};return!1!==p&&(A[p]=y(p)),n.useEffect((()=>{if(!1!==p){const e=l(p),r=(0,o.A)(v.current),t=()=>{m.current=!0};return r.addEventListener(e,b),r.addEventListener("touchmove",t),()=>{r.removeEventListener(e,b),r.removeEventListener("touchmove",t)}}}),[b,p]),!1!==u&&(A[u]=y(u)),n.useEffect((()=>{if(!1!==u){const e=l(u),r=(0,o.A)(v.current);return r.addEventListener(e,b),()=>{r.removeEventListener(e,b)}}}),[b,u]),(0,c.jsx)(n.Fragment,{children:n.cloneElement(r,A)})}},17515:(e,r,t)=>{t.d(r,{A:()=>p});var n=t(7552),s=t(93878),i=t(70799),o=t(51148),a=t(60129),c=t(4785),l=t(89663),u=t(69500);const d=(0,o.Ay)("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,r)=>{const{ownerState:t}=e;return[r.root,!t.disableGutters&&r.gutters,r[t.variant]]}})((0,a.A)((({theme:e})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:e.mixins.toolbar}]})))),p=n.forwardRef((function(e,r){const t=(0,c.b)({props:e,name:"MuiToolbar"}),{className:n,component:o="div",disableGutters:a=!1,variant:p="regular",...m}=t,v={...t,component:o,disableGutters:a,variant:p},f=(e=>{const{classes:r,disableGutters:t,variant:n}=e,s={root:["root",!t&&"gutters",n]};return(0,i.A)(s,l.U,r)})(v);return(0,u.jsx)(d,{as:o,className:(0,s.A)(f.root,n),ref:r,ownerState:v,...m})}))},89663:(e,r,t)=>{t.d(r,{A:()=>o,U:()=>i});var n=t(33761),s=t(85693);function i(e){return(0,s.Ay)("MuiToolbar",e)}const o=(0,n.A)("MuiToolbar",["root","gutters","regular","dense"])}}]); -//# sourceMappingURL=246.9848bd41.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/246.9848bd41.chunk.js.map --- a/x/static/js/246.9848bd41.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/246.9848bd41.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/CircularProgress/CircularProgress.js","../../../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../../../node_modules/@mui/material/ClickAwayListener/ClickAwayListener.js","../../../node_modules/@mui/material/Toolbar/Toolbar.js","../../../node_modules/@mui/material/Toolbar/toolbarClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { keyframes, css, styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { getCircularProgressUtilityClass } from \"./circularProgressClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SIZE = 44;\nconst circularRotateKeyframe = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`;\nconst circularDashKeyframe = keyframes`\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n`;\n\n// This implementation is for supporting both Styled-components v4+ and Pigment CSS.\n// A global animation has to be created here for Styled-components v4+ (https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#12).\n// which can be done by checking typeof indeterminate1Keyframe !== 'string' (at runtime, Pigment CSS transform keyframes`` to a string).\nconst rotateAnimation = typeof circularRotateKeyframe !== 'string' ? css`\n animation: ${circularRotateKeyframe} 1.4s linear infinite;\n ` : null;\nconst dashAnimation = typeof circularDashKeyframe !== 'string' ? css`\n animation: ${circularDashKeyframe} 1.4s ease-in-out infinite;\n ` : null;\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color,\n disableShrink\n } = ownerState;\n const slots = {\n root: ['root', variant, `color${capitalize(color)}`],\n svg: ['svg'],\n circle: ['circle', `circle${capitalize(variant)}`, disableShrink && 'circleDisableShrink']\n };\n return composeClasses(slots, getCircularProgressUtilityClass, classes);\n};\nconst CircularProgressRoot = styled('span', {\n name: 'MuiCircularProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'inline-block',\n variants: [{\n props: {\n variant: 'determinate'\n },\n style: {\n transition: theme.transitions.create('transform')\n }\n }, {\n props: {\n variant: 'indeterminate'\n },\n style: rotateAnimation || {\n animation: `${circularRotateKeyframe} 1.4s linear infinite`\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n color: (theme.vars || theme).palette[color].main\n }\n }))]\n})));\nconst CircularProgressSVG = styled('svg', {\n name: 'MuiCircularProgress',\n slot: 'Svg',\n overridesResolver: (props, styles) => styles.svg\n})({\n display: 'block' // Keeps the progress centered\n});\nconst CircularProgressCircle = styled('circle', {\n name: 'MuiCircularProgress',\n slot: 'Circle',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];\n }\n})(memoTheme(({\n theme\n}) => ({\n stroke: 'currentColor',\n variants: [{\n props: {\n variant: 'determinate'\n },\n style: {\n transition: theme.transitions.create('stroke-dashoffset')\n }\n }, {\n props: {\n variant: 'indeterminate'\n },\n style: {\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: '80px, 200px',\n strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.variant === 'indeterminate' && !ownerState.disableShrink,\n style: dashAnimation || {\n // At runtime for Pigment CSS, `bufferAnimation` will be null and the generated keyframe will be used.\n animation: `${circularDashKeyframe} 1.4s ease-in-out infinite`\n }\n }]\n})));\n\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\nconst CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCircularProgress'\n });\n const {\n className,\n color = 'primary',\n disableShrink = false,\n size = 40,\n style,\n thickness = 3.6,\n value = 0,\n variant = 'indeterminate',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n disableShrink,\n size,\n thickness,\n value,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n const circleStyle = {};\n const rootStyle = {};\n const rootProps = {};\n if (variant === 'determinate') {\n const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps['aria-valuenow'] = Math.round(value);\n circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;\n rootStyle.transform = 'rotate(-90deg)';\n }\n return /*#__PURE__*/_jsx(CircularProgressRoot, {\n className: clsx(classes.root, className),\n style: {\n width: size,\n height: size,\n ...rootStyle,\n ...style\n },\n ownerState: ownerState,\n ref: ref,\n role: \"progressbar\",\n ...rootProps,\n ...other,\n children: /*#__PURE__*/_jsx(CircularProgressSVG, {\n className: classes.svg,\n ownerState: ownerState,\n viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,\n children: /*#__PURE__*/_jsx(CircularProgressCircle, {\n className: classes.circle,\n style: circleStyle,\n ownerState: ownerState,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: \"none\",\n strokeWidth: thickness\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the shrink animation is disabled.\n * This only works if variant is `indeterminate`.\n * @default false\n */\n disableShrink: chainPropTypes(PropTypes.bool, props => {\n if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n return new Error('MUI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n }\n return null;\n }),\n /**\n * The size of the component.\n * If using a number, the pixel unit is assumed.\n * If using a string, you need to provide the CSS unit, for example '3rem'.\n * @default 40\n */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The thickness of the circle.\n * @default 3.6\n */\n thickness: PropTypes.number,\n /**\n * The value of the progress indicator for the determinate variant.\n * Value between 0 and 100.\n * @default 0\n */\n value: PropTypes.number,\n /**\n * The variant to use.\n * Use indeterminate when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['determinate', 'indeterminate'])\n} : void 0;\nexport default CircularProgress;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCircularProgressUtilityClass(slot) {\n return generateUtilityClass('MuiCircularProgress', slot);\n}\nconst circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);\nexport default circularProgressClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport getReactNodeRef from '@mui/utils/getReactNodeRef';\n\n// TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase : never` once generatePropTypes runs with TS 4.1\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click-Away Listener](https://mui.com/material-ui/react-click-away-listener/)\n * - [Menu](https://mui.com/material-ui/react-menu/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/material-ui/api/click-away-listener/)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = 'onClick',\n onClickAway,\n touchEvent = 'onTouchEnd'\n } = props;\n const movedRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n React.useEffect(() => {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = useForkRef(getReactNodeRef(children), nodeRef);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n const handleClickAway = useEventCallback(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current);\n\n // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n }\n\n // Do not act if user performed touchmove\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n let insideDOM;\n\n // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n if (event.composedPath) {\n insideDOM = event.composedPath().includes(nodeRef.current);\n } else {\n insideDOM = !doc.documentElement.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n });\n\n // Keep track of mouse/touch events that bubbled up through the portal.\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const childrenProps = {\n ref: handleRef\n };\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n React.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = ownerDocument(nodeRef.current);\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n return undefined;\n }, [handleClickAway, touchEvent]);\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n React.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n * @default false\n */\n disableReactTree: PropTypes.bool,\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n * @default 'onClick'\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n * @default 'onTouchEnd'\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport { ClickAwayListener };","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getToolbarUtilityClass } from \"./toolbarClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableGutters,\n variant\n } = ownerState;\n const slots = {\n root: ['root', !disableGutters && 'gutters', variant]\n };\n return composeClasses(slots, getToolbarUtilityClass, classes);\n};\nconst ToolbarRoot = styled('div', {\n name: 'MuiToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableGutters && styles.gutters, styles[ownerState.variant]];\n }\n})(memoTheme(({\n theme\n}) => ({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.disableGutters,\n style: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n }\n }, {\n props: {\n variant: 'dense'\n },\n style: {\n minHeight: 48\n }\n }, {\n props: {\n variant: 'regular'\n },\n style: theme.mixins.toolbar\n }]\n})));\nconst Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiToolbar'\n });\n const {\n className,\n component = 'div',\n disableGutters = false,\n variant = 'regular',\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n disableGutters,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ToolbarRoot, {\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Toolbar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`.\n * The Toolbar is a flex container, allowing flex item properties to be used to lay out the children.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, disables gutter padding.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'regular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['dense', 'regular']), PropTypes.string])\n} : void 0;\nexport default Toolbar;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiToolbar', slot);\n}\nconst toolbarClasses = generateUtilityClasses('MuiToolbar', ['root', 'gutters', 'regular', 'dense']);\nexport default toolbarClasses;"],"names":["circularRotateKeyframe","circularDashKeyframe","rotateAnimation","dashAnimation","CircularProgressRoot","name","slot","overridesResolver","props","styles","ownerState","root","variant","color","theme","display","variants","style","transition","transitions","create","animation","Object","entries","palette","filter","map","vars","main","CircularProgressSVG","svg","CircularProgressCircle","circle","disableShrink","circleDisableShrink","stroke","strokeDasharray","strokeDashoffset","inProps","ref","className","size","thickness","value","other","classes","slots","useUtilityClasses","circleStyle","rootStyle","rootProps","circumference","Math","PI","toFixed","round","transform","width","height","role","children","viewBox","cx","cy","r","fill","strokeWidth","getCircularProgressUtilityClass","mapEventPropToEvent","eventProp","substring","toLowerCase","ClickAwayListener","disableReactTree","mouseEvent","onClickAway","touchEvent","movedRef","nodeRef","activatedRef","syntheticEventRef","setTimeout","current","handleRef","handleClickAway","event","insideReactTree","doc","documentElement","clientWidth","clientX","clientHeight","clientY","clickedRootScrollbar","insideDOM","composedPath","includes","contains","target","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","mappedTouchEvent","handleTouchMove","addEventListener","removeEventListener","mappedMouseEvent","ToolbarRoot","disableGutters","gutters","position","alignItems","paddingLeft","spacing","paddingRight","breakpoints","up","minHeight","mixins","toolbar","component","as","getToolbarUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2493.20e8e76c.chunk.js --- a/x/static/js/2493.20e8e76c.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2493],{32493:(e,s,a)=>{a.r(s),a.d(s,{default:()=>b.A,getMenuItemUtilityClass:()=>l.Z,menuItemClasses:()=>l.A});var b=a(29629),l=a(49045)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2583.db78b17f.chunk.js --- a/x/static/js/2583.db78b17f.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2583],{2583:(s,e,a)=>{a.r(e),a.d(e,{chipClasses:()=>l.A,default:()=>b.A,getChipUtilityClass:()=>l.f});var b=a(15779),l=a(32625)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/26.604133d9.chunk.js --- a/x/static/js/26.604133d9.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[26],{70026:(e,s,a)=>{a.r(s),a.d(s,{default:()=>b.A,getMenuUtilityClass:()=>l.e,menuClasses:()=>l.A});var b=a(2051),l=a(78199)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2627.300bea43.chunk.js --- a/x/static/js/2627.300bea43.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2627,8341,722,5484,7865,246,5008],{59705:(e,r,t)=>{t.d(r,{A:()=>k});var n=t(7552),s=t(93878),i=t(70799),o=t(64761),a=t(51148),c=t(60129),l=t(4785),u=t(15622),d=t(58520),p=t(72489),m=t(69500);const v=o.i7` - 0% { - transform: rotate(0deg); - } - - 100% { - transform: rotate(360deg); - } -`,f=o.i7` - 0% { - stroke-dasharray: 1px, 200px; - stroke-dashoffset: 0; - } - - 50% { - stroke-dasharray: 100px, 200px; - stroke-dashoffset: -15px; - } - - 100% { - stroke-dasharray: 100px, 200px; - stroke-dashoffset: -125px; - } -`,h="string"!=typeof v?o.AH` - animation: ${v} 1.4s linear infinite; - `:null,g="string"!=typeof f?o.AH` - animation: ${f} 1.4s ease-in-out infinite; - `:null,b=(0,a.Ay)("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(e,r)=>{const{ownerState:t}=e;return[r.root,r[t.variant],r[`color${(0,u.A)(t.color)}`]]}})((0,c.A)((({theme:e})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("transform")}},{props:{variant:"indeterminate"},style:h||{animation:`${v} 1.4s linear infinite`}},...Object.entries(e.palette).filter((0,d.A)()).map((([r])=>({props:{color:r},style:{color:(e.vars||e).palette[r].main}})))]})))),y=(0,a.Ay)("svg",{name:"MuiCircularProgress",slot:"Svg",overridesResolver:(e,r)=>r.svg})({display:"block"}),A=(0,a.Ay)("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,r)=>{const{ownerState:t}=e;return[r.circle,r[`circle${(0,u.A)(t.variant)}`],t.disableShrink&&r.circleDisableShrink]}})((0,c.A)((({theme:e})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:e})=>"indeterminate"===e.variant&&!e.disableShrink,style:g||{animation:`${f} 1.4s ease-in-out infinite`}}]})))),k=n.forwardRef((function(e,r){const t=(0,l.b)({props:e,name:"MuiCircularProgress"}),{className:n,color:o="primary",disableShrink:a=!1,size:c=40,style:d,thickness:v=3.6,value:f=0,variant:h="indeterminate",...g}=t,k={...t,color:o,disableShrink:a,size:c,thickness:v,value:f,variant:h},x=(e=>{const{classes:r,variant:t,color:n,disableShrink:s}=e,o={root:["root",t,`color${(0,u.A)(n)}`],svg:["svg"],circle:["circle",`circle${(0,u.A)(t)}`,s&&"circleDisableShrink"]};return(0,i.A)(o,p.b,r)})(k),w={},S={},E={};if("determinate"===h){const e=2*Math.PI*((44-v)/2);w.strokeDasharray=e.toFixed(3),E["aria-valuenow"]=Math.round(f),w.strokeDashoffset=`${((100-f)/100*e).toFixed(3)}px`,S.transform="rotate(-90deg)"}return(0,m.jsx)(b,{className:(0,s.A)(x.root,n),style:{width:c,height:c,...S,...d},ownerState:k,ref:r,role:"progressbar",...E,...g,children:(0,m.jsx)(y,{className:x.svg,ownerState:k,viewBox:"22 22 44 44",children:(0,m.jsx)(A,{className:x.circle,style:w,ownerState:k,cx:44,cy:44,r:(44-v)/2,fill:"none",strokeWidth:v})})})}))},72489:(e,r,t)=>{t.d(r,{A:()=>o,b:()=>i});var n=t(33761),s=t(85693);function i(e){return(0,s.Ay)("MuiCircularProgress",e)}const o=(0,n.A)("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","circle","circleDeterminate","circleIndeterminate","circleDisableShrink"])},88215:(e,r,t)=>{t.d(r,{x:()=>u});var n=t(7552),s=t(29527),i=t(89887),o=t(99305),a=t(28325),c=t(69500);function l(e){return e.substring(2).toLowerCase()}function u(e){const{children:r,disableReactTree:t=!1,mouseEvent:u="onClick",onClickAway:d,touchEvent:p="onTouchEnd"}=e,m=n.useRef(!1),v=n.useRef(null),f=n.useRef(!1),h=n.useRef(!1);n.useEffect((()=>(setTimeout((()=>{f.current=!0}),0),()=>{f.current=!1})),[]);const g=(0,s.A)((0,a.A)(r),v),b=(0,i.A)((e=>{const r=h.current;h.current=!1;const n=(0,o.A)(v.current);if(!f.current||!v.current||"clientX"in e&&function(e,r){return r.documentElement.clientWidtht=>{h.current=!0;const n=r.props[e];n&&n(t)},A={ref:g};return!1!==p&&(A[p]=y(p)),n.useEffect((()=>{if(!1!==p){const e=l(p),r=(0,o.A)(v.current),t=()=>{m.current=!0};return r.addEventListener(e,b),r.addEventListener("touchmove",t),()=>{r.removeEventListener(e,b),r.removeEventListener("touchmove",t)}}}),[b,p]),!1!==u&&(A[u]=y(u)),n.useEffect((()=>{if(!1!==u){const e=l(u),r=(0,o.A)(v.current);return r.addEventListener(e,b),()=>{r.removeEventListener(e,b)}}}),[b,u]),(0,c.jsx)(n.Fragment,{children:n.cloneElement(r,A)})}},17515:(e,r,t)=>{t.d(r,{A:()=>p});var n=t(7552),s=t(93878),i=t(70799),o=t(51148),a=t(60129),c=t(4785),l=t(89663),u=t(69500);const d=(0,o.Ay)("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,r)=>{const{ownerState:t}=e;return[r.root,!t.disableGutters&&r.gutters,r[t.variant]]}})((0,a.A)((({theme:e})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:e.mixins.toolbar}]})))),p=n.forwardRef((function(e,r){const t=(0,c.b)({props:e,name:"MuiToolbar"}),{className:n,component:o="div",disableGutters:a=!1,variant:p="regular",...m}=t,v={...t,component:o,disableGutters:a,variant:p},f=(e=>{const{classes:r,disableGutters:t,variant:n}=e,s={root:["root",!t&&"gutters",n]};return(0,i.A)(s,l.U,r)})(v);return(0,u.jsx)(d,{as:o,className:(0,s.A)(f.root,n),ref:r,ownerState:v,...m})}))},89663:(e,r,t)=>{t.d(r,{A:()=>o,U:()=>i});var n=t(33761),s=t(85693);function i(e){return(0,s.Ay)("MuiToolbar",e)}const o=(0,n.A)("MuiToolbar",["root","gutters","regular","dense"])}}]); -//# sourceMappingURL=2627.300bea43.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2627.300bea43.chunk.js.map --- a/x/static/js/2627.300bea43.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2627.300bea43.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/CircularProgress/CircularProgress.js","../../../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../../../node_modules/@mui/material/ClickAwayListener/ClickAwayListener.js","../../../node_modules/@mui/material/Toolbar/Toolbar.js","../../../node_modules/@mui/material/Toolbar/toolbarClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { keyframes, css, styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { getCircularProgressUtilityClass } from \"./circularProgressClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SIZE = 44;\nconst circularRotateKeyframe = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`;\nconst circularDashKeyframe = keyframes`\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n`;\n\n// This implementation is for supporting both Styled-components v4+ and Pigment CSS.\n// A global animation has to be created here for Styled-components v4+ (https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#12).\n// which can be done by checking typeof indeterminate1Keyframe !== 'string' (at runtime, Pigment CSS transform keyframes`` to a string).\nconst rotateAnimation = typeof circularRotateKeyframe !== 'string' ? css`\n animation: ${circularRotateKeyframe} 1.4s linear infinite;\n ` : null;\nconst dashAnimation = typeof circularDashKeyframe !== 'string' ? css`\n animation: ${circularDashKeyframe} 1.4s ease-in-out infinite;\n ` : null;\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color,\n disableShrink\n } = ownerState;\n const slots = {\n root: ['root', variant, `color${capitalize(color)}`],\n svg: ['svg'],\n circle: ['circle', `circle${capitalize(variant)}`, disableShrink && 'circleDisableShrink']\n };\n return composeClasses(slots, getCircularProgressUtilityClass, classes);\n};\nconst CircularProgressRoot = styled('span', {\n name: 'MuiCircularProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'inline-block',\n variants: [{\n props: {\n variant: 'determinate'\n },\n style: {\n transition: theme.transitions.create('transform')\n }\n }, {\n props: {\n variant: 'indeterminate'\n },\n style: rotateAnimation || {\n animation: `${circularRotateKeyframe} 1.4s linear infinite`\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n color: (theme.vars || theme).palette[color].main\n }\n }))]\n})));\nconst CircularProgressSVG = styled('svg', {\n name: 'MuiCircularProgress',\n slot: 'Svg',\n overridesResolver: (props, styles) => styles.svg\n})({\n display: 'block' // Keeps the progress centered\n});\nconst CircularProgressCircle = styled('circle', {\n name: 'MuiCircularProgress',\n slot: 'Circle',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];\n }\n})(memoTheme(({\n theme\n}) => ({\n stroke: 'currentColor',\n variants: [{\n props: {\n variant: 'determinate'\n },\n style: {\n transition: theme.transitions.create('stroke-dashoffset')\n }\n }, {\n props: {\n variant: 'indeterminate'\n },\n style: {\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: '80px, 200px',\n strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.variant === 'indeterminate' && !ownerState.disableShrink,\n style: dashAnimation || {\n // At runtime for Pigment CSS, `bufferAnimation` will be null and the generated keyframe will be used.\n animation: `${circularDashKeyframe} 1.4s ease-in-out infinite`\n }\n }]\n})));\n\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\nconst CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCircularProgress'\n });\n const {\n className,\n color = 'primary',\n disableShrink = false,\n size = 40,\n style,\n thickness = 3.6,\n value = 0,\n variant = 'indeterminate',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n disableShrink,\n size,\n thickness,\n value,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n const circleStyle = {};\n const rootStyle = {};\n const rootProps = {};\n if (variant === 'determinate') {\n const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps['aria-valuenow'] = Math.round(value);\n circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;\n rootStyle.transform = 'rotate(-90deg)';\n }\n return /*#__PURE__*/_jsx(CircularProgressRoot, {\n className: clsx(classes.root, className),\n style: {\n width: size,\n height: size,\n ...rootStyle,\n ...style\n },\n ownerState: ownerState,\n ref: ref,\n role: \"progressbar\",\n ...rootProps,\n ...other,\n children: /*#__PURE__*/_jsx(CircularProgressSVG, {\n className: classes.svg,\n ownerState: ownerState,\n viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,\n children: /*#__PURE__*/_jsx(CircularProgressCircle, {\n className: classes.circle,\n style: circleStyle,\n ownerState: ownerState,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: \"none\",\n strokeWidth: thickness\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the shrink animation is disabled.\n * This only works if variant is `indeterminate`.\n * @default false\n */\n disableShrink: chainPropTypes(PropTypes.bool, props => {\n if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n return new Error('MUI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n }\n return null;\n }),\n /**\n * The size of the component.\n * If using a number, the pixel unit is assumed.\n * If using a string, you need to provide the CSS unit, for example '3rem'.\n * @default 40\n */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The thickness of the circle.\n * @default 3.6\n */\n thickness: PropTypes.number,\n /**\n * The value of the progress indicator for the determinate variant.\n * Value between 0 and 100.\n * @default 0\n */\n value: PropTypes.number,\n /**\n * The variant to use.\n * Use indeterminate when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['determinate', 'indeterminate'])\n} : void 0;\nexport default CircularProgress;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCircularProgressUtilityClass(slot) {\n return generateUtilityClass('MuiCircularProgress', slot);\n}\nconst circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);\nexport default circularProgressClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport getReactNodeRef from '@mui/utils/getReactNodeRef';\n\n// TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase : never` once generatePropTypes runs with TS 4.1\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click-Away Listener](https://mui.com/material-ui/react-click-away-listener/)\n * - [Menu](https://mui.com/material-ui/react-menu/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/material-ui/api/click-away-listener/)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = 'onClick',\n onClickAway,\n touchEvent = 'onTouchEnd'\n } = props;\n const movedRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n React.useEffect(() => {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = useForkRef(getReactNodeRef(children), nodeRef);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n const handleClickAway = useEventCallback(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current);\n\n // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n }\n\n // Do not act if user performed touchmove\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n let insideDOM;\n\n // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n if (event.composedPath) {\n insideDOM = event.composedPath().includes(nodeRef.current);\n } else {\n insideDOM = !doc.documentElement.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n });\n\n // Keep track of mouse/touch events that bubbled up through the portal.\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const childrenProps = {\n ref: handleRef\n };\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n React.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = ownerDocument(nodeRef.current);\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n return undefined;\n }, [handleClickAway, touchEvent]);\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n React.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n * @default false\n */\n disableReactTree: PropTypes.bool,\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n * @default 'onClick'\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n * @default 'onTouchEnd'\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport { ClickAwayListener };","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getToolbarUtilityClass } from \"./toolbarClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableGutters,\n variant\n } = ownerState;\n const slots = {\n root: ['root', !disableGutters && 'gutters', variant]\n };\n return composeClasses(slots, getToolbarUtilityClass, classes);\n};\nconst ToolbarRoot = styled('div', {\n name: 'MuiToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableGutters && styles.gutters, styles[ownerState.variant]];\n }\n})(memoTheme(({\n theme\n}) => ({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.disableGutters,\n style: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n }\n }, {\n props: {\n variant: 'dense'\n },\n style: {\n minHeight: 48\n }\n }, {\n props: {\n variant: 'regular'\n },\n style: theme.mixins.toolbar\n }]\n})));\nconst Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiToolbar'\n });\n const {\n className,\n component = 'div',\n disableGutters = false,\n variant = 'regular',\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n disableGutters,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ToolbarRoot, {\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Toolbar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`.\n * The Toolbar is a flex container, allowing flex item properties to be used to lay out the children.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, disables gutter padding.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'regular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['dense', 'regular']), PropTypes.string])\n} : void 0;\nexport default Toolbar;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiToolbar', slot);\n}\nconst toolbarClasses = generateUtilityClasses('MuiToolbar', ['root', 'gutters', 'regular', 'dense']);\nexport default toolbarClasses;"],"names":["circularRotateKeyframe","circularDashKeyframe","rotateAnimation","dashAnimation","CircularProgressRoot","name","slot","overridesResolver","props","styles","ownerState","root","variant","color","theme","display","variants","style","transition","transitions","create","animation","Object","entries","palette","filter","map","vars","main","CircularProgressSVG","svg","CircularProgressCircle","circle","disableShrink","circleDisableShrink","stroke","strokeDasharray","strokeDashoffset","inProps","ref","className","size","thickness","value","other","classes","slots","useUtilityClasses","circleStyle","rootStyle","rootProps","circumference","Math","PI","toFixed","round","transform","width","height","role","children","viewBox","cx","cy","r","fill","strokeWidth","getCircularProgressUtilityClass","mapEventPropToEvent","eventProp","substring","toLowerCase","ClickAwayListener","disableReactTree","mouseEvent","onClickAway","touchEvent","movedRef","nodeRef","activatedRef","syntheticEventRef","setTimeout","current","handleRef","handleClickAway","event","insideReactTree","doc","documentElement","clientWidth","clientX","clientHeight","clientY","clickedRootScrollbar","insideDOM","composedPath","includes","contains","target","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","mappedTouchEvent","handleTouchMove","addEventListener","removeEventListener","mappedMouseEvent","ToolbarRoot","disableGutters","gutters","position","alignItems","paddingLeft","spacing","paddingRight","breakpoints","up","minHeight","mixins","toolbar","component","as","getToolbarUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2645.4b79a04c.chunk.js --- a/x/static/js/2645.4b79a04c.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2645],{52645:(e,t,r)=>{function s(e){return e.replaceAll(/%([0-9A-Fa-f]{2})/g,((e,t)=>String.fromCharCode(parseInt(t,16))))}function i(e){if(!e.length||"."===e)return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach((e=>{var r;const i=e.split("=",2);if(!(null===(r=i[1])||void 0===r?void 0:r.length))return;i[0]=i[0].trim();let n=t[i[0].trim()];n||(n=[],t[i[0]]=n),n.push(...i[1].split(",").map((e=>e.trim())).map(s))})),t}r.d(t,{g:()=>l});class n{constructor(e){this.seqCallback=e,this.currentSequence=void 0}addLine(e){const t=/^>\s*(\S+)\s*(.*)/.exec(e);t?(this._flush(),this.currentSequence={id:t[1],sequence:""},t[2]&&(this.currentSequence.description=t[2].trim())):this.currentSequence&&/\S/.test(e)&&(this.currentSequence.sequence+=e.replaceAll(/\s/g,""))}_flush(){this.currentSequence&&this.seqCallback(this.currentSequence)}finish(){this._flush()}}class o{constructor(e){this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};const t=()=>{};this.featureCallback=e.featureCallback||t,this.endCallback=e.endCallback||t,this.commentCallback=e.commentCallback||t,this.errorCallback=e.errorCallback||t,this.directiveCallback=e.directiveCallback||t,this.sequenceCallback=e.sequenceCallback||t,this.disableDerivesFromReferences=e.disableDerivesFromReferences||!1,this.bufferSize=void 0===e.bufferSize?1e3:e.bufferSize}addLine(e){if(this.fastaParser)return void this.fastaParser.addLine(e);if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(e))return void this._bufferLine(e);const t=/^\s*(#+)(.*)/.exec(e);if(t){const[,r]=t;let[,,s]=t;if(3===r.length)this._emitAllUnderConstructionFeatures();else if(2===r.length){const t=function(e){var t,r;const s=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!s)return null;const[,i]=s;let[,,n]=s;const o={directive:i};if(n.length&&(n=n.replace(/\r?\n$/,""),o.value=n),"sequence-region"===i){const e=n.split(/\s+/,3);return{...o,seq_id:e[0],start:null===(t=e[1])||void 0===t?void 0:t.replaceAll(/\D/g,""),end:null===(r=e[2])||void 0===r?void 0:r.replaceAll(/\D/g,"")}}if("genome-build"===i){const[e,t]=n.split(/\s+/,2);return{...o,source:e,buildName:t}}return o}(e);t&&("FASTA"===t.directive?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new n(this.sequenceCallback)):this._emitItem(t))}else s=s.replace(/\s*/,""),this._emitItem({comment:s})}else if(/^\s*$/.test(e));else{if(!/^\s*>/.test(e)){const t=e.replaceAll(/\r?\n?$/g,"");throw new Error(`GFF3 parse error. Cannot parse '${t}'.`)}this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new n(this.sequenceCallback),this.fastaParser.addLine(e)}}finish(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}_emitItem(e){Array.isArray(e)?this.featureCallback(e):"directive"in e?this.directiveCallback(e):"comment"in e&&this.commentCallback(e)}_enforceBufferSizeLimit(e=0){const t=e=>{var r,s;e&&Array.isArray(e)&&(null===(s=null===(r=e[0].attributes)||void 0===r?void 0:r.ID)||void 0===s?void 0:s[0])&&(e[0].attributes.ID.forEach((e=>{delete this._underConstructionById[e],delete this._completedReferences[e]})),e.forEach((e=>{e.child_features&&e.child_features.forEach((e=>t(e))),e.derived_features&&e.derived_features.forEach((e=>t(e)))})))};for(;this._underConstructionTopLevel.length+e>this.bufferSize;){const e=this._underConstructionTopLevel.shift();e&&(this._emitItem(e),t(e))}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(this._underConstructionOrphans).join(",")}`)}_bufferLine(e){var t,r,n;const o=function(e){const t=e.split("\t").map((e=>"."===e||""===e?null:e));return{seq_id:t[0]&&s(t[0]),source:t[1]&&s(t[1]),type:t[2]&&s(t[2]),start:null===t[3]?null:parseInt(t[3],10),end:null===t[4]?null:parseInt(t[4],10),score:null===t[5]?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:null===t[8]?null:i(t[8])}}(e),l={...o,child_features:[],derived_features:[]},a=(null===(t=l.attributes)||void 0===t?void 0:t.ID)||[],c=(null===(r=l.attributes)||void 0===r?void 0:r.Parent)||[],u=this.disableDerivesFromReferences?[]:(null===(n=l.attributes)||void 0===n?void 0:n.Derives_from)||[];if(!a.length&&!c.length&&!u.length)return void this._emitItem([l]);let h;a.forEach((e=>{const t=this._underConstructionById[e];t?(t[t.length-1].type!==l.type&&this._parseError(`multi-line feature "${e}" has inconsistent types: "${l.type}", "${t[t.length-1].type}"`),t.push(l),h=t):(h=[l],this._enforceBufferSizeLimit(1),c.length||u.length||this._underConstructionTopLevel.push(h),this._underConstructionById[e]=h,this._resolveReferencesTo(h,e))})),this._resolveReferencesFrom(h||[l],{Parent:c,Derives_from:u},a)}_resolveReferencesTo(e,t){const r=this._underConstructionOrphans[t];r&&(e.forEach((e=>{e.child_features.push(...r.Parent)})),e.forEach((e=>{e.derived_features.push(...r.Derives_from)})),delete this._underConstructionOrphans[t])}_parseError(e){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${e}`)}_resolveReferencesFrom(e,t,r){function s(e,t,r){let s=e[t];s||(s={},e[t]=s);const i=s[r]||!1;return s[r]=!0,i}t.Parent.forEach((t=>{const i=this._underConstructionById[t];if(i){const n="child_features";r.filter((e=>s(this._completedReferences,e,`Parent,${t}`))).length||i.forEach((t=>{t[n].push(e)}))}else{let r=this._underConstructionOrphans[t];r||(r={Parent:[],Derives_from:[]},this._underConstructionOrphans[t]=r),r.Parent.push(e)}})),t.Derives_from.forEach((t=>{const i=this._underConstructionById[t];if(i){const n="derived_features";r.filter((e=>s(this._completedReferences,e,`Derives_from,${t}`))).length||i.forEach((t=>{t[n].push(e)}))}else{let r=this._underConstructionOrphans[t];r||(r={Parent:[],Derives_from:[]},this._underConstructionOrphans[t]=r),r.Derives_from.push(e)}}))}}function l(e){const t=[],r=new o({featureCallback:e=>t.push(e),disableDerivesFromReferences:!0,errorCallback:e=>{throw e}});for(const t of e.split(/\r?\n/))r.addLine(t);return r.finish(),t}}}]); -//# sourceMappingURL=2645.4b79a04c.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2645.4b79a04c.chunk.js.map --- a/x/static/js/2645.4b79a04c.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2645.4b79a04c.chunk.js","mappings":"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","sources":["../../../node_modules/gff-nostream/src/util.ts","../../../node_modules/gff-nostream/src/parse.ts","../../../node_modules/gff-nostream/src/api.ts"],"sourcesContent":["// Fast, low-level functions for parsing and formatting GFF3.\n// JavaScript port of Robert Buels's Bio::GFF3::LowLevel Perl module.\n\n/**\n * Unescape a string value used in a GFF3 attribute.\n *\n * @param stringVal - Escaped GFF3 string value\n * @returns An unescaped string value\n */\nexport function unescape(stringVal: string): string {\n return stringVal.replaceAll(/%([0-9A-Fa-f]{2})/g, (_match, seq) =>\n String.fromCharCode(parseInt(seq, 16)),\n )\n}\n\nfunction _escape(regex: RegExp, s: string | number) {\n return String(s).replace(regex, ch => {\n const hex = ch.charCodeAt(0).toString(16).toUpperCase().padStart(2, '0')\n return `%${hex}`\n })\n}\n\n/**\n * Escape a value for use in a GFF3 attribute value.\n *\n * @param rawVal - Raw GFF3 attribute value\n * @returns An escaped string value\n */\nexport function escape(rawVal: string | number): string {\n return _escape(/[\\n;\\r\\t=%&,\\u0000-\\u001f\\u007f-\\u00ff]/g, rawVal)\n}\n\n/**\n * Escape a value for use in a GFF3 column value.\n *\n * @param rawVal - Raw GFF3 column value\n * @returns An escaped column value\n */\nexport function escapeColumn(rawVal: string | number): string {\n return _escape(/[\\n\\r\\t%\\u0000-\\u001f\\u007f-\\u00ff]/g, rawVal)\n}\n\n/**\n * Parse the 9th column (attributes) of a GFF3 feature line.\n *\n * @param attrString - String of GFF3 9th column\n * @returns Parsed attributes\n */\nexport function parseAttributes(attrString: string): GFF3Attributes {\n if (!attrString.length || attrString === '.') {\n return {}\n }\n\n const attrs: GFF3Attributes = {}\n\n attrString\n .replace(/\\r?\\n$/, '')\n .split(';')\n .forEach(a => {\n const nv = a.split('=', 2)\n if (!nv[1]?.length) {\n return\n }\n\n nv[0] = nv[0].trim()\n let arec = attrs[nv[0].trim()]\n if (!arec) {\n arec = []\n attrs[nv[0]] = arec\n }\n\n arec.push(\n ...nv[1]\n .split(',')\n .map(s => s.trim())\n .map(unescape),\n )\n })\n return attrs\n}\n\n/**\n * Parse a GFF3 feature line\n *\n * @param line - GFF3 feature line\n * @returns The parsed feature\n */\nexport function parseFeature(line: string): GFF3FeatureLine {\n // split the line into columns and replace '.' with null in each column\n const f = line.split('\\t').map(a => (a === '.' || a === '' ? null : a))\n\n // unescape only the ref, source, and type columns\n const parsed: GFF3FeatureLine = {\n seq_id: f[0] && unescape(f[0]),\n source: f[1] && unescape(f[1]),\n type: f[2] && unescape(f[2]),\n start: f[3] === null ? null : parseInt(f[3], 10),\n end: f[4] === null ? null : parseInt(f[4], 10),\n score: f[5] === null ? null : parseFloat(f[5]),\n strand: f[6],\n phase: f[7],\n attributes: f[8] === null ? null : parseAttributes(f[8]),\n }\n return parsed\n}\n\n/**\n * Parse a GFF3 directive line.\n *\n * @param line - GFF3 directive line\n * @returns The parsed directive\n */\nexport function parseDirective(\n line: string,\n):\n | GFF3Directive\n | GFF3SequenceRegionDirective\n | GFF3GenomeBuildDirective\n | null {\n const match = /^\\s*##\\s*(\\S+)\\s*(.*)/.exec(line)\n if (!match) {\n return null\n }\n\n const [, name] = match\n let [, , contents] = match\n\n const parsed: GFF3Directive = { directive: name }\n if (contents.length) {\n contents = contents.replace(/\\r?\\n$/, '')\n parsed.value = contents\n }\n\n // do a little additional parsing for sequence-region and genome-build directives\n if (name === 'sequence-region') {\n const c = contents.split(/\\s+/, 3)\n return {\n ...parsed,\n seq_id: c[0],\n start: c[1]?.replaceAll(/\\D/g, ''),\n end: c[2]?.replaceAll(/\\D/g, ''),\n } as GFF3SequenceRegionDirective\n } else if (name === 'genome-build') {\n const [source, buildName] = contents.split(/\\s+/, 2)\n return {\n ...parsed,\n source,\n buildName,\n } as GFF3GenomeBuildDirective\n }\n\n return parsed\n}\n\n/**\n * Format an attributes object into a string suitable for the 9th column of GFF3.\n *\n * @param attrs - Attributes\n * @returns GFF3 9th column string\n */\nexport function formatAttributes(attrs: GFF3Attributes): string {\n const attrOrder: string[] = []\n Object.entries(attrs).forEach(([tag, val]) => {\n if (!val) {\n return\n }\n let valstring\n if (val.hasOwnProperty('toString')) {\n valstring = escape(val.toString())\n // } else if (Array.isArray(val.values)) {\n // valstring = val.values.map(escape).join(',')\n } else if (Array.isArray(val)) {\n valstring = val.map(escape).join(',')\n } else {\n valstring = escape(val)\n }\n attrOrder.push(`${escape(tag)}=${valstring}`)\n })\n return attrOrder.length ? attrOrder.join(';') : '.'\n}\n\nfunction _formatSingleFeature(\n f: GFF3FeatureLine | GFF3FeatureLineWithRefs,\n seenFeature: Record,\n) {\n const attrString =\n f.attributes === null || f.attributes === undefined\n ? '.'\n : formatAttributes(f.attributes)\n\n const fields = [\n f.seq_id === null ? '.' : escapeColumn(f.seq_id),\n f.source === null ? '.' : escapeColumn(f.source),\n f.type === null ? '.' : escapeColumn(f.type),\n f.start === null ? '.' : escapeColumn(f.start),\n f.end === null ? '.' : escapeColumn(f.end),\n f.score === null ? '.' : escapeColumn(f.score),\n f.strand === null ? '.' : escapeColumn(f.strand),\n f.phase === null ? '.' : escapeColumn(f.phase),\n attrString,\n ]\n\n const formattedString = `${fields.join('\\t')}\\n`\n\n // if we have already output this exact feature, skip it\n if (seenFeature[formattedString]) {\n return ''\n }\n\n seenFeature[formattedString] = true\n return formattedString\n}\n\nfunction _formatFeature(\n feature:\n | GFF3FeatureLine\n | GFF3FeatureLineWithRefs\n | (GFF3FeatureLine | GFF3FeatureLineWithRefs)[],\n seenFeature: Record,\n): string {\n if (Array.isArray(feature)) {\n return feature.map(f => _formatFeature(f, seenFeature)).join('')\n }\n\n const strings = [_formatSingleFeature(feature, seenFeature)]\n if (_isFeatureLineWithRefs(feature)) {\n strings.push(\n ...feature.child_features.map(f => _formatFeature(f, seenFeature)),\n ...feature.derived_features.map(f => _formatFeature(f, seenFeature)),\n )\n }\n return strings.join('')\n}\n\n/**\n * Format a feature object or array of feature objects into one or more lines of\n * GFF3.\n *\n * @param featureOrFeatures - A feature object or array of feature objects\n * @returns A string of one or more GFF3 lines\n */\nexport function formatFeature(\n featureOrFeatures:\n | GFF3FeatureLine\n | GFF3FeatureLineWithRefs\n | (GFF3FeatureLine | GFF3FeatureLineWithRefs)[],\n): string {\n const seen = {}\n return _formatFeature(featureOrFeatures, seen)\n}\n\n/**\n * Format a directive into a line of GFF3.\n *\n * @param directive - A directive object\n * @returns A directive line string\n */\nexport function formatDirective(directive: GFF3Directive): string {\n let str = `##${directive.directive}`\n if (directive.value) {\n str += ` ${directive.value}`\n }\n str += '\\n'\n return str\n}\n\n/**\n * Format a comment into a GFF3 comment.\n * Yes I know this is just adding a # and a newline.\n *\n * @param comment - A comment object\n * @returns A comment line string\n */\nexport function formatComment(comment: GFF3Comment): string {\n return `# ${comment.comment}\\n`\n}\n\n/**\n * Format a sequence object as FASTA\n *\n * @param seq - A sequence object\n * @returns Formatted single FASTA sequence string\n */\nexport function formatSequence(seq: GFF3Sequence): string {\n return `>${seq.id}${seq.description ? ` ${seq.description}` : ''}\\n${\n seq.sequence\n }\\n`\n}\n\n/**\n * Format a directive, comment, sequence, or feature, or array of such items,\n * into one or more lines of GFF3.\n *\n * @param itemOrItems - A comment, sequence, or feature, or array of such items\n * @returns A formatted string or array of strings\n */\nexport function formatItem(\n itemOrItems:\n | GFF3FeatureLineWithRefs\n | GFF3Directive\n | GFF3Comment\n | GFF3Sequence\n | (GFF3FeatureLineWithRefs | GFF3Directive | GFF3Comment | GFF3Sequence)[],\n): string | string[] {\n function formatSingleItem(\n item: GFF3FeatureLineWithRefs | GFF3Directive | GFF3Comment | GFF3Sequence,\n ) {\n if ('attributes' in item) {\n return formatFeature(item)\n }\n if ('directive' in item) {\n return formatDirective(item)\n }\n if ('sequence' in item) {\n return formatSequence(item)\n }\n if ('comment' in item) {\n return formatComment(item)\n }\n return '# (invalid item found during format)\\n'\n }\n\n if (Array.isArray(itemOrItems)) {\n return itemOrItems.map(formatSingleItem)\n }\n return formatSingleItem(itemOrItems)\n}\n\n/** A record of GFF3 attribute identifiers and the values of those identifiers */\nexport type GFF3Attributes = Record\n\n/** A representation of a single line of a GFF3 file */\nexport interface GFF3FeatureLine {\n /** The ID of the landmark used to establish the coordinate system for the current feature */\n seq_id: string | null\n /** A free text qualifier intended to describe the algorithm or operating procedure that generated this feature */\n source: string | null\n /** The type of the feature */\n type: string | null\n /** The start coordinates of the feature */\n start: number | null\n /** The end coordinates of the feature */\n end: number | null\n /** The score of the feature */\n score: number | null\n /** The strand of the feature */\n strand: string | null\n /** For features of type \"CDS\", the phase indicates where the next codon begins relative to the 5' end of the current CDS feature */\n phase: string | null\n /** Feature attributes */\n attributes: GFF3Attributes | null\n}\n\n/**\n * A GFF3 Feature line that includes references to other features defined in\n * their \"Parent\" or \"Derives_from\" attributes\n */\nexport interface GFF3FeatureLineWithRefs extends GFF3FeatureLine {\n /** An array of child features */\n child_features: GFF3Feature[]\n /** An array of features derived from this feature */\n derived_features: GFF3Feature[]\n}\n\nfunction _isFeatureLineWithRefs(\n featureLine: GFF3FeatureLine | GFF3FeatureLineWithRefs,\n): featureLine is GFF3FeatureLineWithRefs {\n return (\n (featureLine as GFF3FeatureLineWithRefs).child_features !== undefined &&\n (featureLine as GFF3FeatureLineWithRefs).derived_features !== undefined\n )\n}\n\n/**\n * A GFF3 feature, which may include multiple individual feature lines\n */\nexport type GFF3Feature = GFF3FeatureLineWithRefs[]\n\n/** A GFF3 directive */\nexport interface GFF3Directive {\n /** The name of the directive */\n directive: string\n /** The string value of the directive */\n value?: string\n}\n\n/** A GFF3 sequence-region directive */\nexport interface GFF3SequenceRegionDirective extends GFF3Directive {\n /** The string value of the directive */\n value: string\n /** The sequence ID parsed from the directive */\n seq_id: string\n /** The sequence start parsed from the directive */\n start: string\n /** The sequence end parsed from the directive */\n end: string\n}\n\n/** A GFF3 genome-build directive */\nexport interface GFF3GenomeBuildDirective extends GFF3Directive {\n /** The string value of the directive */\n value: string\n /** The genome build source parsed from the directive */\n source: string\n /** The genome build name parsed from the directive */\n buildName: string\n}\n\n/** A GFF3 comment */\nexport interface GFF3Comment {\n /** The text of the comment */\n comment: string\n}\n\n/** A GFF3 FASTA single sequence */\nexport interface GFF3Sequence {\n /** The ID of the sequence */\n id: string\n /** The description of the sequence */\n description?: string\n /** The sequence */\n sequence: string\n}\n\nexport type GFF3Item = GFF3Feature | GFF3Directive | GFF3Comment | GFF3Sequence\n","import * as GFF3 from './util'\n\nconst containerAttributes = {\n Parent: 'child_features' as const,\n Derives_from: 'derived_features' as const,\n}\n\nexport class FASTAParser {\n seqCallback: (sequence: GFF3.GFF3Sequence) => void\n currentSequence:\n | { id: string; sequence: string; description?: string }\n | undefined\n\n constructor(seqCallback: (sequence: GFF3.GFF3Sequence) => void) {\n this.seqCallback = seqCallback\n this.currentSequence = undefined\n }\n\n addLine(line: string): void {\n const defMatch = /^>\\s*(\\S+)\\s*(.*)/.exec(line)\n if (defMatch) {\n this._flush()\n this.currentSequence = { id: defMatch[1], sequence: '' }\n if (defMatch[2]) {\n this.currentSequence.description = defMatch[2].trim()\n }\n } else if (this.currentSequence && /\\S/.test(line)) {\n this.currentSequence.sequence += line.replaceAll(/\\s/g, '')\n }\n }\n\n private _flush() {\n if (this.currentSequence) {\n this.seqCallback(this.currentSequence)\n }\n }\n\n finish(): void {\n this._flush()\n }\n}\n\ninterface ParserArgs {\n featureCallback?(feature: GFF3.GFF3Feature): void\n endCallback?(): void\n commentCallback?(comment: GFF3.GFF3Comment): void\n errorCallback?(error: string): void\n directiveCallback?(directive: GFF3.GFF3Directive): void\n sequenceCallback?(sequence: GFF3.GFF3Sequence): void\n bufferSize?: number\n disableDerivesFromReferences?: boolean\n}\n\ninterface References {\n Parent: GFF3.GFF3Feature[]\n Derives_from: GFF3.GFF3Feature[]\n}\n\nexport default class Parser {\n featureCallback: (feature: GFF3.GFF3Feature) => void\n endCallback: () => void\n commentCallback: (comment: GFF3.GFF3Comment) => void\n errorCallback: (error: string) => void\n disableDerivesFromReferences: boolean\n directiveCallback: (directive: GFF3.GFF3Directive) => void\n sequenceCallback: (sequence: GFF3.GFF3Sequence) => void\n bufferSize: number\n fastaParser: FASTAParser | undefined = undefined\n // if this is true, the parser ignores the\n // rest of the lines in the file. currently\n // set when the file switches over to FASTA\n eof = false\n lineNumber = 0\n // features that we have to keep on hand for now because they\n // might be referenced by something else\n private _underConstructionTopLevel: GFF3.GFF3Feature[] = []\n // index of the above by ID\n private _underConstructionById: Record =\n {}\n private _completedReferences: Record<\n string,\n Record | undefined\n > = {}\n // features that reference something we have not seen yet\n // structured as:\n // { 'some_id' : {\n // 'Parent' : [ orphans that have a Parent attr referencing it ],\n // 'Derives_from' : [ orphans that have a Derives_from attr referencing it ],\n // }\n // }\n private _underConstructionOrphans: Record = {}\n\n constructor(args: ParserArgs) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const nullFunc = () => {}\n\n this.featureCallback = args.featureCallback || nullFunc\n this.endCallback = args.endCallback || nullFunc\n this.commentCallback = args.commentCallback || nullFunc\n this.errorCallback = args.errorCallback || nullFunc\n this.directiveCallback = args.directiveCallback || nullFunc\n this.sequenceCallback = args.sequenceCallback || nullFunc\n this.disableDerivesFromReferences =\n args.disableDerivesFromReferences || false\n\n // number of lines to buffer\n this.bufferSize = args.bufferSize === undefined ? 1000 : args.bufferSize\n }\n\n addLine(line: string): void {\n // if we have transitioned to a fasta section, just delegate to that parser\n if (this.fastaParser) {\n this.fastaParser.addLine(line)\n return\n }\n if (this.eof) {\n // otherwise, if we are done, ignore this line\n return\n }\n\n this.lineNumber += 1\n\n if (/^\\s*[^#\\s>]/.test(line)) {\n // feature line, most common case\n this._bufferLine(line)\n return\n }\n\n const match = /^\\s*(#+)(.*)/.exec(line)\n if (match) {\n // directive or comment\n const [, hashsigns] = match\n let [, , contents] = match\n\n if (hashsigns.length === 3) {\n // sync directive, all forward-references are resolved.\n this._emitAllUnderConstructionFeatures()\n } else if (hashsigns.length === 2) {\n const directive = GFF3.parseDirective(line)\n if (directive) {\n if (directive.directive === 'FASTA') {\n this._emitAllUnderConstructionFeatures()\n this.eof = true\n this.fastaParser = new FASTAParser(this.sequenceCallback)\n } else {\n this._emitItem(directive)\n }\n }\n } else {\n contents = contents.replace(/\\s*/, '')\n this._emitItem({ comment: contents })\n }\n } else if (/^\\s*$/.test(line)) {\n // blank line, do nothing\n } else if (/^\\s*>/.test(line)) {\n // implicit beginning of a FASTA section\n this._emitAllUnderConstructionFeatures()\n this.eof = true\n this.fastaParser = new FASTAParser(this.sequenceCallback)\n this.fastaParser.addLine(line)\n } else {\n // it's a parse error\n const errLine = line.replaceAll(/\\r?\\n?$/g, '')\n throw new Error(`GFF3 parse error. Cannot parse '${errLine}'.`)\n }\n }\n\n finish(): void {\n this._emitAllUnderConstructionFeatures()\n if (this.fastaParser) {\n this.fastaParser.finish()\n }\n this.endCallback()\n }\n\n private _emitItem(\n i: GFF3.GFF3Feature | GFF3.GFF3Directive | GFF3.GFF3Comment,\n ) {\n if (Array.isArray(i)) {\n this.featureCallback(i)\n } else if ('directive' in i) {\n this.directiveCallback(i)\n } else if ('comment' in i) {\n this.commentCallback(i)\n }\n }\n\n private _enforceBufferSizeLimit(additionalItemCount = 0) {\n const _unbufferItem = (item?: GFF3.GFF3Feature) => {\n if (item && Array.isArray(item) && item[0].attributes?.ID?.[0]) {\n const ids = item[0].attributes.ID\n ids.forEach(id => {\n delete this._underConstructionById[id]\n delete this._completedReferences[id]\n })\n item.forEach(i => {\n if (i.child_features) {\n i.child_features.forEach(c => _unbufferItem(c))\n }\n if (i.derived_features) {\n i.derived_features.forEach(d => _unbufferItem(d))\n }\n })\n }\n }\n\n while (\n this._underConstructionTopLevel.length + additionalItemCount >\n this.bufferSize\n ) {\n const item = this._underConstructionTopLevel.shift()\n if (item) {\n this._emitItem(item)\n _unbufferItem(item)\n }\n }\n }\n\n /**\n * return all under-construction features, called when we know\n * there will be no additional data to attach to them\n */\n private _emitAllUnderConstructionFeatures() {\n this._underConstructionTopLevel.forEach(this._emitItem.bind(this))\n\n this._underConstructionTopLevel = []\n this._underConstructionById = {}\n this._completedReferences = {}\n\n // if we have any orphans hanging around still, this is a\n // problem. die with a parse error\n if (Array.from(Object.values(this._underConstructionOrphans)).length) {\n throw new Error(\n `some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(\n this._underConstructionOrphans,\n ).join(',')}`,\n )\n }\n }\n\n // do the right thing with a newly-parsed feature line\n private _bufferLine(line: string) {\n const rawFeatureLine = GFF3.parseFeature(line)\n const featureLine: GFF3.GFF3FeatureLineWithRefs = {\n ...rawFeatureLine,\n child_features: [],\n derived_features: [],\n }\n // featureLine._lineNumber = this.lineNumber //< debugging aid\n\n // NOTE: a feature is an arrayref of one or more feature lines.\n const ids = featureLine.attributes?.ID || []\n const parents = featureLine.attributes?.Parent || []\n const derives = this.disableDerivesFromReferences\n ? []\n : featureLine.attributes?.Derives_from || []\n\n if (!ids.length && !parents.length && !derives.length) {\n // if it has no IDs and does not refer to anything, we can just\n // output it\n this._emitItem([featureLine])\n return\n }\n\n let feature: GFF3.GFF3Feature | undefined = undefined\n ids.forEach(id => {\n const existing = this._underConstructionById[id]\n if (existing) {\n // another location of the same feature\n if (existing[existing.length - 1].type !== featureLine.type) {\n this._parseError(\n `multi-line feature \"${id}\" has inconsistent types: \"${\n featureLine.type\n }\", \"${existing[existing.length - 1].type}\"`,\n )\n }\n existing.push(featureLine)\n feature = existing\n } else {\n // haven't seen it yet, so buffer it so we can attach\n // child features to it\n feature = [featureLine]\n\n this._enforceBufferSizeLimit(1)\n if (!parents.length && !derives.length) {\n this._underConstructionTopLevel.push(feature)\n }\n this._underConstructionById[id] = feature\n\n // see if we have anything buffered that refers to it\n this._resolveReferencesTo(feature, id)\n }\n })\n\n // try to resolve all its references\n this._resolveReferencesFrom(\n feature || [featureLine],\n { Parent: parents, Derives_from: derives },\n ids,\n )\n }\n\n private _resolveReferencesTo(feature: GFF3.GFF3Feature, id: string) {\n const references = this._underConstructionOrphans[id]\n // references is of the form\n // {\n // 'Parent' : [ orphans that have a Parent attr referencing this feature ],\n // 'Derives_from' : [ orphans that have a Derives_from attr referencing this feature ],\n // }\n if (!references) {\n return\n }\n feature.forEach(loc => {\n loc.child_features.push(...references.Parent)\n })\n feature.forEach(loc => {\n loc.derived_features.push(...references.Derives_from)\n })\n delete this._underConstructionOrphans[id]\n }\n\n private _parseError(message: string) {\n this.eof = true\n this.errorCallback(`${this.lineNumber}: ${message}`)\n }\n\n private _resolveReferencesFrom(\n feature: GFF3.GFF3Feature,\n references: { Parent: string[]; Derives_from: string[] },\n ids: string[],\n ) {\n // this is all a bit more awkward in javascript than it was in perl\n function postSet(\n obj: Record | undefined>,\n slot1: string,\n slot2: string,\n ) {\n let subObj = obj[slot1]\n if (!subObj) {\n subObj = {}\n obj[slot1] = subObj\n }\n const returnVal = subObj[slot2] || false\n subObj[slot2] = true\n return returnVal\n }\n\n references.Parent.forEach(toId => {\n const otherFeature = this._underConstructionById[toId]\n if (otherFeature) {\n const pname = containerAttributes.Parent\n if (\n !ids.filter(id =>\n postSet(this._completedReferences, id, `Parent,${toId}`),\n ).length\n ) {\n otherFeature.forEach(location => {\n location[pname].push(feature)\n })\n }\n } else {\n let ref = this._underConstructionOrphans[toId]\n if (!ref) {\n ref = {\n Parent: [],\n Derives_from: [],\n }\n this._underConstructionOrphans[toId] = ref\n }\n ref.Parent.push(feature)\n }\n })\n\n references.Derives_from.forEach(toId => {\n const otherFeature = this._underConstructionById[toId]\n if (otherFeature) {\n const pname = containerAttributes.Derives_from\n if (\n !ids.filter(id =>\n postSet(this._completedReferences, id, `Derives_from,${toId}`),\n ).length\n ) {\n otherFeature.forEach(location => {\n location[pname].push(feature)\n })\n }\n } else {\n let ref = this._underConstructionOrphans[toId]\n if (!ref) {\n ref = {\n Parent: [],\n Derives_from: [],\n }\n this._underConstructionOrphans[toId] = ref\n }\n ref.Derives_from.push(feature)\n }\n })\n }\n}\n","import Parser from './parse'\nimport { GFF3Feature } from './util'\n\n/**\n * Synchronously parse a string containing GFF3 and return an array of the\n * parsed items.\n *\n * @param str - GFF3 string\n * @param inputOptions - Parsing options\n * @returns array of parsed features, directives, comments and/or sequences\n */\nexport function parseStringSync(str: string): GFF3Feature[] {\n const items: GFF3Feature[] = []\n const parser = new Parser({\n featureCallback: arg => items.push(arg),\n disableDerivesFromReferences: true,\n errorCallback: err => {\n throw err\n },\n })\n\n for (const line of str.split(/\\r?\\n/)) {\n parser.addLine(line)\n }\n parser.finish()\n\n return items\n}\n\nexport {\n type GFF3FeatureLine,\n type GFF3Comment,\n type GFF3FeatureLineWithRefs,\n type GFF3Directive,\n type GFF3Sequence,\n type GFF3Feature,\n type GFF3Item,\n} from './util'\n"],"names":["stringVal","replaceAll","_match","seq","String","fromCharCode","parseInt","parseAttributes","attrString","length","attrs","replace","split","forEach","a","nv","trim","arec","push","map","s","FASTAParser","constructor","seqCallback","this","currentSequence","undefined","addLine","line","defMatch","exec","_flush","id","sequence","description","test","finish","Parser","args","fastaParser","eof","lineNumber","_underConstructionTopLevel","_underConstructionById","_completedReferences","_underConstructionOrphans","nullFunc","featureCallback","endCallback","commentCallback","errorCallback","directiveCallback","sequenceCallback","disableDerivesFromReferences","bufferSize","_bufferLine","match","hashsigns","contents","_emitAllUnderConstructionFeatures","directive","name","parsed","value","c","seq_id","start","end","source","buildName","_emitItem","comment","errLine","Error","i","Array","isArray","_enforceBufferSizeLimit","additionalItemCount","_unbufferItem","item","attributes","ID","child_features","derived_features","d","shift","bind","from","Object","values","keys","join","rawFeatureLine","f","type","score","parseFloat","strand","phase","featureLine","ids","parents","Parent","derives","Derives_from","feature","existing","_parseError","_resolveReferencesTo","_resolveReferencesFrom","references","loc","message","postSet","obj","slot1","slot2","subObj","returnVal","toId","otherFeature","pname","filter","location","ref","parseStringSync","str","items","parser","arg","err"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/266.94eb2bf9.chunk.js --- a/x/static/js/266.94eb2bf9.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[266],{45331:(e,t,s)=>{s.d(t,{Ay:()=>S});var o=s(7552),n=s(93878),r=s(70799),i=s(23879),a=s(51148),d=s(60129),l=s(4785),c=s(3755),u=s(51584),p=s(57406),g=s(74823),m=s(2451),A=s(77999),b=s(69500);const v=(0,a.Ay)("div",{name:"MuiListItem",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:s}=e;return[t.root,s.dense&&t.dense,"flex-start"===s.alignItems&&t.alignItemsFlexStart,s.divider&&t.divider,!s.disableGutters&&t.gutters,!s.disablePadding&&t.padding,s.hasSecondaryAction&&t.secondaryAction]}})((0,d.A)((({theme:e})=>({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>!e.disablePadding&&e.dense,style:{paddingTop:4,paddingBottom:4}},{props:({ownerState:e})=>!e.disablePadding&&!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>!e.disablePadding&&!!e.secondaryAction,style:{paddingRight:48}},{props:({ownerState:e})=>!!e.secondaryAction,style:{[`& > .${m.A.root}`]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:e})=>e.button,style:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:({ownerState:e})=>e.hasSecondaryAction,style:{paddingRight:48}}]})))),y=(0,a.Ay)("li",{name:"MuiListItem",slot:"Container",overridesResolver:(e,t)=>t.container})({position:"relative"}),S=o.forwardRef((function(e,t){const s=(0,l.b)({props:e,name:"MuiListItem"}),{alignItems:a="center",children:d,className:m,component:S,components:h={},componentsProps:I={},ContainerComponent:w="li",ContainerProps:{className:x,...f}={},dense:C=!1,disableGutters:L=!1,disablePadding:G=!1,divider:P=!1,secondaryAction:R,slotProps:M={},slots:j={},...k}=s,N=o.useContext(p.A),_=o.useMemo((()=>({dense:C||N.dense||!1,alignItems:a,disableGutters:L})),[a,N.dense,C,L]),B=o.useRef(null),F=o.Children.toArray(d),T=F.length&&(0,c.A)(F[F.length-1],["ListItemSecondaryAction"]),D={...s,alignItems:a,dense:_.dense,disableGutters:L,disablePadding:G,divider:P,hasSecondaryAction:T},Y=(e=>{const{alignItems:t,classes:s,dense:o,disableGutters:n,disablePadding:i,divider:a,hasSecondaryAction:d}=e,l={root:["root",o&&"dense",!n&&"gutters",!i&&"padding",a&&"divider","flex-start"===t&&"alignItemsFlexStart",d&&"secondaryAction"],container:["container"]};return(0,r.A)(l,g._,s)})(D),$=(0,u.A)(B,t),z=j.root||h.Root||v,U=M.root||I.root||{},V={className:(0,n.A)(Y.root,U.className,m),...k};let q=S||"li";return T?(q=V.component||S?q:"div","li"===w&&("li"===q?q="div":"li"===V.component&&(V.component="div")),(0,b.jsx)(p.A.Provider,{value:_,children:(0,b.jsxs)(y,{as:w,className:(0,n.A)(Y.container,x),ref:$,ownerState:D,...f,children:[(0,b.jsx)(z,{...U,...!(0,i.A)(z)&&{as:q,ownerState:{...D,...U.ownerState}},...V,children:F}),F.pop()]})})):(0,b.jsx)(p.A.Provider,{value:_,children:(0,b.jsxs)(z,{...U,as:q,ref:$,...!(0,i.A)(z)&&{ownerState:{...D,...U.ownerState}},...V,children:[F,R&&(0,b.jsx)(A.A,{children:R})]})})}))},266:(e,t,s)=>{s.r(t),s.d(t,{default:()=>o.Ay,getListItemUtilityClass:()=>n._,listItemClasses:()=>n.A});var o=s(45331),n=s(74823)},74823:(e,t,s)=>{s.d(t,{A:()=>i,_:()=>r});var o=s(33761),n=s(85693);function r(e){return(0,n.Ay)("MuiListItem",e)}const i=(0,o.A)("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"])},2451:(e,t,s)=>{s.d(t,{A:()=>i,Y:()=>r});var o=s(33761),n=s(85693);function r(e){return(0,n.Ay)("MuiListItemButton",e)}const i=(0,o.A)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"])},77999:(e,t,s)=>{s.d(t,{A:()=>g});var o=s(7552),n=s(93878),r=s(70799),i=s(51148),a=s(4785),d=s(57406),l=s(87739),c=s(69500);const u=(0,i.Ay)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:s}=e;return[t.root,s.disableGutters&&t.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:({ownerState:e})=>e.disableGutters,style:{right:0}}]}),p=o.forwardRef((function(e,t){const s=(0,a.b)({props:e,name:"MuiListItemSecondaryAction"}),{className:i,...p}=s,g=o.useContext(d.A),m={...s,disableGutters:g.disableGutters},A=(e=>{const{disableGutters:t,classes:s}=e,o={root:["root",t&&"disableGutters"]};return(0,r.A)(o,l.g,s)})(m);return(0,c.jsx)(u,{className:(0,n.A)(A.root,i),ownerState:m,ref:t,...p})}));p.muiName="ListItemSecondaryAction";const g=p},87739:(e,t,s)=>{s.d(t,{A:()=>i,g:()=>r});var o=s(33761),n=s(85693);function r(e){return(0,n.Ay)("MuiListItemSecondaryAction",e)}const i=(0,o.A)("MuiListItemSecondaryAction",["root","disableGutters"])}}]); -//# sourceMappingURL=266.94eb2bf9.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/266.94eb2bf9.chunk.js.map --- a/x/static/js/266.94eb2bf9.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/266.94eb2bf9.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/ListItem/ListItem.js","../../../node_modules/@mui/material/ListItem/listItemClasses.js","../../../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../../../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../../../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport isHostComponent from \"../utils/isHostComponent.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport isMuiElement from \"../utils/isMuiElement.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport { getListItemUtilityClass } from \"./listItemClasses.js\";\nimport { listItemButtonClasses } from \"../ListItemButton/index.js\";\nimport ListItemSecondaryAction from \"../ListItemSecondaryAction/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters, !ownerState.disablePadding && styles.padding, ownerState.hasSecondaryAction && styles.secondaryAction];\n};\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes,\n dense,\n disableGutters,\n disablePadding,\n divider,\n hasSecondaryAction\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', !disableGutters && 'gutters', !disablePadding && 'padding', divider && 'divider', alignItems === 'flex-start' && 'alignItemsFlexStart', hasSecondaryAction && 'secondaryAction'],\n container: ['container']\n };\n return composeClasses(slots, getListItemUtilityClass, classes);\n};\nexport const ListItemRoot = styled('div', {\n name: 'MuiListItem',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n width: '100%',\n boxSizing: 'border-box',\n textAlign: 'left',\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.disablePadding,\n style: {\n paddingTop: 8,\n paddingBottom: 8\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disablePadding && ownerState.dense,\n style: {\n paddingTop: 4,\n paddingBottom: 4\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disablePadding && !ownerState.disableGutters,\n style: {\n paddingLeft: 16,\n paddingRight: 16\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disablePadding && !!ownerState.secondaryAction,\n style: {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n }\n }, {\n props: ({\n ownerState\n }) => !!ownerState.secondaryAction,\n style: {\n [`& > .${listItemButtonClasses.root}`]: {\n paddingRight: 48\n }\n }\n }, {\n props: {\n alignItems: 'flex-start'\n },\n style: {\n alignItems: 'flex-start'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.divider,\n style: {\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,\n backgroundClip: 'padding-box'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.button,\n style: {\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.hasSecondaryAction,\n style: {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n }\n }]\n})));\nconst ListItemContainer = styled('li', {\n name: 'MuiListItem',\n slot: 'Container',\n overridesResolver: (props, styles) => styles.container\n})({\n position: 'relative'\n});\n\n/**\n * Uses an additional container component if `ListItemSecondaryAction` is the last child.\n */\nconst ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItem'\n });\n const {\n alignItems = 'center',\n children: childrenProp,\n className,\n component: componentProp,\n components = {},\n componentsProps = {},\n ContainerComponent = 'li',\n ContainerProps: {\n className: ContainerClassName,\n ...ContainerProps\n } = {},\n dense = false,\n disableGutters = false,\n disablePadding = false,\n divider = false,\n secondaryAction,\n slotProps = {},\n slots = {},\n ...other\n } = props;\n const context = React.useContext(ListContext);\n const childContext = React.useMemo(() => ({\n dense: dense || context.dense || false,\n alignItems,\n disableGutters\n }), [alignItems, context.dense, dense, disableGutters]);\n const listItemRef = React.useRef(null);\n const children = React.Children.toArray(childrenProp);\n\n // v4 implementation, deprecated in v6, will be removed in v7\n const hasSecondaryAction = children.length && isMuiElement(children[children.length - 1], ['ListItemSecondaryAction']);\n const ownerState = {\n ...props,\n alignItems,\n dense: childContext.dense,\n disableGutters,\n disablePadding,\n divider,\n hasSecondaryAction\n };\n const classes = useUtilityClasses(ownerState);\n const handleRef = useForkRef(listItemRef, ref);\n const Root = slots.root || components.Root || ListItemRoot;\n const rootProps = slotProps.root || componentsProps.root || {};\n const componentProps = {\n className: clsx(classes.root, rootProps.className, className),\n ...other\n };\n let Component = componentProp || 'li';\n\n // v4 implementation, deprecated in v6, will be removed in v7\n if (hasSecondaryAction) {\n // Use div by default.\n Component = !componentProps.component && !componentProp ? 'div' : Component;\n\n // Avoid nesting of li > li.\n if (ContainerComponent === 'li') {\n if (Component === 'li') {\n Component = 'div';\n } else if (componentProps.component === 'li') {\n componentProps.component = 'div';\n }\n }\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsxs(ListItemContainer, {\n as: ContainerComponent,\n className: clsx(classes.container, ContainerClassName),\n ref: handleRef,\n ownerState: ownerState,\n ...ContainerProps,\n children: [/*#__PURE__*/_jsx(Root, {\n ...rootProps,\n ...(!isHostComponent(Root) && {\n as: Component,\n ownerState: {\n ...ownerState,\n ...rootProps.ownerState\n }\n }),\n ...componentProps,\n children: children\n }), children.pop()]\n })\n });\n }\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsxs(Root, {\n ...rootProps,\n as: Component,\n ref: handleRef,\n ...(!isHostComponent(Root) && {\n ownerState: {\n ...ownerState,\n ...rootProps.ownerState\n }\n }),\n ...componentProps,\n children: [children, secondaryAction && /*#__PURE__*/_jsx(ListItemSecondaryAction, {\n children: secondaryAction\n })]\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItem.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Defines the `align-items` style property.\n * @default 'center'\n */\n alignItems: PropTypes.oneOf(['center', 'flex-start']),\n /**\n * The content of the component if a `ListItemSecondaryAction` is used it must\n * be the last child.\n */\n children: chainPropTypes(PropTypes.node, props => {\n const children = React.Children.toArray(props.children);\n\n // React.Children.toArray(props.children).findLastIndex(isListItemSecondaryAction)\n let secondaryActionIndex = -1;\n for (let i = children.length - 1; i >= 0; i -= 1) {\n const child = children[i];\n if (isMuiElement(child, ['ListItemSecondaryAction'])) {\n secondaryActionIndex = i;\n break;\n }\n }\n\n // is ListItemSecondaryAction the last child of ListItem\n if (secondaryActionIndex !== -1 && secondaryActionIndex !== children.length - 1) {\n return new Error('MUI: You used an element after ListItemSecondaryAction. ' + 'For ListItem to detect that it has a secondary action ' + 'you must pass it as the last child to ListItem.');\n }\n return null;\n }),\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * @deprecated Use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n * @default {}\n */\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * The container component used when a `ListItemSecondaryAction` is the last child.\n * @default 'li'\n * @deprecated Use the `component` or `slots.root` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n ContainerComponent: elementTypeAcceptingRef,\n /**\n * Props applied to the container component if used.\n * @default {}\n * @deprecated Use the `slotProps.root` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n ContainerProps: PropTypes.object,\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent List component.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * If `true`, all padding is removed.\n * @default false\n */\n disablePadding: PropTypes.bool,\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n * @default false\n */\n divider: PropTypes.bool,\n /**\n * The element to display at the end of ListItem.\n */\n secondaryAction: PropTypes.node,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItem;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemUtilityClass(slot) {\n return generateUtilityClass('MuiListItem', slot);\n}\nconst listItemClasses = generateUtilityClasses('MuiListItem', ['root', 'container', 'dense', 'alignItemsFlexStart', 'divider', 'gutters', 'padding', 'secondaryAction']);\nexport default listItemClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemButtonUtilityClass(slot) {\n return generateUtilityClass('MuiListItemButton', slot);\n}\nconst listItemButtonClasses = generateUtilityClasses('MuiListItemButton', ['root', 'focusVisible', 'dense', 'alignItemsFlexStart', 'disabled', 'divider', 'gutters', 'selected']);\nexport default listItemButtonClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport { getListItemSecondaryActionClassesUtilityClass } from \"./listItemSecondaryActionClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disableGutters,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disableGutters && 'disableGutters']\n };\n return composeClasses(slots, getListItemSecondaryActionClassesUtilityClass, classes);\n};\nconst ListItemSecondaryActionRoot = styled('div', {\n name: 'MuiListItemSecondaryAction',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.disableGutters && styles.disableGutters];\n }\n})({\n position: 'absolute',\n right: 16,\n top: '50%',\n transform: 'translateY(-50%)',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.disableGutters,\n style: {\n right: 0\n }\n }]\n});\n\n/**\n * Must be used as the last child of ListItem to function properly.\n *\n * @deprecated Use the `secondaryAction` prop in the `ListItem` component instead. This component will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\nconst ListItemSecondaryAction = /*#__PURE__*/React.forwardRef(function ListItemSecondaryAction(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItemSecondaryAction'\n });\n const {\n className,\n ...other\n } = props;\n const context = React.useContext(ListContext);\n const ownerState = {\n ...props,\n disableGutters: context.disableGutters\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListItemSecondaryActionRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemSecondaryAction.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally an `IconButton` or selection control.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nListItemSecondaryAction.muiName = 'ListItemSecondaryAction';\nexport default ListItemSecondaryAction;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemSecondaryActionClassesUtilityClass(slot) {\n return generateUtilityClass('MuiListItemSecondaryAction', slot);\n}\nconst listItemSecondaryActionClasses = generateUtilityClasses('MuiListItemSecondaryAction', ['root', 'disableGutters']);\nexport default listItemSecondaryActionClasses;"],"names":["ListItemRoot","name","slot","overridesResolver","props","styles","ownerState","root","dense","alignItems","alignItemsFlexStart","divider","disableGutters","gutters","disablePadding","padding","hasSecondaryAction","secondaryAction","theme","display","justifyContent","position","textDecoration","width","boxSizing","textAlign","variants","style","paddingTop","paddingBottom","paddingLeft","paddingRight","borderBottom","vars","palette","backgroundClip","button","transition","transitions","create","duration","shortest","backgroundColor","action","hover","ListItemContainer","container","inProps","ref","children","childrenProp","className","component","componentProp","components","componentsProps","ContainerComponent","ContainerProps","ContainerClassName","slotProps","slots","other","context","childContext","listItemRef","toArray","length","classes","useUtilityClasses","handleRef","Root","rootProps","componentProps","Component","Provider","value","as","pop","getListItemUtilityClass","getListItemButtonUtilityClass","ListItemSecondaryActionRoot","right","top","transform","ListItemSecondaryAction","g","muiName","getListItemSecondaryActionClassesUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2697.4ab94d07.chunk.js --- a/x/static/js/2697.4ab94d07.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2697],{32697:(e,t,a)=>{a.r(t),a.d(t,{default:()=>m});var o=a(7552),n=a(68446),r=a(29499),l=a(36715),c=a(1343),s=a(58507),u=a(5401),i=a(49823);const m=(0,n.observer)((function(e){const{model:t,handleClose:a}=e,[n,m]=(0,o.useState)(""),d=/^[A-Za-z][A-Za-z0-9]$/.exec(n);return o.createElement(i.Dialog,{open:!0,onClose:a,title:"Sort by tag"},o.createElement(r.A,null,o.createElement(l.A,null,"Set the tag to sort by"),o.createElement(l.A,{color:"textSecondary"},"Examples: HP for haplotype, RG for read group, etc."),o.createElement(c.A,{value:n,onChange:e=>{m(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"sort-tag-name-input"},error:2===n.length&&!d,helperText:2!==n.length||d?"":"Not a valid tag",autoComplete:"off","data-testid":"sort-tag-name"}),o.createElement(s.A,null,o.createElement(u.A,{variant:"contained",color:"primary",type:"submit",autoFocus:!0,onClick:()=>{t.setSortedBy("tag",n),a()}},"Submit"),o.createElement(u.A,{variant:"contained",color:"secondary",onClick:()=>{a()}},"Cancel"))))}))}}]); -//# sourceMappingURL=2697.4ab94d07.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2697.4ab94d07.chunk.js.map --- a/x/static/js/2697.4ab94d07.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2697.4ab94d07.chunk.js","mappings":"gPAWA,MA2DA,GA3DwBA,EAAAA,EAAAA,WAAS,SAAUC,GAMzC,MAAM,MAAEC,EAAK,YAAEC,GAAgBF,GACxBG,EAAKC,IAAUC,EAAAA,EAAAA,UAAS,IACzBC,EAAW,wBAAwBC,KAAKJ,GAC9C,OACEK,EAAAA,cAACC,EAAAA,OAAM,CAACC,MAAI,EAACC,QAAST,EAAaU,MAAM,eACvCJ,EAAAA,cAACK,EAAAA,EAAa,KACZL,EAAAA,cAACM,EAAAA,EAAU,KAAC,0BACZN,EAAAA,cAACM,EAAAA,EAAU,CAACC,MAAM,iBAAgB,uDAGlCP,EAAAA,cAACQ,EAAAA,EAAS,CACRC,MAAOd,EACPe,SAAUC,IACRf,EAAOe,EAAMC,OAAOH,MAAM,EAE5BI,YAAY,iBACZC,WAAY,CACVC,UAAW,EACX,cAAe,uBAEjBC,MAAsB,IAAfrB,EAAIsB,SAAiBnB,EAC5BoB,WAA2B,IAAfvB,EAAIsB,QAAiBnB,EAA+B,GAApB,kBAC5CqB,aAAa,MACb,cAAY,kBAEdnB,EAAAA,cAACoB,EAAAA,EAAa,KACZpB,EAAAA,cAACqB,EAAAA,EAAM,CACLC,QAAQ,YACRf,MAAM,UACNgB,KAAK,SACLC,WAAS,EACTC,QAASA,KACPhC,EAAMiC,YAAY,MAAO/B,GACzBD,GAAa,GAEhB,UAGDM,EAAAA,cAACqB,EAAAA,EAAM,CACLC,QAAQ,YACRf,MAAM,YACNkB,QAASA,KACP/B,GAAa,GAEhB,YAOX,G","sources":["../../../plugins/alignments/src/LinearPileupDisplay/components/SortByTagDialog.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { observer } from 'mobx-react'\nimport {\n Button,\n DialogActions,\n DialogContent,\n TextField,\n Typography,\n} from '@mui/material'\nimport { Dialog } from '@jbrowse/core/ui'\n\nconst SortByTagDialog = observer(function (props: {\n model: {\n setSortedBy: (arg: string, arg2: string) => void\n }\n handleClose: () => void\n}) {\n const { model, handleClose } = props\n const [tag, setTag] = useState('')\n const validTag = /^[A-Za-z][A-Za-z0-9]$/.exec(tag)\n return (\n \n \n Set the tag to sort by\n \n Examples: HP for haplotype, RG for read group, etc.\n \n {\n setTag(event.target.value)\n }}\n placeholder=\"Enter tag name\"\n inputProps={{\n maxLength: 2,\n 'data-testid': 'sort-tag-name-input',\n }}\n error={tag.length === 2 && !validTag}\n helperText={tag.length === 2 && !validTag ? 'Not a valid tag' : ''}\n autoComplete=\"off\"\n data-testid=\"sort-tag-name\"\n />\n \n {\n model.setSortedBy('tag', tag)\n handleClose()\n }}\n >\n Submit\n \n {\n handleClose()\n }}\n >\n Cancel\n \n \n \n \n )\n})\n\nexport default SortByTagDialog\n"],"names":["observer","props","model","handleClose","tag","setTag","useState","validTag","exec","React","Dialog","open","onClose","title","DialogContent","Typography","color","TextField","value","onChange","event","target","placeholder","inputProps","maxLength","error","length","helperText","autoComplete","DialogActions","Button","variant","type","autoFocus","onClick","setSortedBy"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2729.9660c29b.chunk.js --- a/x/static/js/2729.9660c29b.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2729],{82729:(e,l,s)=>{s.r(l),s.d(l,{default:()=>a.A,dialogTitleClasses:()=>i.A,getDialogTitleUtilityClass:()=>i.t});var a=s(43163),i=s(99791)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2775.e25b4dd4.chunk.js --- a/x/static/js/2775.e25b4dd4.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2775],{25156:(s,o,e)=>{e.r(o),e.d(o,{default:()=>l.A,formControlClasses:()=>t.A,getFormControlUtilityClasses:()=>t.c,useFormControl:()=>r.A});var l=e(48171),r=e(33960),t=e(92319)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2777.56f29f41.chunk.js --- a/x/static/js/2777.56f29f41.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2777],{88215:(e,t,n)=>{n.d(t,{x:()=>a});var r=n(7552),c=n(29527),u=n(89887),o=n(99305),s=n(28325),i=n(69500);function l(e){return e.substring(2).toLowerCase()}function a(e){const{children:t,disableReactTree:n=!1,mouseEvent:a="onClick",onClickAway:d,touchEvent:f="onTouchEnd"}=e,m=r.useRef(!1),v=r.useRef(null),E=r.useRef(!1),h=r.useRef(!1);r.useEffect((()=>(setTimeout((()=>{E.current=!0}),0),()=>{E.current=!1})),[]);const b=(0,c.A)((0,s.A)(t),v),w=(0,u.A)((e=>{const t=h.current;h.current=!1;const r=(0,o.A)(v.current);if(!E.current||!v.current||"clientX"in e&&function(e,t){return t.documentElement.clientWidthn=>{h.current=!0;const r=t.props[e];r&&r(n)},p={ref:b};return!1!==f&&(p[f]=g(f)),r.useEffect((()=>{if(!1!==f){const e=l(f),t=(0,o.A)(v.current),n=()=>{m.current=!0};return t.addEventListener(e,w),t.addEventListener("touchmove",n),()=>{t.removeEventListener(e,w),t.removeEventListener("touchmove",n)}}}),[w,f]),!1!==a&&(p[a]=g(a)),r.useEffect((()=>{if(!1!==a){const e=l(a),t=(0,o.A)(v.current);return t.addEventListener(e,w),()=>{t.removeEventListener(e,w)}}}),[w,a]),(0,i.jsx)(r.Fragment,{children:r.cloneElement(t,p)})}},42777:(e,t,n)=>{n.r(t),n.d(t,{default:()=>r.x});var r=n(88215)}}]); -//# sourceMappingURL=2777.56f29f41.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2777.56f29f41.chunk.js.map --- a/x/static/js/2777.56f29f41.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2777.56f29f41.chunk.js","mappings":"+MASA,SAASA,EAAoBC,GAC3B,OAAOA,EAAUC,UAAU,GAAGC,aAChC,CAiBA,SAASC,EAAkBC,GACzB,MAAM,SACJC,EAAQ,iBACRC,GAAmB,EAAK,WACxBC,EAAa,UAAS,YACtBC,EAAW,WACXC,EAAa,cACXL,EACEM,EAAW,UAAa,GACxBC,EAAU,SAAa,MACvBC,EAAe,UAAa,GAC5BC,EAAoB,UAAa,GACvC,aAAgB,KAGdC,YAAW,KACTF,EAAaG,SAAU,CAAI,GAC1B,GACI,KACLH,EAAaG,SAAU,CAAK,IAE7B,IACH,MAAMC,GAAY,QAAW,OAAgBX,GAAWM,GAQlDM,GAAkB,QAAiBC,IAGvC,MAAMC,EAAkBN,EAAkBE,QAC1CF,EAAkBE,SAAU,EAC5B,MAAMK,GAAM,OAAcT,EAAQI,SAKlC,IAAKH,EAAaG,UAAYJ,EAAQI,SAAW,YAAaG,GAxDlE,SAA8BA,EAAOE,GACnC,OAAOA,EAAIC,gBAAgBC,YAAcJ,EAAMK,SAAWH,EAAIC,gBAAgBG,aAAeN,EAAMO,OACrG,CAsD2EC,CAAqBR,EAAOE,GACjG,OAIF,GAAIV,EAASK,QAEX,YADAL,EAASK,SAAU,GAGrB,IAAIY,EAIFA,EADET,EAAMU,aACIV,EAAMU,eAAeC,SAASlB,EAAQI,UAErCK,EAAIC,gBAAgBS,SAEjCZ,EAAMa,SAAWpB,EAAQI,QAAQe,SAEjCZ,EAAMa,QAEHJ,IAAcrB,GAAqBa,GACtCX,EAAYU,EACd,IAIIc,EAAwBC,GAAef,IAC3CL,EAAkBE,SAAU,EAC5B,MAAMmB,EAAuB7B,EAASD,MAAM6B,GACxCC,GACFA,EAAqBhB,EACvB,EAEIiB,EAAgB,CACpBC,IAAKpB,GAmCP,OAjCmB,IAAfP,IACF0B,EAAc1B,GAAcuB,EAAsBvB,IAEpD,aAAgB,KACd,IAAmB,IAAfA,EAAsB,CACxB,MAAM4B,EAAmBtC,EAAoBU,GACvCW,GAAM,OAAcT,EAAQI,SAC5BuB,EAAkB,KACtB5B,EAASK,SAAU,CAAI,EAIzB,OAFAK,EAAImB,iBAAiBF,EAAkBpB,GACvCG,EAAImB,iBAAiB,YAAaD,GAC3B,KACLlB,EAAIoB,oBAAoBH,EAAkBpB,GAC1CG,EAAIoB,oBAAoB,YAAaF,EAAgB,CAEzD,CACgB,GACf,CAACrB,EAAiBR,KACF,IAAfF,IACF4B,EAAc5B,GAAcyB,EAAsBzB,IAEpD,aAAgB,KACd,IAAmB,IAAfA,EAAsB,CACxB,MAAMkC,EAAmB1C,EAAoBQ,GACvCa,GAAM,OAAcT,EAAQI,SAElC,OADAK,EAAImB,iBAAiBE,EAAkBxB,GAChC,KACLG,EAAIoB,oBAAoBC,EAAkBxB,EAAgB,CAE9D,CACgB,GACf,CAACA,EAAiBV,KACD,SAAK,WAAgB,CACvCF,SAAuB,eAAmBA,EAAU8B,IAExD,C","sources":["../../../node_modules/@mui/material/ClickAwayListener/ClickAwayListener.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport getReactNodeRef from '@mui/utils/getReactNodeRef';\n\n// TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase : never` once generatePropTypes runs with TS 4.1\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click-Away Listener](https://mui.com/material-ui/react-click-away-listener/)\n * - [Menu](https://mui.com/material-ui/react-menu/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/material-ui/api/click-away-listener/)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = 'onClick',\n onClickAway,\n touchEvent = 'onTouchEnd'\n } = props;\n const movedRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n React.useEffect(() => {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = useForkRef(getReactNodeRef(children), nodeRef);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n const handleClickAway = useEventCallback(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current);\n\n // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n }\n\n // Do not act if user performed touchmove\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n let insideDOM;\n\n // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n if (event.composedPath) {\n insideDOM = event.composedPath().includes(nodeRef.current);\n } else {\n insideDOM = !doc.documentElement.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n });\n\n // Keep track of mouse/touch events that bubbled up through the portal.\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const childrenProps = {\n ref: handleRef\n };\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n React.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = ownerDocument(nodeRef.current);\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n return undefined;\n }, [handleClickAway, touchEvent]);\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n React.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n * @default false\n */\n disableReactTree: PropTypes.bool,\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n * @default 'onClick'\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n * @default 'onTouchEnd'\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport { ClickAwayListener };"],"names":["mapEventPropToEvent","eventProp","substring","toLowerCase","ClickAwayListener","props","children","disableReactTree","mouseEvent","onClickAway","touchEvent","movedRef","nodeRef","activatedRef","syntheticEventRef","setTimeout","current","handleRef","handleClickAway","event","insideReactTree","doc","documentElement","clientWidth","clientX","clientHeight","clientY","clickedRootScrollbar","insideDOM","composedPath","includes","contains","target","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","ref","mappedTouchEvent","handleTouchMove","addEventListener","removeEventListener","mappedMouseEvent"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2820.3c0e09be.chunk.js --- a/x/static/js/2820.3c0e09be.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2820],{12820:(e,t,n)=>{n.r(t),n.d(t,{default:()=>l});var s=n(99834),o=n(7706),i=n(99546),a=n(35904);const c="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;class l extends a.default{async setupPre(e){const t=(0,s.openLocation)(this.getConf("deltaLocation"),this.pluginManager),n=await t.readFile(e);return function(e){let t="",n="",s=0,o=0,i=0,a=0,l=0,r=0,u=[],h=0,f=0,p=!1;const d=[],g=new RegExp(/^>(\S+)\s+(\S+)\s+(\d+)\s+(\d+)/);let w=0,b=0;for(;wt&&n>p?1:-1,i=+(ee?t:e),s=+(nn?p:n),h=f=0,r=+c[4],u=[]}else if(1===c.length){const e=+c[0];if(0===e){let e=0;const c=[];if(a-i-h!=o-s-f)throw new Error(`inconsistent alignment on line ${b}`);u.push(a-i-h<<4);for(const t of u){const n=t>>4;e+=n,c.push(n+"MID".charAt(15&u[b]))}d.push({qname:n,qstart:s,qend:o,tname:t,tstart:i,tend:a,strand:l,extra:{numMatches:e-r,blockLen:e,mappingQual:0,NM:r,cg:c.join("")}})}else if(e>0){const t=e-1;h+=t+1,f+=t,t>0&&u.push(t<<4),u.length>0&&2==(15&u[u.length-1])?u[u.length-1]+=16:u.push(18)}else{const t=-e-1;h+=t,f+=t+1,t>0&&u.push(t<<4),u.length>0&&1==(15&u[u.length-1])?u[u.length-1]+=16:u.push(17)}}}}return d}((0,i.isGzip)(n)?await(0,o.unzip)(n):n)}}}}]); -//# sourceMappingURL=2820.3c0e09be.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2820.3c0e09be.chunk.js.map --- a/x/static/js/2820.3c0e09be.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2820.3c0e09be.chunk.js","mappings":"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","sources":["../../../plugins/comparative-adapters/src/DeltaAdapter/util.ts","../../../plugins/comparative-adapters/src/DeltaAdapter/DeltaAdapter.ts"],"sourcesContent":["import type { Buffer } from 'buffer'\nconst decoder =\n typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined\n\n/* paf2delta from paftools.js in the minimap2 repository, license reproduced below\n *\n * The MIT License\n *\n * Copyright (c) 2018- Dana-Farber Cancer Institute\n * 2017-2018 Broad Institute, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\n * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\nexport function paf_delta2paf(buffer: Buffer) {\n let rname = ''\n let qname = ''\n let qs = 0\n let qe = 0\n let rs = 0\n let re = 0\n let strand = 0\n let NM = 0\n let cigar = [] as number[]\n let x = 0\n let y = 0\n let seen_gt = false\n\n const records = []\n const regex = new RegExp(/^>(\\S+)\\s+(\\S+)\\s+(\\d+)\\s+(\\d+)/)\n\n let blockStart = 0\n let i = 0\n while (blockStart < buffer.length) {\n const n = buffer.indexOf('\\n', blockStart)\n if (n === -1) {\n break\n }\n const b = buffer.subarray(blockStart, n)\n const line = (decoder?.decode(b) || b.toString()).trim()\n blockStart = n + 1\n i++\n if (line) {\n const m = regex.exec(line)\n if (m !== null) {\n rname = m[1]!\n qname = m[2]!\n seen_gt = true\n continue\n }\n if (!seen_gt) {\n continue\n }\n const t = line.split(' ')\n if (t.length === 7) {\n const t0 = +t[0]!\n const t1 = +t[1]!\n const t2 = +t[2]!\n const t3 = +t[3]!\n const t4 = +t[4]!\n strand = (t0 < t1 && t2 < t3) || (t0 > t1 && t2 > t3) ? 1 : -1\n rs = +(t0 < t1 ? t0 : t1) - 1\n re = +(t1 > t0 ? t1 : t0)\n qs = +(t2 < t3 ? t2 : t3) - 1\n qe = +(t3 > t2 ? t3 : t2)\n x = y = 0\n NM = t4\n cigar = []\n } else if (t.length === 1) {\n const d = +t[0]!\n if (d === 0) {\n let blen = 0\n const cigar_str = []\n\n if (re - rs - x !== qe - qs - y) {\n throw new Error(`inconsistent alignment on line ${i}`)\n }\n cigar.push((re - rs - x) << 4)\n for (const entry of cigar) {\n const rlen = entry >> 4\n blen += rlen\n cigar_str.push(rlen + 'MID'.charAt(cigar[i]! & 0xf))\n }\n\n records.push({\n qname,\n qstart: qs,\n qend: qe,\n tname: rname,\n tstart: rs,\n tend: re,\n strand,\n extra: {\n numMatches: blen - NM,\n blockLen: blen,\n mappingQual: 0,\n NM,\n cg: cigar_str.join(''),\n },\n })\n } else if (d > 0) {\n const l = d - 1\n x += l + 1\n y += l\n if (l > 0) {\n cigar.push(l << 4)\n }\n\n if (cigar.length > 0 && (cigar[cigar.length - 1]! & 0xf) === 2) {\n cigar[cigar.length - 1]! += 1 << 4\n } else {\n cigar.push((1 << 4) | 2)\n } // deletion\n } else {\n const l = -d - 1\n x += l\n y += l + 1\n if (l > 0) {\n cigar.push(l << 4)\n }\n\n if (cigar.length > 0 && (cigar[cigar.length - 1]! & 0xf) === 1) {\n cigar[cigar.length - 1]! += 1 << 4\n } else {\n cigar.push((1 << 4) | 1)\n } // insertion\n }\n }\n }\n }\n return records\n}\n","import { BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter'\nimport { openLocation } from '@jbrowse/core/util/io'\nimport { unzip } from '@gmod/bgzf-filehandle'\nimport { isGzip } from '@jbrowse/core/util'\nimport type { Buffer } from 'buffer'\n// locals\nimport PAFAdapter from '../PAFAdapter/PAFAdapter'\nimport { paf_delta2paf } from './util'\n\nexport default class DeltaAdapter extends PAFAdapter {\n async setupPre(opts?: BaseOptions) {\n const loc = openLocation(this.getConf('deltaLocation'), this.pluginManager)\n const buffer = (await loc.readFile(opts)) as Buffer\n const buf = isGzip(buffer) ? await unzip(buffer) : buffer\n return paf_delta2paf(buf)\n }\n}\n"],"names":["decoder","TextDecoder","undefined","DeltaAdapter","PAFAdapter","setupPre","opts","loc","openLocation","this","getConf","pluginManager","buffer","readFile","rname","qname","qs","qe","rs","re","strand","NM","cigar","x","y","seen_gt","records","regex","RegExp","blockStart","i","length","n","indexOf","b","subarray","line","decode","toString","trim","m","exec","t","split","t0","t1","t2","t3","d","blen","cigar_str","Error","push","entry","rlen","charAt","qstart","qend","tname","tstart","tend","extra","numMatches","blockLen","mappingQual","cg","join","l","paf_delta2paf","isGzip","unzip"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2847.009c96ee.chunk.js --- a/x/static/js/2847.009c96ee.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -/*! For license information please see 2847.009c96ee.chunk.js.LICENSE.txt */ -(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2847],{82847:t=>{t.exports=function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=32)}([function(t,e){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){"use strict";var n=r(6),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=f;var o=r(5);o.inherits=r(2);var s=r(23),a=r(14);o.inherits(f,s);for(var u=i(a.prototype),c=0;c=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return N(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(t).length;default:if(n)return N(t).length;e=(""+e).toLowerCase(),n=!0}}function _(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function v(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:y(t,e,r,n,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):y(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function y(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var l=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var f=!0,h=0;hi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function j(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+f<=r)switch(f){case 1:c<128&&(l=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(l=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(l=u)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=f}return function(t){var e=t.length;if(e<=S)return String.fromCharCode.apply(String,t);for(var r="",n=0;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return T(this,e,r);case"utf8":case"utf-8":return j(this,e,r);case"ascii":return k(this,e,r);case"latin1":case"binary":return R(this,e,r);case"base64":return x(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},u.prototype.equals=function(t){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===u.compare(this,t)},u.prototype.inspect=function(){var t="",r=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},u.prototype.compare=function(t,e,r,n,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),a=Math.min(o,s),c=this.slice(n,i),l=t.slice(e,r),f=0;fi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return m(this,t,e,r);case"utf8":case"utf-8":return g(this,t,e,r);case"ascii":return b(this,t,e,r);case"latin1":case"binary":return w(this,t,e,r);case"base64":return E(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var S=4096;function k(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function A(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function F(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function L(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function M(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function B(t,e,r,n,o){return o||M(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function D(t,e,r,n,o){return o||M(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUInt8=function(t,e){return e||O(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||O(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||O(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||O(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||O(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||O(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||O(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||O(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||O(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||O(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||O(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||O(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||O(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||O(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||O(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||O(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,n){t=+t,e|=0,r|=0,n||A(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):F(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):F(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):L(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):L(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);A(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s|0)-a&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):F(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):F(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):L(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):L(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return B(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return B(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return D(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return D(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function H(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(I,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function V(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(0))},function(t,e){var r,n,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(t){if(r===setTimeout)return setTimeout(t,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(t){r=o}try{n="function"==typeof clearTimeout?clearTimeout:s}catch(t){n=s}}();var u,c=[],l=!1,f=-1;function h(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&p())}function p(){if(!l){var t=a(h);l=!0;for(var e=c.length;e;){for(u=c,c=[];++f1)for(var r=1;r=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},r(35),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,r(0))},function(t,e){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(t){return"function"==typeof t}function i(t){return"object"==typeof t&&null!==t}function o(t){return void 0===t}t.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(t){if(!function(t){return"number"==typeof t}(t)||t<0||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},r.prototype.emit=function(t){var e,r,s,a,u,c;if(this._events||(this._events={}),"error"===t&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var l=new Error('Uncaught, unspecified "error" event. ('+e+")");throw l.context=e,l}if(o(r=this._events[t]))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),r.apply(this,a)}else if(i(r))for(a=Array.prototype.slice.call(arguments,1),s=(c=r.slice()).length,u=0;u0&&this._events[t].length>s&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(t,e){if(!n(e))throw TypeError("listener must be a function");var r=!1;function i(){this.removeListener(t,i),r||(r=!0,e.apply(this,arguments))}return i.listener=e,this.on(t,i),this},r.prototype.removeListener=function(t,e){var r,o,s,a;if(!n(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(s=(r=this._events[t]).length,o=-1,r===e||n(r.listener)&&r.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(i(r)){for(a=s;a-- >0;)if(r[a]===e||r[a].listener&&r[a].listener===e){o=a;break}if(o<0)return this;1===r.length?(r.length=0,delete this._events[t]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},r.prototype.removeAllListeners=function(t){var e,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(n(r=this._events[t]))this.removeListener(t,r);else if(r)for(;r.length;)this.removeListener(t,r[r.length-1]);return delete this._events[t],this},r.prototype.listeners=function(t){return this._events&&this._events[t]?n(this._events[t])?[this._events[t]]:this._events[t].slice():[]},r.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(n(e))return 1;if(e)return e.length}return 0},r.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e,r){(e=t.exports=r(23)).Stream=e,e.Readable=e,e.Writable=r(14),e.Duplex=r(1),e.Transform=r(27),e.PassThrough=r(45)},function(t,e,r){"use strict";(function(e,n,i){var o=r(6);function s(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e){var r=t.entry;for(t.entry=null;r;){var n=r.callback;e.pendingcb--,n(void 0),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}t.exports=m;var a,u=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?n:o.nextTick;m.WritableState=y;var c=r(5);c.inherits=r(2);var l,f={deprecate:r(44)},h=r(24),p=r(7).Buffer,d=i.Uint8Array||function(){},_=r(25);function v(){}function y(t,e){a=a||r(1),t=t||{};var n=e instanceof a;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,c=t.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(c||0===c)?c:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===t.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,i=r.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,n,i){--e.pendingcb,r?(o.nextTick(i,n),o.nextTick(x,t,e),t._writableState.errorEmitted=!0,t.emit("error",n)):(i(n),t._writableState.errorEmitted=!0,t.emit("error",n),x(t,e))}(t,r,n,e,i);else{var s=E(r);s||r.corked||r.bufferProcessing||!r.bufferedRequest||w(t,r),n?u(b,t,r,s,i):b(t,r,s,i)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new s(this)}function m(t){if(a=a||r(1),!(l.call(m,this)||this instanceof a))return new m(t);this._writableState=new y(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),h.call(this)}function g(t,e,r,n,i,o,s){e.writelen=n,e.writecb=s,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function b(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),x(t,e)}function w(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),o=e.corkedRequestsFree;o.entry=r;for(var a=0,u=!0;r;)i[a]=r,r.isBuf||(u=!1),r=r.next,a+=1;i.allBuffers=u,g(t,e,!0,e.length,i,"",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new s(e),e.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,l=r.encoding,f=r.callback;if(g(t,e,!1,e.objectMode?1:c.length,c,l,f),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function E(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function C(t,e){t._final((function(r){e.pendingcb--,r&&t.emit("error",r),e.prefinished=!0,t.emit("prefinish"),x(t,e)}))}function x(t,e){var r=E(e);return r&&(function(t,e){e.prefinished||e.finalCalled||("function"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,o.nextTick(C,t,e)):(e.prefinished=!0,t.emit("prefinish")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"))),r}c.inherits(m,h),y.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(y.prototype,"buffer",{get:f.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(l=Function.prototype[Symbol.hasInstance],Object.defineProperty(m,Symbol.hasInstance,{value:function(t){return!!l.call(this,t)||this===m&&t&&t._writableState instanceof y}})):l=function(t){return t instanceof this},m.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},m.prototype.write=function(t,e,r){var n=this._writableState,i=!1,s=!n.objectMode&&function(t){return p.isBuffer(t)||t instanceof d}(t);return s&&!p.isBuffer(t)&&(t=function(t){return p.from(t)}(t)),"function"==typeof e&&(r=e,e=null),s?e="buffer":e||(e=n.defaultEncoding),"function"!=typeof r&&(r=v),n.ended?function(t,e){var r=new Error("write after end");t.emit("error",r),o.nextTick(e,r)}(this,r):(s||function(t,e,r,n){var i=!0,s=!1;return null===r?s=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||e.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(t.emit("error",s),o.nextTick(n,s),i=!1),i}(this,n,t,r))&&(n.pendingcb++,i=function(t,e,r,n,i,o){if(!r){var s=function(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=p.from(e,r)),e}(e,n,i);n!==s&&(r=!0,i="buffer",n=s)}var a=e.objectMode?1:n.length;e.length+=a;var u=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(m.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),m.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},m.prototype._writev=null,m.prototype.end=function(t,e,r){var n=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,x(t,e),r&&(e.finished?o.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r)},Object.defineProperty(m.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),m.prototype.destroy=_.destroy,m.prototype._undestroy=_.undestroy,m.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,r(4),r(11).setImmediate,r(0))},function(t,e,r){(function(e,r,n){t.exports=function t(e,r,n){function i(s,a){if(!r[s]){if(!e[s]){var u="function"==typeof _dereq_&&_dereq_;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[s]={exports:{}};e[s][0].call(l.exports,(function(t){return i(e[s][1][t]||t)}),l,l.exports,t,e,r,n)}return r[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if("function"==typeof e){var r=t.shift(),n=t.shift();e.call(r,n)}else e._settlePromises()}},u.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},u.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},u.prototype._reset=function(){this._isTickUsed=!1},r.exports=u,r.exports.firstLineError=i},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){!(50397184&this._bitField)&&this._resolveCallback(e.target)},u=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=n.propagateFromFunction(),t.prototype._boundValue=n.boundValueFunction());var c=r(o),l=new t(e);l._propagateFrom(this,1);var f=this._target();if(l._setBoundTo(c),c instanceof t){var h={promiseRejectionQueued:!1,promise:l,target:f,bindingPromise:c};f._then(e,s,void 0,l,h),c._then(a,u,void 0,l,h),l._setOnCancel(c)}else l._resolveCallback(f);return l},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return!(2097152&~this._bitField)},t.bind=function(e,r){return t.resolve(r).bind(e)}}},{}],4:[function(t,e,r){"use strict";var n;"undefined"!=typeof Promise&&(n=Promise);var i=t("./promise")();i.noConflict=function(){try{Promise===i&&(Promise=n)}catch(t){}return i},e.exports=i},{"./promise":22}],5:[function(t,e,r){"use strict";var n=Object.create;if(n){var i=n(null),o=n(null);i[" size"]=o[" size"]=0}e.exports=function(e){var r=t("./util"),n=r.canEvaluate;function i(t){return function(t,n){var i;if(null!=t&&(i=t[n]),"function"!=typeof i){var o="Object "+r.classString(t)+" has no method '"+r.toString(n)+"'";throw new e.TypeError(o)}return i}(t,this.pop()).apply(t,this)}function o(t){return t[this]}function s(t){var e=+this;return e<0&&(e=Math.max(0,e+t.length)),t[e]}r.isIdentifier,e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(i,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e;if("number"==typeof t)e=s;else if(n){var r=(void 0)(t);e=null!==r?r:o}else e=o;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,r){"use strict";e.exports=function(e,r,n,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,u=e._async;e.prototype.break=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var r=t._cancellationParent;if(null==r||!r._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=r}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),!!this._enoughBranchesHaveCancelled()&&(this._invokeOnCancel(),!0))},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),u.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var r=0;r=0)return r[t]}return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},n.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,r.push(this._trace))},n.prototype._popContext=function(){if(void 0!==this._trace){var t=r.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},n.CapturedTrace=null,n.create=function(){if(e)return new n},n.deactivateLongStackTraces=function(){},n.activateLongStackTraces=function(){var r=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,u=t.prototype._promiseCreated;n.deactivateLongStackTraces=function(){t.prototype._pushContext=r,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=u,e=!1},e=!0,t.prototype._pushContext=n.prototype._pushContext,t.prototype._popContext=n.prototype._popContext,t._peekContext=t.prototype._peekContext=i,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},n}},{}],9:[function(t,r,n){"use strict";r.exports=function(r,n){var i,o,s,a=r._getDomain,u=r._async,c=t("./errors").Warning,l=t("./util"),f=l.canAttachTrace,h=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,p=/\((?:timers\.js):\d+:\d+\)/,d=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,_=null,v=null,y=!1,m=!(0==l.env("BLUEBIRD_DEBUG")),g=!(0==l.env("BLUEBIRD_WARNINGS")||!m&&!l.env("BLUEBIRD_WARNINGS")),b=!(0==l.env("BLUEBIRD_LONG_STACK_TRACES")||!m&&!l.env("BLUEBIRD_LONG_STACK_TRACES")),w=0!=l.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(g||!!l.env("BLUEBIRD_W_FORGOTTEN_RETURN"));r.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},r.prototype._ensurePossibleRejectionHandled=function(){if(!(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout((function(){t._notifyUnhandledRejection()}),1)}},r.prototype._notifyUnhandledRejectionIsHandled=function(){q("rejectionHandled",i,void 0,this)},r.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},r.prototype._returnedNonUndefined=function(){return!!(268435456&this._bitField)},r.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),q("unhandledRejection",o,t,this)}},r.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},r.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},r.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},r.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},r.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},r.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},r.prototype._warn=function(t,e,r){return U(t,e,r||this)},r.onPossiblyUnhandledRejection=function(t){var e=a();o="function"==typeof t?null===e?t:l.domainBind(e,t):void 0},r.onUnhandledRejectionHandled=function(t){var e=a();i="function"==typeof t?null===e?t:l.domainBind(e,t):void 0};var E=function(){};r.longStackTraces=function(){if(u.haveItemsQueued()&&!J.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!J.longStackTraces&&Y()){var t=r.prototype._captureStackTrace,e=r.prototype._attachExtraTrace;J.longStackTraces=!0,E=function(){if(u.haveItemsQueued()&&!J.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");r.prototype._captureStackTrace=t,r.prototype._attachExtraTrace=e,n.deactivateLongStackTraces(),u.enableTrampoline(),J.longStackTraces=!1},r.prototype._captureStackTrace=D,r.prototype._attachExtraTrace=I,n.activateLongStackTraces(),u.disableTrampolineIfNecessary()}},r.hasLongStackTraces=function(){return J.longStackTraces&&Y()};var C=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return l.global.dispatchEvent(t),function(t,e){var r=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!l.global.dispatchEvent(r)}}return"function"==typeof Event?(t=new Event("CustomEvent"),l.global.dispatchEvent(t),function(t,e){var r=new Event(t.toLowerCase(),{cancelable:!0});return r.detail=e,!l.global.dispatchEvent(r)}):((t=document.createEvent("CustomEvent")).initCustomEvent("testingtheevent",!1,!0,{}),l.global.dispatchEvent(t),function(t,e){var r=document.createEvent("CustomEvent");return r.initCustomEvent(t.toLowerCase(),!1,!0,e),!l.global.dispatchEvent(r)})}catch(t){}return function(){return!1}}(),x=l.isNode?function(){return e.emit.apply(e,arguments)}:l.global?function(t){var e="on"+t.toLowerCase(),r=l.global[e];return!!r&&(r.apply(l.global,[].slice.call(arguments,1)),!0)}:function(){return!1};function j(t,e){return{promise:e}}var S={promiseCreated:j,promiseFulfilled:j,promiseRejected:j,promiseResolved:j,promiseCancelled:j,promiseChained:function(t,e,r){return{promise:e,child:r}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,r){return{reason:e,promise:r}},rejectionHandled:j},k=function(t){var e=!1;try{e=x.apply(null,arguments)}catch(t){u.throwLater(t),e=!0}var r=!1;try{r=C(t,S[t].apply(null,arguments))}catch(t){u.throwLater(t),r=!0}return r||e};function R(){return!1}function T(t,e,r){var n=this;try{t(e,r,(function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+l.toString(t));n._attachCancellationCallback(t)}))}catch(t){return t}}function P(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?l.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function O(){return this._onCancelField}function A(t){this._onCancelField=t}function F(){this._cancellationParent=void 0,this._onCancelField=void 0}function L(t,e){if(1&e){this._cancellationParent=t;var r=t._branchesRemainingToCancel;void 0===r&&(r=0),t._branchesRemainingToCancel=r+1}2&e&&t._isBound()&&this._setBoundTo(t._boundTo)}r.config=function(t){if("longStackTraces"in(t=Object(t))&&(t.longStackTraces?r.longStackTraces():!t.longStackTraces&&r.hasLongStackTraces()&&E()),"warnings"in t){var e=t.warnings;J.warnings=!!e,w=J.warnings,l.isObject(e)&&"wForgottenReturn"in e&&(w=!!e.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!J.cancellation){if(u.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");r.prototype._clearCancellationData=F,r.prototype._propagateFrom=L,r.prototype._onCancel=O,r.prototype._setOnCancel=A,r.prototype._attachCancellationCallback=P,r.prototype._execute=T,M=L,J.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!J.monitoring?(J.monitoring=!0,r.prototype._fireEvent=k):!t.monitoring&&J.monitoring&&(J.monitoring=!1,r.prototype._fireEvent=R)),r},r.prototype._fireEvent=R,r.prototype._execute=function(t,e,r){try{t(e,r)}catch(t){return t}},r.prototype._onCancel=function(){},r.prototype._setOnCancel=function(t){},r.prototype._attachCancellationCallback=function(t){},r.prototype._captureStackTrace=function(){},r.prototype._attachExtraTrace=function(){},r.prototype._clearCancellationData=function(){},r.prototype._propagateFrom=function(t,e){};var M=function(t,e){2&e&&t._isBound()&&this._setBoundTo(t._boundTo)};function B(){var t=this._boundTo;return void 0!==t&&t instanceof r?t.isFulfilled()?t.value():void 0:t}function D(){this._trace=new X(this._peekContext())}function I(t,e){if(f(t)){var r=this._trace;if(void 0!==r&&e&&(r=r._parent),void 0!==r)r.attachExtraTrace(t);else if(!t.__stackCleaned__){var n=H(t);l.notEnumerableProp(t,"stack",n.message+"\n"+n.stack.join("\n")),l.notEnumerableProp(t,"__stackCleaned__",!0)}}}function U(t,e,n){if(J.warnings){var i,o=new c(t);if(e)n._attachExtraTrace(o);else if(J.longStackTraces&&(i=r._peekContext()))i.attachExtraTrace(o);else{var s=H(o);o.stack=s.message+"\n"+s.stack.join("\n")}k("warning",o)||V(o,"",!0)}}function N(t){for(var e=[],r=0;r0?function(t){for(var e=t.stack.replace(/\s+$/g,"").split("\n"),r=0;r0&&"SyntaxError"!=t.name&&(e=e.slice(r)),e}(t):[" (No stack trace)"],{message:r,stack:"SyntaxError"==t.name?e:N(e)}}function V(t,e,r){if("undefined"!=typeof console){var n;if(l.isObject(t)){var i=t.stack;n=e+v(i,t)}else n=e+String(t);"function"==typeof s?s(n,r):"function"!=typeof console.log&&"object"!=typeof console.log||console.log(n)}}function q(t,e,r,n){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(n):e(r,n))}catch(t){u.throwLater(t)}"unhandledRejection"===t?k(t,r,n)||i||V(r,"Unhandled rejection "):k(t,n)}function W(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{if(e=t&&"function"==typeof t.toString?t.toString():l.toString(t),/\[object [a-zA-Z0-9$_]+\]/.test(e))try{e=JSON.stringify(t)}catch(t){}0===e.length&&(e="(empty array)")}return"(<"+function(t){return t.length<41?t:t.substr(0,38)+"..."}(e)+">, no stack trace)"}function Y(){return"function"==typeof G}var $=function(){return!1},z=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;function Q(t){var e=t.match(z);if(e)return{fileName:e[1],line:parseInt(e[2],10)}}function X(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);G(this,X),e>32&&this.uncycle()}l.inherits(X,Error),n.CapturedTrace=X,X.prototype.uncycle=function(){var t=this._length;if(!(t<2)){for(var e=[],r={},n=0,i=this;void 0!==i;++n)e.push(i),i=i._parent;for(n=(t=this._length=n)-1;n>=0;--n){var o=e[n].stack;void 0===r[o]&&(r[o]=n)}for(n=0;n0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[n]._parent=void 0,e[n]._length=1;var a=n>0?e[n-1]:this;s=0;--c)e[c]._length=u,u++;return}}}},X.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=H(t),r=e.message,n=[e.stack],i=this;void 0!==i;)n.push(N(i.stack.split("\n"))),i=i._parent;!function(t){for(var e=t[0],r=1;r=0;--a)if(n[a]===o){s=a;break}for(a=s;a>=0;--a){var u=n[a];if(e[i]!==u)break;e.pop(),i--}e=n}}(n),function(t){for(var e=0;e=0)return _=/@/,v=e,y=!0,function(t){t.stack=(new Error).stack};try{throw new Error}catch(t){n="stack"in t}return"stack"in i||!n||"number"!=typeof Error.stackTraceLimit?(v=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?W(e):e.toString()},null):(_=t,v=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}();"undefined"!=typeof console&&void 0!==console.warn&&(s=function(t){console.warn(t)},l.isNode&&e.stderr.isTTY?s=function(t,e){var r=e?"":"";console.warn(r+t+"\n")}:l.isNode||"string"!=typeof(new Error).stack||(s=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var J={warnings:g,longStackTraces:!1,cancellation:!1,monitoring:!1};return b&&r.longStackTraces(),{longStackTraces:function(){return J.longStackTraces},warnings:function(){return J.warnings},cancellation:function(){return J.cancellation},monitoring:function(){return J.monitoring},propagateFromFunction:function(){return M},boundValueFunction:function(){return B},checkForgottenReturns:function(t,e,r,n,i){if(void 0===t&&null!==e&&w){if(void 0!==i&&i._returnedNonUndefined())return;if(!(65535&n._bitField))return;r&&(r+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),u=N(a),c=u.length-1;c>=0;--c){var l=u[c];if(!p.test(l)){var f=l.match(d);f&&(o="at "+f[1]+":"+f[2]+":"+f[3]+" ");break}}if(u.length>0){var h=u[0];for(c=0;c0&&(s="\n"+a[c-1]);break}}}var _="a promise was created in a "+r+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;n._warn(_,!0,e)}},setBounds:function(t,e){if(Y()){for(var r,n,i=t.stack.split("\n"),o=e.stack.split("\n"),s=-1,a=-1,u=0;u=a||($=function(t){if(h.test(t))return!0;var e=Q(t);return!!(e&&e.fileName===r&&s<=e.line&&e.line<=a)})}},warn:U,deprecated:function(t,e){var r=t+" is deprecated and will be removed in a future version.";return e&&(r+=" Use "+e+" instead."),U(r)},CapturedTrace:X,fireDomEvent:C,fireGlobalEvent:x}}},{"./errors":12,"./util":36}],10:[function(t,e,r){"use strict";e.exports=function(t){function e(){return this.value}function r(){throw this.reason}t.prototype.return=t.prototype.thenReturn=function(r){return r instanceof t&&r.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:r},void 0)},t.prototype.throw=t.prototype.thenThrow=function(t){return this._then(r,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,r,void 0,{reason:t},void 0);var e=arguments[1];return this.caught(t,(function(){throw e}))},t.prototype.catchReturn=function(r){if(arguments.length<=1)return r instanceof t&&r.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:r},void 0);var n=arguments[1];return n instanceof t&&n.suppressUnhandledRejections(),this.caught(r,(function(){return n}))}}},{}],11:[function(t,e,r){"use strict";e.exports=function(t,e){var r=t.reduce,n=t.all;function i(){return n(this)}t.prototype.each=function(t){return r(this,t,e,0)._then(i,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return r(this,t,e,e)},t.each=function(t,n){return r(t,n,e,0)._then(i,void 0,void 0,t,void 0)},t.mapSeries=function(t,n){return r(t,n,e,e)}}},{}],12:[function(t,e,r){"use strict";var n,i,o=t("./es5"),s=o.freeze,a=t("./util"),u=a.inherits,c=a.notEnumerableProp;function l(t,e){function r(n){if(!(this instanceof r))return new r(n);c(this,"message","string"==typeof n?n:e),c(this,"name",t),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this)}return u(r,Error),r}var f=l("Warning","warning"),h=l("CancellationError","cancellation error"),p=l("TimeoutError","timeout error"),d=l("AggregateError","aggregate error");try{n=TypeError,i=RangeError}catch(t){n=l("TypeError","type error"),i=l("RangeError","range error")}for(var _="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),v=0;v<_.length;++v)"function"==typeof Array.prototype[_[v]]&&(d.prototype[_[v]]=Array.prototype[_[v]]);o.defineProperty(d.prototype,"length",{value:0,configurable:!1,writable:!0,enumerable:!0}),d.prototype.isOperational=!0;var y=0;function m(t){if(!(this instanceof m))return new m(t);c(this,"name","OperationalError"),c(this,"message",t),this.cause=t,this.isOperational=!0,t instanceof Error?(c(this,"message",t.message),c(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}d.prototype.toString=function(){var t=Array(4*y+1).join(" "),e="\n"+t+"AggregateError of:\n";y++,t=Array(4*y+1).join(" ");for(var r=0;r1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0)}function f(){return p.call(this,this.promise._target()._settledValue())}function h(t){if(!l(this,t))return s.e=t,s}function p(t){var i=this.promise,a=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?a.call(i._boundValue()):a.call(i._boundValue(),t);if(u===n)return u;if(void 0!==u){i._setReturnedNonUndefined();var p=r(u,i);if(p instanceof e){if(null!=this.cancelPromise){if(p._isCancelled()){var d=new o("late cancellation observer");return i._attachExtraTrace(d),s.e=d,s}p.isPending()&&p._attachCancellationCallback(new c(this))}return p._then(f,h,void 0,this,void 0)}}}return i.isRejected()?(l(this),s.e=t,s):(l(this),t)}return u.prototype.isFinallyHandler=function(){return 0===this.type},c.prototype._resultCancelled=function(){l(this.finallyHandler)},e.prototype._passThrough=function(t,e,r,n){return"function"!=typeof t?this.then():this._then(r,n,void 0,new u(this,e,t),void 0)},e.prototype.lastly=e.prototype.finally=function(t){return this._passThrough(t,0,p,p)},e.prototype.tap=function(t){return this._passThrough(t,1,p)},e.prototype.tapCatch=function(t){var r=arguments.length;if(1===r)return this._passThrough(t,1,void 0,p);var n,o=new Array(r-1),s=0;for(n=0;n0&&"function"==typeof arguments[e]&&(t=arguments[e]);var n=[].slice.call(arguments);t&&n.pop();var i=new r(n).promise();return void 0!==t?i.spread(t):i}}},{"./util":36}],18:[function(t,e,r){"use strict";e.exports=function(e,r,n,i,o,s){var a=e._getDomain,u=t("./util"),c=u.tryCatch,l=u.errorObj,f=e._async;function h(t,e,r,n){this.constructor$(t),this._promise._captureStackTrace();var i=a();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=n===o?new Array(this.length()):null,this._limit=r,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function p(t,r,i,o){if("function"!=typeof r)return n("expecting a function but got "+u.classString(r));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return new h(t,r,s="number"==typeof s&&isFinite(s)&&s>=1?s:0,o).promise()}u.inherits(h,r),h.prototype._asyncInit=function(){this._init$(void 0,-2)},h.prototype._init=function(){},h.prototype._promiseFulfilled=function(t,r){var n=this._values,o=this.length(),a=this._preservedValues,u=this._limit;if(r<0){if(n[r=-1*r-1]=t,u>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(u>=1&&this._inFlight>=u)return n[r]=t,this._queue.push(r),!1;null!==a&&(a[r]=t);var f=this._promise,h=this._callback,p=f._boundValue();f._pushContext();var d=c(h).call(p,t,r,o),_=f._popContext();if(s.checkForgottenReturns(d,_,null!==a?"Promise.filter":"Promise.map",f),d===l)return this._reject(d.e),!0;var v=i(d,this._promise);if(v instanceof e){var y=(v=v._target())._bitField;if(!(50397184&y))return u>=1&&this._inFlight++,n[r]=v,v._proxy(this,-1*(r+1)),!1;if(!(33554432&y))return 16777216&y?(this._reject(v._reason()),!0):(this._cancel(),!0);d=v._value()}n[r]=d}return++this._totalResolved>=o&&(null!==a?this._filter(n,a):this._resolve(n),!0)},h.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,r=this._values;t.length>0&&this._inFlight1){o.deprecated("calling Promise.try with more than 1 argument");var c=arguments[1],l=arguments[2];n=s.isArray(c)?a(t).apply(l,c):a(t).call(l,c)}else n=a(t)();var f=u._popContext();return o.checkForgottenReturns(n,f,"Promise.try",u),u._resolveFromSyncValue(n),u},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,r){"use strict";var n=t("./util"),i=n.maybeWrapAsError,o=t("./errors").OperationalError,s=t("./es5"),a=/^(?:name|message|stack|cause)$/;function u(t){var e;if(function(t){return t instanceof Error&&s.getPrototypeOf(t)===Error.prototype}(t)){(e=new o(t)).name=t.name,e.message=t.message,e.stack=t.stack;for(var r=s.keys(t),i=0;i1){var r,n=new Array(e-1),i=0;for(r=0;r0&&"function"!=typeof t&&"function"!=typeof e){var r=".then() only accepts functions but was passed: "+c.classString(t);arguments.length>1&&(r+=", "+c.classString(e)),this._warn(r)}return this._then(t,e,void 0,void 0,void 0)},T.prototype.done=function(t,e){this._then(t,e,void 0,void 0,void 0)._setIsFinal()},T.prototype.spread=function(t){return"function"!=typeof t?o("expecting a function but got "+c.classString(t)):this.all()._then(t,void 0,void 0,y,void 0)},T.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},T.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new b(this).promise()},T.prototype.error=function(t){return this.caught(c.originatesFromRejection,t)},T.getNewLibraryCopy=r.exports,T.is=function(t){return t instanceof T},T.fromNode=T.fromCallback=function(t){var e=new T(v);e._captureStackTrace();var r=arguments.length>1&&!!Object(arguments[1]).multiArgs,n=R(t)(S(e,r));return n===k&&e._rejectCallback(n.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},T.all=function(t){return new b(t).promise()},T.cast=function(t){var e=g(t);return e instanceof T||((e=new T(v))._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},T.resolve=T.fulfilled=T.cast,T.reject=T.rejected=function(t){var e=new T(v);return e._captureStackTrace(),e._rejectCallback(t,!0),e},T.setScheduler=function(t){if("function"!=typeof t)throw new d("expecting a function but got "+c.classString(t));return h.setScheduler(t)},T.prototype._then=function(t,e,r,n,i){var o=void 0!==i,s=o?i:new T(v),u=this._target(),l=u._bitField;o||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===n&&!!(2097152&this._bitField)&&(n=50397184&l?this._boundValue():u===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var f=a();if(50397184&l){var p,d,y=u._settlePromiseCtx;33554432&l?(d=u._rejectionHandler0,p=t):16777216&l?(d=u._fulfillmentHandler0,p=e,u._unsetRejectionIsUnhandled()):(y=u._settlePromiseLateCancellationObserver,d=new _("late cancellation observer"),u._attachExtraTrace(d),p=e),h.invoke(y,u,{handler:null===f?p:"function"==typeof p&&c.domainBind(f,p),promise:s,receiver:n,value:d})}else u._addCallbacks(t,e,s,n,f);return s},T.prototype._length=function(){return 65535&this._bitField},T.prototype._isFateSealed=function(){return!!(117506048&this._bitField)},T.prototype._isFollowing=function(){return!(67108864&~this._bitField)},T.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},T.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},T.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},T.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},T.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},T.prototype._isFinal=function(){return(4194304&this._bitField)>0},T.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},T.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},T.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},T.prototype._setAsyncGuaranteed=function(){h.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},T.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];if(e!==u)return void 0===e&&this._isBound()?this._boundValue():e},T.prototype._promiseAt=function(t){return this[4*t-4+2]},T.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},T.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},T.prototype._boundValue=function(){},T.prototype._migrateCallback0=function(t){t._bitField;var e=t._fulfillmentHandler0,r=t._rejectionHandler0,n=t._promise0,i=t._receiverAt(0);void 0===i&&(i=u),this._addCallbacks(e,r,n,i,null)},T.prototype._migrateCallbackAt=function(t,e){var r=t._fulfillmentHandlerAt(e),n=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=u),this._addCallbacks(r,n,i,o,null)},T.prototype._addCallbacks=function(t,e,r,n,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=r,this._receiver0=n,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:c.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:c.domainBind(i,e));else{var s=4*o-4;this[s+2]=r,this[s+3]=n,"function"==typeof t&&(this[s+0]=null===i?t:c.domainBind(i,t)),"function"==typeof e&&(this[s+1]=null===i?e:c.domainBind(i,e))}return this._setLength(o+1),o},T.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},T.prototype._resolveCallback=function(t,e){if(!(117506048&this._bitField)){if(t===this)return this._rejectCallback(n(),!1);var r=g(t,this);if(!(r instanceof T))return this._fulfill(t);e&&this._propagateFrom(r,2);var i=r._target();if(i!==this){var o=i._bitField;if(50397184&o)if(33554432&o)this._fulfill(i._value());else if(16777216&o)this._reject(i._reason());else{var s=new _("late cancellation observer");i._attachExtraTrace(s),this._reject(s)}else{var a=this._length();a>0&&i._migrateCallback0(this);for(var u=1;u>>16)){if(t===this){var r=n();return this._attachExtraTrace(r),this._reject(r)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(134217728&e?this._settlePromises():h.settlePromises(this))}},T.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(this._setRejected(),this._fulfillmentHandler0=t,this._isFinal())return h.fatalError(t,c.isNode);(65535&e)>0?h.settlePromises(this):this._ensurePossibleRejectionHandled()}},T.prototype._fulfillPromises=function(t,e){for(var r=1;r0){if(16842752&t){var r=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,r,t),this._rejectPromises(e,r)}else{var n=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,n,t),this._fulfillPromises(e,n)}this._setLength(0)}this._clearCancellationData()},T.prototype._settledValue=function(){var t=this._bitField;return 33554432&t?this._rejectionHandler0:16777216&t?this._fulfillmentHandler0:void 0},T.defer=T.pending=function(){return C.deprecated("Promise.defer","new Promise"),{promise:new T(v),resolve:P,reject:O}},c.notEnumerableProp(T,"_makeSelfResolutionError",n),t("./method")(T,v,g,o,C),t("./bind")(T,v,g,C),t("./cancel")(T,b,o,C),t("./direct_resolve")(T),t("./synchronous_inspection")(T),t("./join")(T,b,g,v,h,a),T.Promise=T,T.version="3.5.1",t("./map.js")(T,b,o,g,v,C),t("./call_get.js")(T),t("./using.js")(T,o,g,E,v,C),t("./timers.js")(T,v,C),t("./generators.js")(T,o,v,g,s,C),t("./nodeify.js")(T),t("./promisify.js")(T,v),t("./props.js")(T,b,g,o),t("./race.js")(T,v,g,o),t("./reduce.js")(T,b,o,g,v,C),t("./settle.js")(T,b,C),t("./some.js")(T,b,o),t("./filter.js")(T,v),t("./each.js")(T,v),t("./any.js")(T),c.toFastProperties(T),c.toFastProperties(T.prototype),A({a:1}),A({b:2}),A({c:3}),A(1),A((function(){})),A(void 0),A(!1),A(new T(v)),C.setBounds(f.firstLineError,c.lastLineError),T}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,r){"use strict";e.exports=function(e,r,n,i,o){var s=t("./util");function a(t){var n=this._promise=new e(r);t instanceof e&&n._propagateFrom(t,3),n._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}return s.isArray,s.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function t(r,o){var a=n(this._values,this._promise);if(a instanceof e){var u=(a=a._target())._bitField;if(this._values=a,!(50397184&u))return this._promise._setAsyncGuaranteed(),a._then(t,this._reject,void 0,this,o);if(!(33554432&u))return 16777216&u?this._reject(a._reason()):this._cancel();a=a._value()}if(null!==(a=s.asArray(a)))0!==a.length?this._iterate(a):-5===o?this._resolveEmptyArray():this._resolve(function(){switch(o){case-2:return[];case-3:return{};case-6:return new Map}}());else{var c=i("expecting an array or an iterable object but got "+s.classString(a)).reason();this._promise._rejectCallback(c,!1)}},a.prototype._iterate=function(t){var r=this.getActualLength(t.length);this._length=r,this._values=this.shouldCopyValues()?new Array(r):this._values;for(var i=this._promise,o=!1,s=null,a=0;a=this._length&&(this._resolve(this._values),!0)},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var r=0;r=this._length){var r;if(this._isMap)r=function(t){for(var e=new o,r=t.length/2|0,n=0;n>1},e.prototype.props=function(){return f(this)},e.props=function(t){return f(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,r){"use strict";function n(t){this._capacity=t,this._length=0,this._front=0}n.prototype._willBeOverCapacity=function(t){return this._capacity=this._length&&(this._resolve(this._values),!0)},o.prototype._promiseFulfilled=function(t,e){var r=new i;return r._bitField=33554432,r._settledValueField=t,this._promiseResolved(e,r)},o.prototype._promiseRejected=function(t,e){var r=new i;return r._bitField=16777216,r._settledValueField=t,this._promiseResolved(e,r)},e.settle=function(t){return n.deprecated(".settle()",".reflect()"),new o(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,r){"use strict";e.exports=function(e,r,n){var i=t("./util"),o=t("./errors").RangeError,s=t("./errors").AggregateError,a=i.isArray,u={};function c(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function l(t,e){if((0|e)!==e||e<0)return n("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var r=new c(t),i=r.promise();return r.setHowMany(e),r.init(),i}i.inherits(c,r),c.prototype._init=function(){if(this._initialized)if(0!==this._howMany){this._init$(void 0,-5);var t=a(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}else this._resolve([])},c.prototype.init=function(){this._initialized=!0,this._init()},c.prototype.setUnwrap=function(){this._unwrap=!0},c.prototype.howMany=function(){return this._howMany},c.prototype.setHowMany=function(t){this._howMany=t},c.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0)},c.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},c.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},c.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new s,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},c.prototype._fulfilled=function(){return this._totalResolved},c.prototype._rejected=function(){return this._values.length-this.length()},c.prototype._addRejected=function(t){this._values.push(t)},c.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},c.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},c.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new o(e)},c.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return l(t,e)},e.prototype.some=function(t){return l(this,t)},e._SomePromiseArray=c}},{"./errors":12,"./util":36}],32:[function(t,e,r){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var r=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},n=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return!!(33554432&this._bitField)},o=e.prototype.isRejected=function(){return!!(16777216&this._bitField)},s=e.prototype.isPending=function(){return!(50397184&this._bitField)},a=e.prototype.isResolved=function(){return!!(50331648&this._bitField)};e.prototype.isCancelled=function(){return!!(8454144&this._bitField)},t.prototype.__isCancelled=function(){return!(65536&~this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return!!(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return r.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),n.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,r){"use strict";e.exports=function(e,r){var n=t("./util"),i=n.errorObj,o=n.isObject,s={}.hasOwnProperty;return function(t,a){if(o(t)){if(t instanceof e)return t;var u=function(t){try{return function(t){return t.then}(t)}catch(t){return i.e=t,i}}(t);if(u===i){a&&a._pushContext();var c=e.reject(u.e);return a&&a._popContext(),c}if("function"==typeof u)return function(t){try{return s.call(t,"_promise0")}catch(t){return!1}}(t)?(c=new e(r),t._then(c._fulfill,c._reject,void 0,c,null),c):function(t,o,s){var a=new e(r),u=a;s&&s._pushContext(),a._captureStackTrace(),s&&s._popContext();var c=!0,l=n.tryCatch(o).call(t,(function(t){a&&(a._resolveCallback(t),a=null)}),(function(t){a&&(a._rejectCallback(t,c,!0),a=null)}));return c=!1,a&&l===i&&(a._rejectCallback(l.e,!0,!0),a=null),u}(t,u,a)}return t}}},{"./util":36}],34:[function(t,e,r){"use strict";e.exports=function(e,r,n){var i=t("./util"),o=e.TimeoutError;function s(t){this.handle=t}s.prototype._resultCancelled=function(){clearTimeout(this.handle)};var a=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,i){var o,u;return void 0!==i?(o=e.resolve(i)._then(a,null,null,t,void 0),n.cancellation()&&i instanceof e&&o._setOnCancel(i)):(o=new e(r),u=setTimeout((function(){o._fulfill()}),+t),n.cancellation()&&o._setOnCancel(new s(u)),o._captureStackTrace()),o._setAsyncGuaranteed(),o};function c(t){return clearTimeout(this.handle),t}function l(t){throw clearTimeout(this.handle),t}e.prototype.delay=function(t){return u(t,this)},e.prototype.timeout=function(t,e){var r,a;t=+t;var u=new s(setTimeout((function(){r.isPending()&&function(t,e,r){var n;n="string"!=typeof e?e instanceof Error?e:new o("operation timed out"):new o(e),i.markAsOriginatingFromRejection(n),t._attachExtraTrace(n),t._reject(n),null!=r&&r.cancel()}(r,e,a)}),t));return n.cancellation()?(a=this.then(),(r=a._then(c,l,void 0,u,void 0))._setOnCancel(u)):r=this._then(c,l,void 0,u,void 0),r}}},{"./util":36}],35:[function(t,e,r){"use strict";e.exports=function(e,r,n,i,o,s){var a=t("./util"),u=t("./errors").TypeError,c=t("./util").inherits,l=a.errorObj,f=a.tryCatch,h={};function p(t){setTimeout((function(){throw t}),0)}function d(t,r){var i=0,s=t.length,a=new e(o);return function o(){if(i>=s)return a._fulfill();var u=function(t){var e=n(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}(t[i++]);if(u instanceof e&&u._isDisposable()){try{u=n(u._getDisposer().tryDispose(r),t.promise)}catch(t){return p(t)}if(u instanceof e)return u._then(o,p,null,null,null)}o()}(),a}function _(t,e,r){this._data=t,this._promise=e,this._context=r}function v(t,e,r){this.constructor$(t,e,r)}function y(t){return _.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function m(t){this.length=t,this.promise=null,this[t-1]=null}_.prototype.data=function(){return this._data},_.prototype.promise=function(){return this._promise},_.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():h},_.prototype.tryDispose=function(t){var e=this.resource(),r=this._context;void 0!==r&&r._pushContext();var n=e!==h?this.doDispose(e,t):null;return void 0!==r&&r._popContext(),this._promise._unsetDisposable(),this._data=null,n},_.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},c(v,_),v.prototype.doDispose=function(t,e){return this.data().call(t,t,e)},m.prototype._resultCancelled=function(){for(var t=this.length,r=0;r0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new v(t,this,i());throw new u}}},{"./errors":12,"./util":36}],36:[function(t,n,i){"use strict";var o,s=t("./es5"),a="undefined"==typeof navigator,u={e:{}},c="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==r?r:void 0!==this?this:null;function l(){try{var t=o;return o=null,t.apply(this,arguments)}catch(t){return u.e=t,u}}function f(t){return null==t||!0===t||!1===t||"string"==typeof t||"number"==typeof t}function h(t,e,r){if(f(t))return t;var n={value:r,configurable:!0,enumerable:!1,writable:!0};return s.defineProperty(t,e,n),t}var p=function(){var t=[Array.prototype,Object.prototype,Function.prototype],e=function(e){for(var r=0;r1,n=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=d.test(t+"")&&s.names(t).length>0;if(r||n||i)return!0}return!1}catch(t){return!1}},isIdentifier:function(t){return _.test(t)},inheritedDataKeys:p,getDataPropertyOrDefault:function(t,e,r){if(!s.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var n=Object.getOwnPropertyDescriptor(t,e);return null!=n?null==n.get&&null==n.set?n.value:r:void 0},thrower:function(t){throw t},isArray:s.isArray,asArray:w,notEnumerableProp:h,isPrimitive:f,isObject:function(t){return"function"==typeof t||"object"==typeof t&&null!==t},isError:y,canEvaluate:a,errorObj:u,tryCatch:function(t){return o=t,l},inherits:function(t,e){var r={}.hasOwnProperty;function n(){for(var n in this.constructor=t,this.constructor$=e,e.prototype)r.call(e.prototype,n)&&"$"!==n.charAt(n.length-1)&&(this[n+"$"]=e.prototype[n])}return n.prototype=e.prototype,t.prototype=new n,t.prototype},withAppended:function(t,e){var r,n=t.length,i=new Array(n+1);for(r=0;r10||t[0]>0}(),j.isNode&&j.toFastProperties(e);try{throw new Error}catch(t){j.lastLineError=t}n.exports=j},{"./es5":13}]},{},[4])(4),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise)}).call(this,r(4),r(0),r(11).setImmediate)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){if(!e.eol&&t)for(var r=0,n=t.length;r0?("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===c.prototype||(e=function(t){return c.from(t)}(e)),n?s.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):w(t,s,e,!0):s.ended?t.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?w(t,s,e,!1):S(t,s)):w(t,s,e,!1))):n||(s.reading=!1)),function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=E?t=E:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function x(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(p("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(j,t):j(t))}function j(t){p("emit readable"),t.emit("readable"),P(t)}function S(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(k,t,e))}function k(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;return to.length?o.length:t;if(s===o.length?i+=o:i+=o.slice(0,t),0==(t-=s)){s===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(s));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=c.allocUnsafe(t),n=e.head,i=1;for(n.data.copy(r),t-=n.data.length;n=n.next;){var o=n.data,s=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,s),0==(t-=s)){s===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(s));break}++i}return e.length-=i,r}(t,e),n}(t,e.buffer,e.decoder),r);var r}function A(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,i.nextTick(F,e,t))}function F(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function L(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return p("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?A(this):x(this),null;if(0===(t=C(t,e))&&e.ended)return 0===e.length&&A(this),null;var n,i=e.needReadable;return p("need readable",i),(0===e.length||e.length-t0?O(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&A(this)),null!==n&&this.emit("data",n),n},g.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},g.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,p("pipe count=%d opts=%j",o.pipesCount,e);var u=e&&!1===e.end||t===n.stdout||t===n.stderr?m:c;function c(){p("onend"),t.end()}o.endEmitted?i.nextTick(u):r.once("end",u),t.on("unpipe",(function e(n,i){p("onunpipe"),n===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,p("cleanup"),t.removeListener("close",v),t.removeListener("finish",y),t.removeListener("drain",l),t.removeListener("error",_),t.removeListener("unpipe",e),r.removeListener("end",c),r.removeListener("end",m),r.removeListener("data",d),f=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||l())}));var l=function(t){return function(){var e=t._readableState;p("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,"data")&&(e.flowing=!0,P(t))}}(r);t.on("drain",l);var f=!1,h=!1;function d(e){p("ondata"),h=!1,!1!==t.write(e)||h||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==L(o.pipes,t))&&!f&&(p("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,h=!0),r.pause())}function _(e){p("onerror",e),m(),t.removeListener("error",_),0===a(t,"error")&&t.emit("error",e)}function v(){t.removeListener("finish",y),m()}function y(){p("onfinish"),t.removeListener("close",v),m()}function m(){p("unpipe"),r.unpipe(t)}return r.on("data",d),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?s(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",_),t.once("close",v),t.once("finish",y),t.emit("pipe",r),o.flowing||(p("pipe resume"),r.resume()),t},g.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function a(t){var e=this.lastTotal-this.lastNeed,r=function(t,e){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function c(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function l(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function f(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function p(t){return t&&t.length?this.write(t):""}e.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0?(i>0&&(t.lastNeed=i-1),i):--n=0?(i>0&&(t.lastNeed=i-2),i):--n=0?(i>0&&(2===i?i=0:t.lastNeed=i-3),i):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},function(t,e,r){"use strict";t.exports=o;var n=r(1),i=r(5);function o(t){if(!(this instanceof o))return new o(t);n.call(this,t),this._transformState={afterTransform:function(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length-1&&r.push(t[n]);return r},e.trimLeft=String.prototype.trimLeft?function(t){return t.trimLeft()}:function(t){return t.replace(/^\s+/,"")},e.trimRight=String.prototype.trimRight?function(t){return t.trimRight()}:function(t){return t.replace(/\s+$/,"")}}).call(this,r(3).Buffer)},function(t,e,r){"use strict";var n=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=function(t){function e(e,r,n){var i=t.call(this,"Error: "+e+". JSON Line number: "+r+(n?" near: "+n:""))||this;return i.err=e,i.line=r,i.extra=n,i.name="CSV Parse Error",i}return n(e,t),e.column_mismatched=function(t,r){return new e("column_mismatched",t,r)},e.unclosed_quote=function(t,r){return new e("unclosed_quote",t,r)},e.fromJSON=function(t){return new e(t.err,t.line,t.extra)},e.prototype.toJSON=function(){return{err:this.err,line:this.line,extra:this.extra}},e}(Error);e.default=i},function(t,e,r){var n=r(18),i=r(68),o=r(69),s=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":s&&s in Object(t)?i(t):o(t)}},function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},function(t,e,r){t.exports=r(33)},function(t,e,r){"use strict";var n=r(34),i=function(t,e){return new n.Converter(t,e)};i.csv=i,i.Converter=n.Converter,t.exports=i},function(t,e,r){"use strict";(function(t){var n=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o=r(36),s=r(50),a=r(51),u=i(r(15)),c=r(52),l=r(105),f=function(e){function i(r,n){void 0===n&&(n={});var i=e.call(this,n)||this;return i.options=n,i.params=s.mergeParams(r),i.runtime=a.initParseRuntime(i),i.result=new l.Result(i),i.processor=new c.ProcessorLocal(i),i.once("error",(function(e){t((function(){i.result.processError(e),i.emit("done",e)}))})),i.once("done",(function(){i.processor.destroy()})),i}return n(i,e),i.prototype.preRawData=function(t){return this.runtime.preRawDataHook=t,this},i.prototype.preFileLine=function(t){return this.runtime.preFileLineHook=t,this},i.prototype.subscribe=function(t,e,r){return this.parseRuntime.subscribe={onNext:t,onError:e,onCompleted:r},this},i.prototype.fromFile=function(t,e){var n=this,i=r(!function(){var t=new Error("Cannot find module 'fs'");throw t.code="MODULE_NOT_FOUND",t}());return i.exists(t,(function(r){r?i.createReadStream(t,e).pipe(n):n.emit("error",new Error("File does not exist. Check to make sure the file path to your csv is correct."))})),this},i.prototype.fromStream=function(t){return t.pipe(this),this},i.prototype.fromString=function(t){t.toString();var e=new o.Readable,r=0;return e._read=function(e){if(r>=t.length)this.push(null);else{var n=t.substr(r,e);this.push(n),r+=e}},this.fromStream(e)},i.prototype.then=function(t,e){var r=this;return new u.default((function(n,i){r.parseRuntime.then={onfulfilled:function(e){n(t?t(e):e)},onrejected:function(t){e?n(e(t)):i(t)}}}))},Object.defineProperty(i.prototype,"parseParam",{get:function(){return this.params},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"parseRuntime",{get:function(){return this.runtime},enumerable:!0,configurable:!0}),i.prototype._transform=function(t,e,r){var n=this;this.processor.process(t).then((function(t){if(t.length>0)return n.runtime.started=!0,n.result.processResult(t)})).then((function(){n.emit("drained"),r()}),(function(t){n.runtime.hasError=!0,n.runtime.error=t,n.emit("error",t),r()}))},i.prototype._flush=function(t){var e=this;this.processor.flush().then((function(t){if(t.length>0)return e.result.processResult(t)})).then((function(){e.processEnd(t)}),(function(r){e.emit("error",r),t()}))},i.prototype.processEnd=function(t){this.result.endProcess(),this.emit("done"),t()},Object.defineProperty(i.prototype,"parsedLineNumber",{get:function(){return this.runtime.parsedLineNumber},enumerable:!0,configurable:!0}),i}(o.Transform);e.Converter=f}).call(this,r(11).setImmediate)},function(t,e,r){(function(t,e){!function(t){"use strict";if(!t.setImmediate){var r,n=1,i={},o=!1,s=t.document,a=Object.getPrototypeOf&&Object.getPrototypeOf(t);a=a&&a.setTimeout?a:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){c(t)}))}:function(){if(t.postMessage&&!t.importScripts){var e=!0,r=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=r,e}}()?function(){var e="setImmediate$"+Math.random()+"$",n=function(r){r.source===t&&"string"==typeof r.data&&0===r.data.indexOf(e)&&c(+r.data.slice(e.length))};t.addEventListener?t.addEventListener("message",n,!1):t.attachEvent("onmessage",n),r=function(r){t.postMessage(e+r,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){c(t.data)},r=function(e){t.port2.postMessage(e)}}():s&&"onreadystatechange"in s.createElement("script")?function(){var t=s.documentElement;r=function(e){var r=s.createElement("script");r.onreadystatechange=function(){c(e),r.onreadystatechange=null,t.removeChild(r),r=null},t.appendChild(r)}}():r=function(t){setTimeout(c,0,t)},a.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),o=0;o0?n-4:n,f=0;f>16&255,a[c++]=e>>8&255,a[c++]=255&e;return 2===s&&(e=i[t.charCodeAt(f)]<<2|i[t.charCodeAt(f+1)]>>4,a[c++]=255&e),1===s&&(e=i[t.charCodeAt(f)]<<10|i[t.charCodeAt(f+1)]<<4|i[t.charCodeAt(f+2)]>>2,a[c++]=e>>8&255,a[c++]=255&e),a},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],s=0,a=r-i;sa?a:s+16383));return 1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0;a<64;++a)n[a]=s[a],i[s.charCodeAt(a)]=a;function u(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function c(t){return n[t>>18&63]+n[t>>12&63]+n[t>>6&63]+n[63&t]}function l(t,e,r){for(var n,i=[],o=e;o>1,l=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,o=p&(1<<-l)-1,p>>=-l,l+=a;l>0;o=256*o+t[e+f],f+=h,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+t[e+f],f+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,n),o-=c}return(p?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,d=n?1:-1,_=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=l):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+f>=1?h/u:h*Math.pow(2,1-f))*u>=2&&(s++,u/=2),s+f>=l?(a=0,s=l):s+f>=1?(a=(e*u-1)*Math.pow(2,i),s+=f):(a=e*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;t[r+p]=255&a,p+=d,a/=256,i-=8);for(s=s<0;t[r+p]=255&s,p+=d,s/=256,c-=8);t[r+p-d]|=128*_}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e){},function(t,e,r){"use strict";var n=r(7).Buffer,i=r(43);function o(t,e,r){t.copy(e,r)}t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var e=n.allocUnsafe(t>>>0),r=this.head,i=0;r;)o(r.data,e,i),i+=r.data.length,r=r.next;return e},t}(),i&&i.inspect&&i.inspect.custom&&(t.exports.prototype[i.inspect.custom]=function(){var t=i.inspect({length:this.length});return this.constructor.name+" "+t})},function(t,e){},function(t,e,r){(function(e){function r(t){try{if(!e.localStorage)return!1}catch(t){return!1}var r=e.localStorage[t];return null!=r&&"true"===String(r).toLowerCase()}t.exports=function(t,e){if(r("noDeprecation"))return t;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(e);r("traceDeprecation")?console.trace(e):console.warn(e),n=!0}return t.apply(this,arguments)}}}).call(this,r(0))},function(t,e,r){"use strict";t.exports=o;var n=r(27),i=r(5);function o(t){if(!(this instanceof o))return new o(t);n.call(this,t)}i.inherits=r(2),i.inherits(o,n),o.prototype._transform=function(t,e,r){r(null,t)}},function(t,e,r){t.exports=r(14)},function(t,e,r){t.exports=r(1)},function(t,e,r){t.exports=r(13).Transform},function(t,e,r){t.exports=r(13).PassThrough},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mergeParams=function(t){var e={delimiter:",",ignoreColumns:void 0,includeColumns:void 0,quote:'"',trim:!0,checkType:!1,ignoreEmpty:!1,noheader:!1,headers:void 0,flatKeys:!1,maxRowLength:0,checkColumn:!1,escape:'"',colParser:{},eol:void 0,alwaysSplitAtEOL:!1,output:"json",nullObject:!1,downstreamFormat:"line",needEmitAll:!0};for(var r in t||(t={}),t)t.hasOwnProperty(r)&&(Array.isArray(t[r])?e[r]=[].concat(t[r]):e[r]=t[r]);return e}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.initParseRuntime=function(t){var e=t.parseParam,r={needProcessIgnoreColumn:!1,needProcessIncludeColumn:!1,selectedColumns:void 0,ended:!1,hasError:!1,error:void 0,delimiter:t.parseParam.delimiter,eol:t.parseParam.eol,columnConv:[],headerType:[],headerTitle:[],headerFlag:[],headers:void 0,started:!1,parsedLineNumber:0,columnValueSetter:[]};return e.ignoreColumns&&(r.needProcessIgnoreColumn=!0),e.includeColumns&&(r.needProcessIncludeColumn=!0),r}},function(t,e,r){"use strict";(function(t){var n=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o=r(53),s=i(r(15)),a=r(54),u=i(r(16)),c=r(57),l=r(28),f=r(58),h=i(r(59)),p=i(r(29)),d=function(e){function r(){var t=null!==e&&e.apply(this,arguments)||this;return t.rowSplit=new f.RowSplit(t.converter),t.eolEmitted=!1,t._needEmitEol=void 0,t.headEmitted=!1,t._needEmitHead=void 0,t}return n(r,e),r.prototype.flush=function(){var t=this;if(this.runtime.csvLineBuffer&&this.runtime.csvLineBuffer.length>0){var e=this.runtime.csvLineBuffer;return this.runtime.csvLineBuffer=void 0,this.process(e,!0).then((function(e){return t.runtime.csvLineBuffer&&t.runtime.csvLineBuffer.length>0?s.default.reject(p.default.unclosed_quote(t.runtime.parsedLineNumber,t.runtime.csvLineBuffer.toString())):s.default.resolve(e)}))}return s.default.resolve([])},r.prototype.destroy=function(){return s.default.resolve()},Object.defineProperty(r.prototype,"needEmitEol",{get:function(){return void 0===this._needEmitEol&&(this._needEmitEol=this.converter.listeners("eol").length>0),this._needEmitEol},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"needEmitHead",{get:function(){return void 0===this._needEmitHead&&(this._needEmitHead=this.converter.listeners("header").length>0),this._needEmitHead},enumerable:!0,configurable:!0}),r.prototype.process=function(t,e){var r,n=this;return void 0===e&&(e=!1),r=e?t.toString():a.prepareData(t,this.converter.parseRuntime),s.default.resolve().then((function(){return n.runtime.preRawDataHook?n.runtime.preRawDataHook(r):r})).then((function(t){return t&&t.length>0?n.processCSV(t,e):s.default.resolve([])}))},r.prototype.processCSV=function(t,e){var r=this,n=this.params,i=this.runtime;i.eol||u.default(t,i),this.needEmitEol&&!this.eolEmitted&&i.eol&&(this.converter.emit("eol",i.eol),this.eolEmitted=!0),n.ignoreEmpty&&!i.started&&(t=l.trimLeft(t));var o=c.stringToLines(t,i);return e?(o.lines.push(o.partial),o.partial=""):this.prependLeftBuf(l.bufFromString(o.partial)),o.lines.length>0?(i.preFileLineHook?this.runPreLineHook(o.lines):s.default.resolve(o.lines)).then((function(t){return i.started||r.runtime.headers?r.processCSVBody(t):r.processDataWithHead(t)})):s.default.resolve([])},r.prototype.processDataWithHead=function(t){if(this.params.noheader)this.params.headers?this.runtime.headers=this.params.headers:this.runtime.headers=[];else{for(var e="",r=[];t.length;){var n=e+t.shift(),i=this.rowSplit.parse(n);if(i.closed){r=i.cells,e="";break}e=n+u.default(n,this.runtime)}if(this.prependLeftBuf(l.bufFromString(e)),0===r.length)return[];this.params.headers?this.runtime.headers=this.params.headers:this.runtime.headers=r}return(this.runtime.needProcessIgnoreColumn||this.runtime.needProcessIncludeColumn)&&this.filterHeader(),this.needEmitHead&&!this.headEmitted&&(this.converter.emit("header",this.runtime.headers),this.headEmitted=!0),this.processCSVBody(t)},r.prototype.filterHeader=function(){if(this.runtime.selectedColumns=[],this.runtime.headers){for(var t=this.runtime.headers,e=0;e=e.length)i();else if(r.preFileLineHook){var o=e[n],s=r.preFileLineHook(o,r.parsedLineNumber+n);if(n++,s&&s.then)s.then((function(o){e[n-1]=o,t(e,r,n,i)}));else{for(e[n-1]=s;n0?t.concat([r.csvLineBuffer,e]):e}(e,r);r.csvLineBuffer=void 0;var o=function(t,e){var r=t.length-1;if(128&t[r]){for(;128==(192&t[r]);)r--;r--}return r!=t.length-1?(e.csvLineBuffer=t.slice(r+1),t.slice(0,r+1)):t}(n,r).toString("utf8");return!1===r.started?i.default(o):o}}).call(this,r(3).Buffer)},function(t,e,r){"use strict";(function(e){var n=r(56);t.exports=function(t){return"string"==typeof t&&65279===t.charCodeAt(0)?t.slice(1):e.isBuffer(t)&&n(t)&&239===t[0]&&187===t[1]&&191===t[2]?t.slice(3):t}}).call(this,r(3).Buffer)},function(t,e){t.exports=function(t){for(var e=0;e0),this._needEmitDelimiter},enumerable:!0,configurable:!0}),t.prototype.parse=function(t){if(0===t.length||this.conv.parseParam.ignoreEmpty&&0===t.trim().length)return{cells:[],closed:!0};var e=this.quote,r=this.trim;this.escape,(this.conv.parseRuntime.delimiter instanceof Array||"auto"===this.conv.parseRuntime.delimiter.toLowerCase())&&(this.conv.parseRuntime.delimiter=this.getDelimiter(t)),this.needEmitDelimiter&&!this.delimiterEmitted&&(this.conv.emit("delimiter",this.conv.parseRuntime.delimiter),this.delimiterEmitted=!0);var n=this.conv.parseRuntime.delimiter,i=t.split(n);if("off"===e){if(r)for(var o=0;or&&(n=e,r=i)})),n},t.prototype.isQuoteOpen=function(t){var e=this.quote,r=this.escape;return t[0]===e&&(t[1]!==e||t[1]===r&&(t[2]===e||2===t.length))},t.prototype.isQuoteClose=function(t){var e=this.quote,r=this.escape;this.conv.parseParam.trim&&(t=o.trimRight(t));for(var n=0,i=t.length-1;t[i]===e||t[i]===r;)i--,n++;return n%2!=0},t.prototype.escapeQuote=function(t){var e="es|"+this.quote+"|"+this.escape;void 0===this.cachedRegExp[e]&&(this.cachedRegExp[e]=new RegExp("\\"+this.escape+"\\"+this.quote,"g"));var r=this.cachedRegExp[e];return t.replace(r,this.quote)},t.prototype.parseMultiLines=function(t){for(var e=[],r="";t.length;){var n=r+t.shift(),s=this.parse(n);0===s.cells.length&&this.conv.parseParam.ignoreEmpty||(s.closed||this.conv.parseParam.alwaysSplitAtEOL?(this.conv.parseRuntime.selectedColumns?e.push(o.filterArray(s.cells,this.conv.parseRuntime.selectedColumns)):e.push(s.cells),r=""):r=n+(i.default(n,this.conv.parseRuntime)||"\n"))}return{rowsCells:e,partial:r}},t}();e.RowSplit=a},function(t,e,r){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var i=n(r(29)),o=n(r(60)),s=/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/;function a(t,e,r){if(e.parseParam.checkColumn&&e.parseRuntime.headers&&t.length!==e.parseRuntime.headers.length)throw i.default.column_mismatched(e.parseRuntime.parsedLineNumber+r);return function(t,e,r){for(var n=!1,i={},o=0,s=t.length;o-1){for(var o=e.split("."),s=!0;o.length>0;)if(0===o.shift().length){s=!1;break}!s||n.parseParam.colParser[e]&&n.parseParam.colParser[e].flat?n.parseRuntime.columnValueSetter[i]=f:n.parseRuntime.columnValueSetter[i]=h}else n.parseRuntime.columnValueSetter[i]=f;!0===n.parseParam.nullObject&&"null"===r&&(r=null),n.parseRuntime.columnValueSetter[i](t,e,r)}function f(t,e,r){t[e]=r}function h(t,e,r){o.default(t,e,r)}function p(t,e,r,n){return n.parseRuntime.headerType[r]?n.parseRuntime.headerType[r]:e.indexOf("number#!")>-1?n.parseRuntime.headerType[r]=d:e.indexOf("string#!")>-1?n.parseRuntime.headerType[r]=_:n.parseParam.checkType?n.parseRuntime.headerType[r]=v:n.parseRuntime.headerType[r]=_}function d(t){var e=parseFloat(t);return isNaN(e)?t:e}function _(t){return t.toString()}function v(t){var e=t.trim();return""===e?_(t):s.test(e)?d(t):5===e.length&&"false"===e.toLowerCase()||4===e.length&&"true"===e.toLowerCase()?function(t){var e=t.trim();return 5!==e.length||"false"!==e.toLowerCase()}(t):"{"===e[0]&&"}"===e[e.length-1]||"["===e[0]&&"]"===e[e.length-1]?function(t){try{return JSON.parse(t)}catch(e){return t}}(t):_(t)}},function(t,e,r){var n=r(61);t.exports=function(t,e,r){return null==t?t:n(t,e,r)}},function(t,e,r){var n=r(62),i=r(74),o=r(103),s=r(20),a=r(104);t.exports=function(t,e,r,u){if(!s(t))return t;for(var c=-1,l=(e=i(e,t)).length,f=l-1,h=t;null!=h&&++c-1}},function(t,e,r){var n=r(9);t.exports=function(t,e){var r=this.__data__,i=n(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}},function(t,e,r){var n=r(17)(r(19),"Map");t.exports=n},function(t,e,r){var n=r(10);t.exports=function(t){var e=n(this,t).delete(t);return this.size-=e?1:0,e}},function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},function(t,e,r){var n=r(10);t.exports=function(t){return n(this,t).get(t)}},function(t,e,r){var n=r(10);t.exports=function(t){return n(this,t).has(t)}},function(t,e,r){var n=r(10);t.exports=function(t,e){var r=n(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this}},function(t,e,r){var n=r(101);t.exports=function(t){return null==t?"":n(t)}},function(t,e,r){var n=r(18),i=r(102),o=r(21),s=r(22),a=n?n.prototype:void 0,u=a?a.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(o(e))return i(e,t)+"";if(s(e))return u?u.call(e):"";var r=e+"";return"0"==r&&1/e==-1/0?"-0":r}},function(t,e){t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length,i=Array(n);++r-1&&t%1==0&&t0||this.converter.listeners("readable").length>0),this._needPushDownstream},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"needEmitAll",{get:function(){return!!this.converter.parseRuntime.then&&this.converter.parseParam.needEmitAll},enumerable:!0,configurable:!0}),t.prototype.processResult=function(t){var e=this,r=this.converter.parseRuntime.parsedLineNumber;return this.needPushDownstream&&"array"===this.converter.parseParam.downstreamFormat&&0===r&&a(this.converter,"["+o.EOL),new i.default((function(r,n){e.needEmitLine?function t(e,r,n,i,o){if(n>=e.length)o();else if(r.parseRuntime.subscribe&&r.parseRuntime.subscribe.onNext){var s=r.parseRuntime.subscribe.onNext,u=e[n],c=s(u,r.parseRuntime.parsedLineNumber+n);if(n++,c&&c.then)c.then((function(){!function(e,r,n,i,o,s,u){o&&a(n,u),t(e,n,i,o,s)}(e,0,r,n,i,o,u)}),o);else{for(i&&a(r,u);n - * @license MIT - */ diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2847.009c96ee.chunk.js.map --- a/x/static/js/2847.009c96ee.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2847.009c96ee.chunk.js","mappings":";sGAAAA,EAAOC,QAAQ,SAASC,GAAG,IAAIC,EAAE,CAAC,EAAE,SAASC,EAAEC,GAAG,GAAGF,EAAEE,GAAG,OAAOF,EAAEE,GAAGJ,QAAQ,IAAIK,EAAEH,EAAEE,GAAG,CAACC,EAAED,EAAEE,GAAE,EAAGN,QAAQ,CAAC,GAAG,OAAOC,EAAEG,GAAGG,KAAKF,EAAEL,QAAQK,EAAEA,EAAEL,QAAQG,GAAGE,EAAEC,GAAE,EAAGD,EAAEL,OAAO,CAAC,OAAOG,EAAEK,EAAEP,EAAEE,EAAEM,EAAEP,EAAEC,EAAEO,EAAE,SAAST,EAAEC,EAAEE,GAAGD,EAAEQ,EAAEV,EAAEC,IAAIU,OAAOC,eAAeZ,EAAEC,EAAE,CAACY,YAAW,EAAGC,IAAIX,GAAG,EAAED,EAAEA,EAAE,SAASF,GAAG,oBAAoBe,QAAQA,OAAOC,aAAaL,OAAOC,eAAeZ,EAAEe,OAAOC,YAAY,CAACC,MAAM,WAAWN,OAAOC,eAAeZ,EAAE,aAAa,CAACiB,OAAM,GAAI,EAAEf,EAAEF,EAAE,SAASA,EAAEC,GAAG,GAAG,EAAEA,IAAID,EAAEE,EAAEF,IAAI,EAAEC,EAAE,OAAOD,EAAE,GAAG,EAAEC,GAAG,iBAAiBD,GAAGA,GAAGA,EAAEkB,WAAW,OAAOlB,EAAE,IAAIG,EAAEQ,OAAOQ,OAAO,MAAM,GAAGjB,EAAEA,EAAEC,GAAGQ,OAAOC,eAAeT,EAAE,UAAU,CAACU,YAAW,EAAGI,MAAMjB,IAAI,EAAEC,GAAG,iBAAiBD,EAAE,IAAI,IAAII,KAAKJ,EAAEE,EAAEO,EAAEN,EAAEC,EAAE,SAASH,GAAG,OAAOD,EAAEC,EAAE,EAAEmB,KAAK,KAAKhB,IAAI,OAAOD,CAAC,EAAED,EAAEC,EAAE,SAASH,GAAG,IAAIC,EAAED,GAAGA,EAAEkB,WAAW,WAAW,OAAOlB,EAAEqB,OAAO,EAAE,WAAW,OAAOrB,CAAC,EAAE,OAAOE,EAAEO,EAAER,EAAE,IAAIA,GAAGA,CAAC,EAAEC,EAAEQ,EAAE,SAASV,EAAEC,GAAG,OAAOU,OAAOW,UAAUC,eAAejB,KAAKN,EAAEC,EAAE,EAAEC,EAAEsB,EAAE,GAAGtB,EAAEA,EAAEuB,EAAE,GAAG,CAAp5B,CAAs5B,CAAC,SAASzB,EAAEC,GAAG,IAAIC,EAAEA,EAAE,WAAW,OAAOwB,IAAI,CAAtB,GAA0B,IAAIxB,EAAEA,GAAGyB,SAAS,cAATA,KAA2B,EAAGC,MAAM,OAAO,CAAC,MAAM5B,GAAG,iBAAiB6B,SAAS3B,EAAE2B,OAAO,CAAC7B,EAAED,QAAQG,CAAC,EAAE,SAASF,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAED,EAAE,GAAGE,EAAEO,OAAOmB,MAAM,SAAS9B,GAAG,IAAIC,EAAE,GAAG,IAAI,IAAIC,KAAKF,EAAEC,EAAE8B,KAAK7B,GAAG,OAAOD,CAAC,EAAED,EAAED,QAAQiC,EAAE,IAAItB,EAAER,EAAE,GAAGQ,EAAEuB,SAAS/B,EAAE,GAAG,IAAIuB,EAAEvB,EAAE,IAAIgC,EAAEhC,EAAE,IAAIQ,EAAEuB,SAASD,EAAEP,GAAG,IAAI,IAAIU,EAAE/B,EAAE8B,EAAEZ,WAAWd,EAAE,EAAEA,EAAE2B,EAAEC,OAAO5B,IAAI,CAAC,IAAIH,EAAE8B,EAAE3B,GAAGwB,EAAEV,UAAUjB,KAAK2B,EAAEV,UAAUjB,GAAG6B,EAAEZ,UAAUjB,GAAG,CAAC,SAAS2B,EAAEhC,GAAG,KAAK0B,gBAAgBM,GAAG,OAAO,IAAIA,EAAEhC,GAAGyB,EAAEnB,KAAKoB,KAAK1B,GAAGkC,EAAE5B,KAAKoB,KAAK1B,GAAGA,IAAG,IAAKA,EAAEqC,WAAWX,KAAKW,UAAS,GAAIrC,IAAG,IAAKA,EAAEsC,WAAWZ,KAAKY,UAAS,GAAIZ,KAAKa,eAAc,EAAGvC,IAAG,IAAKA,EAAEuC,gBAAgBb,KAAKa,eAAc,GAAIb,KAAKc,KAAK,MAAMC,EAAE,CAAC,SAASA,IAAIf,KAAKa,eAAeb,KAAKgB,eAAeC,OAAOxC,EAAEyC,SAASpB,EAAEE,KAAK,CAAC,SAASF,EAAExB,GAAGA,EAAE6C,KAAK,CAAClC,OAAOC,eAAeoB,EAAEV,UAAU,wBAAwB,CAACT,YAAW,EAAGC,IAAI,WAAW,OAAOY,KAAKgB,eAAeI,aAAa,IAAInC,OAAOC,eAAeoB,EAAEV,UAAU,YAAY,CAACR,IAAI,WAAW,YAAO,IAASY,KAAKqB,qBAAgB,IAASrB,KAAKgB,gBAAgBhB,KAAKqB,eAAeC,WAAWtB,KAAKgB,eAAeM,SAAS,EAAEC,IAAI,SAASjD,QAAG,IAAS0B,KAAKqB,qBAAgB,IAASrB,KAAKgB,iBAAiBhB,KAAKqB,eAAeC,UAAUhD,EAAE0B,KAAKgB,eAAeM,UAAUhD,EAAE,IAAIgC,EAAEV,UAAU4B,SAAS,SAASlD,EAAEC,GAAGyB,KAAKK,KAAK,MAAML,KAAKmB,MAAM1C,EAAEyC,SAAS3C,EAAED,EAAE,CAAC,EAAE,SAASA,EAAEC,GAAG,mBAAmBU,OAAOQ,OAAOnB,EAAED,QAAQ,SAASC,EAAEC,GAAGD,EAAEmD,OAAOlD,EAAED,EAAEsB,UAAUX,OAAOQ,OAAOlB,EAAEqB,UAAU,CAAC8B,YAAY,CAACnC,MAAMjB,EAAEa,YAAW,EAAGyB,UAAS,EAAGe,cAAa,IAAK,EAAErD,EAAED,QAAQ,SAASC,EAAEC,GAAGD,EAAEmD,OAAOlD,EAAE,IAAIC,EAAE,WAAW,EAAEA,EAAEoB,UAAUrB,EAAEqB,UAAUtB,EAAEsB,UAAU,IAAIpB,EAAEF,EAAEsB,UAAU8B,YAAYpD,CAAC,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,cAAa,SAAUF,GAO3kF,IAAIG,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAER,EAAE,IAAI,SAASuB,IAAI,OAAOU,EAAEmB,oBAAoB,WAAW,UAAU,CAAC,SAASpB,EAAElC,EAAEC,GAAG,GAAGwB,IAAIxB,EAAE,MAAM,IAAIsD,WAAW,8BAA8B,OAAOpB,EAAEmB,qBAAqBtD,EAAE,IAAIwD,WAAWvD,IAAIwD,UAAUtB,EAAEb,WAAW,OAAOtB,IAAIA,EAAE,IAAImC,EAAElC,IAAID,EAAEoC,OAAOnC,GAAGD,CAAC,CAAC,SAASmC,EAAEnC,EAAEC,EAAEC,GAAG,KAAKiC,EAAEmB,qBAAqB5B,gBAAgBS,GAAG,OAAO,IAAIA,EAAEnC,EAAEC,EAAEC,GAAG,GAAG,iBAAiBF,EAAE,CAAC,GAAG,iBAAiBC,EAAE,MAAM,IAAIyD,MAAM,qEAAqE,OAAO1B,EAAEN,KAAK1B,EAAE,CAAC,OAAOQ,EAAEkB,KAAK1B,EAAEC,EAAEC,EAAE,CAAC,SAASM,EAAER,EAAEC,EAAEC,EAAEC,GAAG,GAAG,iBAAiBF,EAAE,MAAM,IAAI0D,UAAU,yCAAyC,MAAM,oBAAoBC,aAAa3D,aAAa2D,YAAY,SAAS5D,EAAEC,EAAEC,EAAEC,GAAG,GAAGF,EAAE4D,WAAW3D,EAAE,GAAGD,EAAE4D,WAAW3D,EAAE,MAAM,IAAIqD,WAAW,6BAA6B,GAAGtD,EAAE4D,WAAW3D,GAAGC,GAAG,GAAG,MAAM,IAAIoD,WAAW,6BAA6B,OAAOtD,OAAE,IAASC,QAAG,IAASC,EAAE,IAAIqD,WAAWvD,QAAG,IAASE,EAAE,IAAIqD,WAAWvD,EAAEC,GAAG,IAAIsD,WAAWvD,EAAEC,EAAEC,GAAGgC,EAAEmB,qBAAqBtD,EAAEC,GAAGwD,UAAUtB,EAAEb,UAAUtB,EAAEyC,EAAEzC,EAAEC,GAAGD,CAAC,CAAtV,CAAwVA,EAAEC,EAAEC,EAAEC,GAAG,iBAAiBF,EAAE,SAASD,EAAEC,EAAEC,GAAG,GAAG,iBAAiBA,GAAG,KAAKA,IAAIA,EAAE,SAASiC,EAAE2B,WAAW5D,GAAG,MAAM,IAAIyD,UAAU,8CAA8C,IAAIxD,EAAE,EAAEM,EAAER,EAAEC,GAAGE,GAAGJ,EAAEkC,EAAElC,EAAEG,IAAI4D,MAAM9D,EAAEC,GAAG,OAAOE,IAAID,IAAIH,EAAEA,EAAEgE,MAAM,EAAE5D,IAAIJ,CAAC,CAApN,CAAsNA,EAAEC,EAAEC,GAAG,SAASF,EAAEC,GAAG,GAAGkC,EAAE8B,SAAShE,GAAG,CAAC,IAAIC,EAAE,EAAEsB,EAAEvB,EAAEmC,QAAQ,OAAO,KAAKpC,EAAEkC,EAAElC,EAAEE,IAAIkC,QAAUnC,EAAEiE,KAAKlE,EAAE,EAAE,EAAEE,GAAhBF,CAAqB,CAAC,GAAGC,EAAE,CAAC,GAAG,oBAAoB2D,aAAa3D,EAAEkE,kBAAkBP,aAAa,WAAW3D,EAAE,MAAM,iBAAiBA,EAAEmC,QAAQ,SAASpC,GAAG,OAAOA,GAAGA,CAAC,CAAvB,CAAyBC,EAAEmC,QAAQF,EAAElC,EAAE,GAAGyC,EAAEzC,EAAEC,GAAG,GAAG,WAAWA,EAAEmE,MAAM1D,EAAET,EAAEoE,MAAM,OAAO5B,EAAEzC,EAAEC,EAAEoE,KAAK,CAAC,MAAM,IAAIV,UAAU,qFAAqF,CAA7a,CAA+a3D,EAAEC,EAAE,CAAC,SAASI,EAAEL,GAAG,GAAG,iBAAiBA,EAAE,MAAM,IAAI2D,UAAU,oCAAoC,GAAG3D,EAAE,EAAE,MAAM,IAAIuD,WAAW,uCAAuC,CAAC,SAASvB,EAAEhC,EAAEC,GAAG,GAAGI,EAAEJ,GAAGD,EAAEkC,EAAElC,EAAEC,EAAE,EAAE,EAAE,EAAEuB,EAAEvB,KAAKkC,EAAEmB,oBAAoB,IAAI,IAAIpD,EAAE,EAAEA,EAAED,IAAIC,EAAEF,EAAEE,GAAG,EAAE,OAAOF,CAAC,CAAC,SAASyC,EAAEzC,EAAEC,GAAG,IAAIC,EAAED,EAAEmC,OAAO,EAAE,EAAE,EAAEZ,EAAEvB,EAAEmC,QAAQpC,EAAEkC,EAAElC,EAAEE,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEC,GAAG,EAAEH,EAAEG,GAAG,IAAIF,EAAEE,GAAG,OAAOH,CAAC,CAAC,SAASwB,EAAExB,GAAG,GAAGA,GAAGyB,IAAI,MAAM,IAAI8B,WAAW,0DAA0D9B,IAAI6C,SAAS,IAAI,UAAU,OAAO,EAAEtE,CAAC,CAAC,SAASS,EAAET,EAAEC,GAAG,GAAGkC,EAAE8B,SAASjE,GAAG,OAAOA,EAAEoC,OAAO,GAAG,oBAAoBwB,aAAa,mBAAmBA,YAAYW,SAASX,YAAYW,OAAOvE,IAAIA,aAAa4D,aAAa,OAAO5D,EAAE6D,WAAW,iBAAiB7D,IAAIA,EAAE,GAAGA,GAAG,IAAIE,EAAEF,EAAEoC,OAAO,GAAG,IAAIlC,EAAE,OAAO,EAAE,IAAI,IAAIC,GAAE,IAAK,OAAOF,GAAG,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,OAAOC,EAAE,IAAI,OAAO,IAAI,QAAQ,UAAK,EAAO,OAAOsE,EAAExE,GAAGoC,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,OAAO,EAAElC,EAAE,IAAI,MAAM,OAAOA,IAAI,EAAE,IAAI,SAAS,OAAOuE,EAAEzE,GAAGoC,OAAO,QAAQ,GAAGjC,EAAE,OAAOqE,EAAExE,GAAGoC,OAAOnC,GAAG,GAAGA,GAAGyE,cAAcvE,GAAE,EAAG,CAAC,SAASwE,EAAE3E,EAAEC,EAAEC,GAAG,IAAIC,EAAEH,EAAEC,GAAGD,EAAEC,GAAGD,EAAEE,GAAGF,EAAEE,GAAGC,CAAC,CAAC,SAASyE,EAAE5E,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,GAAG,IAAIJ,EAAEoC,OAAO,OAAO,EAAE,GAAG,iBAAiBlC,GAAGC,EAAED,EAAEA,EAAE,GAAGA,EAAE,WAAWA,EAAE,WAAWA,GAAG,aAAaA,GAAG,YAAYA,GAAGA,EAAE2E,MAAM3E,KAAKA,EAAEE,EAAE,EAAEJ,EAAEoC,OAAO,GAAGlC,EAAE,IAAIA,EAAEF,EAAEoC,OAAOlC,GAAGA,GAAGF,EAAEoC,OAAO,CAAC,GAAGhC,EAAE,OAAO,EAAEF,EAAEF,EAAEoC,OAAO,CAAC,MAAM,GAAGlC,EAAE,EAAE,CAAC,IAAIE,EAAE,OAAO,EAAEF,EAAE,CAAC,CAAC,GAAG,iBAAiBD,IAAIA,EAAEkC,EAAE2C,KAAK7E,EAAEE,IAAIgC,EAAE8B,SAAShE,GAAG,OAAO,IAAIA,EAAEmC,QAAQ,EAAE2C,EAAE/E,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,GAAG,iBAAiBH,EAAE,OAAOA,GAAG,IAAIkC,EAAEmB,qBAAqB,mBAAmBE,WAAWlC,UAAU0D,QAAQ5E,EAAEoD,WAAWlC,UAAU0D,QAAQ1E,KAAKN,EAAEC,EAAEC,GAAGsD,WAAWlC,UAAU2D,YAAY3E,KAAKN,EAAEC,EAAEC,GAAG6E,EAAE/E,EAAE,CAACC,GAAGC,EAAEC,EAAEC,GAAG,MAAM,IAAIuD,UAAU,uCAAuC,CAAC,SAASoB,EAAE/E,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAIM,EAAEe,EAAE,EAAES,EAAElC,EAAEoC,OAAOD,EAAElC,EAAEmC,OAAO,QAAG,IAASjC,IAAI,UAAUA,EAAE+E,OAAO/E,GAAGuE,gBAAgB,UAAUvE,GAAG,YAAYA,GAAG,aAAaA,GAAG,CAAC,GAAGH,EAAEoC,OAAO,GAAGnC,EAAEmC,OAAO,EAAE,OAAO,EAAEX,EAAE,EAAES,GAAG,EAAEC,GAAG,EAAEjC,GAAG,CAAC,CAAC,SAASM,EAAER,EAAEC,GAAG,OAAO,IAAIwB,EAAEzB,EAAEC,GAAGD,EAAEmF,aAAalF,EAAEwB,EAAE,CAAC,GAAGrB,EAAE,CAAC,IAAIC,GAAG,EAAE,IAAIK,EAAER,EAAEQ,EAAEwB,EAAExB,IAAI,GAAGF,EAAER,EAAEU,KAAKF,EAAEP,GAAG,IAAII,EAAE,EAAEK,EAAEL,IAAI,IAAI,IAAIA,IAAIA,EAAEK,GAAGA,EAAEL,EAAE,IAAI8B,EAAE,OAAO9B,EAAEoB,OAAO,IAAIpB,IAAIK,GAAGA,EAAEL,GAAGA,GAAG,CAAC,MAAM,IAAIH,EAAEiC,EAAED,IAAIhC,EAAEgC,EAAEC,GAAGzB,EAAER,EAAEQ,GAAG,EAAEA,IAAI,CAAC,IAAI,IAAIsB,GAAE,EAAGS,EAAE,EAAEA,EAAEN,EAAEM,IAAI,GAAGjC,EAAER,EAAEU,EAAE+B,KAAKjC,EAAEP,EAAEwC,GAAG,CAACT,GAAE,EAAG,KAAK,CAAC,GAAGA,EAAE,OAAOtB,CAAC,CAAC,OAAO,CAAC,CAAC,SAASH,EAAEP,EAAEC,EAAEC,EAAEC,GAAGD,EAAEkF,OAAOlF,IAAI,EAAE,IAAIE,EAAEJ,EAAEoC,OAAOlC,EAAEC,GAAGA,EAAEiF,OAAOjF,IAAIC,IAAID,EAAEC,GAAGD,EAAEC,EAAE,IAAIM,EAAET,EAAEmC,OAAO,GAAG1B,EAAE,GAAG,EAAE,MAAM,IAAIiD,UAAU,sBAAsBxD,EAAEO,EAAE,IAAIP,EAAEO,EAAE,GAAG,IAAI,IAAIe,EAAE,EAAEA,EAAEtB,IAAIsB,EAAE,CAAC,IAAIS,EAAEmD,SAASpF,EAAEqF,OAAO,EAAE7D,EAAE,GAAG,IAAI,GAAGoD,MAAM3C,GAAG,OAAOT,EAAEzB,EAAEE,EAAEuB,GAAGS,CAAC,CAAC,OAAOT,CAAC,CAAC,SAAS8D,EAAEvF,EAAEC,EAAEC,EAAEC,GAAG,OAAOqF,EAAEhB,EAAEvE,EAAED,EAAEoC,OAAOlC,GAAGF,EAAEE,EAAEC,EAAE,CAAC,SAASsF,EAAEzF,EAAEC,EAAEC,EAAEC,GAAG,OAAOqF,EAAE,SAASxF,GAAG,IAAI,IAAIC,EAAE,GAAGC,EAAE,EAAEA,EAAEF,EAAEoC,SAASlC,EAAED,EAAE8B,KAAK,IAAI/B,EAAE0F,WAAWxF,IAAI,OAAOD,CAAC,CAAhF,CAAkFA,GAAGD,EAAEE,EAAEC,EAAE,CAAC,SAASwF,EAAE3F,EAAEC,EAAEC,EAAEC,GAAG,OAAOsF,EAAEzF,EAAEC,EAAEC,EAAEC,EAAE,CAAC,SAASyF,EAAE5F,EAAEC,EAAEC,EAAEC,GAAG,OAAOqF,EAAEf,EAAExE,GAAGD,EAAEE,EAAEC,EAAE,CAAC,SAAS0F,EAAE7F,EAAEC,EAAEC,EAAEC,GAAG,OAAOqF,EAAE,SAASxF,EAAEC,GAAG,IAAI,IAAIC,EAAEC,EAAEC,EAAEM,EAAE,GAAGe,EAAE,EAAEA,EAAEzB,EAAEoC,WAAWnC,GAAG,GAAG,KAAKwB,EAAEtB,GAAGD,EAAEF,EAAE0F,WAAWjE,KAAK,EAAErB,EAAEF,EAAE,IAAIQ,EAAEqB,KAAK3B,GAAGM,EAAEqB,KAAK5B,GAAG,OAAOO,CAAC,CAA9H,CAAgIT,EAAED,EAAEoC,OAAOlC,GAAGF,EAAEE,EAAEC,EAAE,CAAC,SAAS2F,EAAE9F,EAAEC,EAAEC,GAAG,OAAO,IAAID,GAAGC,IAAIF,EAAEoC,OAAOjC,EAAE4F,cAAc/F,GAAGG,EAAE4F,cAAc/F,EAAEgE,MAAM/D,EAAEC,GAAG,CAAC,SAAS8F,EAAEhG,EAAEC,EAAEC,GAAGA,EAAE+F,KAAKC,IAAIlG,EAAEoC,OAAOlC,GAAG,IAAI,IAAIC,EAAE,GAAGC,EAAEH,EAAEG,EAAEF,GAAG,CAAC,IAAIQ,EAAEe,EAAES,EAAEC,EAAE3B,EAAER,EAAEI,GAAGC,EAAE,KAAK2B,EAAExB,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,EAAE,GAAGJ,EAAE4B,GAAG9B,EAAE,OAAO8B,GAAG,KAAK,EAAExB,EAAE,MAAMH,EAAEG,GAAG,MAAM,KAAK,EAAE,MAAM,KAAKE,EAAEV,EAAEI,EAAE,OAAO+B,GAAG,GAAG3B,IAAI,EAAE,GAAGE,GAAG,MAAML,EAAE8B,GAAG,MAAM,KAAK,EAAEzB,EAAEV,EAAEI,EAAE,GAAGqB,EAAEzB,EAAEI,EAAE,GAAG,MAAM,IAAIM,IAAI,MAAM,IAAIe,KAAKU,GAAG,GAAG3B,IAAI,IAAI,GAAGE,IAAI,EAAE,GAAGe,GAAG,OAAOU,EAAE,OAAOA,EAAE,SAAS9B,EAAE8B,GAAG,MAAM,KAAK,EAAEzB,EAAEV,EAAEI,EAAE,GAAGqB,EAAEzB,EAAEI,EAAE,GAAG8B,EAAElC,EAAEI,EAAE,GAAG,MAAM,IAAIM,IAAI,MAAM,IAAIe,IAAI,MAAM,IAAIS,KAAKC,GAAG,GAAG3B,IAAI,IAAI,GAAGE,IAAI,IAAI,GAAGe,IAAI,EAAE,GAAGS,GAAG,OAAOC,EAAE,UAAU9B,EAAE8B,GAAG,OAAO9B,GAAGA,EAAE,MAAM2B,EAAE,GAAG3B,EAAE,QAAQA,GAAG,MAAMF,EAAE4B,KAAK1B,IAAI,GAAG,KAAK,OAAOA,EAAE,MAAM,KAAKA,GAAGF,EAAE4B,KAAK1B,GAAGD,GAAG4B,CAAC,CAAC,OAAO,SAAShC,GAAG,IAAIC,EAAED,EAAEoC,OAAO,GAAGnC,GAAGkG,EAAE,OAAOjB,OAAOkB,aAAaC,MAAMnB,OAAOlF,GAAG,IAAI,IAAIE,EAAE,GAAGC,EAAE,EAAEA,EAAEF,GAAGC,GAAGgF,OAAOkB,aAAaC,MAAMnB,OAAOlF,EAAEgE,MAAM7D,EAAEA,GAAGgG,IAAI,OAAOjG,CAAC,CAAjK,CAAmKC,EAAE,CAACF,EAAEqG,OAAOnE,EAAElC,EAAEsG,WAAW,SAASvG,GAAG,OAAOA,GAAGA,IAAIA,EAAE,GAAGmC,EAAEqE,OAAOxG,EAAE,EAAEC,EAAEwG,kBAAkB,GAAGtE,EAAEmB,yBAAoB,IAAStD,EAAEsD,oBAAoBtD,EAAEsD,oBAAoB,WAAW,IAAI,IAAItD,EAAE,IAAIwD,WAAW,GAAG,OAAOxD,EAAEyD,UAAU,CAACA,UAAUD,WAAWlC,UAAUoF,IAAI,WAAW,OAAO,EAAE,GAAG,KAAK1G,EAAE0G,OAAO,mBAAmB1G,EAAE2G,UAAU,IAAI3G,EAAE2G,SAAS,EAAE,GAAG9C,UAAU,CAAC,MAAM7D,GAAG,OAAM,CAAE,CAAC,CAAnN,GAAuNC,EAAE2G,WAAWnF,IAAIU,EAAE0E,SAAS,KAAK1E,EAAE2E,SAAS,SAAS9G,GAAG,OAAOA,EAAEyD,UAAUtB,EAAEb,UAAUtB,CAAC,EAAEmC,EAAE2C,KAAK,SAAS9E,EAAEC,EAAEC,GAAG,OAAOM,EAAE,KAAKR,EAAEC,EAAEC,EAAE,EAAEiC,EAAEmB,sBAAsBnB,EAAEb,UAAUmC,UAAUD,WAAWlC,UAAUa,EAAEsB,UAAUD,WAAW,oBAAoBzC,QAAQA,OAAOgG,SAAS5E,EAAEpB,OAAOgG,WAAW5E,GAAGxB,OAAOC,eAAeuB,EAAEpB,OAAOgG,QAAQ,CAAC9F,MAAM,KAAKoC,cAAa,KAAMlB,EAAEqE,MAAM,SAASxG,EAAEC,EAAEC,GAAG,OAAO,SAASF,EAAEC,EAAEC,EAAEC,GAAG,OAAOE,EAAEJ,GAAGA,GAAG,EAAEiC,EAAElC,EAAEC,QAAG,IAASC,EAAE,iBAAiBC,EAAE+B,EAAElC,EAAEC,GAAG+G,KAAK9G,EAAEC,GAAG+B,EAAElC,EAAEC,GAAG+G,KAAK9G,GAAGgC,EAAElC,EAAEC,EAAE,CAA9G,CAAgH,KAAKD,EAAEC,EAAEC,EAAE,EAAEiC,EAAE8E,YAAY,SAASjH,GAAG,OAAOgC,EAAE,KAAKhC,EAAE,EAAEmC,EAAE+E,gBAAgB,SAASlH,GAAG,OAAOgC,EAAE,KAAKhC,EAAE,EAAEmC,EAAE8B,SAAS,SAASjE,GAAG,QAAQ,MAAMA,IAAIA,EAAEmH,UAAU,EAAEhF,EAAEiF,QAAQ,SAASpH,EAAEC,GAAG,IAAIkC,EAAE8B,SAASjE,KAAKmC,EAAE8B,SAAShE,GAAG,MAAM,IAAI0D,UAAU,6BAA6B,GAAG3D,IAAIC,EAAE,OAAO,EAAE,IAAI,IAAIC,EAAEF,EAAEoC,OAAOjC,EAAEF,EAAEmC,OAAOhC,EAAE,EAAEM,EAAEuF,KAAKC,IAAIhG,EAAEC,GAAGC,EAAEM,IAAIN,EAAE,GAAGJ,EAAEI,KAAKH,EAAEG,GAAG,CAACF,EAAEF,EAAEI,GAAGD,EAAEF,EAAEG,GAAG,KAAK,CAAC,OAAOF,EAAEC,GAAG,EAAEA,EAAED,EAAE,EAAE,CAAC,EAAEiC,EAAE2B,WAAW,SAAS9D,GAAG,OAAOkF,OAAOlF,GAAG0E,eAAe,IAAI,MAAM,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,OAAM,EAAG,QAAQ,OAAM,EAAG,EAAEvC,EAAEkF,OAAO,SAASrH,EAAEC,GAAG,IAAIS,EAAEV,GAAG,MAAM,IAAI2D,UAAU,+CAA+C,GAAG,IAAI3D,EAAEoC,OAAO,OAAOD,EAAEqE,MAAM,GAAG,IAAItG,EAAE,QAAG,IAASD,EAAE,IAAIA,EAAE,EAAEC,EAAE,EAAEA,EAAEF,EAAEoC,SAASlC,EAAED,GAAGD,EAAEE,GAAGkC,OAAO,IAAIjC,EAAEgC,EAAE8E,YAAYhH,GAAGG,EAAE,EAAE,IAAIF,EAAE,EAAEA,EAAEF,EAAEoC,SAASlC,EAAE,CAAC,IAAIuB,EAAEzB,EAAEE,GAAG,IAAIiC,EAAE8B,SAASxC,GAAG,MAAM,IAAIkC,UAAU,+CAA+ClC,EAAEyC,KAAK/D,EAAEC,GAAGA,GAAGqB,EAAEW,MAAM,CAAC,OAAOjC,CAAC,EAAEgC,EAAE0B,WAAWpD,EAAE0B,EAAEb,UAAU6F,WAAU,EAAGhF,EAAEb,UAAUgG,OAAO,WAAW,IAAItH,EAAE0B,KAAKU,OAAO,GAAGpC,EAAE,GAAG,EAAE,MAAM,IAAIuD,WAAW,6CAA6C,IAAI,IAAItD,EAAE,EAAEA,EAAED,EAAEC,GAAG,EAAE0E,EAAEjD,KAAKzB,EAAEA,EAAE,GAAG,OAAOyB,IAAI,EAAES,EAAEb,UAAUiG,OAAO,WAAW,IAAIvH,EAAE0B,KAAKU,OAAO,GAAGpC,EAAE,GAAG,EAAE,MAAM,IAAIuD,WAAW,6CAA6C,IAAI,IAAItD,EAAE,EAAEA,EAAED,EAAEC,GAAG,EAAE0E,EAAEjD,KAAKzB,EAAEA,EAAE,GAAG0E,EAAEjD,KAAKzB,EAAE,EAAEA,EAAE,GAAG,OAAOyB,IAAI,EAAES,EAAEb,UAAUkG,OAAO,WAAW,IAAIxH,EAAE0B,KAAKU,OAAO,GAAGpC,EAAE,GAAG,EAAE,MAAM,IAAIuD,WAAW,6CAA6C,IAAI,IAAItD,EAAE,EAAEA,EAAED,EAAEC,GAAG,EAAE0E,EAAEjD,KAAKzB,EAAEA,EAAE,GAAG0E,EAAEjD,KAAKzB,EAAE,EAAEA,EAAE,GAAG0E,EAAEjD,KAAKzB,EAAE,EAAEA,EAAE,GAAG0E,EAAEjD,KAAKzB,EAAE,EAAEA,EAAE,GAAG,OAAOyB,IAAI,EAAES,EAAEb,UAAUgD,SAAS,WAAW,IAAItE,EAAE,EAAE0B,KAAKU,OAAO,OAAO,IAAIpC,EAAE,GAAG,IAAIyH,UAAUrF,OAAO4D,EAAEtE,KAAK,EAAE1B,GAAG,SAASA,EAAEC,EAAEC,GAAG,IAAIC,GAAE,EAAG,SAAI,IAASF,GAAGA,EAAE,KAAKA,EAAE,GAAGA,EAAEyB,KAAKU,OAAO,MAAM,GAAG,SAAI,IAASlC,GAAGA,EAAEwB,KAAKU,UAAUlC,EAAEwB,KAAKU,QAAQlC,GAAG,EAAE,MAAM,GAAG,IAAIA,KAAK,KAAKD,KAAK,GAAG,MAAM,GAAG,IAAID,IAAIA,EAAE,UAAU,OAAOA,GAAG,IAAI,MAAM,OAAO0H,EAAEhG,KAAKzB,EAAEC,GAAG,IAAI,OAAO,IAAI,QAAQ,OAAO8F,EAAEtE,KAAKzB,EAAEC,GAAG,IAAI,QAAQ,OAAOyH,EAAEjG,KAAKzB,EAAEC,GAAG,IAAI,SAAS,IAAI,SAAS,OAAO0H,EAAElG,KAAKzB,EAAEC,GAAG,IAAI,SAAS,OAAO4F,EAAEpE,KAAKzB,EAAEC,GAAG,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,OAAO2H,EAAEnG,KAAKzB,EAAEC,GAAG,QAAQ,GAAGC,EAAE,MAAM,IAAIwD,UAAU,qBAAqB3D,GAAGA,GAAGA,EAAE,IAAI0E,cAAcvE,GAAE,EAAG,EAAEkG,MAAM3E,KAAK+F,UAAU,EAAEtF,EAAEb,UAAUwG,OAAO,SAAS9H,GAAG,IAAImC,EAAE8B,SAASjE,GAAG,MAAM,IAAI2D,UAAU,6BAA6B,OAAOjC,OAAO1B,GAAG,IAAImC,EAAEiF,QAAQ1F,KAAK1B,EAAE,EAAEmC,EAAEb,UAAUyG,QAAQ,WAAW,IAAI/H,EAAE,GAAGE,EAAED,EAAEwG,kBAAkB,OAAO/E,KAAKU,OAAO,IAAIpC,EAAE0B,KAAK4C,SAAS,MAAM,EAAEpE,GAAG8H,MAAM,SAASC,KAAK,KAAKvG,KAAKU,OAAOlC,IAAIF,GAAG,UAAU,WAAWA,EAAE,GAAG,EAAEmC,EAAEb,UAAU8F,QAAQ,SAASpH,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAI+B,EAAE8B,SAASjE,GAAG,MAAM,IAAI2D,UAAU,6BAA6B,QAAG,IAAS1D,IAAIA,EAAE,QAAG,IAASC,IAAIA,EAAEF,EAAEA,EAAEoC,OAAO,QAAG,IAASjC,IAAIA,EAAE,QAAG,IAASC,IAAIA,EAAEsB,KAAKU,QAAQnC,EAAE,GAAGC,EAAEF,EAAEoC,QAAQjC,EAAE,GAAGC,EAAEsB,KAAKU,OAAO,MAAM,IAAImB,WAAW,sBAAsB,GAAGpD,GAAGC,GAAGH,GAAGC,EAAE,OAAO,EAAE,GAAGC,GAAGC,EAAE,OAAO,EAAE,GAAGH,GAAGC,EAAE,OAAO,EAAE,GAA+BwB,OAAO1B,EAAE,OAAO,EAAE,IAAI,IAAIU,GAAjCN,KAAK,IAAZD,KAAK,GAAyCsB,GAArDvB,KAAK,IAAZD,KAAK,GAA6DiC,EAAE+D,KAAKC,IAAIxF,EAAEe,GAAGjB,EAAEkB,KAAKsC,MAAM7D,EAAEC,GAAGC,EAAEL,EAAEgE,MAAM/D,EAAEC,GAAG8B,EAAE,EAAEA,EAAEE,IAAIF,EAAE,GAAGxB,EAAEwB,KAAK3B,EAAE2B,GAAG,CAACtB,EAAEF,EAAEwB,GAAGP,EAAEpB,EAAE2B,GAAG,KAAK,CAAC,OAAOtB,EAAEe,GAAG,EAAEA,EAAEf,EAAE,EAAE,CAAC,EAAEyB,EAAEb,UAAU4G,SAAS,SAASlI,EAAEC,EAAEC,GAAG,OAAO,IAAIwB,KAAKsD,QAAQhF,EAAEC,EAAEC,EAAE,EAAEiC,EAAEb,UAAU0D,QAAQ,SAAShF,EAAEC,EAAEC,GAAG,OAAO0E,EAAElD,KAAK1B,EAAEC,EAAEC,GAAE,EAAG,EAAEiC,EAAEb,UAAU2D,YAAY,SAASjF,EAAEC,EAAEC,GAAG,OAAO0E,EAAElD,KAAK1B,EAAEC,EAAEC,GAAE,EAAG,EAAEiC,EAAEb,UAAUyC,MAAM,SAAS/D,EAAEC,EAAEC,EAAEC,GAAG,QAAG,IAASF,EAAEE,EAAE,OAAOD,EAAEwB,KAAKU,OAAOnC,EAAE,OAAO,QAAG,IAASC,GAAG,iBAAiBD,EAAEE,EAAEF,EAAEC,EAAEwB,KAAKU,OAAOnC,EAAE,MAAM,CAAC,IAAIkI,SAASlI,GAAG,MAAM,IAAIyD,MAAM,2EAA2EzD,GAAG,EAAEkI,SAASjI,IAAIA,GAAG,OAAE,IAASC,IAAIA,EAAE,UAAUA,EAAED,EAAEA,OAAE,EAAO,CAAC,IAAIE,EAAEsB,KAAKU,OAAOnC,EAAE,SAAI,IAASC,GAAGA,EAAEE,KAAKF,EAAEE,GAAGJ,EAAEoC,OAAO,IAAIlC,EAAE,GAAGD,EAAE,IAAIA,EAAEyB,KAAKU,OAAO,MAAM,IAAImB,WAAW,0CAA0CpD,IAAIA,EAAE,QAAQ,IAAI,IAAIO,GAAE,IAAK,OAAOP,GAAG,IAAI,MAAM,OAAOI,EAAEmB,KAAK1B,EAAEC,EAAEC,GAAG,IAAI,OAAO,IAAI,QAAQ,OAAOqF,EAAE7D,KAAK1B,EAAEC,EAAEC,GAAG,IAAI,QAAQ,OAAOuF,EAAE/D,KAAK1B,EAAEC,EAAEC,GAAG,IAAI,SAAS,IAAI,SAAS,OAAOyF,EAAEjE,KAAK1B,EAAEC,EAAEC,GAAG,IAAI,SAAS,OAAO0F,EAAElE,KAAK1B,EAAEC,EAAEC,GAAG,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,OAAO2F,EAAEnE,KAAK1B,EAAEC,EAAEC,GAAG,QAAQ,GAAGQ,EAAE,MAAM,IAAIiD,UAAU,qBAAqBxD,GAAGA,GAAG,GAAGA,GAAGuE,cAAchE,GAAE,EAAG,EAAEyB,EAAEb,UAAU8G,OAAO,WAAW,MAAM,CAAChE,KAAK,SAASC,KAAKgE,MAAM/G,UAAU0C,MAAM1D,KAAKoB,KAAK4G,MAAM5G,KAAK,GAAG,EAAE,IAAIyE,EAAE,KAAK,SAASwB,EAAE3H,EAAEC,EAAEC,GAAG,IAAIC,EAAE,GAAGD,EAAE+F,KAAKC,IAAIlG,EAAEoC,OAAOlC,GAAG,IAAI,IAAIE,EAAEH,EAAEG,EAAEF,IAAIE,EAAED,GAAG+E,OAAOkB,aAAa,IAAIpG,EAAEI,IAAI,OAAOD,CAAC,CAAC,SAASyH,EAAE5H,EAAEC,EAAEC,GAAG,IAAIC,EAAE,GAAGD,EAAE+F,KAAKC,IAAIlG,EAAEoC,OAAOlC,GAAG,IAAI,IAAIE,EAAEH,EAAEG,EAAEF,IAAIE,EAAED,GAAG+E,OAAOkB,aAAapG,EAAEI,IAAI,OAAOD,CAAC,CAAC,SAASuH,EAAE1H,EAAEC,EAAEC,GAAG,IAAIC,EAAEH,EAAEoC,SAASnC,GAAGA,EAAE,KAAKA,EAAE,KAAKC,GAAGA,EAAE,GAAGA,EAAEC,KAAKD,EAAEC,GAAG,IAAI,IAAIC,EAAE,GAAGM,EAAET,EAAES,EAAER,IAAIQ,EAAEN,GAAGmI,EAAEvI,EAAEU,IAAI,OAAON,CAAC,CAAC,SAASyH,EAAE7H,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAEH,EAAEgE,MAAM/D,EAAEC,GAAGE,EAAE,GAAGM,EAAE,EAAEA,EAAEP,EAAEiC,OAAO1B,GAAG,EAAEN,GAAG8E,OAAOkB,aAAajG,EAAEO,GAAG,IAAIP,EAAEO,EAAE,IAAI,OAAON,CAAC,CAAC,SAASoI,EAAExI,EAAEC,EAAEC,GAAG,GAAGF,EAAE,GAAG,GAAGA,EAAE,EAAE,MAAM,IAAIuD,WAAW,sBAAsB,GAAGvD,EAAEC,EAAEC,EAAE,MAAM,IAAIqD,WAAW,wCAAwC,CAAC,SAASkF,EAAEzI,EAAEC,EAAEC,EAAEC,EAAEC,EAAEM,GAAG,IAAIyB,EAAE8B,SAASjE,GAAG,MAAM,IAAI2D,UAAU,+CAA+C,GAAG1D,EAAEG,GAAGH,EAAES,EAAE,MAAM,IAAI6C,WAAW,qCAAqC,GAAGrD,EAAEC,EAAEH,EAAEoC,OAAO,MAAM,IAAImB,WAAW,qBAAqB,CAAC,SAASmF,EAAE1I,EAAEC,EAAEC,EAAEC,GAAGF,EAAE,IAAIA,EAAE,MAAMA,EAAE,GAAG,IAAI,IAAIG,EAAE,EAAEM,EAAEuF,KAAKC,IAAIlG,EAAEoC,OAAOlC,EAAE,GAAGE,EAAEM,IAAIN,EAAEJ,EAAEE,EAAEE,IAAIH,EAAE,KAAK,GAAGE,EAAEC,EAAE,EAAEA,MAAM,GAAGD,EAAEC,EAAE,EAAEA,EAAE,CAAC,SAASuI,EAAE3I,EAAEC,EAAEC,EAAEC,GAAGF,EAAE,IAAIA,EAAE,WAAWA,EAAE,GAAG,IAAI,IAAIG,EAAE,EAAEM,EAAEuF,KAAKC,IAAIlG,EAAEoC,OAAOlC,EAAE,GAAGE,EAAEM,IAAIN,EAAEJ,EAAEE,EAAEE,GAAGH,IAAI,GAAGE,EAAEC,EAAE,EAAEA,GAAG,GAAG,CAAC,SAASwI,EAAE5I,EAAEC,EAAEC,EAAEC,EAAEC,EAAEM,GAAG,GAAGR,EAAEC,EAAEH,EAAEoC,OAAO,MAAM,IAAImB,WAAW,sBAAsB,GAAGrD,EAAE,EAAE,MAAM,IAAIqD,WAAW,qBAAqB,CAAC,SAASsF,EAAE7I,EAAEC,EAAEC,EAAEC,EAAEO,GAAG,OAAOA,GAAGkI,EAAE5I,EAAE,EAAEE,EAAE,GAAGE,EAAE2D,MAAM/D,EAAEC,EAAEC,EAAEC,EAAE,GAAG,GAAGD,EAAE,CAAC,CAAC,SAAS4I,EAAE9I,EAAEC,EAAEC,EAAEC,EAAEO,GAAG,OAAOA,GAAGkI,EAAE5I,EAAE,EAAEE,EAAE,GAAGE,EAAE2D,MAAM/D,EAAEC,EAAEC,EAAEC,EAAE,GAAG,GAAGD,EAAE,CAAC,CAACiC,EAAEb,UAAU0C,MAAM,SAAShE,EAAEC,GAAG,IAAIC,EAAEC,EAAEuB,KAAKU,OAAO,IAAGpC,IAAIA,GAAuB,GAAGA,GAAGG,GAAG,IAAIH,EAAE,GAAGA,EAAEG,IAAIH,EAAEG,IAA/CF,OAAE,IAASA,EAAEE,IAAIF,GAAmC,GAAGA,GAAGE,GAAG,IAAIF,EAAE,GAAGA,EAAEE,IAAIF,EAAEE,GAAGF,EAAED,IAAIC,EAAED,GAAGmC,EAAEmB,qBAAqBpD,EAAEwB,KAAKiF,SAAS3G,EAAEC,IAAIwD,UAAUtB,EAAEb,cAAc,CAAC,IAAIlB,EAAEH,EAAED,EAAEE,EAAE,IAAIiC,EAAE/B,OAAE,GAAQ,IAAI,IAAIM,EAAE,EAAEA,EAAEN,IAAIM,EAAER,EAAEQ,GAAGgB,KAAKhB,EAAEV,EAAE,CAAC,OAAOE,CAAC,EAAEiC,EAAEb,UAAUyH,WAAW,SAAS/I,EAAEC,EAAEC,GAAGF,GAAG,EAAEC,GAAG,EAAEC,GAAGsI,EAAExI,EAAEC,EAAEyB,KAAKU,QAAQ,IAAI,IAAIjC,EAAEuB,KAAK1B,GAAGI,EAAE,EAAEM,EAAE,IAAIA,EAAET,IAAIG,GAAG,MAAMD,GAAGuB,KAAK1B,EAAEU,GAAGN,EAAE,OAAOD,CAAC,EAAEgC,EAAEb,UAAU0H,WAAW,SAAShJ,EAAEC,EAAEC,GAAGF,GAAG,EAAEC,GAAG,EAAEC,GAAGsI,EAAExI,EAAEC,EAAEyB,KAAKU,QAAQ,IAAI,IAAIjC,EAAEuB,KAAK1B,IAAIC,GAAGG,EAAE,EAAEH,EAAE,IAAIG,GAAG,MAAMD,GAAGuB,KAAK1B,IAAIC,GAAGG,EAAE,OAAOD,CAAC,EAAEgC,EAAEb,UAAU2H,UAAU,SAASjJ,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQV,KAAK1B,EAAE,EAAEmC,EAAEb,UAAU4H,aAAa,SAASlJ,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQV,KAAK1B,GAAG0B,KAAK1B,EAAE,IAAI,CAAC,EAAEmC,EAAEb,UAAU6D,aAAa,SAASnF,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQV,KAAK1B,IAAI,EAAE0B,KAAK1B,EAAE,EAAE,EAAEmC,EAAEb,UAAU6H,aAAa,SAASnJ,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,SAASV,KAAK1B,GAAG0B,KAAK1B,EAAE,IAAI,EAAE0B,KAAK1B,EAAE,IAAI,IAAI,SAAS0B,KAAK1B,EAAE,EAAE,EAAEmC,EAAEb,UAAU8H,aAAa,SAASpJ,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQ,SAASV,KAAK1B,IAAI0B,KAAK1B,EAAE,IAAI,GAAG0B,KAAK1B,EAAE,IAAI,EAAE0B,KAAK1B,EAAE,GAAG,EAAEmC,EAAEb,UAAU+H,UAAU,SAASrJ,EAAEC,EAAEC,GAAGF,GAAG,EAAEC,GAAG,EAAEC,GAAGsI,EAAExI,EAAEC,EAAEyB,KAAKU,QAAQ,IAAI,IAAIjC,EAAEuB,KAAK1B,GAAGI,EAAE,EAAEM,EAAE,IAAIA,EAAET,IAAIG,GAAG,MAAMD,GAAGuB,KAAK1B,EAAEU,GAAGN,EAAE,OAAOD,IAAIC,GAAG,OAAOD,GAAG8F,KAAKqD,IAAI,EAAE,EAAErJ,IAAIE,CAAC,EAAEgC,EAAEb,UAAUiI,UAAU,SAASvJ,EAAEC,EAAEC,GAAGF,GAAG,EAAEC,GAAG,EAAEC,GAAGsI,EAAExI,EAAEC,EAAEyB,KAAKU,QAAQ,IAAI,IAAIjC,EAAEF,EAAEG,EAAE,EAAEM,EAAEgB,KAAK1B,IAAIG,GAAGA,EAAE,IAAIC,GAAG,MAAMM,GAAGgB,KAAK1B,IAAIG,GAAGC,EAAE,OAAOM,IAAIN,GAAG,OAAOM,GAAGuF,KAAKqD,IAAI,EAAE,EAAErJ,IAAIS,CAAC,EAAEyB,EAAEb,UAAUkI,SAAS,SAASxJ,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQ,IAAIV,KAAK1B,IAAI,GAAG,IAAI0B,KAAK1B,GAAG,GAAG0B,KAAK1B,EAAE,EAAEmC,EAAEb,UAAUmI,YAAY,SAASzJ,EAAEC,GAAGA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQ,IAAIlC,EAAEwB,KAAK1B,GAAG0B,KAAK1B,EAAE,IAAI,EAAE,OAAO,MAAME,EAAE,WAAWA,EAAEA,CAAC,EAAEiC,EAAEb,UAAUoI,YAAY,SAAS1J,EAAEC,GAAGA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQ,IAAIlC,EAAEwB,KAAK1B,EAAE,GAAG0B,KAAK1B,IAAI,EAAE,OAAO,MAAME,EAAE,WAAWA,EAAEA,CAAC,EAAEiC,EAAEb,UAAUqI,YAAY,SAAS3J,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQV,KAAK1B,GAAG0B,KAAK1B,EAAE,IAAI,EAAE0B,KAAK1B,EAAE,IAAI,GAAG0B,KAAK1B,EAAE,IAAI,EAAE,EAAEmC,EAAEb,UAAUsI,YAAY,SAAS5J,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQV,KAAK1B,IAAI,GAAG0B,KAAK1B,EAAE,IAAI,GAAG0B,KAAK1B,EAAE,IAAI,EAAE0B,KAAK1B,EAAE,EAAE,EAAEmC,EAAEb,UAAUuI,YAAY,SAAS7J,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQhC,EAAE0J,KAAKpI,KAAK1B,GAAE,EAAG,GAAG,EAAE,EAAEmC,EAAEb,UAAUyI,YAAY,SAAS/J,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQhC,EAAE0J,KAAKpI,KAAK1B,GAAE,EAAG,GAAG,EAAE,EAAEmC,EAAEb,UAAU0I,aAAa,SAAShK,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQhC,EAAE0J,KAAKpI,KAAK1B,GAAE,EAAG,GAAG,EAAE,EAAEmC,EAAEb,UAAU2I,aAAa,SAASjK,EAAEC,GAAG,OAAOA,GAAGuI,EAAExI,EAAE,EAAE0B,KAAKU,QAAQhC,EAAE0J,KAAKpI,KAAK1B,GAAE,EAAG,GAAG,EAAE,EAAEmC,EAAEb,UAAU4I,YAAY,SAASlK,EAAEC,EAAEC,EAAEC,GAAGH,GAAGA,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAGsI,EAAE/G,KAAK1B,EAAEC,EAAEC,EAAE+F,KAAKqD,IAAI,EAAE,EAAEpJ,GAAG,EAAE,GAAG,IAAIE,EAAE,EAAEM,EAAE,EAAE,IAAIgB,KAAKzB,GAAG,IAAID,IAAIU,EAAER,IAAIE,GAAG,MAAMsB,KAAKzB,EAAES,GAAGV,EAAEI,EAAE,IAAI,OAAOH,EAAEC,CAAC,EAAEiC,EAAEb,UAAU6I,YAAY,SAASnK,EAAEC,EAAEC,EAAEC,GAAGH,GAAGA,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAGsI,EAAE/G,KAAK1B,EAAEC,EAAEC,EAAE+F,KAAKqD,IAAI,EAAE,EAAEpJ,GAAG,EAAE,GAAG,IAAIE,EAAEF,EAAE,EAAEQ,EAAE,EAAE,IAAIgB,KAAKzB,EAAEG,GAAG,IAAIJ,IAAII,GAAG,IAAIM,GAAG,MAAMgB,KAAKzB,EAAEG,GAAGJ,EAAEU,EAAE,IAAI,OAAOT,EAAEC,CAAC,EAAEiC,EAAEb,UAAU8I,WAAW,SAASpK,EAAEC,EAAEC,GAAG,OAAOF,GAAGA,EAAEC,GAAG,EAAEC,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAE,EAAE,IAAI,GAAGkC,EAAEmB,sBAAsBtD,EAAEiG,KAAKoE,MAAMrK,IAAI0B,KAAKzB,GAAG,IAAID,EAAEC,EAAE,CAAC,EAAEkC,EAAEb,UAAUgJ,cAAc,SAAStK,EAAEC,EAAEC,GAAG,OAAOF,GAAGA,EAAEC,GAAG,EAAEC,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAE,EAAE,MAAM,GAAGkC,EAAEmB,qBAAqB5B,KAAKzB,GAAG,IAAID,EAAE0B,KAAKzB,EAAE,GAAGD,IAAI,GAAG0I,EAAEhH,KAAK1B,EAAEC,GAAE,GAAIA,EAAE,CAAC,EAAEkC,EAAEb,UAAUiJ,cAAc,SAASvK,EAAEC,EAAEC,GAAG,OAAOF,GAAGA,EAAEC,GAAG,EAAEC,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAE,EAAE,MAAM,GAAGkC,EAAEmB,qBAAqB5B,KAAKzB,GAAGD,IAAI,EAAE0B,KAAKzB,EAAE,GAAG,IAAID,GAAG0I,EAAEhH,KAAK1B,EAAEC,GAAE,GAAIA,EAAE,CAAC,EAAEkC,EAAEb,UAAUkJ,cAAc,SAASxK,EAAEC,EAAEC,GAAG,OAAOF,GAAGA,EAAEC,GAAG,EAAEC,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAE,EAAE,WAAW,GAAGkC,EAAEmB,qBAAqB5B,KAAKzB,EAAE,GAAGD,IAAI,GAAG0B,KAAKzB,EAAE,GAAGD,IAAI,GAAG0B,KAAKzB,EAAE,GAAGD,IAAI,EAAE0B,KAAKzB,GAAG,IAAID,GAAG2I,EAAEjH,KAAK1B,EAAEC,GAAE,GAAIA,EAAE,CAAC,EAAEkC,EAAEb,UAAUmJ,cAAc,SAASzK,EAAEC,EAAEC,GAAG,OAAOF,GAAGA,EAAEC,GAAG,EAAEC,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAE,EAAE,WAAW,GAAGkC,EAAEmB,qBAAqB5B,KAAKzB,GAAGD,IAAI,GAAG0B,KAAKzB,EAAE,GAAGD,IAAI,GAAG0B,KAAKzB,EAAE,GAAGD,IAAI,EAAE0B,KAAKzB,EAAE,GAAG,IAAID,GAAG2I,EAAEjH,KAAK1B,EAAEC,GAAE,GAAIA,EAAE,CAAC,EAAEkC,EAAEb,UAAUoJ,WAAW,SAAS1K,EAAEC,EAAEC,EAAEC,GAAG,GAAGH,GAAGA,EAAEC,GAAG,GAAGE,EAAE,CAAC,IAAIC,EAAE6F,KAAKqD,IAAI,EAAE,EAAEpJ,EAAE,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAEC,EAAEE,EAAE,GAAGA,EAAE,CAAC,IAAIM,EAAE,EAAEe,EAAE,EAAES,EAAE,EAAE,IAAIR,KAAKzB,GAAG,IAAID,IAAIU,EAAER,IAAIuB,GAAG,MAAMzB,EAAE,GAAG,IAAIkC,GAAG,IAAIR,KAAKzB,EAAES,EAAE,KAAKwB,EAAE,GAAGR,KAAKzB,EAAES,IAAIV,EAAEyB,EAAG,GAAGS,EAAE,IAAI,OAAOjC,EAAEC,CAAC,EAAEiC,EAAEb,UAAUqJ,WAAW,SAAS3K,EAAEC,EAAEC,EAAEC,GAAG,GAAGH,GAAGA,EAAEC,GAAG,GAAGE,EAAE,CAAC,IAAIC,EAAE6F,KAAKqD,IAAI,EAAE,EAAEpJ,EAAE,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAEC,EAAEE,EAAE,GAAGA,EAAE,CAAC,IAAIM,EAAER,EAAE,EAAEuB,EAAE,EAAES,EAAE,EAAE,IAAIR,KAAKzB,EAAES,GAAG,IAAIV,IAAIU,GAAG,IAAIe,GAAG,MAAMzB,EAAE,GAAG,IAAIkC,GAAG,IAAIR,KAAKzB,EAAES,EAAE,KAAKwB,EAAE,GAAGR,KAAKzB,EAAES,IAAIV,EAAEyB,EAAG,GAAGS,EAAE,IAAI,OAAOjC,EAAEC,CAAC,EAAEiC,EAAEb,UAAUsJ,UAAU,SAAS5K,EAAEC,EAAEC,GAAG,OAAOF,GAAGA,EAAEC,GAAG,EAAEC,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAE,EAAE,KAAK,KAAKkC,EAAEmB,sBAAsBtD,EAAEiG,KAAKoE,MAAMrK,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,GAAG0B,KAAKzB,GAAG,IAAID,EAAEC,EAAE,CAAC,EAAEkC,EAAEb,UAAUuJ,aAAa,SAAS7K,EAAEC,EAAEC,GAAG,OAAOF,GAAGA,EAAEC,GAAG,EAAEC,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAE,EAAE,OAAO,OAAOkC,EAAEmB,qBAAqB5B,KAAKzB,GAAG,IAAID,EAAE0B,KAAKzB,EAAE,GAAGD,IAAI,GAAG0I,EAAEhH,KAAK1B,EAAEC,GAAE,GAAIA,EAAE,CAAC,EAAEkC,EAAEb,UAAUwJ,aAAa,SAAS9K,EAAEC,EAAEC,GAAG,OAAOF,GAAGA,EAAEC,GAAG,EAAEC,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAE,EAAE,OAAO,OAAOkC,EAAEmB,qBAAqB5B,KAAKzB,GAAGD,IAAI,EAAE0B,KAAKzB,EAAE,GAAG,IAAID,GAAG0I,EAAEhH,KAAK1B,EAAEC,GAAE,GAAIA,EAAE,CAAC,EAAEkC,EAAEb,UAAUyJ,aAAa,SAAS/K,EAAEC,EAAEC,GAAG,OAAOF,GAAGA,EAAEC,GAAG,EAAEC,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAE,EAAE,YAAY,YAAYkC,EAAEmB,qBAAqB5B,KAAKzB,GAAG,IAAID,EAAE0B,KAAKzB,EAAE,GAAGD,IAAI,EAAE0B,KAAKzB,EAAE,GAAGD,IAAI,GAAG0B,KAAKzB,EAAE,GAAGD,IAAI,IAAI2I,EAAEjH,KAAK1B,EAAEC,GAAE,GAAIA,EAAE,CAAC,EAAEkC,EAAEb,UAAU0J,aAAa,SAAShL,EAAEC,EAAEC,GAAG,OAAOF,GAAGA,EAAEC,GAAG,EAAEC,GAAGuI,EAAE/G,KAAK1B,EAAEC,EAAE,EAAE,YAAY,YAAYD,EAAE,IAAIA,EAAE,WAAWA,EAAE,GAAGmC,EAAEmB,qBAAqB5B,KAAKzB,GAAGD,IAAI,GAAG0B,KAAKzB,EAAE,GAAGD,IAAI,GAAG0B,KAAKzB,EAAE,GAAGD,IAAI,EAAE0B,KAAKzB,EAAE,GAAG,IAAID,GAAG2I,EAAEjH,KAAK1B,EAAEC,GAAE,GAAIA,EAAE,CAAC,EAAEkC,EAAEb,UAAU2J,aAAa,SAASjL,EAAEC,EAAEC,GAAG,OAAO2I,EAAEnH,KAAK1B,EAAEC,GAAE,EAAGC,EAAE,EAAEiC,EAAEb,UAAU4J,aAAa,SAASlL,EAAEC,EAAEC,GAAG,OAAO2I,EAAEnH,KAAK1B,EAAEC,GAAE,EAAGC,EAAE,EAAEiC,EAAEb,UAAU6J,cAAc,SAASnL,EAAEC,EAAEC,GAAG,OAAO4I,EAAEpH,KAAK1B,EAAEC,GAAE,EAAGC,EAAE,EAAEiC,EAAEb,UAAU8J,cAAc,SAASpL,EAAEC,EAAEC,GAAG,OAAO4I,EAAEpH,KAAK1B,EAAEC,GAAE,EAAGC,EAAE,EAAEiC,EAAEb,UAAU4C,KAAK,SAASlE,EAAEC,EAAEC,EAAEC,GAAG,GAAGD,IAAIA,EAAE,GAAGC,GAAG,IAAIA,IAAIA,EAAEuB,KAAKU,QAAQnC,GAAGD,EAAEoC,SAASnC,EAAED,EAAEoC,QAAQnC,IAAIA,EAAE,GAAGE,EAAE,GAAGA,EAAED,IAAIC,EAAED,GAAGC,IAAID,EAAE,OAAO,EAAE,GAAG,IAAIF,EAAEoC,QAAQ,IAAIV,KAAKU,OAAO,OAAO,EAAE,GAAGnC,EAAE,EAAE,MAAM,IAAIsD,WAAW,6BAA6B,GAAGrD,EAAE,GAAGA,GAAGwB,KAAKU,OAAO,MAAM,IAAImB,WAAW,6BAA6B,GAAGpD,EAAE,EAAE,MAAM,IAAIoD,WAAW,2BAA2BpD,EAAEuB,KAAKU,SAASjC,EAAEuB,KAAKU,QAAQpC,EAAEoC,OAAOnC,EAAEE,EAAED,IAAIC,EAAEH,EAAEoC,OAAOnC,EAAEC,GAAG,IAAIE,EAAEM,EAAEP,EAAED,EAAE,GAAGwB,OAAO1B,GAAGE,EAAED,GAAGA,EAAEE,EAAE,IAAIC,EAAEM,EAAE,EAAEN,GAAG,IAAIA,EAAEJ,EAAEI,EAAEH,GAAGyB,KAAKtB,EAAEF,QAAQ,GAAGQ,EAAE,MAAMyB,EAAEmB,oBAAoB,IAAIlD,EAAE,EAAEA,EAAEM,IAAIN,EAAEJ,EAAEI,EAAEH,GAAGyB,KAAKtB,EAAEF,QAAQsD,WAAWlC,UAAU2B,IAAI3C,KAAKN,EAAE0B,KAAKiF,SAASzG,EAAEA,EAAEQ,GAAGT,GAAG,OAAOS,CAAC,EAAEyB,EAAEb,UAAU0F,KAAK,SAAShH,EAAEC,EAAEC,EAAEC,GAAG,GAAG,iBAAiBH,EAAE,CAAC,GAAG,iBAAiBC,GAAGE,EAAEF,EAAEA,EAAE,EAAEC,EAAEwB,KAAKU,QAAQ,iBAAiBlC,IAAIC,EAAED,EAAEA,EAAEwB,KAAKU,QAAQ,IAAIpC,EAAEoC,OAAO,CAAC,IAAIhC,EAAEJ,EAAE0F,WAAW,GAAGtF,EAAE,MAAMJ,EAAEI,EAAE,CAAC,QAAG,IAASD,GAAG,iBAAiBA,EAAE,MAAM,IAAIwD,UAAU,6BAA6B,GAAG,iBAAiBxD,IAAIgC,EAAE2B,WAAW3D,GAAG,MAAM,IAAIwD,UAAU,qBAAqBxD,EAAE,KAAK,iBAAiBH,IAAIA,GAAG,KAAK,GAAGC,EAAE,GAAGyB,KAAKU,OAAOnC,GAAGyB,KAAKU,OAAOlC,EAAE,MAAM,IAAIqD,WAAW,sBAAsB,GAAGrD,GAAGD,EAAE,OAAOyB,KAAK,IAAIhB,EAAE,GAAGT,KAAK,EAAEC,OAAE,IAASA,EAAEwB,KAAKU,OAAOlC,IAAI,EAAEF,IAAIA,EAAE,GAAG,iBAAiBA,EAAE,IAAIU,EAAET,EAAES,EAAER,IAAIQ,EAAEgB,KAAKhB,GAAGV,MAAM,CAAC,IAAIyB,EAAEU,EAAE8B,SAASjE,GAAGA,EAAEwE,EAAE,IAAIrC,EAAEnC,EAAEG,GAAGmE,YAAYpC,EAAET,EAAEW,OAAO,IAAI1B,EAAE,EAAEA,EAAER,EAAED,IAAIS,EAAEgB,KAAKhB,EAAET,GAAGwB,EAAEf,EAAEwB,EAAE,CAAC,OAAOR,IAAI,EAAE,IAAI2J,EAAE,qBAAqB,SAAS9C,EAAEvI,GAAG,OAAOA,EAAE,GAAG,IAAIA,EAAEsE,SAAS,IAAItE,EAAEsE,SAAS,GAAG,CAAC,SAASE,EAAExE,EAAEC,GAAG,IAAIC,EAAED,EAAEA,GAAG,IAAI,IAAI,IAAIE,EAAEH,EAAEoC,OAAOhC,EAAE,KAAKM,EAAE,GAAGe,EAAE,EAAEA,EAAEtB,IAAIsB,EAAE,CAAC,IAAIvB,EAAEF,EAAE0F,WAAWjE,IAAI,OAAOvB,EAAE,MAAM,CAAC,IAAIE,EAAE,CAAC,GAAGF,EAAE,MAAM,EAAED,GAAG,IAAI,GAAGS,EAAEqB,KAAK,IAAI,IAAI,KAAK,QAAQ,CAAC,GAAGN,EAAE,IAAItB,EAAE,EAAEF,GAAG,IAAI,GAAGS,EAAEqB,KAAK,IAAI,IAAI,KAAK,QAAQ,CAAC3B,EAAEF,EAAE,QAAQ,CAAC,GAAGA,EAAE,MAAM,EAAED,GAAG,IAAI,GAAGS,EAAEqB,KAAK,IAAI,IAAI,KAAK3B,EAAEF,EAAE,QAAQ,CAACA,EAAE,OAAOE,EAAE,OAAO,GAAGF,EAAE,MAAM,MAAME,IAAIH,GAAG,IAAI,GAAGS,EAAEqB,KAAK,IAAI,IAAI,KAAK,GAAG3B,EAAE,KAAKF,EAAE,IAAI,CAAC,IAAID,GAAG,GAAG,EAAE,MAAMS,EAAEqB,KAAK7B,EAAE,MAAM,GAAGA,EAAE,KAAK,CAAC,IAAID,GAAG,GAAG,EAAE,MAAMS,EAAEqB,KAAK7B,GAAG,EAAE,IAAI,GAAGA,EAAE,IAAI,MAAM,GAAGA,EAAE,MAAM,CAAC,IAAID,GAAG,GAAG,EAAE,MAAMS,EAAEqB,KAAK7B,GAAG,GAAG,IAAIA,GAAG,EAAE,GAAG,IAAI,GAAGA,EAAE,IAAI,KAAK,CAAC,KAAKA,EAAE,SAAS,MAAM,IAAIwD,MAAM,sBAAsB,IAAIzD,GAAG,GAAG,EAAE,MAAMS,EAAEqB,KAAK7B,GAAG,GAAG,IAAIA,GAAG,GAAG,GAAG,IAAIA,GAAG,EAAE,GAAG,IAAI,GAAGA,EAAE,IAAI,CAAC,CAAC,OAAOQ,CAAC,CAAC,SAAS+D,EAAEzE,GAAG,OAAOG,EAAEmL,YAAY,SAAStL,GAAG,IAAIA,EAAE,SAASA,GAAG,OAAOA,EAAEuL,KAAKvL,EAAEuL,OAAOvL,EAAEwL,QAAQ,aAAa,GAAG,CAA7D,CAA+DxL,GAAGwL,QAAQH,EAAE,KAAKjJ,OAAO,EAAE,MAAM,GAAG,KAAKpC,EAAEoC,OAAO,GAAG,GAAGpC,GAAG,IAAI,OAAOA,CAAC,CAAxJ,CAA0JA,GAAG,CAAC,SAASwF,EAAExF,EAAEC,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAED,KAAKC,EAAEF,GAAGD,EAAEmC,QAAQhC,GAAGJ,EAAEoC,UAAUhC,EAAEH,EAAEG,EAAEF,GAAGF,EAAEI,GAAG,OAAOA,CAAC,CAAE,GAAEE,KAAKoB,KAAKxB,EAAE,GAAG,EAAE,SAASF,EAAEC,GAAG,IAAIC,EAAEC,EAAEC,EAAEJ,EAAED,QAAQ,CAAC,EAAE,SAASW,IAAI,MAAM,IAAIgD,MAAM,kCAAkC,CAAC,SAASjC,IAAI,MAAM,IAAIiC,MAAM,oCAAoC,CAAC,SAASxB,EAAElC,GAAG,GAAGE,IAAIuL,WAAW,OAAOA,WAAWzL,EAAE,GAAG,IAAIE,IAAIQ,IAAIR,IAAIuL,WAAW,OAAOvL,EAAEuL,WAAWA,WAAWzL,EAAE,GAAG,IAAI,OAAOE,EAAEF,EAAE,EAAE,CAAC,MAAMC,GAAG,IAAI,OAAOC,EAAEI,KAAK,KAAKN,EAAE,EAAE,CAAC,MAAMC,GAAG,OAAOC,EAAEI,KAAKoB,KAAK1B,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,IAAIE,EAAE,mBAAmBuL,WAAWA,WAAW/K,CAAC,CAAC,MAAMV,GAAGE,EAAEQ,CAAC,CAAC,IAAIP,EAAE,mBAAmBuL,aAAaA,aAAajK,CAAC,CAAC,MAAMzB,GAAGG,EAAEsB,CAAC,CAAC,CAA3I,GAA+I,IAAIU,EAAE3B,EAAE,GAAGH,GAAE,EAAG2B,GAAG,EAAE,SAASS,IAAIpC,GAAG8B,IAAI9B,GAAE,EAAG8B,EAAEC,OAAO5B,EAAE2B,EAAEkF,OAAO7G,GAAGwB,GAAG,EAAExB,EAAE4B,QAAQZ,IAAI,CAAC,SAASA,IAAI,IAAInB,EAAE,CAAC,IAAIL,EAAEkC,EAAEO,GAAGpC,GAAE,EAAG,IAAI,IAAIJ,EAAEO,EAAE4B,OAAOnC,GAAG,CAAC,IAAIkC,EAAE3B,EAAEA,EAAE,KAAKwB,EAAE/B,GAAGkC,GAAGA,EAAEH,GAAG2J,MAAM3J,GAAG,EAAE/B,EAAEO,EAAE4B,MAAM,CAACD,EAAE,KAAK9B,GAAE,EAAG,SAASL,GAAG,GAAGG,IAAIuL,aAAa,OAAOA,aAAa1L,GAAG,IAAIG,IAAIsB,IAAItB,IAAIuL,aAAa,OAAOvL,EAAEuL,aAAaA,aAAa1L,GAAG,IAAIG,EAAEH,EAAE,CAAC,MAAMC,GAAG,IAAI,OAAOE,EAAEG,KAAK,KAAKN,EAAE,CAAC,MAAMC,GAAG,OAAOE,EAAEG,KAAKoB,KAAK1B,EAAE,CAAC,CAAC,CAAtM,CAAwMA,EAAE,CAAC,CAAC,SAASS,EAAET,EAAEC,GAAGyB,KAAKkK,IAAI5L,EAAE0B,KAAKmK,MAAM5L,CAAC,CAAC,SAAS0E,IAAI,CAACvE,EAAEwC,SAAS,SAAS5C,GAAG,IAAIC,EAAE,IAAIoI,MAAMZ,UAAUrF,OAAO,GAAG,GAAGqF,UAAUrF,OAAO,EAAE,IAAI,IAAIlC,EAAE,EAAEA,EAAEuH,UAAUrF,OAAOlC,IAAID,EAAEC,EAAE,GAAGuH,UAAUvH,GAAGM,EAAEuB,KAAK,IAAItB,EAAET,EAAEC,IAAI,IAAIO,EAAE4B,QAAQ/B,GAAG6B,EAAEV,EAAE,EAAEf,EAAEa,UAAUqK,IAAI,WAAWjK,KAAKkK,IAAIvF,MAAM,KAAK3E,KAAKmK,MAAM,EAAEzL,EAAE0L,MAAM,UAAU1L,EAAE2L,SAAQ,EAAG3L,EAAE4L,IAAI,CAAC,EAAE5L,EAAE6L,KAAK,GAAG7L,EAAE8L,QAAQ,GAAG9L,EAAE+L,SAAS,CAAC,EAAE/L,EAAEgM,GAAGzH,EAAEvE,EAAEiM,YAAY1H,EAAEvE,EAAEoC,KAAKmC,EAAEvE,EAAEkM,IAAI3H,EAAEvE,EAAEmM,eAAe5H,EAAEvE,EAAEoM,mBAAmB7H,EAAEvE,EAAEqM,KAAK9H,EAAEvE,EAAEsM,gBAAgB/H,EAAEvE,EAAEuM,oBAAoBhI,EAAEvE,EAAEwM,UAAU,SAAS5M,GAAG,MAAM,EAAE,EAAEI,EAAEyM,QAAQ,SAAS7M,GAAG,MAAM,IAAI0D,MAAM,mCAAmC,EAAEtD,EAAE0M,IAAI,WAAW,MAAM,GAAG,EAAE1M,EAAE2M,MAAM,SAAS/M,GAAG,MAAM,IAAI0D,MAAM,iCAAiC,EAAEtD,EAAE4M,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,SAAShN,EAAEC,EAAEC,IAAG,SAAUF,GAAG,SAASE,EAAEF,GAAG,OAAOW,OAAOW,UAAUgD,SAAShE,KAAKN,EAAE,CAACC,EAAEgN,QAAQ,SAASjN,GAAG,OAAOqI,MAAM4E,QAAQ5E,MAAM4E,QAAQjN,GAAG,mBAAmBE,EAAEF,EAAE,EAAEC,EAAEiN,UAAU,SAASlN,GAAG,MAAM,kBAAkBA,CAAC,EAAEC,EAAEkN,OAAO,SAASnN,GAAG,OAAO,OAAOA,CAAC,EAAEC,EAAEmN,kBAAkB,SAASpN,GAAG,OAAO,MAAMA,CAAC,EAAEC,EAAEoN,SAAS,SAASrN,GAAG,MAAM,iBAAiBA,CAAC,EAAEC,EAAEqN,SAAS,SAAStN,GAAG,MAAM,iBAAiBA,CAAC,EAAEC,EAAEsN,SAAS,SAASvN,GAAG,MAAM,iBAAiBA,CAAC,EAAEC,EAAEuN,YAAY,SAASxN,GAAG,YAAO,IAASA,CAAC,EAAEC,EAAEwN,SAAS,SAASzN,GAAG,MAAM,oBAAoBE,EAAEF,EAAE,EAAEC,EAAEyN,SAAS,SAAS1N,GAAG,MAAM,iBAAiBA,GAAG,OAAOA,CAAC,EAAEC,EAAE0N,OAAO,SAAS3N,GAAG,MAAM,kBAAkBE,EAAEF,EAAE,EAAEC,EAAE2N,QAAQ,SAAS5N,GAAG,MAAM,mBAAmBE,EAAEF,IAAIA,aAAa0D,KAAK,EAAEzD,EAAE4N,WAAW,SAAS7N,GAAG,MAAM,mBAAmBA,CAAC,EAAEC,EAAE6N,YAAY,SAAS9N,GAAG,OAAO,OAAOA,GAAG,kBAAkBA,GAAG,iBAAiBA,GAAG,iBAAiBA,GAAG,iBAAiBA,QAAG,IAASA,CAAC,EAAEC,EAAEgE,SAASjE,EAAEiE,QAAS,GAAE3D,KAAKoB,KAAKxB,EAAE,GAAGoG,OAAO,EAAE,SAAStG,EAAEC,EAAEC,GAAG,cAAa,SAAUD,IAAIA,EAAEiM,SAAS,IAAIjM,EAAEiM,QAAQlH,QAAQ,QAAQ,IAAI/E,EAAEiM,QAAQlH,QAAQ,QAAQ,IAAI/E,EAAEiM,QAAQlH,QAAQ,SAAShF,EAAED,QAAQ,CAAC6C,SAAS,SAAS5C,EAAEE,EAAEC,EAAEC,GAAG,GAAG,mBAAmBJ,EAAE,MAAM,IAAI2D,UAAU,0CAA0C,IAAIjD,EAAEe,EAAES,EAAEuF,UAAUrF,OAAO,OAAOF,GAAG,KAAK,EAAE,KAAK,EAAE,OAAOjC,EAAE2C,SAAS5C,GAAG,KAAK,EAAE,OAAOC,EAAE2C,UAAS,WAAW5C,EAAEM,KAAK,KAAKJ,EAAE,IAAG,KAAK,EAAE,OAAOD,EAAE2C,UAAS,WAAW5C,EAAEM,KAAK,KAAKJ,EAAEC,EAAE,IAAG,KAAK,EAAE,OAAOF,EAAE2C,UAAS,WAAW5C,EAAEM,KAAK,KAAKJ,EAAEC,EAAEC,EAAE,IAAG,QAAQ,IAAIM,EAAE,IAAI2H,MAAMnG,EAAE,GAAGT,EAAE,EAAEA,EAAEf,EAAE0B,QAAQ1B,EAAEe,KAAKgG,UAAUhG,GAAG,OAAOxB,EAAE2C,UAAS,WAAW5C,EAAEqG,MAAM,KAAK3F,EAAE,IAAG,GAAGV,EAAED,QAAQE,CAAE,GAAEK,KAAKoB,KAAKxB,EAAE,GAAG,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAGE,EAAED,EAAEmG,OAAO,SAAS5F,EAAEV,EAAEC,GAAG,IAAI,IAAIC,KAAKF,EAAEC,EAAEC,GAAGF,EAAEE,EAAE,CAAC,SAASuB,EAAEzB,EAAEC,EAAEC,GAAG,OAAOE,EAAEJ,EAAEC,EAAEC,EAAE,CAACE,EAAE0E,MAAM1E,EAAEoG,OAAOpG,EAAE6G,aAAa7G,EAAE8G,gBAAgBlH,EAAED,QAAQI,GAAGO,EAAEP,EAAEF,GAAGA,EAAEqG,OAAO7E,GAAGf,EAAEN,EAAEqB,GAAGA,EAAEqD,KAAK,SAAS9E,EAAEC,EAAEC,GAAG,GAAG,iBAAiBF,EAAE,MAAM,IAAI2D,UAAU,iCAAiC,OAAOvD,EAAEJ,EAAEC,EAAEC,EAAE,EAAEuB,EAAE+E,MAAM,SAASxG,EAAEC,EAAEC,GAAG,GAAG,iBAAiBF,EAAE,MAAM,IAAI2D,UAAU,6BAA6B,IAAIxD,EAAEC,EAAEJ,GAAG,YAAO,IAASC,EAAE,iBAAiBC,EAAEC,EAAE6G,KAAK/G,EAAEC,GAAGC,EAAE6G,KAAK/G,GAAGE,EAAE6G,KAAK,GAAG7G,CAAC,EAAEsB,EAAEwF,YAAY,SAASjH,GAAG,GAAG,iBAAiBA,EAAE,MAAM,IAAI2D,UAAU,6BAA6B,OAAOvD,EAAEJ,EAAE,EAAEyB,EAAEyF,gBAAgB,SAASlH,GAAG,GAAG,iBAAiBA,EAAE,MAAM,IAAI2D,UAAU,6BAA6B,OAAOxD,EAAEoG,WAAWvG,EAAE,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAFA,CAAMS,OAAO,UAAUX,EAAED,QAAQI,CAAC,EAAE,SAASH,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,EAAEC,GAAG,IAAI,IAAIC,EAAEF,EAAEoC,OAAOlC,KAAK,GAAGC,EAAEH,EAAEE,GAAG,GAAGD,GAAG,OAAOC,EAAE,OAAO,CAAC,CAAC,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,EAAEC,GAAG,IAAIC,EAAEF,EAAE+N,SAAS,OAAO5N,EAAEF,GAAGC,EAAE,iBAAiBD,EAAE,SAAS,QAAQC,EAAE8N,GAAG,CAAC,EAAE,SAAShO,EAAEC,EAAEC,IAAG,SAAUF,GAAG,IAAIG,OAAE,IAASH,GAAGA,GAAG,oBAAoBiO,MAAMA,MAAMpM,OAAOzB,EAAEuB,SAASL,UAAU+E,MAAM,SAAS3F,EAAEV,EAAEC,GAAGyB,KAAKwM,IAAIlO,EAAE0B,KAAKyM,SAASlO,CAAC,CAACA,EAAEwL,WAAW,WAAW,OAAO,IAAI/K,EAAEN,EAAEE,KAAKmL,WAAWtL,EAAEsH,WAAWiE,aAAa,EAAEzL,EAAEmO,YAAY,WAAW,OAAO,IAAI1N,EAAEN,EAAEE,KAAK8N,YAAYjO,EAAEsH,WAAW4G,cAAc,EAAEpO,EAAEyL,aAAazL,EAAEoO,cAAc,SAASrO,GAAGA,GAAGA,EAAEsO,OAAO,EAAE5N,EAAEY,UAAUiN,MAAM7N,EAAEY,UAAUkN,IAAI,WAAW,EAAE9N,EAAEY,UAAUgN,MAAM,WAAW5M,KAAKyM,SAAS7N,KAAKH,EAAEuB,KAAKwM,IAAI,EAAEjO,EAAEwO,OAAO,SAASzO,EAAEC,GAAGyL,aAAa1L,EAAE0O,gBAAgB1O,EAAE2O,aAAa1O,CAAC,EAAEA,EAAE2O,SAAS,SAAS5O,GAAG0L,aAAa1L,EAAE0O,gBAAgB1O,EAAE2O,cAAc,CAAC,EAAE1O,EAAE4O,aAAa5O,EAAE6O,OAAO,SAAS9O,GAAG0L,aAAa1L,EAAE0O,gBAAgB,IAAIzO,EAAED,EAAE2O,aAAa1O,GAAG,IAAID,EAAE0O,eAAejD,YAAW,WAAWzL,EAAE+O,YAAY/O,EAAE+O,YAAY,GAAE9O,GAAG,EAAEC,EAAE,IAAID,EAAE+O,aAAa,oBAAoBf,MAAMA,KAAKe,mBAAc,IAAShP,GAAGA,EAAEgP,cAActN,MAAMA,KAAKsN,aAAa/O,EAAEgP,eAAe,oBAAoBhB,MAAMA,KAAKgB,qBAAgB,IAASjP,GAAGA,EAAEiP,gBAAgBvN,MAAMA,KAAKuN,cAAe,GAAE3O,KAAKoB,KAAKxB,EAAE,GAAG,EAAE,SAASF,EAAEC,GAAG,SAASC,IAAIwB,KAAKwN,QAAQxN,KAAKwN,SAAS,CAAC,EAAExN,KAAKyN,cAAczN,KAAKyN,oBAAe,CAAM,CAAC,SAAShP,EAAEH,GAAG,MAAM,mBAAmBA,CAAC,CAAC,SAASI,EAAEJ,GAAG,MAAM,iBAAiBA,GAAG,OAAOA,CAAC,CAAC,SAASU,EAAEV,GAAG,YAAO,IAASA,CAAC,CAACA,EAAED,QAAQG,EAAEA,EAAEkP,aAAalP,EAAEA,EAAEoB,UAAU4N,aAAQ,EAAOhP,EAAEoB,UAAU6N,mBAAc,EAAOjP,EAAEmP,oBAAoB,GAAGnP,EAAEoB,UAAUgO,gBAAgB,SAAStP,GAAG,IAAI,SAASA,GAAG,MAAM,iBAAiBA,CAAC,CAApC,CAAsCA,IAAIA,EAAE,GAAG6E,MAAM7E,GAAG,MAAM2D,UAAU,+BAA+B,OAAOjC,KAAKyN,cAAcnP,EAAE0B,IAAI,EAAExB,EAAEoB,UAAUmL,KAAK,SAASzM,GAAG,IAAIC,EAAEC,EAAEuB,EAAES,EAAEC,EAAE3B,EAAE,GAAGkB,KAAKwN,UAAUxN,KAAKwN,QAAQ,CAAC,GAAG,UAAUlP,KAAK0B,KAAKwN,QAAQK,OAAOnP,EAAEsB,KAAKwN,QAAQK,SAAS7N,KAAKwN,QAAQK,MAAMnN,QAAQ,CAAC,IAAInC,EAAEwH,UAAU,cAAc/D,MAAM,MAAMzD,EAAE,IAAII,EAAE,IAAIqD,MAAM,yCAAyCzD,EAAE,KAAK,MAAMI,EAAEmP,QAAQvP,EAAEI,CAAC,CAAC,GAAGK,EAAER,EAAEwB,KAAKwN,QAAQlP,IAAI,OAAM,EAAG,GAAGG,EAAED,GAAG,OAAOuH,UAAUrF,QAAQ,KAAK,EAAElC,EAAEI,KAAKoB,MAAM,MAAM,KAAK,EAAExB,EAAEI,KAAKoB,KAAK+F,UAAU,IAAI,MAAM,KAAK,EAAEvH,EAAEI,KAAKoB,KAAK+F,UAAU,GAAGA,UAAU,IAAI,MAAM,QAAQvF,EAAEmG,MAAM/G,UAAU0C,MAAM1D,KAAKmH,UAAU,GAAGvH,EAAEmG,MAAM3E,KAAKQ,QAAQ,GAAG9B,EAAEF,GAAG,IAAIgC,EAAEmG,MAAM/G,UAAU0C,MAAM1D,KAAKmH,UAAU,GAAGhG,GAAGjB,EAAEN,EAAE8D,SAAS5B,OAAOD,EAAE,EAAEA,EAAEV,EAAEU,IAAI3B,EAAE2B,GAAGkE,MAAM3E,KAAKQ,GAAG,OAAM,CAAE,EAAEhC,EAAEoB,UAAU+K,YAAY,SAASrM,EAAEC,GAAG,IAAIwB,EAAE,IAAItB,EAAEF,GAAG,MAAM0D,UAAU,+BAA+B,OAAOjC,KAAKwN,UAAUxN,KAAKwN,QAAQ,CAAC,GAAGxN,KAAKwN,QAAQO,aAAa/N,KAAK+K,KAAK,cAAczM,EAAEG,EAAEF,EAAEyP,UAAUzP,EAAEyP,SAASzP,GAAGyB,KAAKwN,QAAQlP,GAAGI,EAAEsB,KAAKwN,QAAQlP,IAAI0B,KAAKwN,QAAQlP,GAAG+B,KAAK9B,GAAGyB,KAAKwN,QAAQlP,GAAG,CAAC0B,KAAKwN,QAAQlP,GAAGC,GAAGyB,KAAKwN,QAAQlP,GAAGC,EAAEG,EAAEsB,KAAKwN,QAAQlP,MAAM0B,KAAKwN,QAAQlP,GAAG2P,SAASlO,EAAEf,EAAEgB,KAAKyN,eAAejP,EAAEmP,oBAAoB3N,KAAKyN,gBAAgB1N,EAAE,GAAGC,KAAKwN,QAAQlP,GAAGoC,OAAOX,IAAIC,KAAKwN,QAAQlP,GAAG2P,QAAO,EAAGC,QAAQL,MAAM,mIAAmI7N,KAAKwN,QAAQlP,GAAGoC,QAAQ,mBAAmBwN,QAAQC,OAAOD,QAAQC,SAASnO,IAAI,EAAExB,EAAEoB,UAAU8K,GAAGlM,EAAEoB,UAAU+K,YAAYnM,EAAEoB,UAAUkB,KAAK,SAASxC,EAAEC,GAAG,IAAIE,EAAEF,GAAG,MAAM0D,UAAU,+BAA+B,IAAIzD,GAAE,EAAG,SAASE,IAAIsB,KAAK6K,eAAevM,EAAEI,GAAGF,IAAIA,GAAE,EAAGD,EAAEoG,MAAM3E,KAAK+F,WAAW,CAAC,OAAOrH,EAAEsP,SAASzP,EAAEyB,KAAK0K,GAAGpM,EAAEI,GAAGsB,IAAI,EAAExB,EAAEoB,UAAUiL,eAAe,SAASvM,EAAEC,GAAG,IAAIC,EAAEQ,EAAEe,EAAES,EAAE,IAAI/B,EAAEF,GAAG,MAAM0D,UAAU,+BAA+B,IAAIjC,KAAKwN,UAAUxN,KAAKwN,QAAQlP,GAAG,OAAO0B,KAAK,GAAGD,GAAGvB,EAAEwB,KAAKwN,QAAQlP,IAAIoC,OAAO1B,GAAG,EAAER,IAAID,GAAGE,EAAED,EAAEwP,WAAWxP,EAAEwP,WAAWzP,SAASyB,KAAKwN,QAAQlP,GAAG0B,KAAKwN,QAAQ3C,gBAAgB7K,KAAK+K,KAAK,iBAAiBzM,EAAEC,QAAQ,GAAGG,EAAEF,GAAG,CAAC,IAAIgC,EAAET,EAAES,KAAK,GAAG,GAAGhC,EAAEgC,KAAKjC,GAAGC,EAAEgC,GAAGwN,UAAUxP,EAAEgC,GAAGwN,WAAWzP,EAAE,CAACS,EAAEwB,EAAE,KAAK,CAAC,GAAGxB,EAAE,EAAE,OAAOgB,KAAK,IAAIxB,EAAEkC,QAAQlC,EAAEkC,OAAO,SAASV,KAAKwN,QAAQlP,IAAIE,EAAE4P,OAAOpP,EAAE,GAAGgB,KAAKwN,QAAQ3C,gBAAgB7K,KAAK+K,KAAK,iBAAiBzM,EAAEC,EAAE,CAAC,OAAOyB,IAAI,EAAExB,EAAEoB,UAAUkL,mBAAmB,SAASxM,GAAG,IAAIC,EAAEC,EAAE,IAAIwB,KAAKwN,QAAQ,OAAOxN,KAAK,IAAIA,KAAKwN,QAAQ3C,eAAe,OAAO,IAAI9E,UAAUrF,OAAOV,KAAKwN,QAAQ,CAAC,EAAExN,KAAKwN,QAAQlP,WAAW0B,KAAKwN,QAAQlP,GAAG0B,KAAK,GAAG,IAAI+F,UAAUrF,OAAO,CAAC,IAAInC,KAAKyB,KAAKwN,QAAQ,mBAAmBjP,GAAGyB,KAAK8K,mBAAmBvM,GAAG,OAAOyB,KAAK8K,mBAAmB,kBAAkB9K,KAAKwN,QAAQ,CAAC,EAAExN,IAAI,CAAC,GAAGvB,EAAED,EAAEwB,KAAKwN,QAAQlP,IAAI0B,KAAK6K,eAAevM,EAAEE,QAAQ,GAAGA,EAAE,KAAKA,EAAEkC,QAAQV,KAAK6K,eAAevM,EAAEE,EAAEA,EAAEkC,OAAO,IAAI,cAAcV,KAAKwN,QAAQlP,GAAG0B,IAAI,EAAExB,EAAEoB,UAAUsL,UAAU,SAAS5M,GAAG,OAAO0B,KAAKwN,SAASxN,KAAKwN,QAAQlP,GAAGG,EAAEuB,KAAKwN,QAAQlP,IAAI,CAAC0B,KAAKwN,QAAQlP,IAAI0B,KAAKwN,QAAQlP,GAAGgE,QAAQ,EAAE,EAAE9D,EAAEoB,UAAUyO,cAAc,SAAS/P,GAAG,GAAG0B,KAAKwN,QAAQ,CAAC,IAAIjP,EAAEyB,KAAKwN,QAAQlP,GAAG,GAAGG,EAAEF,GAAG,OAAO,EAAE,GAAGA,EAAE,OAAOA,EAAEmC,MAAM,CAAC,OAAO,CAAC,EAAElC,EAAE6P,cAAc,SAAS/P,EAAEC,GAAG,OAAOD,EAAE+P,cAAc9P,EAAE,CAAC,EAAE,SAASD,EAAEC,EAAEC,IAAID,EAAED,EAAED,QAAQG,EAAE,KAAK8P,OAAO/P,EAAEA,EAAEgQ,SAAShQ,EAAEA,EAAEiQ,SAAShQ,EAAE,IAAID,EAAEkQ,OAAOjQ,EAAE,GAAGD,EAAEmQ,UAAUlQ,EAAE,IAAID,EAAEoQ,YAAYnQ,EAAE,GAAG,EAAE,SAASF,EAAEC,EAAEC,GAAG,cAAa,SAAUD,EAAEE,EAAEC,GAAG,IAAIM,EAAER,EAAE,GAAG,SAASuB,EAAEzB,GAAG,IAAIC,EAAEyB,KAAKA,KAAK4O,KAAK,KAAK5O,KAAK6O,MAAM,KAAK7O,KAAK8O,OAAO,YAAY,SAASxQ,EAAEC,GAAK,IAAIE,EAAEH,EAAEuQ,MAAM,IAAIvQ,EAAEuQ,MAAM,KAAKpQ,GAAG,CAAC,IAAIC,EAAED,EAAEsQ,SAASxQ,EAAEyQ,YAAYtQ,OAAE,GAAQD,EAAEA,EAAEmQ,IAAI,CAACrQ,EAAE0Q,mBAAmB1Q,EAAE0Q,mBAAmBL,KAAKtQ,EAAEC,EAAE0Q,mBAAmB3Q,CAAC,CAA5K,CAA8KC,EAAED,EAAE,CAAC,CAACA,EAAED,QAAQQ,EAAE,IAAI2B,EAAEC,GAAGlC,EAAE8L,SAAS,CAAC,QAAQ,SAAS/G,QAAQ/E,EAAEiM,QAAQlI,MAAM,EAAE,KAAK,EAAE7D,EAAEO,EAAEkC,SAASrC,EAAEqQ,cAAc7L,EAAE,IAAIvE,EAAEN,EAAE,GAAGM,EAAEyB,SAAS/B,EAAE,GAAG,IAAIG,EAAE2B,EAAE,CAAC6O,UAAU3Q,EAAE,KAAKuC,EAAEvC,EAAE,IAAIsB,EAAEtB,EAAE,GAAGoG,OAAO7F,EAAEL,EAAEoD,YAAY,WAAW,EAAEmB,EAAEzE,EAAE,IAAI,SAAS0E,IAAI,CAAC,SAASG,EAAE/E,EAAEC,GAAGiC,EAAEA,GAAGhC,EAAE,GAAGF,EAAEA,GAAG,CAAC,EAAE,IAAIG,EAAEF,aAAaiC,EAAER,KAAKoP,aAAa9Q,EAAE8Q,WAAW3Q,IAAIuB,KAAKoP,WAAWpP,KAAKoP,cAAc9Q,EAAE+Q,oBAAoB,IAAI3Q,EAAEJ,EAAE8C,cAActC,EAAER,EAAEgR,sBAAsB3Q,EAAEqB,KAAKoP,WAAW,GAAG,MAAMpP,KAAKoB,cAAc1C,GAAG,IAAIA,EAAEA,EAAED,IAAIK,GAAG,IAAIA,GAAGA,EAAEH,EAAEqB,KAAKoB,cAAcmD,KAAKoE,MAAM3I,KAAKoB,eAAepB,KAAKuP,aAAY,EAAGvP,KAAKwP,WAAU,EAAGxP,KAAKyP,QAAO,EAAGzP,KAAKiB,OAAM,EAAGjB,KAAK0P,UAAS,EAAG1P,KAAKsB,WAAU,EAAG,IAAIhB,GAAE,IAAKhC,EAAEqR,cAAc3P,KAAK2P,eAAerP,EAAEN,KAAK4P,gBAAgBtR,EAAEsR,iBAAiB,OAAO5P,KAAKU,OAAO,EAAEV,KAAK6P,SAAQ,EAAG7P,KAAK8P,OAAO,EAAE9P,KAAK+P,MAAK,EAAG/P,KAAKgQ,kBAAiB,EAAGhQ,KAAKiQ,QAAQ,SAAS3R,IAAI,SAASA,EAAEC,GAAG,IAAIC,EAAEF,EAAE0C,eAAevC,EAAED,EAAEuR,KAAKrR,EAAEF,EAAE0R,QAAQ,GAAG,SAAS5R,GAAGA,EAAEuR,SAAQ,EAAGvR,EAAE4R,QAAQ,KAAK5R,EAAEoC,QAAQpC,EAAE6R,SAAS7R,EAAE6R,SAAS,CAAC,CAAzE,CAA2E3R,GAAGD,GAAG,SAASD,EAAEC,EAAEC,EAAEC,EAAEC,KAAKH,EAAEyQ,UAAUxQ,GAAGQ,EAAEkC,SAASxC,EAAED,GAAGO,EAAEkC,SAASkD,EAAE9F,EAAEC,GAAGD,EAAE0C,eAAeoP,cAAa,EAAG9R,EAAEyM,KAAK,QAAQtM,KAAKC,EAAED,GAAGH,EAAE0C,eAAeoP,cAAa,EAAG9R,EAAEyM,KAAK,QAAQtM,GAAG2F,EAAE9F,EAAEC,GAAG,CAA3L,CAA6LD,EAAEE,EAAEC,EAAEF,EAAEG,OAAO,CAAC,IAAIqB,EAAEmE,EAAE1F,GAAGuB,GAAGvB,EAAEsR,QAAQtR,EAAEwR,mBAAmBxR,EAAE6R,iBAAiBpM,EAAE3F,EAAEE,GAAGC,EAAEgC,EAAEsD,EAAEzF,EAAEE,EAAEuB,EAAErB,GAAGqF,EAAEzF,EAAEE,EAAEuB,EAAErB,EAAE,CAAC,CAA5b,CAA8bH,EAAED,EAAE,EAAE0B,KAAKkQ,QAAQ,KAAKlQ,KAAKmQ,SAAS,EAAEnQ,KAAKqQ,gBAAgB,KAAKrQ,KAAKsQ,oBAAoB,KAAKtQ,KAAKgP,UAAU,EAAEhP,KAAKuQ,aAAY,EAAGvQ,KAAKoQ,cAAa,EAAGpQ,KAAKwQ,qBAAqB,EAAExQ,KAAKiP,mBAAmB,IAAIlP,EAAEC,KAAK,CAAC,SAASnB,EAAEP,GAAG,GAAGkC,EAAEA,GAAGhC,EAAE,KAAKG,EAAEC,KAAKC,EAAEmB,OAAOA,gBAAgBQ,GAAG,OAAO,IAAI3B,EAAEP,GAAG0B,KAAKgB,eAAe,IAAIqC,EAAE/E,EAAE0B,MAAMA,KAAKY,UAAS,EAAGtC,IAAI,mBAAmBA,EAAE+D,QAAQrC,KAAKyQ,OAAOnS,EAAE+D,OAAO,mBAAmB/D,EAAEoS,SAAS1Q,KAAK2Q,QAAQrS,EAAEoS,QAAQ,mBAAmBpS,EAAEsS,UAAU5Q,KAAKwB,SAASlD,EAAEsS,SAAS,mBAAmBtS,EAAEuS,QAAQ7Q,KAAK8Q,OAAOxS,EAAEuS,QAAQ9P,EAAEnC,KAAKoB,KAAK,CAAC,SAAS6D,EAAEvF,EAAEC,EAAEC,EAAEC,EAAEC,EAAEM,EAAEe,GAAGxB,EAAE4R,SAAS1R,EAAEF,EAAE2R,QAAQnQ,EAAExB,EAAEsR,SAAQ,EAAGtR,EAAEwR,MAAK,EAAGvR,EAAEF,EAAEqS,QAAQjS,EAAEH,EAAE0R,SAAS3R,EAAEmS,OAAO/R,EAAEM,EAAET,EAAE0R,SAAS1R,EAAEwR,MAAK,CAAE,CAAC,SAAShM,EAAEzF,EAAEC,EAAEC,EAAEC,GAAGD,GAAG,SAASF,EAAEC,GAAG,IAAIA,EAAEmC,QAAQnC,EAAEiR,YAAYjR,EAAEiR,WAAU,EAAGlR,EAAEyM,KAAK,SAAS,CAAzE,CAA2EzM,EAAEC,GAAGA,EAAEyQ,YAAYvQ,IAAI2F,EAAE9F,EAAEC,EAAE,CAAC,SAAS0F,EAAE3F,EAAEC,GAAGA,EAAEyR,kBAAiB,EAAG,IAAIxR,EAAED,EAAE8R,gBAAgB,GAAG/R,EAAEqS,SAASnS,GAAGA,EAAEoQ,KAAK,CAAC,IAAInQ,EAAEF,EAAEiS,qBAAqB9R,EAAE,IAAIiI,MAAMlI,GAAGO,EAAET,EAAE0Q,mBAAmBjQ,EAAE6P,MAAMrQ,EAAE,IAAI,IAAIgC,EAAE,EAAEC,GAAE,EAAGjC,GAAGE,EAAE8B,GAAGhC,EAAEA,EAAEuS,QAAQtQ,GAAE,GAAIjC,EAAEA,EAAEoQ,KAAKpO,GAAG,EAAE9B,EAAEsS,WAAWvQ,EAAEoD,EAAEvF,EAAEC,GAAE,EAAGA,EAAEmC,OAAOhC,EAAE,GAAGM,EAAE8P,QAAQvQ,EAAEyQ,YAAYzQ,EAAE+R,oBAAoB,KAAKtR,EAAE4P,MAAMrQ,EAAE0Q,mBAAmBjQ,EAAE4P,KAAK5P,EAAE4P,KAAK,MAAMrQ,EAAE0Q,mBAAmB,IAAIlP,EAAExB,GAAGA,EAAEiS,qBAAqB,CAAC,KAAK,CAAC,KAAKhS,GAAG,CAAC,IAAIM,EAAEN,EAAEyS,MAAMtS,EAAEH,EAAE0S,SAAS5Q,EAAE9B,EAAEuQ,SAAS,GAAGlL,EAAEvF,EAAEC,GAAE,EAAGA,EAAE6Q,WAAW,EAAEtQ,EAAE4B,OAAO5B,EAAEH,EAAE2B,GAAG9B,EAAEA,EAAEoQ,KAAKrQ,EAAEiS,uBAAuBjS,EAAEsR,QAAQ,KAAK,CAAC,OAAOrR,IAAID,EAAE+R,oBAAoB,KAAK,CAAC/R,EAAE8R,gBAAgB7R,EAAED,EAAEyR,kBAAiB,CAAE,CAAC,SAAS9L,EAAE5F,GAAG,OAAOA,EAAEmR,QAAQ,IAAInR,EAAEoC,QAAQ,OAAOpC,EAAE+R,kBAAkB/R,EAAEoR,WAAWpR,EAAEuR,OAAO,CAAC,SAAS1L,EAAE7F,EAAEC,GAAGD,EAAEwS,QAAO,SAAStS,GAAGD,EAAEyQ,YAAYxQ,GAAGF,EAAEyM,KAAK,QAAQvM,GAAGD,EAAEgS,aAAY,EAAGjS,EAAEyM,KAAK,aAAa3G,EAAE9F,EAAEC,EAAE,GAAE,CAAC,SAAS6F,EAAE9F,EAAEC,GAAG,IAAIC,EAAE0F,EAAE3F,GAAG,OAAOC,IAAI,SAASF,EAAEC,GAAGA,EAAEgS,aAAahS,EAAEgR,cAAc,mBAAmBjR,EAAEwS,QAAQvS,EAAEyQ,YAAYzQ,EAAEgR,aAAY,EAAGvQ,EAAEkC,SAASiD,EAAE7F,EAAEC,KAAKA,EAAEgS,aAAY,EAAGjS,EAAEyM,KAAK,cAAc,CAAnK,CAAqKzM,EAAEC,GAAG,IAAIA,EAAEyQ,YAAYzQ,EAAEmR,UAAS,EAAGpR,EAAEyM,KAAK,YAAYvM,CAAC,CAACM,EAAEyB,SAAS1B,EAAEkC,GAAGsC,EAAEzD,UAAUuR,UAAU,WAAW,IAAI,IAAI7S,EAAE0B,KAAKqQ,gBAAgB9R,EAAE,GAAGD,GAAGC,EAAE8B,KAAK/B,GAAGA,EAAEA,EAAEsQ,KAAK,OAAOrQ,CAAC,EAAE,WAAW,IAAIU,OAAOC,eAAemE,EAAEzD,UAAU,SAAS,CAACR,IAAIkB,EAAE6O,WAAU,WAAW,OAAOnP,KAAKmR,WAAW,GAAE,6EAA6E,YAAY,CAAC,MAAM7S,GAAG,CAAC,CAAnN,GAAuN,mBAAmBe,QAAQA,OAAO+R,aAAa,mBAAmBnR,SAASL,UAAUP,OAAO+R,cAAczS,EAAEsB,SAASL,UAAUP,OAAO+R,aAAanS,OAAOC,eAAeL,EAAEQ,OAAO+R,YAAY,CAAC7R,MAAM,SAASjB,GAAG,QAAQK,EAAEC,KAAKoB,KAAK1B,IAAI0B,OAAOnB,GAAGP,GAAGA,EAAE0C,0BAA0BqC,CAAC,KAAK1E,EAAE,SAASL,GAAG,OAAOA,aAAa0B,IAAI,EAAEnB,EAAEe,UAAUyR,KAAK,WAAWrR,KAAK+K,KAAK,QAAQ,IAAI/I,MAAM,6BAA6B,EAAEnD,EAAEe,UAAUyC,MAAM,SAAS/D,EAAEC,EAAEC,GAAG,IAAIC,EAAEuB,KAAKgB,eAAetC,GAAE,EAAGqB,GAAGtB,EAAE2Q,YAAY,SAAS9Q,GAAG,OAAOwB,EAAEyC,SAASjE,IAAIA,aAAaS,CAAC,CAAhD,CAAkDT,GAAG,OAAOyB,IAAID,EAAEyC,SAASjE,KAAKA,EAAE,SAASA,GAAG,OAAOwB,EAAEsD,KAAK9E,EAAE,CAA5B,CAA8BA,IAAI,mBAAmBC,IAAIC,EAAED,EAAEA,EAAE,MAAMwB,EAAExB,EAAE,SAASA,IAAIA,EAAEE,EAAEmR,iBAAiB,mBAAmBpR,IAAIA,EAAE0E,GAAGzE,EAAEwC,MAAM,SAAS3C,EAAEC,GAAG,IAAIC,EAAE,IAAIwD,MAAM,mBAAmB1D,EAAEyM,KAAK,QAAQvM,GAAGQ,EAAEkC,SAAS3C,EAAEC,EAAE,CAAlF,CAAoFwB,KAAKxB,IAAIuB,GAAG,SAASzB,EAAEC,EAAEC,EAAEC,GAAG,IAAIC,GAAE,EAAGqB,GAAE,EAAG,OAAO,OAAOvB,EAAEuB,EAAE,IAAIkC,UAAU,uCAAuC,iBAAiBzD,QAAG,IAASA,GAAGD,EAAE6Q,aAAarP,EAAE,IAAIkC,UAAU,oCAAoClC,IAAIzB,EAAEyM,KAAK,QAAQhL,GAAGf,EAAEkC,SAASzC,EAAEsB,GAAGrB,GAAE,GAAIA,CAAC,CAAvP,CAAyPsB,KAAKvB,EAAEH,EAAEE,MAAMC,EAAEuQ,YAAYtQ,EAAE,SAASJ,EAAEC,EAAEC,EAAEC,EAAEC,EAAEM,GAAG,IAAIR,EAAE,CAAC,IAAIuB,EAAE,SAASzB,EAAEC,EAAEC,GAAG,OAAOF,EAAE8Q,aAAY,IAAK9Q,EAAEqR,eAAe,iBAAiBpR,IAAIA,EAAEuB,EAAEsD,KAAK7E,EAAEC,IAAID,CAAC,CAAhG,CAAkGA,EAAEE,EAAEC,GAAGD,IAAIsB,IAAIvB,GAAE,EAAGE,EAAE,SAASD,EAAEsB,EAAE,CAAC,IAAIS,EAAEjC,EAAE6Q,WAAW,EAAE3Q,EAAEiC,OAAOnC,EAAEmC,QAAQF,EAAE,IAAIC,EAAElC,EAAEmC,OAAOnC,EAAE6C,cAAc,GAAGX,IAAIlC,EAAEiR,WAAU,GAAIjR,EAAEsR,SAAStR,EAAEuR,OAAO,CAAC,IAAIhR,EAAEP,EAAE+R,oBAAoB/R,EAAE+R,oBAAoB,CAACW,MAAMxS,EAAEyS,SAASxS,EAAEqS,MAAMvS,EAAEuQ,SAAS/P,EAAE4P,KAAK,MAAM9P,EAAEA,EAAE8P,KAAKrQ,EAAE+R,oBAAoB/R,EAAE8R,gBAAgB9R,EAAE+R,oBAAoB/R,EAAEiS,sBAAsB,CAAC,MAAM3M,EAAEvF,EAAEC,GAAE,EAAGiC,EAAE/B,EAAEC,EAAEM,GAAG,OAAOyB,CAAC,CAAlgB,CAAogBT,KAAKvB,EAAEsB,EAAEzB,EAAEC,EAAEC,IAAIE,CAAC,EAAEG,EAAEe,UAAU0R,KAAK,WAAWtR,KAAKgB,eAAe8O,QAAQ,EAAEjR,EAAEe,UAAU2R,OAAO,WAAW,IAAIjT,EAAE0B,KAAKgB,eAAe1C,EAAEwR,SAASxR,EAAEwR,SAASxR,EAAEuR,SAASvR,EAAEwR,QAAQxR,EAAEoR,UAAUpR,EAAE0R,mBAAmB1R,EAAE+R,iBAAiBpM,EAAEjE,KAAK1B,GAAG,EAAEO,EAAEe,UAAU4R,mBAAmB,SAASlT,GAAG,GAAG,iBAAiBA,IAAIA,EAAEA,EAAE0E,iBAAiB,CAAC,MAAM,OAAO,QAAQ,QAAQ,SAAS,SAAS,OAAO,QAAQ,UAAU,WAAW,OAAOM,SAAShF,EAAE,IAAI0E,gBAAgB,GAAG,MAAM,IAAIf,UAAU,qBAAqB3D,GAAG,OAAO0B,KAAKgB,eAAe4O,gBAAgBtR,EAAE0B,IAAI,EAAEf,OAAOC,eAAeL,EAAEe,UAAU,wBAAwB,CAACT,YAAW,EAAGC,IAAI,WAAW,OAAOY,KAAKgB,eAAeI,aAAa,IAAIvC,EAAEe,UAAU6Q,OAAO,SAASnS,EAAEC,EAAEC,GAAGA,EAAE,IAAIwD,MAAM,+BAA+B,EAAEnD,EAAEe,UAAU+Q,QAAQ,KAAK9R,EAAEe,UAAUuB,IAAI,SAAS7C,EAAEC,EAAEC,GAAG,IAAIC,EAAEuB,KAAKgB,eAAe,mBAAmB1C,GAAGE,EAAEF,EAAEA,EAAE,KAAKC,EAAE,MAAM,mBAAmBA,IAAIC,EAAED,EAAEA,EAAE,MAAM,MAAOD,GAAe0B,KAAKqC,MAAM/D,EAAEC,GAAGE,EAAEqR,SAASrR,EAAEqR,OAAO,EAAE9P,KAAKuR,UAAU9S,EAAEgR,QAAQhR,EAAEiR,UAAU,SAASpR,EAAEC,EAAEC,GAAGD,EAAEkR,QAAO,EAAGrL,EAAE9F,EAAEC,GAAGC,IAAID,EAAEmR,SAAS1Q,EAAEkC,SAAS1C,GAAGF,EAAEwC,KAAK,SAAStC,IAAID,EAAE0C,OAAM,EAAG3C,EAAEsC,UAAS,CAAE,CAA5G,CAA8GZ,KAAKvB,EAAED,EAAE,EAAES,OAAOC,eAAeL,EAAEe,UAAU,YAAY,CAACR,IAAI,WAAW,YAAO,IAASY,KAAKgB,gBAAgBhB,KAAKgB,eAAeM,SAAS,EAAEC,IAAI,SAASjD,GAAG0B,KAAKgB,iBAAiBhB,KAAKgB,eAAeM,UAAUhD,EAAE,IAAIO,EAAEe,UAAUgR,QAAQ3N,EAAE2N,QAAQ/R,EAAEe,UAAU6R,WAAWxO,EAAEyO,UAAU7S,EAAEe,UAAU4B,SAAS,SAASlD,EAAEC,GAAGyB,KAAKmB,MAAM5C,EAAED,EAAE,CAAE,GAAEM,KAAKoB,KAAKxB,EAAE,GAAGA,EAAE,IAAI8O,aAAa9O,EAAE,GAAG,EAAE,SAASF,EAAEC,EAAEC,IAAG,SAAUD,EAAEC,EAAEC,GAAGH,EAAED,QAAQ,SAASC,EAAEC,EAAEC,EAAEC,GAAG,SAASC,EAAEqB,EAAES,GAAG,IAAIhC,EAAEuB,GAAG,CAAC,IAAIxB,EAAEwB,GAAG,CAAC,IAAIU,EAAE,mBAAmBkR,SAASA,QAAQ,IAAInR,GAAGC,EAAE,OAAOA,EAAEV,GAAE,GAAI,GAAGf,EAAE,OAAOA,EAAEe,GAAE,GAAI,IAAIjB,EAAE,IAAIkD,MAAM,uBAAuBjC,EAAE,KAAK,MAAMjB,EAAE8S,KAAK,mBAAmB9S,CAAC,CAAC,IAAIH,EAAEH,EAAEuB,GAAG,CAAC1B,QAAQ,CAAC,GAAGE,EAAEwB,GAAG,GAAGnB,KAAKD,EAAEN,SAAQ,SAASC,GAAG,OAAOI,EAAEH,EAAEwB,GAAG,GAAGzB,IAAIA,EAAE,GAAEK,EAAEA,EAAEN,QAAQC,EAAEC,EAAEC,EAAEC,EAAE,CAAC,OAAOD,EAAEuB,GAAG1B,OAAO,CAAC,IAAI,IAAIW,EAAE,mBAAmB2S,SAASA,QAAQ5R,EAAE,EAAEA,EAAEtB,EAAEiC,OAAOX,IAAIrB,EAAED,EAAEsB,IAAI,OAAOrB,CAAC,CAA1a,CAA4a,CAAC,EAAE,CAAC,SAASJ,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASC,GAAG,IAAIC,EAAED,EAAEuT,kBAAkB,SAASrT,EAAEF,GAAG,IAAIE,EAAE,IAAID,EAAED,GAAGG,EAAED,EAAEsT,UAAU,OAAOtT,EAAEuT,WAAW,GAAGvT,EAAEwT,YAAYxT,EAAEyT,OAAOxT,CAAC,CAACH,EAAE4T,IAAI,SAAS5T,GAAG,OAAOE,EAAEF,EAAE,EAAEA,EAAEsB,UAAUsS,IAAI,WAAW,OAAO1T,EAAEwB,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS1B,EAAEE,EAAEC,GAAG,aAAa,IAAIC,EAAE,IAAI,MAAM,IAAIsD,KAAK,CAAC,MAAM1D,GAAGI,EAAEJ,CAAC,CAAC,IAAIU,EAAEV,EAAE,cAAcyB,EAAEzB,EAAE,WAAWkC,EAAElC,EAAE,UAAU,SAASmC,IAAIT,KAAKmS,kBAAiB,EAAGnS,KAAKoS,aAAY,EAAGpS,KAAKqS,WAAW,IAAItS,EAAE,IAAIC,KAAKsS,aAAa,IAAIvS,EAAE,IAAIC,KAAKuS,oBAAmB,EAAGvS,KAAKwS,oBAAmB,EAAG,IAAIlU,EAAE0B,KAAKA,KAAKyS,YAAY,WAAWnU,EAAEoU,cAAc,EAAE1S,KAAK2S,UAAU3T,CAAC,CAAC,SAASF,EAAER,EAAEC,EAAEC,GAAGwB,KAAKqS,WAAWhS,KAAK/B,EAAEC,EAAEC,GAAGwB,KAAK4S,YAAY,CAAC,SAASjU,EAAEL,EAAEC,EAAEC,GAAGwB,KAAKsS,aAAajS,KAAK/B,EAAEC,EAAEC,GAAGwB,KAAK4S,YAAY,CAAC,SAAStS,EAAEhC,GAAG0B,KAAKsS,aAAaO,SAASvU,GAAG0B,KAAK4S,YAAY,CAACnS,EAAEb,UAAUkT,aAAa,SAASxU,GAAG,IAAIC,EAAEyB,KAAK2S,UAAU,OAAO3S,KAAK2S,UAAUrU,EAAE0B,KAAKmS,kBAAiB,EAAG5T,CAAC,EAAEkC,EAAEb,UAAUmT,mBAAmB,WAAW,OAAO/S,KAAKmS,gBAAgB,EAAE1R,EAAEb,UAAUoT,iBAAiB,WAAWhT,KAAKwS,oBAAmB,CAAE,EAAE/R,EAAEb,UAAUqT,6BAA6B,WAAWzS,EAAE0S,cAAclT,KAAKwS,oBAAmB,EAAG,EAAE/R,EAAEb,UAAUuT,gBAAgB,WAAW,OAAOnT,KAAKoS,aAAapS,KAAKuS,kBAAkB,EAAE9R,EAAEb,UAAUwT,WAAW,SAAS9U,EAAEE,GAAGA,GAAGD,EAAE8U,OAAOhR,MAAM,UAAU/D,aAAa0D,MAAM1D,EAAEgV,MAAMhV,GAAG,MAAMC,EAAEgV,KAAK,IAAIvT,KAAKwT,WAAWlV,EAAE,EAAEmC,EAAEb,UAAU4T,WAAW,SAASlV,EAAEC,GAAG,GAAG,IAAIwH,UAAUrF,SAASnC,EAAED,EAAEA,EAAE,WAAW,MAAMC,CAAC,GAAG,oBAAoBwL,WAAWA,YAAW,WAAWzL,EAAEC,EAAE,GAAE,QAAQ,IAAIyB,KAAK2S,WAAU,WAAWrU,EAAEC,EAAE,GAAE,CAAC,MAAMD,GAAG,MAAM,IAAI0D,MAAM,iEAAiE,CAAC,EAAExB,EAAE0S,aAAazS,EAAEb,UAAU6T,YAAY,SAASnV,EAAEC,EAAEC,GAAGwB,KAAKwS,mBAAmB1T,EAAEF,KAAKoB,KAAK1B,EAAEC,EAAEC,GAAGwB,KAAK2S,WAAU,WAAW5I,YAAW,WAAWzL,EAAEM,KAAKL,EAAEC,EAAE,GAAE,IAAI,GAAE,EAAEiC,EAAEb,UAAU8T,OAAO,SAASpV,EAAEC,EAAEC,GAAGwB,KAAKwS,mBAAmB7T,EAAEC,KAAKoB,KAAK1B,EAAEC,EAAEC,GAAGwB,KAAK2S,WAAU,WAAWrU,EAAEM,KAAKL,EAAEC,EAAE,GAAE,EAAEiC,EAAEb,UAAU+T,eAAe,SAASrV,GAAG0B,KAAKwS,mBAAmBlS,EAAE1B,KAAKoB,KAAK1B,GAAG0B,KAAK2S,WAAU,WAAWrU,EAAEsV,iBAAiB,GAAE,IAAInT,EAAEb,UAAU6T,YAAY3U,EAAE2B,EAAEb,UAAU8T,OAAO/U,EAAE8B,EAAEb,UAAU+T,eAAerT,GAAGG,EAAEb,UAAUiU,YAAY,SAASvV,GAAG,KAAKA,EAAEoC,SAAS,GAAG,CAAC,IAAInC,EAAED,EAAEwV,QAAQ,GAAG,mBAAmBvV,EAAE,CAAC,IAAIC,EAAEF,EAAEwV,QAAQrV,EAAEH,EAAEwV,QAAQvV,EAAEK,KAAKJ,EAAEC,EAAE,MAAMF,EAAEqV,iBAAiB,CAAC,EAAEnT,EAAEb,UAAU8S,aAAa,WAAW1S,KAAK6T,YAAY7T,KAAKsS,cAActS,KAAK+T,SAAS/T,KAAKuS,oBAAmB,EAAGvS,KAAK6T,YAAY7T,KAAKqS,WAAW,EAAE5R,EAAEb,UAAUgT,WAAW,WAAW5S,KAAKoS,cAAcpS,KAAKoS,aAAY,EAAGpS,KAAK2S,UAAU3S,KAAKyS,aAAa,EAAEhS,EAAEb,UAAUmU,OAAO,WAAW/T,KAAKoS,aAAY,CAAE,EAAE5T,EAAEH,QAAQoC,EAAEjC,EAAEH,QAAQ2V,eAAetV,CAAC,EAAE,CAAC,UAAU,GAAG,aAAa,GAAG,SAAS,KAAK,EAAE,CAAC,SAASJ,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASC,EAAEC,EAAEC,EAAEC,GAAG,IAAIC,GAAE,EAAGM,EAAE,SAASV,EAAEC,GAAGyB,KAAKiU,QAAQ1V,EAAE,EAAEwB,EAAE,SAASzB,EAAEC,GAAGA,EAAE2V,wBAAuB,EAAG3V,EAAE4V,eAAeC,MAAMpV,EAAEA,EAAE,KAAKgB,KAAK1B,EAAE,EAAEkC,EAAE,SAASlC,EAAEC,KAAO,SAASyB,KAAKqU,YAAYrU,KAAKsU,iBAAiB/V,EAAEgW,OAAO,EAAE9T,EAAE,SAASnC,EAAEC,GAAGA,EAAE2V,wBAAwBlU,KAAKiU,QAAQ3V,EAAE,EAAEA,EAAEsB,UAAUF,KAAK,SAASV,GAAGN,IAAIA,GAAE,EAAGJ,EAAEsB,UAAU4U,eAAe/V,EAAEgW,wBAAwBnW,EAAEsB,UAAU8U,YAAYjW,EAAEkW,sBAAsB,IAAI7V,EAAEN,EAAEQ,GAAGL,EAAE,IAAIL,EAAEC,GAAGI,EAAE6V,eAAexU,KAAK,GAAG,IAAIM,EAAEN,KAAK4U,UAAU,GAAGjW,EAAEkW,YAAY/V,GAAGA,aAAaR,EAAE,CAAC,IAAIyC,EAAE,CAACmT,wBAAuB,EAAGpC,QAAQnT,EAAE4V,OAAOjU,EAAE6T,eAAerV,GAAGwB,EAAE8T,MAAM7V,EAAEwB,OAAE,EAAOpB,EAAEoC,GAAGjC,EAAEsV,MAAM5T,EAAEC,OAAE,EAAO9B,EAAEoC,GAAGpC,EAAEmW,aAAahW,EAAE,MAAMH,EAAE2V,iBAAiBhU,GAAG,OAAO3B,CAAC,EAAEL,EAAEsB,UAAUiV,YAAY,SAASvW,QAAG,IAASA,GAAG0B,KAAKqU,UAAU,QAAQrU,KAAKqU,UAAUrU,KAAK+U,SAASzW,GAAG0B,KAAKqU,WAAW,QAAQrU,KAAKqU,SAAS,EAAE/V,EAAEsB,UAAUoV,SAAS,WAAW,QAAO,SAAkBhV,KAAKqU,UAAU,EAAE/V,EAAEoB,KAAK,SAASnB,EAAEC,GAAG,OAAOF,EAAE2W,QAAQzW,GAAGkB,KAAKnB,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,SAASD,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAE,oBAAoByW,UAAUzW,EAAEyW,SAAS,IAAIxW,EAAEJ,EAAE,YAAFA,GAAiBI,EAAEyW,WAAW,WAAW,IAAID,UAAUxW,IAAIwW,QAAQzW,EAAE,CAAC,MAAMH,GAAG,CAAC,OAAOI,CAAC,EAAEH,EAAEF,QAAQK,CAAC,EAAE,CAAC,YAAY,KAAK,EAAE,CAAC,SAASJ,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAEQ,OAAOQ,OAAO,GAAGhB,EAAE,CAAC,IAAIC,EAAED,EAAE,MAAMO,EAAEP,EAAE,MAAMC,EAAE,SAASM,EAAE,SAAS,CAAC,CAACT,EAAEF,QAAQ,SAASE,GAAG,IAAIC,EAAEF,EAAE,UAAUG,EAAED,EAAE4W,YAAY,SAAS1W,EAAEJ,GAAG,OAAO,SAASA,EAAEG,GAAG,IAAIC,EAAE,GAAG,MAAMJ,IAAII,EAAEJ,EAAEG,IAAI,mBAAmBC,EAAE,CAAC,IAAIM,EAAE,UAAUR,EAAE6W,YAAY/W,GAAG,mBAAmBE,EAAEoE,SAASnE,GAAG,IAAI,MAAM,IAAIF,EAAE0D,UAAUjD,EAAE,CAAC,OAAON,CAAC,CAAtK,CAAwKJ,EAAE0B,KAAKsV,OAAO3Q,MAAMrG,EAAE0B,KAAK,CAAC,SAAShB,EAAEV,GAAG,OAAOA,EAAE0B,KAAK,CAAC,SAASD,EAAEzB,GAAG,IAAIC,GAAGyB,KAAK,OAAOzB,EAAE,IAAIA,EAAEgG,KAAKgR,IAAI,EAAEhX,EAAED,EAAEoC,SAASpC,EAAEC,EAAE,CAACC,EAAEgX,aAAajX,EAAEqB,UAAUhB,KAAK,SAASN,GAAG,IAAIC,EAAE,GAAG+D,MAAM1D,KAAKmH,UAAU,GAAG,OAAOxH,EAAE8B,KAAK/B,GAAG0B,KAAKoU,MAAM1V,OAAE,OAAO,EAAOH,OAAE,EAAO,EAAEA,EAAEqB,UAAUR,IAAI,SAASd,GAAG,IAAIC,EAAE,GAAG,iBAAiBD,EAAEC,EAAEwB,OAAO,GAAGtB,EAAE,CAAC,IAAID,QAAE,GAASF,GAAGC,EAAE,OAAOC,EAAEA,EAAEQ,CAAC,MAAMT,EAAES,EAAE,OAAOgB,KAAKoU,MAAM7V,OAAE,OAAO,EAAOD,OAAE,EAAO,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,SAASA,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,EAAEC,GAAG,IAAIM,EAAEV,EAAE,UAAUyB,EAAEf,EAAEyW,SAASjV,EAAExB,EAAE0W,SAASjV,EAAElC,EAAEoX,OAAOpX,EAAEqB,UAAUgW,MAAMrX,EAAEqB,UAAUiW,OAAO,WAAW,IAAInX,EAAEoX,eAAe,OAAO9V,KAAK+V,MAAM,4BAA4B,IAAI,IAAIzX,EAAE0B,KAAKzB,EAAED,EAAEA,EAAE0X,kBAAkB,CAAC,IAAI1X,EAAE2X,UAAU1X,GAAG,CAACA,EAAE2X,eAAe3X,EAAE4X,YAAYN,SAAStX,EAAE6X,kBAAkB,KAAK,CAAC,IAAI5X,EAAEF,EAAE+X,oBAAoB,GAAG,MAAM7X,IAAIA,EAAEwX,iBAAiB,CAAC1X,EAAE4X,eAAe5X,EAAE6X,YAAYN,SAASvX,EAAE8X,kBAAkB,KAAK,CAAC9X,EAAE4X,gBAAgB5X,EAAE6X,YAAYN,SAASvX,EAAEgY,sBAAsB/X,EAAED,EAAEA,EAAEE,CAAC,CAAC,EAAED,EAAEqB,UAAU2W,oBAAoB,WAAWvW,KAAKwW,4BAA4B,EAAEjY,EAAEqB,UAAU6W,6BAA6B,WAAW,YAAO,IAASzW,KAAKwW,4BAA4BxW,KAAKwW,4BAA4B,CAAC,EAAEjY,EAAEqB,UAAUqW,UAAU,SAAS3X,GAAG,OAAOA,IAAI0B,MAAMA,KAAKwW,2BAA2B,EAAExW,KAAK0W,mBAAkB,IAAK1W,KAAKuW,wBAAwBvW,KAAKyW,iCAAiCzW,KAAK0W,mBAAkB,GAAI,EAAEnY,EAAEqB,UAAUwW,gBAAgB,WAAWpW,KAAKyW,gCAAgCzW,KAAK2W,SAAS,EAAEpY,EAAEqB,UAAU+W,QAAQ,WAAW3W,KAAKgW,mBAAmBhW,KAAK4W,gBAAgBnW,EAAEiT,OAAO1T,KAAK6W,gBAAgB7W,UAAK,GAAQ,EAAEzB,EAAEqB,UAAUiX,gBAAgB,WAAW7W,KAAK8W,UAAU,GAAG9W,KAAK4T,iBAAiB,EAAErV,EAAEqB,UAAUmX,eAAe,WAAW/W,KAAKgX,oBAAe,CAAM,EAAEzY,EAAEqB,UAAUoW,eAAe,WAAW,OAAOhW,KAAKiX,cAAcjX,KAAKkX,cAAc,EAAE3Y,EAAEqB,UAAUuX,cAAc,WAAW,OAAOnX,KAAKiX,cAAcjX,KAAKoX,aAAa,EAAE7Y,EAAEqB,UAAUyX,kBAAkB,SAAS/Y,EAAEC,GAAG,GAAGS,EAAEuM,QAAQjN,GAAG,IAAI,IAAIE,EAAE,EAAEA,EAAEF,EAAEoC,SAASlC,EAAEwB,KAAKqX,kBAAkB/Y,EAAEE,GAAGD,QAAQ,QAAG,IAASD,EAAE,GAAG,mBAAmBA,GAAG,IAAIC,EAAE,CAAC,IAAIE,EAAEsB,EAAEzB,GAAGM,KAAKoB,KAAK0U,eAAejW,IAAI+B,IAAIR,KAAKsX,kBAAkB7Y,EAAEF,GAAGkC,EAAE+S,WAAW/U,EAAEF,GAAG,OAAOD,EAAEiZ,iBAAiBvX,KAAK,EAAEzB,EAAEqB,UAAU8W,gBAAgB,WAAW,IAAIpY,EAAE0B,KAAKwX,YAAYxX,KAAK+W,iBAAiBtW,EAAEiT,OAAO1T,KAAKqX,kBAAkBrX,KAAK1B,EAAE,EAAEC,EAAEqB,UAAU6X,wBAAwB,WAAWzX,KAAKgW,mBAAmBhW,KAAKqX,kBAAkBrX,KAAKwX,aAAY,GAAIxX,KAAK+W,iBAAiB,EAAExY,EAAEqB,UAAU2X,iBAAiB,WAAWvX,KAAK6V,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,SAASvX,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,GAAG,IAAIC,EAAEF,EAAE,UAAUG,EAAEH,EAAE,SAAS8B,KAAK1B,EAAEF,EAAEiX,SAASzW,EAAER,EAAEkX,SAAS,OAAO,SAASpX,EAAEyB,EAAES,GAAG,OAAO,SAASC,GAAG,IAAI3B,EAAE0B,EAAEkU,cAAcpW,EAAE,IAAI,IAAIK,EAAE,EAAEA,EAAEL,EAAEoC,SAAS/B,EAAE,CAAC,IAAI2B,EAAEhC,EAAEK,GAAG,GAAG2B,IAAI0B,OAAO,MAAM1B,GAAGA,EAAEV,qBAAqBoC,OAAO,GAAGvB,aAAaH,EAAE,OAAO5B,EAAEqB,GAAGnB,KAAKE,EAAE2B,QAAQ,GAAG,mBAAmBH,EAAE,CAAC,IAAIS,EAAErC,EAAE4B,GAAG1B,KAAKE,EAAE2B,GAAG,GAAGM,IAAI/B,EAAE,OAAO+B,EAAE,GAAGA,EAAE,OAAOrC,EAAEqB,GAAGnB,KAAKE,EAAE2B,EAAE,MAAM,GAAGjC,EAAEwN,SAASvL,GAAG,CAAC,IAAI,IAAIX,EAAErB,EAAE6B,GAAGvB,EAAE,EAAEA,EAAEe,EAAEY,SAAS3B,EAAE,CAAC,IAAIkE,EAAEnD,EAAEf,GAAG,GAAGuB,EAAE2C,IAAIxC,EAAEwC,GAAG,SAAS3E,CAAC,CAAC,OAAOI,EAAEqB,GAAGnB,KAAKE,EAAE2B,EAAE,CAAC,CAAC,OAAOlC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE,CAAC,SAASD,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASC,GAAG,IAAIC,GAAE,EAAGC,EAAE,GAAG,SAASC,IAAIuB,KAAK0X,OAAO,IAAIjZ,EAAEkZ,cAAcjZ,IAAI,CAAC,SAASA,IAAI,IAAIJ,EAAEE,EAAEkC,OAAO,EAAE,GAAGpC,GAAG,EAAE,OAAOE,EAAEF,EAAE,CAAC,OAAOA,EAAEsB,UAAUgY,gBAAgB,WAAW,EAAEtZ,EAAEsB,UAAUiY,aAAa,WAAW,EAAEvZ,EAAEsB,UAAUkY,YAAY,WAAW,OAAO,IAAI,EAAExZ,EAAEyZ,aAAazZ,EAAEsB,UAAUmY,aAAa,WAAW,EAAEtZ,EAAEmB,UAAUiY,aAAa,gBAAW,IAAS7X,KAAK0X,SAAS1X,KAAK0X,OAAOE,gBAAgB,KAAKpZ,EAAE6B,KAAKL,KAAK0X,QAAQ,EAAEjZ,EAAEmB,UAAUkY,YAAY,WAAW,QAAG,IAAS9X,KAAK0X,OAAO,CAAC,IAAIpZ,EAAEE,EAAE8W,MAAM/W,EAAED,EAAEsZ,gBAAgB,OAAOtZ,EAAEsZ,gBAAgB,KAAKrZ,CAAC,CAAC,OAAO,IAAI,EAAEE,EAAEkZ,cAAc,KAAKlZ,EAAEgB,OAAO,WAAW,GAAGlB,EAAE,OAAO,IAAIE,CAAC,EAAEA,EAAEuZ,0BAA0B,WAAW,EAAEvZ,EAAEwZ,wBAAwB,WAAW,IAAIzZ,EAAEF,EAAEsB,UAAUiY,aAAa7Y,EAAEV,EAAEsB,UAAUkY,YAAY/X,EAAEzB,EAAEyZ,aAAavX,EAAElC,EAAEsB,UAAUmY,aAAatX,EAAEnC,EAAEsB,UAAUgY,gBAAgBnZ,EAAEuZ,0BAA0B,WAAW1Z,EAAEsB,UAAUiY,aAAarZ,EAAEF,EAAEsB,UAAUkY,YAAY9Y,EAAEV,EAAEyZ,aAAahY,EAAEzB,EAAEsB,UAAUmY,aAAavX,EAAElC,EAAEsB,UAAUgY,gBAAgBnX,EAAElC,GAAE,CAAE,EAAEA,GAAE,EAAGD,EAAEsB,UAAUiY,aAAapZ,EAAEmB,UAAUiY,aAAavZ,EAAEsB,UAAUkY,YAAYrZ,EAAEmB,UAAUkY,YAAYxZ,EAAEyZ,aAAazZ,EAAEsB,UAAUmY,aAAarZ,EAAEJ,EAAEsB,UAAUgY,gBAAgB,WAAW,IAAItZ,EAAE0B,KAAK+X,eAAezZ,GAAG,MAAMA,EAAEsZ,kBAAkBtZ,EAAEsZ,gBAAgB5X,KAAK,CAAC,EAAEvB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,SAASH,EAAEE,EAAEC,GAAG,aAAaD,EAAEH,QAAQ,SAASG,EAAEC,GAAG,IAAIC,EAAEM,EAAEe,EAAES,EAAEhC,EAAE0Z,WAAWzX,EAAEjC,EAAEmX,OAAO7W,EAAER,EAAE,YAAY6Z,QAAQxZ,EAAEL,EAAE,UAAUgC,EAAE3B,EAAEyZ,eAAerX,EAAE,2DAA2DjB,EAAE,6BAA6Bf,EAAE,kCAAkCkE,EAAE,KAAKC,EAAE,KAAKG,GAAE,EAAGxE,IAAI,GAAGF,EAAE2L,IAAI,mBAAmBzG,IAAI,GAAGlF,EAAE2L,IAAI,uBAAuBzL,IAAIF,EAAE2L,IAAI,sBAAsBvG,IAAI,GAAGpF,EAAE2L,IAAI,gCAAgCzL,IAAIF,EAAE2L,IAAI,+BAA+BrG,EAAE,GAAGtF,EAAE2L,IAAI,iCAAiCzG,KAAKlF,EAAE2L,IAAI,gCAAgC9L,EAAEoB,UAAUyY,4BAA4B,WAAW,IAAI/Z,EAAE0B,KAAK4U,UAAUtW,EAAE+V,WAAW,QAAQ/V,EAAE+V,UAAU,MAAM,EAAE7V,EAAEoB,UAAU0Y,gCAAgC,WAAW,KAAO,OAAOtY,KAAKqU,WAAW,CAACrU,KAAKuY,2BAA2B,IAAIja,EAAE0B,KAAK+J,YAAW,WAAWzL,EAAEka,2BAA2B,GAAE,EAAE,CAAC,EAAEha,EAAEoB,UAAU6Y,mCAAmC,WAAWC,EAAE,mBAAmBha,OAAE,EAAOsB,KAAK,EAAExB,EAAEoB,UAAU+Y,yBAAyB,WAAW3Y,KAAKqU,UAAU,UAAUrU,KAAKqU,SAAS,EAAE7V,EAAEoB,UAAUgZ,sBAAsB,WAAW,SAAW,UAAU5Y,KAAKqU,UAAU,EAAE7V,EAAEoB,UAAU4Y,0BAA0B,WAAW,GAAGxY,KAAK6Y,wBAAwB,CAAC,IAAIva,EAAE0B,KAAK8Y,gBAAgB9Y,KAAK+Y,mCAAmCL,EAAE,qBAAqB1Z,EAAEV,EAAE0B,KAAK,CAAC,EAAExB,EAAEoB,UAAUmZ,iCAAiC,WAAW/Y,KAAKqU,UAAU,OAAOrU,KAAKqU,SAAS,EAAE7V,EAAEoB,UAAUoZ,mCAAmC,WAAWhZ,KAAKqU,WAAW,OAAOrU,KAAKqU,SAAS,EAAE7V,EAAEoB,UAAUqZ,8BAA8B,WAAW,OAAO,OAAOjZ,KAAKqU,WAAW,CAAC,EAAE7V,EAAEoB,UAAU2Y,yBAAyB,WAAWvY,KAAKqU,UAAU,QAAQrU,KAAKqU,SAAS,EAAE7V,EAAEoB,UAAUsZ,2BAA2B,WAAWlZ,KAAKqU,WAAW,QAAQrU,KAAKqU,UAAUrU,KAAKiZ,kCAAkCjZ,KAAKgZ,qCAAqChZ,KAAKyY,qCAAqC,EAAEja,EAAEoB,UAAUiZ,sBAAsB,WAAW,OAAO,QAAQ7Y,KAAKqU,WAAW,CAAC,EAAE7V,EAAEoB,UAAUmW,MAAM,SAASzX,EAAEC,EAAEC,GAAG,OAAOqI,EAAEvI,EAAEC,EAAEC,GAAGwB,KAAK,EAAExB,EAAE2a,6BAA6B,SAAS7a,GAAG,IAAIC,EAAEiC,IAAIxB,EAAE,mBAAmBV,EAAE,OAAOC,EAAED,EAAEK,EAAEya,WAAW7a,EAAED,QAAG,CAAM,EAAEE,EAAE6a,4BAA4B,SAAS/a,GAAG,IAAIC,EAAEiC,IAAI9B,EAAE,mBAAmBJ,EAAE,OAAOC,EAAED,EAAEK,EAAEya,WAAW7a,EAAED,QAAG,CAAM,EAAE,IAAI4F,EAAE,WAAW,EAAE1F,EAAE8a,gBAAgB,WAAW,GAAG7Y,EAAE0S,oBAAoBoG,EAAED,gBAAgB,MAAM,IAAItX,MAAM,sGAAsG,IAAIuX,EAAED,iBAAiBE,IAAI,CAAC,IAAIlb,EAAEE,EAAEoB,UAAU6Z,mBAAmBlb,EAAEC,EAAEoB,UAAU0X,kBAAkBiC,EAAED,iBAAgB,EAAGpV,EAAE,WAAW,GAAGzD,EAAE0S,oBAAoBoG,EAAED,gBAAgB,MAAM,IAAItX,MAAM,sGAAsGxD,EAAEoB,UAAU6Z,mBAAmBnb,EAAEE,EAAEoB,UAAU0X,kBAAkB/Y,EAAEE,EAAEuZ,4BAA4BvX,EAAEuS,mBAAmBuG,EAAED,iBAAgB,CAAE,EAAE9a,EAAEoB,UAAU6Z,mBAAmBrS,EAAE5I,EAAEoB,UAAU0X,kBAAkB3N,EAAElL,EAAEwZ,0BAA0BxX,EAAEwS,8BAA8B,CAAC,EAAEzU,EAAEkb,mBAAmB,WAAW,OAAOH,EAAED,iBAAiBE,GAAG,EAAE,IAAIrV,EAAE,WAAW,IAAI,GAAG,mBAAmBwV,YAAY,CAAC,IAAIrb,EAAE,IAAIqb,YAAY,eAAe,OAAOhb,EAAEib,OAAOC,cAAcvb,GAAG,SAASA,EAAEC,GAAG,IAAIC,EAAE,IAAImb,YAAYrb,EAAE0E,cAAc,CAAC8W,OAAOvb,EAAEwb,YAAW,IAAK,OAAOpb,EAAEib,OAAOC,cAAcrb,EAAE,CAAC,CAAC,MAAM,mBAAmBwb,OAAO1b,EAAE,IAAI0b,MAAM,eAAerb,EAAEib,OAAOC,cAAcvb,GAAG,SAASA,EAAEC,GAAG,IAAIC,EAAE,IAAIwb,MAAM1b,EAAE0E,cAAc,CAAC+W,YAAW,IAAK,OAAOvb,EAAEsb,OAAOvb,GAAGI,EAAEib,OAAOC,cAAcrb,EAAE,KAAKF,EAAE2b,SAASC,YAAY,gBAAgBC,gBAAgB,mBAAkB,GAAG,EAAG,CAAC,GAAGxb,EAAEib,OAAOC,cAAcvb,GAAG,SAASA,EAAEC,GAAG,IAAIC,EAAEyb,SAASC,YAAY,eAAe,OAAO1b,EAAE2b,gBAAgB7b,EAAE0E,eAAc,GAAG,EAAGzE,IAAII,EAAEib,OAAOC,cAAcrb,EAAE,EAAE,CAAC,MAAMF,GAAG,CAAC,OAAO,WAAW,OAAM,CAAE,CAAC,CAAtsB,GAA0sB8F,EAAEzF,EAAEyb,OAAO,WAAW,OAAO7b,EAAEwM,KAAKpG,MAAMpG,EAAEwH,UAAU,EAAEpH,EAAEib,OAAO,SAAStb,GAAG,IAAIC,EAAE,KAAKD,EAAE0E,cAAcxE,EAAEG,EAAEib,OAAOrb,GAAG,QAAQC,IAAIA,EAAEmG,MAAMhG,EAAEib,OAAO,GAAGtX,MAAM1D,KAAKmH,UAAU,KAAI,EAAG,EAAE,WAAW,OAAM,CAAE,EAAE,SAASzB,EAAEhG,EAAEC,GAAG,MAAM,CAACuT,QAAQvT,EAAE,CAAC,IAAIkG,EAAE,CAAC4V,eAAe/V,EAAEgW,iBAAiBhW,EAAEiW,gBAAgBjW,EAAEkW,gBAAgBlW,EAAEmW,iBAAiBnW,EAAEoW,eAAe,SAASpc,EAAEC,EAAEC,GAAG,MAAM,CAACsT,QAAQvT,EAAEoc,MAAMnc,EAAE,EAAEoc,QAAQ,SAAStc,EAAEC,GAAG,MAAM,CAACqc,QAAQrc,EAAE,EAAEsc,mBAAmB,SAASvc,EAAEC,EAAEC,GAAG,MAAM,CAACsc,OAAOvc,EAAEuT,QAAQtT,EAAE,EAAEuc,iBAAiBzW,GAAG2B,EAAE,SAAS3H,GAAG,IAAIC,GAAE,EAAG,IAAIA,EAAE6F,EAAEO,MAAM,KAAKoB,UAAU,CAAC,MAAMzH,GAAGmC,EAAE+S,WAAWlV,GAAGC,GAAE,CAAE,CAAC,IAAIC,GAAE,EAAG,IAAIA,EAAE2F,EAAE7F,EAAEmG,EAAEnG,GAAGqG,MAAM,KAAKoB,WAAW,CAAC,MAAMzH,GAAGmC,EAAE+S,WAAWlV,GAAGE,GAAE,CAAE,CAAC,OAAOA,GAAGD,CAAC,EAAE,SAAS2H,IAAI,OAAM,CAAE,CAAC,SAASF,EAAE1H,EAAEC,EAAEC,GAAG,IAAIC,EAAEuB,KAAK,IAAI1B,EAAEC,EAAEC,GAAE,SAASF,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAI2D,UAAU,qCAAqCtD,EAAEiE,SAAStE,IAAIG,EAAEuc,4BAA4B1c,EAAE,GAAE,CAAC,MAAMA,GAAG,OAAOA,CAAC,CAAC,CAAC,SAAS6H,EAAE7H,GAAG,IAAI0B,KAAKgW,iBAAiB,OAAOhW,KAAK,IAAIzB,EAAEyB,KAAKwX,iBAAY,IAASjZ,EAAEI,EAAE4M,QAAQhN,GAAGA,EAAE8B,KAAK/B,GAAG0B,KAAK8U,aAAa,CAACvW,EAAED,IAAI0B,KAAK8U,aAAaxW,EAAE,CAAC,SAASwI,IAAI,OAAO9G,KAAKgX,cAAc,CAAC,SAASjQ,EAAEzI,GAAG0B,KAAKgX,eAAe1Y,CAAC,CAAC,SAAS0I,IAAIhH,KAAKqW,yBAAoB,EAAOrW,KAAKgX,oBAAe,CAAM,CAAC,SAAS/P,EAAE3I,EAAEC,GAAG,GAAO,EAAEA,EAAG,CAACyB,KAAKqW,oBAAoB/X,EAAE,IAAIE,EAAEF,EAAEkY,gCAA2B,IAAShY,IAAIA,EAAE,GAAGF,EAAEkY,2BAA2BhY,EAAE,CAAC,CAAK,EAAED,GAAID,EAAE0W,YAAYhV,KAAK6U,YAAYvW,EAAEyW,SAAS,CAACvW,EAAEyc,OAAO,SAAS3c,GAAG,GAAG,oBAAoBA,EAAEW,OAAOX,MAAMA,EAAEgb,gBAAgB9a,EAAE8a,mBAAmBhb,EAAEgb,iBAAiB9a,EAAEkb,sBAAsBxV,KAAK,aAAa5F,EAAE,CAAC,IAAIC,EAAED,EAAE4c,SAAS3B,EAAE2B,WAAW3c,EAAE0F,EAAEsV,EAAE2B,SAASvc,EAAEqN,SAASzN,IAAI,qBAAqBA,IAAI0F,IAAI1F,EAAE4c,iBAAiB,CAAC,GAAG,iBAAiB7c,GAAGA,EAAEwX,eAAeyD,EAAEzD,aAAa,CAAC,GAAGrV,EAAE0S,kBAAkB,MAAM,IAAInR,MAAM,wDAAwDxD,EAAEoB,UAAUwb,uBAAuBpU,EAAExI,EAAEoB,UAAU4U,eAAevN,EAAEzI,EAAEoB,UAAU4X,UAAU1Q,EAAEtI,EAAEoB,UAAUkV,aAAa/N,EAAEvI,EAAEoB,UAAUob,4BAA4B7U,EAAE3H,EAAEoB,UAAUyb,SAASrV,EAAEkB,EAAED,EAAEsS,EAAEzD,cAAa,CAAE,CAAC,MAAM,eAAexX,IAAIA,EAAEgd,aAAa/B,EAAE+B,YAAY/B,EAAE+B,YAAW,EAAG9c,EAAEoB,UAAU2b,WAAWtV,IAAI3H,EAAEgd,YAAY/B,EAAE+B,aAAa/B,EAAE+B,YAAW,EAAG9c,EAAEoB,UAAU2b,WAAWrV,IAAI1H,CAAC,EAAEA,EAAEoB,UAAU2b,WAAWrV,EAAE1H,EAAEoB,UAAUyb,SAAS,SAAS/c,EAAEC,EAAEC,GAAG,IAAIF,EAAEC,EAAEC,EAAE,CAAC,MAAMF,GAAG,OAAOA,CAAC,CAAC,EAAEE,EAAEoB,UAAU4X,UAAU,WAAW,EAAEhZ,EAAEoB,UAAUkV,aAAa,SAASxW,GAAG,EAAEE,EAAEoB,UAAUob,4BAA4B,SAAS1c,GAAG,EAAEE,EAAEoB,UAAU6Z,mBAAmB,WAAW,EAAEjb,EAAEoB,UAAU0X,kBAAkB,WAAW,EAAE9Y,EAAEoB,UAAUwb,uBAAuB,WAAW,EAAE5c,EAAEoB,UAAU4U,eAAe,SAASlW,EAAEC,GAAG,EAAE,IAAI2I,EAAE,SAAS5I,EAAEC,GAAO,EAAEA,GAAID,EAAE0W,YAAYhV,KAAK6U,YAAYvW,EAAEyW,SAAS,EAAE,SAAS5N,IAAI,IAAI7I,EAAE0B,KAAK+U,SAAS,YAAO,IAASzW,GAAGA,aAAaE,EAAEF,EAAEkd,cAAcld,EAAEiB,aAAQ,EAAOjB,CAAC,CAAC,SAAS8I,IAAIpH,KAAK0X,OAAO,IAAI+D,EAAEzb,KAAK+X,eAAe,CAAC,SAASpO,EAAErL,EAAEC,GAAG,GAAG+B,EAAEhC,GAAG,CAAC,IAAIE,EAAEwB,KAAK0X,OAAO,QAAG,IAASlZ,GAAGD,IAAIC,EAAEA,EAAEkd,cAAS,IAASld,EAAEA,EAAEmd,iBAAiBrd,QAAQ,IAAIA,EAAEsd,iBAAiB,CAAC,IAAInd,EAAEsE,EAAEzE,GAAGK,EAAEkd,kBAAkBvd,EAAE,QAAQG,EAAEqd,QAAQ,KAAKrd,EAAE6U,MAAM/M,KAAK,OAAO5H,EAAEkd,kBAAkBvd,EAAE,oBAAmB,EAAG,CAAC,CAAC,CAAC,SAASuI,EAAEvI,EAAEC,EAAEE,GAAG,GAAG8a,EAAE2B,SAAS,CAAC,IAAIxc,EAAEM,EAAE,IAAIF,EAAER,GAAG,GAAGC,EAAEE,EAAE6Y,kBAAkBtY,QAAQ,GAAGua,EAAED,kBAAkB5a,EAAEF,EAAEuZ,gBAAgBrZ,EAAEid,iBAAiB3c,OAAO,CAAC,IAAIe,EAAEgD,EAAE/D,GAAGA,EAAEsU,MAAMvT,EAAE+b,QAAQ,KAAK/b,EAAEuT,MAAM/M,KAAK,KAAK,CAACN,EAAE,UAAUjH,IAAI8E,EAAE9E,EAAE,IAAG,EAAG,CAAC,CAAC,SAAS8D,EAAExE,GAAG,IAAI,IAAIC,EAAE,GAAGC,EAAE,EAAEA,EAAEF,EAAEoC,SAASlC,EAAE,CAAC,IAAIC,EAAEH,EAAEE,GAAGE,EAAE,yBAAyBD,GAAGwE,EAAE8Y,KAAKtd,GAAGO,EAAEN,GAAGsd,EAAEvd,GAAGC,IAAIM,IAAIqE,GAAG,MAAM5E,EAAEwd,OAAO,KAAKxd,EAAE,OAAOA,GAAGF,EAAE8B,KAAK5B,GAAG,CAAC,OAAOF,CAAC,CAAC,SAASwE,EAAEzE,GAAG,IAAIC,EAAED,EAAEgV,MAAM9U,EAAEF,EAAEsE,WAAW,OAAOrE,EAAE,iBAAiBA,GAAGA,EAAEmC,OAAO,EAAE,SAASpC,GAAG,IAAI,IAAIC,EAAED,EAAEgV,MAAMxJ,QAAQ,QAAQ,IAAIoS,MAAM,MAAM1d,EAAE,EAAEA,EAAED,EAAEmC,SAASlC,EAAE,CAAC,IAAIC,EAAEF,EAAEC,GAAG,GAAG,yBAAyBC,GAAGwE,EAAE8Y,KAAKtd,GAAG,KAAK,CAAC,OAAOD,EAAE,GAAG,eAAeF,EAAE6d,OAAO5d,EAAEA,EAAE+D,MAAM9D,IAAID,CAAC,CAA/L,CAAiMD,GAAG,CAAC,wBAAwB,CAACwd,QAAQtd,EAAE8U,MAAM,eAAehV,EAAE6d,KAAK5d,EAAEuE,EAAEvE,GAAG,CAAC,SAASuF,EAAExF,EAAEC,EAAEC,GAAG,GAAG,oBAAoB0P,QAAQ,CAAC,IAAIzP,EAAE,GAAGE,EAAEqN,SAAS1N,GAAG,CAAC,IAAII,EAAEJ,EAAEgV,MAAM7U,EAAEF,EAAE2E,EAAExE,EAAEJ,EAAE,MAAMG,EAAEF,EAAEiF,OAAOlF,GAAG,mBAAmByB,EAAEA,EAAEtB,EAAED,GAAG,mBAAmB0P,QAAQkO,KAAK,iBAAiBlO,QAAQkO,KAAKlO,QAAQkO,IAAI3d,EAAE,CAAC,CAAC,SAASia,EAAEpa,EAAEC,EAAEC,EAAEC,GAAG,IAAIC,GAAE,EAAG,IAAI,mBAAmBH,IAAIG,GAAE,EAAG,qBAAqBJ,EAAEC,EAAEE,GAAGF,EAAEC,EAAEC,GAAG,CAAC,MAAMH,GAAGmC,EAAE+S,WAAWlV,EAAE,CAAC,uBAAuBA,EAAE2H,EAAE3H,EAAEE,EAAEC,IAAIC,GAAGoF,EAAEtF,EAAE,wBAAwByH,EAAE3H,EAAEG,EAAE,CAAC,SAAS4d,EAAE/d,GAAG,IAAIC,EAAE,GAAG,mBAAmBD,EAAEC,EAAE,cAAcD,EAAE6d,MAAM,aAAa,QAAQ,CAAC,GAAG5d,EAAED,GAAG,mBAAmBA,EAAEsE,SAAStE,EAAEsE,WAAWjE,EAAEiE,SAAStE,GAAG,4BAA4Byd,KAAKxd,GAAG,IAAIA,EAAE+d,KAAKC,UAAUje,EAAE,CAAC,MAAMA,GAAG,CAAC,IAAIC,EAAEmC,SAASnC,EAAE,gBAAgB,CAAC,MAAM,KAAK,SAASD,GAAG,OAAOA,EAAEoC,OAAO,GAAGpC,EAAEA,EAAEsF,OAAO,EAAE,IAAI,KAAK,CAArD,CAAuDrF,GAAG,oBAAoB,CAAC,SAASib,IAAI,MAAM,mBAAmBgD,CAAC,CAAC,IAAIR,EAAE,WAAW,OAAM,CAAE,EAAES,EAAE,wCAAwC,SAASC,EAAEpe,GAAG,IAAIC,EAAED,EAAEgI,MAAMmW,GAAG,GAAGle,EAAE,MAAM,CAACoe,SAASpe,EAAE,GAAGqe,KAAKjZ,SAASpF,EAAE,GAAG,IAAI,CAAC,SAASkd,EAAEnd,GAAG0B,KAAK0b,QAAQpd,EAAE0B,KAAK6c,iBAAiB,EAAE,IAAIte,EAAEyB,KAAK8W,QAAQ,QAAG,IAASxY,EAAE,EAAEA,EAAEwY,SAAS0F,EAAExc,KAAKyb,GAAGld,EAAE,IAAIyB,KAAK8c,SAAS,CAACne,EAAE4B,SAASkb,EAAEzZ,OAAOvD,EAAEkZ,cAAc8D,EAAEA,EAAE7b,UAAUkd,QAAQ,WAAW,IAAIxe,EAAE0B,KAAK8W,QAAQ,KAAKxY,EAAE,GAAG,CAAC,IAAI,IAAIC,EAAE,GAAGC,EAAE,CAAC,EAAEC,EAAE,EAAEC,EAAEsB,UAAK,IAAStB,IAAID,EAAEF,EAAE8B,KAAK3B,GAAGA,EAAEA,EAAEgd,QAAQ,IAAIjd,GAAGH,EAAE0B,KAAK8W,QAAQrY,GAAG,EAAEA,GAAG,IAAIA,EAAE,CAAC,IAAIO,EAAET,EAAEE,GAAG6U,WAAM,IAAS9U,EAAEQ,KAAKR,EAAEQ,GAAGP,EAAE,CAAC,IAAIA,EAAE,EAAEA,EAAEH,IAAIG,EAAE,CAAC,IAAIsB,EAAEvB,EAAED,EAAEE,GAAG6U,OAAO,QAAG,IAASvT,GAAGA,IAAItB,EAAE,CAACsB,EAAE,IAAIxB,EAAEwB,EAAE,GAAG2b,aAAQ,EAAOnd,EAAEwB,EAAE,GAAG+W,QAAQ,GAAGvY,EAAEE,GAAGid,aAAQ,EAAOnd,EAAEE,GAAGqY,QAAQ,EAAE,IAAItW,EAAE/B,EAAE,EAAEF,EAAEE,EAAE,GAAGuB,KAAKD,EAAEzB,EAAE,GAAGkC,EAAEkb,QAAQnd,EAAEwB,EAAE,GAAGS,EAAEkb,QAAQoB,UAAUtc,EAAEsW,QAAQtW,EAAEkb,QAAQ5E,QAAQ,IAAItW,EAAEkb,aAAQ,EAAOlb,EAAEsW,QAAQ,GAAG,IAAI,IAAIrW,EAAED,EAAEsW,QAAQ,EAAEhY,EAAEL,EAAE,EAAEK,GAAG,IAAIA,EAAEP,EAAEO,GAAGgY,QAAQrW,EAAEA,IAAI,MAAM,CAAC,CAAC,CAAC,EAAEgb,EAAE7b,UAAU+b,iBAAiB,SAASrd,GAAG,IAAIA,EAAEsd,iBAAiB,CAAC5b,KAAK8c,UAAU,IAAI,IAAIve,EAAEwE,EAAEzE,GAAGE,EAAED,EAAEud,QAAQrd,EAAE,CAACF,EAAE+U,OAAO5U,EAAEsB,UAAK,IAAStB,GAAGD,EAAE4B,KAAKyC,EAAEpE,EAAE4U,MAAM4I,MAAM,QAAQxd,EAAEA,EAAEgd,SAAS,SAASpd,GAAG,IAAI,IAAIC,EAAED,EAAE,GAAGE,EAAE,EAAEA,EAAEF,EAAEoC,SAASlC,EAAE,CAAC,IAAI,IAAIC,EAAEH,EAAEE,GAAGE,EAAEH,EAAEmC,OAAO,EAAE1B,EAAET,EAAEG,GAAGqB,GAAG,EAAES,EAAE/B,EAAEiC,OAAO,EAAEF,GAAG,IAAIA,EAAE,GAAG/B,EAAE+B,KAAKxB,EAAE,CAACe,EAAES,EAAE,KAAK,CAAC,IAAIA,EAAET,EAAES,GAAG,IAAIA,EAAE,CAAC,IAAIC,EAAEhC,EAAE+B,GAAG,GAAGjC,EAAEG,KAAK+B,EAAE,MAAMlC,EAAE+W,MAAM5W,GAAG,CAACH,EAAEE,CAAC,CAAC,CAAnM,CAAqMA,GAAG,SAASH,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEoC,SAASnC,GAAG,IAAID,EAAEC,GAAGmC,QAAQnC,EAAE,EAAED,EAAEoC,QAAQpC,EAAEC,GAAG,KAAKD,EAAEC,EAAE,GAAG,MAAMD,EAAE8P,OAAO7P,EAAE,GAAGA,IAAI,CAAhH,CAAkHE,GAAGE,EAAEkd,kBAAkBvd,EAAE,QAAQ,SAASA,EAAEC,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEmC,OAAO,IAAIlC,EAAED,EAAEC,GAAG6B,KAAK,wBAAwB9B,EAAEC,GAAGD,EAAEC,GAAG+H,KAAK,MAAM,OAAO/H,EAAED,EAAEmC,SAASnC,EAAEC,GAAGD,EAAEC,GAAG+H,KAAK,OAAOjI,EAAE,KAAKC,EAAEgI,KAAK,KAAK,CAA/J,CAAiK/H,EAAEC,IAAIE,EAAEkd,kBAAkBvd,EAAE,oBAAmB,EAAG,CAAC,EAAE,IAAIke,EAAE,WAAW,IAAIle,EAAE,YAAYC,EAAE,SAASD,EAAEC,GAAG,MAAM,iBAAiBD,EAAEA,OAAE,IAASC,EAAE4d,WAAM,IAAS5d,EAAEud,QAAQvd,EAAEqE,WAAWyZ,EAAE9d,EAAE,EAAE,GAAG,iBAAiByD,MAAM+a,iBAAiB,mBAAmB/a,MAAMgb,kBAAkB,CAAChb,MAAM+a,iBAAiB,EAAE9Z,EAAE3E,EAAE4E,EAAE3E,EAAE,IAAIC,EAAEwD,MAAMgb,kBAAkB,OAAOhB,EAAE,SAAS1d,GAAG,OAAOyC,EAAEgb,KAAKzd,EAAE,EAAE,SAASA,EAAEC,GAAGyD,MAAM+a,iBAAiB,EAAEve,EAAEF,EAAEC,GAAGyD,MAAM+a,iBAAiB,CAAC,CAAC,CAAC,IAAIte,EAAEC,EAAE,IAAIsD,MAAM,GAAG,iBAAiBtD,EAAE4U,OAAO5U,EAAE4U,MAAM4I,MAAM,MAAM,GAAG5Y,QAAQ,oBAAoB,EAAE,OAAOL,EAAE,IAAIC,EAAE3E,EAAE8E,GAAE,EAAG,SAAS/E,GAAGA,EAAEgV,OAAM,IAAKtR,OAAOsR,KAAK,EAAE,IAAI,MAAM,IAAItR,KAAK,CAAC,MAAM1D,GAAGG,EAAE,UAAUH,CAAC,CAAC,MAAM,UAAUI,IAAID,GAAG,iBAAiBuD,MAAM+a,iBAAiB7Z,EAAE,SAAS5E,EAAEC,GAAG,MAAM,iBAAiBD,EAAEA,EAAE,iBAAiBC,GAAG,mBAAmBA,QAAG,IAASA,EAAE4d,WAAM,IAAS5d,EAAEud,QAAQO,EAAE9d,GAAGA,EAAEqE,UAAU,EAAE,OAAOK,EAAE3E,EAAE4E,EAAE3E,EAAE,SAASD,GAAG0D,MAAM+a,iBAAiB,EAAE,IAAI,MAAM,IAAI/a,KAAK,CAAC,MAAMzD,GAAGD,EAAEgV,MAAM/U,EAAE+U,KAAK,CAACtR,MAAM+a,iBAAiB,CAAC,EAAE,CAAt5B,GAA05B,oBAAoB7O,cAAS,IAASA,QAAQ+O,OAAOld,EAAE,SAASzB,GAAG4P,QAAQ+O,KAAK3e,EAAE,EAAEK,EAAEyb,QAAQ7b,EAAE8U,OAAO6J,MAAMnd,EAAE,SAASzB,EAAEC,GAAG,IAAIC,EAAED,EAAE,QAAQ,QAAQ2P,QAAQ+O,KAAKze,EAAEF,EAAE,SAAS,EAAEK,EAAEyb,QAAQ,iBAAgB,IAAKpY,OAAOsR,QAAQvT,EAAE,SAASzB,EAAEC,GAAG2P,QAAQ+O,KAAK,KAAK3e,EAAEC,EAAE,oBAAoB,aAAa,IAAI,IAAIgb,EAAE,CAAC2B,SAASrX,EAAEyV,iBAAgB,EAAGxD,cAAa,EAAGwF,YAAW,GAAI,OAAOvX,GAAGvF,EAAE8a,kBAAkB,CAACA,gBAAgB,WAAW,OAAOC,EAAED,eAAe,EAAE4B,SAAS,WAAW,OAAO3B,EAAE2B,QAAQ,EAAEpF,aAAa,WAAW,OAAOyD,EAAEzD,YAAY,EAAEwF,WAAW,WAAW,OAAO/B,EAAE+B,UAAU,EAAE7G,sBAAsB,WAAW,OAAOvN,CAAC,EAAEyN,mBAAmB,WAAW,OAAOxN,CAAC,EAAEgW,sBAAsB,SAAS7e,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,QAAG,IAASJ,GAAG,OAAOC,GAAG0F,EAAE,CAAC,QAAG,IAASvF,GAAGA,EAAEka,wBAAwB,OAAO,KAAO,MAAMna,EAAE4V,WAAW,OAAO7V,IAAIA,GAAG,KAAK,IAAIQ,EAAE,GAAGe,EAAE,GAAG,GAAGxB,EAAEmZ,OAAO,CAAC,IAAI,IAAIlX,EAAEjC,EAAEmZ,OAAOpE,MAAM4I,MAAM,MAAMzb,EAAEqC,EAAEtC,GAAG1B,EAAE2B,EAAEC,OAAO,EAAE5B,GAAG,IAAIA,EAAE,CAAC,IAAIH,EAAE8B,EAAE3B,GAAG,IAAIgB,EAAEic,KAAKpd,GAAG,CAAC,IAAI2B,EAAE3B,EAAE2H,MAAMvH,GAAGuB,IAAItB,EAAE,MAAMsB,EAAE,GAAG,IAAIA,EAAE,GAAG,IAAIA,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,GAAGG,EAAEC,OAAO,EAAE,CAAC,IAAIK,EAAEN,EAAE,GAAG,IAAI3B,EAAE,EAAEA,EAAE0B,EAAEE,SAAS5B,EAAE,GAAG0B,EAAE1B,KAAKiC,EAAE,CAACjC,EAAE,IAAIiB,EAAE,KAAKS,EAAE1B,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAImE,EAAE,8BAA8BzE,EAAE,WAAWQ,EAAE,yDAAyDe,EAAEtB,EAAEsX,MAAM9S,GAAE,EAAG1E,EAAE,CAAC,EAAE6e,UAAU,SAAS9e,EAAEC,GAAG,GAAGib,IAAI,CAAC,IAAI,IAAIhb,EAAEC,EAAEC,EAAEJ,EAAEgV,MAAM4I,MAAM,MAAMld,EAAET,EAAE+U,MAAM4I,MAAM,MAAMnc,GAAG,EAAES,GAAG,EAAEC,EAAE,EAAEA,EAAE/B,EAAEgC,SAASD,EAAE,GAAG3B,EAAE4d,EAAEhe,EAAE+B,IAAI,CAACjC,EAAEM,EAAE6d,SAAS5c,EAAEjB,EAAE8d,KAAK,KAAK,CAAC,IAAInc,EAAE,EAAEA,EAAEzB,EAAE0B,SAASD,EAAE,CAAC,IAAI3B,EAAE,GAAGA,EAAE4d,EAAE1d,EAAEyB,IAAI,CAAChC,EAAEK,EAAE6d,SAASnc,EAAE1B,EAAE8d,KAAK,KAAK,CAAC,CAAC7c,EAAE,GAAGS,EAAE,IAAIhC,IAAIC,GAAGD,IAAIC,GAAGsB,GAAGS,IAAIwb,EAAE,SAAS1d,GAAG,GAAGyC,EAAEgb,KAAKzd,GAAG,OAAM,EAAG,IAAIC,EAAEme,EAAEpe,GAAG,SAASC,GAAGA,EAAEoe,WAAWne,GAAGuB,GAAGxB,EAAEqe,MAAMre,EAAEqe,MAAMpc,EAAE,EAAE,CAAC,EAAEyc,KAAKpW,EAAEwW,WAAW,SAAS/e,EAAEC,GAAG,IAAIC,EAAEF,EAAE,0DAA0D,OAAOC,IAAIC,GAAG,QAAQD,EAAE,aAAasI,EAAErI,EAAE,EAAEmZ,cAAc8D,EAAE6B,aAAanZ,EAAEoZ,gBAAgBnZ,EAAE,CAAC,EAAE,CAAC,WAAW,GAAG,SAAS,KAAK,GAAG,CAAC,SAAS9F,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASC,GAAG,SAASC,IAAI,OAAOyB,KAAKT,KAAK,CAAC,SAASf,IAAI,MAAMwB,KAAK8a,MAAM,CAACxc,EAAEsB,UAAU4d,OAAOlf,EAAEsB,UAAU6d,WAAW,SAASjf,GAAG,OAAOA,aAAaF,GAAGE,EAAE6Z,8BAA8BrY,KAAKoU,MAAM7V,OAAE,OAAO,EAAO,CAACgB,MAAMf,QAAG,EAAO,EAAEF,EAAEsB,UAAU8d,MAAMpf,EAAEsB,UAAU+d,UAAU,SAASrf,GAAG,OAAO0B,KAAKoU,MAAM5V,OAAE,OAAO,EAAO,CAACsc,OAAOxc,QAAG,EAAO,EAAEA,EAAEsB,UAAUge,WAAW,SAAStf,GAAG,GAAGyH,UAAUrF,QAAQ,EAAE,OAAOV,KAAKoU,WAAM,EAAO5V,OAAE,EAAO,CAACsc,OAAOxc,QAAG,GAAQ,IAAIC,EAAEwH,UAAU,GAAG,OAAO/F,KAAK6d,OAAOvf,GAAE,WAAW,MAAMC,CAAC,GAAE,EAAED,EAAEsB,UAAUke,YAAY,SAAStf,GAAG,GAAGuH,UAAUrF,QAAQ,EAAE,OAAOlC,aAAaF,GAAGE,EAAE6Z,8BAA8BrY,KAAKoU,WAAM,EAAO7V,OAAE,EAAO,CAACgB,MAAMf,QAAG,GAAQ,IAAIC,EAAEsH,UAAU,GAAG,OAAOtH,aAAaH,GAAGG,EAAE4Z,8BAA8BrY,KAAK6d,OAAOrf,GAAE,WAAW,OAAOC,CAAC,GAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,SAASH,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASC,EAAEC,GAAG,IAAIC,EAAEF,EAAEyf,OAAOtf,EAAEH,EAAE0f,IAAI,SAAStf,IAAI,OAAOD,EAAEuB,KAAK,CAAC1B,EAAEsB,UAAUqe,KAAK,SAAS3f,GAAG,OAAOE,EAAEwB,KAAK1B,EAAEC,EAAE,GAAG6V,MAAM1V,OAAE,OAAO,EAAOsB,UAAK,EAAO,EAAE1B,EAAEsB,UAAUse,UAAU,SAAS5f,GAAG,OAAOE,EAAEwB,KAAK1B,EAAEC,EAAEA,EAAE,EAAED,EAAE2f,KAAK,SAAS3f,EAAEG,GAAG,OAAOD,EAAEF,EAAEG,EAAEF,EAAE,GAAG6V,MAAM1V,OAAE,OAAO,EAAOJ,OAAE,EAAO,EAAEA,EAAE4f,UAAU,SAAS5f,EAAEG,GAAG,OAAOD,EAAEF,EAAEG,EAAEF,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,SAASD,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAEC,EAAEM,EAAEV,EAAE,SAASyB,EAAEf,EAAEmf,OAAO3d,EAAElC,EAAE,UAAUmC,EAAED,EAAED,SAASzB,EAAE0B,EAAEqb,kBAAkB,SAASld,EAAEL,EAAEC,GAAG,SAASC,EAAEC,GAAG,KAAKuB,gBAAgBxB,GAAG,OAAO,IAAIA,EAAEC,GAAGK,EAAEkB,KAAK,UAAU,iBAAiBvB,EAAEA,EAAEF,GAAGO,EAAEkB,KAAK,OAAO1B,GAAG0D,MAAMgb,kBAAkBhb,MAAMgb,kBAAkBhd,KAAKA,KAAK0B,aAAaM,MAAMpD,KAAKoB,KAAK,CAAC,OAAOS,EAAEjC,EAAEwD,OAAOxD,CAAC,CAAC,IAAI8B,EAAE3B,EAAE,UAAU,WAAWoC,EAAEpC,EAAE,oBAAoB,sBAAsBmB,EAAEnB,EAAE,eAAe,iBAAiBI,EAAEJ,EAAE,iBAAiB,mBAAmB,IAAIF,EAAEwD,UAAUvD,EAAEmD,UAAU,CAAC,MAAMvD,GAAGG,EAAEE,EAAE,YAAY,cAAcD,EAAEC,EAAE,aAAa,cAAc,CAAC,IAAI,IAAIsE,EAAE,sHAAsHiZ,MAAM,KAAKhZ,EAAE,EAAEA,EAAED,EAAEvC,SAASwC,EAAE,mBAAmByD,MAAM/G,UAAUqD,EAAEC,MAAMnE,EAAEa,UAAUqD,EAAEC,IAAIyD,MAAM/G,UAAUqD,EAAEC,KAAKlE,EAAEE,eAAeH,EAAEa,UAAU,SAAS,CAACL,MAAM,EAAEoC,cAAa,EAAGf,UAAS,EAAGzB,YAAW,IAAKJ,EAAEa,UAAUwe,eAAc,EAAG,IAAI/a,EAAE,EAAE,SAASxE,EAAEP,GAAG,KAAK0B,gBAAgBnB,GAAG,OAAO,IAAIA,EAAEP,GAAGQ,EAAEkB,KAAK,OAAO,oBAAoBlB,EAAEkB,KAAK,UAAU1B,GAAG0B,KAAKqe,MAAM/f,EAAE0B,KAAKoe,eAAc,EAAG9f,aAAa0D,OAAOlD,EAAEkB,KAAK,UAAU1B,EAAEwd,SAAShd,EAAEkB,KAAK,QAAQ1B,EAAEgV,QAAQtR,MAAMgb,mBAAmBhb,MAAMgb,kBAAkBhd,KAAKA,KAAK0B,YAAY,CAAC3C,EAAEa,UAAUgD,SAAS,WAAW,IAAItE,EAAEqI,MAAM,EAAEtD,EAAE,GAAGkD,KAAK,KAAKhI,EAAE,KAAKD,EAAE,uBAAuB+E,IAAI/E,EAAEqI,MAAM,EAAEtD,EAAE,GAAGkD,KAAK,KAAK,IAAI,IAAI/H,EAAE,EAAEA,EAAEwB,KAAKU,SAASlC,EAAE,CAAC,IAAI,IAAIC,EAAEuB,KAAKxB,KAAKwB,KAAK,4BAA4BA,KAAKxB,GAAG,GAAGE,EAAED,EAAEyd,MAAM,MAAMld,EAAE,EAAEA,EAAEN,EAAEgC,SAAS1B,EAAEN,EAAEM,GAAGV,EAAEI,EAAEM,GAAGT,IAAIE,EAAEC,EAAE6H,KAAK,OAAO,IAAI,CAAC,OAAOlD,IAAI9E,CAAC,EAAEkC,EAAE5B,EAAEmD,OAAO,IAAI6B,EAAE7B,MAAMsc,uBAAuBza,IAAIA,EAAE9D,EAAE,CAACwe,kBAAkBxd,EAAEyd,aAAa1e,EAAE2e,iBAAiB5f,EAAE6f,eAAe7f,EAAE8f,eAAe5f,IAAIC,EAAEE,eAAe8C,MAAM,yBAAyB,CAACzC,MAAMsE,EAAEjD,UAAS,EAAGzB,YAAW,EAAGwC,cAAa,KAAMpD,EAAEF,QAAQ,CAAC2D,MAAYC,UAAUxD,EAAEoD,WAAWnD,EAAE6f,kBAAkB1a,EAAE0a,kBAAkBE,iBAAiB5a,EAAE4a,iBAAiBD,aAAa3a,EAAE2a,aAAaG,eAAe9a,EAAE8a,eAAexG,QAAQ7X,EAAE,EAAE,CAAC,QAAQ,GAAG,SAAS,KAAK,GAAG,CAAC,SAAShC,EAAEC,EAAEC,GAAG,IAAIC,EAAE,WAAW,aAAa,YAAO,IAASuB,IAAI,CAA5C,GAAgD,GAAGvB,EAAEF,EAAEF,QAAQ,CAAC8f,OAAOlf,OAAOkf,OAAOjf,eAAeD,OAAOC,eAAe0f,cAAc3f,OAAO4f,yBAAyBze,KAAKnB,OAAOmB,KAAK0e,MAAM7f,OAAO8f,oBAAoBC,eAAe/f,OAAO+f,eAAezT,QAAQ5E,MAAM4E,QAAQ0T,MAAMxgB,EAAEygB,mBAAmB,SAAS5gB,EAAEC,GAAG,IAAIC,EAAES,OAAO4f,yBAAyBvgB,EAAEC,GAAG,QAAQC,IAAIA,EAAEoC,WAAWpC,EAAE+C,IAAI,OAAO,CAAC,IAAI7C,EAAE,CAAC,EAAEmB,eAAeb,EAAE,CAAC,EAAE4D,SAAS7C,EAAE,CAAC,EAAE2B,YAAY9B,UAAUY,EAAE,SAASlC,GAAG,IAAIC,EAAE,GAAG,IAAI,IAAIC,KAAKF,EAAEI,EAAEE,KAAKN,EAAEE,IAAID,EAAE8B,KAAK7B,GAAG,OAAOD,CAAC,EAAEA,EAAEF,QAAQ,CAACkN,QAAQ,SAASjN,GAAG,IAAI,MAAM,mBAAmBU,EAAEJ,KAAKN,EAAE,CAAC,MAAMA,GAAG,OAAM,CAAE,CAAC,EAAE8B,KAAKI,EAAEse,MAAMte,EAAEtB,eAAe,SAASZ,EAAEC,EAAEC,GAAG,OAAOF,EAAEC,GAAGC,EAAEe,MAAMjB,CAAC,EAAEsgB,cAAc,SAAStgB,EAAEC,GAAG,MAAM,CAACgB,MAAMjB,EAAEC,GAAG,EAAE4f,OAAO,SAAS7f,GAAG,OAAOA,CAAC,EAAE0gB,eAAe,SAAS1gB,GAAG,IAAI,OAAOW,OAAOX,GAAGoD,YAAY9B,SAAS,CAAC,MAAMtB,GAAG,OAAOyB,CAAC,CAAC,EAAEkf,MAAMxgB,EAAEygB,mBAAmB,WAAW,OAAM,CAAE,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS5gB,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASC,EAAEC,GAAG,IAAIC,EAAEF,EAAEgO,IAAIhO,EAAEsB,UAAUuf,OAAO,SAAS7gB,EAAEG,GAAG,OAAOD,EAAEwB,KAAK1B,EAAEG,EAAEF,EAAE,EAAED,EAAE6gB,OAAO,SAAS7gB,EAAEG,EAAEC,GAAG,OAAOF,EAAEF,EAAEG,EAAEC,EAAEH,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,SAASD,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,GAAG,IAAIC,EAAEJ,EAAE,UAAUU,EAAET,EAAEggB,kBAAkBxe,EAAErB,EAAEgX,SAASlV,EAAElC,EAAE,iBAAFA,CAAoBG,GAAG,SAASgC,EAAEnC,EAAEC,EAAEC,GAAGwB,KAAK8R,QAAQxT,EAAE0B,KAAK0C,KAAKnE,EAAEyB,KAAKof,QAAQ5gB,EAAEwB,KAAKqf,QAAO,EAAGrf,KAAKsf,cAAc,IAAI,CAAC,SAASxgB,EAAER,GAAG0B,KAAKuf,eAAejhB,CAAC,CAAC,SAASK,EAAEL,EAAEC,GAAG,OAAO,MAAMD,EAAEghB,gBAAgBvZ,UAAUrF,OAAO,EAAEpC,EAAEghB,cAAcrL,QAAQ1V,GAAGD,EAAEghB,cAAc3I,UAAUrY,EAAEghB,cAAc,MAAK,EAAG,CAAC,SAAShf,IAAI,OAAOR,EAAElB,KAAKoB,KAAKA,KAAK8R,QAAQ8C,UAAUkE,gBAAgB,CAAC,SAAS/X,EAAEzC,GAAG,IAAIK,EAAEqB,KAAK1B,GAAG,OAAOyB,EAAExB,EAAED,EAAEyB,CAAC,CAAC,SAASD,EAAExB,GAAG,IAAII,EAAEsB,KAAK8R,QAAQtR,EAAER,KAAKof,QAAQ,IAAIpf,KAAKqf,OAAO,CAACrf,KAAKqf,QAAO,EAAG,IAAI5e,EAAET,KAAKwf,mBAAmBhf,EAAE5B,KAAKF,EAAEgW,eAAelU,EAAE5B,KAAKF,EAAEgW,cAAcpW,GAAG,GAAGmC,IAAIhC,EAAE,OAAOgC,EAAE,QAAG,IAASA,EAAE,CAAC/B,EAAEia,2BAA2B,IAAI7Y,EAAEtB,EAAEiC,EAAE/B,GAAG,GAAGoB,aAAavB,EAAE,CAAC,GAAG,MAAMyB,KAAKsf,cAAc,CAAC,GAAGxf,EAAEoX,eAAe,CAAC,IAAInY,EAAE,IAAIC,EAAE,8BAA8B,OAAON,EAAE4Y,kBAAkBvY,GAAGgB,EAAExB,EAAEQ,EAAEgB,CAAC,CAACD,EAAEmX,aAAanX,EAAEkb,4BAA4B,IAAIlc,EAAEkB,MAAM,CAAC,OAAOF,EAAEsU,MAAM9T,EAAES,OAAE,EAAOf,UAAK,EAAO,CAAC,CAAC,CAAC,OAAOtB,EAAE+gB,cAAc9gB,EAAEqB,MAAMD,EAAExB,EAAED,EAAEyB,IAAIpB,EAAEqB,MAAM1B,EAAE,CAAC,OAAOmC,EAAEb,UAAU4f,iBAAiB,WAAW,OAAO,IAAIxf,KAAK0C,IAAI,EAAE5D,EAAEc,UAAU2X,iBAAiB,WAAW5Y,EAAEqB,KAAKuf,eAAe,EAAEhhB,EAAEqB,UAAU8f,aAAa,SAASphB,EAAEC,EAAEC,EAAEC,GAAG,MAAM,mBAAmBH,EAAE0B,KAAK2f,OAAO3f,KAAKoU,MAAM5V,EAAEC,OAAE,EAAO,IAAIgC,EAAET,KAAKzB,EAAED,QAAG,EAAO,EAAEC,EAAEqB,UAAUggB,OAAOrhB,EAAEqB,UAAUigB,QAAQ,SAASvhB,GAAG,OAAO0B,KAAK0f,aAAaphB,EAAE,EAAEwB,EAAEA,EAAE,EAAEvB,EAAEqB,UAAUkgB,IAAI,SAASxhB,GAAG,OAAO0B,KAAK0f,aAAaphB,EAAE,EAAEwB,EAAE,EAAEvB,EAAEqB,UAAUmgB,SAAS,SAASzhB,GAAG,IAAIE,EAAEuH,UAAUrF,OAAO,GAAG,IAAIlC,EAAE,OAAOwB,KAAK0f,aAAaphB,EAAE,OAAE,EAAOwB,GAAG,IAAIrB,EAAEO,EAAE,IAAI2H,MAAMnI,EAAE,GAAGuB,EAAE,EAAE,IAAItB,EAAE,EAAEA,EAAED,EAAE,IAAIC,EAAE,CAAC,IAAIgC,EAAEsF,UAAUtH,GAAG,IAAIC,EAAEsN,SAASvL,GAAG,OAAOlC,EAAEyhB,OAAO,IAAI/d,UAAU,6DAA6DvD,EAAE2W,YAAY5U,KAAKzB,EAAEe,KAAKU,CAAC,CAACzB,EAAE0B,OAAOX,EAAE,IAAIjB,EAAEiH,UAAUtH,GAAG,OAAOuB,KAAK0f,aAAalf,EAAExB,EAAEF,EAAEkB,MAAM,OAAE,EAAOF,EAAE,EAAEW,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,SAAS,KAAK,GAAG,CAAC,SAASnC,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,EAAEC,EAAEM,EAAEe,GAAG,IAAIS,EAAElC,EAAE,YAAY2D,UAAUxB,EAAEnC,EAAE,UAAUQ,EAAE2B,EAAEiV,SAAS/W,EAAE8B,EAAEgV,SAASnV,EAAE,GAAG,SAASS,EAAEzC,EAAEE,EAAEE,EAAEM,GAAG,GAAGe,EAAE+V,eAAe,CAAC,IAAItV,EAAE,IAAIjC,EAAEE,GAAGgC,EAAET,KAAKigB,gBAAgB,IAAI1hB,EAAEE,GAAGuB,KAAKkgB,SAAS1f,EAAEof,QAAO,WAAW,OAAOnf,CAAC,IAAGD,EAAEiZ,qBAAqBjZ,EAAEsU,aAAa9U,KAAK,MAAMA,KAAKkgB,SAAS,IAAI3hB,EAAEE,IAAIgb,qBAAqBzZ,KAAKmgB,OAAOnhB,EAAEgB,KAAKogB,mBAAmB9hB,EAAE0B,KAAKqgB,UAAU7hB,EAAEwB,KAAKsgB,gBAAW,EAAOtgB,KAAKugB,eAAe,mBAAmB7hB,EAAE,CAACA,GAAGiH,OAAOrF,GAAGA,EAAEN,KAAKwgB,gBAAgB,KAAKxgB,KAAKygB,oBAAmB,CAAE,CAAChgB,EAAEF,SAASQ,EAAE/B,GAAG+B,EAAEnB,UAAU8gB,YAAY,WAAW,OAAO,OAAO1gB,KAAKkgB,QAAQ,EAAEnf,EAAEnB,UAAU+gB,SAAS,WAAW3gB,KAAKkgB,SAASlgB,KAAKsgB,WAAW,KAAKvgB,EAAE+V,gBAAgB,OAAO9V,KAAKigB,kBAAkBjgB,KAAKigB,gBAAgBW,WAAW5gB,KAAKigB,gBAAgB,KAAK,EAAElf,EAAEnB,UAAUihB,kBAAkB,WAAW,IAAI7gB,KAAK0gB,cAAc,CAAC,IAAIpiB,EAAE,QAAG,IAAS0B,KAAKsgB,WAAW9C,OAAOxd,KAAKkgB,SAASrI,eAAevZ,EAAEK,EAAEqB,KAAKsgB,WAAW9C,QAAQ5e,KAAKoB,KAAKsgB,gBAAW,GAAQtgB,KAAKkgB,SAASpI,kBAAkB,CAAC,IAAItZ,EAAE,IAAID,EAAEggB,kBAAkB,gCAAgChgB,EAAEuiB,UAAUC,eAAeviB,EAAEwB,KAAKkgB,SAAS5I,kBAAkB9Y,GAAGwB,KAAKkgB,SAASrI,eAAevZ,EAAEK,EAAEqB,KAAKsgB,WAAW5C,OAAO9e,KAAKoB,KAAKsgB,WAAW9hB,GAAGwB,KAAKkgB,SAASpI,aAAa,CAAC9X,KAAKygB,oBAAmB,EAAGzgB,KAAKwgB,gBAAgB,KAAKxgB,KAAKghB,UAAU1iB,EAAE,CAAC,EAAEyC,EAAEnB,UAAUqhB,kBAAkB,SAAS3iB,GAAG0B,KAAKwgB,gBAAgB,KAAKxgB,KAAKkgB,SAASrI,eAAe,IAAItZ,EAAEI,EAAEqB,KAAKsgB,WAAW1R,MAAMhQ,KAAKoB,KAAKsgB,WAAWhiB,GAAG0B,KAAKkgB,SAASpI,cAAc9X,KAAKghB,UAAUziB,EAAE,EAAEwC,EAAEnB,UAAUshB,iBAAiB,SAAS5iB,GAAG0B,KAAKwgB,gBAAgB,KAAKxgB,KAAKkgB,SAAS5I,kBAAkBhZ,GAAG0B,KAAKkgB,SAASrI,eAAe,IAAItZ,EAAEI,EAAEqB,KAAKsgB,WAAW5C,OAAO9e,KAAKoB,KAAKsgB,WAAWhiB,GAAG0B,KAAKkgB,SAASpI,cAAc9X,KAAKghB,UAAUziB,EAAE,EAAEwC,EAAEnB,UAAU2X,iBAAiB,WAAW,GAAGvX,KAAKwgB,2BAA2BjiB,EAAE,CAAC,IAAID,EAAE0B,KAAKwgB,gBAAgBxgB,KAAKwgB,gBAAgB,KAAKliB,EAAEuX,QAAQ,CAAC,EAAE9U,EAAEnB,UAAUkS,QAAQ,WAAW,OAAO9R,KAAKkgB,QAAQ,EAAEnf,EAAEnB,UAAUuhB,KAAK,WAAWnhB,KAAKsgB,WAAWtgB,KAAKogB,mBAAmBxhB,KAAKoB,KAAKqgB,WAAWrgB,KAAKqgB,UAAUrgB,KAAKogB,wBAAmB,EAAOpgB,KAAKihB,uBAAkB,EAAO,EAAElgB,EAAEnB,UAAUohB,UAAU,SAAS1iB,GAAG,IAAIE,EAAEwB,KAAKkgB,SAAS,GAAG5hB,IAAIQ,EAAE,OAAOkB,KAAK2gB,WAAW3gB,KAAKygB,mBAAmBjiB,EAAEqX,SAASrX,EAAE4iB,gBAAgB9iB,EAAEC,GAAE,GAAI,IAAIE,EAAEH,EAAEiB,MAAM,IAAG,IAAKjB,EAAE+iB,KAAK,OAAOrhB,KAAK2gB,WAAW3gB,KAAKygB,mBAAmBjiB,EAAEqX,SAASrX,EAAE8V,iBAAiB7V,GAAG,IAAIO,EAAEN,EAAED,EAAEuB,KAAKkgB,UAAU,GAAGlhB,aAAaT,GAAG,QAAQS,EAAE,SAASV,EAAEE,EAAEC,GAAG,IAAI,IAAIO,EAAE,EAAEA,EAAER,EAAEkC,SAAS1B,EAAE,CAACP,EAAEoZ,eAAe,IAAI9X,EAAEpB,EAAEH,EAAEQ,GAAJL,CAAQL,GAAG,GAAGG,EAAEqZ,cAAc/X,IAAIjB,EAAE,CAACL,EAAEoZ,eAAe,IAAIrX,EAAEjC,EAAEyhB,OAAOlhB,EAAEP,GAAG,OAAOE,EAAEqZ,cAActX,CAAC,CAAC,IAAIC,EAAE/B,EAAEqB,EAAEtB,GAAG,GAAGgC,aAAalC,EAAE,OAAOkC,CAAC,CAAC,OAAO,IAAI,CAAzN,CAA2NzB,EAAEgB,KAAKugB,eAAevgB,KAAKkgB,WAAW,CAAC,IAAIngB,GAAGf,EAAEA,EAAE4V,WAAWP,UAAc,SAAStU,EAAoD,SAASA,EAAGxB,EAAEoX,OAAOjC,OAAO1T,KAAKihB,kBAAkBjhB,KAAKhB,EAAEsiB,UAAc,SAASvhB,EAAGxB,EAAEoX,OAAOjC,OAAO1T,KAAKkhB,iBAAiBlhB,KAAKhB,EAAEuiB,WAAWvhB,KAAK6gB,qBAAjM7gB,KAAKwgB,gBAAgBxhB,EAAEA,EAAEwiB,OAAOxhB,KAAK,MAA+K,MAAMA,KAAKkhB,iBAAiB,IAAI1gB,EAAE,oGAAoGsJ,QAAQ,KAAKtG,OAAO/E,IAAI,oBAAoBuB,KAAKmgB,OAAOjE,MAAM,MAAM5Z,MAAM,GAAG,GAAGiE,KAAK,OAAO,EAAEhI,EAAEuiB,UAAU,SAASxiB,EAAEC,GAAG,GAAG,mBAAmBD,EAAE,MAAM,IAAIkC,EAAE,0EAA0E,IAAIhC,EAAES,OAAOV,GAAGkjB,aAAahjB,EAAEsC,EAAErC,GAAE,IAAKsD,OAAOsR,MAAM,OAAO,WAAW,IAAI/U,EAAED,EAAEqG,MAAM3E,KAAK+F,WAAW/G,EAAE,IAAIP,OAAE,OAAO,EAAOD,EAAEE,GAAGqB,EAAEf,EAAE8S,UAAU,OAAO9S,EAAEshB,WAAW/hB,EAAES,EAAEiiB,uBAAkB,GAAQlhB,CAAC,CAAC,EAAExB,EAAEuiB,UAAUY,gBAAgB,SAASpjB,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAIkC,EAAE,gCAAgCC,EAAE4U,YAAY/W,IAAIgC,EAAED,KAAK/B,EAAE,EAAEC,EAAEojB,MAAM,SAASrjB,GAAG,GAAGyB,EAAEsd,WAAW,kBAAkB,uBAAuB,mBAAmB/e,EAAE,OAAOE,EAAE,0EAA0E,IAAIC,EAAE,IAAIsC,EAAEzC,EAAE0B,MAAMtB,EAAED,EAAEqT,UAAU,OAAOrT,EAAE0iB,KAAK5iB,EAAEojB,OAAOjjB,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,SAAS,KAAK,GAAG,CAAC,SAASJ,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,EAAEC,EAAEM,EAAEe,GAAG,IAAIS,EAAElC,EAAE,UAAUkC,EAAE4U,YAAY5U,EAAEiV,SAASjV,EAAEkV,SAASnX,EAAEgI,KAAK,WAAW,IAAIjI,EAAEC,EAAEwH,UAAUrF,OAAO,EAAEnC,EAAE,GAAG,mBAAmBwH,UAAUxH,KAAKD,EAAEyH,UAAUxH,IAAI,IAAIE,EAAE,GAAG6D,MAAM1D,KAAKmH,WAAWzH,GAAGG,EAAE6W,MAAM,IAAI5W,EAAE,IAAIF,EAAEC,GAAGqT,UAAU,YAAO,IAASxT,EAAEI,EAAEkjB,OAAOtjB,GAAGI,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAASJ,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,EAAEC,EAAEM,EAAEe,GAAG,IAAIS,EAAEjC,EAAE2Z,WAAWzX,EAAEnC,EAAE,UAAUQ,EAAE2B,EAAEgV,SAAS9W,EAAE8B,EAAEiV,SAASpV,EAAE/B,EAAEoX,OAAO,SAAS5U,EAAEzC,EAAEC,EAAEC,EAAEC,GAAGuB,KAAK6hB,aAAavjB,GAAG0B,KAAKkgB,SAASzG,qBAAqB,IAAI/a,EAAE8B,IAAIR,KAAK8hB,UAAU,OAAOpjB,EAAEH,EAAEkC,EAAE2Y,WAAW1a,EAAEH,GAAGyB,KAAK+hB,iBAAiBtjB,IAAIO,EAAE,IAAI2H,MAAM3G,KAAKU,UAAU,KAAKV,KAAKgiB,OAAOxjB,EAAEwB,KAAKiiB,UAAU,EAAEjiB,KAAKkiB,OAAO,GAAG5hB,EAAEoT,OAAO1T,KAAKmiB,WAAWniB,UAAK,EAAO,CAAC,SAASF,EAAExB,EAAEE,EAAEE,EAAEM,GAAG,GAAG,mBAAmBR,EAAE,OAAOC,EAAE,gCAAgCgC,EAAE4U,YAAY7W,IAAI,IAAIuB,EAAE,EAAE,QAAG,IAASrB,EAAE,CAAC,GAAG,iBAAiBA,GAAG,OAAOA,EAAE,OAAOH,EAAEyhB,OAAO,IAAI/d,UAAU,gDAAgDxB,EAAE4U,YAAY3W,KAAK,GAAG,iBAAiBA,EAAE0jB,YAAY,OAAO7jB,EAAEyhB,OAAO,IAAI/d,UAAU,4CAA4CxB,EAAE4U,YAAY3W,EAAE0jB,eAAeriB,EAAErB,EAAE0jB,WAAW,CAAC,OAAO,IAAIrhB,EAAEzC,EAAEE,EAAEuB,EAAE,iBAAiBA,GAAG0G,SAAS1G,IAAIA,GAAG,EAAEA,EAAE,EAAEf,GAAG8S,SAAS,CAACrR,EAAEF,SAASQ,EAAEvC,GAAGuC,EAAEnB,UAAUuiB,WAAW,WAAWniB,KAAKqiB,YAAO,GAAQ,EAAE,EAAEthB,EAAEnB,UAAU0iB,MAAM,WAAW,EAAEvhB,EAAEnB,UAAUqhB,kBAAkB,SAAS3iB,EAAEE,GAAG,IAAIC,EAAEuB,KAAKuiB,QAAQvjB,EAAEgB,KAAKU,SAASF,EAAER,KAAK+hB,iBAAiBthB,EAAET,KAAKgiB,OAAO,GAAGxjB,EAAE,GAAG,GAAGC,EAAED,GAAG,EAAEA,EAAE,GAAGF,EAAEmC,GAAG,IAAIT,KAAKiiB,YAAYjiB,KAAK6T,cAAc7T,KAAK0gB,eAAe,OAAM,MAAO,CAAC,GAAGjgB,GAAG,GAAGT,KAAKiiB,WAAWxhB,EAAE,OAAOhC,EAAED,GAAGF,EAAE0B,KAAKkiB,OAAO7hB,KAAK7B,IAAG,EAAG,OAAOgC,IAAIA,EAAEhC,GAAGF,GAAG,IAAIgC,EAAEN,KAAKkgB,SAASnf,EAAEf,KAAK8hB,UAAUhiB,EAAEQ,EAAEoU,cAAcpU,EAAEuX,eAAe,IAAI9Y,EAAED,EAAEiC,GAAGnC,KAAKkB,EAAExB,EAAEE,EAAEQ,GAAGiE,EAAE3C,EAAEwX,cAAc,GAAG/X,EAAEod,sBAAsBpe,EAAEkE,EAAE,OAAOzC,EAAE,iBAAiB,cAAcF,GAAGvB,IAAIJ,EAAE,OAAOqB,KAAKiU,QAAQlV,EAAER,IAAG,EAAG,IAAI2E,EAAExE,EAAEK,EAAEiB,KAAKkgB,UAAU,GAAGhd,aAAa3E,EAAE,CAAC,IAAI8E,GAAGH,EAAEA,EAAE0R,WAAWP,UAAU,KAAO,SAAShR,GAAG,OAAO5C,GAAG,GAAGT,KAAKiiB,YAAYxjB,EAAED,GAAG0E,EAAEA,EAAEse,OAAOxhB,MAAM,GAAGxB,EAAE,KAAI,EAAG,KAAO,SAAS6E,GAAG,OAAW,SAASA,GAAIrD,KAAKiU,QAAQ/Q,EAAEqe,YAAW,IAAKvhB,KAAK2W,WAAU,GAAI5X,EAAEmE,EAAEoe,QAAQ,CAAC7iB,EAAED,GAAGO,CAAC,CAAC,QAAQiB,KAAKwiB,gBAAgBxjB,IAAI,OAAOwB,EAAER,KAAKyiB,QAAQhkB,EAAE+B,GAAGR,KAAK0iB,SAASjkB,IAAG,EAAG,EAAEsC,EAAEnB,UAAUiU,YAAY,WAAW,IAAI,IAAIvV,EAAE0B,KAAKkiB,OAAO3jB,EAAEyB,KAAKgiB,OAAOxjB,EAAEwB,KAAKuiB,QAAQjkB,EAAEoC,OAAO,GAAGV,KAAKiiB,UAAU1jB,GAAG,CAAC,GAAGyB,KAAK0gB,cAAc,OAAO,IAAIjiB,EAAEH,EAAEgX,MAAMtV,KAAKihB,kBAAkBziB,EAAEC,GAAGA,EAAE,CAAC,EAAEsC,EAAEnB,UAAU6iB,QAAQ,SAASnkB,EAAEC,GAAG,IAAI,IAAIC,EAAED,EAAEmC,OAAOjC,EAAE,IAAIkI,MAAMnI,GAAGE,EAAE,EAAEM,EAAE,EAAEA,EAAER,IAAIQ,EAAEV,EAAEU,KAAKP,EAAEC,KAAKH,EAAES,IAAIP,EAAEiC,OAAOhC,EAAEsB,KAAK0iB,SAASjkB,EAAE,EAAEsC,EAAEnB,UAAU+iB,gBAAgB,WAAW,OAAO3iB,KAAK+hB,gBAAgB,EAAExjB,EAAEqB,UAAU0M,IAAI,SAAShO,EAAEC,GAAG,OAAOuB,EAAEE,KAAK1B,EAAEC,EAAE,KAAK,EAAEA,EAAE+N,IAAI,SAAShO,EAAEC,EAAEC,EAAEC,GAAG,OAAOqB,EAAExB,EAAEC,EAAEC,EAAEC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAASH,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,EAAEC,EAAEM,GAAG,IAAIe,EAAEzB,EAAE,UAAUkC,EAAET,EAAE0V,SAASlX,EAAEqkB,OAAO,SAAStkB,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAIC,EAAE0D,UAAU,gCAAgClC,EAAEsV,YAAY/W,IAAI,OAAO,WAAW,IAAIG,EAAE,IAAIF,EAAEC,GAAGC,EAAEgb,qBAAqBhb,EAAEoZ,eAAe,IAAInZ,EAAE8B,EAAElC,GAAGqG,MAAM3E,KAAK+F,WAAWhG,EAAEtB,EAAEqZ,cAAc,OAAO9Y,EAAEme,sBAAsBze,EAAEqB,EAAE,iBAAiBtB,GAAGA,EAAEokB,sBAAsBnkB,GAAGD,CAAC,CAAC,EAAEF,EAAEukB,QAAQvkB,EAAEwkB,IAAI,SAASzkB,GAAG,GAAG,mBAAmBA,EAAE,OAAOI,EAAE,gCAAgCqB,EAAEsV,YAAY/W,IAAI,IAAIG,EAAEgC,EAAE,IAAIlC,EAAEC,GAAG,GAAGiC,EAAEgZ,qBAAqBhZ,EAAEoX,eAAe9R,UAAUrF,OAAO,EAAE,CAAC1B,EAAEqe,WAAW,iDAAiD,IAAIve,EAAEiH,UAAU,GAAGpH,EAAEoH,UAAU,GAAGtH,EAAEsB,EAAEwL,QAAQzM,GAAG0B,EAAElC,GAAGqG,MAAMhG,EAAEG,GAAG0B,EAAElC,GAAGM,KAAKD,EAAEG,EAAE,MAAML,EAAE+B,EAAElC,EAAFkC,GAAO,IAAIF,EAAEG,EAAEqX,cAAc,OAAO9Y,EAAEme,sBAAsB1e,EAAE6B,EAAE,cAAcG,GAAGA,EAAEoiB,sBAAsBpkB,GAAGgC,CAAC,EAAElC,EAAEqB,UAAUijB,sBAAsB,SAASvkB,GAAGA,IAAIyB,EAAE2V,SAAS1V,KAAKohB,gBAAgB9iB,EAAEC,GAAE,GAAIyB,KAAKsU,iBAAiBhW,GAAE,EAAG,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAASA,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAEH,EAAE,UAAUI,EAAED,EAAEukB,iBAAiBhkB,EAAEV,EAAE,YAAYmgB,iBAAiB1e,EAAEzB,EAAE,SAASkC,EAAE,iCAAiC,SAASC,EAAEnC,GAAG,IAAIC,EAAE,GAAG,SAASD,GAAG,OAAOA,aAAa0D,OAAOjC,EAAEif,eAAe1gB,KAAK0D,MAAMpC,SAAS,CAA5E,CAA8EtB,GAAG,EAAEC,EAAE,IAAIS,EAAEV,IAAI6d,KAAK7d,EAAE6d,KAAK5d,EAAEud,QAAQxd,EAAEwd,QAAQvd,EAAE+U,MAAMhV,EAAEgV,MAAM,IAAI,IAAI9U,EAAEuB,EAAEK,KAAK9B,GAAGI,EAAE,EAAEA,EAAEF,EAAEkC,SAAShC,EAAE,CAAC,IAAI+B,EAAEjC,EAAEE,GAAG8B,EAAEub,KAAKtb,KAAKlC,EAAEkC,GAAGnC,EAAEmC,GAAG,CAAC,OAAOlC,CAAC,CAAC,OAAOE,EAAEwkB,+BAA+B3kB,GAAGA,CAAC,CAACC,EAAEF,QAAQ,SAASC,EAAEC,GAAG,OAAO,SAASC,EAAEC,GAAG,GAAG,OAAOH,EAAE,CAAC,GAAGE,EAAE,CAAC,IAAIQ,EAAEyB,EAAE/B,EAAEF,IAAIF,EAAEgZ,kBAAkBtY,GAAGV,EAAE2V,QAAQjV,EAAE,MAAM,GAAGT,EAAE,CAAC,IAAIwB,EAAE,GAAGuC,MAAM1D,KAAKmH,UAAU,GAAGzH,EAAEsiB,SAAS7gB,EAAE,MAAMzB,EAAEsiB,SAASniB,GAAGH,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,KAAK,GAAG,CAAC,SAASA,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,GAAG,IAAIC,EAAEF,EAAE,UAAUG,EAAEF,EAAEoX,OAAOjX,EAAEF,EAAEiX,SAASzW,EAAER,EAAEkX,SAAS,SAAS3V,EAAEzB,EAAEC,GAAG,IAAIC,EAAE+M,QAAQjN,GAAG,OAAOkC,EAAE5B,KAAKoB,KAAK1B,EAAEC,GAAG,IAAIwB,EAAErB,EAAEH,GAAGoG,MAAM3E,KAAK0U,cAAc,CAAC,MAAM/O,OAAOrH,IAAIyB,IAAIf,GAAGP,EAAE+U,WAAWzT,EAAExB,EAAE,CAAC,SAASiC,EAAElC,EAAEC,GAAG,IAAIC,EAAEwB,KAAK0U,cAAc3U,OAAE,IAASzB,EAAEI,EAAEH,GAAGK,KAAKJ,EAAE,MAAME,EAAEH,GAAGK,KAAKJ,EAAE,KAAKF,GAAGyB,IAAIf,GAAGP,EAAE+U,WAAWzT,EAAExB,EAAE,CAAC,SAASkC,EAAEnC,EAAEC,GAAG,IAAID,EAAE,CAAC,IAAIE,EAAE,IAAIwD,MAAM1D,EAAE,IAAIE,EAAE6f,MAAM/f,EAAEA,EAAEE,CAAC,CAAC,IAAIuB,EAAErB,EAAEH,GAAGK,KAAKoB,KAAK0U,cAAcpW,GAAGyB,IAAIf,GAAGP,EAAE+U,WAAWzT,EAAExB,EAAE,CAACA,EAAEqB,UAAUsjB,WAAW3kB,EAAEqB,UAAUujB,QAAQ,SAAS7kB,EAAEC,GAAG,GAAG,mBAAmBD,EAAE,CAAC,IAAIE,EAAEgC,OAAE,IAASjC,GAAGU,OAAOV,GAAGqjB,SAASpjB,EAAEuB,GAAGC,KAAKoU,MAAM5V,EAAEiC,OAAE,EAAOT,KAAK1B,EAAE,CAAC,OAAO0B,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS1B,EAAEE,EAAEC,GAAG,aAAaD,EAAEH,QAAQ,WAAW,IAAII,EAAE,WAAW,OAAO,IAAIM,EAAE,sEAAsE,EAAEL,EAAE,WAAW,OAAO,IAAIsH,EAAEod,kBAAkBpjB,KAAK4U,UAAU,EAAE5V,EAAE,SAASV,GAAG,OAAO0H,EAAEga,OAAO,IAAIjhB,EAAET,GAAG,EAAE,SAASyB,IAAI,CAAC,IAAIS,EAAEC,EAAE,CAAC,EAAE3B,EAAER,EAAE,UAAUkC,EAAE1B,EAAEsb,OAAO,WAAW,IAAI9b,EAAEC,EAAE8kB,OAAO,YAAO,IAAS/kB,IAAIA,EAAE,MAAMA,CAAC,EAAE,WAAW,OAAO,IAAI,EAAEQ,EAAE+c,kBAAkB7V,EAAE,aAAaxF,GAAG,IAAI7B,EAAEL,EAAE,SAASgC,EAAEhC,EAAE,WAAWyC,EAAE,IAAIT,EAAE3B,EAAEO,eAAe8G,EAAE,SAAS,CAACzG,MAAMwB,IAAI,IAAIjB,EAAExB,EAAE,YAAYS,EAAEiH,EAAE/D,UAAUnC,EAAEmC,UAAU+D,EAAEnE,WAAW/B,EAAE+B,WAAW,IAAIoB,EAAE+C,EAAEuY,kBAAkBze,EAAEye,kBAAkBvY,EAAEwY,aAAa1e,EAAE0e,aAAaxY,EAAEyY,iBAAiB3e,EAAE2e,iBAAiBzY,EAAE0Y,eAAe5e,EAAE2e,iBAAiBzY,EAAE2Y,eAAe7e,EAAE6e,eAAe,IAAIzb,EAAE,WAAW,EAAEG,EAAE,CAAC,EAAExE,EAAE,CAAC,EAAEgF,EAAEvF,EAAE,cAAFA,CAAiB0H,EAAE9C,GAAGa,EAAEzF,EAAE,kBAAFA,CAAqB0H,EAAE9C,EAAEW,EAAE7E,EAAEe,GAAGkE,EAAE3F,EAAE,YAAFA,CAAe0H,GAAG9B,EAAED,EAAExE,OAAO0E,EAAE7F,EAAE,kBAAFA,CAAqB0H,EAAE/B,GAAGG,GAAGD,EAAEwT,cAAcrZ,EAAE,YAAFA,CAAe0H,EAAEnC,EAAEhF,IAAIyF,EAAEhG,EAAE,iBAAFA,CAAoBO,GAAG4F,EAAEnG,EAAE,cAAc2H,EAAEnH,EAAE4W,SAASxP,EAAEpH,EAAE2W,SAAS,SAASzP,EAAE1H,GAAGA,IAAI4E,GAAG,SAAS5E,EAAEC,GAAG,GAAG,MAAMD,GAAGA,EAAEoD,cAAcsE,EAAE,MAAM,IAAIjH,EAAE,wFAAwF,GAAG,mBAAmBR,EAAE,MAAM,IAAIQ,EAAE,gCAAgCD,EAAEuW,YAAY9W,GAAG,CAArO,CAAuOyB,KAAK1B,GAAG0B,KAAKqU,UAAU,EAAErU,KAAKsjB,0BAAqB,EAAOtjB,KAAKujB,wBAAmB,EAAOvjB,KAAKwjB,eAAU,EAAOxjB,KAAKyjB,gBAAW,EAAOzjB,KAAK0jB,qBAAqBplB,GAAG0B,KAAK4X,kBAAkB5X,KAAKub,WAAW,iBAAiBvb,KAAK,CAAC,SAASmG,EAAE7H,GAAG0B,KAAK8R,QAAQwC,iBAAiBhW,EAAE,CAAC,SAASwI,EAAExI,GAAG0B,KAAK8R,QAAQsP,gBAAgB9iB,GAAE,EAAG,CAAC,SAASyI,EAAEzI,GAAG,IAAIC,EAAE,IAAIyH,EAAE9C,GAAG3E,EAAE+kB,qBAAqBhlB,EAAEC,EAAEglB,mBAAmBjlB,EAAEC,EAAEilB,UAAUllB,EAAEC,EAAEklB,WAAWnlB,CAAC,CAAC,OAAO0H,EAAEpG,UAAUgD,SAAS,WAAW,MAAM,kBAAkB,EAAEoD,EAAEpG,UAAUie,OAAO7X,EAAEpG,UAAU+jB,MAAM,SAASrlB,GAAG,IAAIC,EAAEwH,UAAUrF,OAAO,GAAGnC,EAAE,EAAE,CAAC,IAAIC,EAAEC,EAAE,IAAIkI,MAAMpI,EAAE,GAAGG,EAAE,EAAE,IAAIF,EAAE,EAAEA,EAAED,EAAE,IAAIC,EAAE,CAAC,IAAIuB,EAAEgG,UAAUvH,GAAG,IAAIM,EAAEkN,SAASjM,GAAG,OAAOf,EAAE,0DAA0DF,EAAEuW,YAAYtV,IAAItB,EAAEC,KAAKqB,CAAC,CAAC,OAAOtB,EAAEiC,OAAOhC,EAAEJ,EAAEyH,UAAUvH,GAAGwB,KAAK2f,UAAK,EAAOrb,EAAE7F,EAAEH,EAAE0B,MAAM,CAAC,OAAOA,KAAK2f,UAAK,EAAOrhB,EAAE,EAAE0H,EAAEpG,UAAUgkB,QAAQ,WAAW,OAAO5jB,KAAKoU,MAAM1V,EAAEA,OAAE,EAAOsB,UAAK,EAAO,EAAEgG,EAAEpG,UAAU+f,KAAK,SAASrhB,EAAEC,GAAG,GAAG4F,EAAE+W,YAAYnV,UAAUrF,OAAO,GAAG,mBAAmBpC,GAAG,mBAAmBC,EAAE,CAAC,IAAIC,EAAE,kDAAkDM,EAAEuW,YAAY/W,GAAGyH,UAAUrF,OAAO,IAAIlC,GAAG,KAAKM,EAAEuW,YAAY9W,IAAIyB,KAAK+V,MAAMvX,EAAE,CAAC,OAAOwB,KAAKoU,MAAM9V,EAAEC,OAAE,OAAO,OAAO,EAAO,EAAEyH,EAAEpG,UAAUyhB,KAAK,SAAS/iB,EAAEC,GAAGyB,KAAKoU,MAAM9V,EAAEC,OAAE,OAAO,OAAO,GAAQslB,aAAa,EAAE7d,EAAEpG,UAAUgiB,OAAO,SAAStjB,GAAG,MAAM,mBAAmBA,EAAEU,EAAE,gCAAgCF,EAAEuW,YAAY/W,IAAI0B,KAAKge,MAAM5J,MAAM9V,OAAE,OAAO,EAAO+E,OAAE,EAAO,EAAE2C,EAAEpG,UAAU8G,OAAO,WAAW,IAAIpI,EAAE,CAACkd,aAAY,EAAGiE,YAAW,EAAGqE,sBAAiB,EAAOC,qBAAgB,GAAQ,OAAO/jB,KAAKwb,eAAeld,EAAEwlB,iBAAiB9jB,KAAKT,QAAQjB,EAAEkd,aAAY,GAAIxb,KAAKyf,eAAenhB,EAAEylB,gBAAgB/jB,KAAK8a,SAASxc,EAAEmhB,YAAW,GAAInhB,CAAC,EAAE0H,EAAEpG,UAAUoe,IAAI,WAAW,OAAOjY,UAAUrF,OAAO,GAAGV,KAAK+V,MAAM,wDAAwD,IAAIhS,EAAE/D,MAAM8R,SAAS,EAAE9L,EAAEpG,UAAUiO,MAAM,SAASvP,GAAG,OAAO0B,KAAK6d,OAAO/e,EAAEklB,wBAAwB1lB,EAAE,EAAE0H,EAAEie,kBAAkBzlB,EAAEH,QAAQ2H,EAAEke,GAAG,SAAS5lB,GAAG,OAAOA,aAAa0H,CAAC,EAAEA,EAAEme,SAASne,EAAEoe,aAAa,SAAS9lB,GAAG,IAAIC,EAAE,IAAIyH,EAAE9C,GAAG3E,EAAEkb,qBAAqB,IAAIjb,EAAEuH,UAAUrF,OAAO,KAAKzB,OAAO8G,UAAU,IAAIse,UAAU5lB,EAAEyH,EAAE5H,EAAF4H,CAAKzB,EAAElG,EAAEC,IAAI,OAAOC,IAAIwH,GAAG1H,EAAE6iB,gBAAgB3iB,EAAEF,GAAE,GAAIA,EAAE+lB,iBAAiB/lB,EAAEgmB,sBAAsBhmB,CAAC,EAAEyH,EAAEgY,IAAI,SAAS1f,GAAG,OAAO,IAAIyF,EAAEzF,GAAGwT,SAAS,EAAE9L,EAAEwe,KAAK,SAASlmB,GAAG,IAAIC,EAAEsF,EAAEvF,GAAG,OAAOC,aAAayH,KAAKzH,EAAE,IAAIyH,EAAE9C,IAAIuW,qBAAqBlb,EAAEkmB,gBAAgBlmB,EAAEglB,mBAAmBjlB,GAAGC,CAAC,EAAEyH,EAAEiP,QAAQjP,EAAE0e,UAAU1e,EAAEwe,KAAKxe,EAAEga,OAAOha,EAAE2e,SAAS,SAASrmB,GAAG,IAAIC,EAAE,IAAIyH,EAAE9C,GAAG,OAAO3E,EAAEkb,qBAAqBlb,EAAE6iB,gBAAgB9iB,GAAE,GAAIC,CAAC,EAAEyH,EAAE8M,aAAa,SAASxU,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAIS,EAAE,gCAAgCD,EAAEuW,YAAY/W,IAAI,OAAOyC,EAAE+R,aAAaxU,EAAE,EAAE0H,EAAEpG,UAAUwU,MAAM,SAAS9V,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAIM,OAAE,IAASN,EAAEqB,EAAEf,EAAEN,EAAE,IAAIsH,EAAE9C,GAAGzC,EAAET,KAAK4U,UAAUjW,EAAE8B,EAAE4T,UAAUrV,IAAIe,EAAEyU,eAAexU,KAAK,GAAGD,EAAE0Z,0BAAqB,IAAShb,MAAO,QAAQuB,KAAKqU,aAAa5V,EAAM,SAASE,EAAGqB,KAAK0U,cAAcjU,IAAIT,UAAK,EAAOA,KAAK+U,UAAU/U,KAAKub,WAAW,iBAAiBvb,KAAKD,IAAI,IAAIO,EAAEE,IAAI,GAAO,SAAS7B,EAAG,CAAC,IAAImB,EAAEf,EAAEsE,EAAE5C,EAAEmkB,kBAAsB,SAASjmB,GAAII,EAAE0B,EAAE8iB,mBAAmBzjB,EAAExB,GAAO,SAASK,GAAII,EAAE0B,EAAE6iB,qBAAqBxjB,EAAEvB,EAAEkC,EAAEyY,+BAA+B7V,EAAE5C,EAAEokB,uCAAuC9lB,EAAE,IAAIkE,EAAE,8BAA8BxC,EAAE6W,kBAAkBvY,GAAGe,EAAEvB,GAAGwC,EAAE2S,OAAOrQ,EAAE5C,EAAE,CAAC2e,QAAQ,OAAO9e,EAAER,EAAE,mBAAmBA,GAAGhB,EAAEsa,WAAW9Y,EAAER,GAAGgS,QAAQ/R,EAAE+kB,SAASrmB,EAAEc,MAAMR,GAAG,MAAM0B,EAAEskB,cAAczmB,EAAEC,EAAEwB,EAAEtB,EAAE6B,GAAG,OAAOP,CAAC,EAAEiG,EAAEpG,UAAUkX,QAAQ,WAAW,OAAO,MAAM9W,KAAKqU,SAAS,EAAErO,EAAEpG,UAAU0kB,cAAc,WAAW,SAAW,UAAUtkB,KAAKqU,UAAU,EAAErO,EAAEpG,UAAUsW,aAAa,WAAW,QAAO,UAAoBlW,KAAKqU,UAAU,EAAErO,EAAEpG,UAAUolB,WAAW,SAAS1mB,GAAG0B,KAAKqU,WAAW,MAAMrU,KAAKqU,UAAU,MAAM/V,CAAC,EAAE0H,EAAEpG,UAAU6kB,cAAc,WAAWzkB,KAAKqU,UAAU,SAASrU,KAAKqU,UAAUrU,KAAKub,WAAW,mBAAmBvb,KAAK,EAAEgG,EAAEpG,UAAUqlB,aAAa,WAAWjlB,KAAKqU,UAAU,SAASrU,KAAKqU,UAAUrU,KAAKub,WAAW,kBAAkBvb,KAAK,EAAEgG,EAAEpG,UAAUslB,cAAc,WAAWllB,KAAKqU,UAAU,SAASrU,KAAKqU,UAAUrU,KAAKub,WAAW,kBAAkBvb,KAAK,EAAEgG,EAAEpG,UAAUikB,YAAY,WAAW7jB,KAAKqU,UAAU,QAAQrU,KAAKqU,SAAS,EAAErO,EAAEpG,UAAUulB,SAAS,WAAW,OAAO,QAAQnlB,KAAKqU,WAAW,CAAC,EAAErO,EAAEpG,UAAUwlB,gBAAgB,WAAWplB,KAAKqU,WAAW,MAAMrU,KAAKqU,SAAS,EAAErO,EAAEpG,UAAUgX,cAAc,WAAW5W,KAAKqU,UAAU,MAAMrU,KAAKqU,UAAUrU,KAAKub,WAAW,mBAAmBvb,KAAK,EAAEgG,EAAEpG,UAAU0W,oBAAoB,WAAWtW,KAAKqU,UAAU,QAAQrU,KAAKqU,SAAS,EAAErO,EAAEpG,UAAU2kB,oBAAoB,WAAWxjB,EAAEgS,uBAAuB/S,KAAKqU,UAAU,UAAUrU,KAAKqU,UAAU,EAAErO,EAAEpG,UAAUylB,YAAY,SAAS/mB,GAAG,IAAIC,EAAE,IAAID,EAAE0B,KAAKyjB,WAAWzjB,KAAK,EAAE1B,EAAE,EAAE,GAAG,GAAGC,IAAIkC,EAAE,YAAO,IAASlC,GAAGyB,KAAKgV,WAAWhV,KAAK0U,cAAcnW,CAAC,EAAEyH,EAAEpG,UAAU0lB,WAAW,SAAShnB,GAAG,OAAO0B,KAAK,EAAE1B,EAAE,EAAE,EAAE,EAAE0H,EAAEpG,UAAU2lB,sBAAsB,SAASjnB,GAAG,OAAO0B,KAAK,EAAE1B,EAAE,EAAE,EAAE,EAAE0H,EAAEpG,UAAU4lB,oBAAoB,SAASlnB,GAAG,OAAO0B,KAAK,EAAE1B,EAAE,EAAE,EAAE,EAAE0H,EAAEpG,UAAU8U,YAAY,WAAW,EAAE1O,EAAEpG,UAAU6lB,kBAAkB,SAASnnB,GAAGA,EAAE+V,UAAU,IAAI9V,EAAED,EAAEglB,qBAAqB9kB,EAAEF,EAAEilB,mBAAmB9kB,EAAEH,EAAEklB,UAAU9kB,EAAEJ,EAAE+mB,YAAY,QAAG,IAAS3mB,IAAIA,EAAE+B,GAAGT,KAAK+kB,cAAcxmB,EAAEC,EAAEC,EAAEC,EAAE,KAAK,EAAEsH,EAAEpG,UAAU8lB,mBAAmB,SAASpnB,EAAEC,GAAG,IAAIC,EAAEF,EAAEinB,sBAAsBhnB,GAAGE,EAAEH,EAAEknB,oBAAoBjnB,GAAGG,EAAEJ,EAAEgnB,WAAW/mB,GAAGS,EAAEV,EAAE+mB,YAAY9mB,QAAG,IAASS,IAAIA,EAAEyB,GAAGT,KAAK+kB,cAAcvmB,EAAEC,EAAEC,EAAEM,EAAE,KAAK,EAAEgH,EAAEpG,UAAUmlB,cAAc,SAASzmB,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAIM,EAAEgB,KAAK8W,UAAU,GAAG9X,GAAG,QAAQA,EAAE,EAAEgB,KAAKglB,WAAW,IAAI,IAAIhmB,EAAEgB,KAAKwjB,UAAUhlB,EAAEwB,KAAKyjB,WAAWhlB,EAAE,mBAAmBH,IAAI0B,KAAKsjB,qBAAqB,OAAO5kB,EAAEJ,EAAEQ,EAAEsa,WAAW1a,EAAEJ,IAAI,mBAAmBC,IAAIyB,KAAKujB,mBAAmB,OAAO7kB,EAAEH,EAAEO,EAAEsa,WAAW1a,EAAEH,QAAQ,CAAC,IAAIwB,EAAE,EAAEf,EAAE,EAAEgB,KAAKD,EAAE,GAAGvB,EAAEwB,KAAKD,EAAE,GAAGtB,EAAE,mBAAmBH,IAAI0B,KAAKD,EAAE,GAAG,OAAOrB,EAAEJ,EAAEQ,EAAEsa,WAAW1a,EAAEJ,IAAI,mBAAmBC,IAAIyB,KAAKD,EAAE,GAAG,OAAOrB,EAAEH,EAAEO,EAAEsa,WAAW1a,EAAEH,GAAG,CAAC,OAAOyB,KAAKglB,WAAWhmB,EAAE,GAAGA,CAAC,EAAEgH,EAAEpG,UAAU4hB,OAAO,SAASljB,EAAEC,GAAGyB,KAAK+kB,mBAAc,OAAO,EAAOxmB,EAAED,EAAE,KAAK,EAAE0H,EAAEpG,UAAU0U,iBAAiB,SAAShW,EAAEC,GAAG,KAAO,UAAUyB,KAAKqU,WAAW,CAAC,GAAG/V,IAAI0B,KAAK,OAAOA,KAAKohB,gBAAgB3iB,KAAI,GAAI,IAAID,EAAEqF,EAAEvF,EAAE0B,MAAM,KAAKxB,aAAawH,GAAG,OAAOhG,KAAK4gB,SAAStiB,GAAGC,GAAGyB,KAAKwU,eAAehW,EAAE,GAAG,IAAIE,EAAEF,EAAEoW,UAAU,GAAGlW,IAAIsB,KAAK,CAAC,IAAIhB,EAAEN,EAAE2V,UAAU,GAAO,SAASrV,EAA2K,GAAO,SAASA,EAAGgB,KAAK4gB,SAASliB,EAAE4iB,eAAe,GAAO,SAAStiB,EAAGgB,KAAKiU,QAAQvV,EAAE6iB,eAAe,CAAC,IAAI9gB,EAAE,IAAIwC,EAAE,8BAA8BvE,EAAE4Y,kBAAkB7W,GAAGT,KAAKiU,QAAQxT,EAAE,KAA5V,CAAC,IAAIV,EAAEC,KAAK8W,UAAU/W,EAAE,GAAGrB,EAAE+mB,kBAAkBzlB,MAAM,IAAI,IAAIQ,EAAE,EAAEA,EAAET,IAAIS,EAAE9B,EAAEgnB,mBAAmB1lB,KAAKQ,GAAGR,KAAKklB,gBAAgBllB,KAAKglB,WAAW,GAAGhlB,KAAK2lB,aAAajnB,EAAE,CAA2L,MAAMsB,KAAKiU,QAAQxV,IAAI,CAAC,EAAEuH,EAAEpG,UAAUwhB,gBAAgB,SAAS9iB,EAAEC,EAAEC,GAAG,IAAIC,EAAEK,EAAE8mB,kBAAkBtnB,GAAGI,EAAED,IAAIH,EAAE,IAAII,IAAIF,GAAG2F,EAAE+W,WAAW,CAAC,IAAIlc,EAAE,4CAA4CF,EAAEuW,YAAY/W,GAAG0B,KAAK+V,MAAM/W,GAAE,EAAG,CAACgB,KAAKsX,kBAAkB7Y,IAAIF,GAAGG,GAAGsB,KAAKiU,QAAQ3V,EAAE,EAAE0H,EAAEpG,UAAU8jB,qBAAqB,SAASplB,GAAG,GAAGA,IAAI4E,EAAE,CAAC,IAAI3E,EAAEyB,KAAKA,KAAKyZ,qBAAqBzZ,KAAK6X,eAAe,IAAIrZ,GAAE,EAAGC,EAAEuB,KAAKqb,SAAS/c,GAAE,SAASA,GAAGC,EAAE+V,iBAAiBhW,EAAE,IAAE,SAASA,GAAGC,EAAE6iB,gBAAgB9iB,EAAEE,EAAE,IAAGA,GAAE,EAAGwB,KAAK8X,mBAAc,IAASrZ,GAAGF,EAAE6iB,gBAAgB3iB,GAAE,EAAG,CAAC,EAAEuH,EAAEpG,UAAUimB,0BAA0B,SAASvnB,EAAEC,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE4V,UAAU,KAAO,MAAM3V,GAAG,CAAC,IAAIM,EAAEP,EAAEoZ,eAAetZ,IAAI8E,EAAE7E,GAAG,iBAAiBA,EAAEkC,OAAO1B,EAAEkH,EAAE5H,GAAGqG,MAAM3E,KAAK0U,cAAclW,IAAIQ,EAAEiH,GAAG1H,EAAE,IAAIQ,EAAE,iCAAiCD,EAAEuW,YAAY7W,IAAIQ,EAAEkH,EAAE5H,GAAGM,KAAKL,EAAEC,GAAG,IAAIuB,EAAEtB,EAAEqZ,gBAAkB,OAAOpZ,EAAED,EAAE4V,cAAcrV,IAAIH,EAAEJ,EAAEwV,QAAQzV,GAAGQ,IAAIiH,EAAExH,EAAE2iB,gBAAgBpiB,EAAET,GAAE,IAAK4F,EAAEgZ,sBAAsBne,EAAEe,EAAE,GAAGtB,EAAEuB,MAAMvB,EAAE6V,iBAAiBtV,IAAI,CAAC,EAAEgH,EAAEpG,UAAUgV,QAAQ,WAAW,IAAI,IAAItW,EAAE0B,KAAK1B,EAAE4X,gBAAgB5X,EAAEA,EAAE6X,YAAY,OAAO7X,CAAC,EAAE0H,EAAEpG,UAAUuW,UAAU,WAAW,OAAOnW,KAAKujB,kBAAkB,EAAEvd,EAAEpG,UAAU+lB,aAAa,SAASrnB,GAAG0B,KAAKujB,mBAAmBjlB,CAAC,EAAE0H,EAAEpG,UAAUkmB,eAAe,SAASxnB,EAAEC,EAAEC,EAAEC,GAAG,IAAIO,EAAEV,aAAa0H,EAAExF,EAAER,KAAKqU,UAAU5T,KAAM,UAAUD,GAAO,MAAMA,GAAIxB,GAAGV,EAAEmZ,0BAA0BjZ,aAAa4F,GAAG5F,EAAEghB,oBAAoBhhB,EAAE8gB,cAAchhB,EAAE4H,EAAE3H,GAAGK,KAAKJ,EAAEC,KAAKwH,GAAG3H,EAAE2V,QAAQhO,EAAE1H,IAAIA,IAAIG,EAAEJ,EAAEsiB,SAASliB,EAAEE,KAAKJ,IAAIA,aAAauB,EAAEvB,EAAEqiB,kBAAkBviB,GAAGU,GAAGV,aAAayF,EAAEzF,EAAEqY,UAAUnY,EAAEqX,UAAU,mBAAmBtX,EAAES,GAAGyB,GAAGnC,EAAEimB,sBAAsBvkB,KAAK6lB,0BAA0BtnB,EAAEC,EAAEC,EAAEH,IAAIC,EAAEK,KAAKJ,EAAEC,EAAEH,GAAGE,aAAauB,EAAEvB,EAAEkiB,gBAAoB,SAASlgB,EAAGhC,EAAEyiB,kBAAkBxiB,EAAEH,GAAGE,EAAE0iB,iBAAiBziB,EAAEH,IAAIU,IAAIyB,GAAGnC,EAAEimB,sBAA0B,SAAS/jB,EAAGlC,EAAEsiB,SAASniB,GAAGH,EAAE2V,QAAQxV,GAAG,EAAEuH,EAAEpG,UAAUilB,uCAAuC,SAASvmB,GAAG,IAAIC,EAAED,EAAE8gB,QAAQ5gB,EAAEF,EAAEwT,QAAQrT,EAAEH,EAAEwmB,SAASpmB,EAAEJ,EAAEiB,MAAM,mBAAmBhB,EAAEC,aAAawH,EAAEhG,KAAK6lB,0BAA0BtnB,EAAEE,EAAEC,EAAEF,GAAGD,EAAEK,KAAKH,EAAEC,EAAEF,GAAGA,aAAawH,GAAGxH,EAAEyV,QAAQvV,EAAE,EAAEsH,EAAEpG,UAAUglB,kBAAkB,SAAStmB,GAAG0B,KAAK8lB,eAAexnB,EAAEwT,QAAQxT,EAAE8gB,QAAQ9gB,EAAEwmB,SAASxmB,EAAEiB,MAAM,EAAEyG,EAAEpG,UAAUmmB,gBAAgB,SAASznB,EAAEC,EAAEC,GAAG,IAAIC,EAAEuB,KAAKwjB,UAAU9kB,EAAEsB,KAAKqlB,YAAY,GAAGrlB,KAAKwjB,eAAU,EAAOxjB,KAAKyjB,gBAAW,EAAOzjB,KAAK8lB,eAAernB,EAAEH,EAAEI,EAAEH,EAAE,EAAEyH,EAAEpG,UAAUomB,0BAA0B,SAAS1nB,GAAG,IAAIC,EAAE,EAAED,EAAE,EAAE0B,KAAKzB,EAAE,GAAGyB,KAAKzB,EAAE,GAAGyB,KAAKzB,EAAE,GAAGyB,KAAKzB,EAAE,QAAG,CAAM,EAAEyH,EAAEpG,UAAUghB,SAAS,SAAStiB,GAAG,IAAIC,EAAEyB,KAAKqU,UAAU,MAAM,UAAU9V,KAAK,IAAI,CAAC,GAAGD,IAAI0B,KAAK,CAAC,IAAIxB,EAAEC,IAAI,OAAOuB,KAAKsX,kBAAkB9Y,GAAGwB,KAAKiU,QAAQzV,EAAE,CAACwB,KAAKykB,gBAAgBzkB,KAAKujB,mBAAmBjlB,GAAG,MAAMC,GAAG,IAAQ,UAAUA,EAAGyB,KAAK4T,kBAAkB7S,EAAE4S,eAAe3T,MAAM,CAAC,EAAEgG,EAAEpG,UAAUqU,QAAQ,SAAS3V,GAAG,IAAIC,EAAEyB,KAAKqU,UAAU,MAAM,UAAU9V,KAAK,IAAI,CAAC,GAAGyB,KAAKilB,eAAejlB,KAAKsjB,qBAAqBhlB,EAAE0B,KAAKmlB,WAAW,OAAOpkB,EAAEqS,WAAW9U,EAAEQ,EAAEsb,SAAS,MAAM7b,GAAG,EAAEwC,EAAE4S,eAAe3T,MAAMA,KAAKsY,iCAAiC,CAAC,EAAEtS,EAAEpG,UAAUqmB,iBAAiB,SAAS3nB,EAAEC,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAEF,EAAEE,IAAI,CAAC,IAAIC,EAAEuB,KAAKulB,sBAAsB/mB,GAAGE,EAAEsB,KAAKslB,WAAW9mB,GAAGQ,EAAEgB,KAAKqlB,YAAY7mB,GAAGwB,KAAKgmB,0BAA0BxnB,GAAGwB,KAAK8lB,eAAepnB,EAAED,EAAEO,EAAET,EAAE,CAAC,EAAEyH,EAAEpG,UAAUsmB,gBAAgB,SAAS5nB,EAAEC,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAEF,EAAEE,IAAI,CAAC,IAAIC,EAAEuB,KAAKwlB,oBAAoBhnB,GAAGE,EAAEsB,KAAKslB,WAAW9mB,GAAGQ,EAAEgB,KAAKqlB,YAAY7mB,GAAGwB,KAAKgmB,0BAA0BxnB,GAAGwB,KAAK8lB,eAAepnB,EAAED,EAAEO,EAAET,EAAE,CAAC,EAAEyH,EAAEpG,UAAUgU,gBAAgB,WAAW,IAAItV,EAAE0B,KAAKqU,UAAU9V,EAAE,MAAMD,EAAE,GAAGC,EAAE,EAAE,CAAC,GAAO,SAASD,EAAG,CAAC,IAAIE,EAAEwB,KAAKsjB,qBAAqBtjB,KAAK+lB,gBAAgB/lB,KAAKujB,mBAAmB/kB,EAAEF,GAAG0B,KAAKkmB,gBAAgB3nB,EAAEC,EAAE,KAAK,CAAC,IAAIC,EAAEuB,KAAKujB,mBAAmBvjB,KAAK+lB,gBAAgB/lB,KAAKsjB,qBAAqB7kB,EAAEH,GAAG0B,KAAKimB,iBAAiB1nB,EAAEE,EAAE,CAACuB,KAAKglB,WAAW,EAAE,CAAChlB,KAAKob,wBAAwB,EAAEpV,EAAEpG,UAAUkZ,cAAc,WAAW,IAAIxa,EAAE0B,KAAKqU,UAAU,OAAW,SAAS/V,EAAG0B,KAAKujB,mBAAuB,SAASjlB,EAAG0B,KAAKsjB,0BAAqB,CAAM,EAAEtd,EAAEmgB,MAAMngB,EAAEogB,QAAQ,WAAW,OAAOjiB,EAAEkZ,WAAW,gBAAgB,eAAe,CAACvL,QAAQ,IAAI9L,EAAE9C,GAAG+R,QAAQ9O,EAAE6Z,OAAOlZ,EAAE,EAAEhI,EAAE+c,kBAAkB7V,EAAE,2BAA2BvH,GAAGH,EAAE,WAAFA,CAAc0H,EAAE9C,EAAEW,EAAE7E,EAAEmF,GAAG7F,EAAE,SAAFA,CAAY0H,EAAE9C,EAAEW,EAAEM,GAAG7F,EAAE,WAAFA,CAAc0H,EAAEjC,EAAE/E,EAAEmF,GAAG7F,EAAE,mBAAFA,CAAsB0H,GAAG1H,EAAE,2BAAFA,CAA8B0H,GAAG1H,EAAE,SAAFA,CAAY0H,EAAEjC,EAAEF,EAAEX,EAAEnC,EAAEP,GAAGwF,EAAEkP,QAAQlP,EAAEA,EAAEwE,QAAQ,QAAQlM,EAAE,WAAFA,CAAc0H,EAAEjC,EAAE/E,EAAE6E,EAAEX,EAAEiB,GAAG7F,EAAE,gBAAFA,CAAmB0H,GAAG1H,EAAE,aAAFA,CAAgB0H,EAAEhH,EAAE6E,EAAEK,EAAEhB,EAAEiB,GAAG7F,EAAE,cAAFA,CAAiB0H,EAAE9C,EAAEiB,GAAG7F,EAAE,kBAAFA,CAAqB0H,EAAEhH,EAAEkE,EAAEW,EAAE9D,EAAEoE,GAAG7F,EAAE,eAAFA,CAAkB0H,GAAG1H,EAAE,iBAAFA,CAAoB0H,EAAE9C,GAAG5E,EAAE,aAAFA,CAAgB0H,EAAEjC,EAAEF,EAAE7E,GAAGV,EAAE,YAAFA,CAAe0H,EAAE9C,EAAEW,EAAE7E,GAAGV,EAAE,cAAFA,CAAiB0H,EAAEjC,EAAE/E,EAAE6E,EAAEX,EAAEiB,GAAG7F,EAAE,cAAFA,CAAiB0H,EAAEjC,EAAEI,GAAG7F,EAAE,YAAFA,CAAe0H,EAAEjC,EAAE/E,GAAGV,EAAE,cAAFA,CAAiB0H,EAAE9C,GAAG5E,EAAE,YAAFA,CAAe0H,EAAE9C,GAAG5E,EAAE,WAAFA,CAAc0H,GAAGlH,EAAEunB,iBAAiBrgB,GAAGlH,EAAEunB,iBAAiBrgB,EAAEpG,WAAWmH,EAAE,CAACvG,EAAE,IAAIuG,EAAE,CAAChD,EAAE,IAAIgD,EAAE,CAACjI,EAAE,IAAIiI,EAAE,GAAGA,GAAE,WAAW,IAAGA,OAAE,GAAQA,GAAE,GAAIA,EAAE,IAAIf,EAAE9C,IAAIiB,EAAEiZ,UAAU9c,EAAE0T,eAAelV,EAAEwnB,eAAetgB,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,YAAY,GAAG,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,eAAe,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,YAAY,GAAG,2BAA2B,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,KAAK,GAAG,CAAC,SAAS1H,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,EAAEC,EAAEM,GAAG,IAAIe,EAAEzB,EAAE,UAAU,SAASkC,EAAElC,GAAG,IAAIG,EAAEuB,KAAKkgB,SAAS,IAAI3hB,EAAEC,GAAGF,aAAaC,GAAGE,EAAE+V,eAAelW,EAAE,GAAGG,EAAEqW,aAAa9U,MAAMA,KAAKuiB,QAAQjkB,EAAE0B,KAAK8W,QAAQ,EAAE9W,KAAKwiB,eAAe,EAAExiB,KAAKsiB,WAAM,GAAQ,EAAE,CAAC,OAAOviB,EAAEwL,QAAQxL,EAAEQ,SAASC,EAAExB,GAAGwB,EAAEZ,UAAUc,OAAO,WAAW,OAAOV,KAAK8W,OAAO,EAAEtW,EAAEZ,UAAUkS,QAAQ,WAAW,OAAO9R,KAAKkgB,QAAQ,EAAE1f,EAAEZ,UAAU0iB,MAAM,SAAShkB,EAAEE,EAAEQ,GAAG,IAAIwB,EAAE/B,EAAEuB,KAAKuiB,QAAQviB,KAAKkgB,UAAU,GAAG1f,aAAajC,EAAE,CAAC,IAAIkC,GAAGD,EAAEA,EAAEoU,WAAWP,UAAU,GAAGrU,KAAKuiB,QAAQ/hB,IAAM,SAASC,GAAG,OAAOT,KAAKkgB,SAASqE,sBAAsB/jB,EAAE4T,MAAM9V,EAAE0B,KAAKiU,aAAQ,EAAOjU,KAAKhB,GAAG,KAAO,SAASyB,GAAG,OAAW,SAASA,EAAGT,KAAKiU,QAAQzT,EAAE+gB,WAAWvhB,KAAK2W,UAAUnW,EAAEA,EAAE8gB,QAAQ,CAAC,GAAG,QAAQ9gB,EAAET,EAAEwmB,QAAQ/lB,IAAI,IAAIA,EAAEE,OAAOV,KAAKwmB,SAAShmB,IAAI,IAAIxB,EAAEgB,KAAKymB,qBAAqBzmB,KAAK0iB,SAAS,WAAY,OAAO1jB,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,IAAI0nB,IAAI,CAA5E,QAAqF,CAAC,IAAI5nB,EAAEJ,EAAE,oDAAoDqB,EAAEsV,YAAY7U,IAAIsa,SAAS9a,KAAKkgB,SAASkB,gBAAgBtiB,GAAE,EAAG,CAAC,EAAE0B,EAAEZ,UAAU4mB,SAAS,SAASloB,GAAG,IAAIE,EAAEwB,KAAK2mB,gBAAgBroB,EAAEoC,QAAQV,KAAK8W,QAAQtY,EAAEwB,KAAKuiB,QAAQviB,KAAK4mB,mBAAmB,IAAIjgB,MAAMnI,GAAGwB,KAAKuiB,QAAQ,IAAI,IAAI7jB,EAAEsB,KAAKkgB,SAASlhB,GAAE,EAAGe,EAAE,KAAKS,EAAE,EAAEA,EAAEhC,IAAIgC,EAAE,CAAC,IAAIC,EAAEhC,EAAEH,EAAEkC,GAAG9B,GAAGqB,EAAEU,aAAalC,GAAGkC,EAAEA,EAAEmU,WAAWP,UAAU,KAAKrV,EAAE,OAAOe,GAAGU,EAAE4X,8BAA8B,OAAOtY,EAAM,SAASA,EAAwCf,EAAM,SAASe,EAAGC,KAAKihB,kBAAkBxgB,EAAE6gB,SAAS9gB,GAAO,SAAST,EAAGC,KAAKkhB,iBAAiBzgB,EAAE8gB,UAAU/gB,GAAGR,KAAK6gB,kBAAkBrgB,IAAvKC,EAAE+gB,OAAOxhB,KAAKQ,GAAGR,KAAKuiB,QAAQ/hB,GAAGC,GAAyIzB,EAAEgB,KAAKihB,kBAAkBxgB,EAAED,EAAE,CAACxB,GAAGN,EAAE6lB,qBAAqB,EAAE/jB,EAAEZ,UAAU8gB,YAAY,WAAW,OAAO,OAAO1gB,KAAKuiB,OAAO,EAAE/hB,EAAEZ,UAAU8iB,SAAS,SAASpkB,GAAG0B,KAAKuiB,QAAQ,KAAKviB,KAAKkgB,SAASU,SAAStiB,EAAE,EAAEkC,EAAEZ,UAAU+W,QAAQ,YAAY3W,KAAK0gB,eAAe1gB,KAAKkgB,SAASlK,mBAAmBhW,KAAKuiB,QAAQ,KAAKviB,KAAKkgB,SAASvJ,UAAU,EAAEnW,EAAEZ,UAAUqU,QAAQ,SAAS3V,GAAG0B,KAAKuiB,QAAQ,KAAKviB,KAAKkgB,SAASkB,gBAAgB9iB,GAAE,EAAG,EAAEkC,EAAEZ,UAAUqhB,kBAAkB,SAAS3iB,EAAEC,GAAG,OAAOyB,KAAKuiB,QAAQhkB,GAAGD,IAAI0B,KAAKwiB,gBAAgBxiB,KAAK8W,UAAU9W,KAAK0iB,SAAS1iB,KAAKuiB,UAAS,EAAG,EAAE/hB,EAAEZ,UAAUihB,kBAAkB,WAAW,OAAO7gB,KAAK2W,WAAU,CAAE,EAAEnW,EAAEZ,UAAUshB,iBAAiB,SAAS5iB,GAAG,OAAO0B,KAAKwiB,iBAAiBxiB,KAAKiU,QAAQ3V,IAAG,CAAE,EAAEkC,EAAEZ,UAAU2X,iBAAiB,WAAW,IAAIvX,KAAK0gB,cAAc,CAAC,IAAIpiB,EAAE0B,KAAKuiB,QAAQ,GAAGviB,KAAK2W,UAAUrY,aAAaC,EAAED,EAAEuX,cAAc,IAAI,IAAIrX,EAAE,EAAEA,EAAEF,EAAEoC,SAASlC,EAAEF,EAAEE,aAAaD,GAAGD,EAAEE,GAAGqX,QAAQ,CAAC,EAAErV,EAAEZ,UAAUgnB,iBAAiB,WAAW,OAAM,CAAE,EAAEpmB,EAAEZ,UAAU+mB,gBAAgB,SAASroB,GAAG,OAAOA,CAAC,EAAEkC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAASlC,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,GAAG,IAAIC,EAAE,CAAC,EAAEC,EAAEJ,EAAE,UAAUU,EAAEV,EAAE,cAAcyB,EAAErB,EAAEmoB,aAAarmB,EAAE9B,EAAEskB,iBAAiBviB,EAAE/B,EAAE0W,YAAYtW,EAAER,EAAE,YAAY2D,UAAUtD,EAAE,CAACmoB,mBAAkB,GAAIxmB,EAAE,IAAIymB,OAAO,OAAO,CAAC,QAAQ,SAAS,OAAO,YAAY,SAAS,SAAS,YAAY,qBAAqBxgB,KAAK,KAAK,MAAMxF,EAAE,SAASzC,GAAG,OAAOI,EAAE8W,aAAalX,IAAI,MAAMA,EAAE2d,OAAO,IAAI,gBAAgB3d,CAAC,EAAE,SAASwB,EAAExB,GAAG,OAAOgC,EAAEyb,KAAKzd,EAAE,CAAC,SAASS,EAAET,GAAG,IAAI,OAAM,IAAKA,EAAEwoB,iBAAiB,CAAC,MAAMxoB,GAAG,OAAM,CAAE,CAAC,CAAC,SAAS2E,EAAE3E,EAAEC,EAAEC,GAAG,IAAIC,EAAEC,EAAEsoB,yBAAyB1oB,EAAEC,EAAEC,EAAEG,GAAG,QAAQF,GAAGM,EAAEN,EAAE,CAAC,SAASyE,EAAE5E,EAAEC,EAAEC,EAAEC,GAAG,IAAI,IAAIO,EAAEN,EAAEuoB,kBAAkB3oB,GAAGyB,EAAE,GAAGS,EAAE,EAAEA,EAAExB,EAAE0B,SAASF,EAAE,CAAC,IAAIC,EAAEzB,EAAEwB,GAAG7B,EAAEL,EAAEmC,GAAGH,EAAE7B,IAAIsC,GAAGA,EAAEN,GAAO,mBAAmB9B,GAAGI,EAAEJ,IAAIsE,EAAE3E,EAAEmC,EAAElC,KAAKE,EAAEgC,EAAE9B,EAAEL,EAAEgC,IAAIP,EAAEM,KAAKI,EAAE9B,EAAE,CAAC,OAAO,SAASL,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAEH,EAAEoC,OAAOjC,GAAG,EAAE,CAAC,IAAIC,EAAEJ,EAAEG,GAAG,GAAGD,EAAEud,KAAKrd,GAAG,IAAI,IAAIM,EAAEN,EAAEoL,QAAQtL,EAAE,IAAIuB,EAAE,EAAEA,EAAEzB,EAAEoC,OAAOX,GAAG,EAAE,GAAGzB,EAAEyB,KAAKf,EAAE,MAAM,IAAIF,EAAE,qGAAqGgL,QAAQ,KAAKvL,GAAG,CAAC,CAAjQ,CAAmQwB,EAAExB,EAAEC,GAAGuB,CAAC,CAAC,IAAmDlB,EAAE4B,OAAE,EAAO,SAASnC,EAAEmC,EAAE3B,EAAEH,EAAE2B,EAAES,GAAG,IAAIjB,EAAE,WAAW,OAAOE,IAAI,CAAtB,GAA0BjB,EAAET,EAAE,SAAS2E,IAAI,IAAIvE,EAAE+B,EAAEA,IAAIhC,IAAIC,EAAEsB,MAAM,IAAIlB,EAAE,IAAIP,EAAEC,GAAGM,EAAE2a,qBAAqB,IAAI9a,EAAE,iBAAiBI,GAAGiB,OAAOF,EAAEE,KAAKjB,GAAGT,EAAEgC,EAAEtB,EAAEF,EAAEiC,GAAG,IAAIpC,EAAEgG,MAAMjG,EAAEqB,EAAEgG,UAAUzF,GAAG,CAAC,MAAMhC,GAAGQ,EAAEsiB,gBAAgB5gB,EAAElC,IAAG,GAAG,EAAG,CAAC,OAAOQ,EAAEwlB,iBAAiBxlB,EAAEylB,sBAAsBzlB,CAAC,CAAC,MAAM,iBAAiBC,IAAIT,EAAEK,GAAGD,EAAEmd,kBAAkB5Y,EAAE,qBAAoB,GAAIA,CAAC,EAAE,SAASY,EAAEvF,EAAEC,EAAEC,EAAEQ,EAAEe,GAAG,IAAI,IAAIS,EAAE,IAAIumB,OAAje,SAASzoB,GAAG,OAAOA,EAAEwL,QAAQ,QAAQ,MAAM,CAA6bzG,CAAE9E,GAAG,KAAKkC,EAAEyC,EAAE5E,EAAEC,EAAEiC,EAAEhC,GAAGM,EAAE,EAAEH,EAAE8B,EAAEC,OAAO5B,EAAEH,EAAEG,GAAG,EAAE,CAAC,IAAIwB,EAAEG,EAAE3B,GAAGiC,EAAEN,EAAE3B,EAAE,GAAGgB,EAAEQ,EAAE/B,EAAE,GAAGS,IAAIH,EAAEP,EAAEwB,GAAGjB,EAAEyB,EAAE7B,EAAE6B,EAAES,EAAExC,EAAEwB,OAAO,CAAC,IAAIhB,EAAEC,EAAE+B,GAAE,WAAW,OAAOlC,EAAEyB,EAAE7B,EAAE6B,EAAES,EAAExC,EAAEwB,EAAE,IAAGrB,EAAEmd,kBAAkB9c,EAAE,qBAAoB,GAAIT,EAAEwB,GAAGf,CAAC,CAAC,CAAC,OAAOL,EAAE2nB,iBAAiB/nB,GAAGA,CAAC,CAACC,EAAE2oB,UAAU,SAAS5oB,EAAEC,GAAG,GAAG,mBAAmBD,EAAE,MAAM,IAAIQ,EAAE,gCAAgCJ,EAAE2W,YAAY/W,IAAI,GAAGS,EAAET,GAAG,OAAOA,EAAE,IAAIE,OAAE,KAAUD,EAAEU,OAAOV,IAAIuP,QAAQrP,EAAEF,EAAEuP,QAAQ9O,IAAIT,EAAE8lB,UAAUtkB,EAAE,SAASzB,EAAEC,GAAK,OAAOM,EAAEP,EAAEC,OAAE,EAAOD,EAAE,KAAKU,EAAE,CAA7C,CAA+CV,EAAEE,GAAG,OAAOE,EAAEyoB,gBAAgB7oB,EAAEyB,EAAED,GAAGC,CAAC,EAAExB,EAAE6oB,aAAa,SAAS9oB,EAAEC,GAAG,GAAG,mBAAmBD,GAAG,iBAAiBA,EAAE,MAAM,IAAIQ,EAAE,gGAAgG,IAAIN,KAAKD,EAAEU,OAAOV,IAAI8lB,UAAU5lB,EAAEF,EAAE8oB,OAAO,iBAAiB5oB,IAAIA,EAAE,SAAS,IAAIO,EAAET,EAAE4gB,OAAO,mBAAmBngB,IAAIA,EAAE+B,GAAG,IAAIhB,EAAExB,EAAE+oB,YAAY,GAAG,mBAAmBvnB,IAAIA,EAAElB,IAAIH,EAAE8W,aAAa/W,GAAG,MAAM,IAAIoD,WAAW,uEAAuE,IAAI,IAAIrB,EAAE9B,EAAEuoB,kBAAkB3oB,GAAGmC,EAAE,EAAEA,EAAED,EAAEE,SAASD,EAAE,CAAC,IAAI9B,EAAEL,EAAEkC,EAAEC,IAAI,gBAAgBD,EAAEC,IAAI/B,EAAE6oB,QAAQ5oB,KAAKkF,EAAElF,EAAEiB,UAAUnB,EAAEO,EAAEe,EAAEvB,GAAGqF,EAAElF,EAAEF,EAAEO,EAAEe,EAAEvB,GAAG,CAAC,OAAOqF,EAAEvF,EAAEG,EAAEO,EAAEe,EAAEvB,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,aAAa,GAAG,SAAS,KAAK,GAAG,CAAC,SAASF,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,EAAEC,GAAG,IAAIM,EAAEe,EAAEzB,EAAE,UAAUkC,EAAET,EAAEiM,SAASvL,EAAEnC,EAAE,SAAS,mBAAmBooB,MAAM1nB,EAAE0nB,KAAK,IAAI5nB,EAAE,WAAW,IAAIR,EAAE,EAAEC,EAAE,EAAE,SAASC,EAAEA,EAAEC,GAAGuB,KAAK1B,GAAGE,EAAEwB,KAAK1B,EAAEC,GAAGE,EAAEH,GAAG,CAAC,OAAO,SAASG,GAAGF,EAAEE,EAAE+oB,KAAKlpB,EAAE,EAAE,IAAII,EAAE,IAAIiI,MAAM,EAAElI,EAAE+oB,MAAM,OAAO/oB,EAAEgpB,QAAQjpB,EAAEE,GAAGA,CAAC,CAAC,CAAnJ,GAAuJ,SAASC,EAAEL,GAAG,IAAIC,EAAEC,GAAE,EAAG,QAAG,IAASQ,GAAGV,aAAaU,EAAET,EAAEO,EAAER,GAAGE,GAAE,MAAO,CAAC,IAAIC,EAAEgC,EAAEL,KAAK9B,GAAGI,EAAED,EAAEiC,OAAOnC,EAAE,IAAIoI,MAAM,EAAEjI,GAAG,IAAI,IAAIqB,EAAE,EAAEA,EAAErB,IAAIqB,EAAE,CAAC,IAAIS,EAAE/B,EAAEsB,GAAGxB,EAAEwB,GAAGzB,EAAEkC,GAAGjC,EAAEwB,EAAErB,GAAG8B,CAAC,CAAC,CAACR,KAAK6hB,aAAatjB,GAAGyB,KAAK0nB,OAAOlpB,EAAEwB,KAAKqiB,YAAO,EAAO7jB,GAAG,GAAG,EAAE,CAAC,SAAS8B,EAAEhC,GAAG,IAAIE,EAAEQ,EAAEP,EAAEH,GAAG,OAAOkC,EAAExB,IAAIR,EAAEQ,aAAaT,EAAES,EAAEoV,MAAM7V,EAAEopB,WAAM,OAAO,OAAO,OAAO,GAAQ,IAAIhpB,EAAEK,GAAG8S,UAAU9S,aAAaT,GAAGC,EAAEgW,eAAexV,EAAE,GAAGR,GAAGE,EAAE,4EAA4E,CAACqB,EAAEQ,SAAS5B,EAAEH,GAAGG,EAAEiB,UAAU0iB,MAAM,WAAW,EAAE3jB,EAAEiB,UAAUqhB,kBAAkB,SAAS3iB,EAAEC,GAAG,GAAGyB,KAAKuiB,QAAQhkB,GAAGD,IAAI0B,KAAKwiB,gBAAgBxiB,KAAK8W,QAAQ,CAAC,IAAItY,EAAE,GAAGwB,KAAK0nB,OAAOlpB,EAAE,SAASF,GAAG,IAAI,IAAIC,EAAE,IAAIS,EAAER,EAAEF,EAAEoC,OAAO,EAAE,EAAEjC,EAAE,EAAEA,EAAED,IAAIC,EAAE,CAAC,IAAIC,EAAEJ,EAAEE,EAAEC,GAAGsB,EAAEzB,EAAEG,GAAGF,EAAEgD,IAAI7C,EAAEqB,EAAE,CAAC,OAAOxB,CAAC,CAA/F,CAAiGyB,KAAKuiB,aAAa,CAAC/jB,EAAE,CAAC,EAAE,IAAI,IAAIC,EAAEuB,KAAKU,SAAShC,EAAE,EAAEqB,EAAEC,KAAKU,SAAShC,EAAEqB,IAAIrB,EAAEF,EAAEwB,KAAKuiB,QAAQ7jB,EAAED,IAAIuB,KAAKuiB,QAAQ7jB,EAAE,CAAC,OAAOsB,KAAK0iB,SAASlkB,IAAG,CAAE,CAAC,OAAM,CAAE,EAAEG,EAAEiB,UAAUgnB,iBAAiB,WAAW,OAAM,CAAE,EAAEjoB,EAAEiB,UAAU+mB,gBAAgB,SAASroB,GAAG,OAAOA,GAAG,CAAC,EAAEC,EAAEqB,UAAU+nB,MAAM,WAAW,OAAOrnB,EAAEN,KAAK,EAAEzB,EAAEopB,MAAM,SAASrpB,GAAG,OAAOgC,EAAEhC,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,SAAS,KAAK,GAAG,CAAC,SAASA,EAAEC,EAAEC,GAAG,aAAa,SAASC,EAAEH,GAAG0B,KAAK4nB,UAAUtpB,EAAE0B,KAAK8W,QAAQ,EAAE9W,KAAK6nB,OAAO,CAAC,CAACppB,EAAEmB,UAAUkoB,oBAAoB,SAASxpB,GAAG,OAAO0B,KAAK4nB,UAAUtpB,CAAC,EAAEG,EAAEmB,UAAUiT,SAAS,SAASvU,GAAG,IAAIC,EAAEyB,KAAKU,SAASV,KAAK+nB,eAAexpB,EAAE,GAAGyB,KAAKA,KAAK6nB,OAAOtpB,EAAEyB,KAAK4nB,UAAU,GAAGtpB,EAAE0B,KAAK8W,QAAQvY,EAAE,CAAC,EAAEE,EAAEmB,UAAUS,KAAK,SAAS/B,EAAEC,EAAEC,GAAG,IAAIC,EAAEuB,KAAKU,SAAS,EAAE,GAAGV,KAAK8nB,oBAAoBrpB,GAAG,OAAOuB,KAAK6S,SAASvU,GAAG0B,KAAK6S,SAAStU,QAAQyB,KAAK6S,SAASrU,GAAG,IAAIE,EAAEsB,KAAK6nB,OAAOppB,EAAE,EAAEuB,KAAK+nB,eAAetpB,GAAG,IAAIO,EAAEgB,KAAK4nB,UAAU,EAAE5nB,KAAKtB,EAAE,EAAEM,GAAGV,EAAE0B,KAAKtB,EAAE,EAAEM,GAAGT,EAAEyB,KAAKtB,EAAE,EAAEM,GAAGR,EAAEwB,KAAK8W,QAAQrY,CAAC,EAAEA,EAAEmB,UAAUkU,MAAM,WAAW,IAAIxV,EAAE0B,KAAK6nB,OAAOtpB,EAAEyB,KAAK1B,GAAG,OAAO0B,KAAK1B,QAAG,EAAO0B,KAAK6nB,OAAOvpB,EAAE,EAAE0B,KAAK4nB,UAAU,EAAE5nB,KAAK8W,UAAUvY,CAAC,EAAEE,EAAEmB,UAAUc,OAAO,WAAW,OAAOV,KAAK8W,OAAO,EAAErY,EAAEmB,UAAUmoB,eAAe,SAASzpB,GAAG0B,KAAK4nB,UAAUtpB,GAAG0B,KAAKgoB,UAAUhoB,KAAK4nB,WAAW,EAAE,EAAEnpB,EAAEmB,UAAUooB,UAAU,SAAS1pB,GAAG,IAAIC,EAAEyB,KAAK4nB,UAAU5nB,KAAK4nB,UAAUtpB,EAAE,SAASA,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAI,IAAIM,EAAE,EAAEA,EAAEN,IAAIM,EAAER,EAAEQ,EAAEP,GAAGH,EAAEU,EAAE,GAAGV,EAAEU,EAAE,QAAG,CAAM,CAAnE,CAAqEgB,KAAK,EAAEA,KAAKzB,EAAEyB,KAAK6nB,OAAO7nB,KAAK8W,QAAQvY,EAAE,EAAE,EAAEA,EAAEF,QAAQI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,SAASH,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,EAAEC,GAAG,IAAIM,EAAEV,EAAE,UAAUyB,EAAE,SAASzB,GAAG,OAAOA,EAAEqhB,MAAK,SAASphB,GAAG,OAAOiC,EAAEjC,EAAED,EAAE,GAAE,EAAE,SAASkC,EAAElC,EAAEkC,GAAG,IAAIC,EAAEhC,EAAEH,GAAG,GAAGmC,aAAalC,EAAE,OAAOwB,EAAEU,GAAG,GAAG,QAAQnC,EAAEU,EAAEunB,QAAQjoB,IAAI,OAAOI,EAAE,oDAAoDM,EAAEqW,YAAY/W,IAAI,IAAIQ,EAAE,IAAIP,EAAEC,QAAG,IAASgC,GAAG1B,EAAE0V,eAAehU,EAAE,GAAG,IAAI,IAAI7B,EAAEG,EAAE8hB,SAAStgB,EAAExB,EAAEmV,QAAQlT,EAAE,EAAEjB,EAAExB,EAAEoC,OAAOK,EAAEjB,IAAIiB,EAAE,CAAC,IAAIhC,EAAET,EAAEyC,SAAI,IAAShC,GAAGgC,KAAKzC,IAAIC,EAAEimB,KAAKzlB,GAAGqV,MAAMzV,EAAE2B,OAAE,EAAOxB,EAAE,KAAK,CAAC,OAAOA,CAAC,CAACP,EAAE0pB,KAAK,SAAS3pB,GAAG,OAAOkC,EAAElC,OAAE,EAAO,EAAEC,EAAEqB,UAAUqoB,KAAK,WAAW,OAAOznB,EAAER,UAAK,EAAO,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS1B,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,EAAEC,EAAEM,EAAEe,GAAG,IAAIS,EAAEjC,EAAE2Z,WAAWzX,EAAEnC,EAAE,UAAUQ,EAAE2B,EAAEgV,SAAS,SAAS9W,EAAEL,EAAEE,EAAEC,EAAEC,GAAGsB,KAAK6hB,aAAavjB,GAAG,IAAIyB,EAAES,IAAIR,KAAKkoB,IAAI,OAAOnoB,EAAEvB,EAAEiC,EAAE2Y,WAAWrZ,EAAEvB,QAAG,IAASC,IAAIA,EAAEF,EAAE0W,QAAQxW,IAAIuc,4BAA4Bhb,MAAMA,KAAKmoB,cAAc1pB,EAAEuB,KAAKooB,oBAAoB,KAAKpoB,KAAKqoB,YAAY3pB,IAAIM,EAAE2H,MAAM3G,KAAK8W,SAAS,IAAIpY,EAAE,UAAK,EAAOsB,KAAKkgB,SAASzG,qBAAqBzZ,KAAKqiB,YAAO,GAAQ,EAAE,CAAC,SAAS/hB,EAAEhC,EAAEC,GAAGyB,KAAKwb,cAAcjd,EAAEmkB,SAASpkB,GAAGC,EAAE0V,QAAQ3V,EAAE,CAAC,SAASyC,EAAEzC,EAAEC,EAAEC,EAAEE,GAAG,MAAM,mBAAmBH,EAAEE,EAAE,gCAAgCgC,EAAE4U,YAAY9W,IAAI,IAAII,EAAEL,EAAEC,EAAEC,EAAEE,GAAGoT,SAAS,CAAC,SAAShS,EAAExB,GAAG0B,KAAKsoB,MAAMhqB,EAAE0B,KAAKmK,MAAMoe,UAAUjqB,GAAG,IAAIE,EAAEE,EAAEsB,KAAKT,MAAMS,KAAKmK,MAAM+V,UAAU,OAAO1hB,aAAaD,GAAGyB,KAAKmK,MAAMie,oBAAoB5pB,EAAEA,EAAE4V,MAAMrV,OAAE,OAAO,EAAOiB,UAAK,IAASjB,EAAEH,KAAKoB,KAAKxB,EAAE,CAAC,SAASO,EAAET,GAAG,IAAIE,EAAEC,EAAEuB,KAAKmK,MAAMzL,EAAED,EAAEyhB,SAASlhB,EAAEF,EAAEL,EAAEypB,KAAKxpB,EAAEmZ,gBAAgBrZ,OAAE,IAASC,EAAE4pB,YAAYrpB,EAAEJ,KAAKF,EAAEgW,cAAcpW,EAAE0B,KAAKwoB,MAAMxoB,KAAKU,QAAQ1B,EAAEJ,KAAKF,EAAEgW,cAAc1U,KAAKsoB,MAAMhqB,EAAE0B,KAAKwoB,MAAMxoB,KAAKU,mBAAmBnC,IAAIE,EAAE2pB,oBAAoB5pB,GAAG,IAAIgC,EAAE9B,EAAEoZ,cAAc,OAAO/X,EAAEod,sBAAsB3e,EAAEgC,OAAE,IAAS/B,EAAE4pB,YAAY,eAAe,iBAAiB3pB,GAAGF,CAAC,CAACiC,EAAEF,SAAS5B,EAAEH,GAAGG,EAAEiB,UAAU2oB,UAAU,SAASjqB,QAAG,IAAS0B,KAAKqoB,aAAa,OAAOroB,KAAKqoB,aAAa/pB,IAAIU,GAAGgB,KAAKqoB,YAAYhoB,KAAK/B,EAAE,EAAEK,EAAEiB,UAAU6oB,cAAc,SAASnqB,GAAG,OAAO,OAAO0B,KAAKqoB,aAAaroB,KAAKqoB,YAAYhoB,KAAK/B,GAAG0B,KAAKqoB,WAAW,EAAE1pB,EAAEiB,UAAU0iB,MAAM,WAAW,EAAE3jB,EAAEiB,UAAU6mB,mBAAmB,WAAWzmB,KAAK0iB,cAAS,IAAS1iB,KAAKqoB,YAAYroB,KAAKqoB,YAAYroB,KAAKmoB,cAAc,EAAExpB,EAAEiB,UAAUgnB,iBAAiB,WAAW,OAAM,CAAE,EAAEjoB,EAAEiB,UAAU8iB,SAAS,SAASpkB,GAAG0B,KAAKkgB,SAAS5L,iBAAiBhW,GAAG0B,KAAKuiB,QAAQ,IAAI,EAAE5jB,EAAEiB,UAAU2X,iBAAiB,SAASjZ,GAAG,GAAGA,IAAI0B,KAAKmoB,cAAc,OAAOnoB,KAAK2W,UAAU3W,KAAK0gB,gBAAgB1gB,KAAK0oB,oBAAoB1oB,KAAKooB,+BAA+B7pB,GAAGyB,KAAKooB,oBAAoBvS,SAAS7V,KAAKmoB,yBAAyB5pB,GAAGyB,KAAKmoB,cAActS,SAAS,EAAElX,EAAEiB,UAAU4mB,SAAS,SAASloB,GAAG,IAAIE,EAAEC,EAAEuB,KAAKuiB,QAAQjkB,EAAE,IAAII,EAAEJ,EAAEoC,OAAO,QAAG,IAASV,KAAKmoB,eAAe3pB,EAAEwB,KAAKmoB,cAAc1pB,EAAE,IAAID,EAAED,EAAE0W,QAAQ3W,EAAE,IAAIG,EAAE,GAAGuB,KAAKooB,oBAAoB5pB,GAAGA,EAAEihB,aAAa,KAAKhhB,EAAEC,IAAID,EAAE,CAAC,IAAIO,EAAE,CAACspB,MAAM,KAAK/oB,MAAMjB,EAAEG,GAAG+pB,MAAM/pB,EAAEiC,OAAOhC,EAAEyL,MAAMnK,MAAMxB,EAAEA,EAAE4V,MAAMtU,OAAE,OAAO,EAAOd,OAAE,EAAO,MAAC,IAASgB,KAAKqoB,cAAc7pB,EAAEA,EAAE4V,MAAMpU,KAAKyoB,mBAAc,OAAO,EAAOzoB,UAAK,IAASxB,EAAE4V,MAAM9T,EAAEA,OAAE,EAAO9B,EAAEwB,KAAK,EAAEzB,EAAEqB,UAAUme,OAAO,SAASzf,EAAEC,GAAG,OAAOwC,EAAEf,KAAK1B,EAAEC,EAAE,KAAK,EAAEA,EAAEwf,OAAO,SAASzf,EAAEC,EAAEC,EAAEC,GAAG,OAAOsC,EAAEzC,EAAEC,EAAEC,EAAEC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAASH,EAAEI,EAAEM,GAAG,aAAa,IAAIe,EAAES,EAAElC,EAAE,UAAUmC,EAAED,EAAEmoB,mBAAmB,GAAGnoB,EAAE4Z,QAAQ,oBAAoBwO,iBAAiB,CAAC,IAAI9pB,EAAEN,EAAE8O,aAAa3O,EAAEJ,EAAE2C,SAASnB,EAAES,EAAEqoB,aAAa,SAASvqB,GAAGQ,EAAEF,KAAKJ,EAAEF,EAAE,EAAE,SAASA,GAAGK,EAAEC,KAAKL,EAAED,EAAE,CAAC,MAAM,GAAG,mBAAmBmC,GAAG,mBAAmBA,EAAEwU,QAAQ,CAAC,IAAI3U,EAAEG,EAAEwU,UAAUlV,EAAE,SAASzB,GAAGgC,EAAEqf,KAAKrhB,EAAE,CAAC,MAAMyB,EAAE,oBAAoB6oB,kBAAkB,oBAAoBzoB,QAAQA,OAAO2oB,YAAY3oB,OAAO2oB,UAAUC,YAAY5oB,OAAO6oB,cAAS,IAASvqB,EAAE,SAASH,GAAGG,EAAEH,EAAE,EAAE,oBAAoByL,WAAW,SAASzL,GAAGyL,WAAWzL,EAAE,EAAE,EAAE,WAAW,MAAM,IAAI0D,MAAM,iEAAiE,EAAE,WAAW,IAAI1D,EAAE2b,SAASgP,cAAc,OAAO1qB,EAAE,CAAC2qB,YAAW,GAAI1qB,GAAE,EAAGC,EAAEwb,SAASgP,cAAc,OAAO,OAAO,IAAIL,kBAAiB,WAAWtqB,EAAE6qB,UAAUC,OAAO,OAAO5qB,GAAE,CAAE,IAAG6qB,QAAQ5qB,EAAEF,GAAG,SAASG,GAAG,IAAIM,EAAE,IAAI4pB,kBAAiB,WAAW5pB,EAAEsqB,aAAa5qB,GAAG,IAAGM,EAAEqqB,QAAQ/qB,EAAEC,GAAGC,IAAIA,GAAE,EAAGC,EAAE0qB,UAAUC,OAAO,OAAO,CAAC,CAArT,GAAyT1qB,EAAEL,QAAQ0B,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAASzB,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,GAAG,IAAIC,EAAEH,EAAE6kB,kBAAkB,SAASpkB,EAAEV,GAAG0B,KAAK6hB,aAAavjB,EAAE,CAACA,EAAE,UAAUiC,SAASvB,EAAER,GAAGQ,EAAEY,UAAU2pB,iBAAiB,SAASjrB,EAAEC,GAAG,OAAOyB,KAAKuiB,QAAQjkB,GAAGC,IAAIyB,KAAKwiB,gBAAgBxiB,KAAK8W,UAAU9W,KAAK0iB,SAAS1iB,KAAKuiB,UAAS,EAAG,EAAEvjB,EAAEY,UAAUqhB,kBAAkB,SAAS3iB,EAAEC,GAAG,IAAIC,EAAE,IAAIE,EAAE,OAAOF,EAAE6V,UAAU,SAAS7V,EAAEgrB,mBAAmBlrB,EAAE0B,KAAKupB,iBAAiBhrB,EAAEC,EAAE,EAAEQ,EAAEY,UAAUshB,iBAAiB,SAAS5iB,EAAEC,GAAG,IAAIC,EAAE,IAAIE,EAAE,OAAOF,EAAE6V,UAAU,SAAS7V,EAAEgrB,mBAAmBlrB,EAAE0B,KAAKupB,iBAAiBhrB,EAAEC,EAAE,EAAED,EAAEkrB,OAAO,SAASnrB,GAAG,OAAOG,EAAE4e,WAAW,YAAY,cAAc,IAAIre,EAAEV,GAAGwT,SAAS,EAAEvT,EAAEqB,UAAU6pB,OAAO,WAAW,OAAOlrB,EAAEkrB,OAAOzpB,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS1B,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,GAAG,IAAIC,EAAEJ,EAAE,UAAUU,EAAEV,EAAE,YAAYuD,WAAW9B,EAAEzB,EAAE,YAAYqgB,eAAene,EAAE9B,EAAE6M,QAAQ9K,EAAE,CAAC,EAAE,SAAS3B,EAAER,GAAG0B,KAAK6hB,aAAavjB,GAAG0B,KAAK0pB,SAAS,EAAE1pB,KAAK2pB,SAAQ,EAAG3pB,KAAK4pB,cAAa,CAAE,CAAC,SAASjrB,EAAEL,EAAEC,GAAG,IAAI,EAAEA,KAAKA,GAAGA,EAAE,EAAE,OAAOE,EAAE,kEAAkE,IAAID,EAAE,IAAIM,EAAER,GAAGI,EAAEF,EAAEsT,UAAU,OAAOtT,EAAEuT,WAAWxT,GAAGC,EAAEyT,OAAOvT,CAAC,CAACA,EAAE6B,SAASzB,EAAEN,GAAGM,EAAEc,UAAU0iB,MAAM,WAAW,GAAGtiB,KAAK4pB,aAAa,GAAG,IAAI5pB,KAAK0pB,SAAS,CAAC1pB,KAAKqiB,YAAO,GAAQ,GAAG,IAAI/jB,EAAEkC,EAAER,KAAKuiB,UAAUviB,KAAK0gB,eAAepiB,GAAG0B,KAAK0pB,SAAS1pB,KAAK6pB,uBAAuB7pB,KAAKiU,QAAQjU,KAAK8pB,eAAe9pB,KAAKU,UAAU,MAAMV,KAAK0iB,SAAS,GAAG,EAAE5jB,EAAEc,UAAUqS,KAAK,WAAWjS,KAAK4pB,cAAa,EAAG5pB,KAAKsiB,OAAO,EAAExjB,EAAEc,UAAUoS,UAAU,WAAWhS,KAAK2pB,SAAQ,CAAE,EAAE7qB,EAAEc,UAAUmqB,QAAQ,WAAW,OAAO/pB,KAAK0pB,QAAQ,EAAE5qB,EAAEc,UAAUmS,WAAW,SAASzT,GAAG0B,KAAK0pB,SAASprB,CAAC,EAAEQ,EAAEc,UAAUqhB,kBAAkB,SAAS3iB,GAAG,OAAO0B,KAAKgqB,cAAc1rB,GAAG0B,KAAKiqB,eAAejqB,KAAK+pB,YAAY/pB,KAAKuiB,QAAQ7hB,OAAOV,KAAK+pB,UAAU,IAAI/pB,KAAK+pB,WAAW/pB,KAAK2pB,QAAQ3pB,KAAK0iB,SAAS1iB,KAAKuiB,QAAQ,IAAIviB,KAAK0iB,SAAS1iB,KAAKuiB,UAAS,EAAG,EAAEzjB,EAAEc,UAAUshB,iBAAiB,SAAS5iB,GAAG,OAAO0B,KAAKkqB,aAAa5rB,GAAG0B,KAAKmqB,eAAe,EAAErrB,EAAEc,UAAUihB,kBAAkB,WAAW,OAAO7gB,KAAKuiB,mBAAmBhkB,GAAG,MAAMyB,KAAKuiB,QAAQviB,KAAK2W,WAAW3W,KAAKkqB,aAAazpB,GAAGT,KAAKmqB,gBAAgB,EAAErrB,EAAEc,UAAUuqB,cAAc,WAAW,GAAGnqB,KAAK+pB,UAAU/pB,KAAK6pB,sBAAsB,CAAC,IAAI,IAAIvrB,EAAE,IAAIyB,EAAExB,EAAEyB,KAAKU,SAASnC,EAAEyB,KAAKuiB,QAAQ7hB,SAASnC,EAAEyB,KAAKuiB,QAAQhkB,KAAKkC,GAAGnC,EAAE+B,KAAKL,KAAKuiB,QAAQhkB,IAAI,OAAOD,EAAEoC,OAAO,EAAEV,KAAKiU,QAAQ3V,GAAG0B,KAAK2W,WAAU,CAAE,CAAC,OAAM,CAAE,EAAE7X,EAAEc,UAAUqqB,WAAW,WAAW,OAAOjqB,KAAKwiB,cAAc,EAAE1jB,EAAEc,UAAUwqB,UAAU,WAAW,OAAOpqB,KAAKuiB,QAAQ7hB,OAAOV,KAAKU,QAAQ,EAAE5B,EAAEc,UAAUsqB,aAAa,SAAS5rB,GAAG0B,KAAKuiB,QAAQliB,KAAK/B,EAAE,EAAEQ,EAAEc,UAAUoqB,cAAc,SAAS1rB,GAAG0B,KAAKuiB,QAAQviB,KAAKwiB,kBAAkBlkB,CAAC,EAAEQ,EAAEc,UAAUiqB,oBAAoB,WAAW,OAAO7pB,KAAKU,SAASV,KAAKoqB,WAAW,EAAEtrB,EAAEc,UAAUkqB,eAAe,SAASxrB,GAAG,IAAIC,EAAE,qCAAqCyB,KAAK0pB,SAAS,4BAA4BprB,EAAE,SAAS,OAAO,IAAIU,EAAET,EAAE,EAAEO,EAAEc,UAAU6mB,mBAAmB,WAAWzmB,KAAKiU,QAAQjU,KAAK8pB,eAAe,GAAG,EAAEvrB,EAAE8rB,KAAK,SAAS/rB,EAAEC,GAAG,OAAOI,EAAEL,EAAEC,EAAE,EAAEA,EAAEqB,UAAUyqB,KAAK,SAAS/rB,GAAG,OAAOK,EAAEqB,KAAK1B,EAAE,EAAEC,EAAEsT,kBAAkB/S,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,SAAS,KAAK,GAAG,CAAC,SAASR,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASC,GAAG,SAASC,EAAED,QAAG,IAASA,GAAGA,EAAEA,EAAEsW,UAAU5U,KAAKqU,UAAU/V,EAAE+V,UAAUrU,KAAKwpB,mBAAmBlrB,EAAEgmB,gBAAgBhmB,EAAEwa,qBAAgB,IAAS9Y,KAAKqU,UAAU,EAAErU,KAAKwpB,wBAAmB,EAAO,CAACjrB,EAAEqB,UAAUkZ,cAAc,WAAW,OAAO9Y,KAAKwpB,kBAAkB,EAAE,IAAIhrB,EAAED,EAAEqB,UAAUL,MAAM,WAAW,IAAIS,KAAKwb,cAAc,MAAM,IAAIvZ,UAAU,6FAA6F,OAAOjC,KAAK8Y,eAAe,EAAEra,EAAEF,EAAEqB,UAAUiO,MAAMtP,EAAEqB,UAAUkb,OAAO,WAAW,IAAI9a,KAAKyf,aAAa,MAAM,IAAIxd,UAAU,2FAA2F,OAAOjC,KAAK8Y,eAAe,EAAEpa,EAAEH,EAAEqB,UAAU4b,YAAY,WAAW,SAAW,SAASxb,KAAKqU,UAAU,EAAErV,EAAET,EAAEqB,UAAU6f,WAAW,WAAW,SAAW,SAASzf,KAAKqU,UAAU,EAAEtU,EAAExB,EAAEqB,UAAUqX,UAAU,WAAW,QAAW,SAASjX,KAAKqU,UAAU,EAAE7T,EAAEjC,EAAEqB,UAAU0qB,WAAW,WAAW,SAAW,SAAStqB,KAAKqU,UAAU,EAAE9V,EAAEqB,UAAUwX,YAAY,WAAW,SAAW,QAAQpX,KAAKqU,UAAU,EAAE/V,EAAEsB,UAAU2qB,cAAc,WAAW,QAAO,OAAcvqB,KAAKqU,UAAU,EAAE/V,EAAEsB,UAAUsX,aAAa,WAAW,OAAOlX,KAAK4U,UAAU2V,eAAe,EAAEjsB,EAAEsB,UAAUwX,YAAY,WAAW,SAAW,QAAQpX,KAAK4U,UAAUP,UAAU,EAAE/V,EAAEsB,UAAUqX,UAAU,WAAW,OAAOlX,EAAEnB,KAAKoB,KAAK4U,UAAU,EAAEtW,EAAEsB,UAAU6f,WAAW,WAAW,OAAOzgB,EAAEJ,KAAKoB,KAAK4U,UAAU,EAAEtW,EAAEsB,UAAU4b,YAAY,WAAW,OAAO9c,EAAEE,KAAKoB,KAAK4U,UAAU,EAAEtW,EAAEsB,UAAU0qB,WAAW,WAAW,OAAO9pB,EAAE5B,KAAKoB,KAAK4U,UAAU,EAAEtW,EAAEsB,UAAUL,MAAM,WAAW,OAAOf,EAAEI,KAAKoB,KAAK4U,UAAU,EAAEtW,EAAEsB,UAAUkb,OAAO,WAAW,IAAIxc,EAAE0B,KAAK4U,UAAU,OAAOtW,EAAE4a,6BAA6Bza,EAAEG,KAAKN,EAAE,EAAEA,EAAEsB,UAAU0hB,OAAO,WAAW,OAAOthB,KAAK8Y,eAAe,EAAExa,EAAEsB,UAAU2hB,QAAQ,WAAW,OAAOvhB,KAAKkZ,6BAA6BlZ,KAAK8Y,eAAe,EAAExa,EAAE8kB,kBAAkB7kB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,SAASD,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,GAAG,IAAIC,EAAEH,EAAE,UAAUI,EAAED,EAAEiX,SAAS1W,EAAEP,EAAEuN,SAASjM,EAAE,CAAC,EAAEF,eAAe,OAAO,SAASvB,EAAEkC,GAAG,GAAGxB,EAAEV,GAAG,CAAC,GAAGA,aAAaC,EAAE,OAAOD,EAAE,IAAImC,EAAE,SAASnC,GAAG,IAAI,OAAO,SAASA,GAAG,OAAOA,EAAEqhB,IAAI,CAAzB,CAA2BrhB,EAAE,CAAC,MAAMA,GAAG,OAAOI,EAAEH,EAAED,EAAEI,CAAC,CAAC,CAA7E,CAA+EJ,GAAG,GAAGmC,IAAI/B,EAAE,CAAC8B,GAAGA,EAAEqX,eAAe,IAAI/Y,EAAEP,EAAEyhB,OAAOvf,EAAElC,GAAG,OAAOiC,GAAGA,EAAEsX,cAAchZ,CAAC,CAAC,GAAG,mBAAmB2B,EAAE,OAAO,SAASnC,GAAG,IAAI,OAAOyB,EAAEnB,KAAKN,EAAE,YAAY,CAAC,MAAMA,GAAG,OAAM,CAAE,CAAC,CAA/D,CAAiEA,IAAIQ,EAAE,IAAIP,EAAEC,GAAGF,EAAE8V,MAAMtV,EAAE8hB,SAAS9hB,EAAEmV,aAAQ,EAAOnV,EAAE,MAAMA,GAAG,SAASR,EAAEU,EAAEe,GAAG,IAAIS,EAAE,IAAIjC,EAAEC,GAAGiC,EAAED,EAAET,GAAGA,EAAE8X,eAAerX,EAAEiZ,qBAAqB1Z,GAAGA,EAAE+X,cAAc,IAAIhZ,GAAE,EAAGH,EAAEF,EAAEgX,SAASzW,GAAGJ,KAAKN,GAAE,SAASA,GAAGkC,IAAIA,EAAE8T,iBAAiBhW,GAAGkC,EAAE,KAAK,IAAE,SAASlC,GAAGkC,IAAIA,EAAE4gB,gBAAgB9iB,EAAEQ,GAAE,GAAI0B,EAAE,KAAK,IAAG,OAAO1B,GAAE,EAAG0B,GAAG7B,IAAID,IAAI8B,EAAE4gB,gBAAgBziB,EAAEJ,GAAE,GAAG,GAAIiC,EAAE,MAAMC,CAAC,CAAjS,CAAmSnC,EAAEmC,EAAED,EAAE,CAAC,OAAOlC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAASA,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,GAAG,IAAIC,EAAEJ,EAAE,UAAUU,EAAET,EAAEigB,aAAa,SAASze,EAAEzB,GAAG0B,KAAKwqB,OAAOlsB,CAAC,CAACyB,EAAEH,UAAU2X,iBAAiB,WAAWvN,aAAahK,KAAKwqB,OAAO,EAAE,IAAIhqB,EAAE,SAASlC,GAAG,OAAOmC,GAAGT,MAAMyd,WAAWnf,EAAE,EAAEmC,EAAElC,EAAEksB,MAAM,SAASnsB,EAAEI,GAAG,IAAIM,EAAEyB,EAAE,YAAO,IAAS/B,GAAGM,EAAET,EAAE0W,QAAQvW,GAAG0V,MAAM5T,EAAE,KAAK,KAAKlC,OAAE,GAAQG,EAAEqX,gBAAgBpX,aAAaH,GAAGS,EAAE8V,aAAapW,KAAKM,EAAE,IAAIT,EAAEC,GAAGiC,EAAEsJ,YAAW,WAAW/K,EAAE4hB,UAAU,IAAGtiB,GAAGG,EAAEqX,gBAAgB9W,EAAE8V,aAAa,IAAI/U,EAAEU,IAAIzB,EAAEya,sBAAsBza,EAAEulB,sBAAsBvlB,CAAC,EAAE,SAASF,EAAER,GAAG,OAAO0L,aAAahK,KAAKwqB,QAAQlsB,CAAC,CAAC,SAASK,EAAEL,GAAG,MAAM0L,aAAahK,KAAKwqB,QAAQlsB,CAAC,CAACC,EAAEqB,UAAU6qB,MAAM,SAASnsB,GAAG,OAAOmC,EAAEnC,EAAE0B,KAAK,EAAEzB,EAAEqB,UAAU8qB,QAAQ,SAASpsB,EAAEC,GAAG,IAAIC,EAAEgC,EAAElC,GAAGA,EAAE,IAAImC,EAAE,IAAIV,EAAEgK,YAAW,WAAWvL,EAAEyY,aAAa,SAAS3Y,EAAEC,EAAEC,GAAG,IAAIC,EAAEA,EAAE,iBAAiBF,EAAEA,aAAayD,MAAMzD,EAAE,IAAIS,EAAE,uBAAuB,IAAIA,EAAET,GAAGG,EAAEukB,+BAA+BxkB,GAAGH,EAAEgZ,kBAAkB7Y,GAAGH,EAAE2V,QAAQxV,GAAG,MAAMD,GAAGA,EAAEqX,QAAQ,CAAjM,CAAmMrX,EAAED,EAAEiC,EAAE,GAAElC,IAAI,OAAOG,EAAEqX,gBAAgBtV,EAAER,KAAK2f,QAAQnhB,EAAEgC,EAAE4T,MAAMtV,EAAEH,OAAE,EAAO8B,OAAE,IAASqU,aAAarU,IAAIjC,EAAEwB,KAAKoU,MAAMtV,EAAEH,OAAE,EAAO8B,OAAE,GAAQjC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAASF,EAAEC,EAAEC,GAAG,aAAaD,EAAEF,QAAQ,SAASE,EAAEC,EAAEC,EAAEC,EAAEM,EAAEe,GAAG,IAAIS,EAAElC,EAAE,UAAUmC,EAAEnC,EAAE,YAAY2D,UAAUnD,EAAER,EAAE,UAAUiC,SAAS5B,EAAE6B,EAAEkV,SAASpV,EAAEE,EAAEiV,SAAS1U,EAAE,CAAC,EAAE,SAASjB,EAAExB,GAAGyL,YAAW,WAAW,MAAMzL,CAAC,GAAE,EAAE,CAAC,SAASS,EAAET,EAAEE,GAAG,IAAIE,EAAE,EAAEqB,EAAEzB,EAAEoC,OAAOF,EAAE,IAAIjC,EAAES,GAAG,OAAO,SAASA,IAAI,GAAGN,GAAGqB,EAAE,OAAOS,EAAEogB,WAAW,IAAIngB,EAAE,SAASnC,GAAG,IAAIC,EAAEE,EAAEH,GAAG,OAAOC,IAAID,GAAG,mBAAmBA,EAAEqsB,eAAe,mBAAmBrsB,EAAEssB,cAActsB,EAAEqsB,iBAAiBpsB,EAAEssB,eAAevsB,EAAEssB,gBAAgBrsB,CAAC,CAAnK,CAAqKD,EAAEI,MAAM,GAAG+B,aAAalC,GAAGkC,EAAEkqB,gBAAgB,CAAC,IAAIlqB,EAAEhC,EAAEgC,EAAEmqB,eAAeE,WAAWtsB,GAAGF,EAAEwT,QAAQ,CAAC,MAAMxT,GAAG,OAAOwB,EAAExB,EAAE,CAAC,GAAGmC,aAAalC,EAAE,OAAOkC,EAAE2T,MAAMpV,EAAEc,EAAE,KAAK,KAAK,KAAK,CAACd,GAAG,CAAjY,GAAqYwB,CAAC,CAAC,SAASyC,EAAE3E,EAAEC,EAAEC,GAAGwB,KAAK+qB,MAAMzsB,EAAE0B,KAAKkgB,SAAS3hB,EAAEyB,KAAKgrB,SAASxsB,CAAC,CAAC,SAAS0E,EAAE5E,EAAEC,EAAEC,GAAGwB,KAAK6hB,aAAavjB,EAAEC,EAAEC,EAAE,CAAC,SAAS6E,EAAE/E,GAAG,OAAO2E,EAAEgoB,WAAW3sB,IAAI0B,KAAKkrB,UAAUlrB,KAAKwoB,OAAOqC,eAAevsB,GAAGA,EAAEwT,WAAWxT,CAAC,CAAC,SAASO,EAAEP,GAAG0B,KAAKU,OAAOpC,EAAE0B,KAAK8R,QAAQ,KAAK9R,KAAK1B,EAAE,GAAG,IAAI,CAAC2E,EAAErD,UAAU+C,KAAK,WAAW,OAAO3C,KAAK+qB,KAAK,EAAE9nB,EAAErD,UAAUkS,QAAQ,WAAW,OAAO9R,KAAKkgB,QAAQ,EAAEjd,EAAErD,UAAUurB,SAAS,WAAW,OAAOnrB,KAAK8R,UAAU0J,cAAcxb,KAAK8R,UAAUvS,QAAQwB,CAAC,EAAEkC,EAAErD,UAAUkrB,WAAW,SAASxsB,GAAG,IAAIC,EAAEyB,KAAKmrB,WAAW3sB,EAAEwB,KAAKgrB,cAAS,IAASxsB,GAAGA,EAAEqZ,eAAe,IAAIpZ,EAAEF,IAAIwC,EAAEf,KAAKorB,UAAU7sB,EAAED,GAAG,KAAK,YAAO,IAASE,GAAGA,EAAEsZ,cAAc9X,KAAKkgB,SAASmL,mBAAmBrrB,KAAK+qB,MAAM,KAAKtsB,CAAC,EAAEwE,EAAEgoB,WAAW,SAAS3sB,GAAG,OAAO,MAAMA,GAAG,mBAAmBA,EAAE6sB,UAAU,mBAAmB7sB,EAAEwsB,UAAU,EAAEhsB,EAAEoE,EAAED,GAAGC,EAAEtD,UAAUwrB,UAAU,SAAS9sB,EAAEC,GAAG,OAAOyB,KAAK2C,OAAO/D,KAAKN,EAAEA,EAAEC,EAAE,EAAEM,EAAEe,UAAU2X,iBAAiB,WAAW,IAAI,IAAIjZ,EAAE0B,KAAKU,OAAOlC,EAAE,EAAEA,EAAEF,IAAIE,EAAE,CAAC,IAAIC,EAAEuB,KAAKxB,GAAGC,aAAaF,GAAGE,EAAEoX,QAAQ,CAAC,EAAEtX,EAAE+sB,MAAM,WAAW,IAAIhtB,EAAEyH,UAAUrF,OAAO,GAAGpC,EAAE,EAAE,OAAOE,EAAE,uDAAuD,IAAIE,EAAEM,EAAE+G,UAAUzH,EAAE,GAAG,GAAG,mBAAmBU,EAAE,OAAOR,EAAE,gCAAgCgC,EAAE6U,YAAYrW,IAAI,IAAIyB,GAAE,EAAG,IAAInC,GAAGqI,MAAM4E,QAAQxF,UAAU,KAAKzH,GAAGI,EAAEqH,UAAU,IAAIrF,OAAOD,GAAE,IAAK/B,EAAEqH,UAAUzH,KAAK,IAAI,IAAIQ,EAAE,IAAID,EAAEP,GAAGyC,EAAE,EAAEA,EAAEzC,IAAIyC,EAAE,CAAC,IAAIjB,EAAEpB,EAAEqC,GAAG,GAAGkC,EAAEgoB,WAAWnrB,GAAG,CAAC,IAAIoD,EAAEpD,GAAGA,EAAEA,EAAEgS,WAAW+Y,eAAe3nB,EAAE,KAAK,CAAC,IAAIW,EAAEpF,EAAEqB,GAAG+D,aAAatF,IAAIuB,EAAE+D,EAAEuQ,MAAM/Q,EAAE,KAAK,KAAK,CAAC6nB,UAAUpsB,EAAE0pB,MAAMznB,QAAG,GAAQ,CAACjC,EAAEiC,GAAGjB,CAAC,CAAC,IAAIiE,EAAE,IAAI4C,MAAM7H,EAAE4B,QAAQ,IAAIK,EAAE,EAAEA,EAAEgD,EAAErD,SAASK,EAAEgD,EAAEhD,GAAGxC,EAAE0W,QAAQnW,EAAEiC,IAAI6iB,UAAU,IAAI3f,EAAE1F,EAAEyf,IAAIja,GAAG4b,MAAK,SAASrhB,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEoC,SAASnC,EAAE,CAAC,IAAIC,EAAEF,EAAEC,GAAG,GAAGC,EAAEihB,aAAa,OAAO9gB,EAAEJ,EAAEC,EAAEqP,QAAQlP,EAAE,IAAIH,EAAEgd,cAAc,YAAYvX,EAAE4R,SAASvX,EAAEC,GAAGC,EAAEe,OAAO,CAAC2E,EAAE2T,eAAe7Y,EAAEsB,EAAEtB,GAAG,IAAIP,EAAEgC,EAAEzB,EAAE2F,WAAM,EAAOrG,GAAGU,EAAEV,GAAGI,EAAEwF,EAAE4T,cAAc,OAAO/X,EAAEod,sBAAsB1e,EAAEC,EAAE,gBAAgBwF,GAAGzF,CAAC,IAAGyF,EAAED,EAAE2b,QAAO,WAAW,IAAIthB,EAAE,IAAIC,EAAE6kB,kBAAkBnf,GAAG,OAAOlF,EAAED,EAAER,EAAE,IAAG,OAAOQ,EAAEgT,QAAQ5N,EAAEA,EAAE4Q,aAAahW,GAAGoF,CAAC,EAAE3F,EAAEqB,UAAUirB,eAAe,SAASvsB,GAAG0B,KAAKqU,UAAU,OAAOrU,KAAKqU,UAAUrU,KAAKurB,UAAUjtB,CAAC,EAAEC,EAAEqB,UAAU+qB,cAAc,WAAW,OAAO,OAAO3qB,KAAKqU,WAAW,CAAC,EAAE9V,EAAEqB,UAAUgrB,aAAa,WAAW,OAAO5qB,KAAKurB,SAAS,EAAEhtB,EAAEqB,UAAUyrB,iBAAiB,WAAWrrB,KAAKqU,WAAW,OAAOrU,KAAKqU,UAAUrU,KAAKurB,eAAU,CAAM,EAAEhtB,EAAEqB,UAAU4rB,SAAS,SAASltB,GAAG,GAAG,mBAAmBA,EAAE,OAAO,IAAI4E,EAAE5E,EAAE0B,KAAKtB,KAAK,MAAM,IAAI+B,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,SAAS,KAAK,GAAG,CAAC,SAASnC,EAAEG,EAAEC,GAAG,aAAa,IAAIM,EAAEe,EAAEzB,EAAE,SAASkC,EAAE,oBAAoBsoB,UAAUroB,EAAE,CAAClC,EAAE,CAAC,GAAGO,EAAE,oBAAoByN,KAAKA,KAAK,oBAAoBpM,OAAOA,YAAO,IAAS3B,EAAEA,OAAE,IAASwB,KAAKA,KAAK,KAAK,SAASrB,IAAI,IAAI,IAAIL,EAAEU,EAAE,OAAOA,EAAE,KAAKV,EAAEqG,MAAM3E,KAAK+F,UAAU,CAAC,MAAMzH,GAAG,OAAOmC,EAAElC,EAAED,EAAEmC,CAAC,CAAC,CAAC,SAASH,EAAEhC,GAAG,OAAO,MAAMA,IAAG,IAAKA,IAAG,IAAKA,GAAG,iBAAiBA,GAAG,iBAAiBA,CAAC,CAAC,SAASyC,EAAEzC,EAAEC,EAAEC,GAAG,GAAG8B,EAAEhC,GAAG,OAAOA,EAAE,IAAIG,EAAE,CAACc,MAAMf,EAAEmD,cAAa,EAAGxC,YAAW,EAAGyB,UAAS,GAAI,OAAOb,EAAEb,eAAeZ,EAAEC,EAAEE,GAAGH,CAAC,CAAC,IAAIwB,EAAE,WAAW,IAAIxB,EAAE,CAACqI,MAAM/G,UAAUX,OAAOW,UAAUK,SAASL,WAAWrB,EAAE,SAASA,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAEF,EAAEoC,SAASlC,EAAE,GAAGF,EAAEE,KAAKD,EAAE,OAAM,EAAG,OAAM,CAAE,EAAE,GAAGwB,EAAEkf,MAAM,CAAC,IAAIzgB,EAAES,OAAO8f,oBAAoB,OAAO,SAASzgB,GAAG,IAAI,IAAIG,EAAE,GAAGC,EAAEO,OAAOQ,OAAO,MAAM,MAAMnB,IAAIC,EAAED,IAAI,CAAC,IAAIU,EAAE,IAAIA,EAAER,EAAEF,EAAE,CAAC,MAAMA,GAAG,OAAOG,CAAC,CAAC,IAAI,IAAI+B,EAAE,EAAEA,EAAExB,EAAE0B,SAASF,EAAE,CAAC,IAAIC,EAAEzB,EAAEwB,GAAG,IAAI9B,EAAE+B,GAAG,CAAC/B,EAAE+B,IAAG,EAAG,IAAI3B,EAAEG,OAAO4f,yBAAyBvgB,EAAEmC,GAAG,MAAM3B,GAAG,MAAMA,EAAEM,KAAK,MAAMN,EAAEyC,KAAK9C,EAAE4B,KAAKI,EAAE,CAAC,CAACnC,EAAEyB,EAAEif,eAAe1gB,EAAE,CAAC,OAAOG,CAAC,CAAC,CAAC,IAAIA,EAAE,CAAC,EAAEoB,eAAe,OAAO,SAASrB,GAAG,GAAGD,EAAEC,GAAG,MAAM,GAAG,IAAIE,EAAE,GAAGJ,EAAE,IAAI,IAAIU,KAAKR,EAAE,GAAGC,EAAEG,KAAKJ,EAAEQ,GAAGN,EAAE2B,KAAKrB,OAAO,CAAC,IAAI,IAAIe,EAAE,EAAEA,EAAEzB,EAAEoC,SAASX,EAAE,GAAGtB,EAAEG,KAAKN,EAAEyB,GAAGf,GAAG,SAASV,EAAEI,EAAE2B,KAAKrB,EAAE,CAAC,OAAON,CAAC,CAAC,CAAvpB,GAA2pBK,EAAE,sBAAsBkE,EAAE,wBAAwB,SAASC,EAAE5E,GAAG,IAAI,OAAOA,EAAE,EAAE,CAAC,MAAMA,GAAG,MAAM,4BAA4B,CAAC,CAAC,SAAS+E,EAAE/E,GAAG,OAAOA,aAAa0D,OAAO,OAAO1D,GAAG,iBAAiBA,GAAG,iBAAiBA,EAAEwd,SAAS,iBAAiBxd,EAAE6d,IAAI,CAAC,SAAStd,EAAEP,GAAG,OAAO+E,EAAE/E,IAAIyB,EAAEmf,mBAAmB5gB,EAAE,QAAQ,CAAC,IAAIuF,EAAE,UAAU,IAAI7B,MAAM,SAAS1D,GAAG,OAAOO,EAAEP,GAAGA,EAAE,IAAI0D,MAAMkB,EAAE5E,GAAG,EAAE,SAASA,GAAG,GAAGO,EAAEP,GAAG,OAAOA,EAAE,IAAI,MAAM,IAAI0D,MAAMkB,EAAE5E,GAAG,CAAC,MAAMA,GAAG,OAAOA,CAAC,CAAC,EAAE,SAASyF,EAAEzF,GAAG,MAAM,CAAC,EAAEsE,SAAShE,KAAKN,EAAE,CAAC,IAAI2F,EAAE,SAAS3F,GAAG,OAAOyB,EAAEwL,QAAQjN,GAAGA,EAAE,IAAI,EAAE,GAAG,oBAAoBe,QAAQA,OAAOosB,SAAS,CAAC,IAAIvnB,EAAE,mBAAmByC,MAAMvD,KAAK,SAAS9E,GAAG,OAAOqI,MAAMvD,KAAK9E,EAAE,EAAE,SAASA,GAAG,IAAI,IAAIC,EAAEC,EAAE,GAAGC,EAAEH,EAAEe,OAAOosB,cAAcltB,EAAEE,EAAEmQ,QAAQyS,MAAM7iB,EAAE6B,KAAK9B,EAAEgB,OAAO,OAAOf,CAAC,EAAEyF,EAAE,SAAS3F,GAAG,OAAOyB,EAAEwL,QAAQjN,GAAGA,EAAE,MAAMA,GAAG,mBAAmBA,EAAEe,OAAOosB,UAAUvnB,EAAE5F,GAAG,IAAI,CAAC,CAAC,IAAI6F,OAAE,IAAS5F,GAAG,qBAAqBwF,EAAExF,GAAGyE,cAAcoB,OAAE,IAAS7F,QAAG,IAASA,EAAE+L,IAAIhG,EAAE,CAACijB,QAAQ,SAASjpB,GAAG,IAAI,GAAG,mBAAmBA,EAAE,CAAC,IAAIC,EAAEwB,EAAE+e,MAAMxgB,EAAEsB,WAAWpB,EAAEuB,EAAEkf,OAAO1gB,EAAEmC,OAAO,EAAEjC,EAAEF,EAAEmC,OAAO,KAAK,IAAInC,EAAEmC,QAAQ,gBAAgBnC,EAAE,IAAIG,EAAEK,EAAEgd,KAAKzd,EAAE,KAAKyB,EAAE+e,MAAMxgB,GAAGoC,OAAO,EAAE,GAAGlC,GAAGC,GAAGC,EAAE,OAAM,CAAE,CAAC,OAAM,CAAE,CAAC,MAAMJ,GAAG,OAAM,CAAE,CAAC,EAAEkX,aAAa,SAASlX,GAAG,OAAO2E,EAAE8Y,KAAKzd,EAAE,EAAE2oB,kBAAkBnnB,EAAEknB,yBAAyB,SAAS1oB,EAAEC,EAAEC,GAAG,IAAIuB,EAAEkf,MAAM,MAAM,CAAC,EAAEpf,eAAejB,KAAKN,EAAEC,GAAGD,EAAEC,QAAG,EAAO,IAAIE,EAAEQ,OAAO4f,yBAAyBvgB,EAAEC,GAAG,OAAO,MAAME,EAAE,MAAMA,EAAEW,KAAK,MAAMX,EAAE8C,IAAI9C,EAAEc,MAAMf,OAAE,CAAM,EAAEktB,QAAQ,SAASptB,GAAG,MAAMA,CAAC,EAAEiN,QAAQxL,EAAEwL,QAAQgb,QAAQtiB,EAAE4X,kBAAkB9a,EAAEqL,YAAY9L,EAAE0L,SAAS,SAAS1N,GAAG,MAAM,mBAAmBA,GAAG,iBAAiBA,GAAG,OAAOA,CAAC,EAAE4N,QAAQ7I,EAAE+R,YAAY5U,EAAEkV,SAASjV,EAAEgV,SAAS,SAASnX,GAAG,OAAOU,EAAEV,EAAEK,CAAC,EAAE4B,SAAS,SAASjC,EAAEC,GAAG,IAAIC,EAAE,CAAC,EAAEqB,eAAe,SAASpB,IAAI,IAAI,IAAIA,KAAKuB,KAAK0B,YAAYpD,EAAE0B,KAAK6hB,aAAatjB,EAAEA,EAAEqB,UAAUpB,EAAEI,KAAKL,EAAEqB,UAAUnB,IAAI,MAAMA,EAAEwd,OAAOxd,EAAEiC,OAAO,KAAKV,KAAKvB,EAAE,KAAKF,EAAEqB,UAAUnB,GAAG,CAAC,OAAOA,EAAEmB,UAAUrB,EAAEqB,UAAUtB,EAAEsB,UAAU,IAAInB,EAAEH,EAAEsB,SAAS,EAAEinB,aAAa,SAASvoB,EAAEC,GAAG,IAAIC,EAAEC,EAAEH,EAAEoC,OAAOhC,EAAE,IAAIiI,MAAMlI,EAAE,GAAG,IAAID,EAAE,EAAEA,EAAEC,IAAID,EAAEE,EAAEF,GAAGF,EAAEE,GAAG,OAAOE,EAAEF,GAAGD,EAAEG,CAAC,EAAEskB,iBAAiB,SAAS1kB,GAAG,OAAOgC,EAAEhC,GAAG,IAAI0D,MAAMkB,EAAE5E,IAAIA,CAAC,EAAE+nB,iBAAiB,SAAS/nB,GAAG,SAASC,IAAI,CAACA,EAAEqB,UAAUtB,EAAE,IAAI,IAAIE,EAAE,EAAEA,KAAK,IAAID,EAAE,OAAOD,CAAC,EAAEqtB,YAAY,SAASrtB,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAE,IAAIkI,MAAMrI,GAAGI,EAAE,EAAEA,EAAEJ,IAAII,EAAED,EAAEC,GAAGH,EAAEG,EAAEF,EAAE,OAAOC,CAAC,EAAEmE,SAASM,EAAEkV,eAAevZ,EAAE+mB,kBAAkB/hB,EAAEmgB,wBAAwB,SAAS1lB,GAAG,OAAO,MAAMA,IAAIA,aAAa0D,MAAMsc,uBAAuBG,mBAAkB,IAAKngB,EAAE8f,cAAc,EAAE6E,+BAA+B,SAAS3kB,GAAG,IAAIyC,EAAEzC,EAAE,iBAAgB,EAAG,CAAC,MAAMA,GAAG,CAAC,EAAE+W,YAAYtR,EAAEojB,gBAAgB,SAAS7oB,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAEsB,EAAE+e,MAAMxgB,GAAGI,EAAE,EAAEA,EAAED,EAAEiC,SAAShC,EAAE,CAAC,IAAIM,EAAEP,EAAEC,GAAG,GAAGF,EAAEQ,GAAG,IAAIe,EAAEb,eAAeX,EAAES,EAAEe,EAAE6e,cAActgB,EAAEU,GAAG,CAAC,MAAMV,GAAG,CAAC,CAAC,EAAE4U,YAAY,oBAAoB0Y,QAAQA,QAAQ,mBAAmBA,OAAOC,UAAUzR,OAAOjW,EAAE2nB,gBAAgB1nB,EAAEkG,IAAI,SAAShM,GAAG,OAAO8F,EAAE7F,EAAE+L,IAAIhM,QAAG,CAAM,EAAEsb,OAAO9a,EAAE6pB,iBAAiB,WAAW,GAAG,mBAAmBzT,QAAQ,IAAI,IAAI5W,EAAE,IAAI4W,SAAQ,WAAW,IAAG,GAAG,qBAAqB,CAAC,EAAEtS,SAAShE,KAAKN,GAAG,OAAO4W,OAAO,CAAC,MAAM5W,GAAG,CAAC,EAAE8a,WAAW,SAAS9a,EAAEC,GAAG,OAAOD,EAAEoB,KAAKnB,EAAE,GAAG+F,EAAEukB,aAAavkB,EAAE8V,QAAQ,WAAW,IAAI9b,EAAEC,EAAEkM,SAASshB,KAAK7P,MAAM,KAAK5P,IAAI5I,QAAQ,OAAO,IAAIpF,EAAE,IAAIA,EAAE,GAAG,IAAIA,EAAE,GAAG,CAAC,CAAxF,GAA4FgG,EAAE8V,QAAQ9V,EAAE+hB,iBAAiB9nB,GAAG,IAAI,MAAM,IAAIyD,KAAK,CAAC,MAAM1D,GAAGgG,EAAEgiB,cAAchoB,CAAC,CAACG,EAAEJ,QAAQiG,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,EAAE,CAAC,GAA981E,CAAk91E,GAAG,oBAAoBnE,QAAQ,OAAOA,OAAOA,OAAOgG,EAAEhG,OAAO+U,QAAQ,oBAAoB3I,MAAM,OAAOA,OAAOA,KAAKpG,EAAEoG,KAAK2I,QAAS,GAAEtW,KAAKoB,KAAKxB,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAI8O,aAAa,EAAE,SAAShP,EAAEC,EAAEC,GAAG,aAAaS,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAKhB,EAAEoB,QAAQ,SAASrB,EAAEC,GAAG,IAAIA,EAAEytB,KAAK1tB,EAAE,IAAI,IAAIE,EAAE,EAAEC,EAAEH,EAAEoC,OAAOlC,EAAEC,EAAED,IAAI,GAAG,OAAOF,EAAEE,GAAG,CAAC,GAAG,OAAOF,EAAEE,EAAE,GAAG,CAACD,EAAEytB,IAAI,OAAO,KAAK,CAAC,GAAG1tB,EAAEE,EAAE,GAAG,CAACD,EAAEytB,IAAI,KAAK,KAAK,CAAC,MAAM,GAAG,OAAO1tB,EAAEE,GAAG,CAACD,EAAEytB,IAAI,KAAK,KAAK,CAAC,OAAOztB,EAAEytB,KAAK,IAAI,CAAC,EAAE,SAAS1tB,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIF,EAAED,QAAQ,SAASC,EAAEC,GAAG,IAAIC,EAAEE,EAAEJ,EAAEC,GAAG,OAAOE,EAAED,GAAGA,OAAE,CAAM,CAAC,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIa,OAAOf,EAAED,QAAQI,CAAC,EAAE,SAASH,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAE,iBAAiB6N,MAAMA,MAAMA,KAAKtN,SAASA,QAAQsN,KAAKvN,EAAEP,GAAGC,GAAGuB,SAAS,cAATA,GAA0B3B,EAAED,QAAQW,CAAC,EAAE,SAASV,EAAEC,GAAGD,EAAED,QAAQ,SAASC,GAAG,IAAIC,SAASD,EAAE,OAAO,MAAMA,IAAI,UAAUC,GAAG,YAAYA,EAAE,CAAC,EAAE,SAASD,EAAEC,GAAG,IAAIC,EAAEmI,MAAM4E,QAAQjN,EAAED,QAAQG,CAAC,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIF,EAAED,QAAQ,SAASC,GAAG,MAAM,iBAAiBA,GAAGI,EAAEJ,IAAI,mBAAmBG,EAAEH,EAAE,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,cAAa,SAAUD,EAAEE,GAAG,IAAIC,EAAEF,EAAE,GAAGF,EAAED,QAAQwF,EAAE,IAAI7E,EAAEe,EAAEvB,EAAE,IAAIqF,EAAEooB,cAAcptB,EAAEL,EAAE,IAAIkP,aAAa,IAAIlN,EAAE,SAASlC,EAAEC,GAAG,OAAOD,EAAE4M,UAAU3M,GAAGmC,MAAM,EAAED,EAAEjC,EAAE,IAAIM,EAAEN,EAAE,GAAGoG,OAAOjG,EAAEJ,EAAEuD,YAAY,WAAW,EAAExB,EAAE9B,EAAE,GAAG8B,EAAEC,SAAS/B,EAAE,GAAG,IAAIuC,EAAEvC,EAAE,IAAIsB,OAAE,EAAOA,EAAEiB,GAAGA,EAAEmrB,SAASnrB,EAAEmrB,SAAS,UAAU,WAAW,EAAE,IAAIntB,EAAEkE,EAAEzE,EAAE,IAAI0E,EAAE1E,EAAE,IAAI8B,EAAEC,SAASsD,EAAEpD,GAAG,IAAI4C,EAAE,CAAC,QAAQ,QAAQ,UAAU,QAAQ,UAAU,SAASxE,EAAEP,EAAEC,GAAaD,EAAEA,GAAG,CAAC,EAAE,IAAIG,EAAEF,aAAxBS,EAAEA,GAAGR,EAAE,IAAgCwB,KAAKoP,aAAa9Q,EAAE8Q,WAAW3Q,IAAIuB,KAAKoP,WAAWpP,KAAKoP,cAAc9Q,EAAE6tB,oBAAoB,IAAIztB,EAAEJ,EAAE8C,cAAcrB,EAAEzB,EAAE8tB,sBAAsB5rB,EAAER,KAAKoP,WAAW,GAAG,MAAMpP,KAAKoB,cAAc1C,GAAG,IAAIA,EAAEA,EAAED,IAAIsB,GAAG,IAAIA,GAAGA,EAAES,EAAER,KAAKoB,cAAcmD,KAAKoE,MAAM3I,KAAKoB,eAAepB,KAAKyC,OAAO,IAAIQ,EAAEjD,KAAKU,OAAO,EAAEV,KAAKqsB,MAAM,KAAKrsB,KAAKssB,WAAW,EAAEtsB,KAAKusB,QAAQ,KAAKvsB,KAAKiB,OAAM,EAAGjB,KAAKwsB,YAAW,EAAGxsB,KAAKysB,SAAQ,EAAGzsB,KAAK+P,MAAK,EAAG/P,KAAK0sB,cAAa,EAAG1sB,KAAK2sB,iBAAgB,EAAG3sB,KAAK4sB,mBAAkB,EAAG5sB,KAAK6sB,iBAAgB,EAAG7sB,KAAKsB,WAAU,EAAGtB,KAAK4P,gBAAgBtR,EAAEsR,iBAAiB,OAAO5P,KAAK8sB,WAAW,EAAE9sB,KAAK+sB,aAAY,EAAG/sB,KAAKgtB,QAAQ,KAAKhtB,KAAKkR,SAAS,KAAK5S,EAAE4S,WAAWnS,IAAIA,EAAEP,EAAE,IAAIyuB,eAAejtB,KAAKgtB,QAAQ,IAAIjuB,EAAET,EAAE4S,UAAUlR,KAAKkR,SAAS5S,EAAE4S,SAAS,CAAC,SAASrN,EAAEvF,GAAG,GAAGU,EAAEA,GAAGR,EAAE,KAAKwB,gBAAgB6D,GAAG,OAAO,IAAIA,EAAEvF,GAAG0B,KAAKqB,eAAe,IAAIxC,EAAEP,EAAE0B,MAAMA,KAAKW,UAAS,EAAGrC,IAAI,mBAAmBA,EAAE8J,OAAOpI,KAAKktB,MAAM5uB,EAAE8J,MAAM,mBAAmB9J,EAAEsS,UAAU5Q,KAAKwB,SAASlD,EAAEsS,UAAUnQ,EAAE7B,KAAKoB,KAAK,CAAC,SAAS+D,EAAEzF,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAIM,EAAEe,EAAEzB,EAAE+C,eAAe,OAAO,OAAO9C,GAAGwB,EAAE0sB,SAAQ,EAAG,SAASnuB,EAAEC,GAAG,IAAIA,EAAE0C,MAAM,CAAC,GAAG1C,EAAEyuB,QAAQ,CAAC,IAAIxuB,EAAED,EAAEyuB,QAAQ7rB,MAAM3C,GAAGA,EAAEkC,SAASnC,EAAEkE,OAAOpC,KAAK7B,GAAGD,EAAEmC,QAAQnC,EAAE6Q,WAAW,EAAE5Q,EAAEkC,OAAO,CAACnC,EAAE0C,OAAM,EAAGmD,EAAE9F,EAAE,CAAC,CAAjJ,CAAmJA,EAAEyB,KAAKrB,IAAIM,EAAE,SAASV,EAAEC,GAAG,IAAIC,EAAE,OAAO,SAASF,GAAG,OAAOQ,EAAEyD,SAASjE,IAAIA,aAAaK,CAAC,CAAhD,CAAkDJ,IAAI,iBAAiBA,QAAG,IAASA,GAAGD,EAAE8Q,aAAa5Q,EAAE,IAAIyD,UAAU,oCAAoCzD,CAAC,CAArL,CAAuLuB,EAAExB,IAAIS,EAAEV,EAAEyM,KAAK,QAAQ/L,GAAGe,EAAEqP,YAAY7Q,GAAGA,EAAEmC,OAAO,GAAG,iBAAiBnC,GAAGwB,EAAEqP,YAAYnQ,OAAO+f,eAAezgB,KAAKO,EAAEc,YAAYrB,EAAE,SAASD,GAAG,OAAOQ,EAAEsE,KAAK9E,EAAE,CAA5B,CAA8BC,IAAIE,EAAEsB,EAAEysB,WAAWluB,EAAEyM,KAAK,QAAQ,IAAI/I,MAAM,qCAAqCiC,EAAE3F,EAAEyB,EAAExB,GAAE,GAAIwB,EAAEkB,MAAM3C,EAAEyM,KAAK,QAAQ,IAAI/I,MAAM,6BAA6BjC,EAAE0sB,SAAQ,EAAG1sB,EAAEitB,UAAUxuB,GAAGD,EAAEwB,EAAEitB,QAAQ3qB,MAAM9D,GAAGwB,EAAEqP,YAAY,IAAI7Q,EAAEmC,OAAOuD,EAAE3F,EAAEyB,EAAExB,GAAE,GAAIkG,EAAEnG,EAAEyB,IAAIkE,EAAE3F,EAAEyB,EAAExB,GAAE,KAAME,IAAIsB,EAAE0sB,SAAQ,IAAK,SAASnuB,GAAG,OAAOA,EAAE2C,QAAQ3C,EAAEouB,cAAcpuB,EAAEoC,OAAOpC,EAAE8C,eAAe,IAAI9C,EAAEoC,OAAO,CAApF,CAAsFX,EAAE,CAAC,SAASkE,EAAE3F,EAAEC,EAAEC,EAAEC,GAAGF,EAAEguB,SAAS,IAAIhuB,EAAEmC,SAASnC,EAAEwR,MAAMzR,EAAEyM,KAAK,OAAOvM,GAAGF,EAAE8J,KAAK,KAAK7J,EAAEmC,QAAQnC,EAAE6Q,WAAW,EAAE5Q,EAAEkC,OAAOjC,EAAEF,EAAEkE,OAAO0qB,QAAQ3uB,GAAGD,EAAEkE,OAAOpC,KAAK7B,GAAGD,EAAEmuB,cAActoB,EAAE9F,IAAImG,EAAEnG,EAAEC,EAAE,CAACU,OAAOC,eAAe2E,EAAEjE,UAAU,YAAY,CAACR,IAAI,WAAW,YAAO,IAASY,KAAKqB,gBAAgBrB,KAAKqB,eAAeC,SAAS,EAAEC,IAAI,SAASjD,GAAG0B,KAAKqB,iBAAiBrB,KAAKqB,eAAeC,UAAUhD,EAAE,IAAIuF,EAAEjE,UAAUgR,QAAQ1N,EAAE0N,QAAQ/M,EAAEjE,UAAU6R,WAAWvO,EAAEwO,UAAU7N,EAAEjE,UAAU4B,SAAS,SAASlD,EAAEC,GAAGyB,KAAKK,KAAK,MAAM9B,EAAED,EAAE,EAAEuF,EAAEjE,UAAUS,KAAK,SAAS/B,EAAEC,GAAG,IAAIC,EAAEC,EAAEuB,KAAKqB,eAAe,OAAO5C,EAAE2Q,WAAW5Q,GAAE,EAAG,iBAAiBF,KAAKC,EAAEA,GAAGE,EAAEmR,mBAAmBnR,EAAEyS,WAAW5S,EAAEQ,EAAEsE,KAAK9E,EAAEC,GAAGA,EAAE,IAAIC,GAAE,GAAIuF,EAAE/D,KAAK1B,EAAEC,GAAE,EAAGC,EAAE,EAAEqF,EAAEjE,UAAUutB,QAAQ,SAAS7uB,GAAG,OAAOyF,EAAE/D,KAAK1B,EAAE,MAAK,GAAG,EAAG,EAAEuF,EAAEjE,UAAUwtB,SAAS,WAAW,OAAM,IAAKptB,KAAKqB,eAAekrB,OAAO,EAAE1oB,EAAEjE,UAAUytB,YAAY,SAAS/uB,GAAG,OAAOS,IAAIA,EAAEP,EAAE,IAAIyuB,eAAejtB,KAAKqB,eAAe2rB,QAAQ,IAAIjuB,EAAET,GAAG0B,KAAKqB,eAAe6P,SAAS5S,EAAE0B,IAAI,EAAE,IAAIkE,EAAE,QAAQ,SAASC,EAAE7F,EAAEC,GAAG,OAAOD,GAAG,GAAG,IAAIC,EAAEmC,QAAQnC,EAAE0C,MAAM,EAAE1C,EAAE6Q,WAAW,EAAE9Q,GAAGA,EAAEC,EAAEguB,SAAShuB,EAAEmC,OAAOnC,EAAEkE,OAAO6qB,KAAK3qB,KAAKjC,OAAOnC,EAAEmC,QAAQpC,EAAEC,EAAE6C,gBAAgB7C,EAAE6C,cAAc,SAAS9C,GAAG,OAAOA,GAAG4F,EAAE5F,EAAE4F,GAAG5F,IAAIA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,GAAGA,KAAKA,CAAC,CAArF,CAAuFA,IAAIA,GAAGC,EAAEmC,OAAOpC,EAAEC,EAAE0C,MAAM1C,EAAEmC,QAAQnC,EAAEmuB,cAAa,EAAG,GAAG,CAAC,SAAStoB,EAAE9F,GAAG,IAAIC,EAAED,EAAE+C,eAAe9C,EAAEmuB,cAAa,EAAGnuB,EAAEouB,kBAAkB7sB,EAAE,eAAevB,EAAEguB,SAAShuB,EAAEouB,iBAAgB,EAAGpuB,EAAEwR,KAAKrR,EAAEwC,SAASoD,EAAEhG,GAAGgG,EAAEhG,GAAG,CAAC,SAASgG,EAAEhG,GAAGwB,EAAE,iBAAiBxB,EAAEyM,KAAK,YAAY5E,EAAE7H,EAAE,CAAC,SAASmG,EAAEnG,EAAEC,GAAGA,EAAEwuB,cAAcxuB,EAAEwuB,aAAY,EAAGruB,EAAEwC,SAAS+E,EAAE3H,EAAEC,GAAG,CAAC,SAAS0H,EAAE3H,EAAEC,GAAG,IAAI,IAAIC,EAAED,EAAEmC,QAAQnC,EAAEkuB,UAAUluB,EAAEguB,UAAUhuB,EAAE0C,OAAO1C,EAAEmC,OAAOnC,EAAE6C,gBAAgBtB,EAAE,wBAAwBxB,EAAE8J,KAAK,GAAG5J,IAAID,EAAEmC,SAASlC,EAAED,EAAEmC,OAAOnC,EAAEwuB,aAAY,CAAE,CAAC,SAAS7mB,EAAE5H,GAAGwB,EAAE,4BAA4BxB,EAAE8J,KAAK,EAAE,CAAC,SAASpC,EAAE1H,EAAEC,GAAGA,EAAEkuB,UAAU3sB,EAAE,iBAAiBxB,EAAE8J,KAAK,IAAI7J,EAAEsuB,iBAAgB,EAAGtuB,EAAEuuB,WAAW,EAAExuB,EAAEyM,KAAK,UAAU5E,EAAE7H,GAAGC,EAAEguB,UAAUhuB,EAAEkuB,SAASnuB,EAAE8J,KAAK,EAAE,CAAC,SAASjC,EAAE7H,GAAG,IAAIC,EAAED,EAAE+C,eAAe,IAAIvB,EAAE,OAAOvB,EAAEguB,SAAShuB,EAAEguB,SAAS,OAAOjuB,EAAE8J,SAAS,CAAC,SAAStB,EAAExI,EAAEC,GAAG,OAAO,IAAIA,EAAEmC,OAAO,MAAMnC,EAAE6Q,WAAW5Q,EAAED,EAAEkE,OAAOqR,SAASxV,GAAGA,GAAGC,EAAEmC,QAAQlC,EAAED,EAAEyuB,QAAQzuB,EAAEkE,OAAO8D,KAAK,IAAI,IAAIhI,EAAEkE,OAAO/B,OAAOnC,EAAEkE,OAAO6qB,KAAK3qB,KAAKpE,EAAEkE,OAAOkD,OAAOpH,EAAEmC,QAAQnC,EAAEkE,OAAO8qB,SAAS/uB,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAE,OAAOH,EAAEC,EAAE+uB,KAAK3qB,KAAKjC,QAAQjC,EAAEF,EAAE+uB,KAAK3qB,KAAKL,MAAM,EAAEhE,GAAGC,EAAE+uB,KAAK3qB,KAAKpE,EAAE+uB,KAAK3qB,KAAKL,MAAMhE,IAAIG,EAAEH,IAAIC,EAAE+uB,KAAK3qB,KAAKjC,OAAOnC,EAAEuV,QAAQtV,EAAE,SAASF,EAAEC,GAAG,IAAIC,EAAED,EAAE+uB,KAAK7uB,EAAE,EAAEC,EAAEF,EAAEmE,KAAK,IAAIrE,GAAGI,EAAEgC,OAAOlC,EAAEA,EAAEoQ,MAAM,CAAC,IAAI5P,EAAER,EAAEmE,KAAK5C,EAAEzB,EAAEU,EAAE0B,OAAO1B,EAAE0B,OAAOpC,EAAE,GAAGyB,IAAIf,EAAE0B,OAAOhC,GAAGM,EAAEN,GAAGM,EAAEsD,MAAM,EAAEhE,GAAG,IAAIA,GAAGyB,GAAG,CAACA,IAAIf,EAAE0B,UAAUjC,EAAED,EAAEoQ,KAAKrQ,EAAE+uB,KAAK9uB,EAAEoQ,KAAKrQ,EAAE+uB,KAAK/uB,EAAEivB,KAAK,OAAOjvB,EAAE+uB,KAAK9uB,EAAEA,EAAEmE,KAAK3D,EAAEsD,MAAMvC,IAAI,KAAK,GAAGtB,CAAC,CAAC,OAAOF,EAAEmC,QAAQjC,EAAEC,CAAC,CAA9Q,CAAgRJ,EAAEC,GAAG,SAASD,EAAEC,GAAG,IAAIC,EAAEM,EAAEyG,YAAYjH,GAAGG,EAAEF,EAAE+uB,KAAK5uB,EAAE,EAAE,IAAID,EAAEkE,KAAKH,KAAKhE,GAAGF,GAAGG,EAAEkE,KAAKjC,OAAOjC,EAAEA,EAAEmQ,MAAM,CAAC,IAAI5P,EAAEP,EAAEkE,KAAK5C,EAAEzB,EAAEU,EAAE0B,OAAO1B,EAAE0B,OAAOpC,EAAE,GAAGU,EAAEwD,KAAKhE,EAAEA,EAAEkC,OAAOpC,EAAE,EAAEyB,GAAG,IAAIzB,GAAGyB,GAAG,CAACA,IAAIf,EAAE0B,UAAUhC,EAAED,EAAEmQ,KAAKrQ,EAAE+uB,KAAK7uB,EAAEmQ,KAAKrQ,EAAE+uB,KAAK/uB,EAAEivB,KAAK,OAAOjvB,EAAE+uB,KAAK7uB,EAAEA,EAAEkE,KAAK3D,EAAEsD,MAAMvC,IAAI,KAAK,GAAGrB,CAAC,CAAC,OAAOH,EAAEmC,QAAQhC,EAAEF,CAAC,CAAnS,CAAqSF,EAAEC,GAAGE,CAAC,CAAntB,CAAqtBH,EAAEC,EAAEkE,OAAOlE,EAAEyuB,SAASxuB,GAAG,IAAIA,CAAC,CAAC,SAASuI,EAAEzI,GAAG,IAAIC,EAAED,EAAE+C,eAAe,GAAG9C,EAAEmC,OAAO,EAAE,MAAM,IAAIsB,MAAM,8CAA8CzD,EAAEiuB,aAAajuB,EAAE0C,OAAM,EAAGvC,EAAEwC,SAAS8F,EAAEzI,EAAED,GAAG,CAAC,SAAS0I,EAAE1I,EAAEC,GAAGD,EAAEkuB,YAAY,IAAIluB,EAAEoC,SAASpC,EAAEkuB,YAAW,EAAGjuB,EAAEoC,UAAS,EAAGpC,EAAEwM,KAAK,OAAO,CAAC,SAAS9D,EAAE3I,EAAEC,GAAG,IAAI,IAAIC,EAAE,EAAEC,EAAEH,EAAEoC,OAAOlC,EAAEC,EAAED,IAAI,GAAGF,EAAEE,KAAKD,EAAE,OAAOC,EAAE,OAAO,CAAC,CAACqF,EAAEjE,UAAUwI,KAAK,SAAS9J,GAAGwB,EAAE,OAAOxB,GAAGA,EAAEqF,SAASrF,EAAE,IAAI,IAAIC,EAAEyB,KAAKqB,eAAe7C,EAAEF,EAAE,GAAG,IAAIA,IAAIC,EAAEouB,iBAAgB,GAAI,IAAIruB,GAAGC,EAAEmuB,eAAenuB,EAAEmC,QAAQnC,EAAE6C,eAAe7C,EAAE0C,OAAO,OAAOnB,EAAE,qBAAqBvB,EAAEmC,OAAOnC,EAAE0C,OAAO,IAAI1C,EAAEmC,QAAQnC,EAAE0C,MAAM8F,EAAE/G,MAAMoE,EAAEpE,MAAM,KAAK,GAAG,KAAK1B,EAAE6F,EAAE7F,EAAEC,KAAKA,EAAE0C,MAAM,OAAO,IAAI1C,EAAEmC,QAAQqG,EAAE/G,MAAM,KAAK,IAAIvB,EAAEC,EAAEH,EAAEmuB,aAAa,OAAO5sB,EAAE,gBAAgBpB,IAAI,IAAIH,EAAEmC,QAAQnC,EAAEmC,OAAOpC,EAAEC,EAAE6C,gBAAgBtB,EAAE,6BAA6BpB,GAAE,GAAIH,EAAE0C,OAAO1C,EAAEkuB,QAAQ3sB,EAAE,mBAAmBpB,GAAE,GAAIA,IAAIoB,EAAE,WAAWvB,EAAEkuB,SAAQ,EAAGluB,EAAEwR,MAAK,EAAG,IAAIxR,EAAEmC,SAASnC,EAAEmuB,cAAa,GAAI1sB,KAAKktB,MAAM3uB,EAAE6C,eAAe7C,EAAEwR,MAAK,EAAGxR,EAAEkuB,UAAUnuB,EAAE6F,EAAE3F,EAAED,KAAK,QAAQE,EAAEH,EAAE,EAAEwI,EAAExI,EAAEC,GAAG,OAAOA,EAAEmuB,cAAa,EAAGpuB,EAAE,GAAGC,EAAEmC,QAAQpC,EAAE,IAAIC,EAAEmC,SAASnC,EAAE0C,QAAQ1C,EAAEmuB,cAAa,GAAIluB,IAAIF,GAAGC,EAAE0C,OAAO8F,EAAE/G,OAAO,OAAOvB,GAAGuB,KAAK+K,KAAK,OAAOtM,GAAGA,CAAC,EAAEoF,EAAEjE,UAAUstB,MAAM,SAAS5uB,GAAG0B,KAAK+K,KAAK,QAAQ,IAAI/I,MAAM,8BAA8B,EAAE6B,EAAEjE,UAAUyR,KAAK,SAAS/S,EAAEC,GAAG,IAAIC,EAAEwB,KAAKhB,EAAEgB,KAAKqB,eAAe,OAAOrC,EAAEstB,YAAY,KAAK,EAAEttB,EAAEqtB,MAAM/tB,EAAE,MAAM,KAAK,EAAEU,EAAEqtB,MAAM,CAACrtB,EAAEqtB,MAAM/tB,GAAG,MAAM,QAAQU,EAAEqtB,MAAMhsB,KAAK/B,GAAGU,EAAEstB,YAAY,EAAExsB,EAAE,wBAAwBd,EAAEstB,WAAW/tB,GAAG,IAAIkC,EAAElC,IAAG,IAAKA,EAAE4C,KAAK7C,IAAIG,EAAEgvB,QAAQnvB,IAAIG,EAAE4U,OAAOxU,EAAEC,EAAE,SAASA,IAAIgB,EAAE,SAASxB,EAAE6C,KAAK,CAACnC,EAAEwtB,WAAW9tB,EAAEwC,SAAST,GAAGjC,EAAEsC,KAAK,MAAML,GAAGnC,EAAEoM,GAAG,UAAS,SAASnM,EAAEE,EAAEC,GAAGoB,EAAE,YAAYrB,IAAID,GAAGE,IAAG,IAAKA,EAAEgvB,aAAahvB,EAAEgvB,YAAW,EAAG5tB,EAAE,WAAWxB,EAAEuM,eAAe,QAAQ3H,GAAG5E,EAAEuM,eAAe,SAASxH,GAAG/E,EAAEuM,eAAe,QAAQlM,GAAGL,EAAEuM,eAAe,QAAQ5H,GAAG3E,EAAEuM,eAAe,SAAStM,GAAGC,EAAEqM,eAAe,MAAM/L,GAAGN,EAAEqM,eAAe,MAAMhM,GAAGL,EAAEqM,eAAe,OAAO9L,GAAGuB,GAAE,GAAItB,EAAE8tB,YAAYxuB,EAAE0C,iBAAiB1C,EAAE0C,eAAewO,WAAW7Q,IAAI,IAAG,IAAIA,EAAE,SAASL,GAAG,OAAO,WAAW,IAAIC,EAAED,EAAE+C,eAAevB,EAAE,cAAcvB,EAAEuuB,YAAYvuB,EAAEuuB,YAAYvuB,EAAEuuB,aAAa,IAAIvuB,EAAEuuB,YAAYtsB,EAAElC,EAAE,UAAUC,EAAEguB,SAAQ,EAAGpmB,EAAE7H,GAAG,CAAC,CAAnK,CAAqKE,GAAGF,EAAEoM,GAAG,QAAQ/L,GAAG,IAAI2B,GAAE,EAAGS,GAAE,EAAG,SAAShC,EAAER,GAAGuB,EAAE,UAAUiB,GAAE,GAAG,IAAKzC,EAAE+D,MAAM9D,IAAIwC,KAAK,IAAI/B,EAAEstB,YAAYttB,EAAEqtB,QAAQ/tB,GAAGU,EAAEstB,WAAW,IAAI,IAAIrlB,EAAEjI,EAAEqtB,MAAM/tB,MAAMgC,IAAIR,EAAE,8BAA8BtB,EAAE6C,eAAeyrB,YAAYtuB,EAAE6C,eAAeyrB,aAAa/rB,GAAE,GAAIvC,EAAEmvB,QAAQ,CAAC,SAAS1qB,EAAE1E,GAAGuB,EAAE,UAAUvB,GAAGM,IAAIP,EAAEuM,eAAe,QAAQ5H,GAAG,IAAIzC,EAAElC,EAAE,UAAUA,EAAEyM,KAAK,QAAQxM,EAAE,CAAC,SAAS2E,IAAI5E,EAAEuM,eAAe,SAASxH,GAAGxE,GAAG,CAAC,SAASwE,IAAIvD,EAAE,YAAYxB,EAAEuM,eAAe,QAAQ3H,GAAGrE,GAAG,CAAC,SAASA,IAAIiB,EAAE,UAAUtB,EAAEovB,OAAOtvB,EAAE,CAAC,OAAOE,EAAEkM,GAAG,OAAO3L,GAAG,SAAST,EAAEC,EAAEC,GAAG,GAAG,mBAAmBF,EAAE0M,gBAAgB,OAAO1M,EAAE0M,gBAAgBzM,EAAEC,GAAGF,EAAEkP,SAASlP,EAAEkP,QAAQjP,GAAGwB,EAAEzB,EAAEkP,QAAQjP,IAAID,EAAEkP,QAAQjP,GAAG4uB,QAAQ3uB,GAAGF,EAAEkP,QAAQjP,GAAG,CAACC,EAAEF,EAAEkP,QAAQjP,IAAID,EAAEoM,GAAGnM,EAAEC,EAAE,CAA7L,CAA+LF,EAAE,QAAQ2E,GAAG3E,EAAEwC,KAAK,QAAQoC,GAAG5E,EAAEwC,KAAK,SAASuC,GAAG/E,EAAEyM,KAAK,OAAOvM,GAAGQ,EAAEutB,UAAUzsB,EAAE,eAAetB,EAAEqvB,UAAUvvB,CAAC,EAAEuF,EAAEjE,UAAUguB,OAAO,SAAStvB,GAAG,IAAIC,EAAEyB,KAAKqB,eAAe7C,EAAE,CAACkvB,YAAW,GAAI,GAAG,IAAInvB,EAAE+tB,WAAW,OAAOtsB,KAAK,GAAG,IAAIzB,EAAE+tB,WAAW,OAAOhuB,GAAGA,IAAIC,EAAE8tB,QAAY/tB,IAAIA,EAAEC,EAAE8tB,OAAO9tB,EAAE8tB,MAAM,KAAK9tB,EAAE+tB,WAAW,EAAE/tB,EAAEguB,SAAQ,EAAGjuB,GAAGA,EAAEyM,KAAK,SAAS/K,KAAKxB,IAAtFwB,KAA+F,IAAI1B,EAAE,CAAC,IAAIG,EAAEF,EAAE8tB,MAAM3tB,EAAEH,EAAE+tB,WAAW/tB,EAAE8tB,MAAM,KAAK9tB,EAAE+tB,WAAW,EAAE/tB,EAAEguB,SAAQ,EAAG,IAAI,IAAIvtB,EAAE,EAAEA,EAAEN,EAAEM,IAAIP,EAAEO,GAAG+L,KAAK,SAAS/K,KAAKxB,GAAG,OAAOwB,IAAI,CAAC,IAAID,EAAEkH,EAAE1I,EAAE8tB,MAAM/tB,GAAG,OAAO,IAAIyB,IAAQxB,EAAE8tB,MAAMje,OAAOrO,EAAE,GAAGxB,EAAE+tB,YAAY,EAAE,IAAI/tB,EAAE+tB,aAAa/tB,EAAE8tB,MAAM9tB,EAAE8tB,MAAM,IAAI/tB,EAAEyM,KAAK,SAAS/K,KAAKxB,IAAtGwB,IAA8G,EAAE6D,EAAEjE,UAAU8K,GAAG,SAASpM,EAAEC,GAAG,IAAIC,EAAEiC,EAAEb,UAAU8K,GAAG9L,KAAKoB,KAAK1B,EAAEC,GAAG,GAAG,SAASD,GAAE,IAAK0B,KAAKqB,eAAekrB,SAASvsB,KAAK6tB,cAAc,GAAG,aAAavvB,EAAE,CAAC,IAAIG,EAAEuB,KAAKqB,eAAe5C,EAAE+tB,YAAY/tB,EAAEmuB,oBAAoBnuB,EAAEmuB,kBAAkBnuB,EAAEiuB,cAAa,EAAGjuB,EAAEkuB,iBAAgB,EAAGluB,EAAEguB,QAAQhuB,EAAEiC,QAAQ0D,EAAEpE,MAAMtB,EAAEwC,SAASgF,EAAElG,MAAM,CAAC,OAAOxB,CAAC,EAAEqF,EAAEjE,UAAU+K,YAAY9G,EAAEjE,UAAU8K,GAAG7G,EAAEjE,UAAUiuB,OAAO,WAAW,IAAIvvB,EAAE0B,KAAKqB,eAAe,OAAO/C,EAAEiuB,UAAUzsB,EAAE,UAAUxB,EAAEiuB,SAAQ,EAAG,SAASjuB,EAAEC,GAAGA,EAAEsuB,kBAAkBtuB,EAAEsuB,iBAAgB,EAAGnuB,EAAEwC,SAAS8E,EAAE1H,EAAEC,GAAG,CAAzE,CAA2EyB,KAAK1B,IAAI0B,IAAI,EAAE6D,EAAEjE,UAAU+tB,MAAM,WAAW,OAAO7tB,EAAE,wBAAwBE,KAAKqB,eAAekrB,UAAS,IAAKvsB,KAAKqB,eAAekrB,UAAUzsB,EAAE,SAASE,KAAKqB,eAAekrB,SAAQ,EAAGvsB,KAAK+K,KAAK,UAAU/K,IAAI,EAAE6D,EAAEjE,UAAUkuB,KAAK,SAASxvB,GAAG,IAAIC,EAAEyB,KAAKxB,EAAEwB,KAAKqB,eAAe5C,GAAE,EAAG,IAAI,IAAIC,KAAKJ,EAAEoM,GAAG,OAAM,WAAW,GAAG5K,EAAE,eAAetB,EAAEwuB,UAAUxuB,EAAEyC,MAAM,CAAC,IAAI3C,EAAEE,EAAEwuB,QAAQ7rB,MAAM7C,GAAGA,EAAEoC,QAAQnC,EAAE8B,KAAK/B,EAAE,CAACC,EAAE8B,KAAK,KAAK,IAAG/B,EAAEoM,GAAG,QAAO,SAAShM,GAAGoB,EAAE,gBAAgBtB,EAAEwuB,UAAUtuB,EAAEF,EAAEwuB,QAAQ3qB,MAAM3D,MAAMF,EAAE4Q,YAAY,MAAO1Q,KAAiBF,EAAE4Q,YAAY1Q,GAAGA,EAAEgC,UAAUnC,EAAE8B,KAAK3B,KAAKD,GAAE,EAAGH,EAAEqvB,SAAS,IAAGrvB,OAAE,IAAS0B,KAAKtB,IAAI,mBAAmBJ,EAAEI,KAAKsB,KAAKtB,GAAG,SAASH,GAAG,OAAO,WAAW,OAAOD,EAAEC,GAAGoG,MAAMrG,EAAEyH,UAAU,CAAC,CAA7D,CAA+DrH,IAAI,IAAI,IAAIM,EAAE,EAAEA,EAAEqE,EAAE3C,OAAO1B,IAAIV,EAAEoM,GAAGrH,EAAErE,GAAGgB,KAAK+K,KAAKrL,KAAKM,KAAKqD,EAAErE,KAAK,OAAOgB,KAAKktB,MAAM,SAAS3uB,GAAGuB,EAAE,gBAAgBvB,GAAGE,IAAIA,GAAE,EAAGH,EAAEuvB,SAAS,EAAE7tB,IAAI,EAAEf,OAAOC,eAAe2E,EAAEjE,UAAU,wBAAwB,CAACT,YAAW,EAAGC,IAAI,WAAW,OAAOY,KAAKqB,eAAeD,aAAa,IAAIyC,EAAEkqB,UAAUjnB,CAAE,GAAElI,KAAKoB,KAAKxB,EAAE,GAAGA,EAAE,GAAG,EAAE,SAASF,EAAEC,EAAEC,GAAGF,EAAED,QAAQG,EAAE,IAAIkP,YAAY,EAAE,SAASpP,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAED,EAAE,GAAG,SAASE,EAAEJ,EAAEC,GAAGD,EAAEyM,KAAK,QAAQxM,EAAE,CAACD,EAAED,QAAQ,CAACuS,QAAQ,SAAStS,EAAEC,GAAG,IAAIC,EAAEwB,KAAKhB,EAAEgB,KAAKqB,gBAAgBrB,KAAKqB,eAAeC,UAAUvB,EAAEC,KAAKgB,gBAAgBhB,KAAKgB,eAAeM,UAAU,OAAOtC,GAAGe,GAAGxB,EAAEA,EAAED,IAAIA,GAAG0B,KAAKgB,gBAAgBhB,KAAKgB,eAAeoP,cAAc3R,EAAEyC,SAASxC,EAAEsB,KAAK1B,GAAG0B,OAAOA,KAAKqB,iBAAiBrB,KAAKqB,eAAeC,WAAU,GAAItB,KAAKgB,iBAAiBhB,KAAKgB,eAAeM,WAAU,GAAItB,KAAKwB,SAASlD,GAAG,MAAK,SAASA,IAAIC,GAAGD,GAAGG,EAAEyC,SAASxC,EAAEF,EAAEF,GAAGE,EAAEwC,iBAAiBxC,EAAEwC,eAAeoP,cAAa,IAAK7R,GAAGA,EAAED,EAAE,IAAG0B,KAAK,EAAE0R,UAAU,WAAW1R,KAAKqB,iBAAiBrB,KAAKqB,eAAeC,WAAU,EAAGtB,KAAKqB,eAAeorB,SAAQ,EAAGzsB,KAAKqB,eAAeJ,OAAM,EAAGjB,KAAKqB,eAAemrB,YAAW,GAAIxsB,KAAKgB,iBAAiBhB,KAAKgB,eAAeM,WAAU,EAAGtB,KAAKgB,eAAeC,OAAM,EAAGjB,KAAKgB,eAAeyO,QAAO,EAAGzP,KAAKgB,eAAe0O,UAAS,EAAG1P,KAAKgB,eAAeoP,cAAa,EAAG,EAAE,EAAE,SAAS9R,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAED,EAAE,GAAGoG,OAAOlG,EAAED,EAAE2D,YAAY,SAAS9D,GAAG,QAAQA,EAAE,GAAGA,IAAIA,EAAE0E,eAAe,IAAI,MAAM,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,MAAM,OAAM,EAAG,QAAQ,OAAM,EAAG,EAAE,SAAShE,EAAEV,GAAG,IAAIC,EAAE,OAAOyB,KAAKkR,SAAS,SAAS5S,GAAG,IAAIC,EAAE,SAASD,GAAG,IAAIA,EAAE,MAAM,OAAO,IAAI,IAAIC,IAAI,OAAOD,GAAG,IAAI,OAAO,IAAI,QAAQ,MAAM,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,MAAM,UAAU,IAAI,SAAS,IAAI,SAAS,MAAM,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,MAAM,OAAOA,EAAE,QAAQ,GAAGC,EAAE,OAAOD,GAAG,GAAGA,GAAG0E,cAAczE,GAAE,EAAG,CAAlS,CAAoSD,GAAG,GAAG,iBAAiBC,IAAIE,EAAE2D,aAAa1D,IAAIA,EAAEJ,IAAI,MAAM,IAAI0D,MAAM,qBAAqB1D,GAAG,OAAOC,GAAGD,CAAC,CAA7Z,CAA+ZA,GAAG0B,KAAKkR,UAAU,IAAI,UAAUlR,KAAKguB,KAAKvtB,EAAET,KAAKmB,IAAIrC,EAAEP,EAAE,EAAE,MAAM,IAAI,OAAOyB,KAAKiuB,SAASztB,EAAEjC,EAAE,EAAE,MAAM,IAAI,SAASyB,KAAKguB,KAAKrvB,EAAEqB,KAAKmB,IAAIb,EAAE/B,EAAE,EAAE,MAAM,QAAQ,OAAOyB,KAAKqC,MAAMtB,OAAOf,KAAKmB,IAAIrB,GAAGE,KAAKkuB,SAAS,EAAEluB,KAAKmuB,UAAU,EAAEnuB,KAAKouB,SAAS3vB,EAAE8G,YAAYhH,EAAE,CAAC,SAASwB,EAAEzB,GAAG,OAAOA,GAAG,IAAI,EAAEA,GAAG,GAAG,EAAE,EAAEA,GAAG,GAAG,GAAG,EAAEA,GAAG,GAAG,GAAG,EAAEA,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,SAASkC,EAAElC,GAAG,IAAIC,EAAEyB,KAAKmuB,UAAUnuB,KAAKkuB,SAAS1vB,EAAE,SAASF,EAAEC,GAAK,GAAG,MAAM,IAAIA,EAAE,IAAI,OAAOD,EAAE4vB,SAAS,EAAE,IAAI,GAAG5vB,EAAE4vB,SAAS,GAAG3vB,EAAEmC,OAAO,EAAE,CAAC,GAAG,MAAM,IAAInC,EAAE,IAAI,OAAOD,EAAE4vB,SAAS,EAAE,IAAI,GAAG5vB,EAAE4vB,SAAS,GAAG3vB,EAAEmC,OAAO,GAAG,MAAM,IAAInC,EAAE,IAAI,OAAOD,EAAE4vB,SAAS,EAAE,GAAG,CAAC,CAAxM,CAA0MluB,KAAK1B,GAAG,YAAO,IAASE,EAAEA,EAAEwB,KAAKkuB,UAAU5vB,EAAEoC,QAAQpC,EAAEkE,KAAKxC,KAAKouB,SAAS7vB,EAAE,EAAEyB,KAAKkuB,UAAUluB,KAAKouB,SAASxrB,SAAS5C,KAAKkR,SAAS,EAAElR,KAAKmuB,aAAa7vB,EAAEkE,KAAKxC,KAAKouB,SAAS7vB,EAAE,EAAED,EAAEoC,aAAaV,KAAKkuB,UAAU5vB,EAAEoC,QAAQ,CAAC,SAASD,EAAEnC,EAAEC,GAAG,IAAID,EAAEoC,OAAOnC,GAAG,GAAG,EAAE,CAAC,IAAIC,EAAEF,EAAEsE,SAAS,UAAUrE,GAAG,GAAGC,EAAE,CAAC,IAAIC,EAAED,EAAEwF,WAAWxF,EAAEkC,OAAO,GAAG,GAAGjC,GAAG,OAAOA,GAAG,MAAM,OAAOuB,KAAKkuB,SAAS,EAAEluB,KAAKmuB,UAAU,EAAEnuB,KAAKouB,SAAS,GAAG9vB,EAAEA,EAAEoC,OAAO,GAAGV,KAAKouB,SAAS,GAAG9vB,EAAEA,EAAEoC,OAAO,GAAGlC,EAAE8D,MAAM,GAAG,EAAE,CAAC,OAAO9D,CAAC,CAAC,OAAOwB,KAAKkuB,SAAS,EAAEluB,KAAKmuB,UAAU,EAAEnuB,KAAKouB,SAAS,GAAG9vB,EAAEA,EAAEoC,OAAO,GAAGpC,EAAEsE,SAAS,UAAUrE,EAAED,EAAEoC,OAAO,EAAE,CAAC,SAAS5B,EAAER,GAAG,IAAIC,EAAED,GAAGA,EAAEoC,OAAOV,KAAKqC,MAAM/D,GAAG,GAAG,GAAG0B,KAAKkuB,SAAS,CAAC,IAAI1vB,EAAEwB,KAAKmuB,UAAUnuB,KAAKkuB,SAAS,OAAO3vB,EAAEyB,KAAKouB,SAASxrB,SAAS,UAAU,EAAEpE,EAAE,CAAC,OAAOD,CAAC,CAAC,SAASI,EAAEL,EAAEC,GAAG,IAAIC,GAAGF,EAAEoC,OAAOnC,GAAG,EAAE,OAAO,IAAIC,EAAEF,EAAEsE,SAAS,SAASrE,IAAIyB,KAAKkuB,SAAS,EAAE1vB,EAAEwB,KAAKmuB,UAAU,EAAE,IAAI3vB,EAAEwB,KAAKouB,SAAS,GAAG9vB,EAAEA,EAAEoC,OAAO,IAAIV,KAAKouB,SAAS,GAAG9vB,EAAEA,EAAEoC,OAAO,GAAGV,KAAKouB,SAAS,GAAG9vB,EAAEA,EAAEoC,OAAO,IAAIpC,EAAEsE,SAAS,SAASrE,EAAED,EAAEoC,OAAOlC,GAAG,CAAC,SAAS8B,EAAEhC,GAAG,IAAIC,EAAED,GAAGA,EAAEoC,OAAOV,KAAKqC,MAAM/D,GAAG,GAAG,OAAO0B,KAAKkuB,SAAS3vB,EAAEyB,KAAKouB,SAASxrB,SAAS,SAAS,EAAE,EAAE5C,KAAKkuB,UAAU3vB,CAAC,CAAC,SAASwC,EAAEzC,GAAG,OAAOA,EAAEsE,SAAS5C,KAAKkR,SAAS,CAAC,SAASpR,EAAExB,GAAG,OAAOA,GAAGA,EAAEoC,OAAOV,KAAKqC,MAAM/D,GAAG,EAAE,CAACC,EAAE0uB,cAAcjuB,EAAEA,EAAEY,UAAUyC,MAAM,SAAS/D,GAAG,GAAG,IAAIA,EAAEoC,OAAO,MAAM,GAAG,IAAInC,EAAEC,EAAE,GAAGwB,KAAKkuB,SAAS,CAAC,QAAG,KAAU3vB,EAAEyB,KAAKiuB,SAAS3vB,IAAI,MAAM,GAAGE,EAAEwB,KAAKkuB,SAASluB,KAAKkuB,SAAS,CAAC,MAAM1vB,EAAE,EAAE,OAAOA,EAAEF,EAAEoC,OAAOnC,EAAEA,EAAEyB,KAAKguB,KAAK1vB,EAAEE,GAAGwB,KAAKguB,KAAK1vB,EAAEE,GAAGD,GAAG,EAAE,EAAES,EAAEY,UAAUuB,IAAI,SAAS7C,GAAG,IAAIC,EAAED,GAAGA,EAAEoC,OAAOV,KAAKqC,MAAM/D,GAAG,GAAG,OAAO0B,KAAKkuB,SAAS3vB,EAAE,IAAIA,CAAC,EAAES,EAAEY,UAAUouB,KAAK,SAAS1vB,EAAEC,GAAG,IAAIC,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAEF,EAAEmC,OAAO,EAAE,GAAGjC,EAAED,EAAE,OAAO,EAAE,IAAIE,EAAEqB,EAAExB,EAAEE,IAAI,OAAOC,GAAG,GAAGA,EAAE,IAAIJ,EAAE4vB,SAASxvB,EAAE,GAAGA,KAAKD,EAAED,IAAI,IAAIE,EAAE,GAAGA,EAAEqB,EAAExB,EAAEE,MAAM,GAAGC,EAAE,IAAIJ,EAAE4vB,SAASxvB,EAAE,GAAGA,KAAKD,EAAED,IAAI,IAAIE,EAAE,GAAGA,EAAEqB,EAAExB,EAAEE,MAAM,GAAGC,EAAE,IAAI,IAAIA,EAAEA,EAAE,EAAEJ,EAAE4vB,SAASxvB,EAAE,GAAGA,GAAG,CAAC,CAAlO,CAAoOsB,KAAK1B,EAAEC,GAAG,IAAIyB,KAAKkuB,SAAS,OAAO5vB,EAAEsE,SAAS,OAAOrE,GAAGyB,KAAKmuB,UAAU3vB,EAAE,IAAIC,EAAEH,EAAEoC,QAAQlC,EAAEwB,KAAKkuB,UAAU,OAAO5vB,EAAEkE,KAAKxC,KAAKouB,SAAS,EAAE3vB,GAAGH,EAAEsE,SAAS,OAAOrE,EAAEE,EAAE,EAAEO,EAAEY,UAAUquB,SAAS,SAAS3vB,GAAG,GAAG0B,KAAKkuB,UAAU5vB,EAAEoC,OAAO,OAAOpC,EAAEkE,KAAKxC,KAAKouB,SAASpuB,KAAKmuB,UAAUnuB,KAAKkuB,SAAS,EAAEluB,KAAKkuB,UAAUluB,KAAKouB,SAASxrB,SAAS5C,KAAKkR,SAAS,EAAElR,KAAKmuB,WAAW7vB,EAAEkE,KAAKxC,KAAKouB,SAASpuB,KAAKmuB,UAAUnuB,KAAKkuB,SAAS,EAAE5vB,EAAEoC,QAAQV,KAAKkuB,UAAU5vB,EAAEoC,MAAM,CAAC,EAAE,SAASpC,EAAEC,EAAEC,GAAG,aAAaF,EAAED,QAAQW,EAAE,IAAIP,EAAED,EAAE,GAAGE,EAAEF,EAAE,GAAG,SAASQ,EAAEV,GAAG,KAAK0B,gBAAgBhB,GAAG,OAAO,IAAIA,EAAEV,GAAGG,EAAEG,KAAKoB,KAAK1B,GAAG0B,KAAKquB,gBAAgB,CAACC,eAAe,SAAShwB,EAAEC,GAAG,IAAIC,EAAEwB,KAAKquB,gBAAgB7vB,EAAE+vB,cAAa,EAAG,IAAI9vB,EAAED,EAAE0R,QAAQ,IAAIzR,EAAE,OAAOuB,KAAK+K,KAAK,QAAQ,IAAI/I,MAAM,yCAAyCxD,EAAEgwB,WAAW,KAAKhwB,EAAE0R,QAAQ,KAAK,MAAM3R,GAAGyB,KAAKK,KAAK9B,GAAGE,EAAEH,GAAG,IAAII,EAAEsB,KAAKqB,eAAe3C,EAAE+tB,SAAQ,GAAI/tB,EAAEguB,cAAchuB,EAAEgC,OAAOhC,EAAE0C,gBAAgBpB,KAAKktB,MAAMxuB,EAAE0C,cAAc,EAAE1B,KAAKM,MAAMyuB,eAAc,EAAGF,cAAa,EAAGre,QAAQ,KAAKse,WAAW,KAAKE,cAAc,MAAM1uB,KAAKqB,eAAeqrB,cAAa,EAAG1sB,KAAKqB,eAAe0O,MAAK,EAAGzR,IAAI,mBAAmBA,EAAEqwB,YAAY3uB,KAAK4uB,WAAWtwB,EAAEqwB,WAAW,mBAAmBrwB,EAAEuwB,QAAQ7uB,KAAK8uB,OAAOxwB,EAAEuwB,QAAQ7uB,KAAK0K,GAAG,YAAY3K,EAAE,CAAC,SAASA,IAAI,IAAIzB,EAAE0B,KAAK,mBAAmBA,KAAK8uB,OAAO9uB,KAAK8uB,QAAO,SAASvwB,EAAEC,GAAGgC,EAAElC,EAAEC,EAAEC,EAAE,IAAGgC,EAAER,KAAK,KAAK,KAAK,CAAC,SAASQ,EAAElC,EAAEC,EAAEC,GAAG,GAAGD,EAAE,OAAOD,EAAEyM,KAAK,QAAQxM,GAAG,GAAG,MAAMC,GAAGF,EAAE+B,KAAK7B,GAAGF,EAAE0C,eAAeN,OAAO,MAAM,IAAIsB,MAAM,8CAA8C,GAAG1D,EAAE+vB,gBAAgBE,aAAa,MAAM,IAAIvsB,MAAM,kDAAkD,OAAO1D,EAAE+B,KAAK,KAAK,CAAC3B,EAAE6B,SAAS/B,EAAE,GAAGE,EAAE6B,SAASvB,EAAEP,GAAGO,EAAEY,UAAUS,KAAK,SAAS/B,EAAEC,GAAG,OAAOyB,KAAKquB,gBAAgBI,eAAc,EAAGhwB,EAAEmB,UAAUS,KAAKzB,KAAKoB,KAAK1B,EAAEC,EAAE,EAAES,EAAEY,UAAUgvB,WAAW,SAAStwB,EAAEC,EAAEC,GAAG,MAAM,IAAIwD,MAAM,kCAAkC,EAAEhD,EAAEY,UAAU6Q,OAAO,SAASnS,EAAEC,EAAEC,GAAG,IAAIC,EAAEuB,KAAKquB,gBAAgB,GAAG5vB,EAAEyR,QAAQ1R,EAAEC,EAAE+vB,WAAWlwB,EAAEG,EAAEiwB,cAAcnwB,GAAGE,EAAE8vB,aAAa,CAAC,IAAI7vB,EAAEsB,KAAKqB,gBAAgB5C,EAAEgwB,eAAe/vB,EAAEguB,cAAchuB,EAAEgC,OAAOhC,EAAE0C,gBAAgBpB,KAAKktB,MAAMxuB,EAAE0C,cAAc,CAAC,EAAEpC,EAAEY,UAAUstB,MAAM,SAAS5uB,GAAG,IAAIC,EAAEyB,KAAKquB,gBAAgB,OAAO9vB,EAAEiwB,YAAYjwB,EAAE2R,UAAU3R,EAAEgwB,cAAchwB,EAAEgwB,cAAa,EAAGvuB,KAAK4uB,WAAWrwB,EAAEiwB,WAAWjwB,EAAEmwB,cAAcnwB,EAAE+vB,iBAAiB/vB,EAAEkwB,eAAc,CAAE,EAAEzvB,EAAEY,UAAU4B,SAAS,SAASlD,EAAEC,GAAG,IAAIC,EAAEwB,KAAKvB,EAAEmB,UAAU4B,SAAS5C,KAAKoB,KAAK1B,GAAE,SAASA,GAAGC,EAAED,GAAGE,EAAEuM,KAAK,QAAQ,GAAE,CAAC,EAAE,SAASzM,EAAEC,EAAEC,GAAG,cAAa,SAAUF,GAAGW,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAKhB,EAAEwwB,cAAc,SAASxwB,GAAG,IAAIC,EAAEF,EAAE6D,WAAW5D,GAAGE,EAAEH,EAAEiH,YAAYjH,EAAEiH,YAAY/G,GAAG,IAAIF,EAAEE,GAAG,OAAOC,EAAE4D,MAAM9D,GAAGE,CAAC,EAAEF,EAAEywB,YAAY,WAAW,OAAO1wB,EAAEiH,YAAYjH,EAAEiH,YAAY,GAAG,IAAIjH,EAAE,EAAE,EAAEC,EAAE0wB,YAAY,SAAS3wB,EAAEC,GAAG,IAAI,IAAIC,EAAE,GAAGC,EAAE,EAAEA,EAAEH,EAAEoC,OAAOjC,IAAIF,EAAE+E,QAAQ7E,IAAI,GAAGD,EAAE6B,KAAK/B,EAAEG,IAAI,OAAOD,CAAC,EAAED,EAAE2wB,SAAS1rB,OAAO5D,UAAUsvB,SAAS,SAAS5wB,GAAG,OAAOA,EAAE4wB,UAAU,EAAE,SAAS5wB,GAAG,OAAOA,EAAEwL,QAAQ,OAAO,GAAG,EAAEvL,EAAE4wB,UAAU3rB,OAAO5D,UAAUuvB,UAAU,SAAS7wB,GAAG,OAAOA,EAAE6wB,WAAW,EAAE,SAAS7wB,GAAG,OAAOA,EAAEwL,QAAQ,OAAO,GAAG,CAAE,GAAElL,KAAKoB,KAAKxB,EAAE,GAAGoG,OAAO,EAAE,SAAStG,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAEuB,MAAMA,KAAKovB,WAAW,WAAW,IAAI9wB,EAAEW,OAAOowB,gBAAgB,CAACttB,UAAU,cAAc4E,OAAO,SAASrI,EAAEC,GAAGD,EAAEyD,UAAUxD,CAAC,GAAG,SAASD,EAAEC,GAAG,IAAI,IAAIC,KAAKD,EAAEA,EAAEsB,eAAerB,KAAKF,EAAEE,GAAGD,EAAEC,GAAG,EAAE,OAAO,SAASD,EAAEC,GAAG,SAASC,IAAIuB,KAAK0B,YAAYnD,CAAC,CAACD,EAAEC,EAAEC,GAAGD,EAAEqB,UAAU,OAAOpB,EAAES,OAAOQ,OAAOjB,IAAIC,EAAEmB,UAAUpB,EAAEoB,UAAU,IAAInB,EAAE,CAAC,CAAvS,GAA2SQ,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAK,IAAIb,EAAE,SAASJ,GAAG,SAASC,EAAEA,EAAEC,EAAEC,GAAG,IAAIC,EAAEJ,EAAEM,KAAKoB,KAAK,UAAUzB,EAAE,uBAAuBC,GAAGC,EAAE,UAAUA,EAAE,MAAMuB,KAAK,OAAOtB,EAAE4wB,IAAI/wB,EAAEG,EAAEke,KAAKpe,EAAEE,EAAE6wB,MAAM9wB,EAAEC,EAAEyd,KAAK,kBAAkBzd,CAAC,CAAC,OAAOD,EAAEF,EAAED,GAAGC,EAAEixB,kBAAkB,SAASlxB,EAAEE,GAAG,OAAO,IAAID,EAAE,oBAAoBD,EAAEE,EAAE,EAAED,EAAEkxB,eAAe,SAASnxB,EAAEE,GAAG,OAAO,IAAID,EAAE,iBAAiBD,EAAEE,EAAE,EAAED,EAAEmxB,SAAS,SAASpxB,GAAG,OAAO,IAAIC,EAAED,EAAEgxB,IAAIhxB,EAAEse,KAAKte,EAAEixB,MAAM,EAAEhxB,EAAEqB,UAAU8G,OAAO,WAAW,MAAM,CAAC4oB,IAAItvB,KAAKsvB,IAAI1S,KAAK5c,KAAK4c,KAAK2S,MAAMvvB,KAAKuvB,MAAM,EAAEhxB,CAAC,CAAtd,CAAwdyD,OAAOzD,EAAEoB,QAAQjB,CAAC,EAAE,SAASJ,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAER,EAAE,IAAIuB,EAAEtB,EAAEA,EAAEa,iBAAY,EAAOhB,EAAED,QAAQ,SAASC,GAAG,OAAO,MAAMA,OAAE,IAASA,EAAE,qBAAqB,gBAAgByB,GAAGA,KAAKd,OAAOX,GAAGI,EAAEJ,GAAGU,EAAEV,EAAE,CAAC,EAAE,SAASA,EAAEC,GAAGD,EAAED,QAAQ,SAASC,EAAEC,GAAG,OAAOD,IAAIC,GAAGD,GAAGA,GAAGC,GAAGA,CAAC,CAAC,EAAE,SAASD,EAAEC,EAAEC,GAAGF,EAAED,QAAQG,EAAE,GAAG,EAAE,SAASF,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAED,EAAE,IAAIE,EAAE,SAASJ,EAAEC,GAAG,OAAO,IAAIE,EAAEkxB,UAAUrxB,EAAEC,EAAE,EAAEG,EAAEkxB,IAAIlxB,EAAEA,EAAEixB,UAAUlxB,EAAEkxB,UAAUrxB,EAAED,QAAQK,CAAC,EAAE,SAASJ,EAAEC,EAAEC,GAAG,cAAa,SAAUF,GAAG,IAAIG,EAAEuB,MAAMA,KAAKovB,WAAW,WAAW,IAAI9wB,EAAEW,OAAOowB,gBAAgB,CAACttB,UAAU,cAAc4E,OAAO,SAASrI,EAAEC,GAAGD,EAAEyD,UAAUxD,CAAC,GAAG,SAASD,EAAEC,GAAG,IAAI,IAAIC,KAAKD,EAAEA,EAAEsB,eAAerB,KAAKF,EAAEE,GAAGD,EAAEC,GAAG,EAAE,OAAO,SAASD,EAAEC,GAAG,SAASC,IAAIuB,KAAK0B,YAAYnD,CAAC,CAACD,EAAEC,EAAEC,GAAGD,EAAEqB,UAAU,OAAOpB,EAAES,OAAOQ,OAAOjB,IAAIC,EAAEmB,UAAUpB,EAAEoB,UAAU,IAAInB,EAAE,CAAC,CAAvS,GAA2SC,EAAEsB,MAAMA,KAAK6vB,iBAAiB,SAASvxB,GAAG,OAAOA,GAAGA,EAAEkB,WAAWlB,EAAE,CAACqB,QAAQrB,EAAE,EAAEW,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAK,IAAIP,EAAER,EAAE,IAAIuB,EAAEvB,EAAE,IAAIgC,EAAEhC,EAAE,IAAIiC,EAAE/B,EAAEF,EAAE,KAAKM,EAAEN,EAAE,IAAIG,EAAEH,EAAE,KAAK8B,EAAE,SAAS/B,GAAG,SAASG,EAAEF,EAAEC,QAAG,IAASA,IAAIA,EAAE,CAAC,GAAG,IAAIC,EAAEH,EAAEK,KAAKoB,KAAKvB,IAAIuB,KAAK,OAAOtB,EAAEoxB,QAAQrxB,EAAEC,EAAEqxB,OAAOhwB,EAAEiwB,YAAYxxB,GAAGE,EAAEuxB,QAAQzvB,EAAE0vB,iBAAiBxxB,GAAGA,EAAEyxB,OAAO,IAAIxxB,EAAEyxB,OAAO1xB,GAAGA,EAAE2xB,UAAU,IAAIvxB,EAAEwxB,eAAe5xB,GAAGA,EAAEoC,KAAK,SAAQ,SAASvC,GAAGD,GAAE,WAAWI,EAAEyxB,OAAOI,aAAahyB,GAAGG,EAAEqM,KAAK,OAAOxM,EAAE,GAAE,IAAGG,EAAEoC,KAAK,QAAO,WAAWpC,EAAE2xB,UAAUzf,SAAS,IAAGlS,CAAC,CAAC,OAAOD,EAAEC,EAAEH,GAAGG,EAAEkB,UAAU4wB,WAAW,SAASlyB,GAAG,OAAO0B,KAAKiwB,QAAQQ,eAAenyB,EAAE0B,IAAI,EAAEtB,EAAEkB,UAAU8wB,YAAY,SAASpyB,GAAG,OAAO0B,KAAKiwB,QAAQU,gBAAgBryB,EAAE0B,IAAI,EAAEtB,EAAEkB,UAAUgxB,UAAU,SAAStyB,EAAEC,EAAEC,GAAG,OAAOwB,KAAK6wB,aAAaD,UAAU,CAACE,OAAOxyB,EAAEyyB,QAAQxyB,EAAEyyB,YAAYxyB,GAAGwB,IAAI,EAAEtB,EAAEkB,UAAUqxB,SAAS,SAAS3yB,EAAEC,GAAG,IAAIE,EAAEuB,KAAKtB,EAAEF,GAAG,WAAW,IAAIF,EAAE,IAAI0D,MAAM,2BAA2B,MAAM1D,EAAEsT,KAAK,mBAAmBtT,CAAC,CAAvF,IAA4F,OAAOI,EAAEwyB,OAAO5yB,GAAE,SAASE,GAAGA,EAAEE,EAAEyyB,iBAAiB7yB,EAAEC,GAAG8S,KAAK5S,GAAGA,EAAEsM,KAAK,QAAQ,IAAI/I,MAAM,iFAAiF,IAAGhC,IAAI,EAAEtB,EAAEkB,UAAUwxB,WAAW,SAAS9yB,GAAG,OAAOA,EAAE+S,KAAKrR,MAAMA,IAAI,EAAEtB,EAAEkB,UAAUyxB,WAAW,SAAS/yB,GAAGA,EAAEsE,WAAW,IAAIrE,EAAE,IAAIS,EAAEuP,SAAS/P,EAAE,EAAE,OAAOD,EAAE2uB,MAAM,SAAS3uB,GAAG,GAAGC,GAAGF,EAAEoC,OAAOV,KAAKK,KAAK,UAAU,CAAC,IAAI5B,EAAEH,EAAEsF,OAAOpF,EAAED,GAAGyB,KAAKK,KAAK5B,GAAGD,GAAGD,CAAC,CAAC,EAAEyB,KAAKoxB,WAAW7yB,EAAE,EAAEG,EAAEkB,UAAU+f,KAAK,SAASrhB,EAAEC,GAAG,IAAIC,EAAEwB,KAAK,OAAO,IAAIS,EAAEd,SAAQ,SAASlB,EAAEC,GAAGF,EAAEqyB,aAAalR,KAAK,CAAC2R,YAAY,SAAS/yB,GAAGE,EAAEH,EAAEA,EAAEC,GAAGA,EAAE,EAAEgzB,WAAW,SAASjzB,GAAGC,EAAEE,EAAEF,EAAED,IAAII,EAAEJ,EAAE,EAAE,GAAE,EAAEW,OAAOC,eAAeR,EAAEkB,UAAU,aAAa,CAACR,IAAI,WAAW,OAAOY,KAAK+vB,MAAM,EAAE5wB,YAAW,EAAGwC,cAAa,IAAK1C,OAAOC,eAAeR,EAAEkB,UAAU,eAAe,CAACR,IAAI,WAAW,OAAOY,KAAKiwB,OAAO,EAAE9wB,YAAW,EAAGwC,cAAa,IAAKjD,EAAEkB,UAAUgvB,WAAW,SAAStwB,EAAEC,EAAEC,GAAG,IAAIC,EAAEuB,KAAKA,KAAKqwB,UAAUmB,QAAQlzB,GAAGqhB,MAAK,SAASrhB,GAAG,GAAGA,EAAEoC,OAAO,EAAE,OAAOjC,EAAEwxB,QAAQwB,SAAQ,EAAGhzB,EAAE0xB,OAAOuB,cAAcpzB,EAAE,IAAGqhB,MAAK,WAAWlhB,EAAEsM,KAAK,WAAWvM,GAAG,IAAE,SAASF,GAAGG,EAAEwxB,QAAQ0B,UAAS,EAAGlzB,EAAEwxB,QAAQpiB,MAAMvP,EAAEG,EAAEsM,KAAK,QAAQzM,GAAGE,GAAG,GAAE,EAAEE,EAAEkB,UAAUkvB,OAAO,SAASxwB,GAAG,IAAIC,EAAEyB,KAAKA,KAAKqwB,UAAUxB,QAAQlP,MAAK,SAASrhB,GAAG,GAAGA,EAAEoC,OAAO,EAAE,OAAOnC,EAAE4xB,OAAOuB,cAAcpzB,EAAE,IAAGqhB,MAAK,WAAWphB,EAAEqzB,WAAWtzB,EAAE,IAAE,SAASE,GAAGD,EAAEwM,KAAK,QAAQvM,GAAGF,GAAG,GAAE,EAAEI,EAAEkB,UAAUgyB,WAAW,SAAStzB,GAAG0B,KAAKmwB,OAAO0B,aAAa7xB,KAAK+K,KAAK,QAAQzM,GAAG,EAAEW,OAAOC,eAAeR,EAAEkB,UAAU,mBAAmB,CAACR,IAAI,WAAW,OAAOY,KAAKiwB,QAAQ6B,gBAAgB,EAAE3yB,YAAW,EAAGwC,cAAa,IAAKjD,CAAC,CAAxxE,CAA0xEM,EAAE0P,WAAWnQ,EAAEoxB,UAAUrvB,CAAE,GAAE1B,KAAKoB,KAAKxB,EAAE,IAAI8O,aAAa,EAAE,SAAShP,EAAEC,EAAEC,IAAG,SAAUF,EAAEC,IAAI,SAASD,GAAK,aAAa,IAAIA,EAAEgP,aAAa,CAAC,IAAI7O,EAAEC,EAAE,EAAEM,EAAE,CAAC,EAAEe,GAAE,EAAGS,EAAElC,EAAE2b,SAASxZ,EAAExB,OAAO+f,gBAAgB/f,OAAO+f,eAAe1gB,GAAGmC,EAAEA,GAAGA,EAAEsJ,WAAWtJ,EAAEnC,EAAE,qBAAqB,CAAC,EAAEsE,SAAShE,KAAKN,EAAEkzB,SAAS/yB,EAAE,SAASH,GAAGC,EAAE2C,UAAS,WAAWvC,EAAEL,EAAE,GAAE,EAAE,WAAW,GAAGA,EAAEyzB,cAAczzB,EAAE0zB,cAAc,CAAC,IAAIzzB,GAAE,EAAGC,EAAEF,EAAE2zB,UAAU,OAAO3zB,EAAE2zB,UAAU,WAAW1zB,GAAE,CAAE,EAAED,EAAEyzB,YAAY,GAAG,KAAKzzB,EAAE2zB,UAAUzzB,EAAED,CAAC,CAAC,CAAhJ,GAAoJ,WAAW,IAAIA,EAAE,gBAAgBgG,KAAK2tB,SAAS,IAAI1zB,EAAE,SAASA,GAAGA,EAAE2zB,SAAS7zB,GAAG,iBAAiBE,EAAEmE,MAAM,IAAInE,EAAEmE,KAAKW,QAAQ/E,IAAII,GAAGH,EAAEmE,KAAKL,MAAM/D,EAAEmC,QAAQ,EAAEpC,EAAE8zB,iBAAiB9zB,EAAE8zB,iBAAiB,UAAU5zB,GAAE,GAAIF,EAAE+zB,YAAY,YAAY7zB,GAAGC,EAAE,SAASD,GAAGF,EAAEyzB,YAAYxzB,EAAEC,EAAE,IAAI,CAAC,CAAnR,GAAuRF,EAAEg0B,eAAe,WAAW,IAAIh0B,EAAE,IAAIg0B,eAAeh0B,EAAEi0B,MAAMN,UAAU,SAAS3zB,GAAGK,EAAEL,EAAEqE,KAAK,EAAElE,EAAE,SAASF,GAAGD,EAAEk0B,MAAMT,YAAYxzB,EAAE,CAAC,CAAlH,GAAsHiC,GAAG,uBAAuBA,EAAEyoB,cAAc,UAAU,WAAW,IAAI3qB,EAAEkC,EAAEiyB,gBAAgBh0B,EAAE,SAASF,GAAG,IAAIC,EAAEgC,EAAEyoB,cAAc,UAAUzqB,EAAEk0B,mBAAmB,WAAW/zB,EAAEJ,GAAGC,EAAEk0B,mBAAmB,KAAKp0B,EAAEq0B,YAAYn0B,GAAGA,EAAE,IAAI,EAAEF,EAAEs0B,YAAYp0B,EAAE,CAAC,CAA1L,GAA8LC,EAAE,SAASH,GAAGyL,WAAWpL,EAAE,EAAEL,EAAE,EAAEmC,EAAE6M,aAAa,SAAShP,GAAG,mBAAmBA,IAAIA,EAAE,IAAI2B,SAAS,GAAG3B,IAAI,IAAI,IAAIC,EAAE,IAAIoI,MAAMZ,UAAUrF,OAAO,GAAGlC,EAAE,EAAEA,EAAED,EAAEmC,OAAOlC,IAAID,EAAEC,GAAGuH,UAAUvH,EAAE,GAAG,IAAIuB,EAAE,CAACgP,SAASzQ,EAAEu0B,KAAKt0B,GAAG,OAAOS,EAAEN,GAAGqB,EAAEtB,EAAEC,GAAGA,GAAG,EAAE+B,EAAE8M,eAAezO,CAAC,CAAC,SAASA,EAAER,UAAUU,EAAEV,EAAE,CAAC,SAASK,EAAEL,GAAG,GAAGyB,EAAEgK,WAAWpL,EAAE,EAAEL,OAAO,CAAC,IAAIC,EAAES,EAAEV,GAAG,GAAGC,EAAE,CAACwB,GAAE,EAAG,KAAK,SAASzB,GAAG,IAAIC,EAAED,EAAEyQ,SAAStQ,EAAEH,EAAEu0B,KAAK,OAAOp0B,EAAEiC,QAAQ,KAAK,EAAEnC,IAAI,MAAM,KAAK,EAAEA,EAAEE,EAAE,IAAI,MAAM,KAAK,EAAEF,EAAEE,EAAE,GAAGA,EAAE,IAAI,MAAM,KAAK,EAAEF,EAAEE,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAI,MAAM,QAAQF,EAAEoG,WAArhD,EAA6hDlG,GAAG,CAA3K,CAA6KF,EAAE,CAAC,QAAQO,EAAER,GAAGyB,GAAE,CAAE,CAAC,CAAC,CAAC,CAAC,CAA1jD,CAA4jD,oBAAoBwM,UAAK,IAASjO,EAAE0B,KAAK1B,EAAEiO,KAAM,GAAE3N,KAAKoB,KAAKxB,EAAE,GAAGA,EAAE,GAAG,EAAE,SAASF,EAAEC,EAAEC,GAAGF,EAAED,QAAQK,EAAE,IAAID,EAAED,EAAE,IAAIkP,aAAa,SAAShP,IAAID,EAAEG,KAAKoB,KAAK,CAACxB,EAAE,EAAFA,CAAKE,EAAED,GAAGC,EAAE6P,SAAS/P,EAAE,IAAIE,EAAE8P,SAAShQ,EAAE,IAAIE,EAAE+P,OAAOjQ,EAAE,IAAIE,EAAEgQ,UAAUlQ,EAAE,IAAIE,EAAEiQ,YAAYnQ,EAAE,IAAIE,EAAE4P,OAAO5P,EAAEA,EAAEkB,UAAUyR,KAAK,SAAS/S,EAAEC,GAAG,IAAIC,EAAEwB,KAAK,SAAStB,EAAEH,GAAGD,EAAEsC,WAAU,IAAKtC,EAAE+D,MAAM9D,IAAIC,EAAEmvB,OAAOnvB,EAAEmvB,OAAO,CAAC,SAAS3uB,IAAIR,EAAEmC,UAAUnC,EAAEqvB,QAAQrvB,EAAEqvB,QAAQ,CAACrvB,EAAEkM,GAAG,OAAOhM,GAAGJ,EAAEoM,GAAG,QAAQ1L,GAAGV,EAAEw0B,UAAUv0B,IAAG,IAAKA,EAAE4C,MAAM3C,EAAEkM,GAAG,MAAMlK,GAAGhC,EAAEkM,GAAG,QAAQjK,IAAI,IAAIV,GAAE,EAAG,SAASS,IAAIT,IAAIA,GAAE,EAAGzB,EAAE6C,MAAM,CAAC,SAASV,IAAIV,IAAIA,GAAE,EAAG,mBAAmBzB,EAAEsS,SAAStS,EAAEsS,UAAU,CAAC,SAAS9R,EAAER,GAAG,GAAGK,IAAI,IAAIF,EAAE4P,cAAcrO,KAAK,SAAS,MAAM1B,CAAC,CAAC,SAASK,IAAIH,EAAEqM,eAAe,OAAOnM,GAAGJ,EAAEuM,eAAe,QAAQ7L,GAAGR,EAAEqM,eAAe,MAAMrK,GAAGhC,EAAEqM,eAAe,QAAQpK,GAAGjC,EAAEqM,eAAe,QAAQ/L,GAAGR,EAAEuM,eAAe,QAAQ/L,GAAGN,EAAEqM,eAAe,MAAMlM,GAAGH,EAAEqM,eAAe,QAAQlM,GAAGL,EAAEuM,eAAe,QAAQlM,EAAE,CAAC,OAAOH,EAAEkM,GAAG,QAAQ5L,GAAGR,EAAEoM,GAAG,QAAQ5L,GAAGN,EAAEkM,GAAG,MAAM/L,GAAGH,EAAEkM,GAAG,QAAQ/L,GAAGL,EAAEoM,GAAG,QAAQ/L,GAAGL,EAAEyM,KAAK,OAAOvM,GAAGF,CAAC,CAAC,EAAE,SAASA,EAAEC,GAAG,IAAIC,EAAE,CAAC,EAAEoE,SAAStE,EAAED,QAAQsI,MAAM4E,SAAS,SAASjN,GAAG,MAAM,kBAAkBE,EAAEI,KAAKN,EAAE,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,aAAaD,EAAE4D,WAAW,SAAS7D,GAAG,IAAIC,EAAEO,EAAER,GAAGE,EAAED,EAAE,GAAGE,EAAEF,EAAE,GAAG,OAAO,GAAGC,EAAEC,GAAG,EAAEA,CAAC,EAAEF,EAAEqL,YAAY,SAAStL,GAAG,IAAI,IAAIC,EAAEC,EAAEM,EAAER,GAAGG,EAAED,EAAE,GAAGuB,EAAEvB,EAAE,GAAGgC,EAAE,IAAIxB,EAAE,GAAGP,EAAEsB,GAAG,EAAEA,GAAGU,EAAE,EAAE9B,EAAEoB,EAAE,EAAEtB,EAAE,EAAEA,EAAE6B,EAAE,EAAEA,EAAE3B,EAAE2B,GAAG,EAAE/B,EAAEG,EAAEJ,EAAE0F,WAAW1D,KAAK,GAAG5B,EAAEJ,EAAE0F,WAAW1D,EAAE,KAAK,GAAG5B,EAAEJ,EAAE0F,WAAW1D,EAAE,KAAK,EAAE5B,EAAEJ,EAAE0F,WAAW1D,EAAE,IAAIE,EAAEC,KAAKlC,GAAG,GAAG,IAAIiC,EAAEC,KAAKlC,GAAG,EAAE,IAAIiC,EAAEC,KAAK,IAAIlC,EAAE,OAAO,IAAIwB,IAAIxB,EAAEG,EAAEJ,EAAE0F,WAAW1D,KAAK,EAAE5B,EAAEJ,EAAE0F,WAAW1D,EAAE,KAAK,EAAEE,EAAEC,KAAK,IAAIlC,GAAG,IAAIwB,IAAIxB,EAAEG,EAAEJ,EAAE0F,WAAW1D,KAAK,GAAG5B,EAAEJ,EAAE0F,WAAW1D,EAAE,KAAK,EAAE5B,EAAEJ,EAAE0F,WAAW1D,EAAE,KAAK,EAAEE,EAAEC,KAAKlC,GAAG,EAAE,IAAIiC,EAAEC,KAAK,IAAIlC,GAAGiC,CAAC,EAAEjC,EAAE8F,cAAc,SAAS/F,GAAG,IAAI,IAAIC,EAAEC,EAAEF,EAAEoC,OAAOhC,EAAEF,EAAE,EAAEQ,EAAE,GAAGe,EAAE,EAAES,EAAEhC,EAAEE,EAAEqB,EAAES,EAAET,GAAG,MAAMf,EAAEqB,KAAKC,EAAEhC,EAAEyB,EAAEA,EAAE,MAAMS,EAAEA,EAAET,EAAE,QAAQ,OAAO,IAAIrB,GAAGH,EAAED,EAAEE,EAAE,GAAGQ,EAAEqB,KAAK5B,EAAEF,GAAG,GAAGE,EAAEF,GAAG,EAAE,IAAI,OAAO,IAAIG,IAAIH,GAAGD,EAAEE,EAAE,IAAI,GAAGF,EAAEE,EAAE,GAAGQ,EAAEqB,KAAK5B,EAAEF,GAAG,IAAIE,EAAEF,GAAG,EAAE,IAAIE,EAAEF,GAAG,EAAE,IAAI,MAAMS,EAAEuH,KAAK,GAAG,EAAE,IAAI,IAAI9H,EAAE,GAAGC,EAAE,GAAGM,EAAE,oBAAoB8C,WAAWA,WAAW6E,MAAM5G,EAAE,mEAAmES,EAAE,EAAaA,EAATT,KAAeS,EAAE/B,EAAE+B,GAAGT,EAAES,GAAG9B,EAAEqB,EAAEiE,WAAWxD,IAAIA,EAAE,SAAS1B,EAAER,GAAG,IAAIC,EAAED,EAAEoC,OAAO,GAAGnC,EAAE,EAAE,EAAE,MAAM,IAAIyD,MAAM,kDAAkD,IAAIxD,EAAEF,EAAEgF,QAAQ,KAAK,OAAO,IAAI9E,IAAIA,EAAED,GAAG,CAACC,EAAEA,IAAID,EAAE,EAAE,EAAEC,EAAE,EAAE,CAAC,SAASG,EAAEL,GAAG,OAAOG,EAAEH,GAAG,GAAG,IAAIG,EAAEH,GAAG,GAAG,IAAIG,EAAEH,GAAG,EAAE,IAAIG,EAAE,GAAGH,EAAE,CAAC,SAASgC,EAAEhC,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAEC,EAAE,GAAGM,EAAET,EAAES,EAAER,EAAEQ,GAAG,EAAEP,GAAGH,EAAEU,IAAI,GAAG,WAAWV,EAAEU,EAAE,IAAI,EAAE,QAAQ,IAAIV,EAAEU,EAAE,IAAIN,EAAE2B,KAAK1B,EAAEF,IAAI,OAAOC,EAAE6H,KAAK,GAAG,CAAC7H,EAAE,IAAIsF,WAAW,IAAI,GAAGtF,EAAE,IAAIsF,WAAW,IAAI,EAAE,EAAE,SAAS1F,EAAEC,GAAGA,EAAE6J,KAAK,SAAS9J,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAIM,EAAEe,EAAES,EAAE,EAAE9B,EAAED,EAAE,EAAEgC,GAAG,GAAGD,GAAG,EAAE1B,EAAE2B,GAAG,EAAE9B,GAAG,EAAE2B,EAAE9B,EAAEE,EAAE,EAAE,EAAEqC,EAAEvC,GAAG,EAAE,EAAEsB,EAAExB,EAAEC,EAAE+B,GAAG,IAAIA,GAAGS,EAAE/B,EAAEc,GAAG,IAAInB,GAAG,EAAEmB,KAAKnB,EAAEA,GAAG6B,EAAE7B,EAAE,EAAEK,EAAE,IAAIA,EAAEV,EAAEC,EAAE+B,GAAGA,GAAGS,EAAEpC,GAAG,GAAG,IAAIoB,EAAEf,GAAG,IAAIL,GAAG,EAAEK,KAAKL,EAAEA,GAAGF,EAAEE,EAAE,EAAEoB,EAAE,IAAIA,EAAEzB,EAAEC,EAAE+B,GAAGA,GAAGS,EAAEpC,GAAG,GAAG,GAAG,IAAIK,EAAEA,EAAE,EAAEF,MAAM,CAAC,GAAGE,IAAIyB,EAAE,OAAOV,EAAEgzB,IAAI,KAAKjzB,GAAG,EAAE,GAAGC,GAAGwE,KAAKqD,IAAI,EAAEnJ,GAAGO,GAAGF,CAAC,CAAC,OAAOgB,GAAG,EAAE,GAAGC,EAAEwE,KAAKqD,IAAI,EAAE5I,EAAEP,EAAE,EAAEF,EAAE8D,MAAM,SAAS/D,EAAEC,EAAEC,EAAEC,EAAEC,EAAEM,GAAG,IAAIe,EAAES,EAAEC,EAAE3B,EAAE,EAAEE,EAAEN,EAAE,EAAEC,GAAG,GAAGG,GAAG,EAAEwB,EAAE3B,GAAG,EAAEoC,EAAE,KAAKrC,EAAE6F,KAAKqD,IAAI,GAAG,IAAIrD,KAAKqD,IAAI,GAAG,IAAI,EAAE9H,EAAErB,EAAE,EAAEO,EAAE,EAAED,EAAEN,EAAE,GAAG,EAAEwE,EAAE1E,EAAE,GAAG,IAAIA,GAAG,EAAEA,EAAE,EAAE,EAAE,EAAE,IAAIA,EAAEgG,KAAKyuB,IAAIz0B,GAAG4E,MAAM5E,IAAIA,IAAI,KAAKiC,EAAE2C,MAAM5E,GAAG,EAAE,EAAEwB,EAAEpB,IAAIoB,EAAEwE,KAAKoE,MAAMpE,KAAK6X,IAAI7d,GAAGgG,KAAK0uB,KAAK10B,GAAGkC,EAAE8D,KAAKqD,IAAI,GAAG7H,IAAI,IAAIA,IAAIU,GAAG,IAAIlC,GAAGwB,EAAEO,GAAG,EAAES,EAAEN,EAAEM,EAAEwD,KAAKqD,IAAI,EAAE,EAAEtH,IAAIG,GAAG,IAAIV,IAAIU,GAAG,GAAGV,EAAEO,GAAG3B,GAAG6B,EAAE,EAAET,EAAEpB,GAAGoB,EAAEO,GAAG,GAAGE,GAAGjC,EAAEkC,EAAE,GAAG8D,KAAKqD,IAAI,EAAElJ,GAAGqB,GAAGO,IAAIE,EAAEjC,EAAEgG,KAAKqD,IAAI,EAAEtH,EAAE,GAAGiE,KAAKqD,IAAI,EAAElJ,GAAGqB,EAAE,IAAIrB,GAAG,EAAEJ,EAAEE,EAAEsB,GAAG,IAAIU,EAAEV,GAAGf,EAAEyB,GAAG,IAAI9B,GAAG,GAAG,IAAIqB,EAAEA,GAAGrB,EAAE8B,EAAE1B,GAAGJ,EAAEI,EAAE,EAAER,EAAEE,EAAEsB,GAAG,IAAIC,EAAED,GAAGf,EAAEgB,GAAG,IAAIjB,GAAG,GAAGR,EAAEE,EAAEsB,EAAEf,IAAI,IAAIkE,CAAC,CAAC,EAAE,SAAS3E,EAAEC,GAAG,IAAIC,EAAE,CAAC,EAAEoE,SAAStE,EAAED,QAAQsI,MAAM4E,SAAS,SAASjN,GAAG,MAAM,kBAAkBE,EAAEI,KAAKN,EAAE,CAAC,EAAE,SAASA,EAAEC,GAAG,EAAE,SAASD,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAED,EAAE,GAAGoG,OAAOlG,EAAEF,EAAE,IAAI,SAASQ,EAAEV,EAAEC,EAAEC,GAAGF,EAAEkE,KAAKjE,EAAEC,EAAE,CAACF,EAAED,QAAQ,WAAW,SAASC,KAAK,SAASA,EAAEC,GAAG,KAAKD,aAAaC,GAAG,MAAM,IAAI0D,UAAU,oCAAoC,CAA3F,CAA6FjC,KAAK1B,GAAG0B,KAAKstB,KAAK,KAAKttB,KAAKwtB,KAAK,KAAKxtB,KAAKU,OAAO,CAAC,CAAC,OAAOpC,EAAEsB,UAAUS,KAAK,SAAS/B,GAAG,IAAIC,EAAE,CAACoE,KAAKrE,EAAEsQ,KAAK,MAAM5O,KAAKU,OAAO,EAAEV,KAAKwtB,KAAK5e,KAAKrQ,EAAEyB,KAAKstB,KAAK/uB,EAAEyB,KAAKwtB,KAAKjvB,IAAIyB,KAAKU,MAAM,EAAEpC,EAAEsB,UAAUutB,QAAQ,SAAS7uB,GAAG,IAAIC,EAAE,CAACoE,KAAKrE,EAAEsQ,KAAK5O,KAAKstB,MAAM,IAAIttB,KAAKU,SAASV,KAAKwtB,KAAKjvB,GAAGyB,KAAKstB,KAAK/uB,IAAIyB,KAAKU,MAAM,EAAEpC,EAAEsB,UAAUkU,MAAM,WAAW,GAAG,IAAI9T,KAAKU,OAAO,CAAC,IAAIpC,EAAE0B,KAAKstB,KAAK3qB,KAAK,OAAO,IAAI3C,KAAKU,OAAOV,KAAKstB,KAAKttB,KAAKwtB,KAAK,KAAKxtB,KAAKstB,KAAKttB,KAAKstB,KAAK1e,OAAO5O,KAAKU,OAAOpC,CAAC,CAAC,EAAEA,EAAEsB,UAAU2tB,MAAM,WAAWvtB,KAAKstB,KAAKttB,KAAKwtB,KAAK,KAAKxtB,KAAKU,OAAO,CAAC,EAAEpC,EAAEsB,UAAU2G,KAAK,SAASjI,GAAG,GAAG,IAAI0B,KAAKU,OAAO,MAAM,GAAG,IAAI,IAAInC,EAAEyB,KAAKstB,KAAK9uB,EAAE,GAAGD,EAAEoE,KAAKpE,EAAEA,EAAEqQ,MAAMpQ,GAAGF,EAAEC,EAAEoE,KAAK,OAAOnE,CAAC,EAAEF,EAAEsB,UAAU+F,OAAO,SAASrH,GAAG,GAAG,IAAI0B,KAAKU,OAAO,OAAOjC,EAAEqG,MAAM,GAAG,GAAG,IAAI9E,KAAKU,OAAO,OAAOV,KAAKstB,KAAK3qB,KAAK,IAAI,IAAIpE,EAAEE,EAAE8G,YAAYjH,IAAI,GAAGE,EAAEwB,KAAKstB,KAAK5uB,EAAE,EAAEF,GAAGQ,EAAER,EAAEmE,KAAKpE,EAAEG,GAAGA,GAAGF,EAAEmE,KAAKjC,OAAOlC,EAAEA,EAAEoQ,KAAK,OAAOrQ,CAAC,EAAED,CAAC,CAAt9B,GAA09BI,GAAGA,EAAE2H,SAAS3H,EAAE2H,QAAQ6sB,SAAS50B,EAAED,QAAQuB,UAAUlB,EAAE2H,QAAQ6sB,QAAQ,WAAW,IAAI50B,EAAEI,EAAE2H,QAAQ,CAAC3F,OAAOV,KAAKU,SAAS,OAAOV,KAAK0B,YAAYya,KAAK,IAAI7d,CAAC,EAAE,EAAE,SAASA,EAAEC,GAAG,EAAE,SAASD,EAAEC,EAAEC,IAAG,SAAUD,GAAG,SAASC,EAAEF,GAAG,IAAI,IAAIC,EAAE40B,aAAa,OAAM,CAAE,CAAC,MAAM70B,GAAG,OAAM,CAAE,CAAC,IAAIE,EAAED,EAAE40B,aAAa70B,GAAG,OAAO,MAAME,GAAG,SAASgF,OAAOhF,GAAGwE,aAAa,CAAC1E,EAAED,QAAQ,SAASC,EAAEC,GAAG,GAAGC,EAAE,iBAAiB,OAAOF,EAAE,IAAIG,GAAE,EAAG,OAAO,WAAW,IAAIA,EAAE,CAAC,GAAGD,EAAE,oBAAoB,MAAM,IAAIwD,MAAMzD,GAAGC,EAAE,oBAAoB0P,QAAQC,MAAM5P,GAAG2P,QAAQ+O,KAAK1e,GAAGE,GAAE,CAAE,CAAC,OAAOH,EAAEqG,MAAM3E,KAAK+F,UAAU,CAAC,CAAE,GAAEnH,KAAKoB,KAAKxB,EAAE,GAAG,EAAE,SAASF,EAAEC,EAAEC,GAAG,aAAaF,EAAED,QAAQW,EAAE,IAAIP,EAAED,EAAE,IAAIE,EAAEF,EAAE,GAAG,SAASQ,EAAEV,GAAG,KAAK0B,gBAAgBhB,GAAG,OAAO,IAAIA,EAAEV,GAAGG,EAAEG,KAAKoB,KAAK1B,EAAE,CAACI,EAAE6B,SAAS/B,EAAE,GAAGE,EAAE6B,SAASvB,EAAEP,GAAGO,EAAEY,UAAUgvB,WAAW,SAAStwB,EAAEC,EAAEC,GAAGA,EAAE,KAAKF,EAAE,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAGF,EAAED,QAAQG,EAAE,GAAG,EAAE,SAASF,EAAEC,EAAEC,GAAGF,EAAED,QAAQG,EAAE,EAAE,EAAE,SAASF,EAAEC,EAAEC,GAAGF,EAAED,QAAQG,EAAE,IAAIkQ,SAAS,EAAE,SAASpQ,EAAEC,EAAEC,GAAGF,EAAED,QAAQG,EAAE,IAAImQ,WAAW,EAAE,SAASrQ,EAAEC,EAAEC,GAAG,aAAaS,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAKhB,EAAEyxB,YAAY,SAAS1xB,GAAG,IAAIC,EAAE,CAAC60B,UAAU,IAAIC,mBAAc,EAAOC,oBAAe,EAAOC,MAAM,IAAI1pB,MAAK,EAAG2pB,WAAU,EAAGC,aAAY,EAAGC,UAAS,EAAGC,aAAQ,EAAOC,UAAS,EAAGC,aAAa,EAAEC,aAAY,EAAGC,OAAO,IAAIC,UAAU,CAAC,EAAEhI,SAAI,EAAOiI,kBAAiB,EAAGC,OAAO,OAAOC,YAAW,EAAGC,iBAAiB,OAAOC,aAAY,GAAI,IAAI,IAAI71B,KAAKF,IAAIA,EAAE,CAAC,GAAGA,EAAEA,EAAEuB,eAAerB,KAAKmI,MAAM4E,QAAQjN,EAAEE,IAAID,EAAEC,GAAG,GAAGmH,OAAOrH,EAAEE,IAAID,EAAEC,GAAGF,EAAEE,IAAI,OAAOD,CAAC,CAAC,EAAE,SAASD,EAAEC,EAAEC,GAAG,aAAaS,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAKhB,EAAE2xB,iBAAiB,SAAS5xB,GAAG,IAAIC,EAAED,EAAEg2B,WAAW91B,EAAE,CAAC+1B,yBAAwB,EAAGC,0BAAyB,EAAGC,qBAAgB,EAAOxzB,OAAM,EAAG0wB,UAAS,EAAG9jB,WAAM,EAAOulB,UAAU90B,EAAEg2B,WAAWlB,UAAUpH,IAAI1tB,EAAEg2B,WAAWtI,IAAI0I,WAAW,GAAGC,WAAW,GAAGC,YAAY,GAAGC,WAAW,GAAGlB,aAAQ,EAAOlC,SAAQ,EAAGK,iBAAiB,EAAEgD,kBAAkB,IAAI,OAAOv2B,EAAE80B,gBAAgB70B,EAAE+1B,yBAAwB,GAAIh2B,EAAE+0B,iBAAiB90B,EAAEg2B,0BAAyB,GAAIh2B,CAAC,CAAC,EAAE,SAASF,EAAEC,EAAEC,GAAG,cAAa,SAAUF,GAAG,IAAIG,EAAEuB,MAAMA,KAAKovB,WAAW,WAAW,IAAI9wB,EAAEW,OAAOowB,gBAAgB,CAACttB,UAAU,cAAc4E,OAAO,SAASrI,EAAEC,GAAGD,EAAEyD,UAAUxD,CAAC,GAAG,SAASD,EAAEC,GAAG,IAAI,IAAIC,KAAKD,EAAEA,EAAEsB,eAAerB,KAAKF,EAAEE,GAAGD,EAAEC,GAAG,EAAE,OAAO,SAASD,EAAEC,GAAG,SAASC,IAAIuB,KAAK0B,YAAYnD,CAAC,CAACD,EAAEC,EAAEC,GAAGD,EAAEqB,UAAU,OAAOpB,EAAES,OAAOQ,OAAOjB,IAAIC,EAAEmB,UAAUpB,EAAEoB,UAAU,IAAInB,EAAE,CAAC,CAAvS,GAA2SC,EAAEsB,MAAMA,KAAK6vB,iBAAiB,SAASvxB,GAAG,OAAOA,GAAGA,EAAEkB,WAAWlB,EAAE,CAACqB,QAAQrB,EAAE,EAAEW,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAK,IAAIP,EAAER,EAAE,IAAIuB,EAAErB,EAAEF,EAAE,KAAKgC,EAAEhC,EAAE,IAAIiC,EAAE/B,EAAEF,EAAE,KAAKM,EAAEN,EAAE,IAAIG,EAAEH,EAAE,IAAI8B,EAAE9B,EAAE,IAAIuC,EAAErC,EAAEF,EAAE,KAAKsB,EAAEpB,EAAEF,EAAE,KAAKO,EAAE,SAASR,GAAG,SAASC,IAAI,IAAIF,EAAE,OAAOC,GAAGA,EAAEoG,MAAM3E,KAAK+F,YAAY/F,KAAK,OAAO1B,EAAEy2B,SAAS,IAAIz0B,EAAE00B,SAAS12B,EAAE22B,WAAW32B,EAAE42B,YAAW,EAAG52B,EAAE62B,kBAAa,EAAO72B,EAAE82B,aAAY,EAAG92B,EAAE+2B,mBAAc,EAAO/2B,CAAC,CAAC,OAAOG,EAAED,EAAED,GAAGC,EAAEoB,UAAUivB,MAAM,WAAW,IAAIvwB,EAAE0B,KAAK,GAAGA,KAAKiwB,QAAQqF,eAAet1B,KAAKiwB,QAAQqF,cAAc50B,OAAO,EAAE,CAAC,IAAInC,EAAEyB,KAAKiwB,QAAQqF,cAAc,OAAOt1B,KAAKiwB,QAAQqF,mBAAc,EAAOt1B,KAAKwxB,QAAQjzB,GAAE,GAAIohB,MAAK,SAASphB,GAAG,OAAOD,EAAE2xB,QAAQqF,eAAeh3B,EAAE2xB,QAAQqF,cAAc50B,OAAO,EAAEX,EAAEJ,QAAQqgB,OAAOlgB,EAAEH,QAAQ8vB,eAAenxB,EAAE2xB,QAAQ6B,iBAAiBxzB,EAAE2xB,QAAQqF,cAAc1yB,aAAa7C,EAAEJ,QAAQsV,QAAQ1W,EAAE,GAAE,CAAC,OAAOwB,EAAEJ,QAAQsV,QAAQ,GAAG,EAAEzW,EAAEoB,UAAUgR,QAAQ,WAAW,OAAO7Q,EAAEJ,QAAQsV,SAAS,EAAEhW,OAAOC,eAAeV,EAAEoB,UAAU,cAAc,CAACR,IAAI,WAAW,YAAO,IAASY,KAAKm1B,eAAen1B,KAAKm1B,aAAan1B,KAAKi1B,UAAU/pB,UAAU,OAAOxK,OAAO,GAAGV,KAAKm1B,YAAY,EAAEh2B,YAAW,EAAGwC,cAAa,IAAK1C,OAAOC,eAAeV,EAAEoB,UAAU,eAAe,CAACR,IAAI,WAAW,YAAO,IAASY,KAAKq1B,gBAAgBr1B,KAAKq1B,cAAcr1B,KAAKi1B,UAAU/pB,UAAU,UAAUxK,OAAO,GAAGV,KAAKq1B,aAAa,EAAEl2B,YAAW,EAAGwC,cAAa,IAAKnD,EAAEoB,UAAU4xB,QAAQ,SAASlzB,EAAEC,GAAG,IAAIC,EAAEC,EAAEuB,KAAK,YAAO,IAASzB,IAAIA,GAAE,GAAIC,EAAED,EAAED,EAAEsE,WAAWpC,EAAE+0B,YAAYj3B,EAAE0B,KAAKi1B,UAAUpE,cAAc9wB,EAAEJ,QAAQsV,UAAU0K,MAAK,WAAW,OAAOlhB,EAAEwxB,QAAQQ,eAAehyB,EAAEwxB,QAAQQ,eAAejyB,GAAGA,CAAC,IAAGmhB,MAAK,SAASrhB,GAAG,OAAOA,GAAGA,EAAEoC,OAAO,EAAEjC,EAAE+2B,WAAWl3B,EAAEC,GAAGwB,EAAEJ,QAAQsV,QAAQ,GAAG,GAAE,EAAEzW,EAAEoB,UAAU41B,WAAW,SAASl3B,EAAEC,GAAG,IAAIC,EAAEwB,KAAKvB,EAAEuB,KAAK+vB,OAAOrxB,EAAEsB,KAAKiwB,QAAQvxB,EAAEstB,KAAKvrB,EAAEd,QAAQrB,EAAEI,GAAGsB,KAAKy1B,cAAcz1B,KAAKk1B,YAAYx2B,EAAEstB,MAAMhsB,KAAKi1B,UAAUlqB,KAAK,MAAMrM,EAAEstB,KAAKhsB,KAAKk1B,YAAW,GAAIz2B,EAAEg1B,cAAc/0B,EAAE+yB,UAAUnzB,EAAEK,EAAEuwB,SAAS5wB,IAAI,IAAIU,EAAEF,EAAE42B,cAAcp3B,EAAEI,GAAG,OAAOH,GAAGS,EAAE22B,MAAMt1B,KAAKrB,EAAE42B,SAAS52B,EAAE42B,QAAQ,IAAI51B,KAAK61B,eAAel3B,EAAEowB,cAAc/vB,EAAE42B,UAAU52B,EAAE22B,MAAMj1B,OAAO,GAAGhC,EAAEiyB,gBAAgB3wB,KAAK81B,eAAe92B,EAAE22B,OAAO51B,EAAEJ,QAAQsV,QAAQjW,EAAE22B,QAAQhW,MAAK,SAASrhB,GAAG,OAAOI,EAAE+yB,SAASjzB,EAAEyxB,QAAQ0D,QAAQn1B,EAAEu3B,eAAez3B,GAAGE,EAAEw3B,oBAAoB13B,EAAE,IAAGyB,EAAEJ,QAAQsV,QAAQ,GAAG,EAAEzW,EAAEoB,UAAUo2B,oBAAoB,SAAS13B,GAAG,GAAG0B,KAAK+vB,OAAO2D,SAAS1zB,KAAK+vB,OAAO4D,QAAQ3zB,KAAKiwB,QAAQ0D,QAAQ3zB,KAAK+vB,OAAO4D,QAAQ3zB,KAAKiwB,QAAQ0D,QAAQ,OAAO,CAAC,IAAI,IAAIp1B,EAAE,GAAGC,EAAE,GAAGF,EAAEoC,QAAQ,CAAC,IAAIjC,EAAEF,EAAED,EAAEwV,QAAQpV,EAAEsB,KAAK+0B,SAASkB,MAAMx3B,GAAG,GAAGC,EAAEw3B,OAAO,CAAC13B,EAAEE,EAAEy3B,MAAM53B,EAAE,GAAG,KAAK,CAACA,EAAEE,EAAEgC,EAAEd,QAAQlB,EAAEuB,KAAKiwB,QAAQ,CAAC,GAAGjwB,KAAK61B,eAAel3B,EAAEowB,cAAcxwB,IAAI,IAAIC,EAAEkC,OAAO,MAAM,GAAGV,KAAK+vB,OAAO4D,QAAQ3zB,KAAKiwB,QAAQ0D,QAAQ3zB,KAAK+vB,OAAO4D,QAAQ3zB,KAAKiwB,QAAQ0D,QAAQn1B,CAAC,CAAC,OAAOwB,KAAKiwB,QAAQsE,yBAAyBv0B,KAAKiwB,QAAQuE,2BAA2Bx0B,KAAKo2B,eAAep2B,KAAKq2B,eAAer2B,KAAKo1B,cAAcp1B,KAAKi1B,UAAUlqB,KAAK,SAAS/K,KAAKiwB,QAAQ0D,SAAS3zB,KAAKo1B,aAAY,GAAIp1B,KAAK+1B,eAAez3B,EAAE,EAAEE,EAAEoB,UAAUw2B,aAAa,WAAW,GAAGp2B,KAAKiwB,QAAQwE,gBAAgB,GAAGz0B,KAAKiwB,QAAQ0D,QAAQ,CAAC,IAAI,IAAIr1B,EAAE0B,KAAKiwB,QAAQ0D,QAAQp1B,EAAE,EAAEA,EAAED,EAAEoC,OAAOnC,IAAI,GAAGyB,KAAK+vB,OAAOsD,cAAc,GAAGrzB,KAAK+vB,OAAOsD,cAActX,KAAKzd,EAAEC,IAAI,CAAC,IAAIyB,KAAK+vB,OAAOuD,iBAAiBtzB,KAAK+vB,OAAOuD,eAAevX,KAAKzd,EAAEC,IAAI,SAASyB,KAAKiwB,QAAQwE,gBAAgBp0B,KAAK9B,EAAE,MAAMyB,KAAKiwB,QAAQwE,gBAAgBp0B,KAAK9B,QAAQyB,KAAK+vB,OAAOuD,eAAetzB,KAAK+vB,OAAOuD,eAAevX,KAAKzd,EAAEC,KAAKyB,KAAKiwB,QAAQwE,gBAAgBp0B,KAAK9B,GAAGyB,KAAKiwB,QAAQwE,gBAAgBp0B,KAAK9B,GAAGyB,KAAKiwB,QAAQ0D,QAAQh1B,EAAEswB,YAAYjvB,KAAKiwB,QAAQ0D,QAAQ3zB,KAAKiwB,QAAQwE,gBAAgB,CAAC,EAAEj2B,EAAEoB,UAAUm2B,eAAe,SAASz3B,GAAG,GAAG,SAAS0B,KAAK+vB,OAAOmE,OAAO,OAAO51B,EAAE,IAAIC,EAAEyB,KAAK+0B,SAASuB,gBAAgBh4B,GAAG,OAAO0B,KAAK61B,eAAel3B,EAAEowB,cAAcxwB,EAAEq3B,UAAU,QAAQ51B,KAAK+vB,OAAOmE,OAAO31B,EAAEg4B,UAAUx1B,EAAEpB,QAAQpB,EAAEg4B,UAAUv2B,KAAKi1B,UAAU,EAAEz2B,EAAEoB,UAAUi2B,eAAe,SAASt3B,GAAGA,IAAIyB,KAAKiwB,QAAQqF,cAAct1B,KAAKiwB,QAAQqF,cAAch3B,EAAEqH,OAAO,CAACpH,EAAEyB,KAAKiwB,QAAQqF,gBAAgBt1B,KAAKiwB,QAAQqF,cAAc/2B,EAAE,EAAEC,EAAEoB,UAAUk2B,eAAe,SAASx3B,GAAG,IAAIC,EAAEyB,KAAK,OAAO,IAAID,EAAEJ,SAAQ,SAASnB,EAAEC,IAAI,SAASH,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,GAAGD,GAAGF,EAAEmC,OAAOhC,SAAS,GAAGF,EAAEmyB,gBAAgB,CAAC,IAAI3xB,EAAET,EAAEE,GAAGsB,EAAEvB,EAAEmyB,gBAAgB3xB,EAAER,EAAEszB,iBAAiBrzB,GAAG,GAAGA,IAAIsB,GAAGA,EAAE4f,KAAK5f,EAAE4f,MAAK,SAAS3gB,GAAGT,EAAEE,EAAE,GAAGO,EAAEV,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,QAAO,CAAC,IAAIH,EAAEE,EAAE,GAAGsB,EAAEtB,EAAEF,EAAEmC,QAAQnC,EAAEE,GAAGD,EAAEmyB,gBAAgBpyB,EAAEE,GAAGD,EAAEszB,iBAAiBrzB,GAAGA,IAAIC,GAAG,CAAC,MAAMA,GAAG,CAApR,CAAsRJ,EAAEC,EAAE0xB,QAAQ,GAAE,SAAS1xB,GAAGA,EAAEE,EAAEF,GAAGC,EAAEF,EAAE,GAAE,GAAE,EAAEE,CAAC,CAAzjI,CAA2jIQ,EAAEw3B,WAAWj4B,EAAE+xB,eAAevxB,CAAE,GAAEH,KAAKoB,KAAKxB,EAAE,GAAGoG,OAAO,EAAE,SAAStG,EAAEC,EAAEC,GAAG,aAAaS,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAA8FhB,EAAEi4B,UAArF,SAASl4B,GAAG0B,KAAKi1B,UAAU32B,EAAE0B,KAAK+vB,OAAOzxB,EAAEg2B,WAAWt0B,KAAKiwB,QAAQ3xB,EAAEuyB,YAAY,CAAe,EAAE,SAASvyB,EAAEC,EAAEC,GAAG,cAAa,SAAUF,GAAG,IAAIG,EAAEuB,MAAMA,KAAK6vB,iBAAiB,SAASvxB,GAAG,OAAOA,GAAGA,EAAEkB,WAAWlB,EAAE,CAACqB,QAAQrB,EAAE,EAAEW,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAK,IAAIb,EAAED,EAAED,EAAE,KAAKD,EAAEg3B,YAAY,SAASh3B,EAAEC,GAAG,IAAIC,EAAE,SAASF,EAAEC,GAAG,OAAOA,EAAE82B,eAAe92B,EAAE82B,cAAc50B,OAAO,EAAEpC,EAAEqH,OAAO,CAACnH,EAAE82B,cAAc/2B,IAAIA,CAAC,CAA9F,CAAgGA,EAAEC,GAAGA,EAAE82B,mBAAc,EAAO,IAAIt2B,EAAE,SAASV,EAAEC,GAAG,IAAIC,EAAEF,EAAEoC,OAAO,EAAE,GAAO,IAAIpC,EAAEE,GAAI,CAAC,KAAK,MAAM,IAAIF,EAAEE,KAAKA,IAAIA,GAAG,CAAC,OAAOA,GAAGF,EAAEoC,OAAO,GAAGnC,EAAE+2B,cAAch3B,EAAEgE,MAAM9D,EAAE,GAAGF,EAAEgE,MAAM,EAAE9D,EAAE,IAAIF,CAAC,CAAnJ,CAAqJG,EAAED,GAAGoE,SAAS,QAAQ,OAAM,IAAKpE,EAAEizB,QAAQ/yB,EAAEiB,QAAQX,GAAGA,CAAC,CAAE,GAAEJ,KAAKoB,KAAKxB,EAAE,GAAGoG,OAAO,EAAE,SAAStG,EAAEC,EAAEC,GAAG,cAAa,SAAUD,GAAG,IAAIE,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,GAAG,MAAM,iBAAiBA,GAAG,QAAQA,EAAE0F,WAAW,GAAG1F,EAAEgE,MAAM,GAAG/D,EAAEgE,SAASjE,IAAIG,EAAEH,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,GAAGA,EAAEgE,MAAM,GAAGhE,CAAC,CAAE,GAAEM,KAAKoB,KAAKxB,EAAE,GAAGoG,OAAO,EAAE,SAAStG,EAAEC,GAAGD,EAAED,QAAQ,SAASC,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEoC,QAAQ,GAAG,GAAGpC,EAAEC,IAAI,IAAID,EAAEC,IAAI,IAAID,EAAEC,IAAI,IAAID,EAAEC,IAAID,EAAEC,IAAI,IAAIA,GAAG,OAAO,GAAG,KAAKD,EAAEC,IAAID,EAAEC,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,IAAIA,GAAG,OAAO,GAAG,KAAKD,EAAEC,IAAI,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,MAAM,KAAKD,EAAEC,IAAID,EAAEC,IAAI,KAAK,KAAKD,EAAEC,IAAI,KAAKD,EAAEC,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,IAAI,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,IAAIA,GAAG,MAAM,CAAC,KAAK,KAAKD,EAAEC,IAAI,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,IAAID,EAAEC,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,IAAI,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,KAAKD,EAAEC,EAAE,IAAID,EAAEC,EAAE,IAAI,KAAK,OAAM,EAAGA,GAAG,CAAC,CAAC,OAAM,CAAE,CAAC,EAAE,SAASD,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAEuB,MAAMA,KAAK6vB,iBAAiB,SAASvxB,GAAG,OAAOA,GAAGA,EAAEkB,WAAWlB,EAAE,CAACqB,QAAQrB,EAAE,EAAEW,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAK,IAAIb,EAAED,EAAED,EAAE,KAAKD,EAAEm3B,cAAc,SAASp3B,EAAEC,GAAG,IAAIC,EAAEE,EAAEiB,QAAQrB,EAAEC,GAAGE,EAAEH,EAAE4d,MAAM1d,GAAG,MAAM,CAACm3B,MAAMl3B,EAAEm3B,QAAQn3B,EAAE6W,OAAO,GAAG,CAAC,EAAE,SAAShX,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAEuB,MAAMA,KAAK6vB,iBAAiB,SAASvxB,GAAG,OAAOA,GAAGA,EAAEkB,WAAWlB,EAAE,CAACqB,QAAQrB,EAAE,EAAEW,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAK,IAAIb,EAAED,EAAED,EAAE,KAAKQ,EAAER,EAAE,IAAIuB,EAAE,CAAC,IAAI,IAAI,KAAK,IAAI,KAAKS,EAAE,WAAW,SAASlC,EAAEA,GAAG0B,KAAKy2B,KAAKn4B,EAAE0B,KAAK02B,aAAa,CAAC,EAAE12B,KAAK22B,kBAAiB,EAAG32B,KAAK42B,wBAAmB,EAAO52B,KAAKuzB,MAAMj1B,EAAEg2B,WAAWf,MAAMvzB,KAAK6J,KAAKvL,EAAEg2B,WAAWzqB,KAAK7J,KAAK+zB,OAAOz1B,EAAEg2B,WAAWP,MAAM,CAAC,OAAO90B,OAAOC,eAAeZ,EAAEsB,UAAU,oBAAoB,CAACR,IAAI,WAAW,YAAO,IAASY,KAAK42B,qBAAqB52B,KAAK42B,mBAAmB52B,KAAKy2B,KAAKvrB,UAAU,aAAaxK,OAAO,GAAGV,KAAK42B,kBAAkB,EAAEz3B,YAAW,EAAGwC,cAAa,IAAKrD,EAAEsB,UAAUq2B,MAAM,SAAS33B,GAAG,GAAG,IAAIA,EAAEoC,QAAQV,KAAKy2B,KAAKnC,WAAWb,aAAa,IAAIn1B,EAAEuL,OAAOnJ,OAAO,MAAM,CAACy1B,MAAM,GAAGD,QAAO,GAAI,IAAI33B,EAAEyB,KAAKuzB,MAAM/0B,EAAEwB,KAAK6J,KAAK7J,KAAK+zB,QAAQ/zB,KAAKy2B,KAAK5F,aAAauC,qBAAqBzsB,OAAO,SAAS3G,KAAKy2B,KAAK5F,aAAauC,UAAUpwB,iBAAiBhD,KAAKy2B,KAAK5F,aAAauC,UAAUpzB,KAAK62B,aAAav4B,IAAI0B,KAAK82B,oBAAoB92B,KAAK22B,mBAAmB32B,KAAKy2B,KAAK1rB,KAAK,YAAY/K,KAAKy2B,KAAK5F,aAAauC,WAAWpzB,KAAK22B,kBAAiB,GAAI,IAAIl4B,EAAEuB,KAAKy2B,KAAK5F,aAAauC,UAAU10B,EAAEJ,EAAE4d,MAAMzd,GAAG,GAAG,QAAQF,EAAE,CAAC,GAAGC,EAAE,IAAI,IAAIQ,EAAE,EAAEA,EAAEN,EAAEgC,OAAO1B,IAAIN,EAAEM,GAAGN,EAAEM,GAAG6K,OAAO,MAAM,CAACssB,MAAMz3B,EAAEw3B,QAAO,EAAG,CAAC,OAAOl2B,KAAK+2B,SAASr4B,EAAEF,EAAED,EAAEE,EAAE,EAAEH,EAAEsB,UAAUm3B,SAAS,SAASz4B,EAAEC,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAE,GAAGqB,GAAE,EAAGS,EAAE,GAAGC,EAAE,EAAE3B,EAAER,EAAEoC,OAAOD,EAAE3B,EAAE2B,IAAI,CAAC,IAAI9B,EAAEL,EAAEmC,IAAIV,GAAGxB,IAAII,EAAEK,EAAEkwB,SAASvwB,IAAI,IAAI2B,EAAE3B,EAAE+B,OAAO,GAAGX,EAAEC,KAAKg3B,aAAar4B,IAAIoB,GAAE,EAAGS,GAAG/B,GAAGE,EAAEA,EAAEiF,OAAO,EAAEtD,EAAE,IAAIE,EAAER,KAAKi3B,YAAYz2B,GAAGjC,IAAIiC,EAAExB,EAAEmwB,UAAU3uB,IAAI9B,EAAE2B,KAAKG,GAAGA,EAAE,IAAIA,GAAG/B,EAAEE,MAAM,CAAC,GAAG,IAAI2B,GAAG3B,IAAIqB,KAAKuzB,MAAMvzB,KAAKuzB,MAAM,CAAC70B,EAAE2B,KAAK,IAAI,QAAQ,CAAC,GAAGL,KAAKk3B,YAAYv4B,GAAG,CAAC,GAAGA,EAAEA,EAAEiF,OAAO,GAAG5D,KAAKg3B,aAAar4B,GAAG,CAACA,EAAEA,EAAEw4B,UAAU,EAAEx4B,EAAE4E,YAAY/E,IAAIG,EAAEqB,KAAKi3B,YAAYt4B,GAAGD,EAAE2B,KAAK1B,GAAG,QAAQ,CAAC,IAAI,IAAIA,EAAE2E,QAAQ9E,GAAG,CAAC,IAAI,IAAIuC,EAAE,EAAEjB,EAAE,GAAGf,EAAE,EAAEkE,EAAEtE,EAAEI,EAAEkE,EAAEvC,OAAO3B,IAAI,CAAC,IAAImE,EAAED,EAAElE,GAAGmE,IAAI1E,GAAGsB,IAAIE,KAAK+zB,QAAQhzB,IAAIjB,EAAE,IAAIA,EAAEoD,CAAC,CAAC,GAAGnC,EAAE,GAAG,EAAE,CAACxC,IAAII,EAAEK,EAAEmwB,UAAUxwB,IAAID,EAAE2B,KAAK7B,EAAEG,GAAG,QAAQ,CAACoB,GAAE,EAAGS,GAAG7B,EAAE,QAAQ,CAACoB,GAAE,EAAGS,GAAG7B,EAAE,QAAQ,CAACJ,IAAII,EAAEK,EAAEmwB,UAAUxwB,IAAID,EAAE2B,KAAK1B,EAAE,CAAC,CAAC,MAAM,CAACw3B,MAAMz3B,EAAEw3B,QAAQn2B,EAAE,EAAEzB,EAAEsB,UAAUi3B,aAAa,SAASv4B,GAAG,IAAIC,EAAE,GAAG,SAASyB,KAAKy2B,KAAKnC,WAAWlB,UAAU70B,EAAEwB,MAAM,CAAC,KAAKC,KAAKy2B,KAAKnC,WAAWlB,qBAAqBzsB,OAAO,OAAO3G,KAAKy2B,KAAKnC,WAAWlB,UAAU70B,EAAEyB,KAAKy2B,KAAKnC,WAAWlB,SAAS,CAAC,IAAI50B,EAAE,EAAEC,EAAE,IAAI,OAAOF,EAAEkpB,SAAQ,SAASlpB,GAAG,IAAIG,EAAEJ,EAAE4d,MAAM3d,GAAGmC,OAAOhC,EAAEF,IAAIC,EAAEF,EAAEC,EAAEE,EAAE,IAAGD,CAAC,EAAEH,EAAEsB,UAAUs3B,YAAY,SAAS54B,GAAG,IAAIC,EAAEyB,KAAKuzB,MAAM/0B,EAAEwB,KAAK+zB,OAAO,OAAOz1B,EAAE,KAAKC,IAAID,EAAE,KAAKC,GAAGD,EAAE,KAAKE,IAAIF,EAAE,KAAKC,GAAG,IAAID,EAAEoC,QAAQ,EAAEpC,EAAEsB,UAAUo3B,aAAa,SAAS14B,GAAG,IAAIC,EAAEyB,KAAKuzB,MAAM/0B,EAAEwB,KAAK+zB,OAAO/zB,KAAKy2B,KAAKnC,WAAWzqB,OAAOvL,EAAEU,EAAEmwB,UAAU7wB,IAAI,IAAI,IAAIG,EAAE,EAAEC,EAAEJ,EAAEoC,OAAO,EAAEpC,EAAEI,KAAKH,GAAGD,EAAEI,KAAKF,GAAGE,IAAID,IAAI,OAAOA,EAAE,GAAG,CAAC,EAAEH,EAAEsB,UAAUq3B,YAAY,SAAS34B,GAAG,IAAIC,EAAE,MAAMyB,KAAKuzB,MAAM,IAAIvzB,KAAK+zB,YAAO,IAAS/zB,KAAK02B,aAAan4B,KAAKyB,KAAK02B,aAAan4B,GAAG,IAAIwoB,OAAO,KAAK/mB,KAAK+zB,OAAO,KAAK/zB,KAAKuzB,MAAM,MAAM,IAAI/0B,EAAEwB,KAAK02B,aAAan4B,GAAG,OAAOD,EAAEwL,QAAQtL,EAAEwB,KAAKuzB,MAAM,EAAEj1B,EAAEsB,UAAU02B,gBAAgB,SAASh4B,GAAG,IAAI,IAAIC,EAAE,GAAGC,EAAE,GAAGF,EAAEoC,QAAQ,CAAC,IAAIjC,EAAED,EAAEF,EAAEwV,QAAQ/T,EAAEC,KAAKi2B,MAAMx3B,GAAG,IAAIsB,EAAEo2B,MAAMz1B,QAAQV,KAAKy2B,KAAKnC,WAAWb,cAAc1zB,EAAEm2B,QAAQl2B,KAAKy2B,KAAKnC,WAAWL,kBAAkBj0B,KAAKy2B,KAAK5F,aAAa4D,gBAAgBl2B,EAAE8B,KAAKrB,EAAEiwB,YAAYlvB,EAAEo2B,MAAMn2B,KAAKy2B,KAAK5F,aAAa4D,kBAAkBl2B,EAAE8B,KAAKN,EAAEo2B,OAAO33B,EAAE,IAAIA,EAAEC,GAAGC,EAAEiB,QAAQlB,EAAEuB,KAAKy2B,KAAK5F,eAAe,MAAM,CAAC,MAAM,CAAC0F,UAAUh4B,EAAEq3B,QAAQp3B,EAAE,EAAEF,CAAC,CAAphG,GAAwhGC,EAAEy2B,SAASx0B,CAAC,EAAE,SAASlC,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAEuB,MAAMA,KAAK6vB,iBAAiB,SAASvxB,GAAG,OAAOA,GAAGA,EAAEkB,WAAWlB,EAAE,CAACqB,QAAQrB,EAAE,EAAEW,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAK,IAAIb,EAAED,EAAED,EAAE,KAAKQ,EAAEP,EAAED,EAAE,KAAKuB,EAAE,2CAA2C,SAASS,EAAElC,EAAEC,EAAEC,GAAG,GAAGD,EAAE+1B,WAAWR,aAAav1B,EAAEsyB,aAAa8C,SAASr1B,EAAEoC,SAASnC,EAAEsyB,aAAa8C,QAAQjzB,OAAO,MAAMhC,EAAEiB,QAAQ6vB,kBAAkBjxB,EAAEsyB,aAAaiB,iBAAiBtzB,GAAG,OAAO,SAASF,EAAEC,EAAEC,GAAG,IAAI,IAAIC,GAAE,EAAGC,EAAE,CAAC,EAAEM,EAAE,EAAEe,EAAEzB,EAAEoC,OAAO1B,EAAEe,EAAEf,IAAI,CAAC,IAAIwB,EAAElC,EAAEU,GAAG,IAAIR,EAAE81B,WAAWb,aAAa,KAAKjzB,EAAE,CAAC/B,GAAE,EAAG,IAAIgC,EAAElC,EAAES,GAAGyB,GAAG,KAAKA,IAAIA,EAAElC,EAAES,GAAG,SAASA,EAAE,IAAI,IAAIsB,EAAExB,EAAE2B,EAAEzB,EAAER,GAAG,GAAG8B,EAAE,CAAC,IAAIS,EAAET,EAAEE,EAAEC,EAAE/B,EAAEJ,EAAEU,QAAG,IAAS+B,GAAGpC,EAAED,EAAE+B,EAAEM,EAAEvC,EAAEQ,EAAE,MAASR,EAAE81B,WAAWd,YAAUhzB,EAAEV,EAAEU,EAAEC,EAAEzB,EAAER,EAARsB,CAAWU,SAAG,IAASA,GAAG7B,EAAED,EAAE+B,EAAED,EAAEhC,EAAEQ,EAAG,CAAC,CAAC,OAAOP,EAAEC,EAAE,IAAI,CAAvT,CAAyTJ,EAAEC,EAAEsyB,aAAa8C,SAAS,GAAGp1B,IAAI,IAAI,CAACA,EAAEoB,QAAQ,SAASrB,EAAEC,GAAG,IAAI,IAAIC,EAAE,GAAGC,EAAE,EAAEC,EAAEJ,EAAEoC,OAAOjC,EAAEC,EAAED,IAAI,CAAC,IAAIO,EAAEwB,EAAElC,EAAEG,GAAGF,EAAEE,GAAGO,GAAGR,EAAE6B,KAAKrB,EAAE,CAAC,OAAOR,CAAC,EAAE,IAAIiC,EAAE,CAAC22B,OAAOn0B,EAAEo0B,OAAOt4B,EAAEu4B,KAAK,WAAW,GAAG,SAASx4B,EAAER,EAAEC,EAAEC,GAAG,QAAG,IAASA,EAAEqyB,aAAa6D,WAAWn2B,GAAG,OAAOC,EAAEqyB,aAAa6D,WAAWn2B,GAAG,IAAIE,EAAED,EAAE81B,WAAWN,UAAU11B,GAAG,QAAG,IAASG,EAAE,OAAOD,EAAEqyB,aAAa6D,WAAWn2B,GAAG,KAAK,GAAG,iBAAiBE,IAAIA,EAAEA,EAAE84B,YAAY,UAAU,iBAAiB94B,EAAE,CAACA,EAAEA,EAAEoL,OAAO7G,cAAc,IAAItE,EAAE+B,EAAEhC,GAAG,OAAOD,EAAEqyB,aAAa6D,WAAWn2B,GAAGG,GAAG,IAAI,CAAC,OAAOF,EAAEqyB,aAAa6D,WAAWn2B,GAAG,mBAAmBE,EAAEA,EAAE,IAAI,CAAC,SAASE,EAAEL,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAID,EAAEoyB,aAAaiE,kBAAkBp2B,GAAG,GAAGD,EAAE61B,WAAWV,SAASn1B,EAAEoyB,aAAaiE,kBAAkBp2B,GAAG4B,OAAO,GAAG/B,EAAE+E,QAAQ,MAAM,EAAE,CAAC,IAAI,IAAItE,EAAET,EAAE2d,MAAM,KAAKnc,GAAE,EAAGf,EAAE0B,OAAO,GAAG,GAAG,IAAI1B,EAAE8U,QAAQpT,OAAO,CAACX,GAAE,EAAG,KAAK,EAAEA,GAAGtB,EAAE61B,WAAWN,UAAUz1B,IAAIE,EAAE61B,WAAWN,UAAUz1B,GAAGi5B,KAAK/4B,EAAEoyB,aAAaiE,kBAAkBp2B,GAAG4B,EAAE7B,EAAEoyB,aAAaiE,kBAAkBp2B,GAAGqC,CAAC,MAAMtC,EAAEoyB,aAAaiE,kBAAkBp2B,GAAG4B,GAAE,IAAK7B,EAAE61B,WAAWH,YAAY,SAAS31B,IAAIA,EAAE,MAAMC,EAAEoyB,aAAaiE,kBAAkBp2B,GAAGJ,EAAEC,EAAEC,EAAE,CAAC,SAAS8B,EAAEhC,EAAEC,EAAEC,GAAGF,EAAEC,GAAGC,CAAC,CAAC,SAASuC,EAAEzC,EAAEC,EAAEC,GAAGQ,EAAEW,QAAQrB,EAAEC,EAAEC,EAAE,CAAC,SAASsB,EAAExB,EAAEC,EAAEC,EAAEC,GAAG,OAAOA,EAAEoyB,aAAa8D,WAAWn2B,GAAGC,EAAEoyB,aAAa8D,WAAWn2B,GAAGD,EAAE+E,QAAQ,aAAa,EAAE7E,EAAEoyB,aAAa8D,WAAWn2B,GAAGO,EAAER,EAAE+E,QAAQ,aAAa,EAAE7E,EAAEoyB,aAAa8D,WAAWn2B,GAAGyE,EAAExE,EAAE61B,WAAWd,UAAU/0B,EAAEoyB,aAAa8D,WAAWn2B,GAAG0E,EAAEzE,EAAEoyB,aAAa8D,WAAWn2B,GAAGyE,CAAC,CAAC,SAASlE,EAAET,GAAG,IAAIC,EAAEk5B,WAAWn5B,GAAG,OAAO6E,MAAM5E,GAAGD,EAAEC,CAAC,CAAC,SAAS0E,EAAE3E,GAAG,OAAOA,EAAEsE,UAAU,CAAC,SAASM,EAAE5E,GAAG,IAAIC,EAAED,EAAEuL,OAAO,MAAM,KAAKtL,EAAE0E,EAAE3E,GAAGyB,EAAEgc,KAAKxd,GAAGQ,EAAET,GAAG,IAAIC,EAAEmC,QAAQ,UAAUnC,EAAEyE,eAAe,IAAIzE,EAAEmC,QAAQ,SAASnC,EAAEyE,cAAc,SAAS1E,GAAG,IAAIC,EAAED,EAAEuL,OAAO,OAAO,IAAItL,EAAEmC,QAAQ,UAAUnC,EAAEyE,aAAa,CAAzE,CAA2E1E,GAAG,MAAMC,EAAE,IAAI,MAAMA,EAAEA,EAAEmC,OAAO,IAAI,MAAMnC,EAAE,IAAI,MAAMA,EAAEA,EAAEmC,OAAO,GAAG,SAASpC,GAAG,IAAI,OAAOge,KAAK2Z,MAAM33B,EAAE,CAAC,MAAMC,GAAG,OAAOD,CAAC,CAAC,CAAvD,CAAyDA,GAAG2E,EAAE3E,EAAE,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,EAAEC,EAAEC,GAAG,OAAO,MAAMF,EAAEA,EAAEG,EAAEH,EAAEC,EAAEC,EAAE,CAAC,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAER,EAAE,KAAKuB,EAAEvB,EAAE,IAAIgC,EAAEhC,EAAE,KAAKF,EAAED,QAAQ,SAASC,EAAEC,EAAEC,EAAEiC,GAAG,IAAIV,EAAEzB,GAAG,OAAOA,EAAE,IAAI,IAAIQ,GAAG,EAAEH,GAAGJ,EAAEG,EAAEH,EAAED,IAAIoC,OAAOJ,EAAE3B,EAAE,EAAEoC,EAAEzC,EAAE,MAAMyC,KAAKjC,EAAEH,GAAG,CAAC,IAAImB,EAAEU,EAAEjC,EAAEO,IAAIC,EAAEP,EAAE,GAAGM,GAAGwB,EAAE,CAAC,IAAI2C,EAAElC,EAAEjB,QAAG,KAAUf,EAAE0B,EAAEA,EAAEwC,EAAEnD,EAAEiB,QAAG,KAAUhC,EAAEgB,EAAEkD,GAAGA,EAAEjE,EAAET,EAAEO,EAAE,IAAI,GAAG,CAAC,EAAE,CAACL,EAAEsC,EAAEjB,EAAEf,GAAGgC,EAAEA,EAAEjB,EAAE,CAAC,OAAOxB,CAAC,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAEC,OAAOW,UAAUC,eAAevB,EAAED,QAAQ,SAASC,EAAEC,EAAEC,GAAG,IAAIuB,EAAEzB,EAAEC,GAAGS,EAAEJ,KAAKN,EAAEC,IAAIG,EAAEqB,EAAEvB,UAAK,IAASA,GAAGD,KAAKD,IAAIG,EAAEH,EAAEC,EAAEC,EAAE,CAAC,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,EAAEC,EAAEC,GAAG,aAAaD,GAAGE,EAAEA,EAAEH,EAAEC,EAAE,CAACoD,cAAa,EAAGxC,YAAW,EAAGI,MAAMf,EAAEoC,UAAS,IAAKtC,EAAEC,GAAGC,CAAC,CAAC,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAE,WAAW,IAAI,IAAIJ,EAAEG,EAAEQ,OAAO,kBAAkB,OAAOX,EAAE,CAAC,EAAE,GAAG,CAAC,GAAGA,CAAC,CAAC,MAAMA,GAAG,CAAC,CAA/E,GAAmFA,EAAED,QAAQK,CAAC,EAAE,SAASJ,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAER,EAAE,IAAIuB,EAAEvB,EAAE,IAAIgC,EAAE,8BAA8BC,EAAER,SAASL,UAAUd,EAAEG,OAAOW,UAAUjB,EAAE8B,EAAEmC,SAAStC,EAAExB,EAAEe,eAAekB,EAAEgmB,OAAO,IAAIpoB,EAAEC,KAAK0B,GAAGwJ,QAAQ,sBAAsB,QAAQA,QAAQ,yDAAyD,SAAS,KAAKxL,EAAED,QAAQ,SAASC,GAAG,SAASU,EAAEV,IAAII,EAAEJ,MAAMG,EAAEH,GAAGyC,EAAEP,GAAGub,KAAKhc,EAAEzB,GAAG,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIF,EAAED,QAAQ,SAASC,GAAG,IAAII,EAAEJ,GAAG,OAAM,EAAG,IAAIC,EAAEE,EAAEH,GAAG,MAAM,qBAAqBC,GAAG,8BAA8BA,GAAG,0BAA0BA,GAAG,kBAAkBA,CAAC,CAAC,EAAE,SAASD,EAAEC,EAAEC,IAAG,SAAUD,GAAG,IAAIC,EAAE,iBAAiBD,GAAGA,GAAGA,EAAEU,SAASA,QAAQV,EAAED,EAAED,QAAQG,CAAE,GAAEI,KAAKoB,KAAKxB,EAAE,GAAG,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEO,OAAOW,UAAUZ,EAAEN,EAAEmB,eAAeE,EAAErB,EAAEkE,SAASpC,EAAE/B,EAAEA,EAAEa,iBAAY,EAAOhB,EAAED,QAAQ,SAASC,GAAG,IAAIC,EAAES,EAAEJ,KAAKN,EAAEkC,GAAGhC,EAAEF,EAAEkC,GAAG,IAAIlC,EAAEkC,QAAG,EAAO,IAAI/B,GAAE,CAAE,CAAC,MAAMH,GAAG,CAAC,IAAII,EAAEqB,EAAEnB,KAAKN,GAAG,OAAOG,IAAIF,EAAED,EAAEkC,GAAGhC,SAASF,EAAEkC,IAAI9B,CAAC,CAAC,EAAE,SAASJ,EAAEC,GAAG,IAAIC,EAAES,OAAOW,UAAUgD,SAAStE,EAAED,QAAQ,SAASC,GAAG,OAAOE,EAAEI,KAAKN,EAAE,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAE,WAAW,IAAIJ,EAAE,SAASo5B,KAAKj5B,GAAGA,EAAE2B,MAAM3B,EAAE2B,KAAKu3B,UAAU,IAAI,OAAOr5B,EAAE,iBAAiBA,EAAE,EAAE,CAA7F,GAAiGA,EAAED,QAAQ,SAASC,GAAG,QAAQI,GAAGA,KAAKJ,CAAC,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAI,sBAAsBF,EAAED,QAAQI,CAAC,EAAE,SAASH,EAAEC,GAAG,IAAIC,EAAEyB,SAASL,UAAUgD,SAAStE,EAAED,QAAQ,SAASC,GAAG,GAAG,MAAMA,EAAE,CAAC,IAAI,OAAOE,EAAEI,KAAKN,EAAE,CAAC,MAAMA,GAAG,CAAC,IAAI,OAAOA,EAAE,EAAE,CAAC,MAAMA,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,SAASA,EAAEC,GAAGD,EAAED,QAAQ,SAASC,EAAEC,GAAG,OAAO,MAAMD,OAAE,EAAOA,EAAEC,EAAE,CAAC,EAAE,SAASD,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAER,EAAE,IAAIuB,EAAEvB,EAAE,KAAKF,EAAED,QAAQ,SAASC,EAAEC,GAAG,OAAOE,EAAEH,GAAGA,EAAEI,EAAEJ,EAAEC,GAAG,CAACD,GAAGU,EAAEe,EAAEzB,GAAG,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAE,mDAAmDe,EAAE,QAAQzB,EAAED,QAAQ,SAASC,EAAEC,GAAG,GAAGE,EAAEH,GAAG,OAAM,EAAG,IAAIE,SAASF,EAAE,QAAQ,UAAUE,GAAG,UAAUA,GAAG,WAAWA,GAAG,MAAMF,IAAII,EAAEJ,KAAKyB,EAAEgc,KAAKzd,KAAKU,EAAE+c,KAAKzd,IAAI,MAAMC,GAAGD,KAAKW,OAAOV,EAAE,CAAC,EAAE,SAASD,EAAEC,GAAGD,EAAED,QAAQ,SAASC,GAAG,OAAO,MAAMA,GAAG,iBAAiBA,CAAC,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAE,mGAAmGC,EAAE,WAAWM,EAAER,EAAE,GAAFA,EAAM,SAASF,GAAG,IAAIC,EAAE,GAAG,OAAO,KAAKD,EAAE0F,WAAW,IAAIzF,EAAE8B,KAAK,IAAI/B,EAAEwL,QAAQrL,GAAE,SAASH,EAAEE,EAAEC,EAAEO,GAAGT,EAAE8B,KAAK5B,EAAEO,EAAE8K,QAAQpL,EAAE,MAAMF,GAAGF,EAAE,IAAGC,CAAC,IAAGD,EAAED,QAAQW,CAAC,EAAE,SAASV,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,GAAG,IAAIC,EAAEE,EAAEH,GAAE,SAASA,GAAG,OAAO,MAAME,EAAEgpB,MAAMhpB,EAAE+uB,QAAQjvB,CAAC,IAAGE,EAAED,EAAEq5B,MAAM,OAAOr5B,CAAC,CAAC,EAAE,SAASD,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAA4B,SAASQ,EAAEV,EAAEC,GAAG,GAAG,mBAAmBD,GAAG,MAAMC,GAAG,mBAAmBA,EAAE,MAAM,IAAI0D,UAAvG,uBAAoH,IAAIzD,EAAE,WAAW,IAAIC,EAAEsH,UAAUrH,EAAEH,EAAEA,EAAEoG,MAAM3E,KAAKvB,GAAGA,EAAE,GAAGO,EAAER,EAAEo5B,MAAM,GAAG54B,EAAE64B,IAAIn5B,GAAG,OAAOM,EAAEI,IAAIV,GAAG,IAAIqB,EAAEzB,EAAEqG,MAAM3E,KAAKvB,GAAG,OAAOD,EAAEo5B,MAAM54B,EAAEuC,IAAI7C,EAAEqB,IAAIf,EAAEe,CAAC,EAAE,OAAOvB,EAAEo5B,MAAM,IAAI54B,EAAE84B,OAAOr5B,GAAGD,CAAC,CAACQ,EAAE84B,MAAMr5B,EAAEH,EAAED,QAAQW,CAAC,EAAE,SAASV,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAER,EAAE,IAAIuB,EAAEvB,EAAE,IAAIgC,EAAEhC,EAAE,IAAI,SAASiC,EAAEnC,GAAG,IAAIC,GAAG,EAAEC,EAAE,MAAMF,EAAE,EAAEA,EAAEoC,OAAO,IAAIV,KAAKutB,UAAUhvB,EAAEC,GAAG,CAAC,IAAIC,EAAEH,EAAEC,GAAGyB,KAAKuB,IAAI9C,EAAE,GAAGA,EAAE,GAAG,CAAC,CAACgC,EAAEb,UAAU2tB,MAAM9uB,EAAEgC,EAAEb,UAAUm4B,OAAOr5B,EAAE+B,EAAEb,UAAUR,IAAIJ,EAAEyB,EAAEb,UAAUi4B,IAAI93B,EAAEU,EAAEb,UAAU2B,IAAIf,EAAElC,EAAED,QAAQoC,CAAC,EAAE,SAASnC,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAER,EAAE,IAAIF,EAAED,QAAQ,WAAW2B,KAAKwnB,KAAK,EAAExnB,KAAKqM,SAAS,CAAC2rB,KAAK,IAAIv5B,EAAE6N,IAAI,IAAItN,GAAGN,GAAG04B,OAAO,IAAI34B,EAAE,CAAC,EAAE,SAASH,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAER,EAAE,IAAIuB,EAAEvB,EAAE,IAAIgC,EAAEhC,EAAE,IAAI,SAASiC,EAAEnC,GAAG,IAAIC,GAAG,EAAEC,EAAE,MAAMF,EAAE,EAAEA,EAAEoC,OAAO,IAAIV,KAAKutB,UAAUhvB,EAAEC,GAAG,CAAC,IAAIC,EAAEH,EAAEC,GAAGyB,KAAKuB,IAAI9C,EAAE,GAAGA,EAAE,GAAG,CAAC,CAACgC,EAAEb,UAAU2tB,MAAM9uB,EAAEgC,EAAEb,UAAUm4B,OAAOr5B,EAAE+B,EAAEb,UAAUR,IAAIJ,EAAEyB,EAAEb,UAAUi4B,IAAI93B,EAAEU,EAAEb,UAAU2B,IAAIf,EAAElC,EAAED,QAAQoC,CAAC,EAAE,SAASnC,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAGF,EAAED,QAAQ,WAAW2B,KAAKqM,SAAS5N,EAAEA,EAAE,MAAM,CAAC,EAAEuB,KAAKwnB,KAAK,CAAC,CAAC,EAAE,SAASlpB,EAAEC,GAAGD,EAAED,QAAQ,SAASC,GAAG,IAAIC,EAAEyB,KAAK63B,IAAIv5B,WAAW0B,KAAKqM,SAAS/N,GAAG,OAAO0B,KAAKwnB,MAAMjpB,EAAE,EAAE,EAAEA,CAAC,CAAC,EAAE,SAASD,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAGE,EAAEO,OAAOW,UAAUC,eAAevB,EAAED,QAAQ,SAASC,GAAG,IAAIC,EAAEyB,KAAKqM,SAAS,GAAG5N,EAAE,CAAC,IAAID,EAAED,EAAED,GAAG,MAAM,8BAA8BE,OAAE,EAAOA,CAAC,CAAC,OAAOE,EAAEE,KAAKL,EAAED,GAAGC,EAAED,QAAG,CAAM,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAGE,EAAEO,OAAOW,UAAUC,eAAevB,EAAED,QAAQ,SAASC,GAAG,IAAIC,EAAEyB,KAAKqM,SAAS,OAAO5N,OAAE,IAASF,EAAED,GAAGI,EAAEE,KAAKL,EAAED,EAAE,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAGF,EAAED,QAAQ,SAASC,EAAEC,GAAG,IAAIC,EAAEwB,KAAKqM,SAAS,OAAOrM,KAAKwnB,MAAMxnB,KAAK63B,IAAIv5B,GAAG,EAAE,EAAEE,EAAEF,GAAGG,QAAG,IAASF,EAAE,4BAA4BA,EAAEyB,IAAI,CAAC,EAAE,SAAS1B,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIQ,EAAER,EAAE,IAAIuB,EAAEvB,EAAE,IAAIgC,EAAEhC,EAAE,IAAI,SAASiC,EAAEnC,GAAG,IAAIC,GAAG,EAAEC,EAAE,MAAMF,EAAE,EAAEA,EAAEoC,OAAO,IAAIV,KAAKutB,UAAUhvB,EAAEC,GAAG,CAAC,IAAIC,EAAEH,EAAEC,GAAGyB,KAAKuB,IAAI9C,EAAE,GAAGA,EAAE,GAAG,CAAC,CAACgC,EAAEb,UAAU2tB,MAAM9uB,EAAEgC,EAAEb,UAAUm4B,OAAOr5B,EAAE+B,EAAEb,UAAUR,IAAIJ,EAAEyB,EAAEb,UAAUi4B,IAAI93B,EAAEU,EAAEb,UAAU2B,IAAIf,EAAElC,EAAED,QAAQoC,CAAC,EAAE,SAASnC,EAAEC,GAAGD,EAAED,QAAQ,WAAW2B,KAAKqM,SAAS,GAAGrM,KAAKwnB,KAAK,CAAC,CAAC,EAAE,SAASlpB,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAGE,EAAEiI,MAAM/G,UAAUwO,OAAO9P,EAAED,QAAQ,SAASC,GAAG,IAAIC,EAAEyB,KAAKqM,SAAS7N,EAAEC,EAAEF,EAAED,GAAG,QAAQE,EAAE,IAAIA,GAAGD,EAAEmC,OAAO,EAAEnC,EAAE+W,MAAM5W,EAAEE,KAAKL,EAAEC,EAAE,KAAKwB,KAAKwnB,KAAK,GAAG,CAAC,EAAE,SAASlpB,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAGF,EAAED,QAAQ,SAASC,GAAG,IAAIC,EAAEyB,KAAKqM,SAAS7N,EAAEC,EAAEF,EAAED,GAAG,OAAOE,EAAE,OAAE,EAAOD,EAAEC,GAAG,EAAE,CAAC,EAAE,SAASF,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAGF,EAAED,QAAQ,SAASC,GAAG,OAAOG,EAAEuB,KAAKqM,SAAS/N,IAAI,CAAC,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAGF,EAAED,QAAQ,SAASC,EAAEC,GAAG,IAAIC,EAAEwB,KAAKqM,SAAS3N,EAAED,EAAED,EAAEF,GAAG,OAAOI,EAAE,KAAKsB,KAAKwnB,KAAKhpB,EAAE6B,KAAK,CAAC/B,EAAEC,KAAKC,EAAEE,GAAG,GAAGH,EAAEyB,IAAI,CAAC,EAAE,SAAS1B,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,GAAFA,CAAMA,EAAE,IAAI,OAAOF,EAAED,QAAQI,CAAC,EAAE,SAASH,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,GAAG,IAAIC,EAAEE,EAAEuB,KAAK1B,GAAGy5B,OAAOz5B,GAAG,OAAO0B,KAAKwnB,MAAMjpB,EAAE,EAAE,EAAEA,CAAC,CAAC,EAAE,SAASD,EAAEC,GAAGD,EAAED,QAAQ,SAASC,GAAG,IAAIC,SAASD,EAAE,MAAM,UAAUC,GAAG,UAAUA,GAAG,UAAUA,GAAG,WAAWA,EAAE,cAAcD,EAAE,OAAOA,CAAC,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,GAAG,OAAOG,EAAEuB,KAAK1B,GAAGc,IAAId,EAAE,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,GAAG,OAAOG,EAAEuB,KAAK1B,GAAGu5B,IAAIv5B,EAAE,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,EAAEC,GAAG,IAAIC,EAAEC,EAAEuB,KAAK1B,GAAGI,EAAEF,EAAEgpB,KAAK,OAAOhpB,EAAE+C,IAAIjD,EAAEC,GAAGyB,KAAKwnB,MAAMhpB,EAAEgpB,MAAM9oB,EAAE,EAAE,EAAEsB,IAAI,CAAC,EAAE,SAAS1B,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,KAAKF,EAAED,QAAQ,SAASC,GAAG,OAAO,MAAMA,EAAE,GAAGG,EAAEH,EAAE,CAAC,EAAE,SAASA,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,KAAKQ,EAAER,EAAE,IAAIuB,EAAEvB,EAAE,IAAIgC,EAAE/B,EAAEA,EAAEmB,eAAU,EAAOa,EAAED,EAAEA,EAAEoC,cAAS,EAAOtE,EAAED,QAAQ,SAASC,EAAEC,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAGS,EAAET,GAAG,OAAOG,EAAEH,EAAED,GAAG,GAAG,GAAGyB,EAAExB,GAAG,OAAOkC,EAAEA,EAAE7B,KAAKL,GAAG,GAAG,IAAIC,EAAED,EAAE,GAAG,MAAM,KAAKC,GAAG,EAAED,IAAG,IAAK,KAAKC,CAAC,CAAC,EAAE,SAASF,EAAEC,GAAGD,EAAED,QAAQ,SAASC,EAAEC,GAAG,IAAI,IAAIC,GAAG,EAAEC,EAAE,MAAMH,EAAE,EAAEA,EAAEoC,OAAOhC,EAAEiI,MAAMlI,KAAKD,EAAEC,GAAGC,EAAEF,GAAGD,EAAED,EAAEE,GAAGA,EAAEF,GAAG,OAAOI,CAAC,CAAC,EAAE,SAASJ,EAAEC,GAAG,IAAIC,EAAE,mBAAmBF,EAAED,QAAQ,SAASC,EAAEC,GAAG,IAAIE,SAASH,EAAE,SAASC,EAAE,MAAMA,EAAE,iBAAiBA,KAAK,UAAUE,GAAG,UAAUA,GAAGD,EAAEud,KAAKzd,KAAKA,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAEC,CAAC,CAAC,EAAE,SAASD,EAAEC,EAAEC,GAAG,IAAIC,EAAED,EAAE,IAAIF,EAAED,QAAQ,SAASC,GAAG,GAAG,iBAAiBA,GAAGG,EAAEH,GAAG,OAAOA,EAAE,IAAIC,EAAED,EAAE,GAAG,MAAM,KAAKC,GAAG,EAAED,IAAG,IAAK,KAAKC,CAAC,CAAC,EAAE,SAASD,EAAEC,EAAEC,GAAG,aAAa,IAAIC,EAAEuB,MAAMA,KAAK6vB,iBAAiB,SAASvxB,GAAG,OAAOA,GAAGA,EAAEkB,WAAWlB,EAAE,CAACqB,QAAQrB,EAAE,EAAEW,OAAOC,eAAeX,EAAE,aAAa,CAACgB,OAAM,IAAK,IAAIb,EAAED,EAAED,EAAE,KAAKQ,EAAER,EAAE,KAAKuB,EAAE,WAAW,SAASzB,EAAEA,GAAG0B,KAAKi1B,UAAU32B,EAAE0B,KAAKi4B,YAAY,EAAE,CAAC,OAAOh5B,OAAOC,eAAeZ,EAAEsB,UAAU,eAAe,CAACR,IAAI,WAAW,QAAQY,KAAKi1B,UAAUpE,aAAaD,aAAa5wB,KAAKi1B,UAAUpE,aAAaD,UAAUE,QAAQ9wB,KAAKk4B,kBAAkB,EAAE/4B,YAAW,EAAGwC,cAAa,IAAK1C,OAAOC,eAAeZ,EAAEsB,UAAU,qBAAqB,CAACR,IAAI,WAAW,YAAO,IAASY,KAAKm4B,sBAAsBn4B,KAAKm4B,oBAAoBn4B,KAAKi1B,UAAU/pB,UAAU,QAAQxK,OAAO,GAAGV,KAAKi1B,UAAU/pB,UAAU,YAAYxK,OAAO,GAAGV,KAAKm4B,mBAAmB,EAAEh5B,YAAW,EAAGwC,cAAa,IAAK1C,OAAOC,eAAeZ,EAAEsB,UAAU,cAAc,CAACR,IAAI,WAAW,QAAQY,KAAKi1B,UAAUpE,aAAalR,MAAM3f,KAAKi1B,UAAUX,WAAWD,WAAW,EAAEl1B,YAAW,EAAGwC,cAAa,IAAKrD,EAAEsB,UAAU8xB,cAAc,SAASpzB,GAAG,IAAIC,EAAEyB,KAAKxB,EAAEwB,KAAKi1B,UAAUpE,aAAaiB,iBAAiB,OAAO9xB,KAAKk4B,oBAAoB,UAAUl4B,KAAKi1B,UAAUX,WAAWF,kBAAkB,IAAI51B,GAAGgC,EAAER,KAAKi1B,UAAU,IAAIj2B,EAAEo5B,KAAK,IAAI15B,EAAEiB,SAAQ,SAASnB,EAAEC,GAAGF,EAAE85B,aAAa,SAAS/5B,EAAEC,EAAEC,EAAEC,EAAEC,EAAEM,GAAG,GAAGP,GAAGF,EAAEmC,OAAO1B,SAAS,GAAGR,EAAEqyB,aAAaD,WAAWpyB,EAAEqyB,aAAaD,UAAUE,OAAO,CAAC,IAAI/wB,EAAEvB,EAAEqyB,aAAaD,UAAUE,OAAOrwB,EAAElC,EAAEE,GAAGK,EAAEiB,EAAEU,EAAEjC,EAAEqyB,aAAaiB,iBAAiBrzB,GAAG,GAAGA,IAAIK,GAAGA,EAAE6gB,KAAK7gB,EAAE6gB,MAAK,YAAY,SAASphB,EAAEC,EAAEC,EAAEC,EAAEM,EAAEe,EAAEU,GAAGzB,GAAGwB,EAAE/B,EAAEgC,GAAGnC,EAAEC,EAAEE,EAAEC,EAAEM,EAAEe,EAAE,CAA9C,CAAgDxB,EAAE,EAAEC,EAAEC,EAAEC,EAAEM,EAAEyB,EAAE,GAAEzB,OAAO,CAAC,IAAIN,GAAG8B,EAAEhC,EAAEiC,GAAGhC,EAAEF,EAAEmC,QAAQ,CAAC,IAAI/B,EAAEJ,EAAEE,GAAGsB,EAAEpB,EAAEH,EAAEqyB,aAAaiB,iBAAiBrzB,GAAGA,IAAIC,GAAG8B,EAAEhC,EAAEG,EAAE,CAACK,GAAG,CAAC,KAAK,CAAC,GAAGN,EAAE,KAAKD,EAAEF,EAAEmC,QAAQ/B,EAAEJ,EAAEE,KAAK+B,EAAEhC,EAAEG,GAAGK,GAAG,CAAC,CAA7b,CAA+bV,EAAEC,EAAE02B,UAAU,EAAE12B,EAAE25B,oBAAmB,SAASx5B,GAAGA,EAAED,EAAEC,IAAIH,EAAE+5B,kBAAkBh6B,GAAGE,IAAI,KAAID,EAAE+5B,kBAAkBh6B,GAAGE,IAAI,GAAE,EAAEF,EAAEsB,UAAU04B,kBAAkB,SAASh6B,GAAG0B,KAAKq0B,cAAcr0B,KAAKi4B,YAAYj4B,KAAKi4B,YAAYtyB,OAAOrH,IAAI0B,KAAKi1B,UAAUpE,aAAaiB,kBAAkBxzB,EAAEoC,MAAM,EAAEpC,EAAEsB,UAAU2wB,aAAa,SAASjyB,GAAG0B,KAAKi1B,UAAUpE,aAAaD,WAAW5wB,KAAKi1B,UAAUpE,aAAaD,UAAUG,SAAS/wB,KAAKi1B,UAAUpE,aAAaD,UAAUG,QAAQzyB,GAAG0B,KAAKi1B,UAAUpE,aAAalR,MAAM3f,KAAKi1B,UAAUpE,aAAalR,KAAK4R,YAAYvxB,KAAKi1B,UAAUpE,aAAalR,KAAK4R,WAAWjzB,EAAE,EAAEA,EAAEsB,UAAUiyB,WAAW,WAAW7xB,KAAKi1B,UAAUpE,aAAalR,MAAM3f,KAAKi1B,UAAUpE,aAAalR,KAAK2R,cAActxB,KAAKq0B,YAAYr0B,KAAKi1B,UAAUpE,aAAalR,KAAK2R,YAAYtxB,KAAKi4B,aAAaj4B,KAAKi1B,UAAUpE,aAAalR,KAAK2R,YAAY,KAAKtxB,KAAKi1B,UAAUpE,aAAaD,WAAW5wB,KAAKi1B,UAAUpE,aAAaD,UAAUI,aAAahxB,KAAKi1B,UAAUpE,aAAaD,UAAUI,cAAchxB,KAAKk4B,oBAAoB,UAAUl4B,KAAKi1B,UAAUX,WAAWF,kBAAkB5zB,EAAER,KAAKi1B,UAAU,IAAIj2B,EAAEo5B,IAAI,EAAE95B,CAAC,CAAr+E,GAAy+E,SAASkC,EAAElC,EAAEC,GAAG,GAAG,iBAAiBA,GAAGD,EAAEwxB,QAAQ1gB,WAAW9Q,EAAE+B,KAAK9B,OAAO,CAAC,IAAIC,EAAE8d,KAAKC,UAAUhe,GAAGD,EAAE+B,KAAK7B,GAAG,UAAUF,EAAEg2B,WAAWF,iBAAiB,IAAIp1B,EAAEo5B,IAAIp5B,EAAEo5B,KAAK,OAAO,CAAC,CAAC75B,EAAE6xB,OAAOrwB,CAAC,EAAE,SAASzB,EAAEC,GAAGA,EAAEg6B,WAAW,WAAW,MAAM,IAAI,EAAEh6B,EAAEi6B,SAAS,WAAW,MAAM,oBAAoBC,SAASA,SAASD,SAAS,EAAE,EAAEj6B,EAAEm6B,QAAQ,WAAW,MAAM,EAAE,EAAEn6B,EAAEo6B,OAAO,WAAW,OAAO,CAAC,EAAEp6B,EAAEq6B,QAAQ,WAAW,OAAOl1B,OAAOm1B,SAAS,EAAEt6B,EAAEu6B,SAAS,WAAW,OAAOp1B,OAAOm1B,SAAS,EAAEt6B,EAAEw6B,KAAK,WAAW,MAAM,EAAE,EAAEx6B,EAAEmE,KAAK,WAAW,MAAM,SAAS,EAAEnE,EAAEy6B,QAAQ,WAAW,MAAM,oBAAoBlQ,UAAUA,UAAUmQ,WAAW,EAAE,EAAE16B,EAAE26B,kBAAkB36B,EAAE46B,qBAAqB,WAAW,MAAM,CAAC,CAAC,EAAE56B,EAAE66B,KAAK,WAAW,MAAM,YAAY,EAAE76B,EAAE86B,SAAS,WAAW,MAAM,SAAS,EAAE96B,EAAE+6B,OAAO/6B,EAAEg7B,OAAO,WAAW,MAAM,MAAM,EAAEh7B,EAAE65B,IAAI,KAAK75B,EAAEi7B,QAAQ,WAAW,MAAM,GAAG,CAAC","sources":["../../../node_modules/csvtojson/browser/browser.js"],"sourcesContent":["module.exports=function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=32)}([function(t,e){var r;r=function(){return this}();try{r=r||Function(\"return this\")()||(0,eval)(\"this\")}catch(t){\"object\"==typeof window&&(r=window)}t.exports=r},function(t,e,r){\"use strict\";var n=r(6),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=f;var o=r(5);o.inherits=r(2);var s=r(23),a=r(14);o.inherits(f,s);for(var u=i(a.prototype),c=0;c \n * @license MIT\n */\nvar n=r(38),i=r(39),o=r(40);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()=s())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+s().toString(16)+\" bytes\");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return N(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return H(t).length;default:if(n)return N(t).length;e=(\"\"+e).toLowerCase(),n=!0}}function _(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function v(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:y(t,e,r,n,i);if(\"number\"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):y(t,[e],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function y(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var l=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var f=!0,h=0;hi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function j(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+f<=r)switch(f){case 1:c<128&&(l=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(l=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(l=u)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=f}return function(t){var e=t.length;if(e<=S)return String.fromCharCode.apply(String,t);for(var r=\"\",n=0;nthis.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return T(this,e,r);case\"utf8\":case\"utf-8\":return j(this,e,r);case\"ascii\":return R(this,e,r);case\"latin1\":case\"binary\":return k(this,e,r);case\"base64\":return x(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return P(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}.apply(this,arguments)},u.prototype.equals=function(t){if(!u.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");return this===t||0===u.compare(this,t)},u.prototype.inspect=function(){var t=\"\",r=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString(\"hex\",0,r).match(/.{2}/g).join(\" \"),this.length>r&&(t+=\" ... \")),\"\"},u.prototype.compare=function(t,e,r,n,i){if(!u.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,s=r-e,a=Math.min(o,s),c=this.slice(n,i),l=t.slice(e,r),f=0;fi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var o=!1;;)switch(n){case\"hex\":return m(this,t,e,r);case\"utf8\":case\"utf-8\":return g(this,t,e,r);case\"ascii\":return b(this,t,e,r);case\"latin1\":case\"binary\":return w(this,t,e,r);case\"base64\":return E(this,t,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return C(this,t,e,r);default:if(o)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var S=4096;function R(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i=\"\",o=e;or)throw new RangeError(\"Trying to access beyond buffer length\")}function A(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError(\"Index out of range\")}function F(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function L(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function M(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function B(t,e,r,n,o){return o||M(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function D(t,e,r,n,o){return o||M(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function(t,e){var r,n=this.length;if(t=~~t,e=void 0===e?n:~~e,t<0?(t+=n)<0&&(t=0):t>n&&(t=n),e<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUInt8=function(t,e){return e||O(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||O(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||O(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||O(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||O(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||O(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||O(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||O(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||O(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||O(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||O(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||O(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||O(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||O(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||O(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||O(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,n){t=+t,e|=0,r|=0,n||A(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):F(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):F(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):L(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):L(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);A(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+r},u.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);A(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):F(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):F(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):L(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||A(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):L(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return B(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return B(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return D(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return D(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError(\"sourceStart out of bounds\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),\"number\"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function H(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,\"\")}(t).replace(I,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function V(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(0))},function(t,e){var r,n,i=t.exports={};function o(){throw new Error(\"setTimeout has not been defined\")}function s(){throw new Error(\"clearTimeout has not been defined\")}function a(t){if(r===setTimeout)return setTimeout(t,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r=\"function\"==typeof setTimeout?setTimeout:o}catch(t){r=o}try{n=\"function\"==typeof clearTimeout?clearTimeout:s}catch(t){n=s}}();var u,c=[],l=!1,f=-1;function h(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&p())}function p(){if(!l){var t=a(h);l=!0;for(var e=c.length;e;){for(u=c,c=[];++f1)for(var r=1;r=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},r(35),e.setImmediate=\"undefined\"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate=\"undefined\"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,r(0))},function(t,e){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(t){return\"function\"==typeof t}function i(t){return\"object\"==typeof t&&null!==t}function o(t){return void 0===t}t.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(t){if(!function(t){return\"number\"==typeof t}(t)||t<0||isNaN(t))throw TypeError(\"n must be a positive number\");return this._maxListeners=t,this},r.prototype.emit=function(t){var e,r,s,a,u,c;if(this._events||(this._events={}),\"error\"===t&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var l=new Error('Uncaught, unspecified \"error\" event. ('+e+\")\");throw l.context=e,l}if(o(r=this._events[t]))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),r.apply(this,a)}else if(i(r))for(a=Array.prototype.slice.call(arguments,1),s=(c=r.slice()).length,u=0;u0&&this._events[t].length>s&&(this._events[t].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[t].length),\"function\"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(t,e){if(!n(e))throw TypeError(\"listener must be a function\");var r=!1;function i(){this.removeListener(t,i),r||(r=!0,e.apply(this,arguments))}return i.listener=e,this.on(t,i),this},r.prototype.removeListener=function(t,e){var r,o,s,a;if(!n(e))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[t])return this;if(s=(r=this._events[t]).length,o=-1,r===e||n(r.listener)&&r.listener===e)delete this._events[t],this._events.removeListener&&this.emit(\"removeListener\",t,e);else if(i(r)){for(a=s;a-- >0;)if(r[a]===e||r[a].listener&&r[a].listener===e){o=a;break}if(o<0)return this;1===r.length?(r.length=0,delete this._events[t]):r.splice(o,1),this._events.removeListener&&this.emit(\"removeListener\",t,e)}return this},r.prototype.removeAllListeners=function(t){var e,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)\"removeListener\"!==e&&this.removeAllListeners(e);return this.removeAllListeners(\"removeListener\"),this._events={},this}if(n(r=this._events[t]))this.removeListener(t,r);else if(r)for(;r.length;)this.removeListener(t,r[r.length-1]);return delete this._events[t],this},r.prototype.listeners=function(t){return this._events&&this._events[t]?n(this._events[t])?[this._events[t]]:this._events[t].slice():[]},r.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(n(e))return 1;if(e)return e.length}return 0},r.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e,r){(e=t.exports=r(23)).Stream=e,e.Readable=e,e.Writable=r(14),e.Duplex=r(1),e.Transform=r(27),e.PassThrough=r(45)},function(t,e,r){\"use strict\";(function(e,n,i){var o=r(6);function s(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;for(t.entry=null;n;){var i=n.callback;e.pendingcb--,i(void 0),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}t.exports=m;var a,u=!e.browser&&[\"v0.10\",\"v0.9.\"].indexOf(e.version.slice(0,5))>-1?n:o.nextTick;m.WritableState=y;var c=r(5);c.inherits=r(2);var l,f={deprecate:r(44)},h=r(24),p=r(7).Buffer,d=i.Uint8Array||function(){},_=r(25);function v(){}function y(t,e){a=a||r(1),t=t||{};var n=e instanceof a;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,c=t.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(c||0===c)?c:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===t.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,i=r.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,n,i){--e.pendingcb,r?(o.nextTick(i,n),o.nextTick(x,t,e),t._writableState.errorEmitted=!0,t.emit(\"error\",n)):(i(n),t._writableState.errorEmitted=!0,t.emit(\"error\",n),x(t,e))}(t,r,n,e,i);else{var s=E(r);s||r.corked||r.bufferProcessing||!r.bufferedRequest||w(t,r),n?u(b,t,r,s,i):b(t,r,s,i)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new s(this)}function m(t){if(a=a||r(1),!(l.call(m,this)||this instanceof a))return new m(t);this._writableState=new y(t,this),this.writable=!0,t&&(\"function\"==typeof t.write&&(this._write=t.write),\"function\"==typeof t.writev&&(this._writev=t.writev),\"function\"==typeof t.destroy&&(this._destroy=t.destroy),\"function\"==typeof t.final&&(this._final=t.final)),h.call(this)}function g(t,e,r,n,i,o,s){e.writelen=n,e.writecb=s,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function b(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit(\"drain\"))}(t,e),e.pendingcb--,n(),x(t,e)}function w(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),o=e.corkedRequestsFree;o.entry=r;for(var a=0,u=!0;r;)i[a]=r,r.isBuf||(u=!1),r=r.next,a+=1;i.allBuffers=u,g(t,e,!0,e.length,i,\"\",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new s(e),e.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,l=r.encoding,f=r.callback;if(g(t,e,!1,e.objectMode?1:c.length,c,l,f),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function E(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function C(t,e){t._final(function(r){e.pendingcb--,r&&t.emit(\"error\",r),e.prefinished=!0,t.emit(\"prefinish\"),x(t,e)})}function x(t,e){var r=E(e);return r&&(function(t,e){e.prefinished||e.finalCalled||(\"function\"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,o.nextTick(C,t,e)):(e.prefinished=!0,t.emit(\"prefinish\")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit(\"finish\"))),r}c.inherits(m,h),y.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(y.prototype,\"buffer\",{get:f.deprecate(function(){return this.getBuffer()},\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch(t){}}(),\"function\"==typeof Symbol&&Symbol.hasInstance&&\"function\"==typeof Function.prototype[Symbol.hasInstance]?(l=Function.prototype[Symbol.hasInstance],Object.defineProperty(m,Symbol.hasInstance,{value:function(t){return!!l.call(this,t)||this===m&&t&&t._writableState instanceof y}})):l=function(t){return t instanceof this},m.prototype.pipe=function(){this.emit(\"error\",new Error(\"Cannot pipe, not readable\"))},m.prototype.write=function(t,e,r){var n=this._writableState,i=!1,s=!n.objectMode&&function(t){return p.isBuffer(t)||t instanceof d}(t);return s&&!p.isBuffer(t)&&(t=function(t){return p.from(t)}(t)),\"function\"==typeof e&&(r=e,e=null),s?e=\"buffer\":e||(e=n.defaultEncoding),\"function\"!=typeof r&&(r=v),n.ended?function(t,e){var r=new Error(\"write after end\");t.emit(\"error\",r),o.nextTick(e,r)}(this,r):(s||function(t,e,r,n){var i=!0,s=!1;return null===r?s=new TypeError(\"May not write null values to stream\"):\"string\"==typeof r||void 0===r||e.objectMode||(s=new TypeError(\"Invalid non-string/buffer chunk\")),s&&(t.emit(\"error\",s),o.nextTick(n,s),i=!1),i}(this,n,t,r))&&(n.pendingcb++,i=function(t,e,r,n,i,o){if(!r){var s=function(t,e,r){return t.objectMode||!1===t.decodeStrings||\"string\"!=typeof e||(e=p.from(e,r)),e}(e,n,i);n!==s&&(r=!0,i=\"buffer\",n=s)}var a=e.objectMode?1:n.length;e.length+=a;var u=e.length-1))throw new TypeError(\"Unknown encoding: \"+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(m.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),m.prototype._write=function(t,e,r){r(new Error(\"_write() is not implemented\"))},m.prototype._writev=null,m.prototype.end=function(t,e,r){var n=this._writableState;\"function\"==typeof t?(r=t,t=null,e=null):\"function\"==typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,x(t,e),r&&(e.finished?o.nextTick(r):t.once(\"finish\",r)),e.ended=!0,t.writable=!1}(this,n,r)},Object.defineProperty(m.prototype,\"destroyed\",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),m.prototype.destroy=_.destroy,m.prototype._undestroy=_.undestroy,m.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,r(4),r(11).setImmediate,r(0))},function(t,e,r){(function(e,r,n){t.exports=function t(e,r,n){function i(s,a){if(!r[s]){if(!e[s]){var u=\"function\"==typeof _dereq_&&_dereq_;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error(\"Cannot find module '\"+s+\"'\");throw c.code=\"MODULE_NOT_FOUND\",c}var l=r[s]={exports:{}};e[s][0].call(l.exports,function(t){return i(e[s][1][t]||t)},l,l.exports,t,e,r,n)}return r[s].exports}for(var o=\"function\"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if(\"function\"==typeof e){var r=t.shift(),n=t.shift();e.call(r,n)}else e._settlePromises()}},u.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},u.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},u.prototype._reset=function(){this._isTickUsed=!1},r.exports=u,r.exports.firstLineError=i},{\"./queue\":26,\"./schedule\":29,\"./util\":36}],3:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,n){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0==(50397184&this._bitField)&&this._resolveCallback(e.target)},u=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=n.propagateFromFunction(),t.prototype._boundValue=n.boundValueFunction());var c=r(o),l=new t(e);l._propagateFrom(this,1);var f=this._target();if(l._setBoundTo(c),c instanceof t){var h={promiseRejectionQueued:!1,promise:l,target:f,bindingPromise:c};f._then(e,s,void 0,l,h),c._then(a,u,void 0,l,h),l._setOnCancel(c)}else l._resolveCallback(f);return l},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152==(2097152&this._bitField)},t.bind=function(e,r){return t.resolve(r).bind(e)}}},{}],4:[function(t,e,r){\"use strict\";var n;\"undefined\"!=typeof Promise&&(n=Promise);var i=t(\"./promise\")();i.noConflict=function(){try{Promise===i&&(Promise=n)}catch(t){}return i},e.exports=i},{\"./promise\":22}],5:[function(t,e,r){\"use strict\";var n=Object.create;if(n){var i=n(null),o=n(null);i[\" size\"]=o[\" size\"]=0}e.exports=function(e){var r=t(\"./util\"),n=r.canEvaluate;function i(t){return function(t,n){var i;if(null!=t&&(i=t[n]),\"function\"!=typeof i){var o=\"Object \"+r.classString(t)+\" has no method '\"+r.toString(n)+\"'\";throw new e.TypeError(o)}return i}(t,this.pop()).apply(t,this)}function o(t){return t[this]}function s(t){var e=+this;return e<0&&(e=Math.max(0,e+t.length)),t[e]}r.isIdentifier,e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(i,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e;if(\"number\"==typeof t)e=s;else if(n){var r=(void 0)(t);e=null!==r?r:o}else e=o;return this._then(e,void 0,void 0,t,void 0)}}},{\"./util\":36}],6:[function(t,e,r){\"use strict\";e.exports=function(e,r,n,i){var o=t(\"./util\"),s=o.tryCatch,a=o.errorObj,u=e._async;e.prototype.break=e.prototype.cancel=function(){if(!i.cancellation())return this._warn(\"cancellation is disabled\");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var r=t._cancellationParent;if(null==r||!r._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=r}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),!!this._enoughBranchesHaveCancelled()&&(this._invokeOnCancel(),!0))},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),u.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var r=0;r=0)return r[t]}return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},n.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,r.push(this._trace))},n.prototype._popContext=function(){if(void 0!==this._trace){var t=r.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},n.CapturedTrace=null,n.create=function(){if(e)return new n},n.deactivateLongStackTraces=function(){},n.activateLongStackTraces=function(){var r=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,u=t.prototype._promiseCreated;n.deactivateLongStackTraces=function(){t.prototype._pushContext=r,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=u,e=!1},e=!0,t.prototype._pushContext=n.prototype._pushContext,t.prototype._popContext=n.prototype._popContext,t._peekContext=t.prototype._peekContext=i,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},n}},{}],9:[function(t,r,n){\"use strict\";r.exports=function(r,n){var i,o,s,a=r._getDomain,u=r._async,c=t(\"./errors\").Warning,l=t(\"./util\"),f=l.canAttachTrace,h=/[\\\\\\/]bluebird[\\\\\\/]js[\\\\\\/](release|debug|instrumented)/,p=/\\((?:timers\\.js):\\d+:\\d+\\)/,d=/[\\/<\\(](.+?):(\\d+):(\\d+)\\)?\\s*$/,_=null,v=null,y=!1,m=!(0==l.env(\"BLUEBIRD_DEBUG\")),g=!(0==l.env(\"BLUEBIRD_WARNINGS\")||!m&&!l.env(\"BLUEBIRD_WARNINGS\")),b=!(0==l.env(\"BLUEBIRD_LONG_STACK_TRACES\")||!m&&!l.env(\"BLUEBIRD_LONG_STACK_TRACES\")),w=0!=l.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\")&&(g||!!l.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\"));r.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},r.prototype._ensurePossibleRejectionHandled=function(){if(0==(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},r.prototype._notifyUnhandledRejectionIsHandled=function(){q(\"rejectionHandled\",i,void 0,this)},r.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},r.prototype._returnedNonUndefined=function(){return 0!=(268435456&this._bitField)},r.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),q(\"unhandledRejection\",o,t,this)}},r.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},r.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},r.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},r.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},r.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},r.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},r.prototype._warn=function(t,e,r){return U(t,e,r||this)},r.onPossiblyUnhandledRejection=function(t){var e=a();o=\"function\"==typeof t?null===e?t:l.domainBind(e,t):void 0},r.onUnhandledRejectionHandled=function(t){var e=a();i=\"function\"==typeof t?null===e?t:l.domainBind(e,t):void 0};var E=function(){};r.longStackTraces=function(){if(u.haveItemsQueued()&&!J.longStackTraces)throw new Error(\"cannot enable long stack traces after promises have been created\\n\\n See http://goo.gl/MqrFmX\\n\");if(!J.longStackTraces&&Y()){var t=r.prototype._captureStackTrace,e=r.prototype._attachExtraTrace;J.longStackTraces=!0,E=function(){if(u.haveItemsQueued()&&!J.longStackTraces)throw new Error(\"cannot enable long stack traces after promises have been created\\n\\n See http://goo.gl/MqrFmX\\n\");r.prototype._captureStackTrace=t,r.prototype._attachExtraTrace=e,n.deactivateLongStackTraces(),u.enableTrampoline(),J.longStackTraces=!1},r.prototype._captureStackTrace=D,r.prototype._attachExtraTrace=I,n.activateLongStackTraces(),u.disableTrampolineIfNecessary()}},r.hasLongStackTraces=function(){return J.longStackTraces&&Y()};var C=function(){try{if(\"function\"==typeof CustomEvent){var t=new CustomEvent(\"CustomEvent\");return l.global.dispatchEvent(t),function(t,e){var r=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!l.global.dispatchEvent(r)}}return\"function\"==typeof Event?(t=new Event(\"CustomEvent\"),l.global.dispatchEvent(t),function(t,e){var r=new Event(t.toLowerCase(),{cancelable:!0});return r.detail=e,!l.global.dispatchEvent(r)}):((t=document.createEvent(\"CustomEvent\")).initCustomEvent(\"testingtheevent\",!1,!0,{}),l.global.dispatchEvent(t),function(t,e){var r=document.createEvent(\"CustomEvent\");return r.initCustomEvent(t.toLowerCase(),!1,!0,e),!l.global.dispatchEvent(r)})}catch(t){}return function(){return!1}}(),x=l.isNode?function(){return e.emit.apply(e,arguments)}:l.global?function(t){var e=\"on\"+t.toLowerCase(),r=l.global[e];return!!r&&(r.apply(l.global,[].slice.call(arguments,1)),!0)}:function(){return!1};function j(t,e){return{promise:e}}var S={promiseCreated:j,promiseFulfilled:j,promiseRejected:j,promiseResolved:j,promiseCancelled:j,promiseChained:function(t,e,r){return{promise:e,child:r}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,r){return{reason:e,promise:r}},rejectionHandled:j},R=function(t){var e=!1;try{e=x.apply(null,arguments)}catch(t){u.throwLater(t),e=!0}var r=!1;try{r=C(t,S[t].apply(null,arguments))}catch(t){u.throwLater(t),r=!0}return r||e};function k(){return!1}function T(t,e,r){var n=this;try{t(e,r,function(t){if(\"function\"!=typeof t)throw new TypeError(\"onCancel must be a function, got: \"+l.toString(t));n._attachCancellationCallback(t)})}catch(t){return t}}function P(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?l.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function O(){return this._onCancelField}function A(t){this._onCancelField=t}function F(){this._cancellationParent=void 0,this._onCancelField=void 0}function L(t,e){if(0!=(1&e)){this._cancellationParent=t;var r=t._branchesRemainingToCancel;void 0===r&&(r=0),t._branchesRemainingToCancel=r+1}0!=(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}r.config=function(t){if(\"longStackTraces\"in(t=Object(t))&&(t.longStackTraces?r.longStackTraces():!t.longStackTraces&&r.hasLongStackTraces()&&E()),\"warnings\"in t){var e=t.warnings;J.warnings=!!e,w=J.warnings,l.isObject(e)&&\"wForgottenReturn\"in e&&(w=!!e.wForgottenReturn)}if(\"cancellation\"in t&&t.cancellation&&!J.cancellation){if(u.haveItemsQueued())throw new Error(\"cannot enable cancellation after promises are in use\");r.prototype._clearCancellationData=F,r.prototype._propagateFrom=L,r.prototype._onCancel=O,r.prototype._setOnCancel=A,r.prototype._attachCancellationCallback=P,r.prototype._execute=T,M=L,J.cancellation=!0}return\"monitoring\"in t&&(t.monitoring&&!J.monitoring?(J.monitoring=!0,r.prototype._fireEvent=R):!t.monitoring&&J.monitoring&&(J.monitoring=!1,r.prototype._fireEvent=k)),r},r.prototype._fireEvent=k,r.prototype._execute=function(t,e,r){try{t(e,r)}catch(t){return t}},r.prototype._onCancel=function(){},r.prototype._setOnCancel=function(t){},r.prototype._attachCancellationCallback=function(t){},r.prototype._captureStackTrace=function(){},r.prototype._attachExtraTrace=function(){},r.prototype._clearCancellationData=function(){},r.prototype._propagateFrom=function(t,e){};var M=function(t,e){0!=(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)};function B(){var t=this._boundTo;return void 0!==t&&t instanceof r?t.isFulfilled()?t.value():void 0:t}function D(){this._trace=new X(this._peekContext())}function I(t,e){if(f(t)){var r=this._trace;if(void 0!==r&&e&&(r=r._parent),void 0!==r)r.attachExtraTrace(t);else if(!t.__stackCleaned__){var n=H(t);l.notEnumerableProp(t,\"stack\",n.message+\"\\n\"+n.stack.join(\"\\n\")),l.notEnumerableProp(t,\"__stackCleaned__\",!0)}}}function U(t,e,n){if(J.warnings){var i,o=new c(t);if(e)n._attachExtraTrace(o);else if(J.longStackTraces&&(i=r._peekContext()))i.attachExtraTrace(o);else{var s=H(o);o.stack=s.message+\"\\n\"+s.stack.join(\"\\n\")}R(\"warning\",o)||V(o,\"\",!0)}}function N(t){for(var e=[],r=0;r0?function(t){for(var e=t.stack.replace(/\\s+$/g,\"\").split(\"\\n\"),r=0;r0&&\"SyntaxError\"!=t.name&&(e=e.slice(r)),e}(t):[\" (No stack trace)\"],{message:r,stack:\"SyntaxError\"==t.name?e:N(e)}}function V(t,e,r){if(\"undefined\"!=typeof console){var n;if(l.isObject(t)){var i=t.stack;n=e+v(i,t)}else n=e+String(t);\"function\"==typeof s?s(n,r):\"function\"!=typeof console.log&&\"object\"!=typeof console.log||console.log(n)}}function q(t,e,r,n){var i=!1;try{\"function\"==typeof e&&(i=!0,\"rejectionHandled\"===t?e(n):e(r,n))}catch(t){u.throwLater(t)}\"unhandledRejection\"===t?R(t,r,n)||i||V(r,\"Unhandled rejection \"):R(t,n)}function W(t){var e;if(\"function\"==typeof t)e=\"[function \"+(t.name||\"anonymous\")+\"]\";else{if(e=t&&\"function\"==typeof t.toString?t.toString():l.toString(t),/\\[object [a-zA-Z0-9$_]+\\]/.test(e))try{e=JSON.stringify(t)}catch(t){}0===e.length&&(e=\"(empty array)\")}return\"(<\"+function(t){return t.length<41?t:t.substr(0,38)+\"...\"}(e)+\">, no stack trace)\"}function Y(){return\"function\"==typeof G}var $=function(){return!1},z=/[\\/<\\(]([^:\\/]+):(\\d+):(?:\\d+)\\)?\\s*$/;function Q(t){var e=t.match(z);if(e)return{fileName:e[1],line:parseInt(e[2],10)}}function X(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);G(this,X),e>32&&this.uncycle()}l.inherits(X,Error),n.CapturedTrace=X,X.prototype.uncycle=function(){var t=this._length;if(!(t<2)){for(var e=[],r={},n=0,i=this;void 0!==i;++n)e.push(i),i=i._parent;for(n=(t=this._length=n)-1;n>=0;--n){var o=e[n].stack;void 0===r[o]&&(r[o]=n)}for(n=0;n0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[n]._parent=void 0,e[n]._length=1;var a=n>0?e[n-1]:this;s=0;--c)e[c]._length=u,u++;return}}}},X.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=H(t),r=e.message,n=[e.stack],i=this;void 0!==i;)n.push(N(i.stack.split(\"\\n\"))),i=i._parent;!function(t){for(var e=t[0],r=1;r=0;--a)if(n[a]===o){s=a;break}for(a=s;a>=0;--a){var u=n[a];if(e[i]!==u)break;e.pop(),i--}e=n}}(n),function(t){for(var e=0;e=0)return _=/@/,v=e,y=!0,function(t){t.stack=(new Error).stack};try{throw new Error}catch(t){n=\"stack\"in t}return\"stack\"in i||!n||\"number\"!=typeof Error.stackTraceLimit?(v=function(t,e){return\"string\"==typeof t?t:\"object\"!=typeof e&&\"function\"!=typeof e||void 0===e.name||void 0===e.message?W(e):e.toString()},null):(_=t,v=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}();\"undefined\"!=typeof console&&void 0!==console.warn&&(s=function(t){console.warn(t)},l.isNode&&e.stderr.isTTY?s=function(t,e){var r=e?\"\u001b[33m\":\"\u001b[31m\";console.warn(r+t+\"\u001b[0m\\n\")}:l.isNode||\"string\"!=typeof(new Error).stack||(s=function(t,e){console.warn(\"%c\"+t,e?\"color: darkorange\":\"color: red\")}));var J={warnings:g,longStackTraces:!1,cancellation:!1,monitoring:!1};return b&&r.longStackTraces(),{longStackTraces:function(){return J.longStackTraces},warnings:function(){return J.warnings},cancellation:function(){return J.cancellation},monitoring:function(){return J.monitoring},propagateFromFunction:function(){return M},boundValueFunction:function(){return B},checkForgottenReturns:function(t,e,r,n,i){if(void 0===t&&null!==e&&w){if(void 0!==i&&i._returnedNonUndefined())return;if(0==(65535&n._bitField))return;r&&(r+=\" \");var o=\"\",s=\"\";if(e._trace){for(var a=e._trace.stack.split(\"\\n\"),u=N(a),c=u.length-1;c>=0;--c){var l=u[c];if(!p.test(l)){var f=l.match(d);f&&(o=\"at \"+f[1]+\":\"+f[2]+\":\"+f[3]+\" \");break}}if(u.length>0){var h=u[0];for(c=0;c0&&(s=\"\\n\"+a[c-1]);break}}}var _=\"a promise was created in a \"+r+\"handler \"+o+\"but was not returned from it, see http://goo.gl/rRqMUw\"+s;n._warn(_,!0,e)}},setBounds:function(t,e){if(Y()){for(var r,n,i=t.stack.split(\"\\n\"),o=e.stack.split(\"\\n\"),s=-1,a=-1,u=0;u=a||($=function(t){if(h.test(t))return!0;var e=Q(t);return!!(e&&e.fileName===r&&s<=e.line&&e.line<=a)})}},warn:U,deprecated:function(t,e){var r=t+\" is deprecated and will be removed in a future version.\";return e&&(r+=\" Use \"+e+\" instead.\"),U(r)},CapturedTrace:X,fireDomEvent:C,fireGlobalEvent:x}}},{\"./errors\":12,\"./util\":36}],10:[function(t,e,r){\"use strict\";e.exports=function(t){function e(){return this.value}function r(){throw this.reason}t.prototype.return=t.prototype.thenReturn=function(r){return r instanceof t&&r.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:r},void 0)},t.prototype.throw=t.prototype.thenThrow=function(t){return this._then(r,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,r,void 0,{reason:t},void 0);var e=arguments[1];return this.caught(t,function(){throw e})},t.prototype.catchReturn=function(r){if(arguments.length<=1)return r instanceof t&&r.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:r},void 0);var n=arguments[1];return n instanceof t&&n.suppressUnhandledRejections(),this.caught(r,function(){return n})}}},{}],11:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r=t.reduce,n=t.all;function i(){return n(this)}t.prototype.each=function(t){return r(this,t,e,0)._then(i,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return r(this,t,e,e)},t.each=function(t,n){return r(t,n,e,0)._then(i,void 0,void 0,t,void 0)},t.mapSeries=function(t,n){return r(t,n,e,e)}}},{}],12:[function(t,e,r){\"use strict\";var n,i,o=t(\"./es5\"),s=o.freeze,a=t(\"./util\"),u=a.inherits,c=a.notEnumerableProp;function l(t,e){function r(n){if(!(this instanceof r))return new r(n);c(this,\"message\",\"string\"==typeof n?n:e),c(this,\"name\",t),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this)}return u(r,Error),r}var f=l(\"Warning\",\"warning\"),h=l(\"CancellationError\",\"cancellation error\"),p=l(\"TimeoutError\",\"timeout error\"),d=l(\"AggregateError\",\"aggregate error\");try{n=TypeError,i=RangeError}catch(t){n=l(\"TypeError\",\"type error\"),i=l(\"RangeError\",\"range error\")}for(var _=\"join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse\".split(\" \"),v=0;v<_.length;++v)\"function\"==typeof Array.prototype[_[v]]&&(d.prototype[_[v]]=Array.prototype[_[v]]);o.defineProperty(d.prototype,\"length\",{value:0,configurable:!1,writable:!0,enumerable:!0}),d.prototype.isOperational=!0;var y=0;function m(t){if(!(this instanceof m))return new m(t);c(this,\"name\",\"OperationalError\"),c(this,\"message\",t),this.cause=t,this.isOperational=!0,t instanceof Error?(c(this,\"message\",t.message),c(this,\"stack\",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}d.prototype.toString=function(){var t=Array(4*y+1).join(\" \"),e=\"\\n\"+t+\"AggregateError of:\\n\";y++,t=Array(4*y+1).join(\" \");for(var r=0;r1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0)}function f(){return p.call(this,this.promise._target()._settledValue())}function h(t){if(!l(this,t))return s.e=t,s}function p(t){var i=this.promise,a=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?a.call(i._boundValue()):a.call(i._boundValue(),t);if(u===n)return u;if(void 0!==u){i._setReturnedNonUndefined();var p=r(u,i);if(p instanceof e){if(null!=this.cancelPromise){if(p._isCancelled()){var d=new o(\"late cancellation observer\");return i._attachExtraTrace(d),s.e=d,s}p.isPending()&&p._attachCancellationCallback(new c(this))}return p._then(f,h,void 0,this,void 0)}}}return i.isRejected()?(l(this),s.e=t,s):(l(this),t)}return u.prototype.isFinallyHandler=function(){return 0===this.type},c.prototype._resultCancelled=function(){l(this.finallyHandler)},e.prototype._passThrough=function(t,e,r,n){return\"function\"!=typeof t?this.then():this._then(r,n,void 0,new u(this,e,t),void 0)},e.prototype.lastly=e.prototype.finally=function(t){return this._passThrough(t,0,p,p)},e.prototype.tap=function(t){return this._passThrough(t,1,p)},e.prototype.tapCatch=function(t){var r=arguments.length;if(1===r)return this._passThrough(t,1,void 0,p);var n,o=new Array(r-1),s=0;for(n=0;n0&&\"function\"==typeof arguments[e]&&(t=arguments[e]);var n=[].slice.call(arguments);t&&n.pop();var i=new r(n).promise();return void 0!==t?i.spread(t):i}}},{\"./util\":36}],18:[function(t,e,r){\"use strict\";e.exports=function(e,r,n,i,o,s){var a=e._getDomain,u=t(\"./util\"),c=u.tryCatch,l=u.errorObj,f=e._async;function h(t,e,r,n){this.constructor$(t),this._promise._captureStackTrace();var i=a();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=n===o?new Array(this.length()):null,this._limit=r,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function p(t,r,i,o){if(\"function\"!=typeof r)return n(\"expecting a function but got \"+u.classString(r));var s=0;if(void 0!==i){if(\"object\"!=typeof i||null===i)return e.reject(new TypeError(\"options argument must be an object but it is \"+u.classString(i)));if(\"number\"!=typeof i.concurrency)return e.reject(new TypeError(\"'concurrency' must be a number but it is \"+u.classString(i.concurrency)));s=i.concurrency}return new h(t,r,s=\"number\"==typeof s&&isFinite(s)&&s>=1?s:0,o).promise()}u.inherits(h,r),h.prototype._asyncInit=function(){this._init$(void 0,-2)},h.prototype._init=function(){},h.prototype._promiseFulfilled=function(t,r){var n=this._values,o=this.length(),a=this._preservedValues,u=this._limit;if(r<0){if(n[r=-1*r-1]=t,u>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(u>=1&&this._inFlight>=u)return n[r]=t,this._queue.push(r),!1;null!==a&&(a[r]=t);var f=this._promise,h=this._callback,p=f._boundValue();f._pushContext();var d=c(h).call(p,t,r,o),_=f._popContext();if(s.checkForgottenReturns(d,_,null!==a?\"Promise.filter\":\"Promise.map\",f),d===l)return this._reject(d.e),!0;var v=i(d,this._promise);if(v instanceof e){var y=(v=v._target())._bitField;if(0==(50397184&y))return u>=1&&this._inFlight++,n[r]=v,v._proxy(this,-1*(r+1)),!1;if(0==(33554432&y))return 0!=(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);d=v._value()}n[r]=d}return++this._totalResolved>=o&&(null!==a?this._filter(n,a):this._resolve(n),!0)},h.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,r=this._values;t.length>0&&this._inFlight1){o.deprecated(\"calling Promise.try with more than 1 argument\");var c=arguments[1],l=arguments[2];n=s.isArray(c)?a(t).apply(l,c):a(t).call(l,c)}else n=a(t)();var f=u._popContext();return o.checkForgottenReturns(n,f,\"Promise.try\",u),u._resolveFromSyncValue(n),u},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{\"./util\":36}],20:[function(t,e,r){\"use strict\";var n=t(\"./util\"),i=n.maybeWrapAsError,o=t(\"./errors\").OperationalError,s=t(\"./es5\"),a=/^(?:name|message|stack|cause)$/;function u(t){var e;if(function(t){return t instanceof Error&&s.getPrototypeOf(t)===Error.prototype}(t)){(e=new o(t)).name=t.name,e.message=t.message,e.stack=t.stack;for(var r=s.keys(t),i=0;i1){var r,n=new Array(e-1),i=0;for(r=0;r0&&\"function\"!=typeof t&&\"function\"!=typeof e){var r=\".then() only accepts functions but was passed: \"+c.classString(t);arguments.length>1&&(r+=\", \"+c.classString(e)),this._warn(r)}return this._then(t,e,void 0,void 0,void 0)},T.prototype.done=function(t,e){this._then(t,e,void 0,void 0,void 0)._setIsFinal()},T.prototype.spread=function(t){return\"function\"!=typeof t?o(\"expecting a function but got \"+c.classString(t)):this.all()._then(t,void 0,void 0,y,void 0)},T.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},T.prototype.all=function(){return arguments.length>0&&this._warn(\".all() was passed arguments but it does not take any\"),new b(this).promise()},T.prototype.error=function(t){return this.caught(c.originatesFromRejection,t)},T.getNewLibraryCopy=r.exports,T.is=function(t){return t instanceof T},T.fromNode=T.fromCallback=function(t){var e=new T(v);e._captureStackTrace();var r=arguments.length>1&&!!Object(arguments[1]).multiArgs,n=k(t)(S(e,r));return n===R&&e._rejectCallback(n.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},T.all=function(t){return new b(t).promise()},T.cast=function(t){var e=g(t);return e instanceof T||((e=new T(v))._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},T.resolve=T.fulfilled=T.cast,T.reject=T.rejected=function(t){var e=new T(v);return e._captureStackTrace(),e._rejectCallback(t,!0),e},T.setScheduler=function(t){if(\"function\"!=typeof t)throw new d(\"expecting a function but got \"+c.classString(t));return h.setScheduler(t)},T.prototype._then=function(t,e,r,n,i){var o=void 0!==i,s=o?i:new T(v),u=this._target(),l=u._bitField;o||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===n&&0!=(2097152&this._bitField)&&(n=0!=(50397184&l)?this._boundValue():u===this?void 0:this._boundTo),this._fireEvent(\"promiseChained\",this,s));var f=a();if(0!=(50397184&l)){var p,d,y=u._settlePromiseCtx;0!=(33554432&l)?(d=u._rejectionHandler0,p=t):0!=(16777216&l)?(d=u._fulfillmentHandler0,p=e,u._unsetRejectionIsUnhandled()):(y=u._settlePromiseLateCancellationObserver,d=new _(\"late cancellation observer\"),u._attachExtraTrace(d),p=e),h.invoke(y,u,{handler:null===f?p:\"function\"==typeof p&&c.domainBind(f,p),promise:s,receiver:n,value:d})}else u._addCallbacks(t,e,s,n,f);return s},T.prototype._length=function(){return 65535&this._bitField},T.prototype._isFateSealed=function(){return 0!=(117506048&this._bitField)},T.prototype._isFollowing=function(){return 67108864==(67108864&this._bitField)},T.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},T.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent(\"promiseFulfilled\",this)},T.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent(\"promiseRejected\",this)},T.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent(\"promiseResolved\",this)},T.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},T.prototype._isFinal=function(){return(4194304&this._bitField)>0},T.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},T.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent(\"promiseCancelled\",this)},T.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},T.prototype._setAsyncGuaranteed=function(){h.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},T.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];if(e!==u)return void 0===e&&this._isBound()?this._boundValue():e},T.prototype._promiseAt=function(t){return this[4*t-4+2]},T.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},T.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},T.prototype._boundValue=function(){},T.prototype._migrateCallback0=function(t){t._bitField;var e=t._fulfillmentHandler0,r=t._rejectionHandler0,n=t._promise0,i=t._receiverAt(0);void 0===i&&(i=u),this._addCallbacks(e,r,n,i,null)},T.prototype._migrateCallbackAt=function(t,e){var r=t._fulfillmentHandlerAt(e),n=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=u),this._addCallbacks(r,n,i,o,null)},T.prototype._addCallbacks=function(t,e,r,n,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=r,this._receiver0=n,\"function\"==typeof t&&(this._fulfillmentHandler0=null===i?t:c.domainBind(i,t)),\"function\"==typeof e&&(this._rejectionHandler0=null===i?e:c.domainBind(i,e));else{var s=4*o-4;this[s+2]=r,this[s+3]=n,\"function\"==typeof t&&(this[s+0]=null===i?t:c.domainBind(i,t)),\"function\"==typeof e&&(this[s+1]=null===i?e:c.domainBind(i,e))}return this._setLength(o+1),o},T.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},T.prototype._resolveCallback=function(t,e){if(0==(117506048&this._bitField)){if(t===this)return this._rejectCallback(n(),!1);var r=g(t,this);if(!(r instanceof T))return this._fulfill(t);e&&this._propagateFrom(r,2);var i=r._target();if(i!==this){var o=i._bitField;if(0==(50397184&o)){var s=this._length();s>0&&i._migrateCallback0(this);for(var a=1;a>>16)){if(t===this){var r=n();return this._attachExtraTrace(r),this._reject(r)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!=(134217728&e)?this._settlePromises():h.settlePromises(this))}},T.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(this._setRejected(),this._fulfillmentHandler0=t,this._isFinal())return h.fatalError(t,c.isNode);(65535&e)>0?h.settlePromises(this):this._ensurePossibleRejectionHandled()}},T.prototype._fulfillPromises=function(t,e){for(var r=1;r0){if(0!=(16842752&t)){var r=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,r,t),this._rejectPromises(e,r)}else{var n=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,n,t),this._fulfillPromises(e,n)}this._setLength(0)}this._clearCancellationData()},T.prototype._settledValue=function(){var t=this._bitField;return 0!=(33554432&t)?this._rejectionHandler0:0!=(16777216&t)?this._fulfillmentHandler0:void 0},T.defer=T.pending=function(){return C.deprecated(\"Promise.defer\",\"new Promise\"),{promise:new T(v),resolve:P,reject:O}},c.notEnumerableProp(T,\"_makeSelfResolutionError\",n),t(\"./method\")(T,v,g,o,C),t(\"./bind\")(T,v,g,C),t(\"./cancel\")(T,b,o,C),t(\"./direct_resolve\")(T),t(\"./synchronous_inspection\")(T),t(\"./join\")(T,b,g,v,h,a),T.Promise=T,T.version=\"3.5.1\",t(\"./map.js\")(T,b,o,g,v,C),t(\"./call_get.js\")(T),t(\"./using.js\")(T,o,g,E,v,C),t(\"./timers.js\")(T,v,C),t(\"./generators.js\")(T,o,v,g,s,C),t(\"./nodeify.js\")(T),t(\"./promisify.js\")(T,v),t(\"./props.js\")(T,b,g,o),t(\"./race.js\")(T,v,g,o),t(\"./reduce.js\")(T,b,o,g,v,C),t(\"./settle.js\")(T,b,C),t(\"./some.js\")(T,b,o),t(\"./filter.js\")(T,v),t(\"./each.js\")(T,v),t(\"./any.js\")(T),c.toFastProperties(T),c.toFastProperties(T.prototype),A({a:1}),A({b:2}),A({c:3}),A(1),A(function(){}),A(void 0),A(!1),A(new T(v)),C.setBounds(f.firstLineError,c.lastLineError),T}},{\"./any.js\":1,\"./async\":2,\"./bind\":3,\"./call_get.js\":5,\"./cancel\":6,\"./catch_filter\":7,\"./context\":8,\"./debuggability\":9,\"./direct_resolve\":10,\"./each.js\":11,\"./errors\":12,\"./es5\":13,\"./filter.js\":14,\"./finally\":15,\"./generators.js\":16,\"./join\":17,\"./map.js\":18,\"./method\":19,\"./nodeback\":20,\"./nodeify.js\":21,\"./promise_array\":23,\"./promisify.js\":24,\"./props.js\":25,\"./race.js\":27,\"./reduce.js\":28,\"./settle.js\":30,\"./some.js\":31,\"./synchronous_inspection\":32,\"./thenables\":33,\"./timers.js\":34,\"./using.js\":35,\"./util\":36}],23:[function(t,e,r){\"use strict\";e.exports=function(e,r,n,i,o){var s=t(\"./util\");function a(t){var n=this._promise=new e(r);t instanceof e&&n._propagateFrom(t,3),n._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}return s.isArray,s.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function t(r,o){var a=n(this._values,this._promise);if(a instanceof e){var u=(a=a._target())._bitField;if(this._values=a,0==(50397184&u))return this._promise._setAsyncGuaranteed(),a._then(t,this._reject,void 0,this,o);if(0==(33554432&u))return 0!=(16777216&u)?this._reject(a._reason()):this._cancel();a=a._value()}if(null!==(a=s.asArray(a)))0!==a.length?this._iterate(a):-5===o?this._resolveEmptyArray():this._resolve(function(t){switch(o){case-2:return[];case-3:return{};case-6:return new Map}}());else{var c=i(\"expecting an array or an iterable object but got \"+s.classString(a)).reason();this._promise._rejectCallback(c,!1)}},a.prototype._iterate=function(t){var r=this.getActualLength(t.length);this._length=r,this._values=this.shouldCopyValues()?new Array(r):this._values;for(var i=this._promise,o=!1,s=null,a=0;a=this._length&&(this._resolve(this._values),!0)},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var r=0;r=this._length){var r;if(this._isMap)r=function(t){for(var e=new o,r=t.length/2|0,n=0;n>1},e.prototype.props=function(){return f(this)},e.props=function(t){return f(t)}}},{\"./es5\":13,\"./util\":36}],26:[function(t,e,r){\"use strict\";function n(t){this._capacity=t,this._length=0,this._front=0}n.prototype._willBeOverCapacity=function(t){return this._capacity=this._length&&(this._resolve(this._values),!0)},o.prototype._promiseFulfilled=function(t,e){var r=new i;return r._bitField=33554432,r._settledValueField=t,this._promiseResolved(e,r)},o.prototype._promiseRejected=function(t,e){var r=new i;return r._bitField=16777216,r._settledValueField=t,this._promiseResolved(e,r)},e.settle=function(t){return n.deprecated(\".settle()\",\".reflect()\"),new o(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{\"./util\":36}],31:[function(t,e,r){\"use strict\";e.exports=function(e,r,n){var i=t(\"./util\"),o=t(\"./errors\").RangeError,s=t(\"./errors\").AggregateError,a=i.isArray,u={};function c(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function l(t,e){if((0|e)!==e||e<0)return n(\"expecting a positive integer\\n\\n See http://goo.gl/MqrFmX\\n\");var r=new c(t),i=r.promise();return r.setHowMany(e),r.init(),i}i.inherits(c,r),c.prototype._init=function(){if(this._initialized)if(0!==this._howMany){this._init$(void 0,-5);var t=a(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}else this._resolve([])},c.prototype.init=function(){this._initialized=!0,this._init()},c.prototype.setUnwrap=function(){this._unwrap=!0},c.prototype.howMany=function(){return this._howMany},c.prototype.setHowMany=function(t){this._howMany=t},c.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0)},c.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},c.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},c.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new s,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},c.prototype._fulfilled=function(){return this._totalResolved},c.prototype._rejected=function(){return this._values.length-this.length()},c.prototype._addRejected=function(t){this._values.push(t)},c.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},c.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},c.prototype._getRangeError=function(t){var e=\"Input array must contain at least \"+this._howMany+\" items but contains only \"+t+\" items\";return new o(e)},c.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return l(t,e)},e.prototype.some=function(t){return l(this,t)},e._SomePromiseArray=c}},{\"./errors\":12,\"./util\":36}],32:[function(t,e,r){\"use strict\";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var r=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError(\"cannot get fulfillment value of a non-fulfilled promise\\n\\n See http://goo.gl/MqrFmX\\n\");return this._settledValue()},n=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError(\"cannot get rejection reason of a non-rejected promise\\n\\n See http://goo.gl/MqrFmX\\n\");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!=(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!=(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0==(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!=(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!=(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536==(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!=(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return r.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),n.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,r){\"use strict\";e.exports=function(e,r){var n=t(\"./util\"),i=n.errorObj,o=n.isObject,s={}.hasOwnProperty;return function(t,a){if(o(t)){if(t instanceof e)return t;var u=function(t){try{return function(t){return t.then}(t)}catch(t){return i.e=t,i}}(t);if(u===i){a&&a._pushContext();var c=e.reject(u.e);return a&&a._popContext(),c}if(\"function\"==typeof u)return function(t){try{return s.call(t,\"_promise0\")}catch(t){return!1}}(t)?(c=new e(r),t._then(c._fulfill,c._reject,void 0,c,null),c):function(t,o,s){var a=new e(r),u=a;s&&s._pushContext(),a._captureStackTrace(),s&&s._popContext();var c=!0,l=n.tryCatch(o).call(t,function(t){a&&(a._resolveCallback(t),a=null)},function(t){a&&(a._rejectCallback(t,c,!0),a=null)});return c=!1,a&&l===i&&(a._rejectCallback(l.e,!0,!0),a=null),u}(t,u,a)}return t}}},{\"./util\":36}],34:[function(t,e,r){\"use strict\";e.exports=function(e,r,n){var i=t(\"./util\"),o=e.TimeoutError;function s(t){this.handle=t}s.prototype._resultCancelled=function(){clearTimeout(this.handle)};var a=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,i){var o,u;return void 0!==i?(o=e.resolve(i)._then(a,null,null,t,void 0),n.cancellation()&&i instanceof e&&o._setOnCancel(i)):(o=new e(r),u=setTimeout(function(){o._fulfill()},+t),n.cancellation()&&o._setOnCancel(new s(u)),o._captureStackTrace()),o._setAsyncGuaranteed(),o};function c(t){return clearTimeout(this.handle),t}function l(t){throw clearTimeout(this.handle),t}e.prototype.delay=function(t){return u(t,this)},e.prototype.timeout=function(t,e){var r,a;t=+t;var u=new s(setTimeout(function(){r.isPending()&&function(t,e,r){var n;n=\"string\"!=typeof e?e instanceof Error?e:new o(\"operation timed out\"):new o(e),i.markAsOriginatingFromRejection(n),t._attachExtraTrace(n),t._reject(n),null!=r&&r.cancel()}(r,e,a)},t));return n.cancellation()?(a=this.then(),(r=a._then(c,l,void 0,u,void 0))._setOnCancel(u)):r=this._then(c,l,void 0,u,void 0),r}}},{\"./util\":36}],35:[function(t,e,r){\"use strict\";e.exports=function(e,r,n,i,o,s){var a=t(\"./util\"),u=t(\"./errors\").TypeError,c=t(\"./util\").inherits,l=a.errorObj,f=a.tryCatch,h={};function p(t){setTimeout(function(){throw t},0)}function d(t,r){var i=0,s=t.length,a=new e(o);return function o(){if(i>=s)return a._fulfill();var u=function(t){var e=n(t);return e!==t&&\"function\"==typeof t._isDisposable&&\"function\"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}(t[i++]);if(u instanceof e&&u._isDisposable()){try{u=n(u._getDisposer().tryDispose(r),t.promise)}catch(t){return p(t)}if(u instanceof e)return u._then(o,p,null,null,null)}o()}(),a}function _(t,e,r){this._data=t,this._promise=e,this._context=r}function v(t,e,r){this.constructor$(t,e,r)}function y(t){return _.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function m(t){this.length=t,this.promise=null,this[t-1]=null}_.prototype.data=function(){return this._data},_.prototype.promise=function(){return this._promise},_.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():h},_.prototype.tryDispose=function(t){var e=this.resource(),r=this._context;void 0!==r&&r._pushContext();var n=e!==h?this.doDispose(e,t):null;return void 0!==r&&r._popContext(),this._promise._unsetDisposable(),this._data=null,n},_.isDisposer=function(t){return null!=t&&\"function\"==typeof t.resource&&\"function\"==typeof t.tryDispose},c(v,_),v.prototype.doDispose=function(t,e){return this.data().call(t,t,e)},m.prototype._resultCancelled=function(){for(var t=this.length,r=0;r0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if(\"function\"==typeof t)return new v(t,this,i());throw new u}}},{\"./errors\":12,\"./util\":36}],36:[function(t,n,i){\"use strict\";var o,s=t(\"./es5\"),a=\"undefined\"==typeof navigator,u={e:{}},c=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==r?r:void 0!==this?this:null;function l(){try{var t=o;return o=null,t.apply(this,arguments)}catch(t){return u.e=t,u}}function f(t){return null==t||!0===t||!1===t||\"string\"==typeof t||\"number\"==typeof t}function h(t,e,r){if(f(t))return t;var n={value:r,configurable:!0,enumerable:!1,writable:!0};return s.defineProperty(t,e,n),t}var p=function(){var t=[Array.prototype,Object.prototype,Function.prototype],e=function(e){for(var r=0;r1,n=e.length>0&&!(1===e.length&&\"constructor\"===e[0]),i=d.test(t+\"\")&&s.names(t).length>0;if(r||n||i)return!0}return!1}catch(t){return!1}},isIdentifier:function(t){return _.test(t)},inheritedDataKeys:p,getDataPropertyOrDefault:function(t,e,r){if(!s.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var n=Object.getOwnPropertyDescriptor(t,e);return null!=n?null==n.get&&null==n.set?n.value:r:void 0},thrower:function(t){throw t},isArray:s.isArray,asArray:w,notEnumerableProp:h,isPrimitive:f,isObject:function(t){return\"function\"==typeof t||\"object\"==typeof t&&null!==t},isError:y,canEvaluate:a,errorObj:u,tryCatch:function(t){return o=t,l},inherits:function(t,e){var r={}.hasOwnProperty;function n(){for(var n in this.constructor=t,this.constructor$=e,e.prototype)r.call(e.prototype,n)&&\"$\"!==n.charAt(n.length-1)&&(this[n+\"$\"]=e.prototype[n])}return n.prototype=e.prototype,t.prototype=new n,t.prototype},withAppended:function(t,e){var r,n=t.length,i=new Array(n+1);for(r=0;r10||t[0]>0}(),j.isNode&&j.toFastProperties(e);try{throw new Error}catch(t){j.lastLineError=t}n.exports=j},{\"./es5\":13}]},{},[4])(4),\"undefined\"!=typeof window&&null!==window?window.P=window.Promise:\"undefined\"!=typeof self&&null!==self&&(self.P=self.Promise)}).call(this,r(4),r(0),r(11).setImmediate)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function(t,e){if(!e.eol&&t)for(var r=0,n=t.length;r0?(\"string\"==typeof e||s.objectMode||Object.getPrototypeOf(e)===c.prototype||(e=function(t){return c.from(t)}(e)),n?s.endEmitted?t.emit(\"error\",new Error(\"stream.unshift() after end event\")):w(t,s,e,!0):s.ended?t.emit(\"error\",new Error(\"stream.push() after EOF\")):(s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?w(t,s,e,!1):S(t,s)):w(t,s,e,!1))):n||(s.reading=!1)),function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=E?t=E:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function x(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(p(\"emitReadable\",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(j,t):j(t))}function j(t){p(\"emit readable\"),t.emit(\"readable\"),P(t)}function S(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(R,t,e))}function R(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(\"\"):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;return to.length?o.length:t;if(s===o.length?i+=o:i+=o.slice(0,t),0==(t-=s)){s===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(s));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=c.allocUnsafe(t),n=e.head,i=1;for(n.data.copy(r),t-=n.data.length;n=n.next;){var o=n.data,s=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,s),0==(t-=s)){s===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(s));break}++i}return e.length-=i,r}(t,e),n}(t,e.buffer,e.decoder),r);var r}function A(t){var e=t._readableState;if(e.length>0)throw new Error('\"endReadable()\" called on non-empty stream');e.endEmitted||(e.ended=!0,i.nextTick(F,e,t))}function F(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit(\"end\"))}function L(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return p(\"read: emitReadable\",e.length,e.ended),0===e.length&&e.ended?A(this):x(this),null;if(0===(t=C(t,e))&&e.ended)return 0===e.length&&A(this),null;var n,i=e.needReadable;return p(\"need readable\",i),(0===e.length||e.length-t0?O(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&A(this)),null!==n&&this.emit(\"data\",n),n},g.prototype._read=function(t){this.emit(\"error\",new Error(\"_read() is not implemented\"))},g.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,p(\"pipe count=%d opts=%j\",o.pipesCount,e);var u=e&&!1===e.end||t===n.stdout||t===n.stderr?m:c;function c(){p(\"onend\"),t.end()}o.endEmitted?i.nextTick(u):r.once(\"end\",u),t.on(\"unpipe\",function e(n,i){p(\"onunpipe\"),n===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,p(\"cleanup\"),t.removeListener(\"close\",v),t.removeListener(\"finish\",y),t.removeListener(\"drain\",l),t.removeListener(\"error\",_),t.removeListener(\"unpipe\",e),r.removeListener(\"end\",c),r.removeListener(\"end\",m),r.removeListener(\"data\",d),f=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||l())});var l=function(t){return function(){var e=t._readableState;p(\"pipeOnDrain\",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,\"data\")&&(e.flowing=!0,P(t))}}(r);t.on(\"drain\",l);var f=!1,h=!1;function d(e){p(\"ondata\"),h=!1,!1!==t.write(e)||h||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==L(o.pipes,t))&&!f&&(p(\"false write response, pause\",r._readableState.awaitDrain),r._readableState.awaitDrain++,h=!0),r.pause())}function _(e){p(\"onerror\",e),m(),t.removeListener(\"error\",_),0===a(t,\"error\")&&t.emit(\"error\",e)}function v(){t.removeListener(\"finish\",y),m()}function y(){p(\"onfinish\"),t.removeListener(\"close\",v),m()}function m(){p(\"unpipe\"),r.unpipe(t)}return r.on(\"data\",d),function(t,e,r){if(\"function\"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?s(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,\"error\",_),t.once(\"close\",v),t.once(\"finish\",y),t.emit(\"pipe\",r),o.flowing||(p(\"pipe resume\"),r.resume()),t},g.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit(\"unpipe\",this,r),this);if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function a(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,\"�\";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,\"�\";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,\"�\"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var r=t.toString(\"utf16le\",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString(\"utf16le\",e,t.length-1)}function c(t){var e=t&&t.length?this.write(t):\"\";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString(\"utf16le\",0,r)}return e}function l(t,e){var r=(t.length-e)%3;return 0===r?t.toString(\"base64\",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString(\"base64\",e,t.length-r))}function f(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+this.lastChar.toString(\"base64\",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function p(t){return t&&t.length?this.write(t):\"\"}e.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return\"\";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return\"\";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0?(i>0&&(t.lastNeed=i-1),i):--n=0?(i>0&&(t.lastNeed=i-2),i):--n=0?(i>0&&(2===i?i=0:t.lastNeed=i-3),i):0}(this,t,e);if(!this.lastNeed)return t.toString(\"utf8\",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString(\"utf8\",e,n)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},function(t,e,r){\"use strict\";t.exports=o;var n=r(1),i=r(5);function o(t){if(!(this instanceof o))return new o(t);n.call(this,t),this._transformState={afterTransform:function(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit(\"error\",new Error(\"write callback called multiple times\"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length-1&&r.push(t[n]);return r},e.trimLeft=String.prototype.trimLeft?function(t){return t.trimLeft()}:function(t){return t.replace(/^\\s+/,\"\")},e.trimRight=String.prototype.trimRight?function(t){return t.trimRight()}:function(t){return t.replace(/\\s+$/,\"\")}}).call(this,r(3).Buffer)},function(t,e,r){\"use strict\";var n=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(e,\"__esModule\",{value:!0});var i=function(t){function e(e,r,n){var i=t.call(this,\"Error: \"+e+\". JSON Line number: \"+r+(n?\" near: \"+n:\"\"))||this;return i.err=e,i.line=r,i.extra=n,i.name=\"CSV Parse Error\",i}return n(e,t),e.column_mismatched=function(t,r){return new e(\"column_mismatched\",t,r)},e.unclosed_quote=function(t,r){return new e(\"unclosed_quote\",t,r)},e.fromJSON=function(t){return new e(t.err,t.line,t.extra)},e.prototype.toJSON=function(){return{err:this.err,line:this.line,extra:this.extra}},e}(Error);e.default=i},function(t,e,r){var n=r(18),i=r(68),o=r(69),s=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?\"[object Undefined]\":\"[object Null]\":s&&s in Object(t)?i(t):o(t)}},function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},function(t,e,r){t.exports=r(33)},function(t,e,r){\"use strict\";var n=r(34),i=function(t,e){return new n.Converter(t,e)};i.csv=i,i.Converter=n.Converter,t.exports=i},function(t,e,r){\"use strict\";(function(t){var n=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,\"__esModule\",{value:!0});var o=r(36),s=r(50),a=r(51),u=i(r(15)),c=r(52),l=r(105),f=function(e){function i(r,n){void 0===n&&(n={});var i=e.call(this,n)||this;return i.options=n,i.params=s.mergeParams(r),i.runtime=a.initParseRuntime(i),i.result=new l.Result(i),i.processor=new c.ProcessorLocal(i),i.once(\"error\",function(e){t(function(){i.result.processError(e),i.emit(\"done\",e)})}),i.once(\"done\",function(){i.processor.destroy()}),i}return n(i,e),i.prototype.preRawData=function(t){return this.runtime.preRawDataHook=t,this},i.prototype.preFileLine=function(t){return this.runtime.preFileLineHook=t,this},i.prototype.subscribe=function(t,e,r){return this.parseRuntime.subscribe={onNext:t,onError:e,onCompleted:r},this},i.prototype.fromFile=function(t,e){var n=this,i=r(!function(){var t=new Error(\"Cannot find module 'fs'\");throw t.code=\"MODULE_NOT_FOUND\",t}());return i.exists(t,function(r){r?i.createReadStream(t,e).pipe(n):n.emit(\"error\",new Error(\"File does not exist. Check to make sure the file path to your csv is correct.\"))}),this},i.prototype.fromStream=function(t){return t.pipe(this),this},i.prototype.fromString=function(t){t.toString();var e=new o.Readable,r=0;return e._read=function(e){if(r>=t.length)this.push(null);else{var n=t.substr(r,e);this.push(n),r+=e}},this.fromStream(e)},i.prototype.then=function(t,e){var r=this;return new u.default(function(n,i){r.parseRuntime.then={onfulfilled:function(e){n(t?t(e):e)},onrejected:function(t){e?n(e(t)):i(t)}}})},Object.defineProperty(i.prototype,\"parseParam\",{get:function(){return this.params},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,\"parseRuntime\",{get:function(){return this.runtime},enumerable:!0,configurable:!0}),i.prototype._transform=function(t,e,r){var n=this;this.processor.process(t).then(function(t){if(t.length>0)return n.runtime.started=!0,n.result.processResult(t)}).then(function(){n.emit(\"drained\"),r()},function(t){n.runtime.hasError=!0,n.runtime.error=t,n.emit(\"error\",t),r()})},i.prototype._flush=function(t){var e=this;this.processor.flush().then(function(t){if(t.length>0)return e.result.processResult(t)}).then(function(){e.processEnd(t)},function(r){e.emit(\"error\",r),t()})},i.prototype.processEnd=function(t){this.result.endProcess(),this.emit(\"done\"),t()},Object.defineProperty(i.prototype,\"parsedLineNumber\",{get:function(){return this.runtime.parsedLineNumber},enumerable:!0,configurable:!0}),i}(o.Transform);e.Converter=f}).call(this,r(11).setImmediate)},function(t,e,r){(function(t,e){!function(t,r){\"use strict\";if(!t.setImmediate){var n,i=1,o={},s=!1,a=t.document,u=Object.getPrototypeOf&&Object.getPrototypeOf(t);u=u&&u.setTimeout?u:t,\"[object process]\"==={}.toString.call(t.process)?n=function(t){e.nextTick(function(){l(t)})}:function(){if(t.postMessage&&!t.importScripts){var e=!0,r=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage(\"\",\"*\"),t.onmessage=r,e}}()?function(){var e=\"setImmediate$\"+Math.random()+\"$\",r=function(r){r.source===t&&\"string\"==typeof r.data&&0===r.data.indexOf(e)&&l(+r.data.slice(e.length))};t.addEventListener?t.addEventListener(\"message\",r,!1):t.attachEvent(\"onmessage\",r),n=function(r){t.postMessage(e+r,\"*\")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){l(t.data)},n=function(e){t.port2.postMessage(e)}}():a&&\"onreadystatechange\"in a.createElement(\"script\")?function(){var t=a.documentElement;n=function(e){var r=a.createElement(\"script\");r.onreadystatechange=function(){l(e),r.onreadystatechange=null,t.removeChild(r),r=null},t.appendChild(r)}}():n=function(t){setTimeout(l,0,t)},u.setImmediate=function(t){\"function\"!=typeof t&&(t=new Function(\"\"+t));for(var e=new Array(arguments.length-1),r=0;r0?n-4:n,f=0;f>16&255,a[u++]=e>>8&255,a[u++]=255&e;return 2===s&&(e=i[t.charCodeAt(f)]<<2|i[t.charCodeAt(f+1)]>>4,a[u++]=255&e),1===s&&(e=i[t.charCodeAt(f)]<<10|i[t.charCodeAt(f+1)]<<4|i[t.charCodeAt(f+2)]>>2,a[u++]=e>>8&255,a[u++]=255&e),a},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],s=0,a=r-i;sa?a:s+16383));return 1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+\"==\")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+\"=\")),o.join(\"\")};for(var n=[],i=[],o=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,s=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",a=0,u=s.length;a0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function l(t){return n[t>>18&63]+n[t>>12&63]+n[t>>6&63]+n[63&t]}function f(t,e,r){for(var n,i=[],o=e;o>1,l=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,o=p&(1<<-l)-1,p>>=-l,l+=a;l>0;o=256*o+t[e+f],f+=h,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+t[e+f],f+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,n),o-=c}return(p?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,d=n?1:-1,_=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=l):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+f>=1?h/u:h*Math.pow(2,1-f))*u>=2&&(s++,u/=2),s+f>=l?(a=0,s=l):s+f>=1?(a=(e*u-1)*Math.pow(2,i),s+=f):(a=e*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;t[r+p]=255&a,p+=d,a/=256,i-=8);for(s=s<0;t[r+p]=255&s,p+=d,s/=256,c-=8);t[r+p-d]|=128*_}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==r.call(t)}},function(t,e){},function(t,e,r){\"use strict\";var n=r(7).Buffer,i=r(43);function o(t,e,r){t.copy(e,r)}t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return\"\";for(var e=this.head,r=\"\"+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var e=n.allocUnsafe(t>>>0),r=this.head,i=0;r;)o(r.data,e,i),i+=r.data.length,r=r.next;return e},t}(),i&&i.inspect&&i.inspect.custom&&(t.exports.prototype[i.inspect.custom]=function(){var t=i.inspect({length:this.length});return this.constructor.name+\" \"+t})},function(t,e){},function(t,e,r){(function(e){function r(t){try{if(!e.localStorage)return!1}catch(t){return!1}var r=e.localStorage[t];return null!=r&&\"true\"===String(r).toLowerCase()}t.exports=function(t,e){if(r(\"noDeprecation\"))return t;var n=!1;return function(){if(!n){if(r(\"throwDeprecation\"))throw new Error(e);r(\"traceDeprecation\")?console.trace(e):console.warn(e),n=!0}return t.apply(this,arguments)}}}).call(this,r(0))},function(t,e,r){\"use strict\";t.exports=o;var n=r(27),i=r(5);function o(t){if(!(this instanceof o))return new o(t);n.call(this,t)}i.inherits=r(2),i.inherits(o,n),o.prototype._transform=function(t,e,r){r(null,t)}},function(t,e,r){t.exports=r(14)},function(t,e,r){t.exports=r(1)},function(t,e,r){t.exports=r(13).Transform},function(t,e,r){t.exports=r(13).PassThrough},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.mergeParams=function(t){var e={delimiter:\",\",ignoreColumns:void 0,includeColumns:void 0,quote:'\"',trim:!0,checkType:!1,ignoreEmpty:!1,noheader:!1,headers:void 0,flatKeys:!1,maxRowLength:0,checkColumn:!1,escape:'\"',colParser:{},eol:void 0,alwaysSplitAtEOL:!1,output:\"json\",nullObject:!1,downstreamFormat:\"line\",needEmitAll:!0};for(var r in t||(t={}),t)t.hasOwnProperty(r)&&(Array.isArray(t[r])?e[r]=[].concat(t[r]):e[r]=t[r]);return e}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.initParseRuntime=function(t){var e=t.parseParam,r={needProcessIgnoreColumn:!1,needProcessIncludeColumn:!1,selectedColumns:void 0,ended:!1,hasError:!1,error:void 0,delimiter:t.parseParam.delimiter,eol:t.parseParam.eol,columnConv:[],headerType:[],headerTitle:[],headerFlag:[],headers:void 0,started:!1,parsedLineNumber:0,columnValueSetter:[]};return e.ignoreColumns&&(r.needProcessIgnoreColumn=!0),e.includeColumns&&(r.needProcessIncludeColumn=!0),r}},function(t,e,r){\"use strict\";(function(t){var n=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,\"__esModule\",{value:!0});var o=r(53),s=i(r(15)),a=r(54),u=i(r(16)),c=r(57),l=r(28),f=r(58),h=i(r(59)),p=i(r(29)),d=function(e){function r(){var t=null!==e&&e.apply(this,arguments)||this;return t.rowSplit=new f.RowSplit(t.converter),t.eolEmitted=!1,t._needEmitEol=void 0,t.headEmitted=!1,t._needEmitHead=void 0,t}return n(r,e),r.prototype.flush=function(){var t=this;if(this.runtime.csvLineBuffer&&this.runtime.csvLineBuffer.length>0){var e=this.runtime.csvLineBuffer;return this.runtime.csvLineBuffer=void 0,this.process(e,!0).then(function(e){return t.runtime.csvLineBuffer&&t.runtime.csvLineBuffer.length>0?s.default.reject(p.default.unclosed_quote(t.runtime.parsedLineNumber,t.runtime.csvLineBuffer.toString())):s.default.resolve(e)})}return s.default.resolve([])},r.prototype.destroy=function(){return s.default.resolve()},Object.defineProperty(r.prototype,\"needEmitEol\",{get:function(){return void 0===this._needEmitEol&&(this._needEmitEol=this.converter.listeners(\"eol\").length>0),this._needEmitEol},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,\"needEmitHead\",{get:function(){return void 0===this._needEmitHead&&(this._needEmitHead=this.converter.listeners(\"header\").length>0),this._needEmitHead},enumerable:!0,configurable:!0}),r.prototype.process=function(t,e){var r,n=this;return void 0===e&&(e=!1),r=e?t.toString():a.prepareData(t,this.converter.parseRuntime),s.default.resolve().then(function(){return n.runtime.preRawDataHook?n.runtime.preRawDataHook(r):r}).then(function(t){return t&&t.length>0?n.processCSV(t,e):s.default.resolve([])})},r.prototype.processCSV=function(t,e){var r=this,n=this.params,i=this.runtime;i.eol||u.default(t,i),this.needEmitEol&&!this.eolEmitted&&i.eol&&(this.converter.emit(\"eol\",i.eol),this.eolEmitted=!0),n.ignoreEmpty&&!i.started&&(t=l.trimLeft(t));var o=c.stringToLines(t,i);return e?(o.lines.push(o.partial),o.partial=\"\"):this.prependLeftBuf(l.bufFromString(o.partial)),o.lines.length>0?(i.preFileLineHook?this.runPreLineHook(o.lines):s.default.resolve(o.lines)).then(function(t){return i.started||r.runtime.headers?r.processCSVBody(t):r.processDataWithHead(t)}):s.default.resolve([])},r.prototype.processDataWithHead=function(t){if(this.params.noheader)this.params.headers?this.runtime.headers=this.params.headers:this.runtime.headers=[];else{for(var e=\"\",r=[];t.length;){var n=e+t.shift(),i=this.rowSplit.parse(n);if(i.closed){r=i.cells,e=\"\";break}e=n+u.default(n,this.runtime)}if(this.prependLeftBuf(l.bufFromString(e)),0===r.length)return[];this.params.headers?this.runtime.headers=this.params.headers:this.runtime.headers=r}return(this.runtime.needProcessIgnoreColumn||this.runtime.needProcessIncludeColumn)&&this.filterHeader(),this.needEmitHead&&!this.headEmitted&&(this.converter.emit(\"header\",this.runtime.headers),this.headEmitted=!0),this.processCSVBody(t)},r.prototype.filterHeader=function(){if(this.runtime.selectedColumns=[],this.runtime.headers){for(var t=this.runtime.headers,e=0;e=e.length)i();else if(r.preFileLineHook){var o=e[n],s=r.preFileLineHook(o,r.parsedLineNumber+n);if(n++,s&&s.then)s.then(function(o){e[n-1]=o,t(e,r,n,i)});else{for(e[n-1]=s;n0?t.concat([r.csvLineBuffer,e]):e}(e,r);r.csvLineBuffer=void 0;var o=function(t,e){var r=t.length-1;if(0!=(128&t[r])){for(;128==(192&t[r]);)r--;r--}return r!=t.length-1?(e.csvLineBuffer=t.slice(r+1),t.slice(0,r+1)):t}(n,r).toString(\"utf8\");return!1===r.started?i.default(o):o}}).call(this,r(3).Buffer)},function(t,e,r){\"use strict\";(function(e){var n=r(56);t.exports=function(t){return\"string\"==typeof t&&65279===t.charCodeAt(0)?t.slice(1):e.isBuffer(t)&&n(t)&&239===t[0]&&187===t[1]&&191===t[2]?t.slice(3):t}}).call(this,r(3).Buffer)},function(t,e){t.exports=function(t){for(var e=0;e0),this._needEmitDelimiter},enumerable:!0,configurable:!0}),t.prototype.parse=function(t){if(0===t.length||this.conv.parseParam.ignoreEmpty&&0===t.trim().length)return{cells:[],closed:!0};var e=this.quote,r=this.trim;this.escape,(this.conv.parseRuntime.delimiter instanceof Array||\"auto\"===this.conv.parseRuntime.delimiter.toLowerCase())&&(this.conv.parseRuntime.delimiter=this.getDelimiter(t)),this.needEmitDelimiter&&!this.delimiterEmitted&&(this.conv.emit(\"delimiter\",this.conv.parseRuntime.delimiter),this.delimiterEmitted=!0);var n=this.conv.parseRuntime.delimiter,i=t.split(n);if(\"off\"===e){if(r)for(var o=0;or&&(n=e,r=i)}),n},t.prototype.isQuoteOpen=function(t){var e=this.quote,r=this.escape;return t[0]===e&&(t[1]!==e||t[1]===r&&(t[2]===e||2===t.length))},t.prototype.isQuoteClose=function(t){var e=this.quote,r=this.escape;this.conv.parseParam.trim&&(t=o.trimRight(t));for(var n=0,i=t.length-1;t[i]===e||t[i]===r;)i--,n++;return n%2!=0},t.prototype.escapeQuote=function(t){var e=\"es|\"+this.quote+\"|\"+this.escape;void 0===this.cachedRegExp[e]&&(this.cachedRegExp[e]=new RegExp(\"\\\\\"+this.escape+\"\\\\\"+this.quote,\"g\"));var r=this.cachedRegExp[e];return t.replace(r,this.quote)},t.prototype.parseMultiLines=function(t){for(var e=[],r=\"\";t.length;){var n=r+t.shift(),s=this.parse(n);0===s.cells.length&&this.conv.parseParam.ignoreEmpty||(s.closed||this.conv.parseParam.alwaysSplitAtEOL?(this.conv.parseRuntime.selectedColumns?e.push(o.filterArray(s.cells,this.conv.parseRuntime.selectedColumns)):e.push(s.cells),r=\"\"):r=n+(i.default(n,this.conv.parseRuntime)||\"\\n\"))}return{rowsCells:e,partial:r}},t}();e.RowSplit=a},function(t,e,r){\"use strict\";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(r(29)),o=n(r(60)),s=/^[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?$/;function a(t,e,r){if(e.parseParam.checkColumn&&e.parseRuntime.headers&&t.length!==e.parseRuntime.headers.length)throw i.default.column_mismatched(e.parseRuntime.parsedLineNumber+r);return function(t,e,r){for(var n=!1,i={},o=0,s=t.length;o-1){for(var o=e.split(\".\"),s=!0;o.length>0;)if(0===o.shift().length){s=!1;break}!s||n.parseParam.colParser[e]&&n.parseParam.colParser[e].flat?n.parseRuntime.columnValueSetter[i]=f:n.parseRuntime.columnValueSetter[i]=h}else n.parseRuntime.columnValueSetter[i]=f;!0===n.parseParam.nullObject&&\"null\"===r&&(r=null),n.parseRuntime.columnValueSetter[i](t,e,r)}function f(t,e,r){t[e]=r}function h(t,e,r){o.default(t,e,r)}function p(t,e,r,n){return n.parseRuntime.headerType[r]?n.parseRuntime.headerType[r]:e.indexOf(\"number#!\")>-1?n.parseRuntime.headerType[r]=d:e.indexOf(\"string#!\")>-1?n.parseRuntime.headerType[r]=_:n.parseParam.checkType?n.parseRuntime.headerType[r]=v:n.parseRuntime.headerType[r]=_}function d(t){var e=parseFloat(t);return isNaN(e)?t:e}function _(t){return t.toString()}function v(t){var e=t.trim();return\"\"===e?_(t):s.test(e)?d(t):5===e.length&&\"false\"===e.toLowerCase()||4===e.length&&\"true\"===e.toLowerCase()?function(t){var e=t.trim();return 5!==e.length||\"false\"!==e.toLowerCase()}(t):\"{\"===e[0]&&\"}\"===e[e.length-1]||\"[\"===e[0]&&\"]\"===e[e.length-1]?function(t){try{return JSON.parse(t)}catch(e){return t}}(t):_(t)}},function(t,e,r){var n=r(61);t.exports=function(t,e,r){return null==t?t:n(t,e,r)}},function(t,e,r){var n=r(62),i=r(74),o=r(103),s=r(20),a=r(104);t.exports=function(t,e,r,u){if(!s(t))return t;for(var c=-1,l=(e=i(e,t)).length,f=l-1,h=t;null!=h&&++c-1}},function(t,e,r){var n=r(9);t.exports=function(t,e){var r=this.__data__,i=n(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}},function(t,e,r){var n=r(17)(r(19),\"Map\");t.exports=n},function(t,e,r){var n=r(10);t.exports=function(t){var e=n(this,t).delete(t);return this.size-=e?1:0,e}},function(t,e){t.exports=function(t){var e=typeof t;return\"string\"==e||\"number\"==e||\"symbol\"==e||\"boolean\"==e?\"__proto__\"!==t:null===t}},function(t,e,r){var n=r(10);t.exports=function(t){return n(this,t).get(t)}},function(t,e,r){var n=r(10);t.exports=function(t){return n(this,t).has(t)}},function(t,e,r){var n=r(10);t.exports=function(t,e){var r=n(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this}},function(t,e,r){var n=r(101);t.exports=function(t){return null==t?\"\":n(t)}},function(t,e,r){var n=r(18),i=r(102),o=r(21),s=r(22),a=n?n.prototype:void 0,u=a?a.toString:void 0;t.exports=function t(e){if(\"string\"==typeof e)return e;if(o(e))return i(e,t)+\"\";if(s(e))return u?u.call(e):\"\";var r=e+\"\";return\"0\"==r&&1/e==-1/0?\"-0\":r}},function(t,e){t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length,i=Array(n);++r-1&&t%1==0&&t0||this.converter.listeners(\"readable\").length>0),this._needPushDownstream},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"needEmitAll\",{get:function(){return!!this.converter.parseRuntime.then&&this.converter.parseParam.needEmitAll},enumerable:!0,configurable:!0}),t.prototype.processResult=function(t){var e=this,r=this.converter.parseRuntime.parsedLineNumber;return this.needPushDownstream&&\"array\"===this.converter.parseParam.downstreamFormat&&0===r&&a(this.converter,\"[\"+o.EOL),new i.default(function(r,n){e.needEmitLine?function t(e,r,n,i,o){if(n>=e.length)o();else if(r.parseRuntime.subscribe&&r.parseRuntime.subscribe.onNext){var s=r.parseRuntime.subscribe.onNext,u=e[n],c=s(u,r.parseRuntime.parsedLineNumber+n);if(n++,c&&c.then)c.then(function(){!function(e,r,n,i,o,s,u){o&&a(n,u),t(e,n,i,o,s)}(e,0,r,n,i,o,u)},o);else{for(i&&a(r,u);n{t.r(s),t.d(s,{default:()=>l.A,getToggleButtonUtilityClass:()=>a.J,toggleButtonClasses:()=>a.A});var l=t(82620),a=t(72225)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2872.5129bbd8.chunk.js --- a/x/static/js/2872.5129bbd8.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2872],{83162:(r,e,t)=>{t.d(e,{A:()=>h});var a=t(7552),o=t(93878),s=t(70799),l=t(51148),n=t(60129),i=t(4785),c=t(74893),u=t(69500);const d=(0,c.A)((0,u.jsx)("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"Person");var v=t(28375),p=t(43045);const f=(0,l.Ay)("div",{name:"MuiAvatar",slot:"Root",overridesResolver:(r,e)=>{const{ownerState:t}=r;return[e.root,e[t.variant],t.colorDefault&&e.colorDefault]}})((0,n.A)((({theme:r})=>({position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:r.typography.fontFamily,fontSize:r.typography.pxToRem(20),lineHeight:1,borderRadius:"50%",overflow:"hidden",userSelect:"none",variants:[{props:{variant:"rounded"},style:{borderRadius:(r.vars||r).shape.borderRadius}},{props:{variant:"square"},style:{borderRadius:0}},{props:{colorDefault:!0},style:{color:(r.vars||r).palette.background.default,...r.vars?{backgroundColor:r.vars.palette.Avatar.defaultBg}:{backgroundColor:r.palette.grey[400],...r.applyStyles("dark",{backgroundColor:r.palette.grey[600]})}}}]})))),g=(0,l.Ay)("img",{name:"MuiAvatar",slot:"Img",overridesResolver:(r,e)=>e.img})({width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4}),m=(0,l.Ay)(d,{name:"MuiAvatar",slot:"Fallback",overridesResolver:(r,e)=>e.fallback})({width:"75%",height:"75%"}),h=a.forwardRef((function(r,e){const t=(0,i.b)({props:r,name:"MuiAvatar"}),{alt:l,children:n,className:c,component:d="div",slots:h={},slotProps:b={},imgProps:y,sizes:A,src:k,srcSet:w,variant:S="circular",...x}=t;let R=null;const j=function({crossOrigin:r,referrerPolicy:e,src:t,srcSet:o}){const[s,l]=a.useState(!1);return a.useEffect((()=>{if(!t&&!o)return;l(!1);let a=!0;const s=new Image;return s.onload=()=>{a&&l("loaded")},s.onerror=()=>{a&&l("error")},s.crossOrigin=r,s.referrerPolicy=e,s.src=t,o&&(s.srcset=o),()=>{a=!1}}),[r,e,t,o]),s}({...y,src:k,srcSet:w}),C=k||w,P=C&&"error"!==j,D={...t,colorDefault:!P,component:d,variant:S};delete D.ownerState;const M=(r=>{const{classes:e,variant:t,colorDefault:a}=r,o={root:["root",t,a&&"colorDefault"],img:["img"],fallback:["fallback"]};return(0,s.A)(o,v.k,e)})(D),[z,F]=(0,p.A)("img",{className:M.img,elementType:g,externalForwardedProps:{slots:h,slotProps:{img:{...y,...b.img}}},additionalProps:{alt:l,src:k,srcSet:w,sizes:A},ownerState:D});return R=P?(0,u.jsx)(z,{...F}):n||0===n?n:C&&l?l[0]:(0,u.jsx)(m,{ownerState:D,className:M.fallback}),(0,u.jsx)(f,{as:d,className:(0,o.A)(M.root,c),ref:e,...x,ownerState:D,children:R})}))},28375:(r,e,t)=>{t.d(e,{A:()=>l,k:()=>s});var a=t(33761),o=t(85693);function s(r){return(0,o.Ay)("MuiAvatar",r)}const l=(0,a.A)("MuiAvatar",["root","colorDefault","circular","rounded","square","img","fallback"])},42872:(r,e,t)=>{t.r(e),t.d(e,{avatarClasses:()=>o.A,default:()=>a.A,getAvatarUtilityClass:()=>o.k});var a=t(83162),o=t(28375)}}]); -//# sourceMappingURL=2872.5129bbd8.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2872.5129bbd8.chunk.js.map --- a/x/static/js/2872.5129bbd8.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2872.5129bbd8.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/internal/svg-icons/Person.js","../../../node_modules/@mui/material/Avatar/Avatar.js","../../../node_modules/@mui/material/Avatar/avatarClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Person from \"../internal/svg-icons/Person.js\";\nimport { getAvatarUtilityClass } from \"./avatarClasses.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n colorDefault\n } = ownerState;\n const slots = {\n root: ['root', variant, colorDefault && 'colorDefault'],\n img: ['img'],\n fallback: ['fallback']\n };\n return composeClasses(slots, getAvatarUtilityClass, classes);\n};\nconst AvatarRoot = styled('div', {\n name: 'MuiAvatar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], ownerState.colorDefault && styles.colorDefault];\n }\n})(memoTheme(({\n theme\n}) => ({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: 40,\n height: 40,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(20),\n lineHeight: 1,\n borderRadius: '50%',\n overflow: 'hidden',\n userSelect: 'none',\n variants: [{\n props: {\n variant: 'rounded'\n },\n style: {\n borderRadius: (theme.vars || theme).shape.borderRadius\n }\n }, {\n props: {\n variant: 'square'\n },\n style: {\n borderRadius: 0\n }\n }, {\n props: {\n colorDefault: true\n },\n style: {\n color: (theme.vars || theme).palette.background.default,\n ...(theme.vars ? {\n backgroundColor: theme.vars.palette.Avatar.defaultBg\n } : {\n backgroundColor: theme.palette.grey[400],\n ...theme.applyStyles('dark', {\n backgroundColor: theme.palette.grey[600]\n })\n })\n }\n }]\n})));\nconst AvatarImg = styled('img', {\n name: 'MuiAvatar',\n slot: 'Img',\n overridesResolver: (props, styles) => styles.img\n})({\n width: '100%',\n height: '100%',\n textAlign: 'center',\n // Handle non-square image.\n objectFit: 'cover',\n // Hide alt text.\n color: 'transparent',\n // Hide the image broken icon, only works on Chrome.\n textIndent: 10000\n});\nconst AvatarFallback = styled(Person, {\n name: 'MuiAvatar',\n slot: 'Fallback',\n overridesResolver: (props, styles) => styles.fallback\n})({\n width: '75%',\n height: '75%'\n});\nfunction useLoaded({\n crossOrigin,\n referrerPolicy,\n src,\n srcSet\n}) {\n const [loaded, setLoaded] = React.useState(false);\n React.useEffect(() => {\n if (!src && !srcSet) {\n return undefined;\n }\n setLoaded(false);\n let active = true;\n const image = new Image();\n image.onload = () => {\n if (!active) {\n return;\n }\n setLoaded('loaded');\n };\n image.onerror = () => {\n if (!active) {\n return;\n }\n setLoaded('error');\n };\n image.crossOrigin = crossOrigin;\n image.referrerPolicy = referrerPolicy;\n image.src = src;\n if (srcSet) {\n image.srcset = srcSet;\n }\n return () => {\n active = false;\n };\n }, [crossOrigin, referrerPolicy, src, srcSet]);\n return loaded;\n}\nconst Avatar = /*#__PURE__*/React.forwardRef(function Avatar(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAvatar'\n });\n const {\n alt,\n children: childrenProp,\n className,\n component = 'div',\n slots = {},\n slotProps = {},\n imgProps,\n sizes,\n src,\n srcSet,\n variant = 'circular',\n ...other\n } = props;\n let children = null;\n\n // Use a hook instead of onError on the img element to support server-side rendering.\n const loaded = useLoaded({\n ...imgProps,\n src,\n srcSet\n });\n const hasImg = src || srcSet;\n const hasImgNotFailing = hasImg && loaded !== 'error';\n const ownerState = {\n ...props,\n colorDefault: !hasImgNotFailing,\n component,\n variant\n };\n // This issue explains why this is required: https://github.com/mui/material-ui/issues/42184\n delete ownerState.ownerState;\n const classes = useUtilityClasses(ownerState);\n const [ImgSlot, imgSlotProps] = useSlot('img', {\n className: classes.img,\n elementType: AvatarImg,\n externalForwardedProps: {\n slots,\n slotProps: {\n img: {\n ...imgProps,\n ...slotProps.img\n }\n }\n },\n additionalProps: {\n alt,\n src,\n srcSet,\n sizes\n },\n ownerState\n });\n if (hasImgNotFailing) {\n children = /*#__PURE__*/_jsx(ImgSlot, {\n ...imgSlotProps\n });\n // We only render valid children, non valid children are rendered with a fallback\n // We consider that invalid children are all falsy values, except 0, which is valid.\n } else if (!!childrenProp || childrenProp === 0) {\n children = childrenProp;\n } else if (hasImg && alt) {\n children = alt[0];\n } else {\n children = /*#__PURE__*/_jsx(AvatarFallback, {\n ownerState: ownerState,\n className: classes.fallback\n });\n }\n return /*#__PURE__*/_jsx(AvatarRoot, {\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ...other,\n ownerState: ownerState,\n children: children\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Avatar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Used in combination with `src` or `srcSet` to\n * provide an alt attribute for the rendered `img` element.\n */\n alt: PropTypes.string,\n /**\n * Used to render icon or text elements inside the Avatar if `src` is not set.\n * This can be an element, or just a string.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attributes) applied to the `img` element if the component is used to display an image.\n * It can be used to listen for the loading error event.\n */\n imgProps: PropTypes.object,\n /**\n * The `sizes` attribute for the `img` element.\n */\n sizes: PropTypes.string,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n img: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n img: PropTypes.elementType\n }),\n /**\n * The `src` attribute for the `img` element.\n */\n src: PropTypes.string,\n /**\n * The `srcSet` attribute for the `img` element.\n * Use this attribute for responsive image display.\n */\n srcSet: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The shape of the avatar.\n * @default 'circular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['circular', 'rounded', 'square']), PropTypes.string])\n} : void 0;\nexport default Avatar;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAvatarUtilityClass(slot) {\n return generateUtilityClass('MuiAvatar', slot);\n}\nconst avatarClasses = generateUtilityClasses('MuiAvatar', ['root', 'colorDefault', 'circular', 'rounded', 'square', 'img', 'fallback']);\nexport default avatarClasses;"],"names":["createSvgIcon","d","AvatarRoot","styled","name","slot","overridesResolver","props","styles","ownerState","root","variant","colorDefault","memoTheme","theme","position","display","alignItems","justifyContent","flexShrink","width","height","fontFamily","typography","fontSize","pxToRem","lineHeight","borderRadius","overflow","userSelect","variants","style","vars","shape","color","palette","background","default","backgroundColor","Avatar","defaultBg","grey","applyStyles","AvatarImg","img","textAlign","objectFit","textIndent","AvatarFallback","Person","fallback","inProps","ref","alt","children","childrenProp","className","component","slots","slotProps","imgProps","sizes","src","srcSet","other","loaded","crossOrigin","referrerPolicy","setLoaded","active","image","Image","onload","onerror","srcset","useLoaded","hasImg","hasImgNotFailing","classes","composeClasses","useUtilityClasses","ImgSlot","imgSlotProps","useSlot","elementType","externalForwardedProps","additionalProps","as","clsx","getAvatarUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2885.8a30e856.chunk.js --- a/x/static/js/2885.8a30e856.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2885],{92885:(e,n,t)=>{t.r(n),t.d(n,{default:()=>k,getRatingUtilityClass:()=>w,ratingClasses:()=>V});var o=t(7552),i=t(93878),l=t(93801),a=t(25649),s=t(70799),r=t(93876),c=t(91527),u=t(15622),d=t(89456),p=t(77259),v=t(51584),m=t(74893),y=t(69500);const h=(0,m.A)((0,y.jsx)("path",{d:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star"),g=(0,m.A)((0,y.jsx)("path",{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}),"StarBorder");var A=t(51148),b=t(60129),f=t(4785),x=t(36674),F=t(33761),S=t(85693);function w(e){return(0,S.Ay)("MuiRating",e)}const V=(0,F.A)("MuiRating",["root","sizeSmall","sizeMedium","sizeLarge","readOnly","disabled","focusVisible","visuallyHidden","pristine","label","labelEmptyValueActive","icon","iconEmpty","iconFilled","iconHover","iconFocus","iconActive","decimal"]);function C(e,n){if(null==e)return e;const t=Math.round(e/n)*n;return Number(t.toFixed(function(e){const n=e.toString().split(".")[1];return n?n.length:0}(n)))}const R=(0,A.Ay)("span",{name:"MuiRating",slot:"Root",overridesResolver:(e,n)=>{const{ownerState:t}=e;return[{[`& .${V.visuallyHidden}`]:n.visuallyHidden},n.root,n[`size${(0,u.A)(t.size)}`],t.readOnly&&n.readOnly]}})((0,b.A)((({theme:e})=>({display:"inline-flex",position:"relative",fontSize:e.typography.pxToRem(24),color:"#faaf00",cursor:"pointer",textAlign:"left",width:"min-content",WebkitTapHighlightColor:"transparent",[`&.${V.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${V.focusVisible} .${V.iconActive}`]:{outline:"1px solid #999"},[`& .${V.visuallyHidden}`]:a.A,variants:[{props:{size:"small"},style:{fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:e.typography.pxToRem(30)}},{props:({ownerState:e})=>e.readOnly,style:{pointerEvents:"none"}}]})))),j=(0,A.Ay)("label",{name:"MuiRating",slot:"Label",overridesResolver:({ownerState:e},n)=>[n.label,e.emptyValueFocused&&n.labelEmptyValueActive]})({cursor:"inherit",variants:[{props:({ownerState:e})=>e.emptyValueFocused,style:{top:0,bottom:0,position:"absolute",outline:"1px solid #999",width:"100%"}}]}),M=(0,A.Ay)("span",{name:"MuiRating",slot:"Icon",overridesResolver:(e,n)=>{const{ownerState:t}=e;return[n.icon,t.iconEmpty&&n.iconEmpty,t.iconFilled&&n.iconFilled,t.iconHover&&n.iconHover,t.iconFocus&&n.iconFocus,t.iconActive&&n.iconActive]}})((0,b.A)((({theme:e})=>({display:"flex",transition:e.transitions.create("transform",{duration:e.transitions.duration.shortest}),pointerEvents:"none",variants:[{props:({ownerState:e})=>e.iconActive,style:{transform:"scale(1.2)"}},{props:({ownerState:e})=>e.iconEmpty,style:{color:(e.vars||e).palette.action.disabled}}]})))),z=(0,A.Ay)("span",{name:"MuiRating",slot:"Decimal",shouldForwardProp:e=>(0,x.A)(e)&&"iconActive"!==e,overridesResolver:(e,n)=>{const{iconActive:t}=e;return[n.decimal,t&&n.iconActive]}})({position:"relative",variants:[{props:({iconActive:e})=>e,style:{transform:"scale(1.2)"}}]});function L(e){const{value:n,...t}=e;return(0,y.jsx)("span",{...t})}function H(e){const{classes:n,disabled:t,emptyIcon:l,focus:a,getLabelText:s,highlightSelectedOnly:r,hover:c,icon:u,IconContainerComponent:p,isActive:v,itemValue:m,labelProps:h,name:g,onBlur:A,onChange:b,onClick:f,onFocus:x,readOnly:F,ownerState:S,ratingValue:w,ratingValueRounded:V}=e,C=r?m===w:m<=w,R=m<=c,z=m<=a,L=m===V,H=(0,d.A)(),E=(0,y.jsx)(M,{as:p,value:m,className:(0,i.A)(n.icon,C?n.iconFilled:n.iconEmpty,R&&n.iconHover,z&&n.iconFocus,v&&n.iconActive),ownerState:{...S,iconEmpty:!C,iconFilled:C,iconHover:R,iconFocus:z,iconActive:v},children:l&&!C?l:u});return F?(0,y.jsx)("span",{...h,children:E}):(0,y.jsxs)(o.Fragment,{children:[(0,y.jsxs)(j,{ownerState:{...S,emptyValueFocused:void 0},htmlFor:H,...h,children:[E,(0,y.jsx)("span",{className:n.visuallyHidden,children:s(m)})]}),(0,y.jsx)("input",{className:n.visuallyHidden,onFocus:x,onBlur:A,onChange:b,onClick:f,disabled:t,value:m,id:H,type:"radio",name:g,checked:L})]})}const E=(0,y.jsx)(h,{fontSize:"inherit"}),O=(0,y.jsx)(g,{fontSize:"inherit"});function T(e){return`${e||"0"} Star${1!==e?"s":""}`}const k=o.forwardRef((function(e,n){const t=(0,f.b)({name:"MuiRating",props:e}),{className:a,defaultValue:m=null,disabled:h=!1,emptyIcon:g=O,emptyLabelText:A="Empty",getLabelText:b=T,highlightSelectedOnly:x=!1,icon:F=E,IconContainerComponent:S=L,max:V=5,name:M,onChange:k,onChangeActive:I,onMouseLeave:N,onMouseMove:$,precision:B=1,readOnly:_=!1,size:P="medium",value:X,...D}=t,U=(0,d.A)(M),[W,Y]=(0,p.A)({controlled:X,default:m,name:"Rating"}),q=C(W,B),G=(0,r.I)(),[{hover:J,focus:K},Q]=o.useState({hover:-1,focus:-1});let Z=q;-1!==J&&(Z=J),-1!==K&&(Z=K);const[ee,ne]=o.useState(!1),te=o.useRef(),oe=(0,v.A)(te,n),ie=e=>{let n=""===e.target.value?null:parseFloat(e.target.value);-1!==J&&(n=J),Y(n),k&&k(e,n)},le=e=>{0===e.clientX&&0===e.clientY||(Q({hover:-1,focus:-1}),Y(null),k&&parseFloat(e.target.value)===q&&k(e,null))},ae=e=>{(0,c.A)(e.target)&&ne(!0);const n=parseFloat(e.target.value);Q((e=>({hover:e.hover,focus:n})))},se=e=>{-1===J&&((0,c.A)(e.target)||ne(!1),Q((e=>({hover:e.hover,focus:-1}))))},[re,ce]=o.useState(!1),ue={...t,defaultValue:m,disabled:h,emptyIcon:g,emptyLabelText:A,emptyValueFocused:re,focusVisible:ee,getLabelText:b,icon:F,IconContainerComponent:S,max:V,precision:B,readOnly:_,size:P},de=(e=>{const{classes:n,size:t,readOnly:o,disabled:i,emptyValueFocused:l,focusVisible:a}=e,r={root:["root",`size${(0,u.A)(t)}`,i&&"disabled",a&&"focusVisible",o&&"readOnly"],label:["label","pristine"],labelEmptyValue:[l&&"labelEmptyValueActive"],icon:["icon"],iconEmpty:["iconEmpty"],iconFilled:["iconFilled"],iconHover:["iconHover"],iconFocus:["iconFocus"],iconActive:["iconActive"],decimal:["decimal"],visuallyHidden:["visuallyHidden"]};return(0,s.A)(r,w,n)})(ue);return(0,y.jsxs)(R,{ref:oe,onMouseMove:e=>{$&&$(e);const n=te.current,{right:t,left:o,width:i}=n.getBoundingClientRect();let a;a=G?(t-e.clientX)/i:(e.clientX-o)/i;let s=C(V*a+B/2,B);s=(0,l.A)(s,B,V),Q((e=>e.hover===s&&e.focus===s?e:{hover:s,focus:s})),ne(!1),I&&J!==s&&I(e,s)},onMouseLeave:e=>{N&&N(e),Q({hover:-1,focus:-1}),I&&-1!==J&&I(e,-1)},className:(0,i.A)(de.root,a,_&&"MuiRating-readOnly"),ownerState:ue,role:_?"img":null,"aria-label":_?b(Z):null,...D,children:[Array.from(new Array(V)).map(((e,n)=>{const t=n+1,o={classes:de,disabled:h,emptyIcon:g,focus:K,getLabelText:b,highlightSelectedOnly:x,hover:J,icon:F,IconContainerComponent:S,name:U,onBlur:se,onChange:ie,onClick:le,onFocus:ae,ratingValue:Z,ratingValueRounded:q,readOnly:_,ownerState:ue},l=t===Math.ceil(Z)&&(-1!==J||-1!==K);if(B<1){const e=Array.from(new Array(1/B));return(0,y.jsx)(z,{className:(0,i.A)(de.decimal,l&&de.iconActive),ownerState:ue,iconActive:l,children:e.map(((n,i)=>{const l=C(t-1+(i+1)*B,B);return(0,y.jsx)(H,{...o,isActive:!1,itemValue:l,labelProps:{style:e.length-1===i?{}:{width:l===Z?(i+1)*B*100+"%":"0%",overflow:"hidden",position:"absolute"}}},l)}))},t)}return(0,y.jsx)(H,{...o,isActive:l,itemValue:t},t)})),!_&&!h&&(0,y.jsxs)(j,{className:(0,i.A)(de.label,de.labelEmptyValue),ownerState:ue,children:[(0,y.jsx)("input",{className:de.visuallyHidden,value:"",id:`${U}-empty`,type:"radio",name:U,checked:null==q,onFocus:()=>ce(!0),onBlur:()=>ce(!1),onChange:ie}),(0,y.jsx)("span",{className:de.visuallyHidden,children:A})]})]})}))}}]); -//# sourceMappingURL=2885.8a30e856.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2885.8a30e856.chunk.js.map --- a/x/static/js/2885.8a30e856.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2885.8a30e856.chunk.js","mappings":"yVASA,SAAe,EAAAA,EAAA,IAA2B,SAAK,OAAQ,CACrDC,EAAG,6FACD,QCFJ,GAAe,EAAAD,EAAA,IAA2B,SAAK,OAAQ,CACrDC,EAAG,qMACD,c,qECTG,SAASC,EAAsBC,GACpC,OAAO,EAAAC,EAAA,IAAqB,YAAaD,EAC3C,CACA,MACA,GADsB,EAAAE,EAAA,GAAuB,YAAa,CAAC,OAAQ,YAAa,aAAc,YAAa,WAAY,WAAY,eAAgB,iBAAkB,WAAY,QAAS,wBAAyB,OAAQ,YAAa,aAAc,YAAa,YAAa,aAAc,YCmB9R,SAASC,EAAsBC,EAAOC,GACpC,GAAa,MAATD,EACF,OAAOA,EAET,MAAME,EAAUC,KAAKC,MAAMJ,EAAQC,GAAaA,EAChD,OAAOI,OAAOH,EAAQI,QATxB,SAA6BC,GAC3B,MAAMC,EAAcD,EAAIE,WAAWC,MAAM,KAAK,GAC9C,OAAOF,EAAcA,EAAYG,OAAS,CAC5C,CAMgCC,CAAoBX,IACpD,CACA,MAwBMY,GAAa,EAAAC,EAAA,IAAO,OAAQ,CAChCC,KAAM,YACNnB,KAAM,OACNoB,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJC,GACEF,EACJ,MAAO,CAAC,CACN,CAAC,MAAM,EAAcG,kBAAmBF,EAAOE,gBAC9CF,EAAOG,KAAMH,EAAO,QAAO,EAAAI,EAAA,GAAWH,EAAWI,SAAUJ,EAAWK,UAAYN,EAAOM,SAAS,GATtF,EAWhB,EAAAC,EAAA,IAAU,EACXC,YACI,CACJC,QAAS,cAETC,SAAU,WACVC,SAAUH,EAAMI,WAAWC,QAAQ,IACnCC,MAAO,UACPC,OAAQ,UACRC,UAAW,OACXC,MAAO,cACPC,wBAAyB,cACzB,CAAC,KAAK,EAAcC,YAAa,CAC/BC,SAAUZ,EAAMa,MAAQb,GAAOc,QAAQC,OAAOC,gBAC9CC,cAAe,QAEjB,CAAC,KAAK,EAAcC,iBAAiB,EAAcC,cAAe,CAChEC,QAAS,kBAEX,CAAC,MAAM,EAAc1B,kBAAmBA,EAAA,EACxC2B,SAAU,CAAC,CACT9B,MAAO,CACLM,KAAM,SAERyB,MAAO,CACLnB,SAAUH,EAAMI,WAAWC,QAAQ,MAEpC,CACDd,MAAO,CACLM,KAAM,SAERyB,MAAO,CACLnB,SAAUH,EAAMI,WAAWC,QAAQ,MAEpC,CAEDd,MAAO,EACLE,gBACIA,EAAWK,SACjBwB,MAAO,CACLL,cAAe,eAIfM,GAAc,EAAAnC,EAAA,IAAO,QAAS,CAClCC,KAAM,YACNnB,KAAM,QACNoB,kBAAmB,EACjBG,cACCD,IAAW,CAACA,EAAOgC,MAAO/B,EAAWgC,mBAAqBjC,EAAOkC,wBALlD,CAMjB,CACDnB,OAAQ,UACRc,SAAU,CAAC,CACT9B,MAAO,EACLE,gBACIA,EAAWgC,kBACjBH,MAAO,CACLK,IAAK,EACLC,OAAQ,EACR1B,SAAU,WACVkB,QAAS,iBACTX,MAAO,YAIPoB,GAAa,EAAAzC,EAAA,IAAO,OAAQ,CAChCC,KAAM,YACNnB,KAAM,OACNoB,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJC,GACEF,EACJ,MAAO,CAACC,EAAOsC,KAAMrC,EAAWsC,WAAavC,EAAOuC,UAAWtC,EAAWuC,YAAcxC,EAAOwC,WAAYvC,EAAWwC,WAAazC,EAAOyC,UAAWxC,EAAWyC,WAAa1C,EAAO0C,UAAWzC,EAAW0B,YAAc3B,EAAO2B,WAAW,GAP3N,EAShB,EAAApB,EAAA,IAAU,EACXC,YACI,CAEJC,QAAS,OACTkC,WAAYnC,EAAMoC,YAAYC,OAAO,YAAa,CAChDC,SAAUtC,EAAMoC,YAAYE,SAASC,WAIvCtB,cAAe,OACfI,SAAU,CAAC,CACT9B,MAAO,EACLE,gBACIA,EAAW0B,WACjBG,MAAO,CACLkB,UAAW,eAEZ,CACDjD,MAAO,EACLE,gBACIA,EAAWsC,UACjBT,MAAO,CACLhB,OAAQN,EAAMa,MAAQb,GAAOc,QAAQC,OAAOJ,iBAI5C8B,GAAgB,EAAArD,EAAA,IAAO,OAAQ,CACnCC,KAAM,YACNnB,KAAM,UACNwE,kBAAmBC,IAAQ,EAAAC,EAAA,GAAsBD,IAAkB,eAATA,EAC1DrD,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJ2B,GACE5B,EACJ,MAAO,CAACC,EAAOqD,QAAS1B,GAAc3B,EAAO2B,WAAW,GARtC,CAUnB,CACDjB,SAAU,WACVmB,SAAU,CAAC,CACT9B,MAAO,EACL4B,gBACIA,EACNG,MAAO,CACLkB,UAAW,kBAIjB,SAASM,EAAcvD,GACrB,MAAM,MACJjB,KACGyE,GACDxD,EACJ,OAAoB,SAAK,OAAQ,IAC5BwD,GAEP,CAIA,SAASC,EAAWzD,GAClB,MAAM,QACJ0D,EAAO,SACPtC,EAAQ,UACRuC,EAAS,MACTC,EAAK,aACLC,EAAY,sBACZC,EAAqB,MACrBC,EAAK,KACLxB,EAAI,uBACJyB,EAAsB,SACtBC,EAAQ,UACRC,EAAS,WACTC,EAAU,KACVrE,EAAI,OACJsE,EAAM,SACNC,EAAQ,QACRC,EAAO,QACPC,EAAO,SACPhE,EAAQ,WACRL,EAAU,YACVsE,EAAW,mBACXC,GACEzE,EACE0E,EAAWZ,EAAwBI,IAAcM,EAAcN,GAAaM,EAC5EG,EAAYT,GAAaH,EACzBa,EAAYV,GAAaN,EACzBiB,EAAYX,IAAcO,EAC1BK,GAAK,EAAAC,EAAA,KACLC,GAAyB,SAAK1C,EAAY,CAC9C2C,GAAIjB,EACJjF,MAAOmF,EACPgB,WAAW,EAAAC,EAAA,GAAKzB,EAAQnB,KAAMmC,EAAWhB,EAAQjB,WAAaiB,EAAQlB,UAAWmC,GAAajB,EAAQhB,UAAWkC,GAAalB,EAAQf,UAAWsB,GAAYP,EAAQ9B,YACrK1B,WAAY,IACPA,EACHsC,WAAYkC,EACZjC,WAAYiC,EACZhC,UAAWiC,EACXhC,UAAWiC,EACXhD,WAAYqC,GAEdmB,SAAUzB,IAAce,EAAWf,EAAYpB,IAEjD,OAAIhC,GACkB,SAAK,OAAQ,IAC5B4D,EACHiB,SAAUJ,KAGM,UAAM,WAAgB,CACxCI,SAAU,EAAc,UAAMpD,EAAa,CACzC9B,WAAY,IACPA,EACHgC,uBAAmBmD,GAErBC,QAASR,KACNX,EACHiB,SAAU,CAACJ,GAAwB,SAAK,OAAQ,CAC9CE,UAAWxB,EAAQvD,eACnBiF,SAAUvB,EAAaK,SAEV,SAAK,QAAS,CAC7BgB,UAAWxB,EAAQvD,eACnBoE,QAASA,EACTH,OAAQA,EACRC,SAAUA,EACVC,QAASA,EACTlD,SAAUA,EACVrC,MAAOmF,EACPY,GAAIA,EACJS,KAAM,QACNzF,KAAMA,EACN0F,QAASX,MAGf,CAwBA,MAAMY,GAA2B,SAAKC,EAAM,CAC1C9E,SAAU,YAEN+E,GAAgC,SAAKC,EAAY,CACrDhF,SAAU,YAEZ,SAASiF,EAAiB9G,GACxB,MAAO,GAAGA,GAAS,WAAqB,IAAVA,EAAc,IAAM,IACpD,CACA,MA6WA,EA7W4B,cAAiB,SAAgB+G,EAASC,GACpE,MAAM/F,GAAQ,OAAgB,CAC5BF,KAAM,YACNE,MAAO8F,KAEH,UACJZ,EAAS,aACTc,EAAe,KAAI,SACnB5E,GAAW,EAAK,UAChBuC,EAAYgC,EAAgB,eAC5BM,EAAiB,QAAO,aACxBpC,EAAegC,EAAgB,sBAC/B/B,GAAwB,EAAK,KAC7BvB,EAAOkD,EAAW,uBAClBzB,EAAyBT,EAAa,IACtC2C,EAAM,EACNpG,KAAMqG,EAAQ,SACd9B,EAAQ,eACR+B,EAAc,aACdC,EAAY,YACZC,EAAW,UACXtH,EAAY,EAAC,SACbuB,GAAW,EAAK,KAChBD,EAAO,SACPvB,MAAOwH,KACJ/C,GACDxD,EACEF,GAAO,EAAAiF,EAAA,GAAMoB,IACZK,EAAcC,IAAiB,EAAAC,EAAA,GAAc,CAClDC,WAAYJ,EACZK,QAASZ,EACTlG,KAAM,WAEF+G,EAAe/H,EAAsB0H,EAAcxH,GACnD8H,GAAQ,WACP,MACL/C,EAAK,MACLH,GACCmD,GAAY,WAAe,CAC5BhD,OAAQ,EACRH,OAAQ,IAEV,IAAI7E,EAAQ8H,GACG,IAAX9C,IACFhF,EAAQgF,IAEK,IAAXH,IACF7E,EAAQ6E,GAEV,MAAOjC,GAAcqF,IAAmB,YAAe,GACjDC,GAAU,WACVC,IAAY,EAAAC,EAAA,GAAWF,GAASlB,GAyChCqB,GAAeC,IACnB,IAAIC,EAAkC,KAAvBD,EAAME,OAAOxI,MAAe,KAAOyI,WAAWH,EAAME,OAAOxI,QAI3D,IAAXgF,IACFuD,EAAWvD,GAEb0C,EAAca,GACVjD,GACFA,EAASgD,EAAOC,EAClB,EAEIG,GAAcJ,IAGI,IAAlBA,EAAMK,SAAmC,IAAlBL,EAAMM,UAGjCZ,EAAS,CACPhD,OAAQ,EACRH,OAAQ,IAEV6C,EAAc,MACVpC,GAAYmD,WAAWH,EAAME,OAAOxI,SAAW8H,GACjDxC,EAASgD,EAAO,MAClB,EAEIO,GAAcP,KACd,EAAAQ,EAAA,GAAeR,EAAME,SACvBP,IAAgB,GAElB,MAAMc,EAAWN,WAAWH,EAAME,OAAOxI,OACzCgI,GAASgB,IAAQ,CACfhE,MAAOgE,EAAKhE,MACZH,MAAOkE,KACN,EAECE,GAAaX,KACF,IAAXtD,KAGC,EAAA8D,EAAA,GAAeR,EAAME,SACxBP,IAAgB,GAGlBD,GAASgB,IAAQ,CACfhE,MAAOgE,EAAKhE,MACZH,OAHe,MAId,GAEE1B,GAAmB+F,IAAwB,YAAe,GAC3D/H,GAAa,IACdF,EACHgG,eACA5E,WACAuC,YACAsC,iBACA/D,qBACAP,gBACAkC,eACAtB,OACAyB,yBACAkC,MACAlH,YACAuB,WACAD,QAEIoD,GArbkBxD,KACxB,MAAM,QACJwD,EAAO,KACPpD,EAAI,SACJC,EAAQ,SACRa,EAAQ,kBACRc,EAAiB,aACjBP,GACEzB,EACEgI,EAAQ,CACZ9H,KAAM,CAAC,OAAQ,QAAO,EAAAC,EAAA,GAAWC,KAASc,GAAY,WAAYO,GAAgB,eAAgBpB,GAAY,YAC9G0B,MAAO,CAAC,QAAS,YACjBkG,gBAAiB,CAACjG,GAAqB,yBACvCK,KAAM,CAAC,QACPC,UAAW,CAAC,aACZC,WAAY,CAAC,cACbC,UAAW,CAAC,aACZC,UAAW,CAAC,aACZf,WAAY,CAAC,cACb0B,QAAS,CAAC,WACVnD,eAAgB,CAAC,mBAEnB,OAAO,EAAAiI,EAAA,GAAeF,EAAOxJ,EAAuBgF,EAAQ,EA+Z5C2E,CAAkBnI,IAClC,OAAoB,UAAMN,EAAY,CACpCmG,IAAKmB,GACLZ,YA/GsBe,IAClBf,GACFA,EAAYe,GAEd,MAAMiB,EAAWrB,GAAQsB,SACnB,MACJC,EAAK,KACLC,EACAvH,MAAOwH,GACLJ,EAASK,wBACb,IAAIC,EAEFA,EADE9B,GACS0B,EAAQnB,EAAMK,SAAWgB,GAEzBrB,EAAMK,QAAUe,GAAQC,EAErC,IAAIG,EAAW/J,EAAsBoH,EAAM0C,EAAU5J,EAAY,EAAGA,GACpE6J,GAAW,EAAAC,EAAA,GAAMD,EAAU7J,EAAWkH,GACtCa,GAASgB,GAAQA,EAAKhE,QAAU8E,GAAYd,EAAKnE,QAAUiF,EAAWd,EAAO,CAC3EhE,MAAO8E,EACPjF,MAAOiF,KAET7B,IAAgB,GACZZ,GAAkBrC,IAAU8E,GAC9BzC,EAAeiB,EAAOwB,EACxB,EAuFAxC,aArFuBgB,IACnBhB,GACFA,EAAagB,GAGfN,EAAS,CACPhD,OAFe,EAGfH,OAHe,IAKbwC,IALa,IAKKrC,GACpBqC,EAAeiB,GANA,EAOjB,EA2EAnC,WAAW,EAAAC,EAAA,GAAKzB,GAAQtD,KAAM8E,EAAW3E,GAAY,sBACrDL,WAAYA,GACZ6I,KAAMxI,EAAW,MAAQ,KACzB,aAAcA,EAAWsD,EAAa9E,GAAS,QAC5CyE,EACH4B,SAAU,CAAC4D,MAAMC,KAAK,IAAID,MAAM9C,IAAMgD,KAAI,CAACC,EAAGC,KAC5C,MAAMlF,EAAYkF,EAAQ,EACpBC,EAAkB,CACtB3F,WACAtC,WACAuC,YACAC,QACAC,eACAC,wBACAC,QACAxB,OACAyB,yBACAlE,OACAsE,OAAQ4D,GACR3D,SAAU+C,GACV9C,QAASmD,GACTlD,QAASqD,GACTpD,YAAazF,EACb0F,mBAAoBoC,EACpBtG,WACAL,eAEI+D,EAAWC,IAAchF,KAAKoK,KAAKvK,MAAsB,IAAXgF,IAA2B,IAAXH,GACpE,GAAI5E,EAAY,EAAG,CACjB,MAAMuK,EAAQP,MAAMC,KAAK,IAAID,MAAM,EAAIhK,IACvC,OAAoB,SAAKkE,EAAe,CACtCgC,WAAW,EAAAC,EAAA,GAAKzB,GAAQJ,QAASW,GAAYP,GAAQ9B,YACrD1B,WAAYA,GACZ0B,WAAYqC,EACZmB,SAAUmE,EAAML,KAAI,CAACM,EAAGC,KACtB,MAAMC,EAAmB5K,EAAsBoF,EAAY,GAAKuF,EAAe,GAAKzK,EAAWA,GAC/F,OAAoB,SAAKyE,EAAY,IAChC4F,EAEHpF,UAAU,EACVC,UAAWwF,EACXvF,WAAY,CACVpC,MAAOwH,EAAM7J,OAAS,IAAM+J,EAAe,CAAC,EAAI,CAC9CvI,MAAOwI,IAAqB3K,GAAY0K,EAAe,GAAKzK,EAAY,IAApC,IAA6C,KACjF2K,SAAU,SACVhJ,SAAU,cAGb+I,EAAiB,KAErBxF,EACL,CACA,OAAoB,SAAKT,EAAY,IAChC4F,EACHpF,SAAUA,EACVC,UAAWA,GACVA,EAAU,KACV3D,IAAaa,IAAyB,UAAMY,EAAa,CAC5DkD,WAAW,EAAAC,EAAA,GAAKzB,GAAQzB,MAAOyB,GAAQyE,iBACvCjI,WAAYA,GACZkF,SAAU,EAAc,SAAK,QAAS,CACpCF,UAAWxB,GAAQvD,eACnBpB,MAAO,GACP+F,GAAI,GAAGhF,UACPyF,KAAM,QACNzF,KAAMA,EACN0F,QAAyB,MAAhBqB,EACTtC,QAAS,IAAM0D,IAAqB,GACpC7D,OAAQ,IAAM6D,IAAqB,GACnC5D,SAAU+C,MACK,SAAK,OAAQ,CAC5BlC,UAAWxB,GAAQvD,eACnBiF,SAAUa,SAIlB,G","sources":["../../../node_modules/@mui/material/internal/svg-icons/Star.js","../../../node_modules/@mui/material/internal/svg-icons/StarBorder.js","../../../node_modules/@mui/material/Rating/ratingClasses.js","../../../node_modules/@mui/material/Rating/Rating.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\n}), 'Star');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z\"\n}), 'StarBorder');","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getRatingUtilityClass(slot) {\n return generateUtilityClass('MuiRating', slot);\n}\nconst ratingClasses = generateUtilityClasses('MuiRating', ['root', 'sizeSmall', 'sizeMedium', 'sizeLarge', 'readOnly', 'disabled', 'focusVisible', 'visuallyHidden', 'pristine', 'label', 'labelEmptyValueActive', 'icon', 'iconEmpty', 'iconFilled', 'iconHover', 'iconFocus', 'iconActive', 'decimal']);\nexport default ratingClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport clamp from '@mui/utils/clamp';\nimport visuallyHidden from '@mui/utils/visuallyHidden';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport isFocusVisible from '@mui/utils/isFocusVisible';\nimport { capitalize, useForkRef, useControlled, unstable_useId as useId } from \"../utils/index.js\";\nimport Star from \"../internal/svg-icons/Star.js\";\nimport StarBorder from \"../internal/svg-icons/StarBorder.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport slotShouldForwardProp from \"../styles/slotShouldForwardProp.js\";\nimport ratingClasses, { getRatingUtilityClass } from \"./ratingClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getDecimalPrecision(num) {\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\nfunction roundValueToPrecision(value, precision) {\n if (value == null) {\n return value;\n }\n const nearest = Math.round(value / precision) * precision;\n return Number(nearest.toFixed(getDecimalPrecision(precision)));\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n size,\n readOnly,\n disabled,\n emptyValueFocused,\n focusVisible\n } = ownerState;\n const slots = {\n root: ['root', `size${capitalize(size)}`, disabled && 'disabled', focusVisible && 'focusVisible', readOnly && 'readOnly'],\n label: ['label', 'pristine'],\n labelEmptyValue: [emptyValueFocused && 'labelEmptyValueActive'],\n icon: ['icon'],\n iconEmpty: ['iconEmpty'],\n iconFilled: ['iconFilled'],\n iconHover: ['iconHover'],\n iconFocus: ['iconFocus'],\n iconActive: ['iconActive'],\n decimal: ['decimal'],\n visuallyHidden: ['visuallyHidden']\n };\n return composeClasses(slots, getRatingUtilityClass, classes);\n};\nconst RatingRoot = styled('span', {\n name: 'MuiRating',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${ratingClasses.visuallyHidden}`]: styles.visuallyHidden\n }, styles.root, styles[`size${capitalize(ownerState.size)}`], ownerState.readOnly && styles.readOnly];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'inline-flex',\n // Required to position the pristine input absolutely\n position: 'relative',\n fontSize: theme.typography.pxToRem(24),\n color: '#faaf00',\n cursor: 'pointer',\n textAlign: 'left',\n width: 'min-content',\n WebkitTapHighlightColor: 'transparent',\n [`&.${ratingClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity,\n pointerEvents: 'none'\n },\n [`&.${ratingClasses.focusVisible} .${ratingClasses.iconActive}`]: {\n outline: '1px solid #999'\n },\n [`& .${ratingClasses.visuallyHidden}`]: visuallyHidden,\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n fontSize: theme.typography.pxToRem(18)\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n fontSize: theme.typography.pxToRem(30)\n }\n }, {\n // TODO v6: use the .Mui-readOnly global state class\n props: ({\n ownerState\n }) => ownerState.readOnly,\n style: {\n pointerEvents: 'none'\n }\n }]\n})));\nconst RatingLabel = styled('label', {\n name: 'MuiRating',\n slot: 'Label',\n overridesResolver: ({\n ownerState\n }, styles) => [styles.label, ownerState.emptyValueFocused && styles.labelEmptyValueActive]\n})({\n cursor: 'inherit',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.emptyValueFocused,\n style: {\n top: 0,\n bottom: 0,\n position: 'absolute',\n outline: '1px solid #999',\n width: '100%'\n }\n }]\n});\nconst RatingIcon = styled('span', {\n name: 'MuiRating',\n slot: 'Icon',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.icon, ownerState.iconEmpty && styles.iconEmpty, ownerState.iconFilled && styles.iconFilled, ownerState.iconHover && styles.iconHover, ownerState.iconFocus && styles.iconFocus, ownerState.iconActive && styles.iconActive];\n }\n})(memoTheme(({\n theme\n}) => ({\n // Fit wrapper to actual icon size.\n display: 'flex',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n }),\n // Fix mouseLeave issue.\n // https://github.com/facebook/react/issues/4492\n pointerEvents: 'none',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.iconActive,\n style: {\n transform: 'scale(1.2)'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.iconEmpty,\n style: {\n color: (theme.vars || theme).palette.action.disabled\n }\n }]\n})));\nconst RatingDecimal = styled('span', {\n name: 'MuiRating',\n slot: 'Decimal',\n shouldForwardProp: prop => slotShouldForwardProp(prop) && prop !== 'iconActive',\n overridesResolver: (props, styles) => {\n const {\n iconActive\n } = props;\n return [styles.decimal, iconActive && styles.iconActive];\n }\n})({\n position: 'relative',\n variants: [{\n props: ({\n iconActive\n }) => iconActive,\n style: {\n transform: 'scale(1.2)'\n }\n }]\n});\nfunction IconContainer(props) {\n const {\n value,\n ...other\n } = props;\n return /*#__PURE__*/_jsx(\"span\", {\n ...other\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? IconContainer.propTypes = {\n value: PropTypes.number.isRequired\n} : void 0;\nfunction RatingItem(props) {\n const {\n classes,\n disabled,\n emptyIcon,\n focus,\n getLabelText,\n highlightSelectedOnly,\n hover,\n icon,\n IconContainerComponent,\n isActive,\n itemValue,\n labelProps,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n readOnly,\n ownerState,\n ratingValue,\n ratingValueRounded\n } = props;\n const isFilled = highlightSelectedOnly ? itemValue === ratingValue : itemValue <= ratingValue;\n const isHovered = itemValue <= hover;\n const isFocused = itemValue <= focus;\n const isChecked = itemValue === ratingValueRounded;\n const id = useId();\n const container = /*#__PURE__*/_jsx(RatingIcon, {\n as: IconContainerComponent,\n value: itemValue,\n className: clsx(classes.icon, isFilled ? classes.iconFilled : classes.iconEmpty, isHovered && classes.iconHover, isFocused && classes.iconFocus, isActive && classes.iconActive),\n ownerState: {\n ...ownerState,\n iconEmpty: !isFilled,\n iconFilled: isFilled,\n iconHover: isHovered,\n iconFocus: isFocused,\n iconActive: isActive\n },\n children: emptyIcon && !isFilled ? emptyIcon : icon\n });\n if (readOnly) {\n return /*#__PURE__*/_jsx(\"span\", {\n ...labelProps,\n children: container\n });\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsxs(RatingLabel, {\n ownerState: {\n ...ownerState,\n emptyValueFocused: undefined\n },\n htmlFor: id,\n ...labelProps,\n children: [container, /*#__PURE__*/_jsx(\"span\", {\n className: classes.visuallyHidden,\n children: getLabelText(itemValue)\n })]\n }), /*#__PURE__*/_jsx(\"input\", {\n className: classes.visuallyHidden,\n onFocus: onFocus,\n onBlur: onBlur,\n onChange: onChange,\n onClick: onClick,\n disabled: disabled,\n value: itemValue,\n id: id,\n type: \"radio\",\n name: name,\n checked: isChecked\n })]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? RatingItem.propTypes = {\n classes: PropTypes.object.isRequired,\n disabled: PropTypes.bool.isRequired,\n emptyIcon: PropTypes.node,\n focus: PropTypes.number.isRequired,\n getLabelText: PropTypes.func.isRequired,\n highlightSelectedOnly: PropTypes.bool.isRequired,\n hover: PropTypes.number.isRequired,\n icon: PropTypes.node,\n IconContainerComponent: PropTypes.elementType.isRequired,\n isActive: PropTypes.bool.isRequired,\n itemValue: PropTypes.number.isRequired,\n labelProps: PropTypes.object,\n name: PropTypes.string,\n onBlur: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onClick: PropTypes.func.isRequired,\n onFocus: PropTypes.func.isRequired,\n ownerState: PropTypes.object.isRequired,\n ratingValue: PropTypes.number,\n ratingValueRounded: PropTypes.number,\n readOnly: PropTypes.bool.isRequired\n} : void 0;\nconst defaultIcon = /*#__PURE__*/_jsx(Star, {\n fontSize: \"inherit\"\n});\nconst defaultEmptyIcon = /*#__PURE__*/_jsx(StarBorder, {\n fontSize: \"inherit\"\n});\nfunction defaultLabelText(value) {\n return `${value || '0'} Star${value !== 1 ? 's' : ''}`;\n}\nconst Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {\n const props = useDefaultProps({\n name: 'MuiRating',\n props: inProps\n });\n const {\n className,\n defaultValue = null,\n disabled = false,\n emptyIcon = defaultEmptyIcon,\n emptyLabelText = 'Empty',\n getLabelText = defaultLabelText,\n highlightSelectedOnly = false,\n icon = defaultIcon,\n IconContainerComponent = IconContainer,\n max = 5,\n name: nameProp,\n onChange,\n onChangeActive,\n onMouseLeave,\n onMouseMove,\n precision = 1,\n readOnly = false,\n size = 'medium',\n value: valueProp,\n ...other\n } = props;\n const name = useId(nameProp);\n const [valueDerived, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: 'Rating'\n });\n const valueRounded = roundValueToPrecision(valueDerived, precision);\n const isRtl = useRtl();\n const [{\n hover,\n focus\n }, setState] = React.useState({\n hover: -1,\n focus: -1\n });\n let value = valueRounded;\n if (hover !== -1) {\n value = hover;\n }\n if (focus !== -1) {\n value = focus;\n }\n const [focusVisible, setFocusVisible] = React.useState(false);\n const rootRef = React.useRef();\n const handleRef = useForkRef(rootRef, ref);\n const handleMouseMove = event => {\n if (onMouseMove) {\n onMouseMove(event);\n }\n const rootNode = rootRef.current;\n const {\n right,\n left,\n width: containerWidth\n } = rootNode.getBoundingClientRect();\n let percent;\n if (isRtl) {\n percent = (right - event.clientX) / containerWidth;\n } else {\n percent = (event.clientX - left) / containerWidth;\n }\n let newHover = roundValueToPrecision(max * percent + precision / 2, precision);\n newHover = clamp(newHover, precision, max);\n setState(prev => prev.hover === newHover && prev.focus === newHover ? prev : {\n hover: newHover,\n focus: newHover\n });\n setFocusVisible(false);\n if (onChangeActive && hover !== newHover) {\n onChangeActive(event, newHover);\n }\n };\n const handleMouseLeave = event => {\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n const newHover = -1;\n setState({\n hover: newHover,\n focus: newHover\n });\n if (onChangeActive && hover !== newHover) {\n onChangeActive(event, newHover);\n }\n };\n const handleChange = event => {\n let newValue = event.target.value === '' ? null : parseFloat(event.target.value);\n\n // Give mouse priority over keyboard\n // Fix https://github.com/mui/material-ui/issues/22827\n if (hover !== -1) {\n newValue = hover;\n }\n setValueState(newValue);\n if (onChange) {\n onChange(event, newValue);\n }\n };\n const handleClear = event => {\n // Ignore keyboard events\n // https://github.com/facebook/react/issues/7407\n if (event.clientX === 0 && event.clientY === 0) {\n return;\n }\n setState({\n hover: -1,\n focus: -1\n });\n setValueState(null);\n if (onChange && parseFloat(event.target.value) === valueRounded) {\n onChange(event, null);\n }\n };\n const handleFocus = event => {\n if (isFocusVisible(event.target)) {\n setFocusVisible(true);\n }\n const newFocus = parseFloat(event.target.value);\n setState(prev => ({\n hover: prev.hover,\n focus: newFocus\n }));\n };\n const handleBlur = event => {\n if (hover !== -1) {\n return;\n }\n if (!isFocusVisible(event.target)) {\n setFocusVisible(false);\n }\n const newFocus = -1;\n setState(prev => ({\n hover: prev.hover,\n focus: newFocus\n }));\n };\n const [emptyValueFocused, setEmptyValueFocused] = React.useState(false);\n const ownerState = {\n ...props,\n defaultValue,\n disabled,\n emptyIcon,\n emptyLabelText,\n emptyValueFocused,\n focusVisible,\n getLabelText,\n icon,\n IconContainerComponent,\n max,\n precision,\n readOnly,\n size\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(RatingRoot, {\n ref: handleRef,\n onMouseMove: handleMouseMove,\n onMouseLeave: handleMouseLeave,\n className: clsx(classes.root, className, readOnly && 'MuiRating-readOnly'),\n ownerState: ownerState,\n role: readOnly ? 'img' : null,\n \"aria-label\": readOnly ? getLabelText(value) : null,\n ...other,\n children: [Array.from(new Array(max)).map((_, index) => {\n const itemValue = index + 1;\n const ratingItemProps = {\n classes,\n disabled,\n emptyIcon,\n focus,\n getLabelText,\n highlightSelectedOnly,\n hover,\n icon,\n IconContainerComponent,\n name,\n onBlur: handleBlur,\n onChange: handleChange,\n onClick: handleClear,\n onFocus: handleFocus,\n ratingValue: value,\n ratingValueRounded: valueRounded,\n readOnly,\n ownerState\n };\n const isActive = itemValue === Math.ceil(value) && (hover !== -1 || focus !== -1);\n if (precision < 1) {\n const items = Array.from(new Array(1 / precision));\n return /*#__PURE__*/_jsx(RatingDecimal, {\n className: clsx(classes.decimal, isActive && classes.iconActive),\n ownerState: ownerState,\n iconActive: isActive,\n children: items.map(($, indexDecimal) => {\n const itemDecimalValue = roundValueToPrecision(itemValue - 1 + (indexDecimal + 1) * precision, precision);\n return /*#__PURE__*/_jsx(RatingItem, {\n ...ratingItemProps,\n // The icon is already displayed as active\n isActive: false,\n itemValue: itemDecimalValue,\n labelProps: {\n style: items.length - 1 === indexDecimal ? {} : {\n width: itemDecimalValue === value ? `${(indexDecimal + 1) * precision * 100}%` : '0%',\n overflow: 'hidden',\n position: 'absolute'\n }\n }\n }, itemDecimalValue);\n })\n }, itemValue);\n }\n return /*#__PURE__*/_jsx(RatingItem, {\n ...ratingItemProps,\n isActive: isActive,\n itemValue: itemValue\n }, itemValue);\n }), !readOnly && !disabled && /*#__PURE__*/_jsxs(RatingLabel, {\n className: clsx(classes.label, classes.labelEmptyValue),\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(\"input\", {\n className: classes.visuallyHidden,\n value: \"\",\n id: `${name}-empty`,\n type: \"radio\",\n name: name,\n checked: valueRounded == null,\n onFocus: () => setEmptyValueFocused(true),\n onBlur: () => setEmptyValueFocused(false),\n onChange: handleChange\n }), /*#__PURE__*/_jsx(\"span\", {\n className: classes.visuallyHidden,\n children: emptyLabelText\n })]\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Rating.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The default value. Use when the component is not controlled.\n * @default null\n */\n defaultValue: PropTypes.number,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The icon to display when empty.\n * @default \n */\n emptyIcon: PropTypes.node,\n /**\n * The label read when the rating input is empty.\n * @default 'Empty'\n */\n emptyLabelText: PropTypes.node,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current value of the rating.\n * This is important for screen reader users.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @param {number} value The rating label's value to format.\n * @returns {string}\n * @default function defaultLabelText(value) {\n * return `${value || '0'} Star${value !== 1 ? 's' : ''}`;\n * }\n */\n getLabelText: PropTypes.func,\n /**\n * If `true`, only the selected icon will be highlighted.\n * @default false\n */\n highlightSelectedOnly: PropTypes.bool,\n /**\n * The icon to display.\n * @default \n */\n icon: PropTypes.node,\n /**\n * The component containing the icon.\n * @default function IconContainer(props) {\n * const { value, ...other } = props;\n * return ;\n * }\n */\n IconContainerComponent: PropTypes.elementType,\n /**\n * Maximum rating.\n * @default 5\n */\n max: PropTypes.number,\n /**\n * The name attribute of the radio `input` elements.\n * This input `name` should be unique within the page.\n * Being unique within a form is insufficient since the `name` is used to generated IDs.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value changes.\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {number|null} value The new value.\n */\n onChange: PropTypes.func,\n /**\n * Callback function that is fired when the hover state changes.\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {number} value The new value.\n */\n onChangeActive: PropTypes.func,\n /**\n * @ignore\n */\n onMouseLeave: PropTypes.func,\n /**\n * @ignore\n */\n onMouseMove: PropTypes.func,\n /**\n * The minimum increment value change allowed.\n * @default 1\n */\n precision: chainPropTypes(PropTypes.number, props => {\n if (props.precision < 0.1) {\n return new Error(['MUI: The prop `precision` should be above 0.1.', 'A value below this limit has an imperceptible impact.'].join('\\n'));\n }\n return null;\n }),\n /**\n * Removes all hover effects and pointer events.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The rating value.\n */\n value: PropTypes.number\n} : void 0;\nexport default Rating;"],"names":["createSvgIcon","d","getRatingUtilityClass","slot","generateUtilityClass","generateUtilityClasses","roundValueToPrecision","value","precision","nearest","Math","round","Number","toFixed","num","decimalPart","toString","split","length","getDecimalPrecision","RatingRoot","styled","name","overridesResolver","props","styles","ownerState","visuallyHidden","root","capitalize","size","readOnly","memoTheme","theme","display","position","fontSize","typography","pxToRem","color","cursor","textAlign","width","WebkitTapHighlightColor","disabled","opacity","vars","palette","action","disabledOpacity","pointerEvents","focusVisible","iconActive","outline","variants","style","RatingLabel","label","emptyValueFocused","labelEmptyValueActive","top","bottom","RatingIcon","icon","iconEmpty","iconFilled","iconHover","iconFocus","transition","transitions","create","duration","shortest","transform","RatingDecimal","shouldForwardProp","prop","slotShouldForwardProp","decimal","IconContainer","other","RatingItem","classes","emptyIcon","focus","getLabelText","highlightSelectedOnly","hover","IconContainerComponent","isActive","itemValue","labelProps","onBlur","onChange","onClick","onFocus","ratingValue","ratingValueRounded","isFilled","isHovered","isFocused","isChecked","id","useId","container","as","className","clsx","children","undefined","htmlFor","type","checked","defaultIcon","Star","defaultEmptyIcon","StarBorder","defaultLabelText","inProps","ref","defaultValue","emptyLabelText","max","nameProp","onChangeActive","onMouseLeave","onMouseMove","valueProp","valueDerived","setValueState","useControlled","controlled","default","valueRounded","isRtl","setState","setFocusVisible","rootRef","handleRef","useForkRef","handleChange","event","newValue","target","parseFloat","handleClear","clientX","clientY","handleFocus","isFocusVisible","newFocus","prev","handleBlur","setEmptyValueFocused","slots","labelEmptyValue","composeClasses","useUtilityClasses","rootNode","current","right","left","containerWidth","getBoundingClientRect","percent","newHover","clamp","role","Array","from","map","_","index","ratingItemProps","ceil","items","$","indexDecimal","itemDecimalValue","overflow"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2928.4ac8c386.chunk.js --- a/x/static/js/2928.4ac8c386.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2928],{62928:(e,n,a)=>{a.r(n),a.d(n,{default:()=>u});var t=a(7552),l=a(29499),s=a(1343),c=a(29629),o=a(58507),r=a(5401),m=a(75785),h=a(49823);const i=(0,m.n9)()((()=>({container:{width:800}})));function u({handleClose:e,session:n}){const{classes:a}=i();return t.createElement(h.Dialog,{title:"Preferences",open:!0,onClose:e,maxWidth:"xl"},t.createElement(l.A,{className:a.container},t.createElement(s.A,{select:!0,label:"Theme",value:n.themeName,onChange:e=>{n.setThemeName(e.target.value)}},Object.entries(n.allThemes()).map((([e,n])=>t.createElement(c.A,{key:e,value:e},n.name||"(Unknown name)"))))),t.createElement(o.A,null,t.createElement(r.A,{onClick:e},"Close")))}}}]); -//# sourceMappingURL=2928.4ac8c386.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2928.4ac8c386.chunk.js.map --- a/x/static/js/2928.4ac8c386.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2928.4ac8c386.chunk.js","mappings":"gPAYA,MAAMA,GAAYC,EAAAA,EAAAA,KAAAA,EAAa,KAAM,CACnCC,UAAW,CACTC,MAAO,SAII,SAASC,GAAkB,YACxCC,EAAW,QACXC,IASA,MAAM,QAAEC,GAAYP,IACpB,OACEQ,EAAAA,cAACC,EAAAA,OAAM,CAACC,MAAM,cAAcC,MAAI,EAACC,QAASP,EAAaQ,SAAS,MAC9DL,EAAAA,cAACM,EAAAA,EAAa,CAACC,UAAWR,EAAQL,WAChCM,EAAAA,cAACQ,EAAAA,EAAS,CACRC,QAAM,EACNC,MAAM,QACNC,MAAOb,EAAQc,UACfC,SAAUC,IACRhB,EAAQiB,aAAaD,EAAME,OAAOL,MAAM,GAGzCM,OAAOC,QAAQpB,EAAQqB,aAAaC,KAAI,EAAEC,EAAKC,KAC9CtB,EAAAA,cAACuB,EAAAA,EAAQ,CAACF,IAAKA,EAAKV,MAAOU,GACxBC,EAAIE,MAAQ,sBAKrBxB,EAAAA,cAACyB,EAAAA,EAAa,KACZzB,EAAAA,cAAC0B,EAAAA,EAAM,CAACC,QAAS9B,GAAa,UAItC,C","sources":["components/PreferencesDialog.tsx"],"sourcesContent":["import React from 'react'\nimport {\n Button,\n DialogActions,\n DialogContent,\n MenuItem,\n TextField,\n ThemeOptions,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { Dialog } from '@jbrowse/core/ui'\n\nconst useStyles = makeStyles()(() => ({\n container: {\n width: 800,\n },\n}))\n\nexport default function PreferencesDialog({\n handleClose,\n session,\n}: {\n handleClose: () => void\n session: {\n allThemes: () => Record\n themeName?: string\n setThemeName: (arg: string) => void\n }\n}) {\n const { classes } = useStyles()\n return (\n \n \n {\n session.setThemeName(event.target.value)\n }}\n >\n {Object.entries(session.allThemes()).map(([key, val]) => (\n \n {val.name || '(Unknown name)'}\n \n ))}\n \n \n \n \n \n \n )\n}\n"],"names":["useStyles","makeStyles","container","width","PreferencesDialog","handleClose","session","classes","React","Dialog","title","open","onClose","maxWidth","DialogContent","className","TextField","select","label","value","themeName","onChange","event","setThemeName","target","Object","entries","allThemes","map","key","val","MenuItem","name","DialogActions","Button","onClick"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2968.4d90773a.chunk.js --- a/x/static/js/2968.4d90773a.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2968],{12968:(e,n,t)=>{t.r(n),t.d(n,{default:()=>E});var o=t(7552),l=t(27281),s=t(17515),a=t(36715),i=t(61723),r=t(943),c=t(49823),g=t(75785),u=t(68446),p=t(36422),m=t(30157);const d=(0,g.n9)()((e=>({paper:{overflow:"auto",minWidth:800},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}))),h=(0,u.observer)((function({session:e,onClose:n}){const{classes:t}=d(),{visibleWidget:r}=e,{pluginManager:c}=(0,p.getEnv)(e);if(!r)return null;const{HeadingComponent:g,heading:u}=c.getWidgetType(r.type);return o.createElement(l.A,{position:"static"},o.createElement(s.A,null,g?o.createElement(g,{model:r}):o.createElement(a.A,{variant:"h6"},u)),o.createElement(i.A,{className:t.closeButton,onClick:n},o.createElement(m.A,null)))})),E=(0,u.observer)((function({session:e,onClose:n}){const{classes:t}=d(),{visibleWidget:l}=e,{pluginManager:s}=(0,p.getEnv)(e);if(!l)return null;const{ReactComponent:a}=s.getWidgetType(l.type),i=s.evaluateExtensionPoint("Core-replaceWidget",a,{session:e,model:l});return o.createElement(c.Dialog,{open:!0,onClose:n,maxWidth:"xl",header:o.createElement(h,{onClose:n,session:e})},i?o.createElement(o.Suspense,{fallback:o.createElement("div",null,"Loading...")},o.createElement(r.A,{className:t.paper},o.createElement(i,{model:l,session:e,modal:!0,overrideDimensions:{height:5*window.innerHeight/8,width:800}}))):null)}))}}]); -//# sourceMappingURL=2968.4d90773a.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2968.4d90773a.chunk.js.map --- a/x/static/js/2968.4d90773a.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2968.4d90773a.chunk.js","mappings":"iRAWA,MAAMA,GAAYC,EAAAA,EAAAA,KAAAA,EAAaC,IAAS,CACtCC,MAAO,CACLC,SAAU,OACVC,SAAU,KAEZC,YAAa,CACXC,SAAU,WACVC,MAAON,EAAMO,QAAQ,GACrBC,IAAKR,EAAMO,QAAQ,GACnBE,MAAOT,EAAMU,QAAQC,KAAK,UAIxBC,GAAeC,EAAAA,EAAAA,WAAS,UAAsB,QAClDC,EAAO,QACPC,IAKA,MAAM,QAAEC,GAAYlB,KACd,cAAEmB,GAAkBH,GACpB,cAAEI,IAAkBC,EAAAA,EAAAA,QAAOL,GAEjC,IAAKG,EACH,OAAO,KAET,MAAM,iBAAEG,EAAgB,QAAEC,GAAYH,EAAcI,cAClDL,EAAcM,MAGhB,OACEC,EAAAA,cAACC,EAAAA,EAAM,CAACpB,SAAS,UACfmB,EAAAA,cAACE,EAAAA,EAAO,KACLN,EACCI,EAAAA,cAACJ,EAAgB,CAACO,MAAOV,IAEzBO,EAAAA,cAACI,EAAAA,EAAU,CAACC,QAAQ,MAAMR,IAG9BG,EAAAA,cAACM,EAAAA,EAAU,CAACC,UAAWf,EAAQZ,YAAa4B,QAASjB,GACnDS,EAAAA,cAACS,EAAAA,EAAS,OAIlB,IAmDA,GAjDoBpB,EAAAA,EAAAA,WAAS,UAAU,QACrCC,EAAO,QACPC,IAKA,MAAM,QAAEC,GAAYlB,KACd,cAAEmB,GAAkBH,GACpB,cAAEI,IAAkBC,EAAAA,EAAAA,QAAOL,GAEjC,IAAKG,EACH,OAAO,KAET,MAAM,eAAEiB,GAAmBhB,EAAcI,cAAcL,EAAcM,MAC/DY,EAAYjB,EAAckB,uBAC9B,qBACAF,EACA,CACEpB,UACAa,MAAOV,IAGX,OACEO,EAAAA,cAACa,EAAAA,OAAM,CACLC,MAAI,EACJvB,QAASA,EACTwB,SAAS,KACTC,OAAQhB,EAAAA,cAACZ,EAAY,CAACG,QAASA,EAASD,QAASA,KAEhDqB,EACCX,EAAAA,cAACiB,EAAAA,SAAQ,CAACC,SAAUlB,EAAAA,cAAA,WAAK,eACvBA,EAAAA,cAACmB,EAAAA,EAAK,CAACZ,UAAWf,EAAQf,OACxBuB,EAAAA,cAACW,EAAS,CACRR,MAAOV,EACPH,QAASA,EACT8B,OAAO,EACPC,mBAAoB,CAClBC,OAA8B,EAArBC,OAAOC,YAAmB,EACnCC,MAAO,SAKb,KAGV,G","sources":["../../../packages/app-core/src/ui/App/ModalWidget.tsx"],"sourcesContent":["import React, { Suspense } from 'react'\nimport { AppBar, IconButton, Paper, Toolbar, Typography } from '@mui/material'\nimport { Dialog } from '@jbrowse/core/ui'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { getEnv } from 'mobx-state-tree'\nimport { SessionWithWidgets } from '@jbrowse/core/util'\n\n// icons\nimport CloseIcon from '@mui/icons-material/Close'\n\nconst useStyles = makeStyles()(theme => ({\n paper: {\n overflow: 'auto',\n minWidth: 800,\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n },\n}))\n\nconst DrawerAppBar = observer(function DrawerAppBar({\n session,\n onClose,\n}: {\n session: SessionWithWidgets\n onClose: () => void\n}) {\n const { classes } = useStyles()\n const { visibleWidget } = session\n const { pluginManager } = getEnv(session)\n\n if (!visibleWidget) {\n return null\n }\n const { HeadingComponent, heading } = pluginManager.getWidgetType(\n visibleWidget.type,\n )\n\n return (\n \n \n {HeadingComponent ? (\n \n ) : (\n {heading}\n )}\n \n \n \n \n \n )\n})\n\nconst ModalWidget = observer(function ({\n session,\n onClose,\n}: {\n session: SessionWithWidgets\n onClose: () => void\n}) {\n const { classes } = useStyles()\n const { visibleWidget } = session\n const { pluginManager } = getEnv(session)\n\n if (!visibleWidget) {\n return null\n }\n const { ReactComponent } = pluginManager.getWidgetType(visibleWidget.type)\n const Component = pluginManager.evaluateExtensionPoint(\n 'Core-replaceWidget',\n ReactComponent,\n {\n session,\n model: visibleWidget,\n },\n ) as React.FC | undefined\n return (\n }\n >\n {Component ? (\n Loading...
}>\n \n \n \n \n ) : null}\n \n )\n})\n\nexport default ModalWidget\n"],"names":["useStyles","makeStyles","theme","paper","overflow","minWidth","closeButton","position","right","spacing","top","color","palette","grey","DrawerAppBar","observer","session","onClose","classes","visibleWidget","pluginManager","getEnv","HeadingComponent","heading","getWidgetType","type","React","AppBar","Toolbar","model","Typography","variant","IconButton","className","onClick","CloseIcon","ReactComponent","Component","evaluateExtensionPoint","Dialog","open","maxWidth","header","Suspense","fallback","Paper","modal","overrideDimensions","height","window","innerHeight","width"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2977.aa562b03.chunk.js --- a/x/static/js/2977.aa562b03.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2977,7706],{47046:(e,t,a)=>{a.d(t,{A:()=>i});class r{}class n{constructor(){this.signals=new Set,this.abortController=new AbortController}addSignal(e=new r){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(e),e.aborted?this.handleAborted(e):"function"==typeof e.addEventListener&&e.addEventListener("abort",(()=>{this.handleAborted(e)}))}handleAborted(e){this.signals.delete(e),0===this.signals.size&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}class s{constructor(){this.callbacks=new Set}addCallback(e=()=>{}){this.callbacks.add(e),e(this.currentMessage)}callback(e){this.currentMessage=e;for(const t of this.callbacks)t(e)}}class i{constructor({fill:e,cache:t}){if("function"!=typeof e)throw new TypeError("must pass a fill function");if("object"!=typeof t)throw new TypeError("must pass a cache object");if("function"!=typeof t.get||"function"!=typeof t.set||"function"!=typeof t.delete)throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=t,this.fillCallback=e}static isAbortException(e){return"AbortError"===e.name||"ERR_ABORTED"===e.code||"AbortError: aborted"===e.message||"Error: aborted"===e.message}evict(e,t){this.cache.get(e)===t&&this.cache.delete(e)}fill(e,t,a,r){const i=new n,o=new s;o.addCallback(r);const l={aborter:i,promise:this.fillCallback(t,i.signal,(e=>{o.callback(e)})),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};l.aborter.addSignal(a),l.aborter.signal.addEventListener("abort",(()=>{l.settled||this.evict(e,l)})),l.promise.then((()=>{l.settled=!0}),(()=>{l.settled=!0,this.evict(e,l)})).catch((e=>{throw console.error(e),e})),this.cache.set(e,l)}static checkSinglePromise(e,t){function a(){if(null==t?void 0:t.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return e.then((e=>(a(),e)),(e=>{throw a(),e}))}has(e){return this.cache.has(e)}get(e,t,a,r){if(!a&&t instanceof AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const n=this.cache.get(e);return n?n.aborted&&!n.settled?(this.evict(e,n),this.get(e,t,a,r)):n.settled?n.promise:(n.aborter.addSignal(a),n.statusReporter.addCallback(r),i.checkSinglePromise(n.promise,a)):(this.fill(e,t,a,r),i.checkSinglePromise(this.cache.get(e).promise,a))}delete(e){const t=this.cache.get(e);t&&(t.settled||t.aborter.abort(),this.cache.delete(e))}clear(){const e=this.cache.keys();let t=0;for(let a=e.next();!a.done;a=e.next())this.delete(a.value),t+=1;return t}}},7706:(e,t,a)=>{a.d(t,{sG:()=>d,unzip:()=>i,i2:()=>o});var r=a(35451),n=a(45834),s=a(57864);async function i(e){try{let t,a=0,n=0;const i=[];let o,l=0;do{const r=e.subarray(a);if(o=new s.Inflate,({strm:t}=o),o.push(r,s.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);a+=t.next_in,i[n]=o.result,l+=i[n].length,n+=1}while(t.avail_in);const h=new Uint8Array(l);for(let e=0,t=0;e=i.blockPosition){h[g]=h[g].subarray(0,i.blockPosition===n.blockPosition?i.dataPosition-n.dataPosition+1:i.dataPosition+1),c.push(o),d.push(l),f+=h[g].length;break}f+=h[g].length,g++}while(a.avail_in);const u=new Uint8Array(f);for(let e=0,t=0;eNumber.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");e=r.hp.allocUnsafe(n),await this.filehandle.read(e,0,n,8);for(let r=0;r{const r=e[1],n=a?a[1]:1/0;return r<=t&&n>t?0:r0?o=l-1:h<0&&(i=l+1),l=Math.ceil((o-i)/2)+i,h=s(r[l],r[l+1]);n.push(r[l]);let c=l+1;for(;c=a));c+=1);return n[n.length-1][1]=n?0:n-h,d=Math.min(n+a,h+r.length)-h;c>=0&&c{a.d(t,{tP:()=>l,BL:()=>o});var r=a(45834),n=a(7706),s=a(35451);function i(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}class o{constructor({fasta:e,fai:t,path:a,faiPath:n}){if(e)this.fasta=e;else{if(!a)throw new Error("Need to pass filehandle for fasta or path to localfile");this.fasta=new r.EY(a)}if(t)this.fai=t;else if(n)this.fai=new r.EY(n);else{if(!a)throw new Error("Need to pass filehandle for or path to localfile");this.fai=new r.EY(`${a}.fai`)}}async _getIndexes(e){return this.indexes||(this.indexes=async function(e,t){const a=await e.readFile(t);if(!(null==a?void 0:a.length))throw new Error("No data read from FASTA index (FAI) file");let r,n=0;const s=a.toString("utf8").split(/\r?\n/).filter((e=>/\S/.test(e))).map((e=>e.split("\t"))).filter((e=>""!==e[0])).map((e=>(r&&r.name===e[0]||(r={name:e[0],id:n},n+=1),{id:r.id,name:e[0],length:+e[1],start:0,end:+e[1],offset:+e[2],lineLength:+e[3],lineBytes:+e[4]})));return{name:Object.fromEntries(s.map((e=>[e.name,e]))),id:Object.fromEntries(s.map((e=>[e.id,e])))}}(this.fai,e)),this.indexes}async getSequenceNames(e){return Object.keys((await this._getIndexes(e)).name)}async getSequenceSizes(e){const t={},a=await this._getIndexes(e);for(const e of Object.values(a.id))t[e.name]=e.length;return t}async getSequenceSize(e,t){var a;return null===(a=(await this._getIndexes(t)).name[e])||void 0===a?void 0:a.length}async hasReferenceSequence(e,t){return!!(await this._getIndexes(t)).name[e]}async getResiduesById(e,t,a,r){const n=(await this._getIndexes(r)).id[e];if(n)return this._fetchFromIndexEntry(n,t,a,r)}async getResiduesByName(e,t,a,r){const n=(await this._getIndexes(r)).name[e];if(n)return this._fetchFromIndexEntry(n,t,a,r)}async getSequence(e,t,a,r){return this.getResiduesByName(e,t,a,r)}async _fetchFromIndexEntry(e,t=0,a,r){let n=a;if(t<0)throw new TypeError("regionStart cannot be less than 0");if((void 0===n||n>e.length)&&(n=e.length),t>=n)return"";const o=i(e,t),l=i(e,n)-o,h=s.hp.allocUnsafe(l);return await this.fasta.read(h,0,l,o,r),h.toString("utf8").replace(/\s+/g,"")}}class l extends o{constructor({fasta:e,path:t,fai:a,faiPath:r,gzi:s,gziPath:i}){super({fasta:e,path:t,fai:a,faiPath:r}),e&&s?this.fasta=new n.sG({filehandle:e,gziFilehandle:s}):t&&i&&(this.fasta=new n.sG({path:t,gziPath:i}))}}}}]); -//# sourceMappingURL=2977.aa562b03.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2977.aa562b03.chunk.js.map --- a/x/static/js/2977.aa562b03.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2977.aa562b03.chunk.js","mappings":"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","sources":["../../../node_modules/@gmod/abortable-promise-cache/src/AggregateAbortController.ts","../../../node_modules/@gmod/abortable-promise-cache/src/AggregateStatusReporter.ts","../../../node_modules/@gmod/abortable-promise-cache/src/AbortablePromiseCache.ts","../../../node_modules/@gmod/bgzf-filehandle/src/unzip-pako.ts","../../../node_modules/@gmod/bgzf-filehandle/src/gziIndex.ts","../../../node_modules/@gmod/bgzf-filehandle/src/bgzFilehandle.ts","../../../node_modules/@gmod/indexedfasta/src/indexedFasta.ts","../../../node_modules/@gmod/indexedfasta/src/bgzipIndexedFasta.ts"],"sourcesContent":["class NullSignal {}\n\n/**\n * aggregates a number of abort signals, will only fire the aggregated\n * abort if all of the input signals have been aborted\n */\nexport default class AggregateAbortController {\n signals = new Set()\n abortController = new AbortController()\n\n /**\n * @param {AbortSignal} [signal] optional AbortSignal to add. if falsy,\n * will be treated as a null-signal, and this abortcontroller will no\n * longer be abortable.\n */\n //@ts-ignore\n addSignal(signal: AbortSignal = new NullSignal()): void {\n if (this.signal.aborted) {\n throw new Error('cannot add a signal, already aborted!')\n }\n\n // note that a NullSignal will never fire, so if we\n // have one this thing will never actually abort\n this.signals.add(signal)\n if (signal.aborted) {\n // handle the abort immediately if it is already aborted\n // for some reason\n this.handleAborted(signal)\n } else if (typeof signal.addEventListener === 'function') {\n signal.addEventListener('abort', () => {\n this.handleAborted(signal)\n })\n }\n }\n\n handleAborted(signal: AbortSignal): void {\n this.signals.delete(signal)\n if (this.signals.size === 0) {\n this.abortController.abort()\n }\n }\n\n get signal(): AbortSignal {\n return this.abortController.signal\n }\n\n abort(): void {\n this.abortController.abort()\n }\n}\n","export default class AggregateStatusReporter {\n callbacks = new Set()\n currentMessage: unknown\n\n addCallback(callback: Function = () => {}): void {\n this.callbacks.add(callback)\n callback(this.currentMessage)\n }\n\n callback(message: unknown) {\n this.currentMessage = message\n for (const elt of this.callbacks) {\n elt(message)\n }\n }\n}\n","import AggregateAbortController from './AggregateAbortController'\nimport AggregateStatusReporter from './AggregateStatusReporter'\n\ninterface Cache {\n delete: (key: string) => void\n keys: () => Iterator\n get: (key: string) => U | undefined\n set: (key: string, value: U) => void\n has: (key: string) => boolean\n}\ntype FillCallback = (\n data: T,\n signal?: AbortSignal,\n statusCallback?: Function,\n) => Promise\n\ninterface Entry {\n aborter: AggregateAbortController\n settled: boolean\n readonly aborted: boolean\n statusReporter: AggregateStatusReporter\n promise: Promise\n}\nexport default class AbortablePromiseCache {\n /**\n * @param {object} args constructor args\n * @param {Function} args.fill fill callback, will be called with sig `fill(data, signal)`\n * @param {object} args.cache backing store to use, must implement `get(key)`, `set(key, val)`,\n * `delete(key)`, and `keys() -> iterator`\n */\n\n private cache: Cache>\n private fillCallback: FillCallback\n\n constructor({\n fill,\n cache,\n }: {\n fill: FillCallback\n cache: Cache>\n }) {\n if (typeof fill !== 'function') {\n throw new TypeError('must pass a fill function')\n }\n if (typeof cache !== 'object') {\n throw new TypeError('must pass a cache object')\n }\n if (\n typeof cache.get !== 'function' ||\n typeof cache.set !== 'function' ||\n typeof cache.delete !== 'function'\n ) {\n throw new TypeError(\n 'cache must implement get(key), set(key, val), and and delete(key)',\n )\n }\n\n this.cache = cache\n this.fillCallback = fill\n }\n\n static isAbortException(exception: Error) {\n return (\n // DOMException\n exception.name === 'AbortError' ||\n // standard-ish non-DOM abort exception\n //@ts-ignore\n exception.code === 'ERR_ABORTED' ||\n // stringified DOMException\n exception.message === 'AbortError: aborted' ||\n // stringified standard-ish exception\n exception.message === 'Error: aborted'\n )\n }\n\n evict(key: string, entry: Entry) {\n if (this.cache.get(key) === entry) {\n this.cache.delete(key)\n }\n }\n\n fill(key: string, data: T, signal?: AbortSignal, statusCallback?: Function) {\n const aborter = new AggregateAbortController()\n const statusReporter = new AggregateStatusReporter()\n statusReporter.addCallback(statusCallback)\n const newEntry: Entry = {\n aborter: aborter,\n promise: this.fillCallback(data, aborter.signal, (message: unknown) => {\n statusReporter.callback(message)\n }),\n settled: false,\n statusReporter,\n get aborted() {\n return this.aborter.signal.aborted\n },\n }\n newEntry.aborter.addSignal(signal)\n\n // remove the fill from the cache when its abortcontroller fires, if still in there\n newEntry.aborter.signal.addEventListener('abort', () => {\n if (!newEntry.settled) {\n this.evict(key, newEntry)\n }\n })\n\n // chain off the cached promise to record when it settles\n newEntry.promise\n .then(\n () => {\n newEntry.settled = true\n },\n () => {\n newEntry.settled = true\n\n // if the fill throws an error (including abort) and is still in the cache, remove it\n this.evict(key, newEntry)\n },\n )\n .catch(error => {\n // this will only be reached if there is some kind of\n // bad bug in this library\n console.error(error)\n throw error\n })\n\n this.cache.set(key, newEntry)\n }\n\n static checkSinglePromise(promise: Promise, signal?: AbortSignal) {\n // check just this signal for having been aborted, and abort the\n // promise if it was, regardless of what happened with the cached\n // response\n function checkForSingleAbort() {\n if (signal?.aborted) {\n throw Object.assign(new Error('aborted'), { code: 'ERR_ABORTED' })\n }\n }\n\n return promise.then(\n result => {\n checkForSingleAbort()\n return result\n },\n error => {\n checkForSingleAbort()\n throw error\n },\n )\n }\n\n has(key: string): boolean {\n return this.cache.has(key)\n }\n\n /**\n * Callback for getting status of the pending async\n *\n * @callback statusCallback\n * @param {any} status, current status string or message object\n */\n\n /**\n * @param {any} key cache key to use for this request\n * @param {any} data data passed as the first argument to the fill callback\n * @param {AbortSignal} [signal] optional AbortSignal object that aborts the request\n * @param {statusCallback} a callback to get the current status of a pending async operation\n */\n get(\n key: string,\n data: T,\n signal?: AbortSignal,\n statusCallback?: Function,\n ): Promise {\n if (!signal && data instanceof AbortSignal) {\n throw new TypeError(\n 'second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?',\n )\n }\n const cacheEntry = this.cache.get(key)\n\n if (cacheEntry) {\n if (cacheEntry.aborted && !cacheEntry.settled) {\n // if it's aborted but has not realized it yet, evict it and redispatch\n this.evict(key, cacheEntry)\n return this.get(key, data, signal, statusCallback)\n }\n\n if (cacheEntry.settled) {\n // too late to abort, just return it\n return cacheEntry.promise\n }\n\n // request is in-flight, add this signal to its list of signals,\n // or if there is no signal, the aborter will become non-abortable\n cacheEntry.aborter.addSignal(signal)\n cacheEntry.statusReporter.addCallback(statusCallback)\n\n return AbortablePromiseCache.checkSinglePromise(\n cacheEntry.promise,\n signal,\n )\n }\n\n // if we got here, it is not in the cache. fill.\n this.fill(key, data, signal, statusCallback)\n return AbortablePromiseCache.checkSinglePromise(\n //see https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#non-null-assertion-operator-postfix-\n\n this.cache.get(key)!.promise,\n signal,\n )\n }\n\n /**\n * delete the given entry from the cache. if it exists and its fill request has\n * not yet settled, the fill will be signaled to abort.\n *\n * @param {any} key\n */\n delete(key: string) {\n const cachedEntry = this.cache.get(key)\n if (cachedEntry) {\n if (!cachedEntry.settled) {\n cachedEntry.aborter.abort()\n }\n this.cache.delete(key)\n }\n }\n\n /**\n * Clear all requests from the cache. Aborts any that have not settled.\n * @returns {number} count of entries deleted\n */\n clear() {\n // iterate without needing regenerator-runtime\n const keyIter = this.cache.keys()\n let deleteCount = 0\n for (let result = keyIter.next(); !result.done; result = keyIter.next()) {\n this.delete(result.value)\n deleteCount += 1\n }\n return deleteCount\n }\n}\n","import { Buffer } from 'buffer'\n//@ts-ignore\nimport { Z_SYNC_FLUSH, Inflate } from 'pako'\n\ninterface VirtualOffset {\n blockPosition: number\n dataPosition: number\n}\ninterface Chunk {\n minv: VirtualOffset\n maxv: VirtualOffset\n}\n\n// browserify-zlib, which is the zlib shim used by default in webpacked code,\n// does not properly uncompress bgzf chunks that contain more than\n// one bgzf block, so export an unzip function that uses pako directly\n// if we are running in a browser.\nasync function unzip(inputData: Buffer) {\n try {\n let strm\n let pos = 0\n let i = 0\n const chunks = []\n let totalSize = 0\n let inflator\n do {\n const remainingInput = inputData.subarray(pos)\n inflator = new Inflate()\n //@ts-ignore\n ;({ strm } = inflator)\n inflator.push(remainingInput, Z_SYNC_FLUSH)\n if (inflator.err) {\n throw new Error(inflator.msg)\n }\n\n pos += strm.next_in\n chunks[i] = inflator.result as Uint8Array\n totalSize += chunks[i].length\n i += 1\n } while (strm.avail_in)\n\n const result = new Uint8Array(totalSize)\n for (let i = 0, offset = 0; i < chunks.length; i++) {\n result.set(chunks[i], offset)\n offset += chunks[i].length\n }\n return Buffer.from(result)\n } catch (e) {\n //cleanup error message\n if (`${e}`.match(/incorrect header check/)) {\n throw new Error(\n 'problem decompressing block: incorrect gzip header check',\n )\n }\n throw e\n }\n}\n\n// similar to pakounzip, except it does extra counting\n// to return the positions of compressed and decompressed\n// data offsets\nasync function unzipChunk(inputData: Buffer) {\n try {\n let strm\n let cpos = 0\n let dpos = 0\n const blocks = []\n const cpositions = []\n const dpositions = []\n do {\n const remainingInput = inputData.slice(cpos)\n const inflator = new Inflate()\n // @ts-ignore\n ;({ strm } = inflator)\n inflator.push(remainingInput, Z_SYNC_FLUSH)\n if (inflator.err) {\n throw new Error(inflator.msg)\n }\n\n const buffer = Buffer.from(inflator.result)\n blocks.push(buffer)\n\n cpositions.push(cpos)\n dpositions.push(dpos)\n\n cpos += strm.next_in\n dpos += buffer.length\n } while (strm.avail_in)\n\n const buffer = Buffer.concat(blocks)\n return { buffer, cpositions, dpositions }\n } catch (e) {\n //cleanup error message\n if (`${e}`.match(/incorrect header check/)) {\n throw new Error(\n 'problem decompressing block: incorrect gzip header check',\n )\n }\n throw e\n }\n}\n\n// similar to unzipChunk above but slices (0,minv.dataPosition) and\n// (maxv.dataPosition,end) off\nasync function unzipChunkSlice(inputData: Buffer, chunk: Chunk) {\n try {\n let strm\n const { minv, maxv } = chunk\n let cpos = minv.blockPosition\n let dpos = minv.dataPosition\n const chunks = []\n const cpositions = []\n const dpositions = []\n\n let totalSize = 0\n let i = 0\n do {\n const remainingInput = inputData.subarray(cpos - minv.blockPosition)\n const inflator = new Inflate()\n // @ts-ignore\n ;({ strm } = inflator)\n inflator.push(remainingInput, Z_SYNC_FLUSH)\n if (inflator.err) {\n throw new Error(inflator.msg)\n }\n\n const buffer = inflator.result\n chunks.push(buffer as Uint8Array)\n let len = buffer.length\n\n cpositions.push(cpos)\n dpositions.push(dpos)\n if (chunks.length === 1 && minv.dataPosition) {\n // this is the first chunk, trim it\n chunks[0] = chunks[0].subarray(minv.dataPosition)\n len = chunks[0].length\n }\n const origCpos = cpos\n cpos += strm.next_in\n dpos += len\n\n if (origCpos >= maxv.blockPosition) {\n // this is the last chunk, trim it and stop decompressing\n // note if it is the same block is minv it subtracts that already\n // trimmed part of the slice length\n\n chunks[i] = chunks[i].subarray(\n 0,\n maxv.blockPosition === minv.blockPosition\n ? maxv.dataPosition - minv.dataPosition + 1\n : maxv.dataPosition + 1,\n )\n\n cpositions.push(cpos)\n dpositions.push(dpos)\n totalSize += chunks[i].length\n break\n }\n totalSize += chunks[i].length\n i++\n } while (strm.avail_in)\n\n const result = new Uint8Array(totalSize)\n for (let i = 0, offset = 0; i < chunks.length; i++) {\n result.set(chunks[i], offset)\n offset += chunks[i].length\n }\n const buffer = Buffer.from(result)\n\n return { buffer, cpositions, dpositions }\n } catch (e) {\n //cleanup error message\n if (`${e}`.match(/incorrect header check/)) {\n throw new Error(\n 'problem decompressing block: incorrect gzip header check',\n )\n }\n throw e\n }\n}\n\nfunction nodeUnzip() {\n throw new Error('nodeUnzip not implemented.')\n}\n\nexport { unzip, unzipChunk, unzipChunkSlice, unzip as pakoUnzip, nodeUnzip }\n","import Long from 'long'\nimport { Buffer } from 'buffer'\nimport { LocalFile, GenericFilehandle } from 'generic-filehandle'\n\n// const COMPRESSED_POSITION = 0\nconst UNCOMPRESSED_POSITION = 1\n\nexport default class GziIndex {\n filehandle: GenericFilehandle\n\n index?: any\n\n constructor({\n filehandle,\n path,\n }: {\n filehandle?: GenericFilehandle\n path?: string\n }) {\n if (filehandle) {\n this.filehandle = filehandle\n } else if (path) {\n this.filehandle = new LocalFile(path)\n } else {\n throw new TypeError('either filehandle or path must be defined')\n }\n }\n\n _readLongWithOverflow(buf: Buffer, offset = 0, unsigned = true) {\n //@ts-ignore\n const long = Long.fromBytesLE(buf.slice(offset, offset + 8), unsigned)\n if (\n long.greaterThan(Number.MAX_SAFE_INTEGER) ||\n long.lessThan(Number.MIN_SAFE_INTEGER)\n ) {\n throw new TypeError('integer overflow')\n }\n\n return long.toNumber()\n }\n\n _getIndex() {\n if (!this.index) {\n this.index = this._readIndex()\n }\n return this.index\n }\n\n async _readIndex() {\n let buf = Buffer.allocUnsafe(8)\n await this.filehandle.read(buf, 0, 8, 0)\n const numEntries = this._readLongWithOverflow(buf, 0, true)\n if (!numEntries) {\n return [[0, 0]]\n }\n\n const entries = new Array(numEntries + 1)\n entries[0] = [0, 0]\n\n // TODO rewrite this to make an index-index that stays in memory\n const bufSize = 8 * 2 * numEntries\n if (bufSize > Number.MAX_SAFE_INTEGER) {\n throw new TypeError('integer overflow')\n }\n buf = Buffer.allocUnsafe(bufSize)\n await this.filehandle.read(buf, 0, bufSize, 8)\n for (let entryNumber = 0; entryNumber < numEntries; entryNumber += 1) {\n const compressedPosition = this._readLongWithOverflow(\n buf,\n entryNumber * 16,\n )\n const uncompressedPosition = this._readLongWithOverflow(\n buf,\n entryNumber * 16 + 8,\n )\n entries[entryNumber + 1] = [compressedPosition, uncompressedPosition]\n }\n\n return entries\n }\n\n async getLastBlock() {\n const entries = await this._getIndex()\n if (!entries.length) {\n return undefined\n }\n return entries[entries.length - 1]\n }\n\n async getRelevantBlocksForRead(length: number, position: number) {\n const endPosition = position + length\n if (length === 0) {\n return []\n }\n const entries = await this._getIndex()\n const relevant = []\n\n // binary search to find the block that the\n // read starts in and extend forward from that\n const compare = (entry: any, nextEntry: any) => {\n const uncompressedPosition = entry[UNCOMPRESSED_POSITION]\n const nextUncompressedPosition = nextEntry\n ? nextEntry[UNCOMPRESSED_POSITION]\n : Infinity\n // block overlaps read start\n if (\n uncompressedPosition <= position &&\n nextUncompressedPosition > position\n ) {\n return 0\n // block is before read start\n }\n if (uncompressedPosition < position) {\n return -1\n }\n // block is after read start\n return 1\n }\n\n let lowerBound = 0\n let upperBound = entries.length - 1\n let searchPosition = Math.floor(entries.length / 2)\n\n let comparison = compare(\n entries[searchPosition],\n entries[searchPosition + 1],\n )\n while (comparison !== 0) {\n if (comparison > 0) {\n upperBound = searchPosition - 1\n } else if (comparison < 0) {\n lowerBound = searchPosition + 1\n }\n searchPosition = Math.ceil((upperBound - lowerBound) / 2) + lowerBound\n comparison = compare(entries[searchPosition], entries[searchPosition + 1])\n }\n\n // here's where we read forward\n relevant.push(entries[searchPosition])\n let i = searchPosition + 1\n for (; i < entries.length; i += 1) {\n relevant.push(entries[i])\n if (entries[i][UNCOMPRESSED_POSITION] >= endPosition) {\n break\n }\n }\n if (relevant[relevant.length - 1][UNCOMPRESSED_POSITION] < endPosition) {\n relevant.push([])\n }\n return relevant\n }\n}\n","import { Buffer } from 'buffer'\nimport { LocalFile, GenericFilehandle } from 'generic-filehandle'\n\n// locals\nimport { unzip } from './unzip'\nimport GziIndex from './gziIndex'\n\nexport default class BgzFilehandle {\n filehandle: GenericFilehandle\n gzi: GziIndex\n\n constructor({\n filehandle,\n path,\n gziFilehandle,\n gziPath,\n }: {\n filehandle?: GenericFilehandle\n path?: string\n gziFilehandle?: GenericFilehandle\n gziPath?: string\n }) {\n if (filehandle) {\n this.filehandle = filehandle\n } else if (path) {\n this.filehandle = new LocalFile(path)\n } else {\n throw new TypeError('either filehandle or path must be defined')\n }\n\n if (!gziFilehandle && !gziPath && !path) {\n throw new TypeError('either gziFilehandle or gziPath must be defined')\n }\n\n this.gzi = new GziIndex({\n filehandle: gziFilehandle,\n path: !gziFilehandle && !gziPath && path ? gziPath : `${path}.gzi`,\n })\n }\n\n async stat() {\n const compressedStat = await this.filehandle.stat()\n return Object.assign(compressedStat, {\n size: await this.getUncompressedFileSize(),\n blocks: undefined,\n blksize: undefined,\n })\n }\n\n async getUncompressedFileSize() {\n // read the last block's ISIZE (see gzip RFC),\n // and add it to its uncompressedPosition\n const [, uncompressedPosition] = await this.gzi.getLastBlock()\n\n const { size } = await this.filehandle.stat()\n\n const buf = Buffer.allocUnsafe(4)\n // note: there should be a 28-byte EOF marker (an empty block) at\n // the end of the file, so we skip backward past that\n const { bytesRead } = await this.filehandle.read(buf, 0, 4, size - 28 - 4)\n if (bytesRead !== 4) {\n throw new Error('read error')\n }\n const lastBlockUncompressedSize = buf.readUInt32LE(0)\n return uncompressedPosition + lastBlockUncompressedSize\n }\n\n async _readAndUncompressBlock(\n blockBuffer: Buffer,\n [compressedPosition]: [number],\n [nextCompressedPosition]: [number],\n ) {\n let next = nextCompressedPosition\n if (!next) {\n next = (await this.filehandle.stat()).size\n }\n\n // read the compressed data into the block buffer\n const blockCompressedLength = next - compressedPosition\n\n await this.filehandle.read(\n blockBuffer,\n 0,\n blockCompressedLength,\n compressedPosition,\n )\n\n // uncompress it\n const unzippedBuffer = await unzip(\n blockBuffer.slice(0, blockCompressedLength),\n )\n\n return unzippedBuffer as Buffer\n }\n\n async read(buf: Buffer, offset: number, length: number, position: number) {\n // get the block positions for this read\n const blockPositions = await this.gzi.getRelevantBlocksForRead(\n length,\n position,\n )\n const blockBuffer = Buffer.allocUnsafe(32768 * 2)\n // uncompress the blocks and read from them one at a time to keep memory usage down\n let destinationOffset = offset\n let bytesRead = 0\n for (\n let blockNum = 0;\n blockNum < blockPositions.length - 1;\n blockNum += 1\n ) {\n // eslint-disable-next-line no-await-in-loop\n const uncompressedBuffer = await this._readAndUncompressBlock(\n blockBuffer,\n blockPositions[blockNum],\n blockPositions[blockNum + 1],\n )\n const [, uncompressedPosition] = blockPositions[blockNum]\n const sourceOffset =\n uncompressedPosition >= position ? 0 : position - uncompressedPosition\n const sourceEnd =\n Math.min(\n position + length,\n uncompressedPosition + uncompressedBuffer.length,\n ) - uncompressedPosition\n if (sourceOffset >= 0 && sourceOffset < uncompressedBuffer.length) {\n uncompressedBuffer.copy(buf, destinationOffset, sourceOffset, sourceEnd)\n destinationOffset += sourceEnd - sourceOffset\n bytesRead += sourceEnd - sourceOffset\n }\n }\n\n return { bytesRead, buffer: buf }\n }\n}\n","import { LocalFile, GenericFilehandle } from 'generic-filehandle'\nimport { Buffer } from 'buffer'\n\ninterface BaseOpts {\n signal?: AbortSignal\n}\n\ninterface IndexEntry {\n offset: number\n lineBytes: number\n lineLength: number\n length: number\n}\n\nfunction _faiOffset(idx: IndexEntry, pos: number) {\n return (\n idx.offset +\n idx.lineBytes * Math.floor(pos / idx.lineLength) +\n (pos % idx.lineLength)\n )\n}\n\nasync function readFAI(fai: GenericFilehandle, opts?: BaseOpts) {\n const text = await fai.readFile(opts)\n if (!text?.length) {\n throw new Error('No data read from FASTA index (FAI) file')\n }\n\n let idCounter = 0\n let currSeq: { name: string; id: number } | undefined\n const data = text\n .toString('utf8')\n .split(/\\r?\\n/)\n .filter(line => /\\S/.test(line))\n .map(line => line.split('\\t'))\n .filter(row => row[0] !== '')\n .map(row => {\n if (!currSeq || currSeq.name !== row[0]) {\n currSeq = { name: row[0], id: idCounter }\n idCounter += 1\n }\n\n return {\n id: currSeq.id,\n name: row[0],\n length: +row[1],\n start: 0,\n end: +row[1],\n offset: +row[2],\n lineLength: +row[3],\n lineBytes: +row[4],\n }\n })\n\n return {\n name: Object.fromEntries(data.map(entry => [entry.name, entry])),\n id: Object.fromEntries(data.map(entry => [entry.id, entry])),\n }\n}\n\nexport default class IndexedFasta {\n fasta: GenericFilehandle\n fai: GenericFilehandle\n indexes?: ReturnType\n\n constructor({\n fasta,\n fai,\n path,\n faiPath,\n }: {\n fasta?: GenericFilehandle\n fai?: GenericFilehandle\n path?: string\n faiPath?: string\n }) {\n if (fasta) {\n this.fasta = fasta\n } else if (path) {\n this.fasta = new LocalFile(path)\n } else {\n throw new Error('Need to pass filehandle for fasta or path to localfile')\n }\n\n if (fai) {\n this.fai = fai\n } else if (faiPath) {\n this.fai = new LocalFile(faiPath)\n } else if (path) {\n this.fai = new LocalFile(`${path}.fai`)\n } else {\n throw new Error('Need to pass filehandle for or path to localfile')\n }\n }\n\n async _getIndexes(opts?: BaseOpts) {\n if (!this.indexes) {\n this.indexes = readFAI(this.fai, opts)\n }\n return this.indexes\n }\n\n /**\n * @returns {array[string]} array of string sequence\n * names that are present in the index, in which the\n * array index indicates the sequence ID, and the value\n * is the sequence name\n */\n async getSequenceNames(opts?: BaseOpts) {\n return Object.keys((await this._getIndexes(opts)).name)\n }\n\n /**\n * @returns {array[string]} array of string sequence\n * names that are present in the index, in which the\n * array index indicates the sequence ID, and the value\n * is the sequence name\n */\n async getSequenceSizes(opts?: BaseOpts) {\n const returnObject = {} as Record\n const idx = await this._getIndexes(opts)\n for (const val of Object.values(idx.id)) {\n returnObject[val.name] = val.length\n }\n return returnObject\n }\n\n /**\n * @returns {array[string]} array of string sequence\n * names that are present in the index, in which the\n * array index indicates the sequence ID, and the value\n * is the sequence name\n */\n async getSequenceSize(seqName: string, opts?: BaseOpts) {\n const idx = await this._getIndexes(opts)\n return idx.name[seqName]?.length\n }\n\n /**\n *\n * @param {string} name\n * @returns {Promise[boolean]} true if the file contains the given reference sequence name\n */\n async hasReferenceSequence(name: string, opts?: BaseOpts) {\n return !!(await this._getIndexes(opts)).name[name]\n }\n\n /**\n *\n * @param {number} seqId\n * @param {number} min\n * @param {number} max\n */\n async getResiduesById(\n seqId: number,\n min: number,\n max: number,\n opts?: BaseOpts,\n ) {\n const indexEntry = (await this._getIndexes(opts)).id[seqId]\n if (!indexEntry) {\n return undefined\n }\n return this._fetchFromIndexEntry(indexEntry, min, max, opts)\n }\n\n /**\n * @param {string} seqName\n * @param {number} min\n * @param {number} max\n */\n async getResiduesByName(\n seqName: string,\n min: number,\n max: number,\n opts?: BaseOpts,\n ) {\n const indexEntry = (await this._getIndexes(opts)).name[seqName]\n if (!indexEntry) {\n return undefined\n }\n\n return this._fetchFromIndexEntry(indexEntry, min, max, opts)\n }\n\n //alias for getResiduesByName\n async getSequence(\n seqName: string,\n min: number,\n max: number,\n opts?: BaseOpts,\n ) {\n return this.getResiduesByName(seqName, min, max, opts)\n }\n\n async _fetchFromIndexEntry(\n indexEntry: IndexEntry,\n min = 0,\n max: number,\n opts?: BaseOpts,\n ) {\n let end = max\n if (min < 0) {\n throw new TypeError('regionStart cannot be less than 0')\n }\n if (end === undefined || end > indexEntry.length) {\n end = indexEntry.length\n }\n if (min >= end) {\n return ''\n }\n\n const position = _faiOffset(indexEntry, min)\n const readlen = _faiOffset(indexEntry, end) - position\n\n const residues = Buffer.allocUnsafe(readlen)\n await this.fasta.read(residues, 0, readlen, position, opts)\n return residues.toString('utf8').replace(/\\s+/g, '')\n }\n}\n","import { BgzfFilehandle } from '@gmod/bgzf-filehandle'\nimport { GenericFilehandle } from 'generic-filehandle'\nimport IndexedFasta from './indexedFasta'\n\nexport default class BgzipIndexedFasta extends IndexedFasta {\n constructor({\n fasta,\n path,\n fai,\n faiPath,\n gzi,\n gziPath,\n }: {\n fasta?: GenericFilehandle\n path?: string\n fai?: GenericFilehandle\n faiPath?: string\n gzi?: GenericFilehandle\n gziPath?: string\n }) {\n super({ fasta, path, fai, faiPath })\n if (fasta && gzi) {\n // @ts-expect-error\n this.fasta = new BgzfFilehandle({\n filehandle: fasta,\n gziFilehandle: gzi,\n })\n } else if (path && gziPath) {\n // @ts-expect-error\n this.fasta = new BgzfFilehandle({ path, gziPath })\n }\n }\n}\n"],"names":["NullSignal","AggregateAbortController","signals","Set","abortController","AbortController","addSignal","signal","this","aborted","Error","add","handleAborted","addEventListener","delete","size","abort","AggregateStatusReporter","callbacks","addCallback","callback","currentMessage","message","elt","AbortablePromiseCache","constructor","fill","cache","TypeError","get","set","fillCallback","isAbortException","exception","name","code","evict","key","entry","data","statusCallback","aborter","statusReporter","newEntry","promise","settled","then","catch","error","console","checkSinglePromise","checkForSingleAbort","Object","assign","result","has","AbortSignal","cacheEntry","cachedEntry","clear","keyIter","keys","deleteCount","next","done","value","async","unzip","inputData","strm","pos","i","chunks","inflator","totalSize","remainingInput","subarray","Inflate","push","Z_SYNC_FLUSH","err","msg","next_in","length","avail_in","Uint8Array","offset","from","e","match","unzipChunkSlice","chunk","minv","maxv","cpos","blockPosition","dpos","dataPosition","cpositions","dpositions","buffer","len","origCpos","GziIndex","filehandle","path","_readLongWithOverflow","buf","unsigned","long","slice","greaterThan","Number","MAX_SAFE_INTEGER","lessThan","MIN_SAFE_INTEGER","toNumber","_getIndex","index","_readIndex","allocUnsafe","read","numEntries","entries","Array","bufSize","entryNumber","compressedPosition","uncompressedPosition","getLastBlock","getRelevantBlocksForRead","position","endPosition","relevant","compare","nextEntry","nextUncompressedPosition","Infinity","lowerBound","upperBound","searchPosition","Math","floor","comparison","ceil","BgzFilehandle","gziFilehandle","gziPath","gzi","stat","compressedStat","getUncompressedFileSize","blocks","undefined","blksize","bytesRead","readUInt32LE","_readAndUncompressBlock","blockBuffer","nextCompressedPosition","blockCompressedLength","blockPositions","destinationOffset","blockNum","uncompressedBuffer","sourceOffset","sourceEnd","min","copy","_faiOffset","idx","lineBytes","lineLength","IndexedFasta","fasta","fai","faiPath","_getIndexes","opts","indexes","text","readFile","currSeq","idCounter","toString","split","filter","line","test","map","row","id","start","end","fromEntries","readFAI","getSequenceNames","getSequenceSizes","returnObject","val","values","getSequenceSize","seqName","hasReferenceSequence","getResiduesById","seqId","max","indexEntry","_fetchFromIndexEntry","getResiduesByName","getSequence","readlen","residues","replace","BgzipIndexedFasta","super"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2989.031b43a0.chunk.js --- a/x/static/js/2989.031b43a0.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[2989],{12989:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7552),r=a(68446),l=a(1343),o=a(29499),i=a(36715),s=a(87731),c=a(943),u=a(58507),p=a(5401),d=a(49823);const m=(0,a(75785).n9)()((e=>({paper:{padding:e.spacing(2),margin:e.spacing(2)},field:{margin:e.spacing(2)}}))),g=["read paired","read mapped in proper pair","read unmapped","mate unmapped","read reverse strand","mate reverse strand","first in pair","second in pair","not primary alignment","read fails platform/vendor quality checks","read is PCR or optical duplicate","supplementary alignment"];function v(e){const{flag:t=0,setFlag:a}=e;return n.createElement(n.Fragment,null,n.createElement(l.A,{type:"number",value:t,onChange:e=>{a(+e.target.value)}}),g.map(((e,r)=>{const l=t&1<{e.target.checked?a(t|1<{E(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2},error:2===A.length&&!S,helperText:2!==A.length||S?"":"Not a valid tag"}),n.createElement(l.A,{className:r.field,value:x,onChange:e=>{C(e.target.value)},placeholder:"Enter tag value"})),n.createElement(c.A,{className:r.paper,variant:"outlined"},n.createElement(i.A,null,"Filter by read name"),n.createElement(l.A,{className:r.field,value:k,onChange:e=>{w(e.target.value)},placeholder:"Enter read name"})),n.createElement(u.A,null,n.createElement(p.A,{variant:"contained",color:"primary",autoFocus:!0,type:"submit",onClick:()=>{t.setFilterBy({flagInclude:y,flagExclude:b,readName:k,tagFilter:""!==A?{tag:A,value:x}:void 0}),a()}},"Submit"),n.createElement(p.A,{variant:"contained",color:"secondary",onClick:()=>{a()}},"Cancel"))))}))},87731:(e,t,a)=>{a.d(t,{A:()=>E});var n=a(7552),r=a(93878),l=a(72639),o=a(70799),i=a(91527),s=a(15622),c=a(51148),u=a(48231),p=a(60129),d=a(58520),m=a(4785),g=a(36715),v=a(58161),y=a(39995);const h=({theme:e,ownerState:t})=>{const a=t.color,n=(0,y.Yn)(e,`palette.${a}`,!1)||t.color,r=(0,y.Yn)(e,`palette.${a}Channel`);return"vars"in e&&r?`rgba(${r} / 0.4)`:(0,l.X4)(n,.4)};var b=a(69500);const f={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},A=(0,c.Ay)(g.A,{name:"MuiLink",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:a}=e;return[t.root,t[`underline${(0,s.A)(a.underline)}`],"button"===a.component&&t.button]}})((0,p.A)((({theme:e})=>({variants:[{props:{underline:"none"},style:{textDecoration:"none"}},{props:{underline:"hover"},style:{textDecoration:"none","&:hover":{textDecoration:"underline"}}},{props:{underline:"always"},style:{textDecoration:"underline","&:hover":{textDecorationColor:"inherit"}}},{props:({underline:e,ownerState:t})=>"always"===e&&"inherit"!==t.color,style:{textDecorationColor:"var(--Link-underlineColor)"}},...Object.entries(e.palette).filter((0,d.A)()).map((([t])=>({props:{underline:"always",color:t},style:{"--Link-underlineColor":e.vars?`rgba(${e.vars.palette[t].mainChannel} / 0.4)`:(0,l.X4)(e.palette[t].main,.4)}}))),{props:{underline:"always",color:"textPrimary"},style:{"--Link-underlineColor":e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.4)`:(0,l.X4)(e.palette.text.primary,.4)}},{props:{underline:"always",color:"textSecondary"},style:{"--Link-underlineColor":e.vars?`rgba(${e.vars.palette.text.secondaryChannel} / 0.4)`:(0,l.X4)(e.palette.text.secondary,.4)}},{props:{underline:"always",color:"textDisabled"},style:{"--Link-underlineColor":(e.vars||e).palette.text.disabled}},{props:{component:"button"},style:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${v.A.focusVisible}`]:{outline:"auto"}}}]})))),E=n.forwardRef((function(e,t){const a=(0,m.b)({props:e,name:"MuiLink"}),l=(0,u.A)(),{className:c,color:p="primary",component:d="a",onBlur:g,onFocus:y,TypographyClasses:E,underline:x="always",variant:C="inherit",sx:k,...w}=a,[S,F]=n.useState(!1),N={...a,color:p,component:d,focusVisible:S,underline:x,variant:C},L=(e=>{const{classes:t,component:a,focusVisible:n,underline:r}=e,l={root:["root",`underline${(0,s.A)(r)}`,"button"===a&&"button",n&&"focusVisible"]};return(0,o.A)(l,v.t,t)})(N);return(0,b.jsx)(A,{color:p,className:(0,r.A)(L.root,c),classes:E,component:d,onBlur:e=>{(0,i.A)(e.target)||F(!1),g&&g(e)},onFocus:e=>{(0,i.A)(e.target)&&F(!0),y&&y(e)},ref:t,ownerState:N,variant:C,...w,sx:[...void 0===f[p]?[{color:p}]:[],...Array.isArray(k)?k:[k]],style:{...w.style,..."always"===x&&"inherit"!==p&&!f[p]&&{"--Link-underlineColor":h({theme:l,ownerState:N})}}})}))},58161:(e,t,a)=>{a.d(t,{A:()=>o,t:()=>l});var n=a(33761),r=a(85693);function l(e){return(0,r.Ay)("MuiLink",e)}const o=(0,n.A)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"])}}]); -//# sourceMappingURL=2989.031b43a0.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/2989.031b43a0.chunk.js.map --- a/x/static/js/2989.031b43a0.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/2989.031b43a0.chunk.js","mappings":"oQAeA,MAAMA,GAAYC,E,SAAAA,KAAAA,EAAaC,IAAS,CACtCC,MAAO,CACLC,QAASF,EAAMG,QAAQ,GACvBC,OAAQJ,EAAMG,QAAQ,IAExBE,MAAO,CACLD,OAAQJ,EAAMG,QAAQ,QAIpBG,EAAY,CAChB,cACA,6BACA,gBACA,gBACA,sBACA,sBACA,gBACA,iBACA,wBACA,4CACA,mCACA,2BAGF,SAASC,EAAQC,GACf,MAAM,KAAEC,EAAO,EAAC,QAAEC,GAAYF,EAC9B,OACEG,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACC,EAAAA,EAAS,CACRC,KAAK,SACLC,MAAOL,EACPM,SAAUC,IACRN,GAASM,EAAMC,OAAOH,MAAM,IAG/BR,EAAUY,KAAI,CAACC,EAAMC,KACpB,MAAMC,EAAMZ,EAAQ,GAAKW,EACnBE,EAAM,GAAGH,KAAQE,IACvB,OACEV,EAAAA,cAAA,OAAKW,IAAKA,GACRX,EAAAA,cAAA,SACEE,KAAK,WACLU,QAASC,QAAQH,GACjBN,SAAUC,IACJA,EAAMC,OAAOM,QACfb,EAAQD,EAAQ,GAAKW,GAErBV,EAAQD,IAAS,GAAKW,GACxB,IAGJT,EAAAA,cAAA,SAAOc,QAASH,GAAMH,GAClB,IAKhB,CAEA,MAmHA,GAnH0BO,EAAAA,EAAAA,WAAS,SAAUlB,GAO3C,MAAM,MAAEmB,EAAK,YAAEC,GAAgBpB,GACzB,QAAEqB,GAAY/B,KACd,SAAEgC,GAAaH,GACdI,EAAaC,IAAkBC,EAAAA,EAAAA,UAASH,EAASC,cACjDG,EAAaC,IAAkBF,EAAAA,EAAAA,UAASH,EAASI,cACjDE,EAAKC,IAAUJ,EAAAA,EAAAA,UAASH,EAASQ,WAAWF,KAAO,KACnDG,EAAUC,IAAeP,EAAAA,EAAAA,UAASH,EAASQ,WAAWxB,OAAS,KAC/D2B,EAAUC,IAAeT,EAAAA,EAAAA,UAASH,EAASW,UAAY,IACxDE,EAAW,wBAAwBC,KAAKR,GAExCS,EAAO,6DAEb,OACElC,EAAAA,cAACmC,EAAAA,OAAM,CAACC,MAAI,EAACC,QAASpB,EAAaqB,MAAM,kBACvCtC,EAAAA,cAACuC,EAAAA,EAAa,KACZvC,EAAAA,cAACwC,EAAAA,EAAU,KAAC,wCAC2BxC,EAAAA,cAACyC,EAAAA,EAAI,CAACC,KAAMR,GAAOA,GAAa,IAAI,eAG3ElC,EAAAA,cAAC2C,EAAAA,EAAK,CAACC,UAAW1B,EAAQ5B,MAAOuD,QAAQ,YACvC7C,EAAAA,cAAA,OAAK8C,MAAO,CAAEC,QAAS,SACrB/C,EAAAA,cAAA,WACEA,EAAAA,cAACwC,EAAAA,EAAU,KAAC,kCACZxC,EAAAA,cAACJ,EAAO,CAACE,KAAMsB,EAAarB,QAASsB,KAEvCrB,EAAAA,cAAA,WACEA,EAAAA,cAACwC,EAAAA,EAAU,KAAC,sCACZxC,EAAAA,cAACJ,EAAO,CAACE,KAAMyB,EAAaxB,QAASyB,OAI3CxB,EAAAA,cAAC2C,EAAAA,EAAK,CAACC,UAAW1B,EAAQ5B,MAAOuD,QAAQ,YACvC7C,EAAAA,cAACwC,EAAAA,EAAU,KAAC,2PAMZxC,EAAAA,cAACC,EAAAA,EAAS,CACR2C,UAAW1B,EAAQxB,MACnBS,MAAOsB,EACPrB,SAAUC,IACRqB,EAAOrB,EAAMC,OAAOH,MAAM,EAE5B6C,YAAY,iBACZC,WAAY,CAAEC,UAAW,GACzBC,MAAsB,IAAf1B,EAAI2B,SAAiBpB,EAC5BqB,WAA2B,IAAf5B,EAAI2B,QAAiBpB,EAA+B,GAApB,oBAE9ChC,EAAAA,cAACC,EAAAA,EAAS,CACR2C,UAAW1B,EAAQxB,MACnBS,MAAOyB,EACPxB,SAAUC,IACRwB,EAAYxB,EAAMC,OAAOH,MAAM,EAEjC6C,YAAY,qBAGhBhD,EAAAA,cAAC2C,EAAAA,EAAK,CAACC,UAAW1B,EAAQ5B,MAAOuD,QAAQ,YACvC7C,EAAAA,cAACwC,EAAAA,EAAU,KAAC,uBACZxC,EAAAA,cAACC,EAAAA,EAAS,CACR2C,UAAW1B,EAAQxB,MACnBS,MAAO2B,EACP1B,SAAUC,IACR0B,EAAY1B,EAAMC,OAAOH,MAAM,EAEjC6C,YAAY,qBAGhBhD,EAAAA,cAACsD,EAAAA,EAAa,KACZtD,EAAAA,cAACuD,EAAAA,EAAM,CACLV,QAAQ,YACRW,MAAM,UACNC,WAAS,EACTvD,KAAK,SACLwD,QAASA,KACP1C,EAAM2C,YAAY,CAChBvC,cACAG,cACAO,WACAH,UACU,KAARF,EACI,CACEA,MACAtB,MAAOyB,QAETgC,IAER3C,GAAa,GAEhB,UAGDjB,EAAAA,cAACuD,EAAAA,EAAM,CACLV,QAAQ,YACRW,MAAM,YACNE,QAASA,KACPzC,GAAa,GAEhB,YAOX,G,+LC1LA,MAYA,EAZ0B,EACxB5B,QACAwE,iBAEA,MAAMC,EAAmBD,EAAWL,MAC9BA,GAAQ,QAAQnE,EAAO,WAAWyE,KAAoB,IAAUD,EAAWL,MAC3EO,GAAe,QAAQ1E,EAAO,WAAWyE,YAC/C,MAAI,SAAUzE,GAAS0E,EACd,QAAQA,YAEV,QAAMP,EAAO,GAAI,E,eCM1B,MAAMQ,EAAW,CACfC,SAAS,EACTC,WAAW,EACXf,OAAO,EACPgB,MAAM,EACNC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,eAAe,EACfC,cAAc,GAcVC,GAAW,EAAAC,EAAA,IAAOlC,EAAA,EAAY,CAClChC,KAAM,UACNmE,KAAM,OACNC,kBAAmB,CAAC/E,EAAOgF,KACzB,MAAM,WACJhB,GACEhE,EACJ,MAAO,CAACgF,EAAOC,KAAMD,EAAO,aAAY,EAAAE,EAAA,GAAWlB,EAAWmB,cAAwC,WAAzBnB,EAAWoB,WAA0BJ,EAAOK,OAAO,GAPnH,EASd,EAAAC,EAAA,IAAU,EACX9F,YAEO,CACL+F,SAAU,CAAC,CACTvF,MAAO,CACLmF,UAAW,QAEblC,MAAO,CACLuC,eAAgB,SAEjB,CACDxF,MAAO,CACLmF,UAAW,SAEblC,MAAO,CACLuC,eAAgB,OAChB,UAAW,CACTA,eAAgB,eAGnB,CACDxF,MAAO,CACLmF,UAAW,UAEblC,MAAO,CACLuC,eAAgB,YAChB,UAAW,CACTC,oBAAqB,aAGxB,CACDzF,MAAO,EACLmF,YACAnB,gBACkB,WAAdmB,GAA+C,YAArBnB,EAAWL,MAC3CV,MAAO,CACLwC,oBAAqB,kCAEnBC,OAAOC,QAAQnG,EAAMoG,SAASC,QAAO,EAAAC,EAAA,MAAkCpF,KAAI,EAAEiD,MAAW,CAC5F3D,MAAO,CACLmF,UAAW,SACXxB,SAEFV,MAAO,CACL,wBAAyBzD,EAAMuG,KAAO,QAAQvG,EAAMuG,KAAKH,QAAQjC,GAAOqC,sBAAuB,QAAMxG,EAAMoG,QAAQjC,GAAOsC,KAAM,SAE/H,CACHjG,MAAO,CACLmF,UAAW,SACXxB,MAAO,eAETV,MAAO,CACL,wBAAyBzD,EAAMuG,KAAO,QAAQvG,EAAMuG,KAAKH,QAAQM,KAAKC,yBAA0B,QAAM3G,EAAMoG,QAAQM,KAAK9B,QAAS,MAEnI,CACDpE,MAAO,CACLmF,UAAW,SACXxB,MAAO,iBAETV,MAAO,CACL,wBAAyBzD,EAAMuG,KAAO,QAAQvG,EAAMuG,KAAKH,QAAQM,KAAKE,2BAA4B,QAAM5G,EAAMoG,QAAQM,KAAK7B,UAAW,MAEvI,CACDrE,MAAO,CACLmF,UAAW,SACXxB,MAAO,gBAETV,MAAO,CACL,yBAA0BzD,EAAMuG,MAAQvG,GAAOoG,QAAQM,KAAKG,WAE7D,CACDrG,MAAO,CACLoF,UAAW,UAEbnC,MAAO,CACLqD,SAAU,WACVC,wBAAyB,cACzBC,gBAAiB,cAGjBC,QAAS,EACTC,OAAQ,EACR9G,OAAQ,EAER+G,aAAc,EACdjH,QAAS,EAETkH,OAAQ,UACRC,WAAY,OACZC,cAAe,SACfC,cAAe,OAEfC,iBAAkB,OAElB,sBAAuB,CACrBC,YAAa,QAEf,CAAC,KAAKC,EAAA,EAAYC,gBAAiB,CACjCV,QAAS,gBAqInB,EA/H0B,cAAiB,SAAcW,EAASC,GAChE,MAAMrH,GAAQ,OAAgB,CAC5BA,MAAOoH,EACPzG,KAAM,YAEFnB,GAAQ,EAAA8H,EAAA,MACR,UACJvE,EAAS,MACTY,EAAQ,UAAS,UACjByB,EAAY,IAAG,OACfmC,EAAM,QACNC,EAAO,kBACPC,EAAiB,UACjBtC,EAAY,SAAQ,QACpBnC,EAAU,UAAS,GACnB0E,KACGC,GACD3H,GACGmH,EAAcS,GAAmB,YAAe,GAiBjD5D,EAAa,IACdhE,EACH2D,QACAyB,YACA+B,eACAhC,YACAnC,WAEI3B,EAzKkB2C,KACxB,MAAM,QACJ3C,EAAO,UACP+D,EAAS,aACT+B,EAAY,UACZhC,GACEnB,EACE6D,EAAQ,CACZ5C,KAAM,CAAC,OAAQ,aAAY,EAAAC,EAAA,GAAWC,KAA4B,WAAdC,GAA0B,SAAU+B,GAAgB,iBAE1G,OAAO,EAAAW,EAAA,GAAeD,EAAO,IAAqBxG,EAAQ,EA+J1C0G,CAAkB/D,GAClC,OAAoB,SAAKY,EAAU,CACjCjB,MAAOA,EACPZ,WAAW,EAAAiF,EAAA,GAAK3G,EAAQ4D,KAAMlC,GAC9B1B,QAASoG,EACTrC,UAAWA,EACXmC,OA9BiB/G,KACZ,EAAAyH,EAAA,GAAezH,EAAMC,SACxBmH,GAAgB,GAEdL,GACFA,EAAO/G,EACT,EAyBAgH,QAvBkBhH,KACd,EAAAyH,EAAA,GAAezH,EAAMC,SACvBmH,GAAgB,GAEdJ,GACFA,EAAQhH,EACV,EAkBA6G,IAAKA,EACLrD,WAAYA,EACZhB,QAASA,KACN2E,EACHD,GAAI,SAAyB3D,IAApBI,EAASR,GAAuB,CAAC,CACxCA,UACG,MAASuE,MAAMC,QAAQT,GAAMA,EAAK,CAACA,IACxCzE,MAAO,IACF0E,EAAM1E,SACS,WAAdkC,GAAoC,YAAVxB,IAAwBQ,EAASR,IAAU,CACvE,wBAAyB,EAAkB,CACzCnE,QACAwE,kBAKV,G,qEC7NO,SAASoE,EAAoBtD,GAClC,OAAO,QAAqB,UAAWA,EACzC,CACA,MACA,GADoB,OAAuB,UAAW,CAAC,OAAQ,gBAAiB,iBAAkB,kBAAmB,SAAU,gB","sources":["../../../plugins/alignments/src/shared/FilterByTagDialog.tsx","../../../node_modules/@mui/material/Link/getTextDecoration.js","../../../node_modules/@mui/material/Link/Link.js","../../../node_modules/@mui/material/Link/linkClasses.js"],"sourcesContent":["import React, { useState } from 'react'\nimport { observer } from 'mobx-react'\nimport {\n Button,\n DialogActions,\n DialogContent,\n Link,\n Paper,\n TextField,\n Typography,\n} from '@mui/material'\nimport { Dialog } from '@jbrowse/core/ui'\nimport { makeStyles } from 'tss-react/mui'\nimport { IFilter } from '.'\n\nconst useStyles = makeStyles()(theme => ({\n paper: {\n padding: theme.spacing(2),\n margin: theme.spacing(2),\n },\n field: {\n margin: theme.spacing(2),\n },\n}))\n\nconst flagNames = [\n 'read paired',\n 'read mapped in proper pair',\n 'read unmapped',\n 'mate unmapped',\n 'read reverse strand',\n 'mate reverse strand',\n 'first in pair',\n 'second in pair',\n 'not primary alignment',\n 'read fails platform/vendor quality checks',\n 'read is PCR or optical duplicate',\n 'supplementary alignment',\n]\n\nfunction Bitmask(props: { flag?: number; setFlag: (arg: number) => void }) {\n const { flag = 0, setFlag } = props\n return (\n <>\n {\n setFlag(+event.target.value)\n }}\n />\n {flagNames.map((name, index) => {\n const val = flag & (1 << index)\n const key = `${name}_${val}`\n return (\n
\n {\n if (event.target.checked) {\n setFlag(flag | (1 << index))\n } else {\n setFlag(flag & ~(1 << index))\n }\n }}\n />\n \n
\n )\n })}\n \n )\n}\n\nconst FilterByTagDialog = observer(function (props: {\n model: {\n filterBy: IFilter\n setFilterBy: (arg: IFilter) => void\n }\n handleClose: () => void\n}) {\n const { model, handleClose } = props\n const { classes } = useStyles()\n const { filterBy } = model\n const [flagInclude, setFlagInclude] = useState(filterBy.flagInclude)\n const [flagExclude, setFlagExclude] = useState(filterBy.flagExclude)\n const [tag, setTag] = useState(filterBy.tagFilter?.tag || '')\n const [tagValue, setTagValue] = useState(filterBy.tagFilter?.value || '')\n const [readName, setReadName] = useState(filterBy.readName || '')\n const validTag = /^[A-Za-z][A-Za-z0-9]$/.exec(tag)\n\n const site = 'https://broadinstitute.github.io/picard/explain-flags.html'\n\n return (\n \n \n \n Set filter bitmask options. Refer to {site}{' '}\n for details\n \n \n
\n
\n Read must have ALL these flags\n \n
\n
\n Read must have NONE of these flags\n \n
\n
\n
\n \n \n Filter by tag name and value. Use * in the value field to get all\n reads containing any value for that tag. Example: filter tag name SA\n with value * to get all split/supplementary reads. Other examples\n include HP for haplotype, or RG for read group\n \n {\n setTag(event.target.value)\n }}\n placeholder=\"Enter tag name\"\n inputProps={{ maxLength: 2 }}\n error={tag.length === 2 && !validTag}\n helperText={tag.length === 2 && !validTag ? 'Not a valid tag' : ''}\n />\n {\n setTagValue(event.target.value)\n }}\n placeholder=\"Enter tag value\"\n />\n \n \n Filter by read name\n {\n setReadName(event.target.value)\n }}\n placeholder=\"Enter read name\"\n />\n \n \n {\n model.setFilterBy({\n flagInclude,\n flagExclude,\n readName,\n tagFilter:\n tag !== ''\n ? {\n tag,\n value: tagValue,\n }\n : undefined,\n })\n handleClose()\n }}\n >\n Submit\n \n {\n handleClose()\n }}\n >\n Cancel\n \n \n
\n
\n )\n})\n\nexport default FilterByTagDialog\n","import { getPath } from '@mui/system/style';\nimport { alpha } from '@mui/system/colorManipulator';\nconst getTextDecoration = ({\n theme,\n ownerState\n}) => {\n const transformedColor = ownerState.color;\n const color = getPath(theme, `palette.${transformedColor}`, false) || ownerState.color;\n const channelColor = getPath(theme, `palette.${transformedColor}Channel`);\n if ('vars' in theme && channelColor) {\n return `rgba(${channelColor} / 0.4)`;\n }\n return alpha(color, 0.4);\n};\nexport default getTextDecoration;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { alpha } from '@mui/system/colorManipulator';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport isFocusVisible from '@mui/utils/isFocusVisible';\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Typography from \"../Typography/index.js\";\nimport linkClasses, { getLinkUtilityClass } from \"./linkClasses.js\";\nimport getTextDecoration from \"./getTextDecoration.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst v6Colors = {\n primary: true,\n secondary: true,\n error: true,\n info: true,\n success: true,\n warning: true,\n textPrimary: true,\n textSecondary: true,\n textDisabled: true\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n component,\n focusVisible,\n underline\n } = ownerState;\n const slots = {\n root: ['root', `underline${capitalize(underline)}`, component === 'button' && 'button', focusVisible && 'focusVisible']\n };\n return composeClasses(slots, getLinkUtilityClass, classes);\n};\nconst LinkRoot = styled(Typography, {\n name: 'MuiLink',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`underline${capitalize(ownerState.underline)}`], ownerState.component === 'button' && styles.button];\n }\n})(memoTheme(({\n theme\n}) => {\n return {\n variants: [{\n props: {\n underline: 'none'\n },\n style: {\n textDecoration: 'none'\n }\n }, {\n props: {\n underline: 'hover'\n },\n style: {\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n }, {\n props: {\n underline: 'always'\n },\n style: {\n textDecoration: 'underline',\n '&:hover': {\n textDecorationColor: 'inherit'\n }\n }\n }, {\n props: ({\n underline,\n ownerState\n }) => underline === 'always' && ownerState.color !== 'inherit',\n style: {\n textDecorationColor: 'var(--Link-underlineColor)'\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n underline: 'always',\n color\n },\n style: {\n '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / 0.4)` : alpha(theme.palette[color].main, 0.4)\n }\n })), {\n props: {\n underline: 'always',\n color: 'textPrimary'\n },\n style: {\n '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / 0.4)` : alpha(theme.palette.text.primary, 0.4)\n }\n }, {\n props: {\n underline: 'always',\n color: 'textSecondary'\n },\n style: {\n '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette.text.secondaryChannel} / 0.4)` : alpha(theme.palette.text.secondary, 0.4)\n }\n }, {\n props: {\n underline: 'always',\n color: 'textDisabled'\n },\n style: {\n '--Link-underlineColor': (theme.vars || theme).palette.text.disabled\n }\n }, {\n props: {\n component: 'button'\n },\n style: {\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n [`&.${linkClasses.focusVisible}`]: {\n outline: 'auto'\n }\n }\n }]\n };\n}));\nconst Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiLink'\n });\n const theme = useTheme();\n const {\n className,\n color = 'primary',\n component = 'a',\n onBlur,\n onFocus,\n TypographyClasses,\n underline = 'always',\n variant = 'inherit',\n sx,\n ...other\n } = props;\n const [focusVisible, setFocusVisible] = React.useState(false);\n const handleBlur = event => {\n if (!isFocusVisible(event.target)) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n };\n const handleFocus = event => {\n if (isFocusVisible(event.target)) {\n setFocusVisible(true);\n }\n if (onFocus) {\n onFocus(event);\n }\n };\n const ownerState = {\n ...props,\n color,\n component,\n focusVisible,\n underline,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(LinkRoot, {\n color: color,\n className: clsx(classes.root, className),\n classes: TypographyClasses,\n component: component,\n onBlur: handleBlur,\n onFocus: handleFocus,\n ref: ref,\n ownerState: ownerState,\n variant: variant,\n ...other,\n sx: [...(v6Colors[color] === undefined ? [{\n color\n }] : []), ...(Array.isArray(sx) ? sx : [sx])],\n style: {\n ...other.style,\n ...(underline === 'always' && color !== 'inherit' && !v6Colors[color] && {\n '--Link-underlineColor': getTextDecoration({\n theme,\n ownerState\n })\n })\n }\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the link.\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'success', 'error', 'info', 'warning', 'textPrimary', 'textSecondary', 'textDisabled']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * `classes` prop applied to the [`Typography`](https://mui.com/material-ui/api/typography/) element.\n */\n TypographyClasses: PropTypes.object,\n /**\n * Controls when the link should have an underline.\n * @default 'always'\n */\n underline: PropTypes.oneOf(['always', 'hover', 'none']),\n /**\n * Applies the theme typography styles.\n * @default 'inherit'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string])\n} : void 0;\nexport default Link;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getLinkUtilityClass(slot) {\n return generateUtilityClass('MuiLink', slot);\n}\nconst linkClasses = generateUtilityClasses('MuiLink', ['root', 'underlineNone', 'underlineHover', 'underlineAlways', 'button', 'focusVisible']);\nexport default linkClasses;"],"names":["useStyles","makeStyles","theme","paper","padding","spacing","margin","field","flagNames","Bitmask","props","flag","setFlag","React","TextField","type","value","onChange","event","target","map","name","index","val","key","checked","Boolean","htmlFor","observer","model","handleClose","classes","filterBy","flagInclude","setFlagInclude","useState","flagExclude","setFlagExclude","tag","setTag","tagFilter","tagValue","setTagValue","readName","setReadName","validTag","exec","site","Dialog","open","onClose","title","DialogContent","Typography","Link","href","Paper","className","variant","style","display","placeholder","inputProps","maxLength","error","length","helperText","DialogActions","Button","color","autoFocus","onClick","setFilterBy","undefined","ownerState","transformedColor","channelColor","v6Colors","primary","secondary","info","success","warning","textPrimary","textSecondary","textDisabled","LinkRoot","styled","slot","overridesResolver","styles","root","capitalize","underline","component","button","memoTheme","variants","textDecoration","textDecorationColor","Object","entries","palette","filter","createSimplePaletteValueFilter","vars","mainChannel","main","text","primaryChannel","secondaryChannel","disabled","position","WebkitTapHighlightColor","backgroundColor","outline","border","borderRadius","cursor","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","focusVisible","inProps","ref","useTheme","onBlur","onFocus","TypographyClasses","sx","other","setFocusVisible","slots","composeClasses","useUtilityClasses","clsx","isFocusVisible","Array","isArray","getLinkUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3003.0f0cbacd.chunk.js --- a/x/static/js/3003.0f0cbacd.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3003],{3003:(e,s,t)=>{t.r(s),t.d(s,{default:()=>a.A,getInputAdornmentUtilityClass:()=>b.P,inputAdornmentClasses:()=>b.A});var a=t(93117),b=t(85845)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3011.9da53e7c.chunk.js --- a/x/static/js/3011.9da53e7c.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3011],{63011:(e,t,r)=>{r.d(t,{A:()=>A});var o=r(7552),n=(r(19487),r(93878)),i=r(70799),s=r(51148),a=r(60129),d=r(4785),l=r(98459),p=r(943),u=r(51132),c=r(77259),h=r(43045),g=r(46263),m=r(69500);const y=(0,s.Ay)(p.A,{name:"MuiAccordion",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[{[`& .${g.A.region}`]:t.region},t.root,!r.square&&t.rounded,!r.disableGutters&&t.gutters]}})((0,a.A)((({theme:e})=>{const t={duration:e.transitions.duration.shortest};return{position:"relative",transition:e.transitions.create(["margin"],t),overflowAnchor:"none","&::before":{position:"absolute",left:0,top:-1,right:0,height:1,content:'""',opacity:1,backgroundColor:(e.vars||e).palette.divider,transition:e.transitions.create(["opacity","background-color"],t)},"&:first-of-type":{"&::before":{display:"none"}},[`&.${g.A.expanded}`]:{"&::before":{opacity:0},"&:first-of-type":{marginTop:0},"&:last-of-type":{marginBottom:0},"& + &":{"&::before":{display:"none"}}},[`&.${g.A.disabled}`]:{backgroundColor:(e.vars||e).palette.action.disabledBackground}}})),(0,a.A)((({theme:e})=>({variants:[{props:e=>!e.square,style:{borderRadius:0,"&:first-of-type":{borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius},"&:last-of-type":{borderBottomLeftRadius:(e.vars||e).shape.borderRadius,borderBottomRightRadius:(e.vars||e).shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}}},{props:e=>!e.disableGutters,style:{[`&.${g.A.expanded}`]:{margin:"16px 0"}}}]})))),b=(0,s.Ay)("h3",{name:"MuiAccordion",slot:"Heading",overridesResolver:(e,t)=>t.heading})({all:"unset"}),A=o.forwardRef((function(e,t){const r=(0,d.b)({props:e,name:"MuiAccordion"}),{children:s,className:a,defaultExpanded:p=!1,disabled:A=!1,disableGutters:f=!1,expanded:x,onChange:v,square:w=!1,slots:R={},slotProps:E={},TransitionComponent:C,TransitionProps:S,...$}=r,[M,T]=(0,c.A)({controlled:x,default:p,name:"Accordion",state:"expanded"}),j=o.useCallback((e=>{T(!M),v&&v(e,!M)}),[M,v,T]),[z,...k]=o.Children.toArray(s),N=o.useMemo((()=>({expanded:M,disabled:A,disableGutters:f,toggle:j})),[M,A,f,j]),q={...r,square:w,disabled:A,disableGutters:f,expanded:M},B=(e=>{const{classes:t,square:r,expanded:o,disabled:n,disableGutters:s}=e,a={root:["root",!r&&"rounded",o&&"expanded",n&&"disabled",!s&&"gutters"],heading:["heading"],region:["region"]};return(0,i.A)(a,g.d,t)})(q),D={slots:{transition:C,...R},slotProps:{transition:S,...E}},[G,I]=(0,h.A)("heading",{elementType:b,externalForwardedProps:D,className:B.heading,ownerState:q}),[P,H]=(0,h.A)("transition",{elementType:l.A,externalForwardedProps:D,ownerState:q});return(0,m.jsxs)(y,{className:(0,n.A)(B.root,a),ref:t,ownerState:q,square:w,...$,children:[(0,m.jsx)(G,{...I,children:(0,m.jsx)(u.A.Provider,{value:N,children:z})}),(0,m.jsx)(P,{in:M,timeout:"auto",...H,children:(0,m.jsx)("div",{"aria-labelledby":z.props.id,id:z.props["aria-controls"],role:"region",className:B.region,children:k})})]})}))},51132:(e,t,r)=>{r.d(t,{A:()=>o});const o=r(7552).createContext({})},46263:(e,t,r)=>{r.d(t,{A:()=>s,d:()=>i});var o=r(33761),n=r(85693);function i(e){return(0,n.Ay)("MuiAccordion",e)}const s=(0,o.A)("MuiAccordion",["root","heading","rounded","expanded","disabled","gutters","region"])},98459:(e,t,r)=>{r.d(t,{A:()=>v});var o=r(7552),n=r(93878),i=r(16157),s=r(26218),a=r(70799),d=r(51148),l=r(48231),p=r(60129),u=r(4785),c=r(94479),h=r(46302),g=r(51584),m=r(72367),y=r(69500);const b=(0,d.Ay)("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.root,t[r.orientation],"entered"===r.state&&t.entered,"exited"===r.state&&!r.in&&"0px"===r.collapsedSize&&t.hidden]}})((0,p.A)((({theme:e})=>({height:0,overflow:"hidden",transition:e.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:e.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:e})=>"exited"===e.state&&!e.in&&"0px"===e.collapsedSize,style:{visibility:"hidden"}}]})))),A=(0,d.Ay)("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(e,t)=>t.wrapper})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),f=(0,d.Ay)("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(e,t)=>t.wrapperInner})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),x=o.forwardRef((function(e,t){const r=(0,u.b)({props:e,name:"MuiCollapse"}),{addEndListener:d,children:p,className:x,collapsedSize:v="0px",component:w,easing:R,in:E,onEnter:C,onEntered:S,onEntering:$,onExit:M,onExited:T,onExiting:j,orientation:z="vertical",style:k,timeout:N=c.p0.standard,TransitionComponent:q=i.Ay,...B}=r,D={...r,orientation:z,collapsedSize:v},G=(e=>{const{orientation:t,classes:r}=e,o={root:["root",`${t}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${t}`],wrapperInner:["wrapperInner",`${t}`]};return(0,a.A)(o,m.E,r)})(D),I=(0,l.A)(),P=(0,s.A)(),H=o.useRef(null),L=o.useRef(),F="number"==typeof v?`${v}px`:v,W="horizontal"===z,_=W?"width":"height",J=o.useRef(null),K=(0,g.A)(t,J),O=e=>t=>{if(e){const r=J.current;void 0===t?e(r):e(r,t)}},Q=()=>H.current?H.current[W?"clientWidth":"clientHeight"]:0,U=O(((e,t)=>{H.current&&W&&(H.current.style.position="absolute"),e.style[_]=F,C&&C(e,t)})),V=O(((e,t)=>{const r=Q();H.current&&W&&(H.current.style.position="");const{duration:o,easing:n}=(0,h.c)({style:k,timeout:N,easing:R},{mode:"enter"});if("auto"===N){const t=I.transitions.getAutoHeightDuration(r);e.style.transitionDuration=`${t}ms`,L.current=t}else e.style.transitionDuration="string"==typeof o?o:`${o}ms`;e.style[_]=`${r}px`,e.style.transitionTimingFunction=n,$&&$(e,t)})),X=O(((e,t)=>{e.style[_]="auto",S&&S(e,t)})),Y=O((e=>{e.style[_]=`${Q()}px`,M&&M(e)})),Z=O(T),ee=O((e=>{const t=Q(),{duration:r,easing:o}=(0,h.c)({style:k,timeout:N,easing:R},{mode:"exit"});if("auto"===N){const r=I.transitions.getAutoHeightDuration(t);e.style.transitionDuration=`${r}ms`,L.current=r}else e.style.transitionDuration="string"==typeof r?r:`${r}ms`;e.style[_]=F,e.style.transitionTimingFunction=o,j&&j(e)}));return(0,y.jsx)(q,{in:E,onEnter:U,onEntered:X,onEntering:V,onExit:Y,onExited:Z,onExiting:ee,addEndListener:e=>{"auto"===N&&P.start(L.current||0,e),d&&d(J.current,e)},nodeRef:J,timeout:"auto"===N?null:N,...B,children:(e,t)=>(0,y.jsx)(b,{as:w,className:(0,n.A)(G.root,x,{entered:G.entered,exited:!E&&"0px"===F&&G.hidden}[e]),style:{[W?"minWidth":"minHeight"]:F,...k},ref:K,...t,ownerState:{...D,state:e},children:(0,y.jsx)(A,{ownerState:{...D,state:e},className:G.wrapper,ref:H,children:(0,y.jsx)(f,{ownerState:{...D,state:e},className:G.wrapperInner,children:p})})})})}));x&&(x.muiSupportAuto=!0);const v=x},72367:(e,t,r)=>{r.d(t,{A:()=>s,E:()=>i});var o=r(33761),n=r(85693);function i(e){return(0,n.Ay)("MuiCollapse",e)}const s=(0,o.A)("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"])}}]); -//# sourceMappingURL=3011.9da53e7c.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3011.9da53e7c.chunk.js.map --- a/x/static/js/3011.9da53e7c.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3011.9da53e7c.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/Accordion/Accordion.js","../../../node_modules/@mui/material/Accordion/AccordionContext.js","../../../node_modules/@mui/material/Accordion/accordionClasses.js","../../../node_modules/@mui/material/Collapse/Collapse.js","../../../node_modules/@mui/material/Collapse/collapseClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Collapse from \"../Collapse/index.js\";\nimport Paper from \"../Paper/index.js\";\nimport AccordionContext from \"./AccordionContext.js\";\nimport useControlled from \"../utils/useControlled.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport accordionClasses, { getAccordionUtilityClass } from \"./accordionClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n square,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', !square && 'rounded', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n heading: ['heading'],\n region: ['region']\n };\n return composeClasses(slots, getAccordionUtilityClass, classes);\n};\nconst AccordionRoot = styled(Paper, {\n name: 'MuiAccordion',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${accordionClasses.region}`]: styles.region\n }, styles.root, !ownerState.square && styles.rounded, !ownerState.disableGutters && styles.gutters];\n }\n})(memoTheme(({\n theme\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return {\n position: 'relative',\n transition: theme.transitions.create(['margin'], transition),\n overflowAnchor: 'none',\n // Keep the same scrolling position\n '&::before': {\n position: 'absolute',\n left: 0,\n top: -1,\n right: 0,\n height: 1,\n content: '\"\"',\n opacity: 1,\n backgroundColor: (theme.vars || theme).palette.divider,\n transition: theme.transitions.create(['opacity', 'background-color'], transition)\n },\n '&:first-of-type': {\n '&::before': {\n display: 'none'\n }\n },\n [`&.${accordionClasses.expanded}`]: {\n '&::before': {\n opacity: 0\n },\n '&:first-of-type': {\n marginTop: 0\n },\n '&:last-of-type': {\n marginBottom: 0\n },\n '& + &': {\n '&::before': {\n display: 'none'\n }\n }\n },\n [`&.${accordionClasses.disabled}`]: {\n backgroundColor: (theme.vars || theme).palette.action.disabledBackground\n }\n };\n}), memoTheme(({\n theme\n}) => ({\n variants: [{\n props: props => !props.square,\n style: {\n borderRadius: 0,\n '&:first-of-type': {\n borderTopLeftRadius: (theme.vars || theme).shape.borderRadius,\n borderTopRightRadius: (theme.vars || theme).shape.borderRadius\n },\n '&:last-of-type': {\n borderBottomLeftRadius: (theme.vars || theme).shape.borderRadius,\n borderBottomRightRadius: (theme.vars || theme).shape.borderRadius,\n // Fix a rendering issue on Edge\n '@supports (-ms-ime-align: auto)': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n }\n }\n }\n }, {\n props: props => !props.disableGutters,\n style: {\n [`&.${accordionClasses.expanded}`]: {\n margin: '16px 0'\n }\n }\n }]\n})));\nconst AccordionHeading = styled('h3', {\n name: 'MuiAccordion',\n slot: 'Heading',\n overridesResolver: (props, styles) => styles.heading\n})({\n all: 'unset'\n});\nconst Accordion = /*#__PURE__*/React.forwardRef(function Accordion(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAccordion'\n });\n const {\n children: childrenProp,\n className,\n defaultExpanded = false,\n disabled = false,\n disableGutters = false,\n expanded: expandedProp,\n onChange,\n square = false,\n slots = {},\n slotProps = {},\n TransitionComponent: TransitionComponentProp,\n TransitionProps: TransitionPropsProp,\n ...other\n } = props;\n const [expanded, setExpandedState] = useControlled({\n controlled: expandedProp,\n default: defaultExpanded,\n name: 'Accordion',\n state: 'expanded'\n });\n const handleChange = React.useCallback(event => {\n setExpandedState(!expanded);\n if (onChange) {\n onChange(event, !expanded);\n }\n }, [expanded, onChange, setExpandedState]);\n const [summary, ...children] = React.Children.toArray(childrenProp);\n const contextValue = React.useMemo(() => ({\n expanded,\n disabled,\n disableGutters,\n toggle: handleChange\n }), [expanded, disabled, disableGutters, handleChange]);\n const ownerState = {\n ...props,\n square,\n disabled,\n disableGutters,\n expanded\n };\n const classes = useUtilityClasses(ownerState);\n const backwardCompatibleSlots = {\n transition: TransitionComponentProp,\n ...slots\n };\n const backwardCompatibleSlotProps = {\n transition: TransitionPropsProp,\n ...slotProps\n };\n const externalForwardedProps = {\n slots: backwardCompatibleSlots,\n slotProps: backwardCompatibleSlotProps\n };\n const [AccordionHeadingSlot, accordionProps] = useSlot('heading', {\n elementType: AccordionHeading,\n externalForwardedProps,\n className: classes.heading,\n ownerState\n });\n const [TransitionSlot, transitionProps] = useSlot('transition', {\n elementType: Collapse,\n externalForwardedProps,\n ownerState\n });\n return /*#__PURE__*/_jsxs(AccordionRoot, {\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n square: square,\n ...other,\n children: [/*#__PURE__*/_jsx(AccordionHeadingSlot, {\n ...accordionProps,\n children: /*#__PURE__*/_jsx(AccordionContext.Provider, {\n value: contextValue,\n children: summary\n })\n }), /*#__PURE__*/_jsx(TransitionSlot, {\n in: expanded,\n timeout: \"auto\",\n ...transitionProps,\n children: /*#__PURE__*/_jsx(\"div\", {\n \"aria-labelledby\": summary.props.id,\n id: summary.props['aria-controls'],\n role: \"region\",\n className: classes.region,\n children: children\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Accordion.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: chainPropTypes(PropTypes.node.isRequired, props => {\n const summary = React.Children.toArray(props.children)[0];\n if (isFragment(summary)) {\n return new Error(\"MUI: The Accordion doesn't accept a Fragment as a child. \" + 'Consider providing an array instead.');\n }\n if (! /*#__PURE__*/React.isValidElement(summary)) {\n return new Error('MUI: Expected the first child of Accordion to be a valid element.');\n }\n return null;\n }),\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, expands the accordion by default.\n * @default false\n */\n defaultExpanded: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, it removes the margin between two expanded accordion items and the increase of height.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * If `true`, expands the accordion, otherwise collapse it.\n * Setting this prop enables control over the accordion.\n */\n expanded: PropTypes.bool,\n /**\n * Callback fired when the expand/collapse state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {boolean} expanded The `expanded` state of the accordion.\n */\n onChange: PropTypes.func,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n heading: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n transition: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n heading: PropTypes.elementType,\n transition: PropTypes.elementType\n }),\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Accordion;","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n * @type {React.Context<{} | {expanded: boolean, disabled: boolean, toggle: () => void}>}\n */\nconst AccordionContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n AccordionContext.displayName = 'AccordionContext';\n}\nexport default AccordionContext;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAccordionUtilityClass(slot) {\n return generateUtilityClass('MuiAccordion', slot);\n}\nconst accordionClasses = generateUtilityClasses('MuiAccordion', ['root', 'heading', 'rounded', 'expanded', 'disabled', 'gutters', 'region']);\nexport default accordionClasses;","'use client';\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport useTimeout from '@mui/utils/useTimeout';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { duration } from \"../styles/createTransitions.js\";\nimport { getTransitionProps } from \"../transitions/utils.js\";\nimport { useForkRef } from \"../utils/index.js\";\nimport { getCollapseUtilityClass } from \"./collapseClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n orientation,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `${orientation}`],\n entered: ['entered'],\n hidden: ['hidden'],\n wrapper: ['wrapper', `${orientation}`],\n wrapperInner: ['wrapperInner', `${orientation}`]\n };\n return composeClasses(slots, getCollapseUtilityClass, classes);\n};\nconst CollapseRoot = styled('div', {\n name: 'MuiCollapse',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation], ownerState.state === 'entered' && styles.entered, ownerState.state === 'exited' && !ownerState.in && ownerState.collapsedSize === '0px' && styles.hidden];\n }\n})(memoTheme(({\n theme\n}) => ({\n height: 0,\n overflow: 'hidden',\n transition: theme.transitions.create('height'),\n variants: [{\n props: {\n orientation: 'horizontal'\n },\n style: {\n height: 'auto',\n width: 0,\n transition: theme.transitions.create('width')\n }\n }, {\n props: {\n state: 'entered'\n },\n style: {\n height: 'auto',\n overflow: 'visible'\n }\n }, {\n props: {\n state: 'entered',\n orientation: 'horizontal'\n },\n style: {\n width: 'auto'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.state === 'exited' && !ownerState.in && ownerState.collapsedSize === '0px',\n style: {\n visibility: 'hidden'\n }\n }]\n})));\nconst CollapseWrapper = styled('div', {\n name: 'MuiCollapse',\n slot: 'Wrapper',\n overridesResolver: (props, styles) => styles.wrapper\n})({\n // Hack to get children with a negative margin to not falsify the height computation.\n display: 'flex',\n width: '100%',\n variants: [{\n props: {\n orientation: 'horizontal'\n },\n style: {\n width: 'auto',\n height: '100%'\n }\n }]\n});\nconst CollapseWrapperInner = styled('div', {\n name: 'MuiCollapse',\n slot: 'WrapperInner',\n overridesResolver: (props, styles) => styles.wrapperInner\n})({\n width: '100%',\n variants: [{\n props: {\n orientation: 'horizontal'\n },\n style: {\n width: 'auto',\n height: '100%'\n }\n }]\n});\n\n/**\n * The Collapse transition is used by the\n * [Vertical Stepper](/material-ui/react-stepper/#vertical-stepper) StepContent component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Collapse = /*#__PURE__*/React.forwardRef(function Collapse(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCollapse'\n });\n const {\n addEndListener,\n children,\n className,\n collapsedSize: collapsedSizeProp = '0px',\n component,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n orientation = 'vertical',\n style,\n timeout = duration.standard,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition,\n ...other\n } = props;\n const ownerState = {\n ...props,\n orientation,\n collapsedSize: collapsedSizeProp\n };\n const classes = useUtilityClasses(ownerState);\n const theme = useTheme();\n const timer = useTimeout();\n const wrapperRef = React.useRef(null);\n const autoTransitionDuration = React.useRef();\n const collapsedSize = typeof collapsedSizeProp === 'number' ? `${collapsedSizeProp}px` : collapsedSizeProp;\n const isHorizontal = orientation === 'horizontal';\n const size = isHorizontal ? 'width' : 'height';\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(ref, nodeRef);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const getWrapperSize = () => wrapperRef.current ? wrapperRef.current[isHorizontal ? 'clientWidth' : 'clientHeight'] : 0;\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n if (wrapperRef.current && isHorizontal) {\n // Set absolute position to get the size of collapsed content\n wrapperRef.current.style.position = 'absolute';\n }\n node.style[size] = collapsedSize;\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const wrapperSize = getWrapperSize();\n if (wrapperRef.current && isHorizontal) {\n // After the size is read reset the position back to default\n wrapperRef.current.style.position = '';\n }\n const {\n duration: transitionDuration,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n if (timeout === 'auto') {\n const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);\n node.style.transitionDuration = `${duration2}ms`;\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n }\n node.style[size] = `${wrapperSize}px`;\n node.style.transitionTimingFunction = transitionTimingFunction;\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback((node, isAppearing) => {\n node.style[size] = 'auto';\n if (onEntered) {\n onEntered(node, isAppearing);\n }\n });\n const handleExit = normalizedTransitionCallback(node => {\n node.style[size] = `${getWrapperSize()}px`;\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleExiting = normalizedTransitionCallback(node => {\n const wrapperSize = getWrapperSize();\n const {\n duration: transitionDuration,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n if (timeout === 'auto') {\n // TODO: rename getAutoHeightDuration to something more generic (width support)\n // Actually it just calculates animation duration based on size\n const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);\n node.style.transitionDuration = `${duration2}ms`;\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n }\n node.style[size] = collapsedSize;\n node.style.transitionTimingFunction = transitionTimingFunction;\n if (onExiting) {\n onExiting(node);\n }\n });\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.start(autoTransitionDuration.current || 0, next);\n }\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n return /*#__PURE__*/_jsx(TransitionComponent, {\n in: inProp,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n nodeRef: nodeRef,\n timeout: timeout === 'auto' ? null : timeout,\n ...other,\n children: (state, childProps) => /*#__PURE__*/_jsx(CollapseRoot, {\n as: component,\n className: clsx(classes.root, className, {\n 'entered': classes.entered,\n 'exited': !inProp && collapsedSize === '0px' && classes.hidden\n }[state]),\n style: {\n [isHorizontal ? 'minWidth' : 'minHeight']: collapsedSize,\n ...style\n },\n ref: handleRef,\n ...childProps,\n // `ownerState` is set after `childProps` to override any existing `ownerState` property in `childProps`\n // that might have been forwarded from the Transition component.\n ownerState: {\n ...ownerState,\n state\n },\n children: /*#__PURE__*/_jsx(CollapseWrapper, {\n ownerState: {\n ...ownerState,\n state\n },\n className: classes.wrapper,\n ref: wrapperRef,\n children: /*#__PURE__*/_jsx(CollapseWrapperInner, {\n ownerState: {\n ...ownerState,\n state\n },\n className: classes.wrapperInner,\n children: children\n })\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Collapse.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * The content node to be collapsed.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The width (horizontal) or height (vertical) of the container when collapsed.\n * @default '0px'\n */\n collapsedSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * The transition orientation.\n * @default 'vertical'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default duration.standard\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nif (Collapse) {\n Collapse.muiSupportAuto = true;\n}\nexport default Collapse;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCollapseUtilityClass(slot) {\n return generateUtilityClass('MuiCollapse', slot);\n}\nconst collapseClasses = generateUtilityClasses('MuiCollapse', ['root', 'horizontal', 'vertical', 'entered', 'hidden', 'wrapper', 'wrapperInner']);\nexport default collapseClasses;"],"names":["AccordionRoot","name","slot","overridesResolver","props","styles","ownerState","region","root","square","rounded","disableGutters","gutters","theme","transition","duration","transitions","shortest","position","create","overflowAnchor","left","top","right","height","content","opacity","backgroundColor","vars","palette","divider","display","expanded","marginTop","marginBottom","disabled","action","disabledBackground","variants","style","borderRadius","borderTopLeftRadius","shape","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","margin","AccordionHeading","heading","all","inProps","ref","children","childrenProp","className","defaultExpanded","expandedProp","onChange","slots","slotProps","TransitionComponent","TransitionComponentProp","TransitionProps","TransitionPropsProp","other","setExpandedState","controlled","default","state","handleChange","event","summary","toArray","contextValue","toggle","classes","useUtilityClasses","externalForwardedProps","AccordionHeadingSlot","accordionProps","elementType","TransitionSlot","transitionProps","A","Provider","value","in","timeout","id","role","getAccordionUtilityClass","CollapseRoot","orientation","entered","collapsedSize","hidden","overflow","width","visibility","CollapseWrapper","wrapper","CollapseWrapperInner","wrapperInner","Collapse","addEndListener","collapsedSizeProp","component","easing","inProp","onEnter","onEntered","onEntering","onExit","onExited","onExiting","standard","timer","wrapperRef","autoTransitionDuration","isHorizontal","size","nodeRef","handleRef","normalizedTransitionCallback","callback","maybeIsAppearing","node","current","undefined","getWrapperSize","handleEnter","isAppearing","handleEntering","wrapperSize","transitionDuration","transitionTimingFunction","mode","duration2","getAutoHeightDuration","handleEntered","handleExit","handleExited","handleExiting","next","start","childProps","as","muiSupportAuto","getCollapseUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3012.9940fd01.chunk.js --- a/x/static/js/3012.9940fd01.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3012],{17515:(t,e,r)=>{r.d(e,{A:()=>b});var a=r(7552),s=r(93878),o=r(70799),n=r(51148),i=r(60129),l=r(4785),u=r(89663),p=r(69500);const d=(0,n.Ay)("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:r}=t;return[e.root,!r.disableGutters&&e.gutters,e[r.variant]]}})((0,i.A)((({theme:t})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:t.spacing(2),paddingRight:t.spacing(2),[t.breakpoints.up("sm")]:{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:t.mixins.toolbar}]})))),b=a.forwardRef((function(t,e){const r=(0,l.b)({props:t,name:"MuiToolbar"}),{className:a,component:n="div",disableGutters:i=!1,variant:b="regular",...g}=r,c={...r,component:n,disableGutters:i,variant:b},v=(t=>{const{classes:e,disableGutters:r,variant:a}=t,s={root:["root",!r&&"gutters",a]};return(0,o.A)(s,u.U,e)})(c);return(0,p.jsx)(d,{as:n,className:(0,s.A)(v.root,a),ref:e,ownerState:c,...g})}))},83012:(t,e,r)=>{r.r(e),r.d(e,{default:()=>a.A,getToolbarUtilityClass:()=>s.U,toolbarClasses:()=>s.A});var a=r(17515),s=r(89663)},89663:(t,e,r)=>{r.d(e,{A:()=>n,U:()=>o});var a=r(33761),s=r(85693);function o(t){return(0,s.Ay)("MuiToolbar",t)}const n=(0,a.A)("MuiToolbar",["root","gutters","regular","dense"])}}]); -//# sourceMappingURL=3012.9940fd01.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3012.9940fd01.chunk.js.map --- a/x/static/js/3012.9940fd01.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3012.9940fd01.chunk.js","mappings":"oOAWA,MAWMA,GAAc,QAAO,MAAO,CAChCC,KAAM,aACNC,KAAM,OACNC,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJC,GACEF,EACJ,MAAO,CAACC,EAAOE,MAAOD,EAAWE,gBAAkBH,EAAOI,QAASJ,EAAOC,EAAWI,SAAS,GAP9E,EASjB,QAAU,EACXC,YACI,CACJC,SAAU,WACVC,QAAS,OACTC,WAAY,SACZC,SAAU,CAAC,CACTX,MAAO,EACLE,iBACKA,EAAWE,eAClBQ,MAAO,CACLC,YAAaN,EAAMO,QAAQ,GAC3BC,aAAcR,EAAMO,QAAQ,GAC5B,CAACP,EAAMS,YAAYC,GAAG,OAAQ,CAC5BJ,YAAaN,EAAMO,QAAQ,GAC3BC,aAAcR,EAAMO,QAAQ,MAG/B,CACDd,MAAO,CACLM,QAAS,SAEXM,MAAO,CACLM,UAAW,KAEZ,CACDlB,MAAO,CACLM,QAAS,WAEXM,MAAOL,EAAMY,OAAOC,eAoExB,EAjE6B,cAAiB,SAAiBC,EAASC,GACtE,MAAMtB,GAAQ,OAAgB,CAC5BA,MAAOqB,EACPxB,KAAM,gBAEF,UACJ0B,EAAS,UACTC,EAAY,MAAK,eACjBpB,GAAiB,EAAK,QACtBE,EAAU,aACPmB,GACDzB,EACEE,EAAa,IACdF,EACHwB,YACApB,iBACAE,WAEIoB,EAtEkBxB,KACxB,MAAM,QACJwB,EAAO,eACPtB,EAAc,QACdE,GACEJ,EACEyB,EAAQ,CACZxB,KAAM,CAAC,QAASC,GAAkB,UAAWE,IAE/C,OAAO,OAAeqB,EAAO,IAAwBD,EAAQ,EA6D7CE,CAAkB1B,GAClC,OAAoB,SAAKN,EAAa,CACpCiC,GAAIL,EACJD,WAAW,OAAKG,EAAQvB,KAAMoB,GAC9BD,IAAKA,EACLpB,WAAYA,KACTuB,GAEP,G,sMCvFO,SAASK,EAAuBhC,GACrC,OAAO,QAAqB,aAAcA,EAC5C,CACA,MACA,GADuB,OAAuB,aAAc,CAAC,OAAQ,UAAW,UAAW,S","sources":["../../../node_modules/@mui/material/Toolbar/Toolbar.js","../../../node_modules/@mui/material/Toolbar/toolbarClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getToolbarUtilityClass } from \"./toolbarClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableGutters,\n variant\n } = ownerState;\n const slots = {\n root: ['root', !disableGutters && 'gutters', variant]\n };\n return composeClasses(slots, getToolbarUtilityClass, classes);\n};\nconst ToolbarRoot = styled('div', {\n name: 'MuiToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableGutters && styles.gutters, styles[ownerState.variant]];\n }\n})(memoTheme(({\n theme\n}) => ({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.disableGutters,\n style: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n }\n }, {\n props: {\n variant: 'dense'\n },\n style: {\n minHeight: 48\n }\n }, {\n props: {\n variant: 'regular'\n },\n style: theme.mixins.toolbar\n }]\n})));\nconst Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiToolbar'\n });\n const {\n className,\n component = 'div',\n disableGutters = false,\n variant = 'regular',\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n disableGutters,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ToolbarRoot, {\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Toolbar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`.\n * The Toolbar is a flex container, allowing flex item properties to be used to lay out the children.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, disables gutter padding.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'regular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['dense', 'regular']), PropTypes.string])\n} : void 0;\nexport default Toolbar;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiToolbar', slot);\n}\nconst toolbarClasses = generateUtilityClasses('MuiToolbar', ['root', 'gutters', 'regular', 'dense']);\nexport default toolbarClasses;"],"names":["ToolbarRoot","name","slot","overridesResolver","props","styles","ownerState","root","disableGutters","gutters","variant","theme","position","display","alignItems","variants","style","paddingLeft","spacing","paddingRight","breakpoints","up","minHeight","mixins","toolbar","inProps","ref","className","component","other","classes","slots","useUtilityClasses","as","getToolbarUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3029.cd8dcca2.chunk.js --- a/x/static/js/3029.cd8dcca2.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3029],{93029:(e,s,a)=>{a.r(s),a.d(s,{default:()=>b.A,getPaperUtilityClass:()=>l.j,paperClasses:()=>l.A});var b=a(943),l=a(40795)}}]); \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3103.4dfe3f78.chunk.js --- a/x/static/js/3103.4dfe3f78.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3103],{70156:(o,e,r)=>{r.d(e,{A:()=>t});const t=r(7552).createContext()},73451:(o,e,r)=>{r.d(e,{A:()=>A});var t=r(7552),a=r(93878),s=r(70799),l=r(70156),n=r(51148),b=r(4785),d=r(20255),u=r(69500);const c=(0,n.Ay)("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(o,e)=>e.root})({display:"table-row-group"}),i={variant:"body"},y="tbody",A=t.forwardRef((function(o,e){const r=(0,b.b)({props:o,name:"MuiTableBody"}),{className:t,component:n=y,...A}=r,p={...r,component:n},w=(o=>{const{classes:e}=o;return(0,s.A)({root:["root"]},d.b,e)})(p);return(0,u.jsx)(l.A.Provider,{value:i,children:(0,u.jsx)(c,{className:(0,a.A)(w.root,t),as:n,ref:e,role:n===y?null:"rowgroup",ownerState:p,...A})})}))},3103:(o,e,r)=>{r.r(e),r.d(e,{default:()=>t.A,getTableBodyUtilityClass:()=>a.b,tableBodyClasses:()=>a.A});var t=r(73451),a=r(20255)},20255:(o,e,r)=>{r.d(e,{A:()=>l,b:()=>s});var t=r(33761),a=r(85693);function s(o){return(0,a.Ay)("MuiTableBody",o)}const l=(0,t.A)("MuiTableBody",["root"])}}]); -//# sourceMappingURL=3103.4dfe3f78.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3103.4dfe3f78.chunk.js.map --- a/x/static/js/3103.4dfe3f78.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3103.4dfe3f78.chunk.js","mappings":"0IASA,Q,QAJsC,e,6HCMtC,MASMA,GAAgB,QAAO,QAAS,CACpCC,KAAM,eACNC,KAAM,OACNC,kBAAmB,CAACC,EAAOC,IAAWA,EAAOC,MAHzB,CAInB,CACDC,QAAS,oBAELC,EAAY,CAChBC,QAAS,QAELC,EAAmB,QAuDzB,EAtD+B,cAAiB,SAAmBC,EAASC,GAC1E,MAAMR,GAAQ,OAAgB,CAC5BA,MAAOO,EACPV,KAAM,kBAEF,UACJY,EAAS,UACTC,EAAYJ,KACTK,GACDX,EACEY,EAAa,IACdZ,EACHU,aAEIG,EAlCkBD,KACxB,MAAM,QACJC,GACED,EAIJ,OAAO,OAHO,CACZV,KAAM,CAAC,SAEoB,IAA0BW,EAAQ,EA2B/CC,CAAkBF,GAClC,OAAoB,SAAK,IAAiBG,SAAU,CAClDC,MAAOZ,EACPa,UAAuB,SAAKrB,EAAe,CACzCa,WAAW,OAAKI,EAAQX,KAAMO,GAC9BS,GAAIR,EACJF,IAAKA,EACLW,KAAMT,IAAcJ,EAAmB,KAAO,WAC9CM,WAAYA,KACTD,KAGT,G,yMCvDO,SAASS,EAAyBtB,GACvC,OAAO,QAAqB,eAAgBA,EAC9C,CACA,MACA,GADyB,OAAuB,eAAgB,CAAC,Q","sources":["../../../node_modules/@mui/material/Table/Tablelvl2Context.js","../../../node_modules/@mui/material/TableBody/TableBody.js","../../../node_modules/@mui/material/TableBody/tableBodyClasses.js"],"sourcesContent":["import * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst Tablelvl2Context = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\nexport default Tablelvl2Context;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Tablelvl2Context from \"../Table/Tablelvl2Context.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getTableBodyUtilityClass } from \"./tableBodyClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableBodyUtilityClass, classes);\n};\nconst TableBodyRoot = styled('tbody', {\n name: 'MuiTableBody',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-row-group'\n});\nconst tablelvl2 = {\n variant: 'body'\n};\nconst defaultComponent = 'tbody';\nconst TableBody = /*#__PURE__*/React.forwardRef(function TableBody(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableBody'\n });\n const {\n className,\n component = defaultComponent,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableBodyRoot, {\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState,\n ...other\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableBody.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally `TableRow`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableBody;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableBodyUtilityClass(slot) {\n return generateUtilityClass('MuiTableBody', slot);\n}\nconst tableBodyClasses = generateUtilityClasses('MuiTableBody', ['root']);\nexport default tableBodyClasses;"],"names":["TableBodyRoot","name","slot","overridesResolver","props","styles","root","display","tablelvl2","variant","defaultComponent","inProps","ref","className","component","other","ownerState","classes","useUtilityClasses","Provider","value","children","as","role","getTableBodyUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3106.e1981605.chunk.js --- a/x/static/js/3106.e1981605.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3106],{23106:(e,o,t)=>{t.r(o),t.d(o,{default:()=>u});var a=t(7552),r=t(68446),n=t(29499),l=t(36715),s=t(33371),i=t(33248),c=t(58507),d=t(5401),p=t(49823),m=t(66395);const u=(0,r.observer)((function({model:e,handleClose:o}){const[t,r]=(0,a.useState)(!1);return a.createElement(p.Dialog,{open:!0,onClose:o,title:"Set color"},a.createElement(n.A,null,a.createElement(l.A,null,"Select either an overall color, or the positive/negative colors. Note that density renderers only work properly with positive/negative colors"),a.createElement(s.A,{checked:!t,onClick:()=>{r(!1)},control:a.createElement(i.A,null),label:"Overall color"}),a.createElement(s.A,{checked:t,onClick:()=>{r(!0)},control:a.createElement(i.A,null),label:"Positive/negative color"}),t?a.createElement(a.Fragment,null,a.createElement(l.A,null,"Positive color"),a.createElement(m.sk,{color:e.posColor||"black",onChange:o=>{e.setPosColor(o),e.setColor(void 0)}}),a.createElement(l.A,null,"Negative color"),a.createElement(m.sk,{color:e.negColor||"black",onChange:o=>{e.setNegColor(o),e.setColor(void 0)}})):a.createElement(a.Fragment,null,a.createElement(l.A,null,"Overall color"),a.createElement(m.sk,{color:e.color||"black",onChange:o=>{e.setColor(o)}}))),a.createElement(c.A,null,a.createElement(d.A,{onClick:()=>{e.setPosColor(void 0),e.setNegColor(void 0),e.setColor(void 0)},color:"secondary",variant:"contained"},"Restore default"),a.createElement(d.A,{variant:"contained",color:"primary",type:"submit",onClick:()=>{o()}},"Submit")))}))},33248:(e,o,t)=>{t.d(o,{A:()=>x});var a=t(7552),r=t(93878),n=t(70799),l=t(72639),s=t(15110),i=t(74893),c=t(69500);const d=(0,i.A)((0,c.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),p=(0,i.A)((0,c.jsx)("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked");var m=t(55270),u=t(51148),v=t(60129);const h=(0,u.Ay)("span",{shouldForwardProp:m.A})({position:"relative",display:"flex"}),A=(0,u.Ay)(d)({transform:"scale(1)"}),b=(0,u.Ay)(p)((0,v.A)((({theme:e})=>({left:0,position:"absolute",transform:"scale(0)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeIn,duration:e.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:"scale(1)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.shortest})}}]})))),C=function(e){const{checked:o=!1,classes:t={},fontSize:a}=e,r={...e,checked:o};return(0,c.jsxs)(h,{className:t.root,ownerState:r,children:[(0,c.jsx)(A,{fontSize:a,className:t.background,ownerState:r}),(0,c.jsx)(b,{fontSize:a,className:t.dot,ownerState:r})]})};var k=t(15622),g=t(4402),f=t(33960),y=t(39006),S=t(38127),E=t(58520),z=t(4785);const w=(0,u.Ay)(s.A,{shouldForwardProp:e=>(0,m.A)(e)||"classes"===e,name:"MuiRadio",slot:"Root",overridesResolver:(e,o)=>{const{ownerState:t}=e;return[o.root,"medium"!==t.size&&o[`size${(0,k.A)(t.size)}`],o[`color${(0,k.A)(t.color)}`]]}})((0,v.A)((({theme:e})=>({color:(e.vars||e).palette.text.secondary,[`&.${S.A.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{color:"default",disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,l.X4)(e.palette.action.active,e.palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter((0,E.A)()).map((([o])=>({props:{color:o,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[o].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,l.X4)(e.palette[o].main,e.palette.action.hoverOpacity)}}}))),...Object.entries(e.palette).filter((0,E.A)()).map((([o])=>({props:{color:o,disabled:!1},style:{[`&.${S.A.checked}`]:{color:(e.vars||e).palette[o].main}}}))),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]})))),R=(0,c.jsx)(C,{checked:!0}),j=(0,c.jsx)(C,{}),x=a.forwardRef((function(e,o){const t=(0,z.b)({props:e,name:"MuiRadio"}),{checked:l,checkedIcon:s=R,color:i="primary",icon:d=j,name:p,onChange:m,size:u="medium",className:v,disabled:h,disableRipple:A=!1,...b}=t,C=(0,f.A)();let E=h;C&&void 0===E&&(E=C.disabled),E??=!1;const x={...t,disabled:E,disableRipple:A,color:i,size:u},$=(e=>{const{classes:o,color:t,size:a}=e,r={root:["root",`color${(0,k.A)(t)}`,"medium"!==a&&`size${(0,k.A)(a)}`]};return{...o,...(0,n.A)(r,S.q,o)}})(x),N=(0,y.A)();let O=l;const P=(0,g.A)(m,N&&N.onChange);let M=p;var F,_;return N&&(void 0===O&&(F=N.value,O="object"==typeof(_=t.value)&&null!==_?F===_:String(F)===String(_)),void 0===M&&(M=N.name)),(0,c.jsx)(w,{type:"radio",icon:a.cloneElement(d,{fontSize:j.props.fontSize??u}),checkedIcon:a.cloneElement(s,{fontSize:R.props.fontSize??u}),disabled:E,ownerState:x,classes:$,name:M,checked:O,onChange:P,ref:o,className:(0,r.A)($.root,v),...b})}))},38127:(e,o,t)=>{t.d(o,{A:()=>l,q:()=>n});var a=t(33761),r=t(85693);function n(e){return(0,r.Ay)("MuiRadio",e)}const l=(0,a.A)("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"])},76258:(e,o,t)=>{t.d(o,{A:()=>a});const a=t(7552).createContext(void 0)},39006:(e,o,t)=>{t.d(o,{A:()=>n});var a=t(7552),r=t(76258);function n(){return a.useContext(r.A)}}}]); -//# sourceMappingURL=3106.e1981605.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3106.e1981605.chunk.js.map --- a/x/static/js/3106.e1981605.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3106.e1981605.chunk.js","mappings":"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","sources":["../../../plugins/wiggle/src/LinearWiggleDisplay/components/SetColorDialog.tsx","../../../node_modules/@mui/material/internal/svg-icons/RadioButtonUnchecked.js","../../../node_modules/@mui/material/internal/svg-icons/RadioButtonChecked.js","../../../node_modules/@mui/material/Radio/RadioButtonIcon.js","../../../node_modules/@mui/material/Radio/Radio.js","../../../node_modules/@mui/material/Radio/radioClasses.js","../../../node_modules/@mui/material/RadioGroup/RadioGroupContext.js","../../../node_modules/@mui/material/RadioGroup/useRadioGroup.js"],"sourcesContent":["import React, { useState } from 'react'\nimport { observer } from 'mobx-react'\nimport {\n Button,\n DialogContent,\n DialogActions,\n FormControlLabel,\n Radio,\n Typography,\n} from '@mui/material'\nimport { Dialog } from '@jbrowse/core/ui'\nimport { ColorPicker } from '@jbrowse/core/ui/ColorPicker'\n\nconst SetColorDialog = observer(function SetColorDialog({\n model,\n handleClose,\n}: {\n model: {\n color?: string\n posColor?: string\n negColor?: string\n setColor: (arg?: string) => void\n setPosColor: (arg?: string) => void\n setNegColor: (arg?: string) => void\n }\n handleClose: () => void\n}) {\n const [posneg, setPosNeg] = useState(false)\n\n return (\n \n \n \n Select either an overall color, or the positive/negative colors. Note\n that density renderers only work properly with positive/negative\n colors\n \n {\n setPosNeg(false)\n }}\n control={}\n label=\"Overall color\"\n />\n {\n setPosNeg(true)\n }}\n control={}\n label=\"Positive/negative color\"\n />\n\n {posneg ? (\n <>\n Positive color\n {\n model.setPosColor(event)\n model.setColor(undefined)\n }}\n />\n Negative color\n\n {\n model.setNegColor(event)\n model.setColor(undefined)\n }}\n />\n \n ) : (\n <>\n Overall color\n {\n model.setColor(event)\n }}\n />\n \n )}\n \n \n {\n model.setPosColor(undefined)\n model.setNegColor(undefined)\n model.setColor(undefined)\n }}\n color=\"secondary\"\n variant=\"contained\"\n >\n Restore default\n \n\n {\n handleClose()\n }}\n >\n Submit\n \n \n \n )\n})\n\nexport default SetColorDialog\n","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'RadioButtonUnchecked');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z\"\n}), 'RadioButtonChecked');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport RadioButtonUncheckedIcon from \"../internal/svg-icons/RadioButtonUnchecked.js\";\nimport RadioButtonCheckedIcon from \"../internal/svg-icons/RadioButtonChecked.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst RadioButtonIconRoot = styled('span', {\n shouldForwardProp: rootShouldForwardProp\n})({\n position: 'relative',\n display: 'flex'\n});\nconst RadioButtonIconBackground = styled(RadioButtonUncheckedIcon)({\n // Scale applied to prevent dot misalignment in Safari\n transform: 'scale(1)'\n});\nconst RadioButtonIconDot = styled(RadioButtonCheckedIcon)(memoTheme(({\n theme\n}) => ({\n left: 0,\n position: 'absolute',\n transform: 'scale(0)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeIn,\n duration: theme.transitions.duration.shortest\n }),\n variants: [{\n props: {\n checked: true\n },\n style: {\n transform: 'scale(1)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.shortest\n })\n }\n }]\n})));\n\n/**\n * @ignore - internal component.\n */\nfunction RadioButtonIcon(props) {\n const {\n checked = false,\n classes = {},\n fontSize\n } = props;\n const ownerState = {\n ...props,\n checked\n };\n return /*#__PURE__*/_jsxs(RadioButtonIconRoot, {\n className: classes.root,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(RadioButtonIconBackground, {\n fontSize: fontSize,\n className: classes.background,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(RadioButtonIconDot, {\n fontSize: fontSize,\n className: classes.dot,\n ownerState: ownerState\n })]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? RadioButtonIcon.propTypes /* remove-proptypes */ = {\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The size of the component.\n * `small` is equivalent to the dense radio styling.\n */\n fontSize: PropTypes.oneOf(['small', 'medium'])\n} : void 0;\nexport default RadioButtonIcon;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport SwitchBase from \"../internal/SwitchBase.js\";\nimport RadioButtonIcon from \"./RadioButtonIcon.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createChainedFunction from \"../utils/createChainedFunction.js\";\nimport useFormControl from \"../FormControl/useFormControl.js\";\nimport useRadioGroup from \"../RadioGroup/useRadioGroup.js\";\nimport radioClasses, { getRadioUtilityClass } from \"./radioClasses.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n size\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, size !== 'medium' && `size${capitalize(size)}`]\n };\n return {\n ...classes,\n ...composeClasses(slots, getRadioUtilityClass, classes)\n };\n};\nconst RadioRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiRadio',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.size !== 'medium' && styles[`size${capitalize(ownerState.size)}`], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${radioClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n },\n variants: [{\n props: {\n color: 'default',\n disabled: false,\n disableRipple: false\n },\n style: {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n }\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color,\n disabled: false,\n disableRipple: false\n },\n style: {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[color].main, theme.palette.action.hoverOpacity)\n }\n }\n })), ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color,\n disabled: false\n },\n style: {\n [`&.${radioClasses.checked}`]: {\n color: (theme.vars || theme).palette[color].main\n }\n }\n })), {\n // Should be last to override other colors\n props: {\n disableRipple: false\n },\n style: {\n // Reset on touch devices, it doesn't add specificity\n '&:hover': {\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n }\n }]\n})));\nfunction areEqualValues(a, b) {\n if (typeof b === 'object' && b !== null) {\n return a === b;\n }\n\n // The value could be a number, the DOM will stringify it anyway.\n return String(a) === String(b);\n}\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(RadioButtonIcon, {\n checked: true\n});\nconst defaultIcon = /*#__PURE__*/_jsx(RadioButtonIcon, {});\nconst Radio = /*#__PURE__*/React.forwardRef(function Radio(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiRadio'\n });\n const {\n checked: checkedProp,\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon = defaultIcon,\n name: nameProp,\n onChange: onChangeProp,\n size = 'medium',\n className,\n disabled: disabledProp,\n disableRipple = false,\n ...other\n } = props;\n const muiFormControl = useFormControl();\n let disabled = disabledProp;\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n disabled ??= false;\n const ownerState = {\n ...props,\n disabled,\n disableRipple,\n color,\n size\n };\n const classes = useUtilityClasses(ownerState);\n const radioGroup = useRadioGroup();\n let checked = checkedProp;\n const onChange = createChainedFunction(onChangeProp, radioGroup && radioGroup.onChange);\n let name = nameProp;\n if (radioGroup) {\n if (typeof checked === 'undefined') {\n checked = areEqualValues(radioGroup.value, props.value);\n }\n if (typeof name === 'undefined') {\n name = radioGroup.name;\n }\n }\n return /*#__PURE__*/_jsx(RadioRoot, {\n type: \"radio\",\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: defaultIcon.props.fontSize ?? size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(checkedIcon, {\n fontSize: defaultCheckedIcon.props.fontSize ?? size\n }),\n disabled: disabled,\n ownerState: ownerState,\n classes: classes,\n name: name,\n checked: checked,\n onChange: onChange,\n ref: ref,\n className: clsx(classes.root, className),\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Radio.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense radio styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component. The DOM API casts this to a string.\n */\n value: PropTypes.any\n} : void 0;\nexport default Radio;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getRadioUtilityClass(slot) {\n return generateUtilityClass('MuiRadio', slot);\n}\nconst radioClasses = generateUtilityClasses('MuiRadio', ['root', 'checked', 'disabled', 'colorPrimary', 'colorSecondary', 'sizeSmall']);\nexport default radioClasses;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst RadioGroupContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n RadioGroupContext.displayName = 'RadioGroupContext';\n}\nexport default RadioGroupContext;","'use client';\n\nimport * as React from 'react';\nimport RadioGroupContext from \"./RadioGroupContext.js\";\nexport default function useRadioGroup() {\n return React.useContext(RadioGroupContext);\n}"],"names":["observer","model","handleClose","posneg","setPosNeg","useState","React","Dialog","open","onClose","title","DialogContent","Typography","FormControlLabel","checked","onClick","control","Radio","label","ColorPicker","color","posColor","onChange","event","setPosColor","setColor","undefined","negColor","setNegColor","DialogActions","Button","variant","type","createSvgIcon","d","RadioButtonIconRoot","styled","shouldForwardProp","rootShouldForwardProp","position","display","RadioButtonIconBackground","RadioButtonUnchecked","transform","RadioButtonIconDot","RadioButtonChecked","memoTheme","theme","left","transition","transitions","create","easing","easeIn","duration","shortest","variants","props","style","easeOut","classes","fontSize","ownerState","className","root","children","background","dot","RadioRoot","SwitchBase","prop","name","slot","overridesResolver","styles","size","capitalize","vars","palette","text","secondary","radioClasses","disabled","action","disableRipple","backgroundColor","activeChannel","hoverOpacity","active","Object","entries","filter","createSimplePaletteValueFilter","map","mainChannel","main","defaultCheckedIcon","defaultIcon","inProps","ref","checkedProp","checkedIcon","icon","nameProp","onChangeProp","disabledProp","other","muiFormControl","useFormControl","slots","composeClasses","useUtilityClasses","radioGroup","useRadioGroup","createChainedFunction","a","b","value","String","clsx","getRadioUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3109.3173f682.chunk.js --- a/x/static/js/3109.3173f682.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3109],{63109:t=>{!function(){"use strict";var e,r,i,n,s;function a(t,e){var r,i=Object.keys(e);for(r=0;r1?((e=i).width=arguments[0],e.height=arguments[1]):e=t||i,!(this instanceof r))return new r(e);this.width=e.width||i.width,this.height=e.height||i.height,this.enableMirroring=void 0!==e.enableMirroring?e.enableMirroring:i.enableMirroring,this.canvas=this,this.__document=e.document||document,this.__canvas=this.__document.createElement("canvas"),this.__ctx=this.__canvas.getContext("2d"),this.__setDefaultStyles(),this.__stack=[this.__getStyleState()],this.__groupStack=[],this.__root=this.__document.createElementNS("http://www.w3.org/2000/svg","svg"),this.__root.setAttribute("version",1.1),this.__root.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.__root.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),this.__root.setAttribute("width",this.width),this.__root.setAttribute("height",this.height),this.__ids={},this.__defs=this.__document.createElementNS("http://www.w3.org/2000/svg","defs"),this.__root.appendChild(this.__defs),this.__currentElement=this.__document.createElementNS("http://www.w3.org/2000/svg","g"),this.__root.appendChild(this.__currentElement)},r.prototype.__createElement=function(t,e,r){void 0===e&&(e={});var i,n,s=this.__document.createElementNS("http://www.w3.org/2000/svg",t),a=Object.keys(e);for(r&&(s.setAttribute("fill","none"),s.setAttribute("stroke","none")),i=0;i0){var r=this.__createElement("g");e.appendChild(r),this.__currentElement=r}var i=this.__currentElement.getAttribute("transform");i?i+=" ":i="",i+=t,this.__currentElement.setAttribute("transform",i)},r.prototype.scale=function(t,e){void 0===e&&(e=t),this.__addTransform(a("scale({x},{y})",{x:t,y:e}))},r.prototype.rotate=function(t){var e=180*t/Math.PI;this.__addTransform(a("rotate({angle},{cx},{cy})",{angle:e,cx:0,cy:0}))},r.prototype.translate=function(t,e){this.__addTransform(a("translate({x},{y})",{x:t,y:e}))},r.prototype.transform=function(t,e,r,i,n,s){this.__addTransform(a("matrix({a},{b},{c},{d},{e},{f})",{a:t,b:e,c:r,d:i,e:n,f:s}))},r.prototype.beginPath=function(){var t;this.__currentDefaultPath="",this.__currentPosition={},t=this.__createElement("path",{},!0),this.__closestGroupOrSvg().appendChild(t),this.__currentElement=t},r.prototype.__applyCurrentDefaultPath=function(){if("path"!==this.__currentElement.nodeName)throw new Error("Attempted to apply path command to node "+this.__currentElement.nodeName);var t=this.__currentDefaultPath;this.__currentElement.setAttribute("d",t)},r.prototype.__addPathCommand=function(t){this.__currentDefaultPath+=" ",this.__currentDefaultPath+=t},r.prototype.moveTo=function(t,e){"path"!==this.__currentElement.nodeName&&this.beginPath(),this.__currentPosition={x:t,y:e},this.__addPathCommand(a("M {x} {y}",{x:t,y:e}))},r.prototype.closePath=function(){this.__addPathCommand("Z")},r.prototype.lineTo=function(t,e){this.__currentPosition={x:t,y:e},this.__currentDefaultPath.indexOf("M")>-1?this.__addPathCommand(a("L {x} {y}",{x:t,y:e})):this.__addPathCommand(a("M {x} {y}",{x:t,y:e}))},r.prototype.bezierCurveTo=function(t,e,r,i,n,s){this.__currentPosition={x:n,y:s},this.__addPathCommand(a("C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}",{cp1x:t,cp1y:e,cp2x:r,cp2y:i,x:n,y:s}))},r.prototype.quadraticCurveTo=function(t,e,r,i){this.__currentPosition={x:r,y:i},this.__addPathCommand(a("Q {cpx} {cpy} {x} {y}",{cpx:t,cpy:e,x:r,y:i}))};var l=function(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]};r.prototype.arcTo=function(t,e,r,i,n){var s=this.__currentPosition&&this.__currentPosition.x,a=this.__currentPosition&&this.__currentPosition.y;if(void 0!==s&&void 0!==a){if(n<0)throw new Error("IndexSizeError: The radius provided ("+n+") is negative.");if(s===t&&a===e||t===r&&e===i||0===n)this.lineTo(t,e);else{var o=l([s-t,a-e]),h=l([r-t,i-e]);if(o[0]*h[1]!=o[1]*h[0]){var c=o[0]*h[0]+o[1]*h[1],p=Math.acos(Math.abs(c)),_=l([o[0]+h[0],o[1]+h[1]]),u=n/Math.sin(p/2),d=t+u*_[0],g=e+u*_[1],m=[-o[1],o[0]],f=[h[1],-h[0]],y=function(t){var e=t[0];return t[1]>=0?Math.acos(e):-Math.acos(e)},v=y(m),w=y(f);this.lineTo(d+m[0]*n,g+m[1]*n),this.arc(d,g,n,v,w)}else this.lineTo(t,e)}}},r.prototype.stroke=function(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("paint-order","fill stroke markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("stroke")},r.prototype.fill=function(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("paint-order","stroke fill markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("fill")},r.prototype.rect=function(t,e,r,i){"path"!==this.__currentElement.nodeName&&this.beginPath(),this.moveTo(t,e),this.lineTo(t+r,e),this.lineTo(t+r,e+i),this.lineTo(t,e+i),this.lineTo(t,e),this.closePath()},r.prototype.fillRect=function(t,e,r,i){var n;n=this.__createElement("rect",{x:t,y:e,width:r,height:i},!0),this.__closestGroupOrSvg().appendChild(n),this.__currentElement=n,this.__applyStyleToCurrentElement("fill")},r.prototype.strokeRect=function(t,e,r,i){var n;n=this.__createElement("rect",{x:t,y:e,width:r,height:i},!0),this.__closestGroupOrSvg().appendChild(n),this.__currentElement=n,this.__applyStyleToCurrentElement("stroke")},r.prototype.clearRect=function(t,e,r,i){var n,s=this.__closestGroupOrSvg();n=this.__createElement("rect",{x:t,y:e,width:r,height:i,fill:"#FFFFFF"},!0),s.appendChild(n)},r.prototype.createLinearGradient=function(t,e,r,n){var s=this.__createElement("linearGradient",{id:o(this.__ids),x1:t+"px",x2:r+"px",y1:e+"px",y2:n+"px",gradientUnits:"userSpaceOnUse"},!1);return this.__defs.appendChild(s),new i(s,this)},r.prototype.createRadialGradient=function(t,e,r,n,s,a){var h=this.__createElement("radialGradient",{id:o(this.__ids),cx:n+"px",cy:s+"px",r:a+"px",fx:t+"px",fy:e+"px",gradientUnits:"userSpaceOnUse"},!1);return this.__defs.appendChild(h),new i(h,this)},r.prototype.__parseFont=function(){var t=/^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s*([-,\"\sa-z]+?)\s*$/i.exec(this.font),e={style:t[1]||"normal",size:t[4]||"10px",family:t[6]||"sans-serif",weight:t[3]||"normal",decoration:t[2]||"normal",href:null};return"underline"===this.__fontUnderline&&(e.decoration="underline"),this.__fontHref&&(e.href=this.__fontHref),e},r.prototype.__wrapTextLink=function(t,e){if(t.href){var r=this.__createElement("a");return r.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t.href),r.appendChild(e),r}return e},r.prototype.__applyText=function(t,e,r,i){var n,s,a=this.__parseFont(),o=this.__closestGroupOrSvg(),l=this.__createElement("text",{"font-family":a.family,"font-size":a.size,"font-style":a.style,"font-weight":a.weight,"text-decoration":a.decoration,x:e,y:r,"text-anchor":(n=this.textAlign,s={left:"start",right:"end",center:"middle",start:"start",end:"end"},s[n]||s.start),"dominant-baseline":h(this.textBaseline)},!0);l.appendChild(this.__document.createTextNode(t)),this.__currentElement=l,this.__applyStyleToCurrentElement(i),o.appendChild(this.__wrapTextLink(a,l))},r.prototype.fillText=function(t,e,r){this.__applyText(t,e,r,"fill")},r.prototype.strokeText=function(t,e,r){this.__applyText(t,e,r,"stroke")},r.prototype.measureText=function(t){return this.__ctx.font=this.font,this.__ctx.measureText(t)},r.prototype.arc=function(t,e,r,i,n,s){if(i!==n){(i%=2*Math.PI)==(n%=2*Math.PI)&&(n=(n+2*Math.PI-.001*(s?-1:1))%(2*Math.PI));var o,h=t+r*Math.cos(n),l=e+r*Math.sin(n),c=t+r*Math.cos(i),p=e+r*Math.sin(i),_=s?0:1,u=n-i;u<0&&(u+=2*Math.PI),o=s?u>Math.PI?0:1:u>Math.PI?1:0,this.lineTo(c,p),this.__addPathCommand(a("A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}",{rx:r,ry:r,xAxisRotation:0,largeArcFlag:o,sweepFlag:_,endX:h,endY:l})),this.__currentPosition={x:h,y:l}}},r.prototype.clip=function(){var t=this.__closestGroupOrSvg(),e=this.__createElement("clipPath"),r=o(this.__ids),i=this.__createElement("g");t.removeChild(this.__currentElement),e.setAttribute("id",r),e.appendChild(this.__currentElement),this.__defs.appendChild(e),t.setAttribute("clip-path",a("url(#{id})",{id:r})),t.appendChild(i),this.__currentElement=i},r.prototype.drawImage=function(){var t,e,i,n,s,a,o,h,l,c,p,_,u,d,g=Array.prototype.slice.call(arguments),m=g[0],f=0,y=0;if(3===g.length)t=g[1],e=g[2],i=s=m.width,n=a=m.height;else if(5===g.length)t=g[1],e=g[2],i=g[3],n=g[4],s=m.width,a=m.height;else{if(9!==g.length)throw new Error("Inavlid number of arguments passed to drawImage: "+arguments.length);f=g[1],y=g[2],s=g[3],a=g[4],t=g[5],e=g[6],i=g[7],n=g[8]}if(o=this.__closestGroupOrSvg(),p=this.__currentElement,m instanceof r){for(l=(h=m.getSvg()).childNodes[0];l.childNodes.length;)d=l.childNodes[0].getAttribute("id"),this.__ids[d]=d,this.__defs.appendChild(l.childNodes[0]);c=h.childNodes[1],o.appendChild(c),this.__currentElement=c,this.translate(t,e),this.__currentElement=p}else"CANVAS"!==m.nodeName&&"IMG"!==m.nodeName||((_=this.__createElement("image")).setAttribute("width",i),_.setAttribute("height",n),_.setAttribute("preserveAspectRatio","none"),(f||y||s!==m.width||a!==m.height)&&((u=this.__document.createElement("canvas")).width=i,u.height=n,u.getContext("2d").drawImage(m,f,y,s,a,0,0,i,n),m=u),_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href","CANVAS"===m.nodeName?m.toDataURL():m.getAttribute("src")),o.appendChild(_),this.__currentElement=_,this.translate(t,e),this.__currentElement=p)},r.prototype.createPattern=function(t,e){var i,s=this.__document.createElementNS("http://www.w3.org/2000/svg","pattern"),a=o(this.__ids);return s.setAttribute("id",a),s.setAttribute("width",t.width),s.setAttribute("height",t.height),"CANVAS"===t.nodeName||"IMG"===t.nodeName?((i=this.__document.createElementNS("http://www.w3.org/2000/svg","image")).setAttribute("width",t.width),i.setAttribute("height",t.height),i.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href","CANVAS"===t.nodeName?t.toDataURL():t.getAttribute("src")),s.appendChild(i),this.__defs.appendChild(s)):t instanceof r&&(s.appendChild(t.__root.childNodes[1]),this.__defs.appendChild(s)),new n(s,this)},r.prototype.drawFocusRing=function(){},r.prototype.createImageData=function(){},r.prototype.getImageData=function(){},r.prototype.putImageData=function(){},r.prototype.globalCompositeOperation=function(){},r.prototype.setTransform=function(){},"object"==typeof window&&(window.C2S=r),"object"==typeof t.exports&&(t.exports=r)}()}}]); -//# sourceMappingURL=3109.3173f682.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3109.3173f682.chunk.js.map --- a/x/static/js/3109.3173f682.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3109.3173f682.chunk.js","mappings":"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","sources":["../../../node_modules/canvas2svg/canvas2svg.js"],"sourcesContent":["/*!!\n * Canvas 2 Svg v1.0.15\n * A low level canvas to SVG converter. Uses a mock canvas context to build an SVG document.\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n * Author:\n * Kerry Liu\n *\n * Copyright (c) 2014 Gliffy Inc.\n */\n\n;(function() {\n \"use strict\";\n\n var STYLES, ctx, CanvasGradient, CanvasPattern, namedEntities;\n\n //helper function to format a string\n function format(str, args) {\n var keys = Object.keys(args), i;\n for (i=0; i 1) {\n options = defaultOptions;\n options.width = arguments[0];\n options.height = arguments[1];\n } else if( !o ) {\n options = defaultOptions;\n } else {\n options = o;\n }\n\n if(!(this instanceof ctx)) {\n //did someone call this without new?\n return new ctx(options);\n }\n\n //setup options\n this.width = options.width || defaultOptions.width;\n this.height = options.height || defaultOptions.height;\n this.enableMirroring = options.enableMirroring !== undefined ? options.enableMirroring : defaultOptions.enableMirroring;\n\n this.canvas = this; ///point back to this instance!\n this.__document = options.document || document;\n this.__canvas = this.__document.createElement(\"canvas\");\n this.__ctx = this.__canvas.getContext(\"2d\");\n\n this.__setDefaultStyles();\n this.__stack = [this.__getStyleState()];\n this.__groupStack = [];\n\n //the root svg element\n this.__root = this.__document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n this.__root.setAttribute(\"version\", 1.1);\n this.__root.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\");\n this.__root.setAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n this.__root.setAttribute(\"width\", this.width);\n this.__root.setAttribute(\"height\", this.height);\n\n //make sure we don't generate the same ids in defs\n this.__ids = {};\n\n //defs tag\n this.__defs = this.__document.createElementNS(\"http://www.w3.org/2000/svg\", \"defs\");\n this.__root.appendChild(this.__defs);\n\n //also add a group child. the svg element can't use the transform attribute\n this.__currentElement = this.__document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n this.__root.appendChild(this.__currentElement);\n };\n\n\n /**\n * Creates the specified svg element\n * @private\n */\n ctx.prototype.__createElement = function (elementName, properties, resetFill) {\n if (typeof properties === \"undefined\") {\n properties = {};\n }\n\n var element = this.__document.createElementNS(\"http://www.w3.org/2000/svg\", elementName),\n keys = Object.keys(properties), i, key;\n if(resetFill) {\n //if fill or stroke is not specified, the svg element should not display. By default SVG's fill is black.\n element.setAttribute(\"fill\", \"none\");\n element.setAttribute(\"stroke\", \"none\");\n }\n for(i=0; i 0) {\n var group = this.__createElement(\"g\");\n parent.appendChild(group);\n this.__currentElement = group;\n }\n\n var transform = this.__currentElement.getAttribute(\"transform\");\n if(transform) {\n transform += \" \";\n } else {\n transform = \"\";\n }\n transform += t;\n this.__currentElement.setAttribute(\"transform\", transform);\n };\n\n /**\n * scales the current element\n */\n ctx.prototype.scale = function(x, y) {\n if(y === undefined) {\n y = x;\n }\n this.__addTransform(format(\"scale({x},{y})\", {x:x, y:y}));\n };\n\n /**\n * rotates the current element\n */\n ctx.prototype.rotate = function(angle){\n var degrees = (angle * 180 / Math.PI);\n this.__addTransform(format(\"rotate({angle},{cx},{cy})\", {angle:degrees, cx:0, cy:0}));\n };\n\n /**\n * translates the current element\n */\n ctx.prototype.translate = function(x, y){\n this.__addTransform(format(\"translate({x},{y})\", {x:x,y:y}));\n };\n\n /**\n * applies a transform to the current element\n */\n ctx.prototype.transform = function(a, b, c, d, e, f){\n this.__addTransform(format(\"matrix({a},{b},{c},{d},{e},{f})\", {a:a, b:b, c:c, d:d, e:e, f:f}));\n };\n\n /**\n * Create a new Path Element\n */\n ctx.prototype.beginPath = function(){\n var path, parent;\n\n // Note that there is only one current default path, it is not part of the drawing state.\n // See also: https://html.spec.whatwg.org/multipage/scripting.html#current-default-path\n this.__currentDefaultPath = \"\";\n this.__currentPosition = {};\n\n path = this.__createElement(\"path\", {}, true);\n parent = this.__closestGroupOrSvg();\n parent.appendChild(path);\n this.__currentElement = path;\n };\n\n /**\n * Helper function to apply currentDefaultPath to current path element\n * @private\n */\n ctx.prototype.__applyCurrentDefaultPath = function() {\n if(this.__currentElement.nodeName === \"path\") {\n var d = this.__currentDefaultPath;\n this.__currentElement.setAttribute(\"d\", d);\n } else {\n throw new Error(\"Attempted to apply path command to node \" + this.__currentElement.nodeName);\n }\n };\n\n /**\n * Helper function to add path command\n * @private\n */\n ctx.prototype.__addPathCommand = function(command){\n this.__currentDefaultPath += \" \";\n this.__currentDefaultPath += command;\n };\n\n /**\n * Adds the move command to the current path element,\n * if the currentPathElement is not empty create a new path element\n */\n ctx.prototype.moveTo = function(x,y){\n if(this.__currentElement.nodeName !== \"path\") {\n this.beginPath();\n }\n\n // creates a new subpath with the given point\n this.__currentPosition = {x: x, y: y};\n this.__addPathCommand(format(\"M {x} {y}\", {x:x, y:y}));\n };\n\n /**\n * Closes the current path\n */\n ctx.prototype.closePath = function(){\n this.__addPathCommand(\"Z\");\n };\n\n /**\n * Adds a line to command\n */\n ctx.prototype.lineTo = function(x, y){\n this.__currentPosition = {x: x, y: y};\n if (this.__currentDefaultPath.indexOf('M') > -1) {\n this.__addPathCommand(format(\"L {x} {y}\", {x:x, y:y}));\n } else {\n this.__addPathCommand(format(\"M {x} {y}\", {x:x, y:y}));\n }\n };\n\n /**\n * Add a bezier command\n */\n ctx.prototype.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {\n this.__currentPosition = {x: x, y: y};\n this.__addPathCommand(format(\"C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}\",\n {cp1x:cp1x, cp1y:cp1y, cp2x:cp2x, cp2y:cp2y, x:x, y:y}));\n };\n\n /**\n * Adds a quadratic curve to command\n */\n ctx.prototype.quadraticCurveTo = function(cpx, cpy, x, y){\n this.__currentPosition = {x: x, y: y};\n this.__addPathCommand(format(\"Q {cpx} {cpy} {x} {y}\", {cpx:cpx, cpy:cpy, x:x, y:y}));\n };\n\n\n /**\n * Return a new normalized vector of given vector\n */\n var normalize = function(vector) {\n var len = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]);\n return [vector[0] / len, vector[1] / len];\n };\n\n /**\n * Adds the arcTo to the current path\n *\n * @see http://www.w3.org/TR/2015/WD-2dcontext-20150514/#dom-context-2d-arcto\n */\n ctx.prototype.arcTo = function(x1, y1, x2, y2, radius) {\n // Let the point (x0, y0) be the last point in the subpath.\n var x0 = this.__currentPosition && this.__currentPosition.x;\n var y0 = this.__currentPosition && this.__currentPosition.y;\n\n // First ensure there is a subpath for (x1, y1).\n if (typeof x0 == \"undefined\" || typeof y0 == \"undefined\") {\n return;\n }\n\n // Negative values for radius must cause the implementation to throw an IndexSizeError exception.\n if (radius < 0) {\n throw new Error(\"IndexSizeError: The radius provided (\" + radius + \") is negative.\");\n }\n\n // If the point (x0, y0) is equal to the point (x1, y1),\n // or if the point (x1, y1) is equal to the point (x2, y2),\n // or if the radius radius is zero,\n // then the method must add the point (x1, y1) to the subpath,\n // and connect that point to the previous point (x0, y0) by a straight line.\n if (((x0 === x1) && (y0 === y1))\n || ((x1 === x2) && (y1 === y2))\n || (radius === 0)) {\n this.lineTo(x1, y1);\n return;\n }\n\n // Otherwise, if the points (x0, y0), (x1, y1), and (x2, y2) all lie on a single straight line,\n // then the method must add the point (x1, y1) to the subpath,\n // and connect that point to the previous point (x0, y0) by a straight line.\n var unit_vec_p1_p0 = normalize([x0 - x1, y0 - y1]);\n var unit_vec_p1_p2 = normalize([x2 - x1, y2 - y1]);\n if (unit_vec_p1_p0[0] * unit_vec_p1_p2[1] === unit_vec_p1_p0[1] * unit_vec_p1_p2[0]) {\n this.lineTo(x1, y1);\n return;\n }\n\n // Otherwise, let The Arc be the shortest arc given by circumference of the circle that has radius radius,\n // and that has one point tangent to the half-infinite line that crosses the point (x0, y0) and ends at the point (x1, y1),\n // and that has a different point tangent to the half-infinite line that ends at the point (x1, y1), and crosses the point (x2, y2).\n // The points at which this circle touches these two lines are called the start and end tangent points respectively.\n\n // note that both vectors are unit vectors, so the length is 1\n var cos = (unit_vec_p1_p0[0] * unit_vec_p1_p2[0] + unit_vec_p1_p0[1] * unit_vec_p1_p2[1]);\n var theta = Math.acos(Math.abs(cos));\n\n // Calculate origin\n var unit_vec_p1_origin = normalize([\n unit_vec_p1_p0[0] + unit_vec_p1_p2[0],\n unit_vec_p1_p0[1] + unit_vec_p1_p2[1]\n ]);\n var len_p1_origin = radius / Math.sin(theta / 2);\n var x = x1 + len_p1_origin * unit_vec_p1_origin[0];\n var y = y1 + len_p1_origin * unit_vec_p1_origin[1];\n\n // Calculate start angle and end angle\n // rotate 90deg clockwise (note that y axis points to its down)\n var unit_vec_origin_start_tangent = [\n -unit_vec_p1_p0[1],\n unit_vec_p1_p0[0]\n ];\n // rotate 90deg counter clockwise (note that y axis points to its down)\n var unit_vec_origin_end_tangent = [\n unit_vec_p1_p2[1],\n -unit_vec_p1_p2[0]\n ];\n var getAngle = function(vector) {\n // get angle (clockwise) between vector and (1, 0)\n var x = vector[0];\n var y = vector[1];\n if (y >= 0) { // note that y axis points to its down\n return Math.acos(x);\n } else {\n return -Math.acos(x);\n }\n };\n var startAngle = getAngle(unit_vec_origin_start_tangent);\n var endAngle = getAngle(unit_vec_origin_end_tangent);\n\n // Connect the point (x0, y0) to the start tangent point by a straight line\n this.lineTo(x + unit_vec_origin_start_tangent[0] * radius,\n y + unit_vec_origin_start_tangent[1] * radius);\n\n // Connect the start tangent point to the end tangent point by arc\n // and adding the end tangent point to the subpath.\n this.arc(x, y, radius, startAngle, endAngle);\n };\n\n /**\n * Sets the stroke property on the current element\n */\n ctx.prototype.stroke = function(){\n if(this.__currentElement.nodeName === \"path\") {\n this.__currentElement.setAttribute(\"paint-order\", \"fill stroke markers\");\n }\n this.__applyCurrentDefaultPath();\n this.__applyStyleToCurrentElement(\"stroke\");\n };\n\n /**\n * Sets fill properties on the current element\n */\n ctx.prototype.fill = function(){\n if(this.__currentElement.nodeName === \"path\") {\n this.__currentElement.setAttribute(\"paint-order\", \"stroke fill markers\");\n }\n this.__applyCurrentDefaultPath();\n this.__applyStyleToCurrentElement(\"fill\");\n };\n\n /**\n * Adds a rectangle to the path.\n */\n ctx.prototype.rect = function(x, y, width, height){\n if(this.__currentElement.nodeName !== \"path\") {\n this.beginPath();\n }\n this.moveTo(x, y);\n this.lineTo(x+width, y);\n this.lineTo(x+width, y+height);\n this.lineTo(x, y+height);\n this.lineTo(x, y);\n this.closePath();\n };\n\n\n /**\n * adds a rectangle element\n */\n ctx.prototype.fillRect = function(x, y, width, height){\n var rect, parent;\n rect = this.__createElement(\"rect\", {\n x : x,\n y : y,\n width : width,\n height : height\n }, true);\n parent = this.__closestGroupOrSvg();\n parent.appendChild(rect);\n this.__currentElement = rect;\n this.__applyStyleToCurrentElement(\"fill\");\n };\n\n /**\n * Draws a rectangle with no fill\n * @param x\n * @param y\n * @param width\n * @param height\n */\n ctx.prototype.strokeRect = function(x, y, width, height){\n var rect, parent;\n rect = this.__createElement(\"rect\", {\n x : x,\n y : y,\n width : width,\n height : height\n }, true);\n parent = this.__closestGroupOrSvg();\n parent.appendChild(rect);\n this.__currentElement = rect;\n this.__applyStyleToCurrentElement(\"stroke\");\n };\n\n\n /**\n * \"Clears\" a canvas by just drawing a white rectangle in the current group.\n */\n ctx.prototype.clearRect = function(x, y, width, height) {\n var rect, parent = this.__closestGroupOrSvg();\n rect = this.__createElement(\"rect\", {\n x : x,\n y : y,\n width : width,\n height : height,\n fill : \"#FFFFFF\"\n }, true);\n parent.appendChild(rect);\n };\n\n /**\n * Adds a linear gradient to a defs tag.\n * Returns a canvas gradient object that has a reference to it's parent def\n */\n ctx.prototype.createLinearGradient = function(x1, y1, x2, y2){\n var grad = this.__createElement(\"linearGradient\", {\n id : randomString(this.__ids),\n x1 : x1+\"px\",\n x2 : x2+\"px\",\n y1 : y1+\"px\",\n y2 : y2+\"px\",\n \"gradientUnits\" : \"userSpaceOnUse\"\n }, false);\n this.__defs.appendChild(grad);\n return new CanvasGradient(grad, this);\n };\n\n /**\n * Adds a radial gradient to a defs tag.\n * Returns a canvas gradient object that has a reference to it's parent def\n */\n ctx.prototype.createRadialGradient = function(x0, y0, r0, x1, y1, r1){\n var grad = this.__createElement(\"radialGradient\", {\n id : randomString(this.__ids),\n cx : x1+\"px\",\n cy : y1+\"px\",\n r : r1+\"px\",\n fx : x0+\"px\",\n fy : y0+\"px\",\n \"gradientUnits\" : \"userSpaceOnUse\"\n }, false);\n this.__defs.appendChild(grad);\n return new CanvasGradient(grad, this);\n\n };\n\n /**\n * Parses the font string and returns svg mapping\n * @private\n */\n ctx.prototype.__parseFont = function() {\n var regex = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-,\\\"\\sa-z]+?)\\s*$/i;\n var fontPart = regex.exec( this.font );\n var data = {\n style : fontPart[1] || 'normal',\n size : fontPart[4] || '10px',\n family : fontPart[6] || 'sans-serif',\n weight: fontPart[3] || 'normal',\n decoration : fontPart[2] || 'normal',\n href : null\n };\n\n //canvas doesn't support underline natively, but we can pass this attribute\n if(this.__fontUnderline === \"underline\") {\n data.decoration = \"underline\";\n }\n\n //canvas also doesn't support linking, but we can pass this as well\n if(this.__fontHref) {\n data.href = this.__fontHref;\n }\n\n return data;\n };\n\n /**\n * Helper to link text fragments\n * @param font\n * @param element\n * @return {*}\n * @private\n */\n ctx.prototype.__wrapTextLink = function(font, element) {\n if(font.href) {\n var a = this.__createElement(\"a\");\n a.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\", font.href);\n a.appendChild(element);\n return a;\n }\n return element;\n };\n\n /**\n * Fills or strokes text\n * @param text\n * @param x\n * @param y\n * @param action - stroke or fill\n * @private\n */\n ctx.prototype.__applyText = function(text, x, y, action) {\n var font = this.__parseFont(),\n parent = this.__closestGroupOrSvg(),\n textElement = this.__createElement(\"text\", {\n \"font-family\" : font.family,\n \"font-size\" : font.size,\n \"font-style\" : font.style,\n \"font-weight\" : font.weight,\n \"text-decoration\" : font.decoration,\n \"x\" : x,\n \"y\" : y,\n \"text-anchor\": getTextAnchor(this.textAlign),\n \"dominant-baseline\": getDominantBaseline(this.textBaseline)\n }, true);\n\n textElement.appendChild(this.__document.createTextNode(text));\n this.__currentElement = textElement;\n this.__applyStyleToCurrentElement(action);\n parent.appendChild(this.__wrapTextLink(font,textElement));\n };\n\n /**\n * Creates a text element\n * @param text\n * @param x\n * @param y\n */\n ctx.prototype.fillText = function(text, x, y){\n this.__applyText(text, x, y, \"fill\");\n };\n\n /**\n * Strokes text\n * @param text\n * @param x\n * @param y\n */\n ctx.prototype.strokeText = function(text, x, y){\n this.__applyText(text, x, y, \"stroke\");\n };\n\n /**\n * No need to implement this for svg.\n * @param text\n * @return {TextMetrics}\n */\n ctx.prototype.measureText = function(text){\n this.__ctx.font = this.font;\n return this.__ctx.measureText(text);\n };\n\n /**\n * Arc command!\n */\n ctx.prototype.arc = function(x, y, radius, startAngle, endAngle, counterClockwise) {\n // in canvas no circle is drawn if no angle is provided.\n if (startAngle === endAngle) {\n return;\n }\n startAngle = startAngle % (2*Math.PI);\n endAngle = endAngle % (2*Math.PI);\n if(startAngle === endAngle) {\n //circle time! subtract some of the angle so svg is happy (svg elliptical arc can't draw a full circle)\n endAngle = ((endAngle + (2*Math.PI)) - 0.001 * (counterClockwise ? -1 : 1)) % (2*Math.PI);\n }\n var endX = x+radius*Math.cos(endAngle),\n endY = y+radius*Math.sin(endAngle),\n startX = x+radius*Math.cos(startAngle),\n startY = y+radius*Math.sin(startAngle),\n sweepFlag = counterClockwise ? 0 : 1,\n largeArcFlag = 0,\n diff = endAngle - startAngle;\n\n // https://github.com/gliffy/canvas2svg/issues/4\n if(diff < 0) {\n diff += 2*Math.PI;\n }\n\n if(counterClockwise) {\n largeArcFlag = diff > Math.PI ? 0 : 1;\n } else {\n largeArcFlag = diff > Math.PI ? 1 : 0;\n }\n\n this.lineTo(startX, startY);\n this.__addPathCommand(format(\"A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}\",\n {rx:radius, ry:radius, xAxisRotation:0, largeArcFlag:largeArcFlag, sweepFlag:sweepFlag, endX:endX, endY:endY}));\n\n this.__currentPosition = {x: endX, y: endY};\n };\n\n /**\n * Generates a ClipPath from the clip command.\n */\n ctx.prototype.clip = function(){\n var group = this.__closestGroupOrSvg(),\n clipPath = this.__createElement(\"clipPath\"),\n id = randomString(this.__ids),\n newGroup = this.__createElement(\"g\");\n\n group.removeChild(this.__currentElement);\n clipPath.setAttribute(\"id\", id);\n clipPath.appendChild(this.__currentElement);\n\n this.__defs.appendChild(clipPath);\n\n //set the clip path to this group\n group.setAttribute(\"clip-path\", format(\"url(#{id})\", {id:id}));\n\n //clip paths can be scaled and transformed, we need to add another wrapper group to avoid later transformations\n // to this path\n group.appendChild(newGroup);\n\n this.__currentElement = newGroup;\n\n };\n\n /**\n * Draws a canvas, image or mock context to this canvas.\n * Note that all svg dom manipulation uses node.childNodes rather than node.children for IE support.\n * http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage\n */\n ctx.prototype.drawImage = function(){\n //convert arguments to a real array\n var args = Array.prototype.slice.call(arguments),\n image=args[0],\n dx, dy, dw, dh, sx=0, sy=0, sw, sh, parent, svg, defs, group,\n currentElement, svgImage, canvas, context, id;\n\n if(args.length === 3) {\n dx = args[1];\n dy = args[2];\n sw = image.width;\n sh = image.height;\n dw = sw;\n dh = sh;\n } else if(args.length === 5) {\n dx = args[1];\n dy = args[2];\n dw = args[3];\n dh = args[4];\n sw = image.width;\n sh = image.height;\n } else if(args.length === 9) {\n sx = args[1];\n sy = args[2];\n sw = args[3];\n sh = args[4];\n dx = args[5];\n dy = args[6];\n dw = args[7];\n dh = args[8];\n } else {\n throw new Error(\"Inavlid number of arguments passed to drawImage: \" + arguments.length);\n }\n\n parent = this.__closestGroupOrSvg();\n currentElement = this.__currentElement;\n\n if(image instanceof ctx) {\n //canvas2svg mock canvas context. In the future we may want to clone nodes instead.\n //also I'm currently ignoring dw, dh, sw, sh, sx, sy for a mock context.\n svg = image.getSvg();\n defs = svg.childNodes[0];\n while(defs.childNodes.length) {\n id = defs.childNodes[0].getAttribute(\"id\");\n this.__ids[id] = id;\n this.__defs.appendChild(defs.childNodes[0]);\n }\n group = svg.childNodes[1];\n parent.appendChild(group);\n this.__currentElement = group;\n this.translate(dx, dy);\n this.__currentElement = currentElement;\n } else if(image.nodeName === \"CANVAS\" || image.nodeName === \"IMG\") {\n //canvas or image\n svgImage = this.__createElement(\"image\");\n svgImage.setAttribute(\"width\", dw);\n svgImage.setAttribute(\"height\", dh);\n svgImage.setAttribute(\"preserveAspectRatio\", \"none\");\n\n if(sx || sy || sw !== image.width || sh !== image.height) {\n //crop the image using a temporary canvas\n canvas = this.__document.createElement(\"canvas\");\n canvas.width = dw;\n canvas.height = dh;\n context = canvas.getContext(\"2d\");\n context.drawImage(image, sx, sy, sw, sh, 0, 0, dw, dh);\n image = canvas;\n }\n\n svgImage.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\",\n image.nodeName === \"CANVAS\" ? image.toDataURL() : image.getAttribute(\"src\"));\n parent.appendChild(svgImage);\n this.__currentElement = svgImage;\n this.translate(dx, dy);\n this.__currentElement = currentElement;\n }\n };\n\n /**\n * Generates a pattern tag\n */\n ctx.prototype.createPattern = function(image, repetition){\n var pattern = this.__document.createElementNS(\"http://www.w3.org/2000/svg\", \"pattern\"), id = randomString(this.__ids),\n img;\n pattern.setAttribute(\"id\", id);\n pattern.setAttribute(\"width\", image.width);\n pattern.setAttribute(\"height\", image.height);\n if(image.nodeName === \"CANVAS\" || image.nodeName === \"IMG\") {\n img = this.__document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n img.setAttribute(\"width\", image.width);\n img.setAttribute(\"height\", image.height);\n img.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\",\n image.nodeName === \"CANVAS\" ? image.toDataURL() : image.getAttribute(\"src\"));\n pattern.appendChild(img);\n this.__defs.appendChild(pattern);\n } else if(image instanceof ctx) {\n pattern.appendChild(image.__root.childNodes[1]);\n this.__defs.appendChild(pattern);\n }\n return new CanvasPattern(pattern, this);\n };\n\n /**\n * Not yet implemented\n */\n ctx.prototype.drawFocusRing = function(){};\n ctx.prototype.createImageData = function(){};\n ctx.prototype.getImageData = function(){};\n ctx.prototype.putImageData = function(){};\n ctx.prototype.globalCompositeOperation = function(){};\n ctx.prototype.setTransform = function(){};\n\n //add options for alternative namespace\n if (typeof window === \"object\") {\n window.C2S = ctx;\n }\n\n // CommonJS/Browserify\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n module.exports = ctx;\n }\n\n}());\n"],"names":["STYLES","ctx","CanvasGradient","CanvasPattern","namedEntities","format","str","args","i","keys","Object","length","replace","RegExp","randomString","holder","randomstring","Error","Math","floor","chars","random","getDominantBaseline","textBaseline","mapping","alphabetic","items","radix","entity","base10","lookup","split","parseInt","createNamedToNumberedLookup","svgAttr","canvas","svg","apply","gradientNode","this","__root","__ctx","prototype","addColorStop","offset","color","matches","stop","__createElement","setAttribute","indexOf","exec","r","g","b","appendChild","pattern","o","options","defaultOptions","width","height","enableMirroring","arguments","undefined","__document","document","__canvas","createElement","getContext","__setDefaultStyles","__stack","__getStyleState","__groupStack","createElementNS","setAttributeNS","__ids","__defs","__currentElement","elementName","properties","resetFill","key","element","__applyStyleState","styleState","__applyStyleToCurrentElement","type","style","value","id","childNodes","getAttribute","__closestGroupOrSvg","node","nodeName","parentNode","getSerializedSvg","fixNamedEntities","regexp","serialized","XMLSerializer","serializeToString","test","getSvg","save","group","parent","push","restore","pop","state","__addTransform","t","transform","scale","x","y","rotate","angle","degrees","PI","cx","cy","translate","a","c","d","e","f","beginPath","path","__currentDefaultPath","__currentPosition","__applyCurrentDefaultPath","__addPathCommand","command","moveTo","closePath","lineTo","bezierCurveTo","cp1x","cp1y","cp2x","cp2y","quadraticCurveTo","cpx","cpy","normalize","vector","len","sqrt","arcTo","x1","y1","x2","y2","radius","x0","y0","unit_vec_p1_p0","unit_vec_p1_p2","cos","theta","acos","abs","unit_vec_p1_origin","len_p1_origin","sin","unit_vec_origin_start_tangent","unit_vec_origin_end_tangent","getAngle","startAngle","endAngle","arc","stroke","fill","rect","fillRect","strokeRect","clearRect","createLinearGradient","grad","createRadialGradient","r0","r1","fx","fy","__parseFont","fontPart","font","data","size","family","weight","decoration","href","__fontUnderline","__fontHref","__wrapTextLink","__applyText","text","action","textAlign","textElement","start","createTextNode","fillText","strokeText","measureText","counterClockwise","largeArcFlag","endX","endY","startX","startY","sweepFlag","diff","rx","ry","xAxisRotation","clip","clipPath","newGroup","removeChild","drawImage","dx","dy","dw","dh","sw","sh","defs","currentElement","svgImage","Array","slice","call","image","sx","sy","toDataURL","createPattern","repetition","img","drawFocusRing","createImageData","getImageData","putImageData","globalCompositeOperation","setTransform","window","C2S","module","exports"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/311.2c004784.chunk.js --- a/x/static/js/311.2c004784.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[311],{83803:(e,t,r)=>{r.d(t,{A:()=>u});var a=r(7552),n=r(68446),l=r(99546),i=r(80208),o=r(48231);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;tMath.PI?"1":"0","1",...l].join(" ")}const d=(0,n.observer)((function({model:e,slice:t,region:r}){const n=(0,o.A)(),{radiusPx:i}=e,c=i+1,{endRadians:m,startRadians:d}=t,h=(0,l.polarToCartesian)(c,d),u=(0,l.polarToCartesian)(c,m),p=(m-d)*c,f=m-d>Math.PI?"1":"0",b=(m+d)/2,w=`[${Number(r.regions.length).toLocaleString()}]`;return a.createElement(a.Fragment,null,a.createElement(g,{text:w,view:e,maxWidthPx:p,radians:b,radiusPx:c,title:`${w} more regions`,color:n.palette.text.primary}),a.createElement("path",s({d:["M",...h,"A",c,c,"0",f,"1",...u].join(" ")},(0,l.getStrokeProps)(n.palette.text.secondary),{strokeWidth:2,strokeDasharray:"2,2",fill:"none"})))})),g=(0,n.observer)((function({view:e,text:t,maxWidthPx:r,radians:n,radiusPx:i,title:o,color:m}){const{classes:d}=c(),g=(0,l.polarToCartesian)(i+5,n);return t?6.5*t.length4?(0,l.radToDeg)(n+e.offsetRadians-Math.PI/2)>=180?a.createElement("text",{x:0,y:0,className:d.rulerLabel,textAnchor:"start",dominantBaseline:"middle",transform:`translate(${g}) rotate(${(0,l.radToDeg)(n)})`,fill:m},t,a.createElement("title",null,o||t)):a.createElement("text",{x:0,y:0,className:d.rulerLabel,textAnchor:"end",dominantBaseline:"middle",transform:`translate(${g}) rotate(${(0,l.radToDeg)(n)+180})`,fill:m},t,a.createElement("title",null,o||t)):null:null})),h=(0,n.observer)((function({model:e,slice:t,region:r}){const n=(0,o.A)(),{radiusPx:s}=e,{endRadians:c,startRadians:d}=t,h=(c+d)/2,u=(c-d)*s,p=(0,l.getSession)(e).assemblyManager.get(r.assemblyName);let f=p?p.getRefNameColor(r.refName):void 0;if(f)try{f=(0,i.makeContrasting)(f,n.palette.background.paper)}catch(e){f=n.palette.text.primary}else f=n.palette.text.primary;return a.createElement(a.Fragment,null,a.createElement(g,{text:r.refName,view:e,maxWidthPx:u,radians:h,radiusPx:s,color:f}),a.createElement("path",{d:m(t,s+1,r.start,r.end),stroke:f,strokeWidth:2,fill:"none"}))})),u=(0,n.observer)((function({model:e,slice:t}){return t.region.elided?a.createElement(d,{key:(0,l.assembleLocString)(t.region.regions[0]),model:e,region:t.region,slice:t}):a.createElement(h,{key:(0,l.assembleLocString)(t.region),region:t.region,model:e,slice:t})}))},60311:(e,t,r)=>{r.d(t,{renderToSvg:()=>g});var a=r(7552),n=r(20139),l=r(42489),i=r(99546),o=r(49823),s=r(36422),c=r(48231);function m({width:e,height:t,shift:r}){const n=(0,c.A)();return a.createElement("rect",{width:e+2*r,height:t,fill:(0,i.stripAlpha)(n.palette.background.default)})}var d=r(83803);async function g(e,t){await(0,l.when)((()=>e.initialized));const{themeName:r="default",Wrapper:c=({children:e})=>e}=t,g=(0,i.getSession)(e),h=g.allThemes?.()[r],{createRootFn:u}=(0,s.getRoot)(e),{width:p,tracks:f,height:b}=e,w=await Promise.all(f.map((async e=>{const r=e.displays[0];return await(0,l.when)((()=>void 0===r.ready||r.ready)),{track:e,result:await r.renderSvg({...t,theme:h})}}))),{staticSlices:x,offsetRadians:y,centerXY:E}=e,k=(0,i.radToDeg)(y);return(0,i.renderToStaticMarkup)(a.createElement(n.A,{theme:(0,o.createJBrowseTheme)(h)},a.createElement(c,null,a.createElement("svg",{width:p,height:b,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:[0,0,p+100,b].toString()},a.createElement(m,{width:p,height:b,shift:50}),a.createElement("g",{transform:`translate(${E}) rotate(${k})`},x.map(((t,r)=>a.createElement(d.A,{key:r,model:e,slice:t}))),w.map((({result:e},t)=>a.createElement(a.Fragment,{key:t},e))))))),u)}}}]); -//# sourceMappingURL=311.2c004784.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/311.2c004784.chunk.js.map --- a/x/static/js/311.2c004784.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/311.2c004784.chunk.js","mappings":"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","sources":["../../../plugins/circular-view/src/CircularView/components/Ruler.tsx","../../../plugins/circular-view/src/CircularView/svgcomponents/SVGBackground.tsx","../../../plugins/circular-view/src/CircularView/svgcomponents/SVGCircularView.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react'\nimport {\n getSession,\n polarToCartesian,\n radToDeg,\n assembleLocString,\n getStrokeProps,\n getFillProps,\n} from '@jbrowse/core/util'\nimport { makeContrasting } from '@jbrowse/core/util/color'\nimport { useTheme } from '@mui/material/styles'\nimport { makeStyles } from 'tss-react/mui'\n\n// locals\nimport {\n Slice,\n SliceElidedRegion,\n SliceNonElidedRegion,\n} from '../models/slices'\nimport { CircularViewModel } from '../models/model'\n\nconst useStyles = makeStyles()({\n rulerLabel: {\n fontSize: '0.8rem',\n fontWeight: 500,\n lineHeight: 1.6,\n letterSpacing: '0.0075em',\n },\n})\n\nfunction sliceArcPath(\n slice: Slice,\n radiusPx: number,\n startBase: number,\n endBase: number,\n) {\n // A rx ry x-axis-rotation large-arc-flag sweep-flag x y\n if (slice.flipped) {\n ;[startBase, endBase] = [endBase, startBase]\n }\n const startXY = slice.bpToXY(startBase, radiusPx)\n const endXY = slice.bpToXY(endBase, radiusPx)\n const largeArc =\n Math.abs(endBase - startBase) / slice.bpPerRadian > Math.PI ? '1' : '0'\n const sweepFlag = '1'\n return [\n 'M',\n ...startXY,\n 'A',\n radiusPx,\n radiusPx,\n '0',\n largeArc,\n sweepFlag,\n ...endXY,\n ].join(' ')\n}\n\nconst ElisionRulerArc = observer(function ({\n model,\n slice,\n region,\n}: {\n model: CircularViewModel\n slice: Slice\n region: SliceElidedRegion\n}) {\n const theme = useTheme()\n const { radiusPx: modelRadiusPx } = model\n const radiusPx = modelRadiusPx + 1\n const { endRadians, startRadians } = slice\n const startXY = polarToCartesian(radiusPx, startRadians)\n const endXY = polarToCartesian(radiusPx, endRadians)\n const widthPx = (endRadians - startRadians) * radiusPx\n const largeArc = endRadians - startRadians > Math.PI ? '1' : '0'\n // TODO: draw the elision\n const centerRadians = (endRadians + startRadians) / 2\n const regionCount = `[${Number(region.regions.length).toLocaleString()}]`\n return (\n <>\n \n \n \n )\n})\n\nconst RulerLabel = observer(function ({\n view,\n text,\n maxWidthPx,\n radians,\n radiusPx,\n title,\n color,\n}: {\n view: CircularViewModel\n text: string\n maxWidthPx: number\n radiusPx: number\n radians: number\n title?: string\n color: string\n}) {\n const { classes } = useStyles()\n const textXY = polarToCartesian(radiusPx + 5, radians)\n if (!text) {\n return null\n }\n\n if (text.length * 6.5 < maxWidthPx) {\n // text is rotated parallel to the ruler arc\n return (\n \n {text}\n {title || text}\n \n )\n }\n if (maxWidthPx > 4) {\n // text is rotated perpendicular to the ruler arc\n const overallRotation = radToDeg(radians + view.offsetRadians - Math.PI / 2)\n if (overallRotation >= 180) {\n return (\n \n {text}\n {title || text}\n \n )\n }\n return (\n \n {text}\n {title || text}\n \n )\n }\n\n // if you get here there is no room for the text at all\n return null\n})\n\nconst RegionRulerArc = observer(function ({\n model,\n slice,\n region,\n}: {\n model: CircularViewModel\n slice: Slice\n region: SliceNonElidedRegion\n}) {\n const theme = useTheme()\n const { radiusPx } = model\n const { endRadians, startRadians } = slice\n const centerRadians = (endRadians + startRadians) / 2\n const widthPx = (endRadians - startRadians) * radiusPx\n const session = getSession(model)\n const assembly = session.assemblyManager.get(region.assemblyName)\n let color = assembly ? assembly.getRefNameColor(region.refName) : undefined\n if (color) {\n try {\n color = makeContrasting(color, theme.palette.background.paper)\n } catch (error) {\n color = theme.palette.text.primary\n }\n } else {\n color = theme.palette.text.primary\n }\n\n // TODO: slice flipping\n return (\n <>\n \n \n \n )\n})\n\nconst Ruler = observer(function ({\n model,\n slice,\n}: {\n model: CircularViewModel\n slice: Slice\n}) {\n return slice.region.elided ? (\n \n ) : (\n \n )\n})\n\nexport default Ruler\n","import React from 'react'\nimport { useTheme } from '@mui/material'\nimport { stripAlpha } from '@jbrowse/core/util'\n\nexport default function SVGBackground({\n width,\n height,\n shift,\n}: {\n width: number\n height: number\n shift: number\n}) {\n const theme = useTheme()\n return (\n \n )\n}\n","import React from 'react'\nimport { ThemeProvider } from '@mui/material'\nimport { when } from 'mobx'\nimport { getSession, radToDeg, renderToStaticMarkup } from '@jbrowse/core/util'\nimport { createJBrowseTheme } from '@jbrowse/core/ui'\nimport { getRoot } from 'mobx-state-tree'\n\n// locals\nimport { ExportSvgOptions, CircularViewModel } from '../models/model'\nimport SVGBackground from './SVGBackground'\nimport Ruler from '../components/Ruler'\n\ntype CGV = CircularViewModel\n\nexport async function renderToSvg(model: CGV, opts: ExportSvgOptions) {\n await when(() => model.initialized)\n const { themeName = 'default', Wrapper = ({ children }) => children } = opts\n const session = getSession(model)\n const theme = session.allThemes?.()[themeName]\n\n const { createRootFn } = getRoot(model)\n const { width, tracks, height } = model\n const shift = 50\n const displayResults = await Promise.all(\n tracks.map(async track => {\n const display = track.displays[0]\n await when(() => (display.ready !== undefined ? display.ready : true))\n return { track, result: await display.renderSvg({ ...opts, theme }) }\n }),\n )\n\n const { staticSlices, offsetRadians, centerXY } = model\n const deg = radToDeg(offsetRadians)\n\n // the xlink namespace is used for rendering tag\n return renderToStaticMarkup(\n \n \n \n \n \n {staticSlices.map((slice, i) => (\n /* biome-ignore lint/suspicious/noArrayIndexKey: */\n \n ))}\n {displayResults.map(({ result }, i) => (\n /* biome-ignore lint/suspicious/noArrayIndexKey: */\n {result}\n ))}\n \n \n \n ,\n createRootFn,\n )\n}\n"],"names":["useStyles","makeStyles","rulerLabel","fontSize","fontWeight","lineHeight","letterSpacing","sliceArcPath","slice","radiusPx","startBase","endBase","flipped","startXY","bpToXY","endXY","Math","abs","bpPerRadian","PI","join","ElisionRulerArc","observer","model","region","theme","useTheme","modelRadiusPx","endRadians","startRadians","polarToCartesian","widthPx","largeArc","centerRadians","regionCount","Number","regions","length","toLocaleString","React","RulerLabel","text","view","maxWidthPx","radians","title","color","palette","primary","_extends","d","getStrokeProps","secondary","strokeWidth","strokeDasharray","fill","classes","textXY","x","y","className","textAnchor","dominantBaseline","transform","radToDeg","getFillProps","offsetRadians","RegionRulerArc","assembly","getSession","assemblyManager","get","assemblyName","getRefNameColor","refName","undefined","makeContrasting","background","paper","error","start","end","stroke","elided","key","assembleLocString","SVGBackground","width","height","shift","stripAlpha","default","async","renderToSvg","opts","when","initialized","themeName","Wrapper","children","session","allThemes","createRootFn","getRoot","tracks","displayResults","Promise","all","map","display","track","displays","ready","result","renderSvg","staticSlices","centerXY","deg","renderToStaticMarkup","ThemeProvider","createJBrowseTheme","xmlns","xmlnsXlink","viewBox","toString","i","Ruler"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3116.fa0100fd.chunk.js --- a/x/static/js/3116.fa0100fd.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3116],{93116:(e,n,t)=>{t.r(n),t.d(n,{default:()=>f});var a=t(7552),l=t(29499),r=t(99123),o=t(58507),i=t(5401),s=t(49823),c=t(32761),u=t(55252),h=t(58701),m=t(59773);function g({onConfirm:e,onCancel:n,reason:t}){return a.createElement(s.Dialog,{open:!0,maxWidth:"xl",title:"Warning"},a.createElement(l.A,null,a.createElement(h.A,{fontSize:"large"}),a.createElement(r.A,null,"This link contains a cross origin config that has the following unknown plugins:",a.createElement("ul",null,t.map((e=>a.createElement("li",{key:JSON.stringify(e)},(0,m.lc)(e))))),"Please ensure you trust the source of this link.")),a.createElement(o.A,null,a.createElement(i.A,{color:"primary",variant:"contained",onClick:()=>{e()}},"Yes, I trust it"),a.createElement(i.A,{color:"secondary",variant:"contained",onClick:()=>{n()}},"Cancel")))}function f({loader:e,handleClose:n}){const{sessionTriaged:t}=e;return t?a.createElement(g,{onConfirm:async()=>{const a=JSON.parse(JSON.stringify(t.snap));await e.fetchPlugins(a),e.setConfigSnapshot({...a,id:(0,c.Ak)()}),n()},onCancel:async()=>{await(0,u.A)(),n()},reason:t.reason}):null}},58701:(e,n,t)=>{t.d(n,{A:()=>r});var a=t(74893),l=t(69500);const r=(0,a.A)((0,l.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning")}}]); -//# sourceMappingURL=3116.fa0100fd.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3116.fa0100fd.chunk.js.map --- a/x/static/js/3116.fa0100fd.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3116.fa0100fd.chunk.js","mappings":"uQAkBA,SAASA,GAAoB,UAC3BC,EAAS,SACTC,EAAQ,OACRC,IAMA,OACEC,EAAAA,cAACC,EAAAA,OAAM,CAACC,MAAI,EAACC,SAAS,KAAKC,MAAM,WAC/BJ,EAAAA,cAACK,EAAAA,EAAa,KACZL,EAAAA,cAACM,EAAAA,EAAW,CAACC,SAAS,UACtBP,EAAAA,cAACQ,EAAAA,EAAiB,KAAC,mFAGjBR,EAAAA,cAAA,UACGD,EAAOU,KAAIC,GACVV,EAAAA,cAAA,MAAIW,IAAKC,KAAKC,UAAUH,KAAKI,EAAAA,EAAAA,IAAwBJ,OAEpD,qDAITV,EAAAA,cAACe,EAAAA,EAAa,KACZf,EAAAA,cAACgB,EAAAA,EAAM,CACLC,MAAM,UACNC,QAAQ,YACRC,QAASA,KACPtB,GAAW,GAEd,mBAGDG,EAAAA,cAACgB,EAAAA,EAAM,CACLC,MAAM,YACNC,QAAQ,YACRC,QAASA,KACPrB,GAAU,GAEb,WAMT,CAEe,SAASsB,GAAc,OACpCC,EAAM,YACNC,IAKA,MAAM,eAAEC,GAAmBF,EAC3B,OAAOE,EACLvB,EAAAA,cAACJ,EAAmB,CAClBC,UAAW2B,UACT,MAAMC,EAAUb,KAAKc,MAAMd,KAAKC,UAAUU,EAAeI,aACnDN,EAAOO,aAAaH,GAC1BJ,EAAOQ,kBAAkB,IAAKJ,EAASK,IAAIC,EAAAA,EAAAA,QAC3CT,GAAa,EAEfxB,SAAU0B,gBACFQ,EAAAA,EAAAA,KACNV,GAAa,EAEfvB,OAAQwB,EAAexB,SAEvB,IACN,C,6DCrFA,SAAe,QAA4B,SAAK,OAAQ,CACtDkC,EAAG,8CACD,U","sources":["components/ConfigWarningDialog.tsx","../../../node_modules/@mui/icons-material/esm/Warning.js"],"sourcesContent":["import React from 'react'\nimport {\n Button,\n DialogActions,\n DialogContent,\n DialogContentText,\n} from '@mui/material'\nimport { Dialog } from '@jbrowse/core/ui'\nimport { nanoid } from '@jbrowse/core/util/nanoid'\nimport factoryReset from '../factoryReset'\nimport { SessionLoaderModel } from '../SessionLoader'\n\nimport WarningIcon from '@mui/icons-material/Warning'\nimport {\n PluginDefinition,\n pluginDescriptionString,\n} from '@jbrowse/core/PluginLoader'\n\nfunction ConfigWarningDialog({\n onConfirm,\n onCancel,\n reason,\n}: {\n onConfirm: () => void\n onCancel: () => void\n reason: PluginDefinition[]\n}) {\n return (\n \n \n \n \n This link contains a cross origin config that has the following\n unknown plugins:\n
    \n {reason.map(r => (\n
  • {pluginDescriptionString(r)}
  • \n ))}\n
\n Please ensure you trust the source of this link.\n
\n
\n \n {\n onConfirm()\n }}\n >\n Yes, I trust it\n \n {\n onCancel()\n }}\n >\n Cancel\n \n \n
\n )\n}\n\nexport default function ConfigTriaged({\n loader,\n handleClose,\n}: {\n loader: SessionLoaderModel\n handleClose: () => void\n}) {\n const { sessionTriaged } = loader\n return sessionTriaged ? (\n {\n const session = JSON.parse(JSON.stringify(sessionTriaged.snap))\n await loader.fetchPlugins(session)\n loader.setConfigSnapshot({ ...session, id: nanoid() })\n handleClose()\n }}\n onCancel={async () => {\n await factoryReset()\n handleClose()\n }}\n reason={sessionTriaged.reason}\n />\n ) : null\n}\n","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z\"\n}), 'Warning');"],"names":["ConfigWarningDialog","onConfirm","onCancel","reason","React","Dialog","open","maxWidth","title","DialogContent","WarningIcon","fontSize","DialogContentText","map","r","key","JSON","stringify","pluginDescriptionString","DialogActions","Button","color","variant","onClick","ConfigTriaged","loader","handleClose","sessionTriaged","async","session","parse","snap","fetchPlugins","setConfigSnapshot","id","nanoid","factoryReset","d"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3120.3940249f.chunk.js --- a/x/static/js/3120.3940249f.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3120],{59773:(e,t,n)=>{n.d(t,{Ay:()=>m,Cx:()=>c,Nz:()=>u,lc:()=>d,rE:()=>l});var r=n(45103),o=n.n(r),s=n(12678),a=n(2862),i=n(99546);function l(e){return(void 0!==e.umdUrl||void 0!==e.url||void 0!==e.umdLoc)&&void 0!==e.name}function c(e){return void 0!==e.esmUrl||void 0!==e.esmLoc}function u(e){return void 0!==e.cjsUrl}function d(e){return l(e)?`UMD plugin ${e.name}`:c(e)?`ESM plugin ${e.esmUrl||e.esmLoc.uri}`:u(e)?`CJS plugin ${e.cjsUrl}`:"unknown plugin"}class m{definitions=[];constructor(e=[],t){this.fetchESM=t?.fetchESM,this.fetchCJS=t?.fetchCJS,this.definitions=JSON.parse(JSON.stringify(e))}async loadCJSPlugin(e,t){const n=new URL(e.cjsUrl,t);if("http:"!==n.protocol&&"https:"!==n.protocol)throw new Error(`Cannot load plugins using protocol "${n.protocol}"`);if(!this.fetchCJS)throw new Error("No fetchCJS callback provided");return this.fetchCJS(n.href)}async loadESMPlugin(e,t){const n="esmUrl"in e?new URL(e.esmUrl,t):new URL(e.esmLoc.uri,e.esmLoc.baseUri);if("http:"!==n.protocol&&"https:"!==n.protocol)throw new Error(`cannot load plugins using protocol "${n.protocol}"`);if(!this.fetchESM)throw new Error("No ESM fetcher installed");const r=await this.fetchESM(n.href);if(!r)throw new Error(`Could not load ESM plugin: ${n}`);return r}async loadUMDPlugin(e,t){const n="url"in e?new URL(e.url,t):"umdUrl"in e?new URL(e.umdUrl,t):new URL(e.umdLoc.uri,e.umdLoc.baseUri);if("http:"!==n.protocol&&"https:"!==n.protocol)throw new Error(`cannot load plugins using protocol "${n.protocol}"`);const r=e.name,a=`JBrowsePlugin${r}`;"undefined"==typeof jest?await async function(e){if(!Boolean("WorkerGlobalScope"in globalThis))return t=e,new Promise(((e,n)=>{o()(t,((t,r)=>{t?n(t):e(r.src)}))}));var t;if(!globalThis.importScripts)throw new Error("cannot figure out how to load external JS scripts in this environment");await globalThis.importScripts(e)}(n.href):globalThis[a]={default:s.A};const i=globalThis[a];if(!i)throw new Error(`Failed to load UMD bundle for ${r}, ${a} is undefined`);return i}async loadPlugin(e,t){let n;if(i.isElectron&&u(e))n=await this.loadCJSPlugin(e,t);else if(c(e))n=await this.loadESMPlugin(e,t);else{if(!l(e))throw!i.isElectron&&u(e)?new Error(`CommonJS plugin found, but not in a NodeJS environment: ${JSON.stringify(e)}`):new Error(`Could not determine plugin type: ${JSON.stringify(e)}`);n=await this.loadUMDPlugin(e,t)}if(!n.default)throw new Error(`${d(e)} does not have a default export, cannot load`);return n.default}installGlobalReExports(e){return e.JBrowseExports=Object.fromEntries(Object.entries(a.A).map((([e,t])=>[e,t]))),this}async load(e){return Promise.all(this.definitions.map((async t=>({plugin:await this.loadPlugin(t,e),definition:t}))))}}},68584:(e,t,n)=>{n.r(t),n.d(t,{ConfigurationReference:()=>r.A,ConfigurationSchema:()=>r.S,getConf:()=>o.FI,getTypeNamesFromExplicitlyTypedUnion:()=>o.JC,isBareConfigurationSchemaType:()=>o.C$,isConfigurationModel:()=>o.wo,isConfigurationSchemaType:()=>o.oG,isConfigurationSlotType:()=>o.Rg,readConfObject:()=>o.QZ});var r=n(42498),o=n(35254)},3496:(e,t,n)=>{n.d(t,{LS:()=>o,cK:()=>a,pZ:()=>i});var r=n(26257);function o(e={}){return`${(0,r.A)(e)}`}let s={};async function a(e,t,n){const r=o(n);if(!s[r]){const o=n?.type;if(!o)throw new Error(`could not determine adapter type from adapter config snapshot ${JSON.stringify(n)}`);const i=e.getAdapterType(o);if(!i)throw new Error(`unknown data adapter type ${o}`);const l=i.configSchema.create(n,{pluginManager:e}),c=a.bind(null,e,t),u=new(await i.getAdapterClass())(l,c,e);s[r]={dataAdapter:u,sessionIds:new Set([t])}}const i=s[r];return i.sessionIds.add(t),i}function i(e){let t=0;const n=Object.keys(e);if(1===n.length&&"sessionId"===n[0]){const{sessionId:n}=e;Object.entries(s).forEach((([e,r])=>{r.sessionIds.delete(n),0===r.sessionIds.size&&(t+=1,delete s[e])}))}else Object.values(s).forEach((t=>{const n=e.regions||(e.region?[e.region]:[]);for(const e of n)void 0!==e.refName&&t.dataAdapter.freeResources(e)}));return t}},24388:(e,t,n)=>{n.d(t,{SF:()=>l,bR:()=>s,bw:()=>a});let r=0;const o=new WeakMap;function s(e,t){let n=o.get(e);return n||(r+=1,o.set(e,r),n=r,e.addEventListener("abort",(()=>{const n=o.get(e);void 0!==n&&t("signalAbort",n)}))),{abortSignalId:n}}function a(e){return"object"==typeof e&&null!==e&&"abortSignalId"in e&&"number"==typeof e.abortSignalId}const i=new Map;function l({abortSignalId:e}){let t=i.get(e);return t||(t=new AbortController,i.set(e,t)),t.signal}},85206:(e,t,n)=>{n.d(t,{A:()=>A});var r=n(7552),o=n(29629),s=n(66765),a=n(81453),i=n(2051),l=n(24387),c=n(55851),u=n(8463),d=n(45266),m=n(63672),p=n(68850);function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t{t&&s.close(),e?.(n)}}))}function y({title:e,Icon:t,inset:n,popupId:i,...l}){const{parentPopupState:c}=(0,r.useContext)(g),u=(0,d.T6)({popupId:i,variant:"popover",parentPopupState:c});return r.createElement(r.Fragment,null,r.createElement(o.A,f({},(0,d._k)(u),(0,d.oe)(u)),t?r.createElement(s.A,null,r.createElement(t,null)):null,r.createElement(a.A,{primary:e,inset:n}),r.createElement(p.A,null)),r.createElement(w,f({},l,{anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"left"},popupState:u})))}function w({popupState:e,onMenuItemClick:t,menuItems:n,classes:o,...s}){const{rootPopupState:a}=(0,r.useContext)(g),i=(0,r.useMemo)((()=>({rootPopupState:a||e,parentPopupState:e})),[a,e]);return r.createElement(g.Provider,{value:i},r.createElement(m.A,f({},s,(0,d.NA)(e))))}function b({popupState:e,onMenuItemClick:t,menuItems:n,...o}){const{rootPopupState:s}=(0,r.useContext)(g),a=(0,r.useMemo)((()=>({rootPopupState:s||e,parentPopupState:e})),[s,e]);return r.createElement(g.Provider,{value:a},r.createElement(i.A,f({},o,(0,d.NA)(e))))}function v({item:e}){return"subMenu"in e?r.createElement(u.m,{type:"subMenu"}):"checkbox"===e.type||"radio"===e.type?r.createElement(u.m,{type:e.type,checked:e.checked,disabled:e.disabled}):null}function S({onMenuItemClick:e,closeAfterItemClick:t,menuItems:n,...o}){const i=n.some((e=>"icon"in e&&e.icon));return r.createElement(r.Fragment,null,n.sort(((e,t)=>(t.priority||0)-(e.priority||0))).map(((n,u)=>{return"subMenu"in n?r.createElement(y,{key:`subMenu-${n.label}-${u}`,popupId:`subMenu-${n.label}`,title:n.label,Icon:n.icon,inset:i&&!n.icon,onMenuItemClick:e,menuItems:n.subMenu},r.createElement(S,f({},o,{closeAfterItemClick:t,onMenuItemClick:e,menuItems:n.subMenu}))):"divider"===n.type?r.createElement(l.A,{key:`divider-${JSON.stringify(n)}-${u}`,component:"li"}):"subHeader"===n.type?r.createElement(c.A,{key:`subHeader-${n.label}-${u}`},n.label):r.createElement(h,{key:`${n.label}-${u}`,closeAfterItemClick:t,onClick:"onClick"in n?(d=n.onClick,t=>{e(t,d)}):void 0,disabled:Boolean(n.disabled)},n.icon?r.createElement(s.A,null,r.createElement(n.icon,null)):null," ",r.createElement(a.A,{primary:n.label,secondary:n.subLabel,inset:i&&!n.icon}),r.createElement("div",{style:{flexGrow:1,minWidth:10}}),r.createElement(v,{item:n}));var d})))}const A=function(e){const{closeAfterItemClick:t=!0,...n}=e;return r.createElement(b,n,r.createElement(S,f({},n,{closeAfterItemClick:t})))}},92562:(e,t,n)=>{n.d(t,{A:()=>v});var r=n(7552),o=n(48231),s=n(40985),a=n(2187),i=n(43163),l=n(61723),c=n(24387),u=n(20139),d=n(89022),m=n(68446),p=n(75785),f=n(82725),g=n(30157),h=n(38033),y=n(13476);const w=(0,p.n9)()((e=>({closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}})));function b({error:e}){return r.createElement("div",{style:{width:800,margin:40}},r.createElement(h.A,{error:e}))}const v=(0,m.observer)((function(e){const{classes:t}=w(),{title:n,header:m,children:p,onClose:h}=e,v=(0,o.A)();return r.createElement(s.A,e,r.createElement(a.A,null,r.isValidElement(m)?m:r.createElement(i.A,null,r.createElement(y.A,{html:n||""}),h?r.createElement(l.A,{className:t.closeButton,onClick:()=>{h()}},r.createElement(g.A,null)):null),r.createElement(c.A,null),r.createElement(f.tH,{FallbackComponent:b},r.createElement(u.A,{theme:(0,d.A)(v,{components:{MuiInputBase:{styleOverrides:{input:{boxSizing:"content-box!important"}}}}})},p))))}))},88373:(e,t,n)=>{n.d(t,{A:()=>d});var r=n(7552),o=n(48231),s=n(36715),a=n(98879),i=n(75785),l=n(40085);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t({input:{},inputBase:{},typography:{top:6,left:2,position:"absolute",whiteSpace:"nowrap",visibility:"hidden"},inputRoot:{padding:e.spacing(.5)},inputFocused:{borderStyle:"solid",borderWidth:2}}))),d=r.forwardRef((function(e,t){const{value:n,setValue:i,variant:d,...m}=e,[p,{width:f}]=(0,l.A)(),[g,h]=(0,r.useState)(),[y,w]=(0,r.useState)(null),[b,v]=(0,r.useState)(!1);(0,r.useEffect)((()=>{b&&(y?.blur(),v(!1))}),[b,y]);const{classes:S}=u(e,{props:e}),A=(0,o.A)(),C=void 0===g?n:g;return r.createElement("div",c({},m,{ref:t}),r.createElement("div",{style:{position:"relative"}},r.createElement(s.A,{ref:p,component:"span",variant:d,className:S.typography},C)),r.createElement(a.Ay,{inputRef:e=>{w(e)},className:S.inputBase,inputProps:{style:{width:f,...d&&"inherit"!==d?A.typography[d]:{}}},classes:{input:S.input,root:S.inputRoot,focused:S.inputFocused},value:C,onChange:e=>{h(e.target.value)},onKeyDown:e=>{"Enter"===e.key?y?.blur():"Escape"===e.key&&(h(void 0),v(!0))},onBlur:()=>{i(g||n||""),h(void 0)}}))}))},38033:(e,t,n)=>{n.d(t,{A:()=>p});var r=n(7552),o=n(89003),s=n(61723),a=n(75785),i=n(21311),l=n(4902),c=n(71627);const u=(0,r.lazy)((()=>Promise.all([n.e(9245),n.e(4630)]).then(n.bind(n,74630)))),d=(0,a.n9)()((e=>({bg:{background:e.palette.divider,border:"1px solid black",margin:20},iconFloat:{float:"right",marginLeft:100}})));function m({error:e,onReset:t}){const{classes:n}=d(),[a,i]=(0,r.useState)(!1);return r.createElement("div",{className:n.iconFloat},"object"==typeof e&&e&&"stack"in e?r.createElement(o.A,{title:"Get stack trace"},r.createElement(s.A,{onClick:()=>{i(!0)},color:"primary"},r.createElement(c.A,null))):null,t?r.createElement(o.A,{title:"Retry"},r.createElement(s.A,{onClick:t,color:"primary"},r.createElement(l.A,null))):null,a?r.createElement(r.Suspense,{fallback:null},r.createElement(u,{error:e,onClose:()=>{i(!1)}})):null)}const p=function({error:e,onReset:t}){const{classes:n}=d(),o=`${e}`,s=o.indexOf("expected an instance of"),a=-1!==s?o.slice(0,s):o,l=function(e){let t="";const n=e.indexOf("is not assignable");if(-1!==n){const r=e.slice(0,n+17),o=/.*at path "(.*)" snapshot `(.*)` is not assignable/m.exec(r);o&&(e=`Failed to load element at ${o[1]}...Failed element had snapshot`,t=o[2]);const s=/.*snapshot `(.*)` is not assignable/.exec(r);s&&(e="Failed to load element...Failed element had snapshot",t=s[1])}return t}(o);return r.createElement(i.A,null,a.slice(0,1e4),r.createElement(m,{error:e,onReset:t}),l?r.createElement("pre",{className:n.bg},JSON.stringify(JSON.parse(l),null,2)):null)}},69941:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(7552),o=n(29499),s=n(99123),a=n(58507),i=n(5401),l=n(92562);function c({onClose:e,open:t,onFactoryReset:n}){function c(t){"reset"===t&&n(),e()}return r.createElement(l.A,{title:"Reset",onClose:()=>{c()},open:t},r.createElement(o.A,null,r.createElement(s.A,null,"Are you sure you want to reset? This will restore the default configuration.")),r.createElement(a.A,null,r.createElement(i.A,{onClick:()=>{c()},color:"primary"},"Cancel"),r.createElement(i.A,{onClick:()=>{c("reset")},color:"primary",variant:"contained"},"OK")))}},90542:(e,t,n)=>{n.d(t,{A8:()=>l,PM:()=>s,jT:()=>a,xU:()=>i});var r=n(2859),o=n(7552);function s(e){return o.createElement(r.A,e,o.createElement("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function a(e){return o.createElement(r.A,e,o.createElement("path",{d:"M19.31 18.9L22.39 22L21 23.39L17.88 20.32C17.19 20.75 16.37 21 15.5 21C13 21 11 19 11 16.5C11 14 13 12 15.5 12C18 12 20 14 20 16.5C20 17.38 19.75 18.21 19.31 18.9M15.5 19C16.88 19 18 17.88 18 16.5C18 15.12 16.88 14 15.5 14C14.12 14 13 15.12 13 16.5C13 17.88 14.12 19 15.5 19M21 4V6H3V4H21M3 16V14H9V16H3M3 11V9H21V11H18.97C17.96 10.37 16.77 10 15.5 10C14.23 10 13.04 10.37 12.03 11H3Z"}))}function i(e){return o.createElement(r.A,e,o.createElement("path",{d:"M21 19v-2H8v2h13m0-6v-2H8v2h13M8 7h13V5H8v2M4 5v2h2V5H4M3 5a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1V5m1 6v2h2v-2H4m-1 0a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1v-2m1 6v2h2v-2H4m-1 0a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1v-2z"}))}function l(e){return o.createElement(r.A,e,o.createElement("path",{d:"M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1z"}))}},34895:(e,t,n)=>{n.d(t,{P:()=>a,R:()=>s});var r=n(7552);function o(e){return"black"===e?{midnight:"#808080",forrest:"#666666",grape:"#4d4d4d",mandarin:"#333333",gray:"#1a1a1a"}:"white"===e?{midnight:"#ffffff",forrest:"#e6e6e6",grape:"#cccccc",mandarin:"#b3b3b3",gray:"#999999"}:{midnight:"#0d233f",forrest:"#135560",grape:"#721e63",mandarin:"#ffb11d",gray:"#dadada"}}function s({variant:e}){return r.createElement("svg",{viewBox:"0 0 175 175"},r.createElement(i,{variant:e}))}function a({variant:e}){return r.createElement("svg",{viewBox:"0 0 641 175"},r.createElement(l,{variant:e}),r.createElement(i,{variant:e}))}function i({variant:e}){const t=o(e);return r.createElement(r.Fragment,null,r.createElement("path",{style:{fill:t.midnight},d:"M120.5,57.5c.168,0,.333.012.5.013V40.506c-.167,0-.333-.006-.5-.006a98.325,98.325,0,0,0-77.4,37.565q-2.664,3.378-5.023,6.994l14.206,9.327Q54.043,91.709,56,89.179A81.363,81.363,0,0,1,120.5,57.5Z"}),r.createElement("path",{style:{fill:t.forrest},d:"M148.668,86.223c.308.133.6.283.908.42l6.746-15.618c-.153-.067-.3-.143-.454-.21a81.36,81.36,0,0,0-71.777,3.5q-2.8,1.544-5.469,3.309l9.249,14.054A63.93,63.93,0,0,1,148.668,86.223Z"}),r.createElement("path",{style:{fill:t.grape},d:"M170.894,109.37A63.929,63.929,0,0,0,113.4,88.861l2.336,15.474a48.456,48.456,0,0,1,44.322,15.42c.111.125.214.255.324.381l11.16-10C171.323,109.879,171.118,109.62,170.894,109.37Z"}),r.createElement("path",{style:{fill:t.mandarin},d:"M150.921,150.314c.04.163.07.326.107.489l16.509-4.058c-.039-.163-.067-.326-.107-.489A48.457,48.457,0,0,0,135.575,111.8l-5.515,15.591A32.466,32.466,0,0,1,150.921,150.314Z"}),r.createElement("path",{style:{fill:t.gray},d:"M134.1,138.129l-9.779,13.213a32.486,32.486,0,0,1,7.823,14.463l15.147.852c.012-.166.032-.331.041-.5A32.464,32.464,0,0,0,134.1,138.129Z"}))}function l({variant:e}){const t=o(e);return r.createElement("g",{"aria-label":"JBrowse",transform:"translate(213.084 144.241)",style:{fill:t.midnight}},r.createElement("path",{d:"m 26.355,-71.505 v 54.075 2.835 q 0,6.825 -0.42,10.185 -0.735,5.67 -2.835,9.135 -3.255,5.355 -8.505,8.4 -4.83,2.73 -11.55,3.57 L 1.47,11.76 Q 7.35,10.185 9.24,4.2 10.605,-0.105 10.605,-9.975 v -5.565 -55.965 q 1.785,0 4.62,0.315 2.835,0.21 3.255,0.21 1.785,0 2.94,-0.105 4.515,-0.42 4.935,-0.42 z"}),r.createElement("path",{d:"m 60.68836,-65.415 v 24.78 h 3.255 q 2.94,0 4.935,-0.525 2.1,-0.525 3.885,-2.1 2.31,-1.995 3.36,-4.83 1.155,-2.835 1.155,-6.09 0,-5.565 -2.94,-8.61 -2.94,-3.045 -8.295,-3.045 -2.52,0 -5.355,0.42 z m 0,30.87 V -6.09 h 5.25 q 4.725,0 8.505,-3.675 3.885,-3.78 3.885,-10.08 0,-8.19 -4.62,-11.655 -4.095,-3.045 -13.02,-3.045 z M 44.93836,0 v -71.505 h 27.09 q 9.135,0 14.385,3.255 6.51,3.99 6.51,12.6 0,7.035 -5.25,11.655 -4.62,4.095 -11.97,5.145 v 0.945 q 7.56,0.735 12.285,3.99 6.615,4.62 6.615,13.335 0,10.185 -7.98,15.75 -6.93,4.83 -17.43,4.83 z"}),r.createElement("path",{d:"M 109.44281,0.525 V -50.4 q 1.785,0.21 3.99,0.42 2.31,0.105 3.255,0.105 2.31,0 4.2,-0.21 1.89,-0.21 3.045,-0.315 v 13.02 q 1.89,-6.51 5.46,-9.87 4.41,-4.095 11.655,-4.095 -0.315,2.73 -0.42,6.825 -0.105,3.99 -0.105,7.455 l -0.945,0.84 q -0.945,-0.735 -2.415,-1.05 -1.47,-0.315 -2.94,-0.315 -3.57,0 -6.195,1.89 -2.52,1.785 -3.465,5.04 -0.42,1.155 -0.525,3.15 -0.105,1.89 -0.105,4.515 v 4.515 19.005 q -1.785,-0.21 -2.625,-0.21 -3.675,-0.315 -4.62,-0.315 -2.31,0 -4.2,0.21 -1.89,0.21 -3.045,0.315 z"}),r.createElement("path",{d:"m 173.77337,1.47 q -11.655,0 -18.585,-6.825 -6.93,-6.825 -6.93,-18.48 0,-12.6 6.72,-20.055 6.825,-7.455 18.9,-7.455 11.97,0 18.9,6.72 6.93,6.72 6.93,18.48 0,12.285 -6.72,19.74 -7.14,7.875 -19.215,7.875 z m 0.735,-48.09 q -5.88,0 -8.505,6.51 -2.205,5.565 -2.205,15.96 0,8.19 1.47,12.915 2.415,7.98 8.505,7.98 5.565,0 8.19,-7.875 2.205,-6.51 2.205,-16.695 0,-8.505 -2.1,-13.23 -2.52,-5.565 -7.56,-5.565 z"}),r.createElement("path",{d:"m 222.03563,-50.4 10.5,36.015 q 3.675,-11.235 5.67,-17.85 2.415,-8.085 5.04,-18.165 1.05,0.105 3.045,0.315 2.1,0.21 2.835,0.21 1.995,0 3.15,-0.105 1.26,-0.21 2.73,-0.42 l 10.71,36.015 q 5.88,-17.43 10.71,-36.015 l 4.2,0.315 4.095,-0.315 q -5.145,13.125 -9.135,24.57 -5.04,14.28 -8.505,26.355 -1.89,-0.21 -3.36,-0.42 -1.365,-0.105 -2.205,-0.105 -1.89,0 -3.36,0.21 -1.365,0.21 -2.31,0.315 l -10.605,-34.755 q -4.41,13.65 -6.72,21.105 -2.31,7.35 -4.095,13.65 -1.89,-0.21 -3.36,-0.42 -1.365,-0.105 -2.31,-0.105 -1.995,0 -3.465,0.21 -1.365,0.21 -2.31,0.315 -3.78,-12.81 -5.04,-17.01 -2.205,-7.245 -5.46,-17.01 -2.835,-8.4 -5.88,-16.905 1.575,0 4.305,0.315 2.73,0.21 3.36,0.21 1.47,0 4.305,-0.21 2.835,-0.315 3.465,-0.315 z"}),r.createElement("path",{d:"m 292.84172,-12.81 h 2.625 q 1.47,4.095 4.62,6.51 3.15,2.415 7.35,2.415 2.94,0 5.46,-1.785 2.625,-1.89 2.625,-4.62 0,-3.885 -6.195,-6.615 -10.395,-4.62 -11.655,-5.46 -6.405,-4.515 -6.405,-12.285 0,-7.77 5.25,-12.18 5.25,-4.515 12.81,-4.515 3.99,0 8.085,1.365 4.095,1.26 7.14,3.57 l -2.52,9.24 h -2.94 q -0.63,-3.57 -3.57,-6.195 -2.835,-2.625 -6.405,-2.625 -3.15,0 -5.46,1.575 -2.31,1.47 -2.31,4.515 0,3.885 6.405,6.51 10.185,4.095 11.865,5.25 6.405,4.41 6.405,12.81 0,7.455 -5.46,12.18 -5.355,4.62 -14.805,4.62 -8.19,0 -14.49,-4.305 z"}),r.createElement("path",{d:"m 349.61228,-29.925 h 15.54 q 0,-6.51 -1.05,-10.395 -1.68,-6.3 -5.88,-6.3 -5.04,0 -7.14,6.195 -1.47,4.305 -1.47,10.5 z m 30.03,5.04 h -30.03 q 0,9.135 3.045,13.86 3.57,5.67 11.55,5.67 3.255,0 6.405,-1.26 3.15,-1.26 5.88,-3.465 l 1.26,0.945 -2.31,5.88 q -6.72,4.725 -15.015,4.725 -12.915,0 -19.635,-7.245 -6.72,-7.245 -6.72,-20.37 0,-11.235 6.405,-18.165 6.51,-7.035 17.64,-7.035 11.655,0 16.905,7.56 4.62,6.615 4.62,18.9 z"}))}},8463:(e,t,n)=>{n.d(t,{A:()=>k,m:()=>A});var r=n(7552),o=n(6679),s=n(24387),a=n(55851),i=n(66765),l=n(29629),c=n(81453),u=n(4407),d=n(943),m=n(9555),p=n(75785),f=n(12756),g=n(49296),h=n(23224),y=n(69381),w=n(70996),b=n(99546);function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t{N||(m(void 0),f(void 0))}),[N]),(0,r.useEffect)((()=>{const e=N&&Boolean(n);let t;return e&&!g?t=setTimeout((()=>{h(!0)}),300):!e&&g&&(t=setTimeout((()=>{h(!1)}),300)),()=>{clearTimeout(t)}}),[g,N,n]),(0,r.useEffect)((()=>{if(R){const e=R.getBoundingClientRect();v&&e.top===v.top&&e.left+e.width===v.left||k({top:e.top,left:e.left+e.width})}else v||k({})}),[v,R]);const $=P.some((e=>"icon"in e&&e.icon)),D={},L=r.createElement(r.Fragment,null,r.createElement(o.A,{autoFocusItem:N&&!g,dense:!0},P.sort(((e,t)=>(t.priority||0)-(e.priority||0))).map(((e,t)=>{if("divider"===e.type)return r.createElement(s.A,{key:`divider-${JSON.stringify(e)}-${t}`,component:"li"});if("subHeader"===e.type)return r.createElement(a.A,{key:`subHeader-${e.label}-${t}`},e.label);let n=null,o=null;if(e.icon){const t=e.icon;n=r.createElement(i.A,null,r.createElement(t,null))}"subMenu"in e?o=r.createElement(A,{type:"subMenu"}):"checkbox"!==e.type&&"radio"!==e.type||(o=r.createElement(A,{type:e.type,checked:e.checked,disabled:e.disabled}));const u="onClick"in e?(d=e.onClick,e=>{I(e,d)}):void 0;var d;return r.createElement(l.A,{key:e.id||String(e.label),style:D,selected:t===y,onClick:u,onMouseMove:n=>{n.currentTarget!==document.activeElement&&(n.currentTarget.focus(),w(t)),"subMenu"in e?p!==t&&(m(n.currentTarget),f(t)):(m(void 0),f(void 0))},onKeyDown:n=>{switch(n.key){case"ArrowLeft":case"Escape":x?.(n,"escapeKeyDown");break;case"ArrowUp":w(function(e,t){return(0,b.findLastIndex)(e.slice(0,t),C)}(P,t));break;case"ArrowDown":{const e=function(e,t){const n=e.slice(t+1).findIndex(C);return-1===n?n:t+1+n}(P,t);w(e);break}default:!("subMenu"in e)||"ArrowRight"!==n.key&&"Enter"!==n.key||(m(n.currentTarget),f(t),h(!0))}},disabled:Boolean(e.disabled)},n,r.createElement(c.A,{primary:e.label,secondary:e.subLabel,inset:$&&!e.icon}),o)}))),P.map(((e,t)=>{let o=null;return"subMenu"in e&&(o=r.createElement(E,{key:e.id||String(e.label),anchorEl:n,open:g&&p===t,onClose:()=>{h(!1),m(void 0)},onMenuItemClick:I,menuItems:e.subMenu})),o})));return O?L:r.createElement(u.A,{in:N,style:{transformOrigin:"0 0 0"},ref:t},r.createElement(d.A,{elevation:8,ref:T,className:M.paper,style:{...v}},L))})),k=function(e){const{open:t,onClose:n,menuItems:o,onMenuItemClick:s,...a}=e;return r.createElement(m.Ay,v({open:t,onClose:n,anchorOrigin:{vertical:"bottom",horizontal:"right",...a.anchorOrigin},transformOrigin:{vertical:"top",horizontal:"left",...a.transformOrigin}},a),r.createElement(E,{open:t,onClose:n,menuItems:o,onMenuItemClick:s,top:!0}))}},66684:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(7552);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{function n(n){n.preventDefault();const r=t?n.clientX:n.clientY,o=d.current-r,s=r-m.current;m.current=r,e(s,o)}function r(){u(!1)}return c?(window.addEventListener("mousemove",n,!0),window.addEventListener("mouseup",r,!0),()=>{window.removeEventListener("mousemove",n,!0),window.removeEventListener("mouseup",r,!0)}):()=>{}}),[c,e,t]),g=n?t?p.flexbox_verticalHandle:p.flexbox_horizontalHandle:t?p.verticalHandle:p.horizontalHandle,r.createElement("div",o({"data-resizer":"true",onMouseDown:e=>{e.preventDefault();const n=t?e.clientX:e.clientY;d.current=n,m.current=n,u(!0),i?.(e)},className:f(g,a)},l))}},87686:(e,t,n)=>{n.r(t),n.d(t,{default:()=>u});var r=n(7552),o=n(68446),s=n(29499),a=n(36715),i=n(58507),l=n(5401),c=n(92562);const u=(0,o.observer)((function({model:e,handleClose:t}){return r.createElement(c.A,{maxWidth:"xl",open:!0,onClose:t,title:"Reference sequence"},r.createElement(s.A,null,r.createElement(a.A,null,"Are you sure you want to return to the import form? This will lose your current view")),r.createElement(i.A,null,r.createElement(l.A,{onClick:()=>{e.clearView(),t()},variant:"contained",color:"primary",autoFocus:!0},"OK"),r.createElement(l.A,{onClick:()=>{t()},color:"secondary",variant:"contained"},"Cancel")))}))},13476:(e,t,n)=>{n.d(t,{A:()=>d});var r=n(7552),o=n(10424),s=n.n(o),a=n(53778),i=n.n(a),l=n(99546);let c=!1;const u=new RegExp(["a","b","br","code","div","em","h1","h2","h3","h4","h5","h6","i","img","li","p","pre","span","small","strong","table","tbody","sup","sub","td","tfoot","th","thead","tr","u","ul"].map((e=>`<${e}\\b[^>]*>`)).join("|"),"i");function d({html:e,className:t}){const n=(0,l.linkify)(e),o=(a=n,u.test(a)?n:s()(n));var a;return c||(c=!0,i().addHook("afterSanitizeAttributes",(e=>{"A"===e.tagName&&(e.setAttribute("rel","noopener noreferrer"),e.setAttribute("target","_blank"))}))),r.createElement("span",{className:t,dangerouslySetInnerHTML:{__html:i().sanitize(o)}})}},49823:(e,t,n)=>{n.r(t),n.d(t,{AssemblySelector:()=>j,CascadingMenu:()=>z.A,Dialog:()=>W.A,EditableTypography:()=>U.A,ErrorMessage:()=>F.A,FactoryResetDialog:()=>V.default,FatalErrorDialog:()=>B.A,FileSelector:()=>oe,LoadingEllipses:()=>se.A,LogoFull:()=>M.P,Logomark:()=>M.R,Menu:()=>ae.A,MenuItemEndDecoration:()=>ae.m,PrerenderedCanvas:()=>le,ResizeHandle:()=>ue.A,ReturnToImportFormDialog:()=>ce.default,SanitizedHTML:()=>de.A,createJBrowseBaseTheme:()=>E,createJBrowseTheme:()=>k,defaultThemes:()=>A});var r=n(53954),o=n(46033),s=n(37231),a=n(8998),i=n(55194),l=n(89022),c=n(35068),u=n.n(c);const d=(0,l.A)(),m="#0D233F",p="#721E63",f=d.palette.augmentColor({color:{main:"#135560"}}),g=d.palette.augmentColor({color:{main:"#FFB11D"}}),h={A:d.palette.augmentColor({color:r.A}),C:d.palette.augmentColor({color:o.A}),G:d.palette.augmentColor({color:s.A}),T:d.palette.augmentColor({color:a.A})},y=[null,d.palette.augmentColor({color:{main:"#FF8080"}}),d.palette.augmentColor({color:{main:"#80FF80"}}),d.palette.augmentColor({color:{main:"#8080FF"}}),d.palette.augmentColor({color:{main:"#8080FF"}}),d.palette.augmentColor({color:{main:"#80FF80"}}),d.palette.augmentColor({color:{main:"#FF8080"}})],w=[null,d.palette.augmentColor({color:{main:"#8f8f8f"}}),d.palette.augmentColor({color:{main:"#adadad"}}),d.palette.augmentColor({color:{main:"#d8d8d8"}}),d.palette.augmentColor({color:{main:"#d8d8d8"}}),d.palette.augmentColor({color:{main:"#adadad"}}),d.palette.augmentColor({color:{main:"#8f8f8f"}})],b="#e22",v="#3e3";function S(){return{palette:{mode:void 0,primary:{main:m},secondary:{main:p},tertiary:f,quaternary:g,highlight:g,stopCodon:b,startCodon:v,bases:h,frames:w,framesCDS:y},components:{MuiLink:{styleOverrides:{root:({theme:e})=>({color:e.palette.tertiary.main})}}}}}const A={default:{...S(),name:"Default (from config)"},lightStock:{...S(),name:"Light (stock)"},lightMinimal:{name:"Light (minimal)",palette:{primary:{main:i.A[900]},secondary:{main:i.A[800]},tertiary:d.palette.augmentColor({color:{main:i.A[900]}}),quaternary:g,highlight:g,stopCodon:b,startCodon:v,bases:h,frames:w,framesCDS:y}},darkMinimal:{name:"Dark (minimal)",palette:{mode:"dark",primary:{main:i.A[700]},secondary:{main:i.A[800]},tertiary:d.palette.augmentColor({color:{main:i.A[900]}}),quaternary:g,highlight:g,stopCodon:b,startCodon:v,bases:h,frames:w,framesCDS:y}},darkStock:{name:"Dark (stock)",palette:{mode:"dark",primary:{main:m},secondary:{main:p},tertiary:f,quaternary:g,highlight:g,stopCodon:b,startCodon:v,bases:h,frames:w,framesCDS:y},components:{MuiAppBar:{defaultProps:{enableColorOnDark:!0},styleOverrides:{root:({theme:e})=>e.palette.primary.main}}}}};function C(e,t){return t}function E(e){const t={palette:e?.palette,typography:{fontSize:12},spacing:4,components:{MuiButton:{defaultProps:{size:"small"},styleOverrides:{root:({theme:e})=>"dark"===e.palette.mode?{color:e.palette.text.primary}:void 0}},MuiAccordion:{defaultProps:{disableGutters:!0,slotProps:{transition:{timeout:150,unmountOnExit:!0}}}},MuiFilledInput:{defaultProps:{margin:"dense"}},MuiFormControl:{defaultProps:{margin:"dense",size:"small"}},MuiFormHelperText:{defaultProps:{margin:"dense"}},MuiIconButton:{defaultProps:{size:"small"}},MuiInputBase:{defaultProps:{margin:"dense"}},MuiAutocomplete:{defaultProps:{size:"small"}},MuiInputLabel:{defaultProps:{margin:"dense"}},MuiToolbar:{defaultProps:{variant:"dense"}},MuiListItem:{defaultProps:{dense:!0}},MuiOutlinedInput:{defaultProps:{margin:"dense"}},MuiFab:{defaultProps:{size:"small"},styleOverrides:{secondary:{backgroundColor:e?.palette?.quaternary?.main}}},MuiTable:{defaultProps:{size:"small"}},MuiPopover:{defaultProps:{transitionDuration:0}},MuiMenu:{defaultProps:{transitionDuration:0}},MuiMenuItem:{defaultProps:{dense:!0}},MuiTextField:{defaultProps:{margin:"dense",variant:"standard"}},MuiLink:{styleOverrides:{root:({theme:e})=>({color:e.palette.text.secondary})}},MuiCheckbox:{styleOverrides:{root:({theme:e})=>"dark"===e.palette.mode?{color:e.palette.text.secondary,"&.Mui-checked":{color:e.palette.text.secondary}}:void 0}},MuiRadio:{styleOverrides:{root:({theme:e})=>"dark"===e.palette.mode?{color:e.palette.text.secondary,"&.Mui-checked":{color:e.palette.text.secondary}}:void 0}},MuiFormLabel:{styleOverrides:{root:({theme:e})=>"dark"===e.palette.mode?{color:e.palette.text.secondary,"&.Mui-focused":{color:e.palette.text.secondary}}:void 0}},MuiAccordionSummary:{styleOverrides:{root:{backgroundColor:e?.palette?.tertiary?.main},content:{color:e?.palette?.tertiary?.contrastText}}},MuiToggleButtonGroup:{defaultProps:{size:"small"}}}};return u()(t,e||{},{arrayMerge:C})}function k(e={},t=A,n="default"){return(0,l.A)(E("default"===n?u()(t.default,T(e),{arrayMerge:C}):function(e={}){return e=T(e),e.palette?.quaternary||(e=u()(e,{palette:{quaternary:d.palette.augmentColor({color:{main:"#aaa"}})}})),e.palette?.tertiary||(e=u()(e,{palette:{tertiary:d.palette.augmentColor({color:{main:"#aaa"}})}})),e}(t[n])))}function T(e={}){return e.palette?.tertiary&&(e=u()(e,{palette:{tertiary:d.palette.augmentColor("color"in e.palette.tertiary?e.palette.tertiary:{color:e.palette.tertiary})}})),e.palette?.quaternary&&(e=u()(e,{palette:{quaternary:d.palette.augmentColor("color"in e.palette.quaternary?e.palette.quaternary:{color:e.palette.quaternary})}})),e}var M=n(34895),P=n(7552),I=n(1343),N=n(29629),x=n(68446),R=n(75785),O=n(68584),$=n(99546);function D(){return D=Object.assign?Object.assign.bind():function(e){for(var t=1;t{p&&p!==n&&t(p)}),[p,t,n]);const f=l.length?"":"No configured assemblies";return P.createElement(I.A,D({select:!0,label:"Assembly",variant:"outlined",helperText:f||a,value:p||"",inputProps:{"data-testid":"assembly-selector"},onChange:e=>{m(e.target.value)},error:!!f,InputProps:r,disabled:!!f,className:i.importFormEntry},o),l.map((e=>{const t=c.get(e),n=t?(0,O.getConf)(t,"displayName"):"";return P.createElement(N.A,{key:e,value:e},n||e)})))}));var z=n(85206),W=n(92562),U=n(88373),F=n(38033),V=n(69941),B=n(56174),q=n(89003),G=n(82620),_=n(17776),H=n(17125),J=n(43787),Q=n(2051),K=n(25467),Y=n(92516),Z=n(43550),X=n(14862),ee=n(32813);function te(){return te=Object.assign?Object.assign.bind():function(e){for(var t=1;tt?`${e.slice(0,Math.max(0,t))}…`:e}const oe=(0,x.observer)((function(e){const{location:t,name:n,description:r,rootModel:o,setLocation:s}=e,a=!t||(0,Y.C1)(t)?"url":"file",[i,l]=(0,P.useState)(t&&"internetAccountId"in t&&t.internetAccountId?t.internetAccountId:a),c=(0,Y.bV)(o)?o.internetAccounts.filter((e=>"HTTPBasicInternetAccount"!==e.type)):[],[u,d]=(0,$.useLocalStorage)("fileSelector-recentlyUsedInternetAccounts",[]),m=Object.fromEntries(c.map((e=>[e.internetAccountId,e]))),p=[...new Set(c.map((e=>e.internetAccountId)))].sort(((e,t)=>u.indexOf(e)-u.indexOf(t))),f=p.slice(0,2),g=p.slice(2),[h,y]=(0,P.useState)(null),w=m[i],b=(0,P.useCallback)((e=>{s({...e,...w&&(0,Y.C1)(e)?{internetAccountId:w.internetAccountId}:{}})}),[s,w]);(0,P.useEffect)((()=>{w&&(0,Y.C1)(t)&&t.internetAccountId!==w.internetAccountId&&b(t)}),[t,w,b]);let v=P.createElement(X.A,te({},e,{setLocation:b,label:w?.selectorLabel}));if("file"===i&&(v=P.createElement(Z.A,e)),w?.SelectorComponent){const{SelectorComponent:t}=w;v=P.createElement(t,te({},e,{setLocation:b}))}return P.createElement(P.Fragment,null,P.createElement(_.A,{display:"flex"},P.createElement(H.A,{shrink:!0},n)),P.createElement(_.A,{display:"flex",flexDirection:"row"},P.createElement(_.A,null,P.createElement(J.A,{value:i,exclusive:!0,onChange:(e,n)=>{d([...new Set([n,...u].filter($.notEmpty))]),n&&l(n),(0,Y.C1)(t)&&b(t)},"aria-label":"file, url, or account picker"},new URLSearchParams(window.location.search).get("adminKey")?null:P.createElement(G.A,{value:"file","aria-label":"local file"},"File"),P.createElement(G.A,{value:"url","aria-label":"url"},"URL"),f.map((e=>{const{internetAccountId:t,name:n,toggleContents:r}=m[e];return P.createElement(ne,{key:e,value:t,title:n},"string"==typeof r?re(r,5):r||re(n,5))})),g.length>0?P.createElement(G.A,{onClick:e=>{y(e.target)},selected:!1},"More",P.createElement(ee.A,null)):null),P.createElement(Q.A,{open:Boolean(h),anchorEl:h,onClose:()=>{y(null)},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"}},g.map((e=>{const{internetAccountId:t,name:n}=m[e];return P.createElement(N.A,{key:e,value:t,onClick:()=>{d([...new Set([t,...u].filter($.notEmpty))]),l(t),y(null)}},n)}))))),v,P.createElement(K.A,null,r))}));var se=n(37565),ae=n(8463),ie=n(18010);const le=function(e){const{width:t,height:n,highResolutionScaling:r=1,style:o={},imageData:s,blockKey:a,showSoftClip:i}=e,[l,c]=(0,P.useState)(!1),u=(0,P.useRef)(null);return(0,P.useEffect)((()=>{if(!s)return;const e=u.current;if(!e)return;const t=e.getContext("2d");t&&((0,ie.pv)(s,t),c(!0))}),[s]),P.createElement("canvas",{"data-testid":["prerendered_canvas",i?"softclipped":"",a,l?"done":""].filter((e=>!!e)).join("_"),ref:u,width:t*r,height:n*r,style:{width:t,height:n,...o}})};var ce=n(87686),ue=n(66684),de=n(13476)},43334:(e,t,n)=>{n.d(t,{A:()=>r});class r extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)||(yield e)}for(const e of this.cache){const[t,n]=e;this._deleteIfExpired(t,n)||(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(!this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){const r="number"==typeof n&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;this.cache.has(e)?this.cache.set(e,{value:t,expiry:r}):this._set(e,{value:t,expiry:r})}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,n]=e;this._deleteIfExpired(t,n)||(yield[t,n.value])}for(const e of this.oldCache){const[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)||(yield[t,n.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const n=e[t],[r,o]=n;this._deleteIfExpired(r,o)||(yield[r,o.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const n=e[t],[r,o]=n;this.cache.has(r)||this._deleteIfExpired(r,o)||(yield[r,o.value])}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[n,r]of this.entriesAscending())e.call(t,r,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}},99546:(e,t,n)=>{n.r(t),n.d(t,{AuthNeededError:()=>l._u,ImageBitmapType:()=>h.bV,ReactRendering:()=>y.aE,RetryError:()=>l.J_,SimpleFeature:()=>w.A,TextSearchManager:()=>l.rz,abortBreakPoint:()=>c.Yo,assembleLocString:()=>N,assembleLocStringFast:()=>x,avg:()=>De,blobToDataURL:()=>b.y,bpSpanPx:()=>G,bpToPx:()=>j,bytesForRegions:()=>he,cartesianToPolar:()=>B,checkAbortSignal:()=>c.pB,clamp:()=>L,coarseStripHTML:()=>Te,compareLocStrings:()=>D,compareLocs:()=>$,complement:()=>oe,createCanvas:()=>h.Nw,createImageBitmap:()=>h.T9,dedupe:()=>g.Q,defaultCodonTable:()=>de,defaultStarts:()=>ce,defaultStops:()=>ue,degToRad:()=>F,doesIntersect2:()=>f.R6,drawImageOntoCanvasContext:()=>h.pv,featureSpanPx:()=>q,findLast:()=>J,findLastIndex:()=>H,findParentThat:()=>C,findParentThatIs:()=>k,gatherOverlaps:()=>We,generateCodonTable:()=>me,getBpDisplayStr:()=>we,getContainingDisplay:()=>I,getContainingTrack:()=>P,getContainingView:()=>M,getEnv:()=>Ie,getFillProps:()=>Ve,getFrame:()=>le,getLayoutId:()=>Ae,getSerializedSvg:()=>y.Jy,getSession:()=>T,getStr:()=>ke,getStrokeProps:()=>Fe,getTickDisplayStr:()=>ve,getUriLink:()=>Ee,getViewParams:()=>Se,groupBy:()=>Le,hashCode:()=>fe,intersection2:()=>f.ky,isAbortException:()=>c.Kp,isAbstractMenuManager:()=>l.Nh,isAppRootModel:()=>l.bV,isAuthNeededException:()=>l.ZL,isBlobLocation:()=>l.rF,isContainedWithin:()=>f.Xx,isDisplayModel:()=>l.Uy,isElectron:()=>te,isFeature:()=>w.l,isGzip:()=>qe,isLocalPathLocation:()=>l.EV,isRetryException:()=>l.yH,isRootModelWithInternetAccounts:()=>l.lL,isSelectionContainer:()=>l.mY,isSessionModel:()=>l.Y$,isSessionModelWithConfigEditing:()=>l.u3,isSessionModelWithConnectionEditing:()=>l.gx,isSessionModelWithConnections:()=>l.BY,isSessionModelWithWidgets:()=>l.lO,isSessionWithAddTracks:()=>l.QW,isSessionWithSessionPlugins:()=>l.zA,isSessionWithShareURL:()=>l.xv,isSupportedIndexingAdapter:()=>ye,isTrackModel:()=>l.xU,isTrackViewModel:()=>l.EO,isUriLocation:()=>l.C1,isViewContainer:()=>l.DW,isViewModel:()=>l.Tl,iterMap:()=>_,linkify:()=>Me,localStorageGetItem:()=>Ne,localStorageSetItem:()=>xe,makeAbortError:()=>c.zm,makeAbortableReaction:()=>Q,max:()=>Re,measureGridWidth:()=>Pe,measureText:()=>ie,mergeIntervals:()=>ze,min:()=>Oe,minmax:()=>Z,notEmpty:()=>je,objectHash:()=>ge,observeAbortSignal:()=>c.R1,parseLocString:()=>O,parseLocStringOneBased:()=>R,polarToCartesian:()=>V,rIC:()=>se,radToDeg:()=>U,renameRegionIfNeeded:()=>K,renameRegionsIfNeeded:()=>Y,renderToAbstractCanvas:()=>y.u1,renderToStaticMarkup:()=>Be,revcom:()=>ne,reverse:()=>re,shorten:()=>X,springAnimate:()=>E,stringify:()=>ee,stripAlpha:()=>Ue,sum:()=>$e,toLocale:()=>be,updateStatus:()=>pe,useDebounce:()=>v,useDebouncedCallback:()=>A,useLocalStorage:()=>Ce,useWidthSetter:()=>S,when:()=>p.z,whenPresent:()=>p.I});var r=n(7552),o=n(503),s=n.n(o),a=n(36422),i=n(42489),l=n(92516),c=n(20166),u=n(40085),d=n(87485),m=n(28485),p=n(1864),f=n(32595),g=n(3519),h=n(18010),y=n(98506),w=n(6434),b=n(31673);function v(e,t){const[n,o]=(0,r.useState)(e);return(0,r.useEffect)((()=>{const n=setTimeout((()=>{o(e)}),t);return()=>{clearTimeout(n)}}),[e,t]),n}function S(e,t){const[n,{width:o}]=(0,u.A)();return(0,r.useEffect)((()=>{o&&(0,a.isAlive)(e)&&requestAnimationFrame((()=>{e.setWidth(o-2*Number.parseInt(t,10))}))}),[t,e,o]),n}function A(e,t=400){const n=(0,r.useRef)(),o=(0,r.useRef)();return(0,r.useEffect)((()=>{o.current&&clearTimeout(o.current)}),[]),function(...r){n.current=r,o.current&&clearTimeout(o.current),o.current=setTimeout((()=>{n.current&&e(...n.current)}),t)}}function C(e,t){if(!(0,a.hasParent)(e))throw new Error("node does not have parent");let n=(0,a.getParent)(e);for(;n&&(0,a.isAlive)(n);){if(t(n))return n;if(!(0,a.hasParent)(n))break;n=(0,a.getParent)(n)}throw new Error("no matching node found")}function E(e,t,n,r=()=>{},o=0,s=400,a=20,i=!0){let l;function c(u){const d=Date.now();let m=u.lastPosition,p=u.lastTime||d,f=u.lastVelocity||0;d>p+64&&(p=d);const g=Math.floor(d-p);for(let e=0;et:m{c({lastPosition:m,lastTime:d,lastVelocity:f})})))}return o||(o=Math.abs(t-e)/1e3),[()=>{c({lastPosition:e})},()=>{cancelAnimationFrame(l)}]}function k(e,t){return C(e,t)}function T(e){try{return k(e,l.Y$)}catch(e){throw new Error("no session model found!")}}function M(e){try{return k(e,l.Tl)}catch(e){throw new Error("no containing view found")}}function P(e){try{return k(e,l.xU)}catch(e){throw new Error("no containing track found")}}function I(e){try{return k(e,l.Uy)}catch(e){throw new Error("no containing display found")}}function N(e){return x(e,be)}function x(e,t=e=>e){const{assemblyName:n,refName:r,start:o,end:s,reversed:a}=e,i=n?`{${n}}`:"";let l,c;l=void 0!==o?`:${t(o+1)}`:void 0!==s?":1":"",c=void 0!==s?void 0!==o&&o+1===s?"":`..${t(s)}`:void 0!==o?"..":"";let u="";return a&&(u="[rev]"),`${i}${r}${l}${c}${u}`}function R(e,t){if(!e)throw new Error("no location string provided, could not parse");let n=!1;e.endsWith("[rev]")&&(n=!0,e=e.replace(/\[rev]$/,"")),e=e.replace(/\s/,"");const r=/({(.+)})?(.+)/.exec(e);if(!r)throw new Error(`invalid location string: "${e}"`);const[,,o,s]=r,a=o,i=s;if(!a&&i.startsWith("{}"))throw new Error(`no assembly name was provided in location "${i}"`);const l=i.lastIndexOf(":");if(-1===l){if(t(i,a))return{assemblyName:a,refName:i,reversed:n};throw new Error(`Unknown reference sequence "${i}"`)}const c=i.slice(0,l),u=i.slice(l+1);if(t(c,a)&&t(i,a))throw new Error(`ambiguous location string: "${e}"`);if(t(c,a)){if(!u)return{assemblyName:a,refName:c,reversed:n};{const t=/^(-?(\d+|\d{1,3}(,\d{3})*))(\.\.|-)(-?(\d+|\d{1,3}(,\d{3})*))$/.exec(u),r=/^(-?(\d+|\d{1,3}(,\d{3})*))(\.\.|-)?$/.exec(u);if(t){const[,e,,,,r]=t;if(void 0!==e&&void 0!==r)return{assemblyName:a,refName:c,start:+e.replaceAll(",",""),end:+r.replaceAll(",",""),reversed:n}}else{if(!r)throw new Error(`could not parse range "${u}" on location "${e}"`);{const[,e,,,t]=r;if(void 0!==e)return t?{assemblyName:a,refName:c,start:+e.replaceAll(",",""),reversed:n}:{assemblyName:a,refName:c,start:+e.replaceAll(",",""),end:+e.replaceAll(",",""),reversed:n}}}}}else if(t(i,a))return{assemblyName:a,refName:i,reversed:n};throw new Error(`unknown reference sequence name in location "${e}"`)}function O(e,t){const n=R(e,t);return"number"==typeof n.start&&(n.start-=1),n}function $(e,t){const n=e.assemblyName||t.assemblyName?(e.assemblyName||"").localeCompare(t.assemblyName||""):0;if(n)return n;const r=e.refName||t.refName?(e.refName||"").localeCompare(t.refName||""):0;if(r)return r;if(void 0!==e.start&&void 0!==t.start){const n=e.start-t.start;if(n)return n}if(void 0!==e.end&&void 0!==t.end){const n=e.end-t.end;if(n)return n}return 0}function D(e,t,n){return $(O(e,n),O(t,n))}function L(e,t,n){return en?n:e}function j(e,{reversed:t,end:n=0,start:r=0},o){return s=(t?n-e:e-r)/o,Math.round(10*s)/10;var s}const z=180/Math.PI,W=Math.PI/180;function U(e){return e*z%360}function F(e){return e*W%(2*Math.PI)}function V(e,t){return[e*Math.cos(t),e*Math.sin(t)]}function B(e,t){return[Math.sqrt(e*e+t*t),Math.atan(t/e)]}function q(e,t,n){return G(e.get("start"),e.get("end"),t,n)}function G(e,t,n,r){const o=j(e,n,r),s=j(t,n,r);return n.reversed?[s,o]:[o,s]}function _(e,t,n){const r=Array.from({length:n||0});let o=0;for(const n of e)r[o]=t(n),o+=1;return r}function H(e,t){let n=e.length;for(;n--;)if(t(e[n],n,e))return n;return-1}function J(e,t){let n=e.length;for(;n--;)if(t(e[n],n,e))return e[n]}function Q(e,t,n,r,o,s,l){let u;function d(t){(0,c.Kp)(t)||((0,a.isAlive)(e)?l(t):console.error(t))}(0,a.addDisposer)(e,(0,i.reaction)((()=>{try{return t(e)}catch(e){return void d(e)}}),(async(t,r)=>{if(u&&!u.signal.aborted&&u.abort(),!(0,a.isAlive)(e))return;u=new AbortController;const i=u;o(i);try{const o=await n(t,i.signal,e,r);(0,c.pB)(i.signal),(0,a.isAlive)(e)&&s(o)}catch(e){i.signal.aborted||i.abort(),d(e)}}),r)),(0,a.addDisposer)(e,(()=>{u&&!u.signal.aborted&&u.abort()}))}function K(e,t){if((0,a.isStateTreeNode)(t)&&!(0,a.isAlive)(t))return t;if(e?.[t.refName]){const n=e[(t=(0,a.isStateTreeNode)(t)?{...(0,a.getSnapshot)(t)}:{...t}).refName];if(n)return{...t,refName:n,originalRefName:t.refName}}return t}async function Y(e,t){const{regions:n=[],adapterConfig:r}=t;if(!t.sessionId)throw new Error("sessionId is required");const o=n.map((e=>e.assemblyName)),s=Object.fromEntries(await Promise.all([...new Set(o)].map((async n=>[n,await e.getRefNameMapForAdapter(r,n,t)]))));return{...t,regions:n.map(((e,t)=>K(s[o[t]],e)))}}function Z(e,t){return[Math.min(e,t),Math.max(e,t)]}function X(e,t=70,n=30){return e.length>t?`${e.slice(0,n)}...${e.slice(-n)}`:e}function ee({refName:e,coord:t,assemblyName:n,oob:r},o){return[n&&o?`{${n}}`:"",e?`${X(e)}:${be(t)}${r?" (out of bounds)":""}`:""].join("")}const te=/electron/i.test("undefined"!=typeof navigator?navigator.userAgent:"");function ne(e){return re(oe(e))}function re(e){return e.split("").reverse().join("")}const oe=(()=>{const e=/[ACGT]/gi,t={S:"S",w:"w",T:"A",r:"y",a:"t",N:"N",K:"M",x:"x",d:"h",Y:"R",V:"B",y:"r",M:"K",h:"d",k:"m",C:"G",g:"c",t:"a",A:"T",n:"n",W:"W",X:"X",m:"k",v:"b",B:"V",s:"s",H:"D",c:"g",D:"H",b:"v",R:"Y",G:"C"};return n=>n.replaceAll(e,(e=>t[e]||""))})(),se="undefined"==typeof jest?"undefined"!=typeof window&&window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout((()=>{e()}),1):e=>{e()},ae=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2796875,.2765625,.3546875,.5546875,.5546875,.8890625,.665625,.190625,.3328125,.3328125,.3890625,.5828125,.2765625,.3328125,.2765625,.3015625,.5546875,.5546875,.5546875,.5546875,.5546875,.5546875,.5546875,.5546875,.5546875,.5546875,.2765625,.2765625,.584375,.5828125,.584375,.5546875,1.0140625,.665625,.665625,.721875,.721875,.665625,.609375,.7765625,.721875,.2765625,.5,.665625,.5546875,.8328125,.721875,.7765625,.665625,.7765625,.721875,.665625,.609375,.721875,.665625,.94375,.665625,.665625,.609375,.2765625,.3546875,.2765625,.4765625,.5546875,.3328125,.5546875,.5546875,.5,.5546875,.5546875,.2765625,.5546875,.5546875,.221875,.240625,.5,.221875,.8328125,.5546875,.5546875,.5546875,.5546875,.3328125,.5,.2765625,.5546875,.5,.721875,.5,.5,.5,.3546875,.259375,.353125,.5890625];function ie(e,t=10){const n=String(e);let r=0;for(let e=0;e{const r=e[n],o=[];for(let e=0;e<3;e++){const t=n.charAt(e);o[e]=[],o[e][0]=t.toUpperCase(),o[e][1]=t.toLowerCase()}for(let e=0;e<2;e++){const n=o[0][e];for(let e=0;e<2;e++){const s=o[1][e];for(let e=0;e<2;e++){const a=o[2][e];t[n+s+a]=r}}}})),t}async function pe(e,t,n){t(e);const r=await n();return t(""),r}function fe(e){let t=0;if(0===e.length)return t;for(let n=0;nt.blocksForRange(e.refName,e.start,e.end))))).flat().map((e=>({start:e.minv.blockPosition,end:e.maxv.blockPosition+65535}))).reduce(((e,t)=>e+t.end-t.start),0)}function ye(e=""){return["Gff3TabixAdapter","VcfTabixAdapter","Gff3Adapter","VcfAdapter"].includes(e)}function we(e){return Math.floor(e/1e6)>0?`${Number.parseFloat((e/1e6).toPrecision(3))}Mbp`:Math.floor(e/1e3)>0?`${Number.parseFloat((e/1e3).toPrecision(3))}Kbp`:`${be(Math.floor(e))}bp`}function be(e){return e.toLocaleString("en-US")}function ve(e,t){return Math.floor(t/1e3)>0?`${be(Number.parseFloat((e/1e6).toFixed(2)))}M`:be(Math.floor(e))}function Se(e,t){const{dynamicBlocks:n,staticBlocks:r,offsetPx:o}=M(e),s=n?.contentBlocks[0]||{},a=r?.contentBlocks[0]||{},i=r?.contentBlocks[1]||{};return{offsetPx:t?0:o-a.offsetPx,offsetPx1:t?0:o-i.offsetPx,start:s.start,end:s.end}}function Ae({sessionId:e,layoutId:t}){return`${e}-${t}`}function Ce(e,t){const[n,o]=(0,r.useState)((()=>{if("undefined"==typeof window)return t;try{const n=window.localStorage.getItem(e);return n?JSON.parse(n):t}catch(e){return console.error(e),t}}));return[n,t=>{try{const r=t instanceof Function?t(n):t;o(r),"undefined"!=typeof window&&window.localStorage.setItem(e,JSON.stringify(r))}catch(e){console.error(e)}}]}function Ee(e){const{uri:t,baseUri:n=""}=e;let r;try{r=new URL(t,n).href}catch(e){r=t}return r}function ke(e){return s()(e)?(0,l.C1)(e)?Ee(e):JSON.stringify(e):String(e)}function Te(e){return e.replaceAll(/(<([^>]+)>)/gi,"")}function Me(e){return e.replaceAll(/(^|[\s\n]|<[A-Za-z]*\/?>)((?:https?|ftp):\/\/[-A-Z0-9+\u0026\u2019@#/%?=()~_|!:,.;]*[-A-Z0-9+\u0026@#/%=~()_|])/gi,"$1$2")}function Pe(e,t){const{padding:n=30,minWidth:r=80,fontSize:o=12,maxWidth:s=1e3,stripHTML:a=!1}=t||{};return Re(e.map((e=>ke(e))).map((e=>a?Te(e):e)).map((e=>ie(e,o))).map((e=>Math.min(Math.max(e+n,r),s))))}function Ie(e){return(0,a.getEnv)(e)}function Ne(e){return"undefined"!=typeof localStorage?localStorage.getItem(e):void 0}function xe(e,t){"undefined"!=typeof localStorage&&localStorage.setItem(e,t)}function Re(e,t=Number.NEGATIVE_INFINITY){let n=t;for(const t of e)n=t>n?t:n;return n}function Oe(e,t=Number.POSITIVE_INFINITY){let n=t;for(const t of e)n=te.start-t.start)),n.push(e[0]);for(let o=1;oze(e.sort(((e,t)=>e.start-t.start)),t)))}function Ue(e){return(0,d.M)(e).alpha(1).toHex()}function Fe(e){const t=(0,d.M)(e);return{strokeOpacity:t.alpha(),stroke:t.alpha(1).toHex()}}function Ve(e){const t=(0,d.M)(e);return{fillOpacity:t.alpha(),fill:t.alpha(1).toHex()}}function Be(e,t){const n=document.createElement("div");return(0,m.flushSync)((()=>{t?t(n).render(e):(0,m.render)(e,n)})),n.innerHTML.replaceAll(/\brgba\((.+?),[^,]+?\)/g,"rgb($1)")}function qe(e){return 31===e[0]&&139===e[1]&&8===e[2]}},91468:(e,t,n)=>{n.r(t),n.d(t,{UNKNOWN:()=>u,UNSUPPORTED:()=>d,generateUnknownTrackConf:()=>E,generateUnsupportedTrackConf:()=>C,getBlob:()=>p,getBlobMap:()=>f,getConfAssemblyNames:()=>i,getFileName:()=>v,getParentRenderProps:()=>c,getRpcSessionId:()=>l,getTrackAssemblyNames:()=>a,getTrackName:()=>k,guessAdapter:()=>S,guessTrackType:()=>A,makeIndex:()=>w,makeIndexType:()=>b,setBlobMap:()=>g,storeBlobLocation:()=>y});var r=n(36422),o=n(99546),s=n(68584);function a(e){return i(e.configuration)}function i(e){const t=(0,s.readConfObject)(e,"assemblyNames");if(!t){const t=(0,r.getParent)(e);if("sequence"in t)return[(0,s.readConfObject)(t,"name")];throw new Error("unknown assembly names")}return t}function l(e){let t;for(let n=e;!(0,r.isRoot)(n);n=(0,r.getParent)(n))"rpcSessionId"in n&&(t=n.rpcSessionId);if(!t)throw new Error("getRpcSessionId failed, no parent node in the state tree has an `rpcSessionId` attribute");return t}function c(e){for(let t=(0,r.getParent)(e);!(0,r.isRoot)(t);t=(0,r.getParent)(t))if("renderProps"in t)return t.renderProps();return{}}const u="UNKNOWN",d="UNSUPPORTED";let m={};function p(e){return m[e]}function f(){return m}function g(e){m=e}let h=0;function y(e){if("blob"in e){const t=`b${+Date.now()}-${h++}`;return m[t]=e.blob,{name:e.blob.name,blobId:t,locationType:"BlobLocation"}}return e}function w(e,t){return"uri"in e?{uri:e.uri+t,locationType:"UriLocation"}:"localPath"in e?{localPath:e.localPath+t,locationType:"LocalPathLocation"}:e}function b(e,t,n){return e?.toUpperCase().endsWith(t)?t:n}function v(e){const t="uri"in e?e.uri:void 0,n="localPath"in e?e.localPath:void 0,r="blobId"in e?e:void 0;return r?.name||t?.slice(t.lastIndexOf("/")+1)||n?.slice(n.replace(/\\/g,"/").lastIndexOf("/")+1)||""}function S(e,t,n,r){if(r){const{pluginManager:s}=(0,o.getEnv)(r),a=s.evaluateExtensionPoint("Core-guessAdapterForLocation",((e,t,n)=>{}))(e,t,n);if(a)return a}return{type:u}}function A(e,t){if(t){const n=(0,o.getSession)(t),r=(0,o.getEnv)(n).pluginManager.evaluateExtensionPoint("Core-guessTrackTypeForLocation",(e=>{}))(e);if(r)return r}return"FeatureTrack"}function C(e,t,n){const r={type:"FeatureTrack",name:`${e} (Unsupported)`,description:`Support not yet implemented for "${t}"`,category:n,trackId:""};return r.trackId=(0,o.objectHash)(r),r}function E(e,t,n){const r={type:"FeatureTrack",name:`${e} (Unknown)`,description:`Could not determine track type for "${t}"`,category:n,trackId:""};return r.trackId=(0,o.objectHash)(r),r}function k(e,t){const n=(0,s.readConfObject)(e,"name");if(!n&&"ReferenceSequenceTrack"===(0,s.readConfObject)(e,"type")){const n=t.assemblies.find((t=>t.sequence===e));return n?`Reference sequence (${(0,s.readConfObject)(n,"displayName")||(0,s.readConfObject)(n,"name")})`:"Reference sequence"}return n}},8832:(e,t,n)=>{n.r(t),n.d(t,{BlobLocation:()=>c,ElementId:()=>s,FileLocation:()=>m,LocalPathLocation:()=>l,NoAssemblyRegion:()=>a,Region:()=>i,UriLocation:()=>d,UriLocationRaw:()=>u});var r=n(36422),o=n(32761);const s=r.types.optional(r.types.identifier,(()=>(0,o.Ak)())),a=r.types.model("NoAssemblyRegion",{refName:r.types.string,start:r.types.number,end:r.types.number,reversed:r.types.optional(r.types.boolean,!1)}).actions((e=>({setRefName(t){e.refName=t}}))),i=r.types.compose("Region",a,r.types.model({assemblyName:r.types.string})),l=r.types.model("LocalPathLocation",{locationType:r.types.literal("LocalPathLocation"),localPath:r.types.string}),c=r.types.model("BlobLocation",{locationType:r.types.literal("BlobLocation"),name:r.types.string,blobId:r.types.string}),u=r.types.model("UriLocation",{locationType:r.types.literal("UriLocation"),uri:r.types.string,baseUri:r.types.maybe(r.types.string),internetAccountId:r.types.maybe(r.types.string),internetAccountPreAuthorization:r.types.maybe(r.types.model("InternetAccountPreAuthorization",{internetAccountType:r.types.string,authInfo:r.types.frozen()}))}),d=r.types.snapshotProcessor(u,{postProcessor:e=>{const{baseUri:t,...n}=e;return t?e:n}}),m=r.types.snapshotProcessor(r.types.union(l,d,c),{preProcessor(e){if(!e)return;const{locationType:t,...n}=e;if(!t){const{uri:e,localPath:t,blob:r}=n;let o="";return void 0!==e?o="UriLocation":void 0!==t?o="LocalPathLocation":void 0!==r&&(o="BlobLocation"),{...n,locationType:o}}return e}})},45858:(e,t,n)=>{n.d(t,{DH:()=>s,qk:()=>a});var r=n(36422),o=n(8832);function s(e){return r.types.model({id:o.ElementId,name:r.types.string,margin:0}).volatile((()=>({selection:void 0,hovered:void 0}))).views((e=>({get root(){return(0,r.getParent)(e)}}))).views((e=>({get jbrowse(){return e.root.jbrowse},get rpcManager(){return e.root.rpcManager},get configuration(){return this.jbrowse.configuration},get adminMode(){return e.root.adminMode},get textSearchManager(){return e.root.textSearchManager}}))).views((e=>({get assemblies(){return e.jbrowse.assemblies}}))).actions((e=>({setSelection(t){e.selection=t},clearSelection(){e.selection=void 0},setHovered(t){e.hovered=t}})))}function a(e){return"id"in e&&"name"in e&&"root"in e}},49204:(e,t,n)=>{n.d(t,{F:()=>a,M:()=>i});var r=n(68584),o=n(36422),s=n(45858);function a(e){return o.types.model({connectionInstances:o.types.array(e.pluggableMstType("connection","stateModel"))}).views((e=>({get connections(){const{jbrowse:t}=e;return t.connections}}))).actions((t=>({makeConnection(n,o={}){const s=n.type;if(!s)throw new Error("track configuration has no `type` listed");const a=(0,r.readConfObject)(n,"name");if(!e.getConnectionType(s))throw new Error(`unknown connection type ${s}`);const i=t.connectionInstances.push({...o,name:a,type:s,configuration:n});return t.connectionInstances[i-1]},prepareToBreakConnection(e){const n=t,o=[],s={},a=(0,r.readConfObject)(e,"name"),i=t.connectionInstances.find((e=>e.name===a));if(i){for(const e of i.tracks){const t=n.getReferring(e);n.removeReferring(t,e,o,s)}return[()=>{o.forEach((e=>{e()})),this.breakConnection(e)},s]}},breakConnection(e){const n=(0,r.readConfObject)(e,"name"),o=t.connectionInstances.find((e=>e.name===n));if(!o)throw new Error(`no connection found with name ${n}`);t.connectionInstances.remove(o)},deleteConnection(e){const{jbrowse:n}=t;return n.deleteConnectionConf(e)},addConnectionConf(e){const{jbrowse:n}=t;return n.addConnectionConf(e)},clearConnections(){t.connectionInstances.clear()}})))}function i(e){return(0,s.qk)(e)&&"connectionInstances"in e}},16574:(e,t,n)=>{n.d(t,{A:()=>d,m:()=>u});var r=n(7552),o=n(12678),s=n(9043),a=n(62367),i=n(69426),l=n(679),c=n(68384);const u=(0,r.lazy)((()=>n.e(8009).then(n.bind(n,18009))));class d extends o.A{name="DataManagementPlugin";exports={AssemblyManager:u};install(e){(0,s.A)(e),(0,a.A)(e),(0,c.Ay)(e),(0,i.A)(e),(0,l.A)(e)}configure(e){}}},87579:(e,t,n)=>{n.r(t),n.d(t,{Loader:()=>Ht,default:()=>Yt});var r=n(7552),o=n(68446),s=n(82725),a=n(430),i=n(83504),l=n(49823),c=(n(39975),n(25122)),u=n(36422),d=n(20139),m=n(16179),p=n(27281),f=n(75785),g=n(42418),h=n(9937),y=n(5401),w=n(61723),b=n(30157);const v=(0,o.observer)((function({session:e}){const{snackbarMessages:t}=e,n=t.at(-1),o=(t,n)=>{"clickaway"!==n&&e.popSnackbarMessage()};return n?r.createElement(g.A,{open:!0,onClose:o,anchorOrigin:{vertical:"bottom",horizontal:"center"}},r.createElement(h.A,{onClose:o,action:n.action?r.createElement(r.Fragment,null,r.createElement(y.A,{color:"inherit",onClick:e=>{n.action?.onClick(),o()}},n.action.name),r.createElement(w.A,{color:"inherit",onClick:o},r.createElement(b.A,null))):null,severity:n.level||"warning"},n.message)):null}));var S=n(17515),A=n(89003),C=n(72639),E=n(32813),k=n(8463);const T=(0,f.n9)()((e=>({buttonRoot:{"&:hover":{backgroundColor:(0,C.X4)(e.palette.primary.contrastText,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}}}))),M=(0,o.observer)((function({menuTitle:e,session:t,menuItems:n}){const[o,s]=(0,r.useState)(!1),a=(0,r.useRef)(null),{classes:i}=T();function l(){s(!1)}return r.createElement(r.Fragment,null,r.createElement(y.A,{ref:a,onClick:()=>{s(!o)},color:"inherit","data-testid":"dropDownMenuButton",classes:{root:i.buttonRoot}},e,r.createElement(E.A,null)),r.createElement(k.A,{anchorEl:a.current,anchorOrigin:{vertical:"bottom",horizontal:"left"},onMenuItemClick:(e,n)=>{n(t),l()},open:o,onClose:l,menuItems:n}))}));var P=n(88373),I=n(68584),N=n(34895);const x=(0,o.observer)((function({session:e}){const{configuration:t}=e,n=(0,I.readConfObject)(t,"logoPath");return n?.uri?r.createElement("img",{src:n.uri,alt:"Custom logo"}):r.createElement(N.P,{variant:"white"})})),R=(0,f.n9)()((e=>({grow:{flexGrow:1},inputBase:{color:e.palette.primary.contrastText},inputRoot:{"&:hover":{backgroundColor:e.palette.primary.light}},inputFocused:{borderColor:e.palette.secondary.main,backgroundColor:e.palette.primary.light}}))),O=(0,o.observer)((function({session:e,HeaderButtons:t=r.createElement("div",null)}){const{classes:n}=R(),{savedSessionNames:o,name:s,menus:a}=e;return r.createElement(S.A,null,a.map((t=>r.createElement(M,{key:t.label,menuTitle:t.label,menuItems:t.menuItems,session:e}))),r.createElement("div",{className:n.grow}),r.createElement(A.A,{title:"Rename Session",arrow:!0},r.createElement(P.A,{value:s,setValue:t=>{o?.includes(t)?e.notify(`Cannot rename session to "${t}", a saved session with that name already exists`,"warning"):e.renameCurrentSession(t)},variant:"body1",classes:{inputBase:n.inputBase,inputRoot:n.inputRoot,inputFocused:n.inputFocused}})),t,r.createElement("div",{className:n.grow}),r.createElement("div",{style:{width:150,maxHeight:48}},r.createElement(x,{session:e})))})),$=(0,o.observer)((function({session:e}){const{DialogComponent:t,DialogProps:n}=e;return t?r.createElement(r.Suspense,{fallback:null},r.createElement(t,n)):null}));var D=n(62859),L=n(67386);const j=(0,f.n9)()((e=>({left:{zIndex:1e4,position:"fixed",bottom:e.spacing(2),left:e.spacing(2)},right:{zIndex:1e4,position:"fixed",bottom:e.spacing(2),right:e.spacing(2)}}))),z=(0,o.observer)((function({session:e}){const{minimized:t,activeWidgets:n,drawerPosition:o}=e,{classes:s}=j();return n.size>0&&t?r.createElement(A.A,{title:"Open drawer widget"},r.createElement(D.A,{className:"right"===o?s.right:s.left,color:"primary","data-testid":"drawer-maximize",onClick:()=>{e.showWidgetDrawer()}},r.createElement(L.A,null))):null}));var W=n(943),U=n(36715),F=n(48171),V=n(98360),B=n(29629),q=n(99546);const G=(0,f.n9)()((e=>({selectPaper:{padding:e.spacing(4)},m2:{margin:2}}))),_=(0,o.observer)((({session:e})=>{const{classes:t}=G(),{pluginManager:n}=(0,q.getEnv)(e),o=n.getElementTypeRecord("view").all(),[s,a]=(0,r.useState)(o[0]?.name||"");return r.createElement(W.A,{className:t.selectPaper},r.createElement(U.A,null,"Select a view to launch"),r.createElement(F.A,{className:t.m2},r.createElement(V.A,{value:s,onChange:e=>{a(e.target.value)}},o.map((({displayName:e,name:t})=>r.createElement(B.A,{key:t,value:t},e))))),r.createElement(F.A,{className:t.m2},r.createElement(y.A,{onClick:()=>e.addView(s,{}),variant:"contained",color:"primary"},"Launch view")))}));var H=n(38033),J=n(37565),Q=n(48231),K=n(16217),Y=n(374),Z=n(51469),X=n(45266),ee=n(85206),te=n(922),ne=n(91388),re=n(42281),oe=n(66195),se=n(21430);function ae(){return ae=Object.assign?Object.assign.bind():function(e){for(var t=1;t{t()},menuItems:[...o.views.length>1?[{label:"View order",type:"subMenu",subMenu:[{label:"Move view to top",icon:re.A,onClick:()=>{o.moveViewToTop(e.id)}},{label:"Move view up",icon:se.A,onClick:()=>{o.moveViewUp(e.id)}},{label:"Move view down",icon:oe.A,onClick:()=>{o.moveViewDown(e.id)}},{label:"Move view to bottom",icon:ne.A,onClick:()=>{o.moveViewToBottom(e.id)}}]}]:[],...e.menuItems()],popupState:s})))})),le=(0,f.n9)()((e=>({input:{paddingBottom:0,paddingTop:2},inputBase:{color:e.palette.secondary.contrastText},inputRoot:{"&:hover":{backgroundColor:e.palette.secondary.light}},inputFocused:{borderColor:e.palette.primary.main,backgroundColor:e.palette.secondary.light}}))),ce=(0,o.observer)((function({view:e}){const{classes:t}=le();return r.createElement(A.A,{title:"Rename view",arrow:!0},r.createElement(P.A,{value:e.displayName||`${e.assemblyNames?.join(",")||"Untitled view"}${e.minimized?" (minimized)":""}`,setValue:t=>{e.setDisplayName(t)},variant:"body2",classes:{input:t.input,inputBase:t.inputBase,inputRoot:t.inputRoot,inputFocused:t.inputFocused}}))})),ue=(0,f.n9)()((e=>({icon:{color:e.palette.secondary.contrastText},grow:{flexGrow:1},viewHeader:{display:"flex"},viewTitle:{display:"flex",alignItems:"center"}}))),de=(0,o.observer)((function({view:e,onClose:t,onMinimize:n}){const{classes:o}=ue();return r.createElement(r.Fragment,null,r.createElement(w.A,{"data-testid":"minimize_view",onClick:n},e.minimized?r.createElement(Y.A,{className:o.icon,fontSize:"small"}):r.createElement(K.A,{className:o.icon,fontSize:"small"})),r.createElement(w.A,{"data-testid":"close_view",onClick:t},r.createElement(b.A,{className:o.icon,fontSize:"small"})))})),me=(0,o.observer)((function({view:e,onClose:t,onMinimize:n}){const{classes:o}=ue(),s=(0,r.useRef)(null),a=(0,q.getSession)(e);return(0,r.useEffect)((()=>{"undefined"==typeof jest&&s.current?.scrollIntoView({block:"center"})}),[]),r.createElement("div",{ref:s,className:o.viewHeader},r.createElement(ie,{model:e,IconProps:{className:o.icon}}),r.createElement("div",{className:o.grow}),r.createElement("div",{className:o.viewTitle},a.focusedViewId===e.id?r.createElement(Z.A,{className:o.icon,fontSize:"small"}):null,r.createElement(ce,{view:e})),r.createElement("div",{className:o.grow}),r.createElement(de,{onClose:t,onMinimize:n,view:e}))})),pe=(0,f.n9)()((e=>({viewContainer:{overflow:"hidden",margin:e.spacing(.5),padding:`0 ${e.spacing(1)} ${e.spacing(1)}`},focusedView:{background:e.palette.secondary.main},unfocusedView:{background:e.palette.secondary.dark}}))),fe=(0,o.observer)((function({view:e,onClose:t,onMinimize:n,children:o}){const s=(0,Q.A)(),a=(0,q.useWidthSetter)(e,s.spacing(1)),{classes:i,cx:l}=pe(),c=(0,q.getSession)(e);return(0,r.useEffect)((()=>{function t(t){t.target instanceof Element&&a.current?.contains(t.target)&&c.setFocusedViewId(e.id)}return document.addEventListener("mousedown",t),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("keydown",t)}}),[a,c,e]),r.createElement(W.A,{ref:a,elevation:12,className:l(i.viewContainer,c.focusedViewId===e.id?i.focusedView:i.unfocusedView)},r.createElement(me,{view:e,onClose:t,onMinimize:n}),r.createElement(W.A,null,o))})),ge=(0,o.observer)((function({view:e,session:t}){const{pluginManager:n}=(0,q.getEnv)(t),o=n.getViewType(e.type);if(!o)throw new Error(`unknown view type ${e.type}`);const{ReactComponent:a}=o;return r.createElement(fe,{view:e,onClose:()=>{t.removeView(e)},onMinimize:()=>{e.setMinimized(!e.minimized)}},!e.minimized&&r.createElement(s.tH,{FallbackComponent:({error:e})=>r.createElement(H.A,{error:e})},r.createElement(r.Suspense,{fallback:r.createElement(J.A,{variant:"h6"})},r.createElement(a,{model:e,session:t}))))})),he=(0,f.n9)()({viewsContainer:{overflowY:"auto",gridRow:"components"}}),ye=(0,o.observer)((function(e){const{session:t}=e,{views:n}=t,{classes:o}=he();return r.createElement("div",{className:o.viewsContainer},n.length>0?n.map((e=>r.createElement(ge,{key:`view-${e.id}`,view:e,session:t}))):r.createElement(_,e),r.createElement("div",{style:{height:300}}))})),we=(0,r.lazy)((()=>n.e(8076).then(n.bind(n,88076)))),be=(0,f.n9)()((e=>({root:{display:"grid",height:"100vh",width:"100%",colorScheme:e.palette.mode},appContainer:{gridColumn:"main",display:"grid",gridTemplateRows:"[menubar] min-content [components] auto",height:"100vh"},appBar:{flexGrow:1,gridRow:"menubar"}}))),ve=(0,o.observer)((function(e){const{session:t}=e;return r.createElement(r.Suspense,{fallback:null},r.createElement(we,{session:t}))})),Se=(0,o.observer)((function(e){const{session:t}=e,{classes:n}=be(),{minimized:o,visibleWidget:s,drawerWidth:a,drawerPosition:i}=t,l=s&&!o,c=l?`[drawer] ${a}px`:void 0,u="right"===i?["[main] 1fr",c]:[c,"[main] 1fr"];return r.createElement("div",{className:n.root,style:{gridTemplateColumns:u.filter((e=>!!e)).join(" ")}},l&&"left"===i?r.createElement(ve,{session:t}):null,r.createElement($,{session:t}),r.createElement("div",{className:n.appContainer},r.createElement(p.A,{className:n.appBar,position:"static"},r.createElement(O,e)),r.createElement(ye,e)),r.createElement(z,{session:t}),l&&"right"===i?r.createElement(ve,{session:t}):null,r.createElement(v,{session:t}))})),Ae=u.types.model("TimeTraveller",{undoIdx:-1,targetPath:""}).volatile((()=>({history:[],notTrackingUndo:!1}))).views((e=>({get canUndo(){return e.undoIdx>0&&!e.notTrackingUndo},get canRedo(){return e.undoIdx{let t,n,r=!1;return{stopTrackingUndo(){e.notTrackingUndo=!0},resumeTrackingUndo(){e.notTrackingUndo=!1},addUndoState(t){e.notTrackingUndo||(r?r=!1:(e.history.splice(e.undoIdx+1),e.history.push(t),e.history.length>20&&e.history.shift(),e.undoIdx=e.history.length-1))},beforeDestroy(){n()},initialize(){if(t=e.targetPath?(0,u.resolvePath)(e,e.targetPath):(0,u.getEnv)(e).targetStore,!t)throw new Error("Failed to find target store for TimeTraveller. Please provide `targetPath` property, or a `targetStore` in the environment");n=(0,u.onSnapshot)(t,function(e,t=300){let n;return(...r)=>{clearTimeout(n),n=setTimeout((()=>{e(...r)}),t)}}((e=>{this.addUndoState(e)}),300)),0===e.history.length&&this.addUndoState((0,u.getSnapshot)(t))},undo(){e.undoIdx--,r=!0,t&&(0,u.applySnapshot)(t,e.history[e.undoIdx])},redo(){e.undoIdx++,r=!0,t&&(0,u.applySnapshot)(t,e.history[e.undoIdx])}}}));var Ce=n(42489);const Ee=(0,I.ConfigurationSchema)("BaseRpcDriver",{workerCount:{type:"number",description:"The number of workers to use. If 0 (the default) JBrowse will decide how many workers to use.",defaultValue:0}},{explicitlyTyped:!0}),ke=(0,I.ConfigurationSchema)("WebWorkerRpcDriver",{},{baseConfiguration:Ee,explicitlyTyped:!0}),Te=(0,I.ConfigurationSchema)("MainThreadRpcDriver",{},{baseConfiguration:Ee,explicitlyTyped:!0}),Me=(0,I.ConfigurationSchema)("RpcOptions",{defaultDriver:{type:"string",description:"the RPC driver to use for tracks and tasks that are not configured to use a specific RPC backend",defaultValue:"MainThreadRpcDriver"},drivers:u.types.optional(u.types.map(u.types.union(Te,ke)),{MainThreadRpcDriver:{type:"MainThreadRpcDriver"},WebWorkerRpcDriver:{type:"WebWorkerRpcDriver"}})},{actions:e=>({addDriverConfig(t,n){e.drivers.set(t,n)}})});var Pe=n(39154),Ie=n(76519),Ne=n(32761),xe=n(24388);function Re(e){return!("function"==typeof e||e instanceof Error)}class Oe{constructor(e){this.driver=e}async getWorker(){return this.workerP||(this.workerP=this.driver.makeWorker().then((e=>(async function(e,t,n){for(;;)await e.call("ping",[],{timeout:2*t,rpcDriverClassName:n}),await new Promise((e=>setTimeout(e,t)))}(e,this.driver.maxPingTime,this.driver.name).catch((t=>{console.error("worker did not respond, killing and generating new one"),console.error(t),e.destroy(),e.status="killed",e.error=t,this.workerP=void 0})),e))).catch((e=>{throw this.workerP=void 0,e}))),this.workerP}}class $e{lastWorkerAssignment=-1;workerAssignments=new Map;maxPingTime=3e4;workerCheckFrequency=5e3;constructor(e){this.config=e.config}filterArgs(e,t){if(Array.isArray(e))return e.filter((e=>Re(e))).map((e=>this.filterArgs(e,t)));if("object"==typeof e&&null!==e){if(e instanceof AbortSignal)return(0,xe.bR)(e,this.remoteAbort.bind(this,t));if((0,u.isStateTreeNode)(e)&&!(0,u.isAlive)(e))throw new Error("dead state tree node passed to RPC call");return e instanceof File?e:Object.fromEntries(Object.entries(e).filter((e=>Re(e[1]))).map((([e,n])=>[e,this.filterArgs(n,t)])))}return e}async remoteAbort(e,t,n){const r=await this.getWorker(e);await r.call(t,{signalId:n},{timeout:1e6,rpcDriverClassName:this.name})}createWorkerPool(){const e=function(){const e="undefined"!=typeof window,t=e&&"hardwareConcurrency"in window.navigator;return e&&t?window.navigator.hardwareConcurrency:1}(),t=(0,I.readConfObject)(this.config,"workerCount")||(0,q.clamp)(1,Math.max(1,e-1),5),n=[];for(let e=0;e{s=!0}));let m;const p=new Promise(((e,t)=>{m=setInterval((()=>{"killed"===i.status?t(new Error(`operation timed out, worker process stopped responding, ${i.error}`)):s&&e(!0)}),this.workerCheckFrequency)})).finally((()=>{clearInterval(m)})),f=Promise.race([d,p]);return l.deserializeReturn(f,r,this.name)}}class De extends Ie.A.Client{destroy(){this.workers[0].terminate()}async call(e,t,n){const{statusCallback:r,rpcDriverClassName:o}=n,s=`message-${(0,Ne.Ak)()}`,a=e=>{r?.(e)};this.on(s,a);const i=await super.call(e,{...t,channel:s,rpcDriverClassName:o},n);return this.off(s,a),i}}class Le extends $e{name="WebWorkerRpcDriver";constructor(e,t){super(e),this.workerBootConfiguration=t,this.makeWorkerInstance=e.makeWorkerInstance}async makeWorker(){const e=this.makeWorkerInstance(),t=new De({workers:[e]});return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&console.log("console logging the webworker handle avoids the track going into an infinite loading state, this is a hacky workaround for safari",e),new Promise(((e,n)=>{const r=o=>{switch(o.data.message){case"ready":e(t),t.workers[0].removeEventListener("message",r);break;case"readyForConfig":t.workers[0].postMessage({message:"config",config:this.workerBootConfiguration});break;case"error":n((0,Pe.deserializeError)(o.data.error))}};t.workers[0].addEventListener("message",r)}))}}class je{destroy(){}async call(e,t,n={}){}}class ze extends $e{name="MainThreadRpcDriver";constructor(e){super(e),this.makeWorker=async()=>new je}async call(e,t,n,r){if(!t)throw new TypeError("sessionId is required");const o=e.getRpcMethodType(n);if(!o)throw new Error(`unknown RPC method ${n}`);const s=await o.serializeArguments(r,this.name),a=await o.execute(s,this.name);return o.deserializeReturn(a,r,this.name)}}class We{static configSchema=Me;constructor(e,t,n){this.pluginManager=e,this.mainConfiguration=t,this.backendConfigurations=n,this.driverObjects=new Map}getDriver(e){const t=this.driverObjects.get(e);if(t)return t;const n=this.mainConfiguration.drivers.get("WebWorkerRpcDriver");if("MainThreadRpcDriver"===e){const t=this.backendConfigurations.MainThreadRpcDriver;if(!t)throw new Error(`requested RPC driver "${e}" is missing config`);const r=new ze({...t,config:n});return this.driverObjects.set(e,r),r}if("WebWorkerRpcDriver"===e){const t=this.backendConfigurations.WebWorkerRpcDriver;if(!t)throw new Error(`requested RPC driver "${e}" is missing config`);const r=new Le({...t,config:n},{plugins:this.pluginManager.runtimePluginDefinitions,windowHref:window.location.href});return this.driverObjects.set(e,r),r}throw new Error(`requested RPC driver "${e}" is not installed`)}async getDriverForCall(e,t,n){const r=n.rpcDriverName||(0,I.readConfObject)(this.mainConfiguration,"defaultDriver");return this.getDriver(r)}async call(e,t,n,r={}){if(!e)throw new Error("sessionId is required");return(await this.getDriverForCall(e,t,n)).call(this.pluginManager,e,t,n,r)}}var Ue=n(37702);const Fe=(0,f.n9)()((e=>({shareDiv:{textAlign:"center",paddingLeft:"2px"},shareButton:{backgroundColor:(0,C.X4)(e.palette.primary.contrastText,e.palette.action.hoverOpacity),"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}))),Ve=(0,r.lazy)((()=>n.e(7663).then(n.bind(n,47663)))),Be=(0,o.observer)((function(e){const[t,n]=(0,r.useState)(!1),{session:o}=e,{classes:s}=Fe();return r.createElement("div",{className:s.shareDiv},r.createElement(y.A,{onClick:async()=>{n(!0)},size:"small",color:"inherit",startIcon:r.createElement(Ue.A,null),classes:{root:s.shareButton}},"Share"),t?r.createElement(r.Suspense,{fallback:null},r.createElement(Ve,{handleClose:()=>{n(!1)},session:o})):null)})),qe=(0,o.observer)((function({pluginManager:e}){const[t]=(0,a.useQueryParam)("adminKey",a.StringParam),[n]=(0,a.useQueryParam)("adminServer",a.StringParam),[o]=(0,a.useQueryParam)("config",a.StringParam),[,s]=(0,a.useQueryParam)("session",a.StringParam),{rootModel:i}=e,{error:l,jbrowse:c}=i||{},p=i?.session,f=p?.id;if((0,r.useEffect)((()=>{s(`local-${f}`,"replaceIn"),window.JBrowseRootModel=i,window.JBrowseSession=p}),[f,i,p,s]),(0,r.useEffect)((()=>{if(c&&t)return(0,u.onSnapshot)(c,(async e=>{try{const r=await fetch(n||"/updateConfig",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adminKey:t,configPath:o,config:e})});if(!r.ok){const e=await r.text();throw new Error(`HTTP ${r.status} (${e})`)}}catch(e){p?.notify(`Admin server error: ${e}`)}}))}),[c,p,t,n,o]),l)throw l;if(!i)throw new Error("No rootModel found");if(!p)throw new Error("No session found");return r.createElement(d.A,{theme:p.theme},r.createElement(m.Ay,null),r.createElement(Se,{session:p,HeaderButtons:r.createElement(Be,{session:p})}))}));var Ge=n(55252),_e=n(59773),He=n(99834),Je=n(17765),Qe=n(49409);const Ke=u.types.model({configPath:u.types.maybe(u.types.string),sessionQuery:u.types.maybe(u.types.string),password:u.types.maybe(u.types.string),adminKey:u.types.maybe(u.types.string),loc:u.types.maybe(u.types.string),sessionTracks:u.types.maybe(u.types.string),assembly:u.types.maybe(u.types.string),tracks:u.types.maybe(u.types.string),tracklist:u.types.maybe(u.types.boolean),highlight:u.types.maybe(u.types.string),nav:u.types.maybe(u.types.boolean),initialTimestamp:u.types.number}).volatile((()=>({sessionTriaged:void 0,configSnapshot:void 0,sessionSnapshot:void 0,sessionSpec:void 0,blankSession:!1,runtimePlugins:[],sessionPlugins:[],sessionError:void 0,configError:void 0,bc1:window.BroadcastChannel?new window.BroadcastChannel("jb_request_session"):void 0,bc2:window.BroadcastChannel?new window.BroadcastChannel("jb_respond_session"):void 0}))).views((e=>({get isSharedSession(){return!!e.sessionQuery?.startsWith("share-")},get isSpecSession(){return!!e.sessionQuery?.startsWith("spec-")},get isJb1StyleSession(){return!!e.loc},get isEncodedSession(){return!!e.sessionQuery?.startsWith("encoded-")},get isJsonSession(){return!!e.sessionQuery?.startsWith("json-")},get isLocalSession(){return!!e.sessionQuery?.startsWith("local-")},get ready(){return Boolean(this.isSessionLoaded&&!e.configError)},get error(){return e.configError||e.sessionError},get isSessionLoaded(){return Boolean(e.sessionError||e.sessionSnapshot||e.blankSession||e.sessionSpec)},get isConfigLoaded(){return Boolean(e.configError||e.configSnapshot)},get sessionTracksParsed(){return e.sessionTracks?JSON.parse(e.sessionTracks):[]}}))).actions((e=>({setSessionQuery(t){e.sessionQuery=t},setConfigError(t){e.configError=t},setSessionError(t){e.sessionError=t},setRuntimePlugins(t){e.runtimePlugins=t},setSessionPlugins(t){e.sessionPlugins=t},setConfigSnapshot(t){e.configSnapshot=t},setBlankSession(t){e.blankSession=t},setSessionTriaged(t){e.sessionTriaged=t},setSessionSnapshotSuccess(t){e.sessionSnapshot=t}}))).actions((e=>({async fetchPlugins(t){try{const n=new _e.Ay(t.plugins,{fetchESM:e=>import(e)});n.installGlobalReExports(window);const r=await n.load(window.location.href);e.setRuntimePlugins([...r])}catch(t){console.error(t),e.setConfigError(t)}},async fetchSessionPlugins(t){try{const n=new _e.Ay(t.sessionPlugins||[],{fetchESM:e=>import(e)});n.installGlobalReExports(window);const r=await n.load(window.location.href);e.setSessionPlugins([...r])}catch(t){console.error(t),e.setConfigError(t)}},async setSessionSnapshot(t,n){try{const{sessionPlugins:r=[]}=t;await(0,Qe.pS)(r)||n?(await this.fetchSessionPlugins(t),e.setSessionSnapshotSuccess(t)):e.setSessionTriaged({snap:t,origin:"session",reason:r})}catch(t){console.error(t),e.setConfigError(t)}},async fetchConfig(){let{configPath:t=window.__jbrowseConfigPath||"config.json"}=e;window.__jbrowseCacheBuster&&(t+=`?rand=${Math.random()}`);const n=await(0,He.openLocation)({uri:t,locationType:"UriLocation"}).readFile("utf8"),r=JSON.parse(n),o=new URL(t,window.location.href);if((0,Qe.XE)(r,o),o.hostname!==window.location.hostname){const t=r.plugins||[];if(!await(0,Qe.pS)(t))return void e.setSessionTriaged({snap:r,origin:"config",reason:t})}await this.fetchPlugins(r),e.setConfigSnapshot(r)},async fetchSessionStorageSession(){const t=sessionStorage.getItem("current"),n=e.sessionQuery.replace("local-","");if(t){const e=JSON.parse(t).session||{};if(n===e.id)return this.setSessionSnapshot(e)}if(e.bc1){e.bc1.postMessage(n);try{const t=await new Promise(((t,n)=>{e.bc2&&(e.bc2.onmessage=e=>{t(e.data)}),setTimeout((()=>{n(new Error("timeout"))}),1e3)}));await this.setSessionSnapshot({...t,id:(0,Ne.Ak)()})}catch(e){}}throw new Error("Local storage session not found")},async fetchSharedSession(){const t=await(0,Je.Z)(`${(0,Qe.Vr)(e.configSnapshot,"shareURL","https://share.jbrowse.org/api/v1/")}load`,e.sessionQuery||"",e.password||""),n=JSON.parse(await(0,Qe.LP)(t));await this.setSessionSnapshot({...n,id:(0,Ne.Ak)()})},async decodeEncodedUrlSession(){const t=JSON.parse(await(0,Qe.LP)(e.sessionQuery.replace("encoded-","")));await this.setSessionSnapshot({...t,id:(0,Ne.Ak)()})},decodeSessionSpec(){e.sessionQuery&&(e.sessionSpec=JSON.parse(e.sessionQuery.replace("spec-","")))},decodeJb1StyleSession(){const{loc:t,tracks:n,assembly:r,tracklist:o,nav:s,highlight:a,sessionTracksParsed:i}=e;t&&(e.sessionSpec={sessionTracks:i,views:[{type:"LinearGenomeView",tracks:n?.split(","),sessionTracks:i,loc:t,assembly:r,tracklist:o,nav:s,highlight:a?.split(" ")}]})},async decodeJsonUrlSession(){const t=JSON.parse(e.sessionQuery.replace("json-",""));await this.setSessionSnapshot({...t.session,id:(0,Ne.Ak)()})},async afterCreate(){try{const{configPath:t}=e,n=localStorage.getItem(`autosave-${t}`);n&&localStorage.setItem(`previousAutosave-${t}`,n)}catch(e){console.error("failed to create previousAutosave",e)}try{await this.fetchConfig()}catch(t){return console.error(t),void e.setConfigError(t)}(0,u.addDisposer)(e,(0,Ce.autorun)((async()=>{try{const{isLocalSession:t,isEncodedSession:n,isSpecSession:r,isSharedSession:o,isJsonSession:s,isJb1StyleSession:a,sessionQuery:i,configSnapshot:l}=e;if(!l)return;if(e.bc1&&(e.bc1.onmessage=t=>{const n=JSON.parse(sessionStorage.getItem("current")||"{}").session||{};n.id===t.data&&e.bc2&&e.bc2.postMessage(n)}),o)await this.fetchSharedSession();else if(r)this.decodeSessionSpec();else if(a)this.decodeJb1StyleSession();else if(n)await this.decodeEncodedUrlSession();else if(s)await this.decodeJsonUrlSession();else if(t)await this.fetchSessionStorageSession();else{if(i)throw new Error("unrecognized session format");e.setBlankSession(!0)}}catch(t){console.error(t),e.setSessionError(t)}})))}})));function Ye({error:e}){return/HTTP 404 fetching config.json/.exec(`${e}`)?r.createElement("div",null,r.createElement("h1",null,"It worked!"),r.createElement("p",{style:{margin:8,padding:8,background:"#9f9",border:"1px solid green"}},"JBrowse 2 is installed. Your next step is to add and configure an assembly. Follow our"," ",r.createElement("a",{href:"https://jbrowse.org/jb2/docs/quickstart_web/"},"quick start guide")," ","to continue or browse the sample data"," ",r.createElement("a",{href:"?config=test_data/volvox/config.json"},"here"),"."),null):r.createElement("div",null,r.createElement("h1",null,"JBrowse Error"),r.createElement(l.ErrorMessage,{error:e}))}var Ze=n(70129);var Xe=n(45465);var et=n(83059),tt=n(22168),nt=n(96757),rt=n(29078),ot=n(29417),st=n(91194),at=n(550),it=n(39548),lt=n(62424),ct=n(89024),ut=n(73299),dt=n(83105),mt=n(90542);function pt(){return new Worker(new URL(n.p+n.u(2047),n.b))}var ft=n(33039),gt=n.n(ft);window.getSnapshot=u.getSnapshot,window.resolveIdentifier=u.resolveIdentifier;var ht=n(47046),yt=n(43334),wt=n(3496);const bt=new RegExp("[0-9A-Za-z!#$%&+./:;?@^_|~-][0-9A-Za-z!#$%&*+./:;=?@^_|~-]*"),vt=["rgb(153, 102, 0)","rgb(102, 102, 0)","rgb(153, 153, 30)","rgb(204, 0, 0)","rgb(255, 0, 0)","rgb(255, 0, 204)","rgb(165, 132, 132)","rgb(204, 122, 0)","rgb(178, 142, 0)","rgb(153, 153, 0)","rgb(122, 153, 0)","rgb(0, 165, 0)","rgb(53, 128, 0)","rgb(0, 0, 204)","rgb(96, 145, 242)","rgb(107, 142, 178)","rgb(0, 165, 165)","rgb(122, 153, 153)","rgb(153, 0, 204)","rgb(204, 51, 255)","rgb(173, 130, 216)","rgb(102, 102, 102)","rgb(145, 145, 145)","rgb(142, 142, 142)","rgb(142, 142, 107)","rgb(96, 163, 48)"];function St(e){if(!bt.test(e))throw new Error(`Encountered invalid refName: "${e}"`)}function At(e,t){const n=new ht.A({cache:new yt.A({maxSize:1e3}),async fill(e,t,n){const{adapterConf:r,self:o,options:s}=e;return async function(e,t,n,r){const{sessionId:o}=n;await(0,q.when)((()=>!(!e.regions||!e.refNameAliases)),{signal:r,name:"when assembly ready"});const s=await e.rpcManager.call(o||"assemblyRpc","CoreGetRefNames",{adapterConfig:t,signal:r,...n},{timeout:1e6}),{refNameAliases:a}=e;if(!a)throw new Error(`error loading assembly ${e.name}'s refNameAliases`);const i=Object.fromEntries(s.map((t=>(St(t),[e.getCanonicalRefName(t),t]))));return{forwardMap:i,reverseMap:Object.fromEntries(Object.entries(i).map((([e,t])=>[t,e])))}}(o,r,{...s,statusCallback:n},t)}});return u.types.model({configuration:u.types.safeReference(e)}).volatile((()=>({error:void 0,loadingP:void 0,volatileRegions:void 0,refNameAliases:void 0,lowerCaseRefNameAliases:void 0,cytobands:void 0}))).views((e=>({getConf:t=>e.configuration?(0,I.getConf)(e,t):void 0}))).views((e=>({get initialized(){return e.load(),!!e.refNameAliases},get name(){return e.getConf("name")||""},get regions(){return e.load(),e.volatileRegions},get aliases(){return e.getConf("aliases")||[]},get displayName(){return e.getConf("displayName")},hasName(e){return this.allAliases.includes(e)},get allAliases(){return[this.name,...this.aliases]},get allRefNames(){return e.refNameAliases?Object.keys(e.refNameAliases):void 0},get lowerCaseRefNames(){return e.lowerCaseRefNameAliases?Object.keys(e.lowerCaseRefNameAliases):void 0},get allRefNamesWithLowerCase(){return this.allRefNames&&this.lowerCaseRefNames?[...new Set([...this.allRefNames,...this.lowerCaseRefNames])]:void 0},get rpcManager(){return(0,u.getParent)(e,2).rpcManager},get refNameColors(){const t=e.getConf("refNameColors")||[];return 0===t.length?vt:t}}))).views((e=>({get refNames(){return e.regions?.map((e=>e.refName))}}))).views((e=>({getCanonicalRefName(t){if(!e.refNameAliases||!e.lowerCaseRefNameAliases)throw new Error("aliases not loaded, we expect them to be loaded before getCanonicalRefName can be called");return e.refNameAliases[t]||e.lowerCaseRefNameAliases[t]},getRefNameColor(t){if(!e.refNames)return;const n=e.refNames.indexOf(t);return-1===n?void 0:e.refNameColors[n%e.refNameColors.length]},isValidRefName(t){if(!e.refNameAliases)throw new Error("isValidRefName cannot be called yet, the assembly has not finished loading");return!!this.getCanonicalRefName(t)}}))).actions((e=>({setLoaded({regions:e,refNameAliases:t,lowerCaseRefNameAliases:n,cytobands:r}){this.setRegions(e),this.setRefNameAliases(t,n),this.setCytobands(r)},setError(t){e.error=t},setRegions(t){e.volatileRegions=t},setRefNameAliases(t,n){e.refNameAliases=t,e.lowerCaseRefNameAliases=n},setCytobands(t){e.cytobands=t},setLoadingP(t){e.loadingP=t},load(){return e.loadingP||(e.loadingP=this.loadPre().catch((e=>{this.setLoadingP(void 0),this.setError(e)}))),e.loadingP},async loadPre(){const n=e.configuration,r=n?.refNameAliases?.adapter,o=n?.cytobands?.adapter,s=n?.sequence.adapter,a=e.name,i=await async function({config:e,pluginManager:t,signal:n}){const r=t.getAdapterType(e.type);return new(await r.getAdapterClass())(e,void 0,t).getRegions({signal:n})}({config:s,pluginManager:t}),l=i.map((e=>(St(e.refName),{...e,assemblyName:a}))),c={},u=await async function({config:e,pluginManager:t,signal:n}){const r=t.getAdapterType(e.type);return new(await r.getAdapterClass())(e,void 0,t).getRefNameAliases({signal:n})}({config:r,pluginManager:t});for(const{refName:e,aliases:t,override:n}of u){for(const n of t)St(n),c[n]=e;n&&(c[e]=e)}for(const e of l)c[e.refName]||=e.refName;const d=Object.fromEntries(Object.entries(c).map((([e,t])=>[e.toLowerCase(),t])));this.setLoaded({refNameAliases:c,regions:l.map((e=>({...e,refName:c[e.refName]||e.refName}))),lowerCaseRefNameAliases:d,cytobands:await Ct({config:o,pluginManager:t})})}}))).views((e=>({getAdapterMapEntry(t,r){const{signal:o,statusCallback:s,...a}=r;if(!r.sessionId)throw new Error("sessionId is required");return n.get((0,wt.LS)(t),{adapterConf:t,self:e,options:a},void 0,s)},async getRefNameMapForAdapter(e,t){if(!t.sessionId)throw new Error("sessionId is required");return(await this.getAdapterMapEntry(e,t)).forwardMap},async getReverseRefNameMapForAdapter(e,t){return(await this.getAdapterMapEntry(e,t)).reverseMap}})))}async function Ct({config:e,pluginManager:t}){const n=t.getAdapterType(e.type);return new(await n.getAdapterClass())(e,void 0,t).getData()}var Et=n(81886),kt=n(16574);const Tt=(0,r.lazy)((()=>n.e(9675).then(n.bind(n,79675)))),Mt=(0,r.lazy)((()=>n.e(2928).then(n.bind(n,62928))));function Pt({pluginManager:e,sessionModelFactory:t,adminMode:n=!1}){const r=function(e){return(0,I.ConfigurationSchema)("BaseAssembly",{aliases:{type:"stringArray",defaultValue:[],description:"Other possible names for the assembly"},sequence:e.getTrackType("ReferenceSequenceTrack").configSchema,refNameColors:{type:"stringArray",defaultValue:[],description:"Define custom colors for each reference sequence. Will cycle through this list if there are not enough colors for every sequence."},refNameAliases:(0,I.ConfigurationSchema)("RefNameAliases",{adapter:e.pluggableConfigSchemaType("adapter")},{preProcessSnapshot:e=>e.adapter?e:{adapter:{type:"RefNameAliasAdapter"}}}),cytobands:(0,I.ConfigurationSchema)("Cytoband",{adapter:e.pluggableConfigSchemaType("adapter")},{preProcessSnapshot:e=>e.adapter?e:{adapter:{type:"CytobandAdapter"}}}),displayName:{type:"string",defaultValue:"",description:'A human readable display name for the assembly e.g. "Homo sapiens (hg38)" while the assembly name may just be "hg38"'}},{explicitIdentifier:"name"})}(e),o=function({pluginManager:e,assemblyConfigSchema:t}){return u.types.snapshotProcessor(function({pluginManager:e,assemblyConfigSchema:t}){return function({pluginManager:e,assemblyConfigSchema:t}){return u.types.model("JBrowseConfig",{configuration:(0,I.ConfigurationSchema)("Root",{rpc:We.configSchema,highResolutionScaling:{type:"number",defaultValue:2},formatDetails:(0,I.ConfigurationSchema)("FormatDetails",{feature:{type:"frozen",description:"adds extra fields to the feature details",defaultValue:{},contextVariable:["feature"]},subfeatures:{type:"frozen",description:"adds extra fields to the subfeatures of a feature",defaultValue:{},contextVariable:["feature"]},depth:{type:"number",defaultValue:2,description:"depth to iterate the formatDetails->subfeatures callback on subfeatures (used for example to only apply the callback to the first layer of subfeatures)"},maxDepth:{type:"number",defaultValue:1e4,description:"hide subfeatures greater than a certain depth"}}),formatAbout:(0,I.ConfigurationSchema)("FormatAbout",{config:{type:"frozen",description:"formats configuration object in about dialog",defaultValue:{},contextVariable:["config"]},hideUris:{type:"boolean",defaultValue:!1}}),shareURL:{type:"string",defaultValue:"https://share.jbrowse.org/api/v1/"},disableAnalytics:{type:"boolean",defaultValue:!1},hierarchical:(0,I.ConfigurationSchema)("hierarchical",{sort:(0,I.ConfigurationSchema)("hierarchicalSort",{trackNames:{type:"boolean",defaultValue:!1},categories:{type:"boolean",defaultValue:!1}}),defaultCollapsed:(0,I.ConfigurationSchema)("defaultCollapsed",{categoryNames:{type:"stringArray",defaultValue:[]},topLevelCategories:{type:"boolean",defaultValue:!1},subCategories:{type:"boolean",defaultValue:!1}})}),theme:{type:"frozen",defaultValue:{}},extraThemes:{type:"frozen",defaultValue:{}},logoPath:{type:"fileLocation",defaultValue:{uri:"",locationType:"UriLocation"}},...e.pluginConfigurationSchemas()}),plugins:u.types.array(u.types.frozen()),assemblies:u.types.array(t),tracks:u.types.array(e.pluggableConfigSchemaType("track")),internetAccounts:u.types.array(e.pluggableConfigSchemaType("internet account")),aggregateTextSearchAdapters:u.types.array(e.pluggableConfigSchemaType("text search adapter")),connections:u.types.array(e.pluggableConfigSchemaType("connection")),defaultSession:u.types.optional(u.types.frozen(),{name:"New Session"})})}({pluginManager:e,assemblyConfigSchema:t}).views((e=>({get assemblyNames(){return e.assemblies.map((e=>(0,I.readConfObject)(e,"name")))},get rpcManager(){return(0,u.getParent)(e).rpcManager}}))).actions((e=>({addAssemblyConf(t){const{name:n}=t;if(!n)throw new Error('Can\'t add assembly with no "name"');if(e.assemblyNames.includes(n))throw new Error(`Can't add assembly with name "${n}", an assembly with that name already exists`);const r=e.assemblies.push({...t,sequence:{type:"ReferenceSequenceTrack",trackId:`${n}-${Date.now()}`,...t.sequence}});return e.assemblies[r-1]},removeAssemblyConf(t){const n=e.assemblies.find((e=>e.name===t));n&&e.assemblies.remove(n)},addTrackConf(t){const{type:n}=t;if(!n)throw new Error(`unknown track type ${n}`);const r=e.tracks.push(t);return e.tracks[r-1]},addConnectionConf(t){const{type:n}=t;if(!n)throw new Error(`unknown connection type ${n}`);const r=e.connections.push(t);return e.connections[r-1]},deleteConnectionConf(t){const n=e.connections.find((e=>e.id===t.id));return e.connections.remove(n)},deleteTrackConf(t){const n=e.tracks.find((e=>e.trackId===t.trackId));return e.tracks.remove(n)},addPlugin(t){e.plugins.push(t),(0,u.getParent)(e).setPluginsUpdated(!0)},removePlugin(t){e.plugins=(0,u.cast)(e.plugins.filter((e=>e.url!==t.url||e.umdUrl!==t.umdUrl||e.cjsUrl!==t.cjsUrl||e.esmUrl!==t.esmUrl))),(0,u.getParent)(e).setPluginsUpdated(!0)},setDefaultSessionConf(t){const n=(0,u.getParent)(e).session.name===t.name?(0,u.getSnapshot)(t):(0,Ce.toJS)(t);if(!n.name)throw new Error(`unable to set default session to ${n.name}`);e.defaultSession=(0,u.cast)(n)},addInternetAccountConf(t){const{type:n}=t;if(!n)throw new Error(`unknown internetAccount type ${n}`);const r=e.internetAccounts.push(t);return e.internetAccounts[r-1]},deleteInternetAccountConf(t){const n=e.internetAccounts.find((e=>e.id===t.id));return e.internetAccounts.remove(n)}})))}({pluginManager:e,assemblyConfigSchema:t}),{postProcessor:e=>(0,Qe.K$)(gt()(e),"baseUri")})}({pluginManager:e,assemblyConfigSchema:r}),s=t({pluginManager:e,assemblyConfigSchema:r});return u.types.compose(function({pluginManager:e,jbrowseModelType:t,sessionModelType:n,assemblyConfigSchema:r}){return u.types.model("BaseRootModel",{jbrowse:t,session:u.types.maybe(n),sessionPath:u.types.optional(u.types.string,""),assemblyManager:u.types.optional((o=r,s=e,u.types.model({assemblies:u.types.array(At(o,s))}).views((e=>({get assemblyNameMap(){const t={};for(const n of e.assemblies)for(const e of n.allAliases)t[e]=n;return t}}))).views((e=>({get:t=>e.assemblyNameMap[t],get assemblyNamesList(){return this.assemblyList.map((e=>e.name))},get assemblyList(){const{jbrowse:{assemblies:t},session:{sessionAssemblies:n=[],temporaryAssemblies:r=[]}={}}=(0,u.getParent)(e);return[...t,...n,...r]},get rpcManager(){return(0,u.getParent)(e).rpcManager}}))).views((e=>({async waitForAssembly(t){if(!t)throw new Error("no assembly name supplied to waitForAssembly");let n=e.get(t);if(!n)try{await(0,q.when)((()=>Boolean(e.get(t))),{timeout:1e3}),n=e.get(t)}catch(e){}if(n){if(await n.load(),await(0,q.when)((()=>!(!n.regions||!n.refNameAliases)||!!n.error)),n.error)throw n.error;return n}},async getRefNameMapForAdapter(e,t,n){if(t){const r=await this.waitForAssembly(t);return r?.getRefNameMapForAdapter(e,n)}return{}},async getReverseRefNameMapForAdapter(e,t,n){if(t){const r=await this.waitForAssembly(t);return r?.getReverseRefNameMapForAdapter(e,n)}return{}},isValidRefName(t,n){const r=e.get(n);if(r)return r.isValidRefName(t);throw new Error(`Failed to look up refName ${t} on ${n} because assembly does not exist`)}}))).actions((e=>({afterAttach(){(0,u.addDisposer)(e,(0,Ce.reaction)((()=>e.assemblyList),(t=>{e.assemblies.forEach((e=>{e.configuration||this.removeAssembly(e)})),t.forEach((t=>{e.assemblies.some((e=>e.name===(0,I.readConfObject)(t,"name")))||this.addAssembly(t)}))}),{fireImmediately:!0,name:"assemblyManagerAfterAttach"}))},removeAssembly(t){e.assemblies.remove(t)},addAssembly(t){e.assemblies.push({configuration:t})},replaceAssembly(t,n){e.assemblies[t]=(0,u.cast)({configuration:n})}})))),{})}).volatile((t=>({rpcManager:new We(e,t.jbrowse.configuration.rpc,{MainThreadRpcDriver:{}}),adminMode:!1,error:void 0,textSearchManager:new et.A(e),pluginManager:e}))).actions((e=>({setError(t){e.error=t},setSession(t){e.session=(0,u.cast)(t)},setDefaultSession(){this.setSession(e.jbrowse.defaultSession)},setSessionPath(t){e.sessionPath=t},renameCurrentSession(t){if(e.session){const n=JSON.parse(JSON.stringify((0,u.getSnapshot)(e.session)));n.name=t,this.setSession(n)}}})));var o,s}({pluginManager:e,jbrowseModelType:o,sessionModelType:s,assemblyConfigSchema:r}),function(e){return u.types.model({internetAccounts:u.types.array(e.pluggableMstType("internet account","stateModel"))}).actions((t=>({initializeInternetAccount(n,r={}){if(!e.getInternetAccountType(n.type))throw new Error(`unknown internet account type ${n.type}`);const o=t.internetAccounts.push({...r,type:n.type,configuration:n});return t.internetAccounts[o-1]},createEphemeralInternetAccount(n,r,o){let s;try{s=new URL(o).origin}catch(e){}const a=n.split("-"),i={type:a[0],internetAccountId:n,name:a.slice(1).join("-"),description:"",domains:s?[s]:[]},l=e.getInternetAccountType(i.type).stateModel.create({...r,type:i.type,configuration:i});return t.internetAccounts.push(l),l},findAppropriateInternetAccount(e){const n=e.internetAccountId;if(n){const e=t.internetAccounts.find((e=>e.internetAccountId===n));if(e)return e}for(const n of t.internetAccounts)if(n.handlesLocation(e))return n;return n?this.createEphemeralInternetAccount(n,{},e.uri):null}}))).actions((e=>({afterCreate(){(0,u.addDisposer)(e,(0,Ce.autorun)((()=>{const{jbrowse:t}=e;t.internetAccounts.forEach(e.initializeInternetAccount)})))}})))}(e),u.types.model({history:u.types.optional(Ae,{targetPath:"../session"})}).actions((e=>({afterCreate(){document.addEventListener("keydown",(t=>{e.history.canRedo&&((t.ctrlKey||t.metaKey)&&t.shiftKey&&"KeyZ"===t.code||t.ctrlKey&&!t.shiftKey&&"KeyY"===t.code)&&"INPUT"!==document.activeElement?.tagName.toUpperCase()&&e.history.redo(),e.history.canUndo&&(t.ctrlKey||t.metaKey)&&!t.shiftKey&&"KeyZ"===t.code&&"INPUT"!==document.activeElement?.tagName.toUpperCase()&&e.history.undo()})),(0,u.addDisposer)(e,(0,Ce.autorun)((()=>{const{session:t}=e;t&&e.history.initialize()})))}}))),u.types.model({}).actions((e=>{const t=e;return{setMenus(e){t.menus=e},appendMenu:e=>t.menus.push({label:e,menuItems:[]}),insertMenu:(e,n)=>(t.menus.splice((n<0?t.menus.length:0)+n,0,{label:e,menuItems:[]}),t.menus.length),appendToMenu(e,n){const r=t.menus.find((t=>t.label===e));return r?r.menuItems.push(n):(t.menus.push({label:e,menuItems:[n]}),1)},insertInMenu(e,n,r){const o=t.menus.find((t=>t.label===e));if(!o)return t.menus.push({label:e,menuItems:[n]}),1;const s=r<0?o.menuItems.length+r:r;return o.menuItems.splice(s,0,n),o.menuItems.length},appendToSubMenu(e,n){let r=t.menus.find((t=>t.label===e[0]));if(!r){const n=this.appendMenu(e[0]);r=t.menus[n-1]}let{menuItems:o}=r;const s=[e[0]];return e.slice(1).forEach((e=>{s.push(e);let t=o.find((t=>"label"in t&&t.label===e));if(!t){const n=o.push({label:e,subMenu:[]});t=o[n-1]}if(!("subMenu"in t))throw new Error(`"${e}" in path "${s}" is not a subMenu`);o=t.subMenu})),o.push(n)},insertInSubMenu(e,n,r){let o=t.menus.find((t=>t.label===e[0]));if(!o){const n=this.appendMenu(e[0]);o=t.menus[n-1]}let{menuItems:s}=o;const a=[e[0]];return e.slice(1).forEach((e=>{a.push(e);let t=s.find((t=>"label"in t&&t.label===e));if(!t){const n=s.push({label:e,subMenu:[]});t=s[n-1]}if(!("subMenu"in t))throw new Error(`"${e}" in path "${a}" is not a subMenu`);s=t.subMenu})),s.splice(r,0,n),s.length}}}))).props({configPath:u.types.maybe(u.types.string)}).volatile((t=>({version:"2.15.4",hydrateFn:Et.c,createRootFn:Et.H,pluginsUpdated:!1,rpcManager:new We(e,t.jbrowse.configuration.rpc,{WebWorkerRpcDriver:{makeWorkerInstance:pt},MainThreadRpcDriver:{}}),savedSessionsVolatile:Ce.observable.map({}),textSearchManager:new et.A(e),error:void 0}))).views((e=>({get savedSessions(){return[...e.savedSessionsVolatile.values()]},localStorageId:t=>`localSaved-${t}-${e.configPath}`,get autosaveId(){return`autosave-${e.configPath}`},get previousAutosaveId(){return`previousAutosave-${e.configPath}`}}))).views((e=>({get savedSessionNames(){return e.savedSessions.map((e=>e.name))},get currentSessionId(){const e=new URL(window.location.href),t=new URLSearchParams(e.search);return t.get("session")?.split("local-")[1]}}))).actions((e=>({afterCreate(){for(const[t,n]of Object.entries(localStorage).filter((([e,t])=>e.startsWith("localSaved-"))).filter((([t])=>t.includes(e.configPath||"undefined"))))try{const{session:r}=JSON.parse(n);e.savedSessionsVolatile.set(t,r)}catch(e){console.error("bad session encountered",t,n)}(0,u.addDisposer)(e,(0,Ce.autorun)((()=>{for(const[,t]of e.savedSessionsVolatile.entries())try{const n=e.localStorageId(t.name);localStorage.setItem(n,JSON.stringify({session:t}))}catch(e){"22"!==e.code&&"1024"!==e.code||alert('Local storage is full! Please use the "Open sessions" panel to remove old sessions')}}))),(0,u.addDisposer)(e,(0,Ce.autorun)((()=>{if(!e.session)return;const t=(0,u.getSnapshot)(e.session),n=JSON.stringify;sessionStorage.setItem("current",n({session:t})),localStorage.setItem(`autosave-${e.configPath}`,n({session:{...t,name:`${t.name}-autosaved`}})),e.pluginsUpdated&&window.location.reload()}),{delay:400}))},setSession(t){const n=e.session;if(e.session=(0,u.cast)(t),e.session)try{(0,Qe.pK)(e.session,(0,u.getType)(e.session))}catch(t){throw e.session=n,t}},setPluginsUpdated(t){e.pluginsUpdated=t},setDefaultSession(){const{defaultSession:t}=e.jbrowse,n={...t,name:`${t.name} ${(new Date).toLocaleString()}`};this.setSession(n)},renameCurrentSession(t){if(e.session){const n=JSON.parse(JSON.stringify((0,u.getSnapshot)(e.session)));n.name=t,this.setSession(n)}},addSavedSession(t){const n=e.localStorageId(t.name);e.savedSessionsVolatile.set(n,t)},removeSavedSession(t){const n=e.localStorageId(t.name);localStorage.removeItem(n),e.savedSessionsVolatile.delete(n)},duplicateCurrentSession(){if(e.session){const t=JSON.parse(JSON.stringify((0,u.getSnapshot)(e.session)));let n=`${e.session.name} (copy)`;if(e.savedSessionNames.includes(n)){let t=2;do{n=`${e.session.name} (copy ${t})`,t+=1}while(e.savedSessionNames.includes(n))}t.name=n,this.setSession(t)}},activateSession(t){const n=e.localStorageId(t),r=localStorage.getItem(n);if(!r)throw new Error(`Can't activate session ${t}, it is not in the savedSessions`);this.setSession(JSON.parse(r).session)},saveSessionToLocalStorage(){if(e.session){const t=e.localStorageId(e.session.name);e.savedSessionsVolatile.set(t,(0,u.getSnapshot)(e.session))}},loadAutosaveSession(){const t=localStorage.getItem(e.previousAutosaveId),n=t?JSON.parse(t).session:{},{name:r}=n;n.name=`${r.replace("-autosaved","")}-restored`,this.setSession(n)},setError(t){e.error=t}}))).volatile((e=>({menus:[{label:"File",menuItems:[{label:"New session",icon:Y.A,onClick:t=>{const n=localStorage.getItem(e.autosaveId);n&&localStorage.setItem(e.previousAutosaveId,n),t.setDefaultSession()}},{label:"Import session…",icon:at.A,onClick:e=>{const t=e.addWidget("ImportSessionWidget","importSessionWidget");e.showWidget(t)}},{label:"Export session",icon:st.A,onClick:e=>{const t=new Blob([JSON.stringify({session:(0,u.getSnapshot)(e)},null,2)],{type:"text/plain;charset=utf-8"});(0,Xe.saveAs)(t,"session.json")}},{label:"Open session…",icon:ot.A,onClick:e=>{const t=e.addWidget("SessionManager","sessionManager");e.showWidget(t)}},{label:"Save session",icon:ct.A,onClick:t=>{e.saveSessionToLocalStorage(),t.notify(`Saved session "${t.name}"`,"success")}},{label:"Duplicate session",icon:rt.A,onClick:e=>{e.duplicateCurrentSession&&e.duplicateCurrentSession()}},{type:"divider"},{label:"Open track...",icon:lt.A,onClick:e=>{if(0===e.views.length)e.notify("Please open a view to add a track first");else if(e.views.length>0){const t=e.addWidget("AddTrackWidget","addTrackWidget",{view:e.views[0].id});e.showWidget(t),e.views.length>1&&e.notify("This will add a track to the first view. Note: if you want to open a track in a specific view open the track selector for that view and use the add track (plus icon) in the bottom right")}}},{label:"Open connection...",icon:mt.A8,onClick:e=>{e.showWidget(e.addWidget("AddConnectionWidget","addConnectionWidget"))}},{type:"divider"},{label:"Return to splash screen",icon:nt.A,onClick:()=>{e.setSession(void 0)}}]},...n?[{label:"Admin",menuItems:[{label:"Open assembly manager",onClick:()=>e.session.queueDialog((t=>[kt.m,{onClose:t,rootModel:e}]))},{label:"Set default session",onClick:()=>e.session.queueDialog((t=>[Tt,{rootModel:e,onClose:t}]))}]}]:[],{label:"Add",menuItems:[]},{label:"Tools",menuItems:[{label:"Undo",icon:ut.A,onClick:()=>{e.history.canUndo&&e.history.undo()}},{label:"Redo",icon:dt.A,onClick:()=>{e.history.canRedo&&e.history.redo()}},{type:"divider"},{label:"Plugin store",icon:it.A,onClick:()=>{e.session&&e.session.showWidget(e.session.addWidget("PluginStoreWidget","pluginStoreWidget"))}},{label:"Preferences",icon:tt.A,onClick:()=>{e.session&&e.session.queueDialog((t=>[Mt,{session:e.session,handleClose:t}]))}}]}],adminMode:n})))}function It(e){return u.types.model("ReferenceManagementSessionMixin",{}).views((e=>({getReferring(t){const n=[];return(0,u.walk)((0,u.getParent)(e),(e=>{if((0,u.isModelType)((0,u.getType)(e))){const r=(0,u.getMembers)(e);Object.entries(r.properties).forEach((([r,o])=>{(0,u.isReferenceType)(o)&&e[r]===t&&n.push({node:e,key:r})}))}})),n}}))).actions((e=>({removeReferring(t,n,r,o){t.forEach((({node:t})=>{let s=!1;try{const e="open track(s)",a=(0,q.getContainingView)(t);r.push((()=>{a.hideTrack(n.trackId)})),s=!0,o[e]||(o[e]=0),o[e]+=1}catch(e){}if((0,q.isSessionModelWithWidgets)(e)&&e.widgets.has(t.id)){const n="configuration editor widget(s)";(0,q.isSessionModelWithWidgets)(e)&&r.push((()=>{e.hideWidget(t)})),s=!0,o[n]||(o[n]=0),o[n]+=1}if(!s)throw new Error(`Error when closing this connection, the following node is still referring to a track configuration: ${JSON.stringify((0,u.getSnapshot)(t))}`)}))}})))}function Nt(e){const t=e.pluggableMstType("widget","stateModel");return u.types.model({drawerPosition:u.types.optional(u.types.string,(()=>(0,q.localStorageGetItem)("drawerPosition")||"right")),drawerWidth:u.types.optional(u.types.refinement(u.types.integer,(e=>e>=128)),384),widgets:u.types.map(t),activeWidgets:u.types.map(u.types.safeReference(t)),minimized:u.types.optional(u.types.boolean,!1)}).views((e=>({get visibleWidget(){if((0,u.isAlive)(e))return[...e.activeWidgets.values()][e.activeWidgets.size-1]}}))).actions((t=>({setDrawerPosition(e){t.drawerPosition=e,localStorage.setItem("drawerPosition",e)},updateDrawerWidth(e){if(e===t.drawerWidth)return t.drawerWidth;let n=e;return n<128&&(n=128),t.drawerWidth=n,n},resizeDrawer(e){"left"===t.drawerPosition&&(e*=-1);const n=t.drawerWidth;return n-this.updateDrawerWidth(n-e)},addWidget(n,r,o={},s){if(!e.getElementType("widget",n))throw new Error(`unknown widget type ${n}`);const a={...o,id:r,type:n,configuration:s||{type:n}};return t.widgets.set(r,a),t.widgets.get(r)},showWidget(e){t.activeWidgets.has(e.id)&&t.activeWidgets.delete(e.id),t.activeWidgets.set(e.id,e),t.minimized=!1},hasWidget:e=>t.activeWidgets.has(e.id),hideWidget(e){t.activeWidgets.delete(e.id)},minimizeWidgetDrawer(){t.minimized=!0},showWidgetDrawer(){t.minimized=!1},hideAllWidgets(){t.activeWidgets.clear()},editConfiguration(e){if(!(0,I.isConfigurationModel)(e))throw new Error("must pass a configuration model to editConfiguration");const t=this.addWidget("ConfigurationEditorWidget","configEditor",{target:e});this.showWidget(t)},afterAttach(){(0,u.addDisposer)(t,(0,Ce.autorun)((()=>{(0,q.localStorageSetItem)("drawerPosition",t.drawerPosition)})))}})))}var xt=n(45858);var Rt=n(71627);const Ot=(0,r.lazy)((()=>Promise.all([n.e(9245),n.e(4630)]).then(n.bind(n,74630))));var $t=n(25762),Dt=n(36993),Lt=n(49204);const jt=(0,r.lazy)((()=>Promise.all([n.e(8565),n.e(5676),n.e(3011),n.e(6157),n.e(6683),n.e(8984),n.e(965)]).then(n.bind(n,40965))));function zt({pluginManager:e,assemblyConfigSchema:t}){const n=u.types.compose("WebCoreSessionModel",u.types.compose("WebCoreSessionModelGroupA",It(),Nt(e),u.types.model("DialogQueueSessionMixin",{}).volatile((()=>({queueOfDialogs:[]}))).views((e=>({get DialogComponent(){return e.queueOfDialogs[0]?.[0]},get DialogProps(){return e.queueOfDialogs[0]?.[1]}}))).actions((e=>({removeActiveDialog(){e.queueOfDialogs=e.queueOfDialogs.slice(1)},queueDialog(t){const[n,r]=t((()=>{this.removeActiveDialog()}));e.queueOfDialogs=[...e.queueOfDialogs,[n,r]]}}))),u.types.model({}).volatile((()=>({sessionThemeName:(0,q.localStorageGetItem)("themeName")||"default"}))).views((e=>({allThemes(){const t=e,n=(0,I.getConf)(t.jbrowse,"extraThemes");return{...l.defaultThemes,...n}},get themeName(){const{sessionThemeName:t}=e;return this.allThemes()[t]?t:"default"},get theme(){const t=e,n=(0,I.getConf)(t.jbrowse,"theme"),r=this.allThemes();return(0,l.createJBrowseTheme)(n,r,this.themeName)}}))).actions((e=>({setThemeName(t){e.sessionThemeName=t},afterAttach(){(0,u.addDisposer)(e,(0,Ce.autorun)((()=>{(0,q.localStorageSetItem)("themeName",e.themeName)})))}}))),function(e){return u.types.compose((0,xt.DH)(e),Nt(e)).props({views:u.types.array(e.pluggableMstType("view","stateModel"))}).actions((t=>({moveViewDown(e){const n=t.views.findIndex((t=>t.id===e));-1!==n&&nt.id===e));n>0&&t.views.splice(n-1,2,t.views[n],t.views[n-1])},moveViewToTop(e){const n=t.views.findIndex((t=>t.id===e));t.views=(0,u.cast)([t.views[n],...t.views.filter((t=>t.id!==e))])},moveViewToBottom(e){const n=t.views.findIndex((t=>t.id===e));t.views=(0,u.cast)([...t.views.filter((t=>t.id!==e)),t.views[n]])},addView(n,r={}){if(!e.getElementType("view",n))throw new Error(`unknown view type ${n}`);const o=t.views.push({...r,type:n});return t.views[o-1]},removeView(e){for(const[,n]of t.activeWidgets)n.view&&n.view.id===e.id&&t.hideWidget(n);t.views.remove(e)},addLinearGenomeViewOfAssembly(e,t={}){return this.addViewOfAssembly("LinearGenomeView",e,t)},addViewOfAssembly(e,n,r={}){const o=t.assemblies.find((e=>(0,I.readConfObject)(e,"name")===n));if(!o)throw new Error(`Could not add view of assembly "${n}", assembly name not found`);return this.addView(e,{...r,displayRegionsFromAssemblyName:(0,I.readConfObject)(o,"name")})},addViewFromAnotherView(e,t,n={}){const r={...n};return r.displayedRegions=(0,u.getSnapshot)(t.displayedRegions),this.addView(e,r)}})))}(e)),u.types.compose("WebCoreSessionModelGroupB",function(e){return function(e){return u.types.compose("TracksManagerSessionMixin",(0,xt.DH)(e),It()).views((e=>({get tracks(){return e.jbrowse.tracks}}))).actions((e=>({addTrackConf:t=>e.jbrowse.addTrackConf(t),deleteTrackConf(t){const n=[],r=e.getReferring(t);if(e.removeReferring(r,t,n,{}),n.forEach((e=>{e()})),e.adminMode)return e.jbrowse.deleteTrackConf(t)}})))}(e).named("SessionTracksManagerSessionMixin").props({sessionTracks:u.types.array(e.pluggableConfigSchemaType("track"))}).views((e=>({get tracks(){return[...e.sessionTracks,...e.jbrowse.tracks]}}))).actions((e=>{const{addTrackConf:t,deleteTrackConf:n}=e;return{addTrackConf(n){if(e.adminMode)return t(n);const{trackId:r,type:o}=n;if(!o)throw new Error(`unknown track type ${o}`);const s=e.sessionTracks.find((e=>e.trackId===r));if(s)return s;const a=e.sessionTracks.push(n);return e.sessionTracks[a-1]},deleteTrackConf(t){const r=n(t);if(r)return r;const{trackId:o}=t,s=e.sessionTracks.findIndex((e=>e.trackId===o));return-1!==s?e.sessionTracks.splice(s,1):void 0}}}))}(e),(o=t,u.types.model({sessionAssemblies:u.types.array(o)}).actions((e=>{const t=e;return{addSessionAssembly(e){const n=t.sessionAssemblies.find((t=>t.name===e.name));if(n)return console.warn(`Assembly ${e.name} already exists`),n;const r=t.sessionAssemblies.push(e);return t.sessionAssemblies[r-1]},removeSessionAssembly(e){const n=t.sessionAssemblies.find((t=>t.name===e));n&&t.sessionAssemblies.remove(n)}}}))),function(e,t=u.types.frozen()){return u.types.model({temporaryAssemblies:u.types.array(t)}).actions((e=>{const t=e;return{addTemporaryAssembly(e){const n=t.temporaryAssemblies.find((t=>t.name===e.name));if(n)return console.warn(`Assembly ${e.name} was already existing`),n;const r=t.temporaryAssemblies.push(e);return t.temporaryAssemblies[r-1]},removeTemporaryAssembly(e){const n=t.temporaryAssemblies.find((t=>t.name===e));n&&t.temporaryAssemblies.remove(n)}}}))}(0,t),function(e){return u.types.compose("SessionConnectionsManagement",(0,Lt.F)(e),u.types.model({sessionConnections:u.types.array(e.pluggableConfigSchemaType("connection"))})).actions((e=>{const t=e,n=t.deleteConnection,r=t.addConnectionConf;return{addConnectionConf(e){if(t.adminMode)return r(e);const{connectionId:n,type:o}=e;if(!o)throw new Error(`unknown connection type ${o}`);const s=t.sessionTracks.find((e=>e.connectionId===n));if(s)return s;const a=t.sessionConnections.push(e);return t.sessionConnections[a-1]},deleteConnection(e){let r;if(t.adminMode&&(r=n(e)),!r){const{connectionId:n}=e,r=t.sessionConnections.findIndex((e=>e.connectionId===n));if(-1===r)return;return t.sessionConnections.splice(r,1)}return r}}}))}(e),u.types.model({focusedViewId:u.types.maybe(u.types.string)}).actions((e=>({setFocusedViewId(t){e.focusedViewId=t}}))),u.types.model({}).volatile((()=>({snackbarMessages:Ce.observable.array()}))).views((e=>({get snackbarMessageSet(){return new Map(e.snackbarMessages.map((e=>[e.message,e])))}}))).actions((e=>({notify(e,t,n){this.pushSnackbarMessage(e,t,n),"info"!==t&&"success"!==t||setTimeout((()=>{this.removeSnackbarMessage(e)}),5e3)},notifyError(t,n,o){this.notify(t,"error",{name:r.createElement(Rt.A,null),onClick:()=>{e.queueDialog((e=>[Ot,{onClose:e,error:n,extra:o}]))}})},pushSnackbarMessage(t,n,r){!r&&e.snackbarMessageSet.has(t)||e.snackbarMessages.push({message:t,level:n,action:r})},popSnackbarMessage:()=>e.snackbarMessages.pop(),removeSnackbarMessage(t){const n=e.snackbarMessageSet.get(t);void 0!==n&&e.snackbarMessages.remove(n)}}))))).props({margin:0,sessionPlugins:u.types.array(u.types.frozen())}).volatile((()=>({sessionThemeName:(0,q.localStorageGetItem)("themeName")||"default",task:void 0}))).views((e=>({get tracks(){return[...e.sessionTracks,...e.jbrowse.tracks]},get root(){return(0,u.getParent)(e)},get assemblies(){return[...e.jbrowse.assemblies,...e.sessionAssemblies]},get connections(){return[...e.jbrowse.connections,...e.sessionConnections]}}))).actions((e=>({setName(t){e.name=t}}))).views((e=>({get assemblyNames(){return e.assemblies.map((e=>(0,I.readConfObject)(e,"name")))},get version(){return e.root.version},get shareURL(){return(0,I.getConf)(e.jbrowse,"shareURL")},get textSearchManager(){return e.root.textSearchManager},get assemblyManager(){return e.root.assemblyManager},get savedSessions(){return e.root.savedSessions},get previousAutosaveId(){return e.root.previousAutosaveId},get savedSessionNames(){return e.root.savedSessionNames},get history(){return e.root.history},get menus(){return e.root.menus},renderProps:()=>({theme:e.theme,highResolutionScaling:(0,I.getConf)(e,"highResolutionScaling")})}))).actions((e=>({addAssemblyConf(t){e.jbrowse.addAssemblyConf(t)},addSessionPlugin(t){if(e.sessionPlugins.some((e=>e.name===t.name)))throw new Error("session plugin cannot be installed twice");e.sessionPlugins.push(t),e.root.setPluginsUpdated(!0)},removeSessionPlugin(t){e.sessionPlugins=(0,u.cast)(e.sessionPlugins.filter((e=>e.url!==t.url||e.umdUrl!==t.umdUrl||e.cjsUrl!==t.cjsUrl||e.esmUrl!==t.esmUrl))),(0,u.getParent)(e).setPluginsUpdated(!0)},addSavedSession:t=>e.root.addSavedSession(t),removeSavedSession:t=>e.root.removeSavedSession(t),renameCurrentSession:t=>e.root.renameCurrentSession(t),duplicateCurrentSession:()=>e.root.duplicateCurrentSession(),activateSession:t=>e.root.activateSession(t),setDefaultSession:()=>e.root.setDefaultSession(),saveSessionToLocalStorage:()=>e.root.saveSessionToLocalStorage(),loadAutosaveSession:()=>e.root.loadAutosaveSession(),setSession:t=>e.root.setSession(t)}))).actions((e=>({editTrackConfiguration(t){const{adminMode:n,sessionTracks:r}=e;if(!n&&!r.includes(t))throw new Error("Can't edit the configuration of a non-session track");e.editConfiguration(t)}}))).views((e=>({getTrackActionMenuItems(t){const{adminMode:n,sessionTracks:r}=e,o=n||r.find((e=>e.trackId===t.trackId)),s="ReferenceSequenceTrack"===t.type;return[{label:"About track",priority:1002,onClick:()=>{e.queueDialog((e=>[jt,{config:t,handleClose:e}]))},icon:Dt.A},{label:"Settings",priority:1001,disabled:!o,onClick:()=>{e.editTrackConfiguration(t)},icon:tt.A},{label:"Delete track",priority:1e3,disabled:!o||s,onClick:()=>e.deleteTrackConf(t),icon:$t.A},{label:"Copy track",priority:999,disabled:s,onClick:()=>{const n=gt()((0,u.getSnapshot)(t)),r=Date.now();n.trackId+=`-${r}`,n.displays.forEach((e=>{e.displayId+=`-${r}`})),e.adminMode||(n.trackId+="-sessionTrack",n.category=void 0),n.name+=" (copy)",e.addTrackConf(n)},icon:rt.A}]}}))).actions((e=>({afterAttach(){(0,u.addDisposer)(e,(0,Ce.autorun)((()=>{(0,q.localStorageSetItem)("drawerPosition",e.drawerPosition),(0,q.localStorageSetItem)("themeName",e.themeName)})))}})));var o;const s=e.evaluateExtensionPoint("Core-extendSession",n);return u.types.snapshotProcessor(s,{preProcessor(e){const{connectionInstances:t,...n}=e||{};return Array.isArray(t)?e:n}})}function Wt({pluginManager:e,assemblyConfigSchema:t}){return zt({pluginManager:e,assemblyConfigSchema:t})}var Ut=n(63163);function Ft(e){const t=new Ze.A([...Ut.A.map((e=>({plugin:new e,metadata:{isCore:!0}}))),...e.runtimePlugins.map((({plugin:e,definition:t})=>({plugin:new e,definition:t,metadata:{url:t.url}}))),...e.sessionPlugins.map((({plugin:e,definition:t})=>({plugin:new e,definition:t,metadata:{url:t.url}})))]);t.createPluggableElements();const n=Pt({pluginManager:t,sessionModelFactory:Wt,adminMode:!!e.adminKey});if(!e.configSnapshot)return;const r=n.create({jbrowse:e.configSnapshot,configPath:e.configPath},{pluginManager:t});e.configSnapshot.configuration?.rpc?.defaultDriver||r.jbrowse.configuration.rpc.defaultDriver.set("WebWorkerRpcDriver");let o=()=>{};try{if(e.sessionError)throw e.sessionError;e.sessionSnapshot?r.setSession(e.sessionSnapshot):e.sessionSpec?o=function({views:e,sessionTracks:t=[]},n){return async()=>{const{rootModel:r}=n;if(!r)throw new Error("rootModel not initialized");try{r.setSession({name:`New session ${(new Date).toLocaleString()}`}),t.forEach((e=>r.session.addTrackConf(e))),await Promise.all(e.map((e=>n.evaluateAsyncExtensionPoint(`LaunchView-${e.type}`,{...e,session:r.session}))))}catch(e){console.error(e),r.session?.notify(`${e}`)}}}(e.sessionSpec,t):r.jbrowse.defaultSession?.views?.length&&r.setDefaultSession()}catch(t){r.setDefaultSession();const n=`${t}`.replace("[mobx-state-tree] ","").replace(/\(.+/,""),o=n.length>1e3?`${n.slice(0,1e3)}...see more in console`:n,s=o.startsWith("Error:")?o:`Error: ${o}`;r.session?.notifyError(`${s}. If you received this URL from another user, request that they send you a session generated with the "Share" button instead of copying and pasting their URL`,e.sessionError,e.sessionSnapshot),console.error(t)}return function(e,t,n){e&&!(0,I.readConfObject)(e.jbrowse.configuration,"disableAnalytics")&&(async function(e,t,n){try{const r="https://analytics.jbrowse.org/api/v1",o=e.jbrowse.tracks.filter((e=>((0,I.readConfObject)(e,"assemblyNames")||[]).length>1)).length,s=Object.keys(localStorage).filter((e=>e.includes("localSaved-"))).length,{jbrowse:a,session:i,version:l}=e,{tracks:c,assemblies:u,plugins:d}=a,m={ver:l,"plugins-count":d?.length||0,"plugin-names":d?.map((e=>e.name)).join(","),"assemblies-count":u.length,"tracks-count":c.length,"session-tracks-count":i?.sessionTracks.length||0,"open-views":i?.views.length||0,"synteny-tracks-count":o,"saved-sessions-count":s,"existing-session-param-type":n?.split("-")[0]||"none","scn-h":window.screen.height,"scn-w":window.screen.width,"win-h":window.innerHeight,"win-w":window.innerWidth,electron:q.isElectron,loadTime:(Date.now()-t)/1e3,jb2:!0};c.forEach((e=>{const t=`track-types-${e.type}`;m[t]=m[t]+1||1})),i?.sessionTracks.forEach((e=>{const t=`sessionTrack-types-${e.type}`;m[t]=m[t]+1||1}));const p=Object.keys(m).map((e=>`${e}=${m[e]}`)).join("&");await fetch(`${r}?${p}`)}catch(e){console.error("Failed to write analytics to AWS.",e)}}(e,t,n),async function(e,t){const n={"tracks-count":e.jbrowse.tracks.length,ver:e.version,electron:q.isElectron,loadTime:Date.now()-t,pluginNames:e.jbrowse.plugins?.map((e=>e.name))||""};let r="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){";r+="(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),",r+="m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)",r+="})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');",r+="ga('create', 'UA-7115575-5', 'auto', 'jbrowseTracker');";const o={};"tracks-count ver electron loadTime pluginNames".split(/\s+/).forEach(((e,t)=>{o[`dimension${t+1}`]=n[e]})),o.metric1=Math.round(n.loadTime),r+=`ga('jbrowseTracker.send', 'pageview',${JSON.stringify(o)});`;const s=document.createElement("script");s.innerHTML=r,document.getElementsByTagName("head")[0].append(s)}(e,t))}(r,e.initialTimestamp,e.sessionQuery),t.setRootModel(r),t.configure(),o(),t}function Vt(){return Vt=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.e(3116).then(n.bind(n,93116)))),qt=(0,r.lazy)((()=>n.e(7564).then(n.bind(n,7564)))),Gt=(0,r.lazy)((()=>Promise.all([n.e(6499),n.e(2189)]).then(n.bind(n,12189))));function _t(e){return null===e?void 0:e}function Ht({initialTimestamp:e=Date.now()}){const t=a.StringParam,[n]=(0,a.useQueryParam)("config",t),[o]=(0,a.useQueryParam)("session",t),[s]=(0,a.useQueryParam)("adminKey",t),[i,l]=(0,a.useQueryParam)("password",t),[c,u]=(0,a.useQueryParam)("loc",t),[d,m]=(0,a.useQueryParam)("sessionTracks",t),[p,f]=(0,a.useQueryParam)("assembly",t),[g,h]=(0,a.useQueryParam)("tracks",t),[y,w]=(0,a.useQueryParam)("highlight",t),[b,v]=(0,a.useQueryParam)("nav",t),[S,A]=(0,a.useQueryParam)("tracklist",t),C=Ke.create({configPath:_t(n),sessionQuery:_t(o),password:_t(i),adminKey:_t(s),loc:_t(c),assembly:_t(p),tracks:_t(g),sessionTracks:_t(d),tracklist:JSON.parse(_t(S)||"false"),highlight:_t(y),nav:JSON.parse(_t(b)||"true"),initialTimestamp:e});return(0,r.useEffect)((()=>{u(void 0,"replaceIn"),h(void 0,"replaceIn"),f(void 0,"replaceIn"),l(void 0,"replaceIn"),m(void 0,"replaceIn"),A(void 0,"replaceIn"),v(void 0,"replaceIn"),w(void 0,"replaceIn")}),[f,u,v,A,h,l,m,w]),r.createElement(Kt,{loader:C})}const Jt=(0,o.observer)((function({sessionTriaged:e,loader:t}){return r.createElement(r.Suspense,{fallback:null},"session"===e.origin?r.createElement(qt,{loader:t,handleClose:()=>{t.setSessionTriaged(void 0)}}):r.createElement(Bt,{loader:t,handleClose:()=>{t.setSessionTriaged(void 0)}}))})),Qt=(0,o.observer)((function({pluginManager:e}){const{rootModel:t}=e;return t?.session?r.createElement(qe,{pluginManager:e}):r.createElement(r.Suspense,{fallback:r.createElement(l.LoadingEllipses,null)},r.createElement(Gt,{rootModel:t,onFactoryReset:Ge.A}))})),Kt=(0,o.observer)((function({loader:e}){const{configError:t,ready:n,sessionTriaged:o}=e,[s,a]=(0,r.useState)(),[i,l]=(0,r.useState)();(0,r.useEffect)((()=>{let t;try{if(!n)return;t=Ft(e),a(t)}catch(e){console.error(e),l(e)}}),[e,n]);const u=t||i;return u?r.createElement(Ye,{error:u}):o?r.createElement(Jt,{loader:e,sessionTriaged:o}):s?r.createElement(Qt,{pluginManager:s}):r.createElement(c.A,null)})),Yt=function({initialTimestamp:e}){return r.createElement(s.tH,{FallbackComponent:e=>r.createElement(l.FatalErrorDialog,Vt({},e,{resetButtonText:"Reset Session",onFactoryReset:Ge.A}))},r.createElement(a.QueryParamProvider,{adapter:i.Q},r.createElement(Ht,{initialTimestamp:e})))}},55252:(e,t,n)=>{async function r(){window.location=window.location.pathname}n.d(t,{A:()=>r})},17765:(e,t,n)=>{n.d(t,{J:()=>i,Z:()=>l});var r=n(49409);const o=async(e,t)=>(await Promise.all([n.e(7753),n.e(9831),n.e(5156)]).then(n.t.bind(n,29831,23))).encrypt(e,t).toString(),s=async(e,t)=>{const r=await Promise.all([n.e(7753),n.e(9831),n.e(5156)]).then(n.t.bind(n,29831,23)),o=await Promise.all([n.e(7753),n.e(6235)]).then(n.t.bind(n,12598,23));return r.decrypt(e,t).toString(o)};function a(e){try{return JSON.parse(e).message}catch(t){return e}}async function i(e,t,n){const s=await(0,r.eW)(JSON.stringify(e)),i=window.btoa([...window.crypto.getRandomValues(new Uint8Array(10))].map((e=>String.fromCharCode(e))).join("")).replaceAll(/[+/]/g,"").slice(0,5);const l=await o(s,i),c=new FormData;c.append("session",l),c.append("dateShared",`${Date.now()}`),c.append("referer",n);const u=await fetch(`${t}share`,{method:"POST",mode:"cors",body:c});if(!u.ok){const e=await u.text();throw new Error(a(e))}return{json:await u.json(),encryptedSession:l,password:i}}async function l(e,t,n,r){const o=t.split("share-")[1],i=`${e}?sessionId=${encodeURIComponent(o)}`,l=await fetch(i,{signal:r});if(!l.ok){const e=await l.text();throw new Error(a(e))}const c=await l.json();return s(c.session,n)}},49409:(e,t,n)=>{n.d(t,{K$:()=>d,LP:()=>s,Vr:()=>c,XE:()=>l,eW:()=>a,pK:()=>i,pS:()=>u});var r=n(59773),o=n(36422);async function s(e){const t=function(e){let t=0;switch(e.length%4){case 3:t=1;break;case 2:t=2;break;case 0:t=0;break;default:throw new Error("base64 not a valid length")}return e+"=".repeat(t)}(e.replaceAll("-","+").replaceAll("_","/")),{toByteArray:r}=await Promise.resolve().then(n.t.bind(n,47130,19)),{inflate:o}=await n.e(7864).then(n.t.bind(n,57864,23)),s=o(r(t));return(new TextDecoder).decode(s)}async function a(e){const t=(new TextEncoder).encode(e),{deflate:r}=await n.e(7864).then(n.t.bind(n,57864,23)),{fromByteArray:o}=await Promise.resolve().then(n.t.bind(n,47130,19)),s=o(r(t)),a=s.indexOf("=");return a>0?s.slice(0,a).replaceAll("+","-").replaceAll("/","_"):s.replaceAll("+","-").replaceAll("/","_")}function i(e,t){if(void 0!==e)if((0,o.isArrayType)(t)){const t=e,n=(0,o.getChildType)(e);if((0,o.isReferenceType)(n))for(let e=0;et[e]))?e+=1:t.splice(e,1);t.forEach((e=>{i(e,n)}))}else if((0,o.isMapType)(t)){const t=e,n=(0,o.getChildType)(t);if((0,o.isReferenceType)(n))for(const e in t.keys())(0,o.isValidReference)((()=>t.get(e)))||t.delete(e);t.forEach((e=>{i(e,n)}))}else if((0,o.isModelType)(t)){const{properties:t}=(0,o.getPropertyMembers)(e);Object.entries(t).forEach((([t,n])=>{i(e[t],n)}))}}function l(e,t){if("object"==typeof e&&null!==e)for(const n of Object.keys(e))"object"==typeof e[n]&&null!==e[n]?l(e[n],t):"uri"===n&&(e.baseUri=t.href)}function c({configuration:e},t,n){return e?.[t]||n}async function u(e){if(0===e.length)return!0;const t=await async function(){const e=await fetch("https://jbrowse.org/plugin-store/plugins.json");if(!e.ok)throw new Error(`HTTP ${e.status} ${e.statusText} fetching plugins`);return e.json()}();return e.every((e=>(0,r.rE)(e)?t.plugins.some((t=>(0,r.rE)(e)&&("url"in t&&"url"in e&&e.url===t.url||"umdUrl"in t&&"umdUrl"in e&&e.umdUrl===t.umdUrl))):(0,r.Cx)(e)?t.plugins.some((t=>(0,r.Cx)(e)&&"esmUrl"in e&&e.esmUrl===t.esmUrl)):!!(0,r.Nz)(e)&&t.plugins.some((t=>(0,r.Nz)(e)&&e.cjsUrl===t.cjsUrl))))}function d(e,t){for(const n in e)n===t?delete e[n]:"object"==typeof e[n]&&d(e[n],t);return e}}}]); -//# sourceMappingURL=3120.3940249f.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3120.3940249f.chunk.js.map --- a/x/static/js/3120.3940249f.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3120.3940249f.chunk.js","mappings":"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","sources":["../../../packages/core/PluginLoader.ts","../../../packages/core/data_adapters/dataAdapterCache.ts","../../../packages/core/rpc/remoteAbortSignals.ts","../../../packages/core/ui/CascadingMenu.tsx","../../../packages/core/ui/Dialog.tsx","../../../packages/core/ui/EditableTypography.tsx","../../../packages/core/ui/ErrorMessage.tsx","../../../packages/core/ui/FactoryResetDialog.tsx","../../../packages/core/ui/Icons.tsx","../../../packages/core/ui/Logo.tsx","../../../packages/core/ui/Menu.tsx","../../../packages/core/ui/ResizeHandle.tsx","../../../packages/core/ui/ReturnToImportFormDialog.tsx","../../../packages/core/ui/SanitizedHTML.tsx","../../../packages/core/ui/theme.ts","../../../packages/core/ui/AssemblySelector.tsx","../../../packages/core/ui/FileSelector/FileSelector.tsx","../../../packages/core/ui/PrerenderedCanvas.tsx","../../../packages/core/util/QuickLRU.js","../../../packages/core/util/index.ts","../../../packages/core/util/tracks.ts","../../../packages/core/util/types/mst.ts","../../../packages/product-core/src/Session/BaseSession.ts","../../../packages/product-core/src/Session/Connections.ts","../../../plugins/data-management/src/index.ts","../../../packages/core/ui/Snackbar.tsx","../../../packages/core/ui/DropDownMenu.tsx","../../../packages/core/ui/AppLogo.tsx","../../../packages/app-core/src/ui/App/AppToolbar.tsx","../../../packages/app-core/src/ui/App/DialogQueue.tsx","../../../packages/app-core/src/ui/App/AppFab.tsx","../../../packages/app-core/src/ui/App/ViewLauncher.tsx","../../../packages/app-core/src/ui/App/ViewMenu.tsx","../../../packages/app-core/src/ui/App/ViewContainerTitle.tsx","../../../packages/app-core/src/ui/App/ViewHeader.tsx","../../../packages/app-core/src/ui/App/ViewContainer.tsx","../../../packages/app-core/src/ui/App/ViewPanel.tsx","../../../packages/app-core/src/ui/App/ViewsContainer.tsx","../../../packages/app-core/src/ui/App/App.tsx","../../../packages/core/util/TimeTraveller.ts","../../../packages/core/rpc/baseRpcConfig.ts","../../../packages/core/rpc/webWorkerRpcConfig.ts","../../../packages/core/rpc/mainThreadRpcConfig.ts","../../../packages/core/rpc/configSchema.ts","../../../packages/core/rpc/BaseRpcDriver.ts","../../../packages/core/rpc/WebWorkerRpcDriver.ts","../../../packages/core/rpc/MainThreadRpcDriver.ts","../../../packages/core/rpc/RpcManager.ts","components/ShareButton.tsx","components/JBrowse.tsx","SessionLoader.ts","components/StartScreenErrorMessage.tsx","makeWorkerInstance.ts","jbrowseModel.ts","../../../packages/core/assemblyManager/assembly.ts","rootModel/rootModel.ts","../../../packages/core/assemblyManager/assemblyConfigSchema.ts","../../../packages/app-core/src/JBrowseModel/index.ts","../../../packages/app-core/src/JBrowseConfig/index.ts","../../../packages/product-core/src/RootModel/FormatDetails.ts","../../../packages/product-core/src/RootModel/FormatAbout.ts","../../../packages/product-core/src/RootModel/HierarchicalConfig.ts","../../../packages/product-core/src/RootModel/BaseRootModel.ts","../../../packages/core/assemblyManager/assemblyManager.ts","../../../packages/product-core/src/RootModel/InternetAccounts.ts","../../../packages/app-core/src/HistoryManagement/index.ts","../../../packages/app-core/src/RootMenu/index.ts","../../../packages/product-core/src/Session/ReferenceManagement.ts","../../../packages/product-core/src/Session/DrawerWidgets.ts","../../../packages/core/ui/SnackbarModel.tsx","../../../packages/web-core/src/BaseWebSession/index.ts","../../../packages/product-core/src/Session/DialogQueue.ts","../../../packages/product-core/src/Session/Themes.ts","../../../packages/product-core/src/Session/MultipleViews.ts","../../../packages/product-core/src/Session/SessionTracks.ts","../../../packages/product-core/src/Session/Tracks.ts","../../../packages/app-core/src/Assemblies/SessionAssembliesMixin.ts","../../../packages/app-core/src/Assemblies/TemporaryAssembliesMixin.ts","../../../packages/web-core/src/SessionConnections.ts","../../../packages/app-core/src/AppFocus/index.ts","sessionModel/index.ts","createPluginManager.ts","../../../packages/core/util/analytics.ts","components/Loader.tsx","factoryReset.ts","sessionSharing.ts","util.ts"],"sourcesContent":["import domLoadScript from 'load-script'\n\n// locals\nimport Plugin, { PluginConstructor } from './Plugin'\nimport ReExports from './ReExports'\nimport { isElectron } from './util'\n\nexport interface UMDLocPluginDefinition {\n umdLoc: {\n uri: string\n baseUri?: string\n }\n name: string\n}\n\nexport interface UMDUrlPluginDefinition {\n umdUrl: string\n name: string\n}\n\nexport interface LegacyUMDPluginDefinition {\n url: string\n name: string\n}\n\ntype UMDPluginDefinition = UMDLocPluginDefinition | UMDUrlPluginDefinition\n\nexport function isUMDPluginDefinition(\n def: PluginDefinition,\n): def is UMDPluginDefinition | LegacyUMDPluginDefinition {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n ((def as UMDUrlPluginDefinition).umdUrl !== undefined ||\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (def as LegacyUMDPluginDefinition).url !== undefined ||\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (def as UMDLocPluginDefinition).umdLoc !== undefined) &&\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (def as LegacyUMDPluginDefinition | UMDPluginDefinition).name !== undefined\n )\n}\n\nexport interface ESMLocPluginDefinition {\n esmLoc: {\n uri: string\n baseUri?: string\n }\n}\nexport interface ESMUrlPluginDefinition {\n esmUrl: string\n}\n\nexport type ESMPluginDefinition =\n | ESMLocPluginDefinition\n | ESMUrlPluginDefinition\n\nexport function isESMPluginDefinition(\n def: PluginDefinition,\n): def is ESMPluginDefinition {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (def as ESMUrlPluginDefinition).esmUrl !== undefined ||\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (def as ESMLocPluginDefinition).esmLoc !== undefined\n )\n}\n\nexport interface CJSPluginDefinition {\n cjsUrl: string\n}\n\nfunction promisifiedLoadScript(src: string) {\n return new Promise((resolve, reject) => {\n domLoadScript(src, (err, script) => {\n if (err) {\n reject(err)\n } else {\n resolve(script.src)\n }\n })\n })\n}\n\nasync function loadScript(scriptUrl: string) {\n if (!isInWebWorker()) {\n return promisifiedLoadScript(scriptUrl)\n }\n\n // @ts-expect-error\n if (globalThis.importScripts) {\n // @ts-expect-error\n await globalThis.importScripts(scriptUrl)\n return\n }\n throw new Error(\n 'cannot figure out how to load external JS scripts in this environment',\n )\n}\n\nexport function isCJSPluginDefinition(\n def: PluginDefinition,\n): def is CJSPluginDefinition {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return (def as CJSPluginDefinition).cjsUrl !== undefined\n}\n\nexport type PluginDefinition =\n | UMDUrlPluginDefinition\n | UMDLocPluginDefinition\n | LegacyUMDPluginDefinition\n | ESMLocPluginDefinition\n | ESMUrlPluginDefinition\n | CJSPluginDefinition\n\nexport interface PluginRecord {\n plugin: PluginConstructor\n definition: PluginDefinition\n}\n\nexport interface LoadedPlugin {\n default: PluginConstructor\n}\n\nexport function pluginDescriptionString(pluginDefinition: PluginDefinition) {\n if (isUMDPluginDefinition(pluginDefinition)) {\n return `UMD plugin ${pluginDefinition.name}`\n }\n if (isESMPluginDefinition(pluginDefinition)) {\n return `ESM plugin ${\n (pluginDefinition as ESMUrlPluginDefinition).esmUrl ||\n (pluginDefinition as ESMLocPluginDefinition).esmLoc.uri\n }`\n }\n if (isCJSPluginDefinition(pluginDefinition)) {\n return `CJS plugin ${pluginDefinition.cjsUrl}`\n }\n return 'unknown plugin'\n}\n\nfunction isInWebWorker() {\n return Boolean('WorkerGlobalScope' in globalThis)\n}\n\nexport default class PluginLoader {\n definitions: PluginDefinition[] = []\n\n fetchESM?: (url: string) => Promise\n fetchCJS?: (url: string) => Promise\n\n constructor(\n defs: PluginDefinition[] = [],\n args?: {\n fetchESM?: (url: string) => Promise\n fetchCJS?: (url: string) => Promise\n },\n ) {\n this.fetchESM = args?.fetchESM\n this.fetchCJS = args?.fetchCJS\n this.definitions = JSON.parse(JSON.stringify(defs))\n }\n\n async loadCJSPlugin(def: CJSPluginDefinition, baseUri?: string) {\n const parsedUrl = new URL(def.cjsUrl, baseUri)\n if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n throw new Error(\n `Cannot load plugins using protocol \"${parsedUrl.protocol}\"`,\n )\n }\n if (!this.fetchCJS) {\n throw new Error('No fetchCJS callback provided')\n }\n\n return this.fetchCJS(parsedUrl.href)\n }\n\n async loadESMPlugin(def: ESMPluginDefinition, baseUri?: string) {\n const parsedUrl =\n 'esmUrl' in def\n ? new URL(def.esmUrl, baseUri)\n : new URL(def.esmLoc.uri, def.esmLoc.baseUri)\n\n if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n throw new Error(\n `cannot load plugins using protocol \"${parsedUrl.protocol}\"`,\n )\n }\n\n if (!this.fetchESM) {\n throw new Error('No ESM fetcher installed')\n }\n const plugin = await this.fetchESM(parsedUrl.href)\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!plugin) {\n throw new Error(`Could not load ESM plugin: ${parsedUrl}`)\n }\n return plugin\n }\n\n async loadUMDPlugin(\n def: UMDPluginDefinition | LegacyUMDPluginDefinition,\n baseUri?: string,\n ) {\n const parsedUrl =\n 'url' in def\n ? new URL(def.url, baseUri)\n : 'umdUrl' in def\n ? new URL(def.umdUrl, baseUri)\n : new URL(def.umdLoc.uri, def.umdLoc.baseUri)\n\n if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n throw new Error(\n `cannot load plugins using protocol \"${parsedUrl.protocol}\"`,\n )\n }\n const moduleName = def.name\n const umdName = `JBrowsePlugin${moduleName}`\n if (typeof jest === 'undefined') {\n await loadScript(parsedUrl.href)\n } else {\n // @ts-expect-error\n globalThis[umdName] = { default: Plugin }\n }\n\n // @ts-expect-error\n const plugin = globalThis[umdName] as\n | { default: PluginConstructor }\n | undefined\n if (!plugin) {\n throw new Error(\n `Failed to load UMD bundle for ${moduleName}, ${umdName} is undefined`,\n )\n }\n return plugin\n }\n\n async loadPlugin(def: PluginDefinition, baseUri?: string) {\n let plugin: LoadedPlugin\n if (isElectron && isCJSPluginDefinition(def)) {\n plugin = await this.loadCJSPlugin(def, baseUri)\n } else if (isESMPluginDefinition(def)) {\n plugin = await this.loadESMPlugin(def, baseUri)\n } else if (isUMDPluginDefinition(def)) {\n plugin = await this.loadUMDPlugin(def, baseUri)\n } else if (!isElectron && isCJSPluginDefinition(def)) {\n throw new Error(\n `CommonJS plugin found, but not in a NodeJS environment: ${JSON.stringify(\n def,\n )}`,\n )\n } else {\n throw new Error(`Could not determine plugin type: ${JSON.stringify(def)}`)\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!plugin.default) {\n throw new Error(\n `${pluginDescriptionString(\n def,\n )} does not have a default export, cannot load`,\n )\n }\n return plugin.default\n }\n\n installGlobalReExports(target: WindowOrWorkerGlobalScope) {\n // @ts-expect-error\n target.JBrowseExports = Object.fromEntries(\n Object.entries(ReExports).map(([moduleName, module]) => {\n return [moduleName, module]\n }),\n )\n return this\n }\n\n async load(baseUri?: string) {\n return Promise.all(\n this.definitions.map(async definition => ({\n plugin: await this.loadPlugin(definition, baseUri),\n definition,\n })),\n )\n }\n}\n","import { SnapshotIn } from 'mobx-state-tree'\nimport PluginManager from '../PluginManager'\nimport { AnyConfigurationSchemaType } from '../configuration'\nimport { AnyDataAdapter } from './BaseAdapter'\nimport idMaker from '../util/idMaker'\n\ntype ConfigSnap = SnapshotIn\n\nexport function adapterConfigCacheKey(conf: Record = {}) {\n return `${idMaker(conf)}`\n}\n\ninterface AdapterCacheEntry {\n dataAdapter: AnyDataAdapter\n sessionIds: Set\n}\n\nlet adapterCache: Record = {}\n\n/**\n * instantiate a data adapter, or return an already-instantiated one if we have\n * one with the same configuration\n *\n * @param pluginManager\n *\n * @param sessionId - session ID of the associated worker session. used for\n * reference counting\n *\n * @param adapterConfigSnapshot - plain-JS configuration snapshot for the\n * adapter\n */\nexport async function getAdapter(\n pluginManager: PluginManager,\n sessionId: string,\n adapterConfigSnapshot: SnapshotIn,\n): Promise {\n // cache the adapter object\n const cacheKey = adapterConfigCacheKey(adapterConfigSnapshot)\n if (!adapterCache[cacheKey]) {\n const adapterType = adapterConfigSnapshot?.type\n\n if (!adapterType) {\n throw new Error(\n `could not determine adapter type from adapter config snapshot ${JSON.stringify(\n adapterConfigSnapshot,\n )}`,\n )\n }\n const dataAdapterType = pluginManager.getAdapterType(adapterType)\n if (!dataAdapterType) {\n throw new Error(`unknown data adapter type ${adapterType}`)\n }\n\n // instantiate the data adapter's config schema so it gets its defaults,\n // callbacks, etc\n const adapterConfig = dataAdapterType.configSchema.create(\n adapterConfigSnapshot,\n { pluginManager },\n )\n\n const getSubAdapter = getAdapter.bind(null, pluginManager, sessionId)\n const CLASS = await dataAdapterType.getAdapterClass()\n const dataAdapter = new CLASS(adapterConfig, getSubAdapter, pluginManager)\n\n // store it in our cache\n adapterCache[cacheKey] = {\n dataAdapter,\n sessionIds: new Set([sessionId]),\n }\n }\n\n const cacheEntry = adapterCache[cacheKey]\n cacheEntry.sessionIds.add(sessionId)\n\n return cacheEntry\n}\n\n/**\n * this is a callback that is passed to adapters that\n * allows them to get any sub-adapters that they need\n * internally, staying with the same worker session ID\n */\nexport type getSubAdapterType = (\n adapterConfigSnap: ConfigSnap,\n) => ReturnType\n\nexport function freeAdapterResources(specification: Record) {\n let deleteCount = 0\n const specKeys = Object.keys(specification)\n\n // if we don't specify a range, delete any adapters that are only associated\n // with that session\n if (specKeys.length === 1 && specKeys[0] === 'sessionId') {\n const { sessionId } = specification\n Object.entries(adapterCache).forEach(([cacheKey, cacheEntry]) => {\n cacheEntry.sessionIds.delete(sessionId)\n if (cacheEntry.sessionIds.size === 0) {\n deleteCount += 1\n delete adapterCache[cacheKey]\n }\n })\n } else {\n // otherwise call freeResources on all the cached data adapters\n Object.values(adapterCache).forEach(cacheEntry => {\n const regions =\n specification.regions ||\n (specification.region ? [specification.region] : [])\n for (const region of regions) {\n if (region.refName !== undefined) {\n cacheEntry.dataAdapter.freeResources(region)\n }\n }\n })\n }\n\n return deleteCount\n}\n\nexport function clearAdapterCache() {\n adapterCache = {}\n}\n","/* ---------------- for the RPC client ----------------- */\n\nlet abortSignalCounter = 0\nexport interface RemoteAbortSignal {\n abortSignalId: number\n}\nconst abortSignalIds = new WeakMap() // map of abortsignal => numerical ID\n\n/**\n * assign an ID to the given abort signal and return a plain object\n * representation\n *\n * @param signal - the signal to serialize\n * @param callfunc - function used to call\n * a remote method, will be called like callfunc('signalAbort', signalId)\n */\nexport function serializeAbortSignal(\n signal: AbortSignal,\n callfunc: (name: string, abortSignalId: number) => void,\n): RemoteAbortSignal {\n let abortSignalId = abortSignalIds.get(signal)\n if (!abortSignalId) {\n abortSignalCounter += 1\n abortSignalIds.set(signal, abortSignalCounter)\n abortSignalId = abortSignalCounter\n signal.addEventListener('abort', () => {\n const signalId = abortSignalIds.get(signal)\n if (signalId !== undefined) {\n callfunc('signalAbort', signalId)\n }\n })\n }\n return { abortSignalId }\n}\n\n/* ---------------- for the RPC server ----------------- */\n\n/**\n * test whether a given object\n * @param thing - the thing to test\n * @returns true if the thing is a remote abort signal\n */\nexport function isRemoteAbortSignal(\n thing: unknown,\n): thing is RemoteAbortSignal {\n return (\n typeof thing === 'object' &&\n thing !== null &&\n 'abortSignalId' in thing &&\n typeof thing.abortSignalId === 'number'\n )\n}\n\n// the server side keeps a set of surrogate abort controllers that can be\n// aborted based on ID\nconst surrogateAbortControllers = new Map() // numerical ID => surrogate abort controller\n\n/**\n * deserialize the result of serializeAbortSignal into an AbortSignal\n *\n * @param signal -\n * @returns an abort signal that corresponds to the given ID\n */\nexport function deserializeAbortSignal({\n abortSignalId,\n}: RemoteAbortSignal): AbortSignal {\n let surrogateAbortController = surrogateAbortControllers.get(abortSignalId)\n if (!surrogateAbortController) {\n surrogateAbortController = new AbortController()\n surrogateAbortControllers.set(abortSignalId, surrogateAbortController)\n }\n return surrogateAbortController.signal\n}\n\n/**\n * fire an abort signal from a remote abort signal ID\n *\n * @param abortSignalId -\n */\nexport function remoteAbort(props: { signalId: number }) {\n const { signalId: abortSignalId } = props\n const surrogateAbortController = surrogateAbortControllers.get(abortSignalId)\n\n if (surrogateAbortController) {\n surrogateAbortController.abort()\n }\n}\n\nexport function remoteAbortRpcHandler() {\n return {\n signalAbort: remoteAbort,\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-function-type */\nimport React, { useContext, useMemo } from 'react'\nimport {\n Divider,\n ListItemIcon,\n ListItemText,\n ListSubheader,\n Menu,\n MenuItem,\n PopoverOrigin,\n SvgIconProps,\n} from '@mui/material'\nimport { MenuItem as JBMenuItem, MenuItemEndDecoration } from './Menu'\nimport {\n bindHover,\n bindFocus,\n bindMenu,\n usePopupState,\n PopupState,\n} from 'material-ui-popup-state/hooks'\nimport HoverMenu from 'material-ui-popup-state/HoverMenu'\nimport ChevronRight from '@mui/icons-material/ChevronRight'\n\nconst CascadingContext = React.createContext({\n parentPopupState: null,\n rootPopupState: null,\n} as { parentPopupState: PopupState | null; rootPopupState: PopupState | null })\n\nfunction CascadingMenuItem({\n onClick,\n closeAfterItemClick,\n ...props\n}: {\n closeAfterItemClick: boolean\n onClick?: Function\n disabled?: boolean\n children: React.ReactNode\n}) {\n const { rootPopupState } = useContext(CascadingContext)\n if (!rootPopupState) {\n throw new Error('must be used inside a CascadingMenu')\n }\n\n return (\n {\n if (closeAfterItemClick) {\n rootPopupState.close()\n }\n onClick?.(event)\n }}\n />\n )\n}\n\nfunction CascadingSubmenu({\n title,\n Icon,\n inset,\n popupId,\n ...props\n}: {\n children: React.ReactNode\n title: React.ReactNode\n onMenuItemClick: Function\n Icon: React.ComponentType | undefined\n\n inset: boolean\n menuItems: JBMenuItem[]\n popupId: string\n}) {\n const { parentPopupState } = useContext(CascadingContext)\n const popupState = usePopupState({\n popupId,\n variant: 'popover',\n parentPopupState,\n })\n return (\n <>\n \n {Icon ? (\n \n \n \n ) : null}\n \n \n \n \n \n )\n}\n\nfunction CascadingSubmenuHover({\n popupState,\n onMenuItemClick,\n menuItems,\n classes,\n ...props\n}: {\n classes?: Record\n popupState: PopupState\n anchorOrigin: PopoverOrigin\n transformOrigin: PopoverOrigin\n onMenuItemClick: Function\n menuItems: JBMenuItem[]\n}) {\n const { rootPopupState } = useContext(CascadingContext)\n const context = useMemo(\n () => ({\n rootPopupState: rootPopupState || popupState,\n parentPopupState: popupState,\n }),\n [rootPopupState, popupState],\n )\n\n return (\n \n \n \n )\n}\n\nfunction CascadingMenu({\n popupState,\n onMenuItemClick,\n menuItems,\n ...props\n}: {\n popupState: PopupState\n onMenuItemClick: Function\n menuItems: JBMenuItem[]\n}) {\n const { rootPopupState } = useContext(CascadingContext)\n const context = useMemo(\n () => ({\n rootPopupState: rootPopupState || popupState,\n parentPopupState: popupState,\n }),\n [rootPopupState, popupState],\n )\n\n return (\n \n \n \n )\n}\n\nfunction EndDecoration({ item }: { item: JBMenuItem }) {\n if ('subMenu' in item) {\n return \n } else if (item.type === 'checkbox' || item.type === 'radio') {\n return (\n \n )\n }\n return null\n}\n\nfunction CascadingMenuList({\n onMenuItemClick,\n closeAfterItemClick,\n menuItems,\n ...props\n}: {\n menuItems: JBMenuItem[]\n closeAfterItemClick: boolean\n onMenuItemClick: Function\n}) {\n function handleClick(callback: Function) {\n return (event: React.MouseEvent) => {\n onMenuItemClick(event, callback)\n }\n }\n\n const hasIcon = menuItems.some(m => 'icon' in m && m.icon)\n return (\n <>\n {menuItems\n .sort((a, b) => (b.priority || 0) - (a.priority || 0))\n .map((item, idx) => {\n return 'subMenu' in item ? (\n \n \n \n ) : item.type === 'divider' ? (\n \n ) : item.type === 'subHeader' ? (\n \n {item.label}\n \n ) : (\n \n {item.icon ? (\n \n \n \n ) : null}{' '}\n \n
\n \n \n )\n })}\n \n )\n}\n\nfunction CascadingMenuChildren(props: {\n onMenuItemClick: Function\n closeAfterItemClick?: boolean\n menuItems: JBMenuItem[]\n popupState: PopupState\n}) {\n const { closeAfterItemClick = true, ...rest } = props\n return (\n \n \n \n )\n}\n\nexport default CascadingMenuChildren\n","import React from 'react'\nimport {\n Dialog as MUIDialog,\n DialogTitle,\n DialogProps,\n Divider,\n IconButton,\n ScopedCssBaseline,\n ThemeProvider,\n createTheme,\n useTheme,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { makeStyles } from 'tss-react/mui'\nimport { ErrorBoundary } from 'react-error-boundary'\n\n// icons\nimport CloseIcon from '@mui/icons-material/Close'\n// locals\nimport ErrorMessage from './ErrorMessage'\nimport SanitizedHTML from './SanitizedHTML'\n\nconst useStyles = makeStyles()(theme => ({\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n },\n}))\n\nfunction DialogError({ error }: { error: unknown }) {\n return (\n
\n \n
\n )\n}\n\ninterface Props extends DialogProps {\n header?: React.ReactNode\n}\n\nconst Dialog = observer(function (props: Props) {\n const { classes } = useStyles()\n const { title, header, children, onClose } = props\n const theme = useTheme()\n\n return (\n \n \n {React.isValidElement(header) ? (\n header\n ) : (\n \n \n {onClose ? (\n {\n // @ts-expect-error\n onClose()\n }}\n >\n \n \n ) : null}\n \n )}\n \n\n \n \n {children}\n \n \n \n \n )\n})\n\nexport default Dialog\n","import React, { useEffect, useState } from 'react'\nimport { InputBase, Typography, TypographyProps, useTheme } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport useMeasure from '@jbrowse/core/util/useMeasure'\n\ntype Variant = TypographyProps['variant']\n\ntype EditableTypographyClassKey =\n | 'input'\n | 'inputBase'\n | 'inputRoot'\n | 'inputFocused'\n\nconst useStyles = makeStyles()(theme => ({\n input: {},\n inputBase: {},\n typography: {\n top: 6,\n left: 2,\n position: 'absolute',\n whiteSpace: 'nowrap',\n visibility: 'hidden',\n },\n inputRoot: {\n padding: theme.spacing(0.5),\n },\n inputFocused: {\n borderStyle: 'solid',\n borderWidth: 2,\n },\n}))\n\ninterface Props {\n value: string\n setValue: (value: string) => void\n variant: Variant\n classes?: Partial>\n}\n\n// using forwardRef so that MUI Tooltip can wrap this component\nconst EditableTypography = React.forwardRef(\n function EditableTypography2(props, ref) {\n const { value, setValue, variant, ...other } = props\n const [ref2, { width }] = useMeasure()\n const [editedValue, setEditedValue] = useState()\n const [inputNode, setInputNode] = useState(null)\n const [blur, setBlur] = useState(false)\n\n useEffect(() => {\n if (blur) {\n inputNode?.blur()\n setBlur(false)\n }\n }, [blur, inputNode])\n\n // possibly tss-react does not understand the passing of props to\n // useStyles, but it appears to work\n // @ts-expect-error\n const { classes } = useStyles(props, { props })\n const theme = useTheme()\n\n const val = editedValue === undefined ? value : editedValue\n\n return (\n
\n
\n \n {val}\n \n
\n {\n setInputNode(node)\n }}\n className={classes.inputBase}\n inputProps={{\n style: {\n width,\n ...(variant && variant !== 'inherit'\n ? theme.typography[variant]\n : {}),\n },\n }}\n classes={{\n input: classes.input,\n root: classes.inputRoot,\n focused: classes.inputFocused,\n }}\n value={val}\n onChange={event => {\n setEditedValue(event.target.value)\n }}\n onKeyDown={event => {\n if (event.key === 'Enter') {\n inputNode?.blur()\n } else if (event.key === 'Escape') {\n setEditedValue(undefined)\n setBlur(true)\n }\n }}\n onBlur={() => {\n setValue(editedValue || value || '')\n setEditedValue(undefined)\n }}\n />\n
\n )\n },\n)\n\nexport default EditableTypography\n","import React, { Suspense, lazy, useState } from 'react'\nimport { IconButton, Tooltip } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n\n// locals\nimport RedErrorMessageBox from './RedErrorMessageBox'\n\n// icons\nimport RefreshIcon from '@mui/icons-material/Refresh'\nimport ReportIcon from '@mui/icons-material/Report'\n\n// lazies\nconst ErrorMessageStackTraceDialog = lazy(\n () => import('./ErrorMessageStackTraceDialog'),\n)\n\nconst useStyles = makeStyles()(theme => ({\n bg: {\n background: theme.palette.divider,\n border: '1px solid black',\n margin: 20,\n },\n iconFloat: {\n float: 'right',\n marginLeft: 100,\n },\n}))\n\nfunction parseError(str: string) {\n let snapshotError = ''\n const findStr = 'is not assignable'\n const idx = str.indexOf(findStr)\n if (idx !== -1) {\n const trim = str.slice(0, idx + findStr.length)\n // best effort to make a better error message than the default\n // mobx-state-tree\n\n // case 1. element has a path\n const match = /.*at path \"(.*)\" snapshot `(.*)` is not assignable/m.exec(\n trim,\n )\n if (match) {\n str = `Failed to load element at ${match[1]}...Failed element had snapshot`\n snapshotError = match[2]!\n }\n\n // case 2. element has no path\n const match2 = /.*snapshot `(.*)` is not assignable/.exec(trim)\n if (match2) {\n str = 'Failed to load element...Failed element had snapshot'\n snapshotError = match2[1]!\n }\n }\n return snapshotError\n}\n\nfunction ErrorButtons({\n error,\n onReset,\n}: {\n error: unknown\n onReset?: () => void\n}) {\n const { classes } = useStyles()\n const [showStack, setShowStack] = useState(false)\n return (\n
\n {typeof error === 'object' && error && 'stack' in error ? (\n \n {\n setShowStack(true)\n }}\n color=\"primary\"\n >\n \n \n \n ) : null}\n {onReset ? (\n \n \n \n \n \n ) : null}\n {showStack ? (\n \n {\n setShowStack(false)\n }}\n />\n \n ) : null}\n
\n )\n}\n\nfunction ErrorMessage({\n error,\n onReset,\n}: {\n error: unknown\n onReset?: () => void\n}) {\n const { classes } = useStyles()\n const str = `${error}`\n const str2 = str.indexOf('expected an instance of')\n const str3 = str2 !== -1 ? str.slice(0, str2) : str\n const snapshotError = parseError(str)\n return (\n \n {str3.slice(0, 10000)}\n \n {snapshotError ? (\n
\n          {JSON.stringify(JSON.parse(snapshotError), null, 2)}\n        
\n ) : null}\n
\n )\n}\n\nexport default ErrorMessage\n","import React from 'react'\nimport {\n Button,\n DialogContent,\n DialogContentText,\n DialogActions,\n} from '@mui/material'\nimport Dialog from '@jbrowse/core/ui/Dialog'\n\nexport default function FactoryResetDialog({\n onClose,\n open,\n onFactoryReset,\n}: {\n onClose: () => void\n open: boolean\n onFactoryReset: () => void\n}) {\n function handleDialogClose(action?: string) {\n if (action === 'reset') {\n onFactoryReset()\n }\n onClose()\n }\n\n return (\n {\n handleDialogClose()\n }}\n open={open}\n >\n \n \n Are you sure you want to reset? This will restore the default\n configuration.\n \n \n \n {\n handleDialogClose()\n }}\n color=\"primary\"\n >\n Cancel\n \n {\n handleDialogClose('reset')\n }}\n color=\"primary\"\n variant=\"contained\"\n >\n OK\n \n \n \n )\n}\n","import SvgIcon, { SvgIconProps } from '@mui/material/SvgIcon'\nimport React from 'react'\n\n// Icons below come from https://material.io/resources/icons/?icon=line_style&style=baseline\nexport function ContentCopy(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\n// https://materialdesignicons.com/ text-search icon\nexport function Indexing(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\nexport function ContentCut(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\nexport function ContentPaste(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\n// format-list-checkbox from https://materialdesignicons.com/\nexport function TrackSelector(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\n// content-save-edit from https://materialdesignicons.com/\nexport function SaveAs(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\n// content-save from https://materialdesignicons.com/\nexport function Save(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\n// dna from https://materialdesignicons.com/\nexport function DNA(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n\nexport function Cable(props: SvgIconProps) {\n return (\n \n \n \n )\n}\n","import React from 'react'\n\ntype LogoVariant = 'color' | 'black' | 'white'\n\ninterface LogoProps {\n variant?: LogoVariant\n}\n\nfunction getColors(variant?: LogoVariant) {\n if (variant === 'black') {\n return {\n midnight: '#808080',\n forrest: '#666666',\n grape: '#4d4d4d',\n mandarin: '#333333',\n gray: '#1a1a1a',\n }\n }\n if (variant === 'white') {\n return {\n midnight: '#ffffff',\n forrest: '#e6e6e6',\n grape: '#cccccc',\n mandarin: '#b3b3b3',\n gray: '#999999',\n }\n }\n return {\n midnight: '#0d233f',\n forrest: '#135560',\n grape: '#721e63',\n mandarin: '#ffb11d',\n gray: '#dadada',\n }\n}\n\nexport function Logomark({ variant }: LogoProps) {\n return (\n \n \n \n )\n}\n\nexport function LogoFull({ variant }: LogoProps) {\n return (\n \n \n \n \n )\n}\n\nfunction Icon({ variant }: LogoProps) {\n const colors = getColors(variant)\n return (\n <>\n \n \n \n \n \n \n )\n}\n\nfunction Text({ variant }: LogoProps) {\n const colors = getColors(variant)\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport {\n Divider,\n ListItemIcon,\n ListItemText,\n ListSubheader,\n MenuProps as MUIMenuProps,\n MenuItem as MUIMenuItem,\n MenuItemProps,\n MenuList,\n Paper,\n Popover,\n PopoverProps,\n SvgIconProps,\n Grow,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n// icons\nimport ArrowRightIcon from '@mui/icons-material/ArrowRight'\nimport CheckBoxIcon from '@mui/icons-material/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank'\nimport RadioButtonCheckedIcon from '@mui/icons-material/RadioButtonChecked'\nimport RadioButtonUncheckedIcon from '@mui/icons-material/RadioButtonUnchecked'\n\n// other\nimport { findLastIndex } from '../util'\n\nconst useStyles = makeStyles()({\n paper: {\n position: 'fixed',\n overflowY: 'auto',\n overflowX: 'hidden',\n // So we see the popover when it's empty.\n minWidth: 16,\n minHeight: 16,\n maxWidth: 'calc(100% - 32px)',\n maxHeight: 'calc(100% - 32px)',\n top: 0,\n left: 0,\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n },\n menuItemEndDecoration: {\n padding: 0,\n margin: 0,\n height: 16,\n },\n})\n\ninterface MenuItemEndDecorationSubMenuProps {\n type: 'subMenu'\n}\n\ninterface MenuItemEndDecorationSelectorProps {\n type: 'checkbox' | 'radio'\n checked: boolean\n disabled?: boolean\n}\n\ntype MenuItemEndDecorationProps =\n | MenuItemEndDecorationSubMenuProps\n | MenuItemEndDecorationSelectorProps\n\nexport function MenuItemEndDecoration(props: MenuItemEndDecorationProps) {\n const { classes } = useStyles()\n const { type } = props\n let checked: boolean | undefined\n let disabled: boolean | undefined\n if ('checked' in props) {\n ;({ checked, disabled } = props)\n }\n let icon: React.ReactElement\n switch (type) {\n case 'subMenu': {\n icon = \n break\n }\n case 'checkbox': {\n if (checked) {\n const color = disabled ? 'inherit' : undefined\n icon = \n } else {\n icon = \n }\n break\n }\n case 'radio': {\n if (checked) {\n const color = disabled ? 'inherit' : undefined\n icon = \n } else {\n icon = \n }\n break\n }\n // No default\n }\n return
{icon}
\n}\n\nexport interface MenuDivider {\n priority?: number\n type: 'divider'\n}\n\nexport interface MenuSubHeader {\n type: 'subHeader'\n priority?: number\n label: string\n}\n\nexport interface BaseMenuItem {\n id?: string // used as react key if provided\n label: React.ReactNode\n priority?: number\n subLabel?: string\n icon?: React.ComponentType\n disabled?: boolean\n}\n\nexport interface NormalMenuItem extends BaseMenuItem {\n type?: 'normal'\n onClick: (...args: any[]) => void\n}\n\nexport interface CheckboxMenuItem extends BaseMenuItem {\n type: 'checkbox'\n checked: boolean\n onClick: (...args: any[]) => void\n}\n\nexport interface RadioMenuItem extends BaseMenuItem {\n type: 'radio'\n checked: boolean\n onClick: (...args: any[]) => void\n}\n\nexport interface SubMenuItem extends BaseMenuItem {\n type?: 'subMenu'\n subMenu: MenuItem[]\n}\n\nexport type MenuItem =\n | MenuDivider\n | MenuSubHeader\n | NormalMenuItem\n | CheckboxMenuItem\n | RadioMenuItem\n | SubMenuItem\n\ntype AnchorElProp = MUIMenuProps['anchorEl']\ntype OpenProp = MUIMenuProps['open']\ntype OnCloseProp = MUIMenuProps['onClose']\n\ninterface MenuPageProps {\n menuItems: MenuItem[]\n onMenuItemClick: (\n event: React.MouseEvent,\n callback: (...args: any[]) => void,\n ) => void\n anchorEl?: AnchorElProp\n open: OpenProp\n onClose: OnCloseProp\n top?: boolean\n}\n\ntype MenuItemStyleProp = MenuItemProps['style']\n\nfunction checkIfValid(m: MenuItem) {\n return m.type !== 'divider' && m.type !== 'subHeader' && !m.disabled\n}\nfunction findNextValidIdx(menuItems: MenuItem[], currentIdx: number) {\n const idx = menuItems.slice(currentIdx + 1).findIndex(checkIfValid)\n if (idx === -1) {\n return idx\n }\n return currentIdx + 1 + idx\n}\n\nfunction findPreviousValidIdx(menuItems: MenuItem[], currentIdx: number) {\n return findLastIndex(menuItems.slice(0, currentIdx), checkIfValid)\n}\n\nconst MenuPage = React.forwardRef(\n function MenuPage2(props, ref) {\n const [subMenuAnchorEl, setSubMenuAnchorEl] = useState()\n const [openSubMenuIdx, setOpenSubMenuIdx] = useState()\n const [isSubMenuOpen, setIsSubMenuOpen] = useState(false)\n const [selectedMenuItemIdx, setSelectedMenuItemIdx] = useState()\n const [position, setPosition] = useState<{\n top?: number\n left?: number\n }>()\n const paperRef = useRef(null)\n const { classes } = useStyles()\n\n const {\n menuItems,\n onMenuItemClick,\n open,\n onClose,\n anchorEl,\n top = false,\n } = props\n\n useEffect(() => {\n if (!open) {\n setSubMenuAnchorEl(undefined)\n setOpenSubMenuIdx(undefined)\n }\n }, [open])\n\n useEffect(() => {\n const shouldSubMenuBeOpen = open && Boolean(subMenuAnchorEl)\n let timer: ReturnType\n if (shouldSubMenuBeOpen && !isSubMenuOpen) {\n timer = setTimeout(() => {\n setIsSubMenuOpen(true)\n }, 300)\n } else if (!shouldSubMenuBeOpen && isSubMenuOpen) {\n timer = setTimeout(() => {\n setIsSubMenuOpen(false)\n }, 300)\n }\n return () => {\n clearTimeout(timer)\n }\n }, [isSubMenuOpen, open, subMenuAnchorEl])\n\n useEffect(() => {\n if (anchorEl) {\n const rect = (anchorEl as HTMLElement).getBoundingClientRect()\n if (position) {\n if (\n rect.top !== position.top ||\n rect.left + rect.width !== position.left\n ) {\n setPosition({ top: rect.top, left: rect.left + rect.width })\n }\n } else {\n setPosition({ top: rect.top, left: rect.left + rect.width })\n }\n } else if (!position) {\n setPosition({})\n }\n }, [position, anchorEl])\n\n const hasIcon = menuItems.some(\n menuItem => 'icon' in menuItem && menuItem.icon,\n )\n const menuItemStyle: MenuItemStyleProp = {}\n\n function handleClick(callback: (...args: any[]) => void) {\n return (event: React.MouseEvent) => {\n onMenuItemClick(event, callback)\n }\n }\n\n const ListContents = (\n <>\n \n {menuItems\n .sort((a, b) => (b.priority || 0) - (a.priority || 0))\n .map((menuItem, idx) => {\n if (menuItem.type === 'divider') {\n return (\n \n )\n }\n if (menuItem.type === 'subHeader') {\n return (\n \n {menuItem.label}\n \n )\n }\n let icon = null\n let endDecoration = null\n if (menuItem.icon) {\n const Icon = menuItem.icon\n icon = (\n \n \n \n )\n }\n if ('subMenu' in menuItem) {\n endDecoration = \n } else if (\n menuItem.type === 'checkbox' ||\n menuItem.type === 'radio'\n ) {\n endDecoration = (\n \n )\n }\n const onClick =\n 'onClick' in menuItem\n ? handleClick(menuItem.onClick)\n : undefined\n return (\n {\n if (e.currentTarget !== document.activeElement) {\n e.currentTarget.focus()\n setSelectedMenuItemIdx(idx)\n }\n if ('subMenu' in menuItem) {\n if (openSubMenuIdx !== idx) {\n setSubMenuAnchorEl(e.currentTarget)\n setOpenSubMenuIdx(idx)\n }\n } else {\n setSubMenuAnchorEl(undefined)\n setOpenSubMenuIdx(undefined)\n }\n }}\n onKeyDown={e => {\n switch (e.key) {\n case 'ArrowLeft':\n case 'Escape': {\n onClose?.(e, 'escapeKeyDown')\n\n break\n }\n case 'ArrowUp': {\n setSelectedMenuItemIdx(\n findPreviousValidIdx(menuItems, idx),\n )\n\n break\n }\n case 'ArrowDown': {\n const a = findNextValidIdx(menuItems, idx)\n setSelectedMenuItemIdx(a)\n\n break\n }\n default: {\n if (\n 'subMenu' in menuItem &&\n (e.key === 'ArrowRight' || e.key === 'Enter')\n ) {\n setSubMenuAnchorEl(e.currentTarget)\n setOpenSubMenuIdx(idx)\n setIsSubMenuOpen(true)\n }\n }\n }\n }}\n disabled={Boolean(menuItem.disabled)}\n >\n {icon}\n \n {endDecoration}\n \n )\n })}\n \n {menuItems.map((menuItem, idx) => {\n let subMenu = null\n if ('subMenu' in menuItem) {\n subMenu = (\n {\n setIsSubMenuOpen(false)\n setSubMenuAnchorEl(undefined)\n }}\n onMenuItemClick={onMenuItemClick}\n menuItems={menuItem.subMenu}\n />\n )\n }\n return subMenu\n })}\n \n )\n\n return top ? (\n ListContents\n ) : (\n // Grow is required for cascading sub-menus\n \n \n {ListContents}\n \n \n )\n },\n)\n\ninterface MenuProps extends PopoverProps {\n menuItems: MenuItem[]\n onMenuItemClick: (\n event: React.MouseEvent,\n callback: (...args: any[]) => void,\n ) => void\n}\n\nfunction Menu(props: MenuProps) {\n const { open, onClose, menuItems, onMenuItemClick, ...other } = props\n\n return (\n \n \n \n )\n}\n\nexport default Menu\n","import React, { useEffect, useState, useRef } from 'react'\nimport { makeStyles } from 'tss-react/mui'\n\nconst useStyles = makeStyles()({\n horizontalHandle: {\n cursor: 'row-resize',\n width: '100%',\n },\n verticalHandle: {\n cursor: 'col-resize',\n height: '100%',\n },\n flexbox_verticalHandle: {\n cursor: 'col-resize',\n alignSelf: 'stretch', // the height: 100% is actually unable to function inside flexbox\n },\n flexbox_horizontalHandle: {\n cursor: 'row-resize',\n alignSelf: 'stretch', // similar to above\n },\n})\n\nfunction ResizeHandle({\n onDrag,\n vertical = false,\n flexbox = false,\n className: originalClassName,\n onMouseDown,\n ...props\n}: {\n onDrag: (\n lastFrameDistance: number,\n totalDistance: number,\n ) => number | undefined\n onMouseDown?: (event: React.MouseEvent) => void\n vertical?: boolean\n flexbox?: boolean\n className?: string\n [props: string]: unknown\n}) {\n const [mouseDragging, setMouseDragging] = useState(false)\n const initialPosition = useRef(0)\n const prevPos = useRef(0)\n const { classes, cx } = useStyles()\n\n useEffect(() => {\n function mouseMove(event: MouseEvent) {\n event.preventDefault()\n const pos = vertical ? event.clientX : event.clientY\n const totalDistance = initialPosition.current - pos\n const lastFrameDistance = pos - prevPos.current\n prevPos.current = pos\n onDrag(lastFrameDistance, totalDistance)\n }\n\n function mouseUp() {\n setMouseDragging(false)\n }\n if (mouseDragging) {\n window.addEventListener('mousemove', mouseMove, true)\n window.addEventListener('mouseup', mouseUp, true)\n return () => {\n window.removeEventListener('mousemove', mouseMove, true)\n window.removeEventListener('mouseup', mouseUp, true)\n }\n }\n return () => {}\n }, [mouseDragging, onDrag, vertical])\n\n let className: string\n if (flexbox) {\n className = vertical\n ? classes.flexbox_verticalHandle\n : classes.flexbox_horizontalHandle\n } else if (vertical) {\n className = classes.verticalHandle\n } else {\n className = classes.horizontalHandle\n }\n\n return (\n {\n event.preventDefault()\n const pos = vertical ? event.clientX : event.clientY\n initialPosition.current = pos\n prevPos.current = pos\n setMouseDragging(true)\n onMouseDown?.(event)\n }}\n className={cx(className, originalClassName)}\n {...props}\n />\n )\n}\n\nexport default ResizeHandle\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { Button, DialogActions, DialogContent, Typography } from '@mui/material'\nimport Dialog from './Dialog'\n\nconst ReturnToImportFormDialog = observer(function ({\n model,\n handleClose,\n}: {\n model: { clearView: () => void }\n handleClose: () => void\n}) {\n return (\n \n \n \n Are you sure you want to return to the import form? This will lose\n your current view\n \n \n \n {\n model.clearView()\n handleClose()\n }}\n variant=\"contained\"\n color=\"primary\"\n autoFocus\n >\n OK\n \n {\n handleClose()\n }}\n color=\"secondary\"\n variant=\"contained\"\n >\n Cancel\n \n \n \n )\n})\n\nexport default ReturnToImportFormDialog\n","import React from 'react'\nimport escapeHTML from 'escape-html'\nimport dompurify from 'dompurify'\nimport { linkify } from '../util'\n\n// source https://github.com/sindresorhus/html-tags/blob/master/html-tags.json\n// with some random uncommon ones removed. note: we just use this to run the content\n// through dompurify without escaping if we see an htmlTag from this list\n// otherwise we escape angle brackets and things prematurely because it might be\n// something like in VCF. Ref #657\nconst htmlTags = [\n 'a',\n 'b',\n 'br',\n 'code',\n 'div',\n 'em',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'i',\n 'img',\n 'li',\n 'p',\n 'pre',\n 'span',\n 'small',\n 'strong',\n 'table',\n 'tbody',\n 'sup',\n 'sub',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'tr',\n 'u',\n 'ul',\n]\n\nlet added = false\n\n// adapted from is-html\n// https://github.com/sindresorhus/is-html/blob/master/index.js\nconst full = new RegExp(htmlTags.map(tag => `<${tag}\\\\b[^>]*>`).join('|'), 'i')\nfunction isHTML(str: string) {\n return full.test(str)\n}\n\n// note this is mocked during testing, see\n// packages/__mocks__/@jbrowse/core/ui/SanitizedHTML something about dompurify\n// behavior causes errors during tests, was seen in\n// products/jbrowse-web/src/tests/Connection.test.tsx test (can delete mock to\n// see)\n//\nexport default function SanitizedHTML({\n html: pre,\n className,\n}: {\n className?: string\n html: string\n}) {\n // try to add links to the text first\n const html = linkify(pre)\n const value = isHTML(html) ? html : escapeHTML(html)\n if (!added) {\n added = true\n // see https://github.com/cure53/DOMPurify/issues/317\n // only have to add this once, and can't do it globally because dompurify\n // not yet initialized at global scope\n dompurify.addHook(\n 'afterSanitizeAttributes',\n (node: {\n tagName: string\n setAttribute: (arg0: string, arg1: string) => void\n }) => {\n if (node.tagName === 'A') {\n node.setAttribute('rel', 'noopener noreferrer')\n node.setAttribute('target', '_blank')\n }\n },\n )\n }\n\n return (\n \n )\n}\n","import { blue, green, red, grey, orange } from '@mui/material/colors'\nimport { createTheme, ThemeOptions } from '@mui/material/styles'\nimport type {\n PaletteAugmentColorOptions,\n PaletteColor,\n} from '@mui/material/styles/createPalette'\nimport deepmerge from 'deepmerge'\n\ndeclare module '@mui/material/styles/createPalette' {\n interface Palette {\n tertiary: Palette['primary']\n quaternary: Palette['primary']\n highlight: Palette['primary']\n stopCodon?: string\n startCodon?: string\n bases: {\n A: Palette['primary']\n C: Palette['primary']\n G: Palette['primary']\n T: Palette['primary']\n }\n frames: [\n null,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n ]\n framesCDS: [\n null,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n ]\n }\n interface PaletteOptions {\n tertiary?: PaletteOptions['primary']\n quaternary?: PaletteOptions['primary']\n highlight?: PaletteOptions['primary']\n stopCodon?: string\n startCodon?: string\n bases?: {\n A?: PaletteOptions['primary']\n C?: PaletteOptions['primary']\n G?: PaletteOptions['primary']\n T?: PaletteOptions['primary']\n }\n framesCDS?: [\n null,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n ]\n frames?: [\n null,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n Palette['primary'] | undefined,\n ]\n }\n}\n\ntype Frames = [\n null,\n PaletteColor,\n PaletteColor,\n PaletteColor,\n PaletteColor,\n PaletteColor,\n PaletteColor,\n]\n\nconst refTheme = createTheme()\nconst midnight = '#0D233F'\nconst grape = '#721E63'\nconst forest = refTheme.palette.augmentColor({ color: { main: '#135560' } })\nconst mandarin = refTheme.palette.augmentColor({ color: { main: '#FFB11D' } })\nconst bases = {\n A: refTheme.palette.augmentColor({ color: green }),\n C: refTheme.palette.augmentColor({ color: blue }),\n G: refTheme.palette.augmentColor({ color: orange }),\n T: refTheme.palette.augmentColor({ color: red }),\n}\nconst framesCDS = [\n null,\n refTheme.palette.augmentColor({ color: { main: '#FF8080' } }),\n refTheme.palette.augmentColor({ color: { main: '#80FF80' } }),\n refTheme.palette.augmentColor({ color: { main: '#8080FF' } }),\n refTheme.palette.augmentColor({ color: { main: '#8080FF' } }),\n refTheme.palette.augmentColor({ color: { main: '#80FF80' } }),\n refTheme.palette.augmentColor({ color: { main: '#FF8080' } }),\n] as Frames\nconst frames = [\n null,\n refTheme.palette.augmentColor({ color: { main: '#8f8f8f' } }),\n refTheme.palette.augmentColor({ color: { main: '#adadad' } }),\n refTheme.palette.augmentColor({ color: { main: '#d8d8d8' } }),\n refTheme.palette.augmentColor({ color: { main: '#d8d8d8' } }),\n refTheme.palette.augmentColor({ color: { main: '#adadad' } }),\n refTheme.palette.augmentColor({ color: { main: '#8f8f8f' } }),\n] as Frames\nconst stopCodon = '#e22'\nconst startCodon = '#3e3'\n\nfunction stockTheme() {\n return {\n palette: {\n mode: undefined,\n primary: { main: midnight },\n secondary: { main: grape },\n tertiary: forest,\n quaternary: mandarin,\n highlight: mandarin,\n stopCodon,\n startCodon,\n bases,\n frames,\n framesCDS,\n },\n components: {\n MuiLink: {\n styleOverrides: {\n // the default link color uses theme.palette.primary.main which is\n // very bad with dark mode+midnight primary\n root: ({ theme }) => ({\n color: theme.palette.tertiary.main,\n }),\n },\n },\n },\n } satisfies ThemeOptions\n}\n\nfunction getDefaultTheme() {\n return {\n ...stockTheme(),\n name: 'Default (from config)',\n }\n}\n\nfunction getLightStockTheme() {\n return {\n ...stockTheme(),\n name: 'Light (stock)',\n }\n}\n\nfunction getDarkStockTheme() {\n return {\n name: 'Dark (stock)',\n palette: {\n mode: 'dark',\n primary: { main: midnight },\n secondary: { main: grape },\n tertiary: forest,\n quaternary: mandarin,\n highlight: mandarin,\n stopCodon,\n startCodon,\n bases,\n frames,\n framesCDS,\n },\n components: {\n MuiAppBar: {\n defaultProps: {\n enableColorOnDark: true,\n },\n styleOverrides: {\n root: ({ theme }) => {\n return theme.palette.primary.main\n },\n },\n },\n },\n } satisfies ThemeOptions & { name: string }\n}\n\nfunction getDarkMinimalTheme() {\n return {\n name: 'Dark (minimal)',\n palette: {\n mode: 'dark' as const,\n primary: { main: grey[700] },\n secondary: { main: grey[800] },\n tertiary: refTheme.palette.augmentColor({ color: { main: grey[900] } }),\n quaternary: mandarin,\n highlight: mandarin,\n stopCodon,\n startCodon,\n bases,\n frames,\n framesCDS,\n },\n } satisfies ThemeOptions & { name: string }\n}\n\nfunction getMinimalTheme() {\n return {\n name: 'Light (minimal)',\n palette: {\n primary: { main: grey[900] },\n secondary: { main: grey[800] },\n tertiary: refTheme.palette.augmentColor({ color: { main: grey[900] } }),\n quaternary: mandarin,\n highlight: mandarin,\n stopCodon,\n startCodon,\n bases,\n frames,\n framesCDS,\n },\n } satisfies ThemeOptions & { name: string }\n}\n\nexport const defaultThemes = {\n default: getDefaultTheme(),\n lightStock: getLightStockTheme(),\n lightMinimal: getMinimalTheme(),\n darkMinimal: getDarkMinimalTheme(),\n darkStock: getDarkStockTheme(),\n} as ThemeMap\n\nfunction overwriteArrayMerge(_: unknown, sourceArray: unknown[]) {\n return sourceArray\n}\n\nexport function createJBrowseBaseTheme(theme?: ThemeOptions): ThemeOptions {\n const themeP: ThemeOptions = {\n palette: theme?.palette,\n typography: {\n fontSize: 12,\n },\n spacing: 4,\n components: {\n MuiButton: {\n defaultProps: {\n size: 'small' as const,\n },\n styleOverrides: {\n // the default button, especially when not using variant=contained,\n // uses theme.palette.primary.main for text which is very bad with\n // dark mode+midnight primary\n //\n // keeps text secondary for darkmode, uses\n // a text-like coloring to ensure contrast\n // xref https://stackoverflow.com/a/72546130/2129219\n root: ({ theme }) =>\n theme.palette.mode === 'dark'\n ? {\n color: theme.palette.text.primary,\n }\n : undefined,\n },\n },\n MuiAccordion: {\n defaultProps: {\n disableGutters: true,\n slotProps: {\n transition: {\n timeout: 150,\n unmountOnExit: true,\n },\n },\n },\n },\n MuiFilledInput: {\n defaultProps: {\n margin: 'dense' as const,\n },\n },\n MuiFormControl: {\n defaultProps: {\n margin: 'dense' as const,\n size: 'small' as const,\n },\n },\n MuiFormHelperText: {\n defaultProps: {\n margin: 'dense' as const,\n },\n },\n\n MuiIconButton: {\n defaultProps: {\n size: 'small' as const,\n },\n },\n MuiInputBase: {\n defaultProps: {\n margin: 'dense' as const,\n },\n },\n MuiAutocomplete: {\n defaultProps: {\n size: 'small' as const,\n },\n },\n MuiInputLabel: {\n defaultProps: {\n margin: 'dense' as const,\n },\n },\n MuiToolbar: {\n defaultProps: {\n variant: 'dense' as const,\n },\n },\n MuiListItem: {\n defaultProps: {\n dense: true,\n },\n },\n MuiOutlinedInput: {\n defaultProps: {\n margin: 'dense' as const,\n },\n },\n MuiFab: {\n defaultProps: {\n size: 'small' as const,\n },\n styleOverrides: {\n secondary: {\n // @ts-expect-error\n backgroundColor: theme?.palette?.quaternary?.main,\n },\n },\n },\n MuiTable: {\n defaultProps: {\n size: 'small' as const,\n },\n },\n MuiPopover: {\n defaultProps: {\n transitionDuration: 0,\n },\n },\n MuiMenu: {\n defaultProps: {\n transitionDuration: 0,\n },\n },\n MuiMenuItem: {\n defaultProps: {\n dense: true,\n },\n },\n\n MuiTextField: {\n defaultProps: {\n margin: 'dense' as const,\n variant: 'standard' as const,\n },\n },\n MuiLink: {\n styleOverrides: {\n // the default link color uses theme.palette.primary.main which is\n // very bad with dark mode+midnight primary\n root: ({ theme }) => ({\n color: theme.palette.text.secondary,\n }),\n },\n },\n MuiCheckbox: {\n styleOverrides: {\n // the default checkbox-when-checked color uses\n // theme.palette.primary.main which is very bad with dark\n // mode+midnight primary\n //\n // keeps the forest-green checkbox by default but for darkmode, uses\n // a text-like coloring to ensure contrast xref\n // https://stackoverflow.com/a/72546130/2129219\n root: ({ theme }) =>\n theme.palette.mode === 'dark'\n ? {\n color: theme.palette.text.secondary,\n '&.Mui-checked': {\n color: theme.palette.text.secondary,\n },\n }\n : undefined,\n },\n },\n MuiRadio: {\n styleOverrides: {\n // the default checkbox-when-checked color uses\n // theme.palette.primary.main which is very bad with dark\n // mode+midnight primary\n //\n // keeps the forest-green checkbox by default but for darkmode, uses\n // a text-like coloring to ensure contrast\n // xref https://stackoverflow.com/a/72546130/2129219\n root: ({ theme }) =>\n theme.palette.mode === 'dark'\n ? {\n color: theme.palette.text.secondary,\n '&.Mui-checked': {\n color: theme.palette.text.secondary,\n },\n }\n : undefined,\n },\n },\n MuiFormLabel: {\n styleOverrides: {\n // the default checkbox-when-checked color uses\n // theme.palette.primary.main which is very bad with dark\n // mode+midnight primary\n //\n // keeps the forest-green checkbox by default but for darkmode, uses\n // a text-like coloring to ensure contrast\n // xref https://stackoverflow.com/a/72546130/2129219\n //\n\n root: ({ theme }) =>\n theme.palette.mode === 'dark'\n ? {\n color: theme.palette.text.secondary,\n '&.Mui-focused': {\n color: theme.palette.text.secondary,\n },\n }\n : undefined,\n },\n },\n MuiAccordionSummary: {\n styleOverrides: {\n root: {\n // @ts-expect-error\n backgroundColor: theme?.palette?.tertiary?.main,\n },\n content: {\n // @ts-expect-error\n color: theme?.palette?.tertiary?.contrastText,\n },\n },\n },\n MuiToggleButtonGroup: {\n defaultProps: {\n size: 'small' as const,\n },\n },\n },\n }\n return deepmerge(themeP, theme || {}, { arrayMerge: overwriteArrayMerge })\n}\n\ntype ThemeMap = Record\n\nexport function createJBrowseTheme(\n configTheme: ThemeOptions = {},\n themes = defaultThemes,\n themeName = 'default',\n) {\n return createTheme(\n createJBrowseBaseTheme(\n themeName === 'default'\n ? deepmerge(themes.default!, augmentTheme(configTheme), {\n arrayMerge: overwriteArrayMerge,\n })\n : augmentThemePlus(themes[themeName]),\n ),\n )\n}\n\nfunction augmentTheme(theme: ThemeOptions = {}) {\n if (theme.palette?.tertiary) {\n theme = deepmerge(theme, {\n palette: {\n tertiary: refTheme.palette.augmentColor(\n 'color' in theme.palette.tertiary\n ? (theme.palette.tertiary as PaletteAugmentColorOptions)\n : { color: theme.palette.tertiary },\n ),\n },\n })\n }\n\n if (theme.palette?.quaternary) {\n theme = deepmerge(theme, {\n palette: {\n quaternary: refTheme.palette.augmentColor(\n 'color' in theme.palette.quaternary\n ? (theme.palette.quaternary as PaletteAugmentColorOptions)\n : { color: theme.palette.quaternary },\n ),\n },\n })\n }\n\n return theme\n}\n\n// creates some blank quaternary/tertiary colors if unsupplied by a user theme\nfunction augmentThemePlus(theme: ThemeOptions = {}) {\n theme = augmentTheme(theme)\n if (!theme.palette?.quaternary) {\n theme = deepmerge(theme, {\n palette: {\n quaternary: refTheme.palette.augmentColor({\n color: {\n main: '#aaa',\n },\n }),\n },\n })\n }\n if (!theme.palette?.tertiary) {\n theme = deepmerge(theme, {\n palette: {\n tertiary: refTheme.palette.augmentColor({\n color: {\n main: '#aaa',\n },\n }),\n },\n })\n }\n return theme\n}\n","import React, { useState, useEffect } from 'react'\nimport {\n TextField,\n MenuItem,\n InputProps as IIP,\n TextFieldProps as TFP,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { makeStyles } from 'tss-react/mui'\n\n// locals\nimport { getConf } from '../configuration'\nimport { useLocalStorage, AbstractSessionModel } from '../util'\n\nconst useStyles = makeStyles()({\n importFormEntry: {\n minWidth: 180,\n },\n})\n\nconst AssemblySelector = observer(function ({\n session,\n onChange,\n selected,\n InputProps,\n TextFieldProps,\n localStorageKey,\n helperText = 'Select assembly to view',\n}: {\n session: AbstractSessionModel\n helperText?: string\n onChange: (arg: string) => void\n selected?: string\n localStorageKey?: string\n InputProps?: IIP\n TextFieldProps?: TFP\n}) {\n const { classes } = useStyles()\n const { assemblyNames, assemblyManager } = session\n\n // constructs a localstorage key based on host/path/config to help\n // remember. non-config assists usage with e.g. embedded apps\n const config = new URLSearchParams(window.location.search).get('config')\n const [lastSelected, setLastSelected] =\n typeof jest === 'undefined' && localStorageKey\n ? useLocalStorage(\n `lastAssembly-${[\n window.location.host + window.location.pathname,\n config,\n localStorageKey,\n ].join('-')}`,\n selected,\n )\n : useState(selected)\n\n const selection = assemblyNames.includes(lastSelected || '')\n ? lastSelected\n : selected\n\n useEffect(() => {\n if (selection && selection !== selected) {\n onChange(selection)\n }\n }, [selection, onChange, selected])\n\n const error = assemblyNames.length ? '' : 'No configured assemblies'\n return (\n {\n setLastSelected(event.target.value)\n }}\n error={!!error}\n InputProps={InputProps}\n disabled={!!error}\n className={classes.importFormEntry}\n {...TextFieldProps}\n >\n {assemblyNames.map(name => {\n const assembly = assemblyManager.get(name)\n const displayName = assembly ? getConf(assembly, 'displayName') : ''\n return (\n \n {displayName || name}\n \n )\n })}\n \n )\n})\n\nexport default AssemblySelector\n","import React, { useCallback, useEffect, useState } from 'react'\nimport { observer } from 'mobx-react'\nimport {\n Box,\n FormHelperText,\n InputLabel,\n Menu,\n MenuItem,\n Tooltip,\n ToggleButtonGroup,\n ToggleButton,\n ToggleButtonProps,\n} from '@mui/material'\n\n// locals\nimport {\n FileLocation,\n AbstractRootModel,\n isUriLocation,\n isAppRootModel,\n} from '../../util/types'\nimport LocalFileChooser from './LocalFileChooser'\nimport UrlChooser from './UrlChooser'\nimport { notEmpty, useLocalStorage } from '../../util'\n\n// icons\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'\n\nconst NUM_SHOWN = 2\n\nfunction ToggleButtonWithTooltip(props: ToggleButtonProps) {\n const { title, children, ...other } = props\n return (\n \n {children}\n \n )\n}\n\nfunction shorten(str: string, len: number) {\n if (typeof str === 'string' && str.length > len) {\n return `${str.slice(0, Math.max(0, len))}…`\n }\n return str\n}\n\nconst FileSelector = observer(function (props: {\n location?: FileLocation\n setLocation: (param: FileLocation) => void\n setName?: (str: string) => void\n name?: string\n description?: string\n rootModel?: AbstractRootModel\n}) {\n const { location, name, description, rootModel, setLocation } = props\n const fileOrUrl = !location || isUriLocation(location) ? 'url' : 'file'\n const [toggleButtonValue, setToggleButtonValue] = useState(\n location && 'internetAccountId' in location && location.internetAccountId\n ? location.internetAccountId\n : fileOrUrl,\n )\n const accounts = isAppRootModel(rootModel)\n ? rootModel.internetAccounts.filter(\n f => f.type !== 'HTTPBasicInternetAccount',\n )\n : []\n\n const [recentlyUsedInternetAccounts, setRecentlyUsedInternetAccounts] =\n useLocalStorage('fileSelector-recentlyUsedInternetAccounts', [] as string[])\n\n const map = Object.fromEntries(accounts.map(a => [a.internetAccountId, a]))\n const arr = [...new Set(accounts.map(s => s.internetAccountId))].sort(\n (a, b) =>\n recentlyUsedInternetAccounts.indexOf(a) -\n recentlyUsedInternetAccounts.indexOf(b),\n )\n const shownAccounts = arr.slice(0, NUM_SHOWN)\n const hiddenAccounts = arr.slice(NUM_SHOWN)\n const [anchorEl, setAnchorEl] = useState(null)\n const selectedAccount = map[toggleButtonValue]\n\n const setLocationWithAccount = useCallback(\n (location: FileLocation) => {\n setLocation({\n ...location,\n ...(selectedAccount && isUriLocation(location)\n ? { internetAccountId: selectedAccount.internetAccountId }\n : {}),\n })\n },\n [setLocation, selectedAccount],\n )\n\n useEffect(() => {\n // if you swap account selection after inputting url\n if (\n selectedAccount &&\n isUriLocation(location) &&\n location.internetAccountId !== selectedAccount.internetAccountId\n ) {\n setLocationWithAccount(location)\n }\n }, [location, selectedAccount, setLocationWithAccount])\n\n let locationInput = (\n \n )\n if (toggleButtonValue === 'file') {\n locationInput = \n }\n if (selectedAccount?.SelectorComponent) {\n const { SelectorComponent } = selectedAccount\n locationInput = (\n \n )\n }\n\n return (\n <>\n \n {name}\n \n \n \n {\n setRecentlyUsedInternetAccounts([\n ...new Set(\n [newState, ...recentlyUsedInternetAccounts].filter(notEmpty),\n ),\n ])\n if (newState) {\n setToggleButtonValue(newState)\n }\n if (isUriLocation(location)) {\n setLocationWithAccount(location)\n }\n }}\n aria-label=\"file, url, or account picker\"\n >\n {new URLSearchParams(window.location.search).get(\n 'adminKey',\n ) ? null : (\n \n File\n \n )}\n \n URL\n \n {shownAccounts.map(id => {\n const { internetAccountId, name, toggleContents } = map[id]!\n return (\n \n {typeof toggleContents === 'string'\n ? shorten(toggleContents, 5)\n : toggleContents || shorten(name, 5)}\n \n )\n })}\n {hiddenAccounts.length > 0 ? (\n // @ts-expect-error\n {\n setAnchorEl(event.target as HTMLElement)\n }}\n selected={false}\n >\n More\n \n \n ) : null}\n \n\n {\n setAnchorEl(null)\n }}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\n transformOrigin={{ vertical: 'top', horizontal: 'center' }}\n >\n {hiddenAccounts.map(id => {\n const { internetAccountId, name } = map[id]!\n return (\n {\n setRecentlyUsedInternetAccounts([\n ...new Set(\n [\n internetAccountId,\n ...recentlyUsedInternetAccounts,\n ].filter(notEmpty),\n ),\n ])\n\n setToggleButtonValue(internetAccountId)\n setAnchorEl(null)\n }}\n >\n {name}\n \n )\n })}\n
\n \n \n {locationInput}\n {description}\n \n )\n})\n\nexport default FileSelector\n","import React, { useState, useRef, useEffect } from 'react'\nimport { drawImageOntoCanvasContext } from '../util/offscreenCanvasPonyfill'\n\nfunction PrerenderedCanvas(props: {\n width: number\n height: number\n highResolutionScaling?: number\n style?: any\n imageData?: any\n showSoftClip?: boolean\n blockKey?: string\n}) {\n const {\n width,\n height,\n highResolutionScaling = 1,\n style = {},\n imageData,\n blockKey,\n showSoftClip,\n } = props\n const [done, setDone] = useState(false)\n\n const featureCanvas = useRef(null)\n\n useEffect(() => {\n if (!imageData) {\n return\n }\n const canvas = featureCanvas.current\n if (!canvas) {\n return\n }\n const context = canvas.getContext('2d')\n if (!context) {\n return\n }\n drawImageOntoCanvasContext(imageData, context)\n setDone(true)\n }, [imageData])\n\n return (\n !!f)\n .join('_')}\n ref={featureCanvas}\n width={width * highResolutionScaling}\n height={height * highResolutionScaling}\n style={{ width, height, ...style }}\n />\n )\n}\n\nexport default PrerenderedCanvas\n","// vendored from quick-lru@6.1.1, didn't like being compiled as a 'pure-esm' nodejs dependency\n// the license is reproduced below https://github.com/sindresorhus/quick-lru/blob/main/license\n// MIT License\n\n// Copyright (c) Sindre Sorhus (https://sindresorhus.com)\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nexport default class QuickLRU extends Map {\n constructor(options = {}) {\n super()\n\n if (!(options.maxSize && options.maxSize > 0)) {\n throw new TypeError('`maxSize` must be a number greater than 0')\n }\n\n if (typeof options.maxAge === 'number' && options.maxAge === 0) {\n throw new TypeError('`maxAge` must be a number greater than 0')\n }\n\n // TODO: Use private class fields when ESLint supports them.\n this.maxSize = options.maxSize\n this.maxAge = options.maxAge || Number.POSITIVE_INFINITY\n this.onEviction = options.onEviction\n this.cache = new Map()\n this.oldCache = new Map()\n this._size = 0\n }\n\n // TODO: Use private class methods when targeting Node.js 16.\n _emitEvictions(cache) {\n if (typeof this.onEviction !== 'function') {\n return\n }\n\n for (const [key, item] of cache) {\n this.onEviction(key, item.value)\n }\n }\n\n _deleteIfExpired(key, item) {\n if (typeof item.expiry === 'number' && item.expiry <= Date.now()) {\n if (typeof this.onEviction === 'function') {\n this.onEviction(key, item.value)\n }\n\n return this.delete(key)\n }\n\n return false\n }\n\n _getOrDeleteIfExpired(key, item) {\n const deleted = this._deleteIfExpired(key, item)\n if (!deleted) {\n return item.value\n }\n }\n\n _getItemValue(key, item) {\n return item.expiry ? this._getOrDeleteIfExpired(key, item) : item.value\n }\n\n _peek(key, cache) {\n const item = cache.get(key)\n\n return this._getItemValue(key, item)\n }\n\n _set(key, value) {\n this.cache.set(key, value)\n this._size++\n\n if (this._size >= this.maxSize) {\n this._size = 0\n this._emitEvictions(this.oldCache)\n this.oldCache = this.cache\n this.cache = new Map()\n }\n }\n\n _moveToRecent(key, item) {\n this.oldCache.delete(key)\n this._set(key, item)\n }\n\n *_entriesAscending() {\n for (const item of this.oldCache) {\n const [key, value] = item\n if (!this.cache.has(key)) {\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield item\n }\n }\n }\n\n for (const item of this.cache) {\n const [key, value] = item\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield item\n }\n }\n }\n\n get(key) {\n if (this.cache.has(key)) {\n const item = this.cache.get(key)\n\n return this._getItemValue(key, item)\n }\n\n if (this.oldCache.has(key)) {\n const item = this.oldCache.get(key)\n if (!this._deleteIfExpired(key, item)) {\n this._moveToRecent(key, item)\n return item.value\n }\n }\n }\n\n set(key, value, { maxAge = this.maxAge } = {}) {\n const expiry =\n typeof maxAge === 'number' && maxAge !== Number.POSITIVE_INFINITY\n ? Date.now() + maxAge\n : undefined\n if (this.cache.has(key)) {\n this.cache.set(key, {\n value,\n expiry,\n })\n } else {\n this._set(key, { value, expiry })\n }\n }\n\n has(key) {\n if (this.cache.has(key)) {\n return !this._deleteIfExpired(key, this.cache.get(key))\n }\n\n if (this.oldCache.has(key)) {\n return !this._deleteIfExpired(key, this.oldCache.get(key))\n }\n\n return false\n }\n\n peek(key) {\n if (this.cache.has(key)) {\n return this._peek(key, this.cache)\n }\n\n if (this.oldCache.has(key)) {\n return this._peek(key, this.oldCache)\n }\n }\n\n delete(key) {\n const deleted = this.cache.delete(key)\n if (deleted) {\n this._size--\n }\n\n return this.oldCache.delete(key) || deleted\n }\n\n clear() {\n this.cache.clear()\n this.oldCache.clear()\n this._size = 0\n }\n\n resize(newSize) {\n if (!(newSize && newSize > 0)) {\n throw new TypeError('`maxSize` must be a number greater than 0')\n }\n\n const items = [...this._entriesAscending()]\n const removeCount = items.length - newSize\n if (removeCount < 0) {\n this.cache = new Map(items)\n this.oldCache = new Map()\n this._size = items.length\n } else {\n if (removeCount > 0) {\n this._emitEvictions(items.slice(0, removeCount))\n }\n\n this.oldCache = new Map(items.slice(removeCount))\n this.cache = new Map()\n this._size = 0\n }\n\n this.maxSize = newSize\n }\n\n *keys() {\n for (const [key] of this) {\n yield key\n }\n }\n\n *values() {\n for (const [, value] of this) {\n yield value\n }\n }\n\n *[Symbol.iterator]() {\n for (const item of this.cache) {\n const [key, value] = item\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield [key, value.value]\n }\n }\n\n for (const item of this.oldCache) {\n const [key, value] = item\n if (!this.cache.has(key)) {\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield [key, value.value]\n }\n }\n }\n }\n\n *entriesDescending() {\n let items = [...this.cache]\n for (let i = items.length - 1; i >= 0; --i) {\n const item = items[i]\n const [key, value] = item\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield [key, value.value]\n }\n }\n\n items = [...this.oldCache]\n for (let i = items.length - 1; i >= 0; --i) {\n const item = items[i]\n const [key, value] = item\n if (!this.cache.has(key)) {\n const deleted = this._deleteIfExpired(key, value)\n if (!deleted) {\n yield [key, value.value]\n }\n }\n }\n }\n\n *entriesAscending() {\n for (const [key, value] of this._entriesAscending()) {\n yield [key, value.value]\n }\n }\n\n get size() {\n if (!this._size) {\n return this.oldCache.size\n }\n\n let oldCacheSize = 0\n for (const key of this.oldCache.keys()) {\n if (!this.cache.has(key)) {\n oldCacheSize++\n }\n }\n\n return Math.min(this._size + oldCacheSize, this.maxSize)\n }\n\n entries() {\n return this.entriesAscending()\n }\n\n forEach(callbackFunction, thisArgument = this) {\n for (const [key, value] of this.entriesAscending()) {\n callbackFunction.call(thisArgument, value, key, this)\n }\n }\n\n get [Symbol.toStringTag]() {\n return JSON.stringify([...this.entriesAscending()])\n }\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport isObject from 'is-object'\nimport PluginManager from '../PluginManager'\nimport type { Buffer } from 'buffer'\nimport {\n addDisposer,\n getParent,\n getSnapshot,\n getEnv as getEnvMST,\n isAlive,\n isStateTreeNode,\n hasParent,\n IAnyStateTreeNode,\n IStateTreeNode,\n Instance,\n} from 'mobx-state-tree'\nimport { reaction, IReactionPublic, IReactionOptions } from 'mobx'\nimport { Feature } from './simpleFeature'\nimport {\n isSessionModel,\n isDisplayModel,\n isViewModel,\n isTrackModel,\n AssemblyManager,\n Region,\n TypeTestedByPredicate,\n} from './types'\nimport type { Region as MUIRegion } from './types/mst'\nimport { isAbortException, checkAbortSignal } from './aborting'\nimport { BaseBlock } from './blockTypes'\nimport { isUriLocation } from './types'\n\n// has to be the full path and not the relative path to get the jest mock\nimport useMeasure from '@jbrowse/core/util/useMeasure'\nimport { colord } from './colord'\n// eslint-disable-next-line react/no-deprecated\nimport { flushSync, render } from 'react-dom'\nexport * from './types'\nexport * from './aborting'\nexport * from './when'\nexport * from './range'\nexport * from './dedupe'\n\nexport * from './offscreenCanvasPonyfill'\nexport * from './offscreenCanvasUtils'\n\nexport function useDebounce(value: T, delay: number) {\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const handle = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n return () => {\n clearTimeout(handle)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n\n// used in ViewContainer files to get the width\nexport function useWidthSetter(\n view: { setWidth: (arg: number) => void },\n padding: string,\n) {\n const [ref, { width }] = useMeasure()\n useEffect(() => {\n if (width && isAlive(view)) {\n // sets after a requestAnimationFrame\n // https://stackoverflow.com/a/58701523/2129219\n // avoids ResizeObserver loop error being shown during development\n requestAnimationFrame(() => {\n view.setWidth(width - Number.parseInt(padding, 10) * 2)\n })\n }\n }, [padding, view, width])\n return ref\n}\n\n// https://stackoverflow.com/questions/56283920/\nexport function useDebouncedCallback(\n callback: (...args: T[]) => void,\n wait = 400,\n) {\n // track args & timeout handle between calls\n const argsRef = useRef()\n const timeout = useRef>()\n\n // make sure our timeout gets cleared if our consuming component gets\n // unmounted\n useEffect(() => {\n if (timeout.current) {\n clearTimeout(timeout.current)\n }\n }, [])\n\n return function debouncedCallback(...args: T[]) {\n // capture latest args\n argsRef.current = args\n\n // clear debounce timer\n if (timeout.current) {\n clearTimeout(timeout.current)\n }\n\n // start waiting again\n timeout.current = setTimeout(() => {\n if (argsRef.current) {\n callback(...argsRef.current)\n }\n }, wait)\n }\n}\n\n/**\n * find the first node in the hierarchy that matches the given predicate\n */\nexport function findParentThat(\n node: IAnyStateTreeNode,\n predicate: (thing: IAnyStateTreeNode) => boolean,\n) {\n if (!hasParent(node)) {\n throw new Error('node does not have parent')\n }\n let currentNode: IAnyStateTreeNode | undefined = getParent(node)\n while (currentNode && isAlive(currentNode)) {\n if (predicate(currentNode)) {\n return currentNode\n }\n if (hasParent(currentNode)) {\n currentNode = getParent(currentNode)\n } else {\n break\n }\n }\n throw new Error('no matching node found')\n}\n\ninterface Animation {\n lastPosition: number\n lastTime?: number\n lastVelocity?: number\n}\n\n// based on https://github.com/react-spring/react-spring/blob/cd5548a987383b8023efd620f3726a981f9e18ea/src/animated/FrameLoop.ts\nexport function springAnimate(\n fromValue: number,\n toValue: number,\n setValue: (value: number) => void,\n onFinish = () => {},\n precision = 0,\n tension = 400,\n friction = 20,\n clamp = true,\n) {\n const mass = 1\n if (!precision) {\n precision = Math.abs(toValue - fromValue) / 1000\n }\n\n let animationFrameId: number\n\n function update(animation: Animation) {\n const time = Date.now()\n let position = animation.lastPosition\n let lastTime = animation.lastTime || time\n let velocity = animation.lastVelocity || 0\n // If we lost a lot of frames just jump to the end.\n if (time > lastTime + 64) {\n lastTime = time\n }\n // http://gafferongames.com/game-physics/fix-your-timestep/\n const numSteps = Math.floor(time - lastTime)\n for (let i = 0; i < numSteps; ++i) {\n const force = -tension * (position - toValue)\n const damping = -friction * velocity\n const acceleration = (force + damping) / mass\n velocity += (acceleration * 1) / 1000\n position += (velocity * 1) / 1000\n }\n const isVelocity = Math.abs(velocity) <= precision\n const isDisplacement =\n tension !== 0 ? Math.abs(toValue - position) <= precision : true\n const isOvershooting =\n clamp && tension !== 0\n ? fromValue < toValue\n ? position > toValue\n : position < toValue\n : false\n const endOfAnimation = isOvershooting || (isVelocity && isDisplacement)\n if (endOfAnimation) {\n setValue(toValue)\n onFinish()\n } else {\n setValue(position)\n animationFrameId = requestAnimationFrame(() => {\n update({\n lastPosition: position,\n lastTime: time,\n lastVelocity: velocity,\n })\n })\n }\n }\n\n return [\n () => {\n update({ lastPosition: fromValue })\n },\n () => {\n cancelAnimationFrame(animationFrameId)\n },\n ]\n}\n\n/**\n * find the first node in the hierarchy that matches the given 'is' typescript\n * type guard predicate\n */\nexport function findParentThatIs boolean>(\n node: IAnyStateTreeNode,\n predicate: T,\n): TypeTestedByPredicate {\n return findParentThat(node, predicate)\n}\n\n/**\n * get the current JBrowse session model, starting at any node in the state\n * tree\n */\nexport function getSession(node: IAnyStateTreeNode) {\n try {\n return findParentThatIs(node, isSessionModel)\n } catch (e) {\n throw new Error('no session model found!')\n }\n}\n\n/**\n * get the state model of the view in the state tree that contains the given\n * node\n */\nexport function getContainingView(node: IAnyStateTreeNode) {\n try {\n return findParentThatIs(node, isViewModel)\n } catch (e) {\n throw new Error('no containing view found')\n }\n}\n\n/**\n * get the state model of the view in the state tree that contains the given\n * node\n */\nexport function getContainingTrack(node: IAnyStateTreeNode) {\n try {\n return findParentThatIs(node, isTrackModel)\n } catch (e) {\n throw new Error('no containing track found')\n }\n}\n\n/**\n * get the state model of the display in the state tree that contains the given\n * node\n */\nexport function getContainingDisplay(node: IAnyStateTreeNode) {\n try {\n return findParentThatIs(node, isDisplayModel)\n } catch (e) {\n throw new Error('no containing display found')\n }\n}\n\n/**\n * Assemble a 1-based \"locString\" from an interbase genomic location\n * @param region - Region\n * @example\n * ```ts\n * assembleLocString({ refName: 'chr1', start: 0, end: 100 })\n * // ↳ 'chr1:1..100'\n * ```\n * @example\n * ```ts\n * assembleLocString({ assemblyName: 'hg19', refName: 'chr1', start: 0, end: 100 })\n * // ↳ '{hg19}chr1:1..100'\n * ```\n * @example\n * ```ts\n * assembleLocString({ refName: 'chr1' })\n * // ↳ 'chr1'\n * ```\n * @example\n * ```ts\n * assembleLocString({ refName: 'chr1', start: 0 })\n * // ↳ 'chr1:1..'\n * ```\n * @example\n * ```ts\n * assembleLocString({ refName: 'chr1', end: 100 })\n * // ↳ 'chr1:1..100'\n * ```\n * @example\n * ```ts\n * assembleLocString({ refName: 'chr1', start: 0, end: 1 })\n * // ↳ 'chr1:1'\n * ```\n */\nexport function assembleLocString(region: ParsedLocString) {\n return assembleLocStringFast(region, toLocale)\n}\n\n// same as assembleLocString above, but does not perform toLocaleString which\n// can slow down the speed of block calculations which use assembleLocString\n// for block.key\nexport function assembleLocStringFast(\n region: ParsedLocString,\n cb = (n: number): string | number => n,\n) {\n const { assemblyName, refName, start, end, reversed } = region\n const assemblyNameString = assemblyName ? `{${assemblyName}}` : ''\n let startString: string\n if (start !== undefined) {\n startString = `:${cb(start + 1)}`\n } else if (end !== undefined) {\n startString = ':1'\n } else {\n startString = ''\n }\n let endString: string\n if (end !== undefined) {\n endString = start !== undefined && start + 1 === end ? '' : `..${cb(end)}`\n } else {\n endString = start !== undefined ? '..' : ''\n }\n let rev = ''\n if (reversed) {\n rev = '[rev]'\n }\n return `${assemblyNameString}${refName}${startString}${endString}${rev}`\n}\n\nexport interface ParsedLocString {\n assemblyName?: string\n refName: string\n start?: number\n end?: number\n reversed?: boolean\n}\n\nexport function parseLocStringOneBased(\n locString: string,\n isValidRefName: (refName: string, assemblyName?: string) => boolean,\n): ParsedLocString {\n if (!locString) {\n throw new Error('no location string provided, could not parse')\n }\n let reversed = false\n if (locString.endsWith('[rev]')) {\n reversed = true\n locString = locString.replace(/\\[rev]$/, '')\n }\n // remove any whitespace\n locString = locString.replace(/\\s/, '')\n // refNames can have colons, refer to\n // https://samtools.github.io/hts-specs/SAMv1.pdf Appendix A\n const assemblyMatch = /({(.+)})?(.+)/.exec(locString)\n if (!assemblyMatch) {\n throw new Error(`invalid location string: \"${locString}\"`)\n }\n const [, , assemblyName2, location2] = assemblyMatch\n const assemblyName = assemblyName2!\n const location = location2!\n if (!assemblyName && location.startsWith('{}')) {\n throw new Error(`no assembly name was provided in location \"${location}\"`)\n }\n const lastColonIdx = location.lastIndexOf(':')\n if (lastColonIdx === -1) {\n if (isValidRefName(location, assemblyName)) {\n return {\n assemblyName,\n refName: location,\n reversed,\n }\n }\n throw new Error(`Unknown reference sequence \"${location}\"`)\n }\n const prefix = location.slice(0, lastColonIdx)\n const suffix = location.slice(lastColonIdx + 1)\n if (\n isValidRefName(prefix, assemblyName) &&\n isValidRefName(location, assemblyName)\n ) {\n throw new Error(`ambiguous location string: \"${locString}\"`)\n } else if (isValidRefName(prefix, assemblyName)) {\n if (suffix) {\n // see if it's a range\n const rangeMatch =\n /^(-?(\\d+|\\d{1,3}(,\\d{3})*))(\\.\\.|-)(-?(\\d+|\\d{1,3}(,\\d{3})*))$/.exec(\n suffix,\n )\n // see if it's a single point\n const singleMatch = /^(-?(\\d+|\\d{1,3}(,\\d{3})*))(\\.\\.|-)?$/.exec(suffix)\n if (rangeMatch) {\n const [, start, , , , end] = rangeMatch\n if (start !== undefined && end !== undefined) {\n return {\n assemblyName,\n refName: prefix,\n start: +start.replaceAll(',', ''),\n end: +end.replaceAll(',', ''),\n reversed,\n }\n }\n } else if (singleMatch) {\n const [, start, , , separator] = singleMatch\n if (start !== undefined) {\n if (separator) {\n // indefinite end\n return {\n assemblyName,\n refName: prefix,\n start: +start.replaceAll(',', ''),\n reversed,\n }\n }\n return {\n assemblyName,\n refName: prefix,\n start: +start.replaceAll(',', ''),\n end: +start.replaceAll(',', ''),\n reversed,\n }\n }\n } else {\n throw new Error(\n `could not parse range \"${suffix}\" on location \"${locString}\"`,\n )\n }\n } else {\n return {\n assemblyName,\n refName: prefix,\n reversed,\n }\n }\n } else if (isValidRefName(location, assemblyName)) {\n return {\n assemblyName,\n refName: location,\n reversed,\n }\n }\n throw new Error(`unknown reference sequence name in location \"${locString}\"`)\n}\n\n/**\n * Parse a 1-based location string into an interbase genomic location\n * @param locString - Location string\n * @param isValidRefName - Function that checks if a refName exists in the set\n * of all known refNames, or in the set of refNames for an assembly if\n * assemblyName is given\n * @example\n * ```ts\n * parseLocString('chr1:1..100', isValidRefName)\n * // ↳ { refName: 'chr1', start: 0, end: 100 }\n * ```\n * @example\n * ```ts\n * parseLocString('chr1:1-100', isValidRefName)\n * // ↳ { refName: 'chr1', start: 0, end: 100 }\n * ```\n * @example\n * ```ts\n * parseLocString(`{hg19}chr1:1..100`, isValidRefName)\n * // ↳ { assemblyName: 'hg19', refName: 'chr1', start: 0, end: 100 }\n * ```\n * @example\n * ```ts\n * parseLocString('chr1', isValidRefName)\n * // ↳ { refName: 'chr1' }\n * ```\n * @example\n * ```ts\n * parseLocString('chr1:1', isValidRefName)\n * // ↳ { refName: 'chr1', start: 0, end: 1 }\n * ```\n * @example\n * ```ts\n * parseLocString('chr1:1..', isValidRefName)\n * // ↳ { refName: 'chr1', start: 0}\n * ```\n */\nexport function parseLocString(\n locString: string,\n isValidRefName: (refName: string, assemblyName?: string) => boolean,\n) {\n const parsed = parseLocStringOneBased(locString, isValidRefName)\n if (typeof parsed.start === 'number') {\n parsed.start -= 1\n }\n return parsed\n}\n\nexport function compareLocs(locA: ParsedLocString, locB: ParsedLocString) {\n const assemblyComp =\n locA.assemblyName || locB.assemblyName\n ? (locA.assemblyName || '').localeCompare(locB.assemblyName || '')\n : 0\n if (assemblyComp) {\n return assemblyComp\n }\n\n const refComp =\n locA.refName || locB.refName\n ? (locA.refName || '').localeCompare(locB.refName || '')\n : 0\n if (refComp) {\n return refComp\n }\n\n if (locA.start !== undefined && locB.start !== undefined) {\n const startComp = locA.start - locB.start\n if (startComp) {\n return startComp\n }\n }\n if (locA.end !== undefined && locB.end !== undefined) {\n const endComp = locA.end - locB.end\n if (endComp) {\n return endComp\n }\n }\n return 0\n}\n\nexport function compareLocStrings(\n a: string,\n b: string,\n isValidRefName: (refName: string, assemblyName?: string) => boolean,\n) {\n const locA = parseLocString(a, isValidRefName)\n const locB = parseLocString(b, isValidRefName)\n return compareLocs(locA, locB)\n}\n\n/**\n * Ensure that a number is at least min and at most max.\n *\n * @param num -\n * @param min -\n * @param max -\n */\nexport function clamp(num: number, min: number, max: number) {\n if (num < min) {\n return min\n }\n if (num > max) {\n return max\n }\n return num\n}\n\nfunction roundToNearestPointOne(num: number) {\n return Math.round(num * 10) / 10\n}\n\n/**\n * @param bp -\n * @param region -\n * @param bpPerPx -\n */\nexport function bpToPx(\n bp: number,\n {\n reversed,\n end = 0,\n start = 0,\n }: { start?: number; end?: number; reversed?: boolean },\n bpPerPx: number,\n) {\n return roundToNearestPointOne((reversed ? end - bp : bp - start) / bpPerPx)\n}\n\nconst oneEightyOverPi = 180 / Math.PI\nconst piOverOneEighty = Math.PI / 180\nexport function radToDeg(radians: number) {\n return (radians * oneEightyOverPi) % 360\n}\nexport function degToRad(degrees: number) {\n return (degrees * piOverOneEighty) % (2 * Math.PI)\n}\n\n/**\n * @returns [x, y]\n */\nexport function polarToCartesian(rho: number, theta: number) {\n return [rho * Math.cos(theta), rho * Math.sin(theta)] as [number, number]\n}\n\n/**\n * @param x - the x\n * @param y - the y\n * @returns [rho, theta]\n */\nexport function cartesianToPolar(x: number, y: number) {\n const rho = Math.sqrt(x * x + y * y)\n const theta = Math.atan(y / x)\n return [rho, theta] as [number, number]\n}\n\nexport function featureSpanPx(\n feature: Feature,\n region: { start: number; end: number; reversed?: boolean },\n bpPerPx: number,\n): [number, number] {\n return bpSpanPx(feature.get('start'), feature.get('end'), region, bpPerPx)\n}\n\nexport function bpSpanPx(\n leftBp: number,\n rightBp: number,\n region: { start: number; end: number; reversed?: boolean },\n bpPerPx: number,\n): [number, number] {\n const start = bpToPx(leftBp, region, bpPerPx)\n const end = bpToPx(rightBp, region, bpPerPx)\n return region.reversed ? [end, start] : [start, end]\n}\n\n// do an array map of an iterable\nexport function iterMap(\n iter: Iterable,\n func: (arg: T) => U,\n sizeHint?: number,\n) {\n const results = Array.from({ length: sizeHint || 0 })\n let counter = 0\n for (const item of iter) {\n results[counter] = func(item)\n counter += 1\n }\n return results\n}\n\n/**\n * Returns the index of the last element in the array where predicate is true,\n * and -1 otherwise.\n * Based on https://stackoverflow.com/a/53187807\n *\n * @param array - The source array to search in\n *\n * @param predicate - find calls predicate once for each element of the array, in\n * descending order, until it finds one where predicate returns true.\n *\n * @returns findLastIndex returns element index where predicate is true.\n * Otherwise, findLastIndex returns -1.\n */\nexport function findLastIndex(\n array: T[],\n predicate: (value: T, index: number, obj: T[]) => boolean,\n): number {\n let l = array.length\n while (l--) {\n if (predicate(array[l]!, l, array)) {\n return l\n }\n }\n return -1\n}\n\nexport function findLast(\n array: T[],\n predicate: (value: T, index: number, obj: T[]) => boolean,\n): T | undefined {\n let l = array.length\n while (l--) {\n if (predicate(array[l]!, l, array)) {\n return array[l]\n }\n }\n return undefined\n}\n\n/**\n * makes a mobx reaction with the given functions, that calls actions on the\n * model for each stage of execution, and to abort the reaction function when\n * the model is destroyed.\n *\n * Will call startedFunction(signal), successFunction(result), and\n * errorFunction(error) when the async reaction function starts, completes, and\n * errors respectively.\n *\n * @param self -\n * @param dataFunction -\n * @param asyncReactionFunction -\n * @param reactionOptions -\n * @param startedFunction -\n * @param successFunction -\n * @param errorFunction -\n */\nexport function makeAbortableReaction(\n self: T,\n dataFunction: (arg: T) => U,\n asyncReactionFunction: (\n arg: U | undefined,\n signal: AbortSignal,\n model: T,\n handle: IReactionPublic,\n ) => Promise,\n // @ts-expect-error\n reactionOptions: IReactionOptions,\n startedFunction: (aborter: AbortController) => void,\n successFunction: (arg: V) => void,\n errorFunction: (err: unknown) => void,\n) {\n let inProgress: AbortController | undefined\n\n function handleError(error: unknown) {\n if (!isAbortException(error)) {\n if (isAlive(self)) {\n errorFunction(error)\n } else {\n console.error(error)\n }\n }\n }\n\n addDisposer(\n self,\n reaction(\n () => {\n try {\n return dataFunction(self)\n } catch (e) {\n handleError(e)\n return undefined\n }\n },\n async (data, mobxReactionHandle) => {\n if (inProgress && !inProgress.signal.aborted) {\n inProgress.abort()\n }\n\n if (!isAlive(self)) {\n return\n }\n inProgress = new AbortController()\n\n const thisInProgress = inProgress\n startedFunction(thisInProgress)\n try {\n const result = await asyncReactionFunction(\n data,\n thisInProgress.signal,\n self,\n // @ts-expect-error\n mobxReactionHandle,\n )\n checkAbortSignal(thisInProgress.signal)\n if (isAlive(self)) {\n successFunction(result)\n }\n } catch (e) {\n if (!thisInProgress.signal.aborted) {\n thisInProgress.abort()\n }\n handleError(e)\n }\n },\n reactionOptions,\n ),\n )\n addDisposer(self, () => {\n if (inProgress && !inProgress.signal.aborted) {\n inProgress.abort()\n }\n })\n}\n\nexport function renameRegionIfNeeded(\n refNameMap: Record | undefined,\n region: Region | Instance,\n): Region & { originalRefName?: string } {\n if (isStateTreeNode(region) && !isAlive(region)) {\n return region\n }\n\n if (refNameMap?.[region.refName]) {\n // clone the region so we don't modify it\n region = isStateTreeNode(region)\n ? { ...getSnapshot(region) }\n : { ...region }\n\n // modify it directly in the container\n const newRef = refNameMap[region.refName]\n if (newRef) {\n return { ...region, refName: newRef, originalRefName: region.refName }\n }\n }\n return region\n}\n\nexport async function renameRegionsIfNeeded<\n ARGTYPE extends {\n assemblyName?: string\n regions?: Region[]\n signal?: AbortSignal\n adapterConfig: Record\n sessionId: string\n statusCallback?: (arg: string) => void\n },\n>(assemblyManager: AssemblyManager, args: ARGTYPE) {\n const { regions = [], adapterConfig } = args\n if (!args.sessionId) {\n throw new Error('sessionId is required')\n }\n\n const assemblyNames = regions.map(region => region.assemblyName)\n const assemblyMaps = Object.fromEntries(\n await Promise.all(\n [...new Set(assemblyNames)].map(async assemblyName => {\n return [\n assemblyName,\n await assemblyManager.getRefNameMapForAdapter(\n adapterConfig,\n assemblyName,\n args,\n ),\n ]\n }),\n ),\n )\n\n return {\n ...args,\n regions: regions.map((region, i) =>\n // note: uses assemblyNames defined above since region could be dead now\n renameRegionIfNeeded(assemblyMaps[assemblyNames[i]!], region),\n ),\n }\n}\n\nexport function minmax(a: number, b: number) {\n return [Math.min(a, b), Math.max(a, b)] as const\n}\n\nexport function shorten(name: string, max = 70, short = 30) {\n return name.length > max\n ? `${name.slice(0, short)}...${name.slice(-short)}`\n : name\n}\n\nexport function stringify(\n {\n refName,\n coord,\n assemblyName,\n oob,\n }: {\n assemblyName?: string\n coord: number\n refName?: string\n oob?: boolean\n },\n useAssemblyName?: boolean,\n) {\n return [\n assemblyName && useAssemblyName ? `{${assemblyName}}` : '',\n refName\n ? `${shorten(refName)}:${toLocale(coord)}${oob ? ' (out of bounds)' : ''}`\n : '',\n ].join('')\n}\n\n// this is recommended in a later comment in\n// https://github.com/electron/electron/issues/2288 for detecting electron in a\n// renderer process, which is the one that has node enabled for us\n//\n// const isElectron = process.versions.electron\n// const i2 = process.versions.hasOwnProperty('electron')\nexport const isElectron = /electron/i.test(\n typeof navigator !== 'undefined' ? navigator.userAgent : '',\n)\n\nexport function revcom(seqString: string) {\n return reverse(complement(seqString))\n}\n\nexport function reverse(seqString: string) {\n return seqString.split('').reverse().join('')\n}\n\nexport const complement = (() => {\n const complementRegex = /[ACGT]/gi\n\n // from bioperl: tr/acgtrymkswhbvdnxACGTRYMKSWHBVDNX/tgcayrkmswdvbhnxTGCAYRKMSWDVBHNX/\n // generated with:\n // perl -MJSON -E '@l = split \"\",\"acgtrymkswhbvdnxACGTRYMKSWHBVDNX\"; print to_json({ map { my $in = $_; tr/acgtrymkswhbvdnxACGTRYMKSWHBVDNX/tgcayrkmswdvbhnxTGCAYRKMSWDVBHNX/; $in => $_ } @l})'\n const complementTable = {\n S: 'S',\n w: 'w',\n T: 'A',\n r: 'y',\n a: 't',\n N: 'N',\n K: 'M',\n x: 'x',\n d: 'h',\n Y: 'R',\n V: 'B',\n y: 'r',\n M: 'K',\n h: 'd',\n k: 'm',\n C: 'G',\n g: 'c',\n t: 'a',\n A: 'T',\n n: 'n',\n W: 'W',\n X: 'X',\n m: 'k',\n v: 'b',\n B: 'V',\n s: 's',\n H: 'D',\n c: 'g',\n D: 'H',\n b: 'v',\n R: 'Y',\n G: 'C',\n } as Record\n\n return (seqString: string) => {\n return seqString.replaceAll(complementRegex, m => complementTable[m] || '')\n }\n})()\n\n// requires immediate execution in jest environment, because (hypothesis) it\n// otherwise listens for prerendered_canvas but reads empty pixels, and doesn't\n// get the contents of the canvas\nexport const rIC =\n typeof jest === 'undefined'\n ? // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n typeof window !== 'undefined' && window.requestIdleCallback\n ? window.requestIdleCallback\n : (cb: () => void) =>\n setTimeout(() => {\n cb()\n }, 1)\n : (cb: () => void) => {\n cb()\n }\n\n// prettier-ignore\nconst widths = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2796875,0.2765625,0.3546875,0.5546875,0.5546875,0.8890625,0.665625,0.190625,0.3328125,0.3328125,0.3890625,0.5828125,0.2765625,0.3328125,0.2765625,0.3015625,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.5546875,0.2765625,0.2765625,0.584375,0.5828125,0.584375,0.5546875,1.0140625,0.665625,0.665625,0.721875,0.721875,0.665625,0.609375,0.7765625,0.721875,0.2765625,0.5,0.665625,0.5546875,0.8328125,0.721875,0.7765625,0.665625,0.7765625,0.721875,0.665625,0.609375,0.721875,0.665625,0.94375,0.665625,0.665625,0.609375,0.2765625,0.3546875,0.2765625,0.4765625,0.5546875,0.3328125,0.5546875,0.5546875,0.5,0.5546875,0.5546875,0.2765625,0.5546875,0.5546875,0.221875,0.240625,0.5,0.221875,0.8328125,0.5546875,0.5546875,0.5546875,0.5546875,0.3328125,0.5,0.2765625,0.5546875,0.5,0.721875,0.5,0.5,0.5,0.3546875,0.259375,0.353125,0.5890625]\n\n// xref https://gist.github.com/tophtucker/62f93a4658387bb61e4510c37e2e97cf\nexport function measureText(str: unknown, fontSize = 10) {\n const avg = 0.5279276315789471\n const s = String(str)\n let total = 0\n for (let i = 0; i < s.length; i++) {\n const code = s.charCodeAt(i)\n total += widths[code] ?? avg\n }\n return total * fontSize\n}\n\nexport type Frame = 1 | 2 | 3 | -1 | -2 | -3\n\nexport function getFrame(\n start: number,\n end: number,\n strand: 1 | -1,\n phase: 0 | 1 | 2,\n): Frame {\n return strand === 1\n ? ((((start + phase) % 3) + 1) as 1 | 2 | 3)\n : ((-1 * ((end - phase) % 3) - 1) as -1 | -2 | -3)\n}\n\nexport const defaultStarts = ['ATG']\nexport const defaultStops = ['TAA', 'TAG', 'TGA']\nexport const defaultCodonTable = {\n TCA: 'S',\n TCC: 'S',\n TCG: 'S',\n TCT: 'S',\n TTC: 'F',\n TTT: 'F',\n TTA: 'L',\n TTG: 'L',\n TAC: 'Y',\n TAT: 'Y',\n TAA: '*',\n TAG: '*',\n TGC: 'C',\n TGT: 'C',\n TGA: '*',\n TGG: 'W',\n CTA: 'L',\n CTC: 'L',\n CTG: 'L',\n CTT: 'L',\n CCA: 'P',\n CCC: 'P',\n CCG: 'P',\n CCT: 'P',\n CAC: 'H',\n CAT: 'H',\n CAA: 'Q',\n CAG: 'Q',\n CGA: 'R',\n CGC: 'R',\n CGG: 'R',\n CGT: 'R',\n ATA: 'I',\n ATC: 'I',\n ATT: 'I',\n ATG: 'M',\n ACA: 'T',\n ACC: 'T',\n ACG: 'T',\n ACT: 'T',\n AAC: 'N',\n AAT: 'N',\n AAA: 'K',\n AAG: 'K',\n AGC: 'S',\n AGT: 'S',\n AGA: 'R',\n AGG: 'R',\n GTA: 'V',\n GTC: 'V',\n GTG: 'V',\n GTT: 'V',\n GCA: 'A',\n GCC: 'A',\n GCG: 'A',\n GCT: 'A',\n GAC: 'D',\n GAT: 'D',\n GAA: 'E',\n GAG: 'E',\n GGA: 'G',\n GGC: 'G',\n GGG: 'G',\n GGT: 'G',\n}\n\n/**\n * take CodonTable above and generate larger codon table that includes all\n * permutations of upper and lower case nucleotides\n */\nexport function generateCodonTable(table: any) {\n const tempCodonTable: Record = {}\n Object.keys(table).forEach(codon => {\n const aa = table[codon]\n const nucs: string[][] = []\n for (let i = 0; i < 3; i++) {\n const nuc = codon.charAt(i)\n nucs[i] = []\n nucs[i]![0] = nuc.toUpperCase()\n nucs[i]![1] = nuc.toLowerCase()\n }\n for (let i = 0; i < 2; i++) {\n const n0 = nucs[0]![i]!\n for (let j = 0; j < 2; j++) {\n const n1 = nucs[1]![j]!\n for (let k = 0; k < 2; k++) {\n const n2 = nucs[2]![k]!\n const triplet = n0 + n1 + n2\n tempCodonTable[triplet] = aa\n }\n }\n }\n })\n return tempCodonTable\n}\n\n// call statusCallback with current status and clear when finished\nexport async function updateStatus(\n msg: string,\n cb: (arg: string) => void,\n fn: () => U | Promise,\n) {\n cb(msg)\n const res = await fn()\n cb('')\n return res\n}\n\nexport function hashCode(str: string) {\n let hash = 0\n if (str.length === 0) {\n return hash\n }\n for (let i = 0; i < str.length; i++) {\n const chr = str.charCodeAt(i)\n hash = (hash << 5) - hash + chr\n hash |= 0 // Convert to 32bit integer\n }\n return hash\n}\n\nexport function objectHash(obj: Record) {\n return `${hashCode(JSON.stringify(obj))}`\n}\n\ninterface VirtualOffset {\n blockPosition: number\n}\ninterface Block {\n minv: VirtualOffset\n maxv: VirtualOffset\n}\n\nexport async function bytesForRegions(\n regions: Region[],\n index: {\n blocksForRange: (\n ref: string,\n start: number,\n end: number,\n ) => Promise\n },\n) {\n const blockResults = await Promise.all(\n regions.map(r => index.blocksForRange(r.refName, r.start, r.end)),\n )\n\n return blockResults\n .flat()\n .map(block => ({\n start: block.minv.blockPosition,\n end: block.maxv.blockPosition + 65535,\n }))\n .reduce((a, b) => a + b.end - b.start, 0)\n}\n\nexport interface ViewSnap {\n bpPerPx: number\n interRegionPaddingWidth: number\n minimumBlockWidth: number\n width: number\n offsetPx: number\n staticBlocks: { contentBlocks: BaseBlock[]; blocks: BaseBlock[] }\n displayedRegions: (IStateTreeNode & {\n start: number\n end: number\n refName: string\n reversed?: boolean\n assemblyName: string\n })[]\n}\n\n// supported adapter types by text indexer ensure that this matches the method\n// found in @jbrowse/text-indexing/util\nexport function isSupportedIndexingAdapter(type = '') {\n return [\n 'Gff3TabixAdapter',\n 'VcfTabixAdapter',\n 'Gff3Adapter',\n 'VcfAdapter',\n ].includes(type)\n}\n\nexport function getBpDisplayStr(totalBp: number) {\n if (Math.floor(totalBp / 1_000_000) > 0) {\n return `${Number.parseFloat((totalBp / 1_000_000).toPrecision(3))}Mbp`\n } else if (Math.floor(totalBp / 1_000) > 0) {\n return `${Number.parseFloat((totalBp / 1_000).toPrecision(3))}Kbp`\n } else {\n return `${toLocale(Math.floor(totalBp))}bp`\n }\n}\n\nexport function toLocale(n: number) {\n return n.toLocaleString('en-US')\n}\n\nexport function getTickDisplayStr(totalBp: number, bpPerPx: number) {\n return Math.floor(bpPerPx / 1_000) > 0\n ? `${toLocale(Number.parseFloat((totalBp / 1_000_000).toFixed(2)))}M`\n : toLocale(Math.floor(totalBp))\n}\n\nexport function getViewParams(model: IAnyStateTreeNode, exportSVG?: boolean) {\n // @ts-expect-error\n const { dynamicBlocks, staticBlocks, offsetPx } = getContainingView(model)\n const b = dynamicBlocks?.contentBlocks[0] || {}\n const staticblock = staticBlocks?.contentBlocks[0] || {}\n const staticblock1 = staticBlocks?.contentBlocks[1] || {}\n return {\n offsetPx: exportSVG ? 0 : offsetPx - staticblock.offsetPx,\n offsetPx1: exportSVG ? 0 : offsetPx - staticblock1.offsetPx,\n start: b.start as number,\n end: b.end as number,\n }\n}\n\nexport function getLayoutId({\n sessionId,\n layoutId,\n}: {\n sessionId: string\n layoutId: string\n}) {\n return `${sessionId}-${layoutId}`\n}\n\n// Hook from https://usehooks.com/useLocalStorage/\nexport function useLocalStorage(key: string, initialValue: T) {\n const [storedValue, setStoredValue] = useState(() => {\n if (typeof window === 'undefined') {\n return initialValue\n }\n try {\n const item = window.localStorage.getItem(key)\n return item ? JSON.parse(item) : initialValue\n } catch (error) {\n console.error(error)\n return initialValue\n }\n })\n const setValue = (value: T | ((val: T) => T)) => {\n try {\n const valueToStore =\n value instanceof Function ? value(storedValue) : value\n setStoredValue(valueToStore)\n if (typeof window !== 'undefined') {\n window.localStorage.setItem(key, JSON.stringify(valueToStore))\n }\n } catch (error) {\n console.error(error)\n }\n }\n return [storedValue, setValue] as const\n}\n\nexport function getUriLink(value: { uri: string; baseUri?: string }) {\n const { uri, baseUri = '' } = value\n let href: string\n try {\n href = new URL(uri, baseUri).href\n } catch (e) {\n href = uri\n }\n return href\n}\n\nexport function getStr(obj: unknown) {\n return isObject(obj)\n ? isUriLocation(obj)\n ? getUriLink(obj)\n : JSON.stringify(obj)\n : String(obj)\n}\n\n// tries to measure grid width without HTML tags included\nexport function coarseStripHTML(s: string) {\n return s.replaceAll(/(<([^>]+)>)/gi, '')\n}\n\n// based on autolink-js, license MIT\n// https://github.com/bryanwoods/autolink-js/blob/1418049970152c56ced73d43dcc62d80b320fb71/autolink.js#L9\nexport function linkify(s: string) {\n const pattern =\n /(^|[\\s\\n]|<[A-Za-z]*\\/?>)((?:https?|ftp):\\/\\/[-A-Z0-9+\\u0026\\u2019@#/%?=()~_|!:,.;]*[-A-Z0-9+\\u0026@#/%=~()_|])/gi\n return s.replaceAll(pattern, '$1$2')\n}\n\n// heuristic measurement for a column of a @mui/x-data-grid, pass in\n// values from a column\nexport function measureGridWidth(\n elements: unknown[],\n args?: {\n minWidth?: number\n fontSize?: number\n maxWidth?: number\n padding?: number\n stripHTML?: boolean\n },\n) {\n const {\n padding = 30,\n minWidth = 80,\n fontSize = 12,\n maxWidth = 1000,\n stripHTML = false,\n } = args || {}\n return max(\n elements\n .map(element => getStr(element))\n .map(str => (stripHTML ? coarseStripHTML(str) : str))\n .map(str => measureText(str, fontSize))\n .map(n => Math.min(Math.max(n + padding, minWidth), maxWidth)),\n )\n}\n\nexport function getEnv(obj: any) {\n return getEnvMST<{ pluginManager: PluginManager }>(obj)\n}\n\nexport function localStorageGetItem(item: string) {\n return typeof localStorage !== 'undefined'\n ? localStorage.getItem(item)\n : undefined\n}\n\nexport function localStorageSetItem(str: string, item: string) {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(str, item)\n }\n}\n\nexport function max(arr: number[], init = Number.NEGATIVE_INFINITY) {\n let max = init\n for (const entry of arr) {\n max = entry > max ? entry : max\n }\n return max\n}\n\nexport function min(arr: number[], init = Number.POSITIVE_INFINITY) {\n let min = init\n for (const entry of arr) {\n min = entry < min ? entry : min\n }\n return min\n}\n\nexport function sum(arr: number[]) {\n let sum = 0\n for (const entry of arr) {\n sum += entry\n }\n return sum\n}\n\nexport function avg(arr: number[]) {\n return sum(arr) / arr.length\n}\n\nexport function groupBy(array: Iterable, predicate: (v: T) => string) {\n const result = {} as Record\n for (const value of array) {\n const t = predicate(value)\n if (!result[t]) {\n result[t] = []\n }\n result[t].push(value)\n }\n return result\n}\n\nexport function notEmpty(value: T | null | undefined): value is T {\n return value !== null && value !== undefined\n}\n\nexport function mergeIntervals(\n intervals: T[],\n w = 5000,\n) {\n // test if there are at least 2 intervals\n if (intervals.length <= 1) {\n return intervals\n }\n\n const stack = [] as T[]\n let top = null\n\n // sort the intervals based on their start values\n intervals = intervals.sort((a, b) => a.start - b.start)\n\n // push the 1st interval into the stack\n stack.push(intervals[0]!)\n\n // start from the next interval and merge if needed\n for (let i = 1; i < intervals.length; i++) {\n // get the top element\n top = stack.at(-1)!\n\n // if the current interval doesn't overlap with the\n // stack top element, push it to the stack\n if (top.end + w < intervals[i]!.start - w) {\n stack.push(intervals[i]!)\n }\n // otherwise update the end value of the top element\n // if end of current interval is higher\n else if (top.end < intervals[i]!.end) {\n top.end = Math.max(top.end, intervals[i]!.end)\n stack.pop()\n stack.push(top)\n }\n }\n\n return stack\n}\n\ninterface BasicFeature {\n end: number\n start: number\n refName: string\n assemblyName?: string\n}\n\n// returns new array non-overlapping features\nexport function gatherOverlaps(regions: BasicFeature[], w = 5000) {\n const memo = {} as Record\n for (const x of regions) {\n if (!memo[x.refName]) {\n memo[x.refName] = []\n }\n memo[x.refName]!.push(x)\n }\n\n return Object.values(memo).flatMap(group =>\n mergeIntervals(\n group.sort((a, b) => a.start - b.start),\n w,\n ),\n )\n}\n\nexport function stripAlpha(str: string) {\n return colord(str).alpha(1).toHex()\n}\n\nexport function getStrokeProps(str: string) {\n const c = colord(str)\n return {\n strokeOpacity: c.alpha(),\n stroke: c.alpha(1).toHex(),\n }\n}\n\nexport function getFillProps(str: string) {\n const c = colord(str)\n return {\n fillOpacity: c.alpha(),\n fill: c.alpha(1).toHex(),\n }\n}\n\n// https://react.dev/reference/react-dom/server/renderToString#removing-rendertostring-from-the-client-code\nexport function renderToStaticMarkup(\n node: React.ReactElement,\n createRootFn?: (elt: Element | DocumentFragment) => {\n render: (node: React.ReactElement) => unknown\n },\n) {\n const div = document.createElement('div')\n flushSync(() => {\n if (createRootFn) {\n createRootFn(div).render(node)\n } else {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n render(node, div)\n }\n })\n return div.innerHTML.replaceAll(/\\brgba\\((.+?),[^,]+?\\)/g, 'rgb($1)')\n}\n\nexport function isGzip(buf: Buffer) {\n return buf[0] === 31 && buf[1] === 139 && buf[2] === 8\n}\n\nexport {\n default as SimpleFeature,\n type Feature,\n type SimpleFeatureSerialized,\n isFeature,\n} from './simpleFeature'\n\nexport { blobToDataURL } from './blobToDataURL'\n","import { getParent, isRoot, IAnyStateTreeNode } from 'mobx-state-tree'\nimport { getSession, objectHash, getEnv } from './index'\nimport { PreFileLocation, FileLocation } from './types'\nimport { readConfObject, AnyConfigurationModel } from '../configuration'\n\n/* utility functions for use by track models and so forth */\n\nexport function getTrackAssemblyNames(\n track: IAnyStateTreeNode & { configuration: AnyConfigurationModel },\n) {\n return getConfAssemblyNames(track.configuration)\n}\n\nexport function getConfAssemblyNames(conf: AnyConfigurationModel) {\n const trackAssemblyNames = readConfObject(conf, 'assemblyNames') as\n | string[]\n | undefined\n if (!trackAssemblyNames) {\n // Check if it's an assembly sequence track\n const parent = getParent(conf)\n if ('sequence' in parent) {\n return [readConfObject(parent, 'name') as string]\n } else {\n throw new Error('unknown assembly names')\n }\n }\n return trackAssemblyNames\n}\n\n/**\n * return the rpcSessionId of the highest parent node in the tree that has an\n * rpcSessionId */\n\nexport function getRpcSessionId(thisNode: IAnyStateTreeNode) {\n interface NodeWithRpcSessionId extends IAnyStateTreeNode {\n rpcSessionId: string\n }\n let highestRpcSessionId: string | undefined\n\n for (let node = thisNode; !isRoot(node); node = getParent(node)) {\n if ('rpcSessionId' in node) {\n highestRpcSessionId = (node as NodeWithRpcSessionId).rpcSessionId\n }\n }\n if (!highestRpcSessionId) {\n throw new Error(\n 'getRpcSessionId failed, no parent node in the state tree has an `rpcSessionId` attribute',\n )\n }\n return highestRpcSessionId\n}\n\n/**\n * given an MST node, get the renderprops of the first parent container that\n * has renderProps\n * @param node -\n * @returns renderprops, or empty object if none found\n */\nexport function getParentRenderProps(node: IAnyStateTreeNode) {\n for (\n let currentNode = getParent(node);\n !isRoot(currentNode);\n currentNode = getParent(currentNode)\n ) {\n if ('renderProps' in currentNode) {\n return currentNode.renderProps()\n }\n }\n\n return {}\n}\n\nexport const UNKNOWN = 'UNKNOWN'\nexport const UNSUPPORTED = 'UNSUPPORTED'\n\nlet blobMap: Record = {}\n\n// get a specific blob\nexport function getBlob(id: string) {\n return blobMap[id]\n}\n\n// used to export entire context to webworker\nexport function getBlobMap() {\n return blobMap\n}\n\n// used in new contexts like webworkers\nexport function setBlobMap(map: Record) {\n blobMap = map\n}\n\nlet counter = 0\n\n// blob files are stored in a global map. the blobId is based on a combination\n// of timestamp plus counter to be unique across sessions and fast repeated\n// calls\nexport function storeBlobLocation(location: PreFileLocation) {\n if ('blob' in location) {\n const blobId = `b${+Date.now()}-${counter++}`\n blobMap[blobId] = location.blob\n return { name: location.blob.name, blobId, locationType: 'BlobLocation' }\n }\n return location\n}\n\n/**\n * creates a new location from the provided location including the appropriate suffix and location type\n * @param location - the FileLocation\n * @param suffix - the file suffix (e.g. .bam)\n * @returns the constructed location object from the provided parameters\n */\nexport function makeIndex(location: FileLocation, suffix: string) {\n if ('uri' in location) {\n return { uri: location.uri + suffix, locationType: 'UriLocation' }\n }\n\n if ('localPath' in location) {\n return {\n localPath: location.localPath + suffix,\n locationType: 'LocalPathLocation',\n }\n }\n\n return location\n}\n\n/**\n * constructs a potential index file (with suffix) from the provided file name\n * @param name - the name of the index file\n * @param typeA - one option of a potential two file suffix (e.g. CSI, BAI)\n * @param typeB - the second option of a potential two file suffix (e.g. CSI, BAI)\n * @returns a likely name of the index file for a given filename\n */\nexport function makeIndexType(\n name: string | undefined,\n typeA: string,\n typeB: string,\n) {\n return name?.toUpperCase().endsWith(typeA) ? typeA : typeB\n}\n\nexport interface AdapterConfig {\n type: string\n [key: string]: unknown\n}\n\nexport type AdapterGuesser = (\n file: FileLocation,\n index?: FileLocation,\n adapterHint?: string,\n) => AdapterConfig | undefined\n\nexport type TrackTypeGuesser = (adapterName: string) => string | undefined\n\nexport function getFileName(track: FileLocation) {\n const uri = 'uri' in track ? track.uri : undefined\n const localPath = 'localPath' in track ? track.localPath : undefined\n const blob = 'blobId' in track ? track : undefined\n return (\n blob?.name ||\n uri?.slice(uri.lastIndexOf('/') + 1) ||\n localPath?.slice(localPath.replace(/\\\\/g, '/').lastIndexOf('/') + 1) ||\n ''\n )\n}\n\nexport function guessAdapter(\n file: FileLocation,\n index: FileLocation | undefined,\n adapterHint?: string,\n model?: IAnyStateTreeNode,\n) {\n if (model) {\n const { pluginManager } = getEnv(model)\n const adapterGuesser = pluginManager.evaluateExtensionPoint(\n 'Core-guessAdapterForLocation',\n (\n _file: FileLocation,\n _index?: FileLocation,\n _adapterHint?: string,\n ): AdapterConfig | undefined => {\n return undefined\n },\n ) as AdapterGuesser\n\n const adapter = adapterGuesser(file, index, adapterHint)\n\n if (adapter) {\n return adapter\n }\n }\n\n return {\n type: UNKNOWN,\n }\n}\n\nexport function guessTrackType(\n adapterType: string,\n model?: IAnyStateTreeNode,\n): string {\n if (model) {\n const session = getSession(model)\n\n const trackTypeGuesser = getEnv(\n session,\n ).pluginManager.evaluateExtensionPoint(\n 'Core-guessTrackTypeForLocation',\n (_adapterName: string): AdapterConfig | undefined => {\n return undefined\n },\n ) as TrackTypeGuesser\n\n const trackType = trackTypeGuesser(adapterType)\n\n if (trackType) {\n return trackType\n }\n }\n return 'FeatureTrack'\n}\n\nexport function generateUnsupportedTrackConf(\n trackName: string,\n trackUrl: string,\n categories: string[] | undefined,\n) {\n const conf = {\n type: 'FeatureTrack',\n name: `${trackName} (Unsupported)`,\n description: `Support not yet implemented for \"${trackUrl}\"`,\n category: categories,\n trackId: '',\n }\n conf.trackId = objectHash(conf)\n return conf\n}\n\nexport function generateUnknownTrackConf(\n trackName: string,\n trackUrl: string,\n categories: string[] | undefined,\n) {\n const conf = {\n type: 'FeatureTrack',\n name: `${trackName} (Unknown)`,\n description: `Could not determine track type for \"${trackUrl}\"`,\n category: categories,\n trackId: '',\n }\n conf.trackId = objectHash(conf)\n return conf\n}\n\nexport function getTrackName(\n conf: AnyConfigurationModel,\n session: { assemblies: AnyConfigurationModel[] },\n) {\n const trackName = readConfObject(conf, 'name') as string\n if (!trackName && readConfObject(conf, 'type') === 'ReferenceSequenceTrack') {\n const asm = session.assemblies.find(a => a.sequence === conf)\n return asm\n ? `Reference sequence (${\n readConfObject(asm, 'displayName') || readConfObject(asm, 'name')\n })`\n : 'Reference sequence'\n }\n return trackName\n}\n","import { types } from 'mobx-state-tree'\nimport { nanoid } from '../nanoid'\n\nexport const ElementId = types.optional(types.identifier, () => nanoid())\n\nexport const NoAssemblyRegion = types\n .model('NoAssemblyRegion', {\n refName: types.string,\n start: types.number,\n end: types.number,\n reversed: types.optional(types.boolean, false),\n })\n .actions(self => ({\n setRefName(newRefName: string): void {\n self.refName = newRefName\n },\n }))\n\nexport const Region = types.compose(\n 'Region',\n NoAssemblyRegion,\n types.model({\n assemblyName: types.string,\n }),\n)\n\nexport const LocalPathLocation = types.model('LocalPathLocation', {\n locationType: types.literal('LocalPathLocation'),\n localPath: types.string,\n})\n\n// like how blobId is used to get a blob map\nexport const BlobLocation = types.model('BlobLocation', {\n locationType: types.literal('BlobLocation'),\n name: types.string,\n blobId: types.string,\n})\n\nexport const UriLocationRaw = types.model('UriLocation', {\n locationType: types.literal('UriLocation'),\n uri: types.string,\n baseUri: types.maybe(types.string),\n\n internetAccountId: types.maybe(types.string),\n\n // auths information (such as tokens) needed for using this resource.\n // if provided, these must be completely sufficient for using it\n internetAccountPreAuthorization: types.maybe(\n types.model('InternetAccountPreAuthorization', {\n internetAccountType: types.string,\n authInfo: types.frozen(),\n }),\n ),\n})\n\nexport const UriLocation = types.snapshotProcessor(UriLocationRaw, {\n postProcessor: snap => {\n // xref https://github.com/mobxjs/mobx-state-tree/issues/1524 for Omit\n const { baseUri, ...rest } = snap as Omit\n if (!baseUri) {\n return rest\n }\n return snap\n },\n})\n\nexport const FileLocation = types.snapshotProcessor(\n types.union(LocalPathLocation, UriLocation, BlobLocation),\n {\n // @ts-expect-error\n preProcessor(snap) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!snap) {\n return undefined\n }\n\n // @ts-expect-error\n // xref https://github.com/mobxjs/mobx-state-tree/issues/1524 for Omit\n const { locationType, ...rest } = snap as Omit\n if (!locationType) {\n // @ts-expect-error\n const { uri, localPath, blob } = rest\n let locationType = ''\n if (uri !== undefined) {\n locationType = 'UriLocation'\n } else if (localPath !== undefined) {\n locationType = 'LocalPathLocation'\n } else if (blob !== undefined) {\n locationType = 'BlobLocation'\n }\n\n return { ...rest, locationType }\n }\n return snap\n },\n },\n)\n","import PluginManager from '@jbrowse/core/PluginManager'\nimport {\n IAnyStateTreeNode,\n Instance,\n getParent,\n isStateTreeNode,\n types,\n} from 'mobx-state-tree'\nimport { AnyConfigurationSchemaType } from '@jbrowse/core/configuration'\nimport { BaseAssemblyConfigSchema } from '@jbrowse/core/assemblyManager'\n\n// locals\nimport type { BaseRootModelType } from '../RootModel/BaseRootModel'\nimport { ElementId } from '@jbrowse/core/util/types/mst'\n\n/**\n * #stateModel BaseSessionModel\n *\n * base session shared by all JBrowse products. Be careful what you include\n * here, everything will use it.\n */\nexport function BaseSessionModel<\n ROOT_MODEL_TYPE extends BaseRootModelType,\n JB_CONFIG_SCHEMA extends AnyConfigurationSchemaType,\n>(_pluginManager: PluginManager) {\n return types\n .model({\n /**\n * #property\n */\n id: ElementId,\n /**\n * #property\n */\n name: types.string,\n /**\n * #property\n */\n margin: 0,\n })\n .volatile(() => ({\n /**\n * #volatile\n * this is the globally \"selected\" object. can be anything. code that\n * wants to deal with this should examine it to see what kind of thing it\n * is.\n */\n selection: undefined as unknown,\n /**\n * #volatile\n * this is the globally \"hovered\" object. can be anything. code that\n * wants to deal with this should examine it to see what kind of thing it\n * is.\n */\n hovered: undefined as unknown,\n }))\n .views(self => ({\n /**\n * #getter\n */\n get root() {\n return getParent(self)\n },\n }))\n .views(self => ({\n /**\n * #getter\n */\n get jbrowse() {\n return self.root.jbrowse\n },\n /**\n * #getter\n */\n get rpcManager() {\n return self.root.rpcManager\n },\n /**\n * #getter\n */\n get configuration(): Instance {\n return this.jbrowse.configuration\n },\n /**\n * #getter\n */\n get adminMode() {\n return self.root.adminMode\n },\n\n /**\n * #getter\n */\n get textSearchManager() {\n return self.root.textSearchManager\n },\n }))\n .views(self => ({\n /**\n * #getter\n */\n get assemblies(): Instance[] {\n return self.jbrowse.assemblies\n },\n }))\n .actions(self => ({\n /**\n * #action\n * set the global selection, i.e. the globally-selected object. can be a\n * feature, a view, just about anything\n */\n setSelection(thing: unknown) {\n self.selection = thing\n },\n\n /**\n * #action\n * clears the global selection\n */\n clearSelection() {\n self.selection = undefined\n },\n /**\n * #action\n */\n setHovered(thing: unknown) {\n self.hovered = thing\n },\n }))\n}\n\n/** Session mixin MST type for the most basic session */\nexport type BaseSessionType = ReturnType\n\n/** Instance of the most basic possible session */\nexport type BaseSession = Instance\n\n/** Type guard for BaseSession */\nexport function isBaseSession(thing: IAnyStateTreeNode): thing is BaseSession {\n return 'id' in thing && 'name' in thing && 'root' in thing\n}\n\n/** Type guard for whether a thing is JBrowse session */\nexport function isSession(thing: unknown): thing is BaseSession {\n return isStateTreeNode(thing) && isBaseSession(thing)\n}\n","import PluginManager from '@jbrowse/core/PluginManager'\nimport {\n AnyConfigurationModel,\n readConfObject,\n} from '@jbrowse/core/configuration'\nimport { IAnyStateTreeNode, Instance, types } from 'mobx-state-tree'\nimport { BaseConnectionConfigModel } from '@jbrowse/core/pluggableElementTypes/models/baseConnectionConfig'\nimport { BaseConnectionModel } from '@jbrowse/core/pluggableElementTypes/models/BaseConnectionModelFactory'\n\n// locals\nimport type { BaseRootModelType } from '../RootModel/BaseRootModel'\nimport type { SessionWithReferenceManagementType } from './ReferenceManagement'\nimport { isBaseSession } from './BaseSession'\n\n/**\n * #stateModel ConnectionManagementSessionMixin\n */\nexport function ConnectionManagementSessionMixin(pluginManager: PluginManager) {\n return types\n .model({\n /**\n * #property\n */\n connectionInstances: types.array(\n pluginManager.pluggableMstType(\n 'connection',\n 'stateModel',\n ) as BaseConnectionModel,\n ),\n })\n .views(self => ({\n /**\n * #getter\n */\n get connections(): BaseConnectionConfigModel[] {\n const { jbrowse } = self as typeof self & Instance\n return jbrowse.connections\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n makeConnection(\n configuration: AnyConfigurationModel,\n initialSnapshot = {},\n ) {\n const type = configuration.type as string\n if (!type) {\n throw new Error('track configuration has no `type` listed')\n }\n const name = readConfObject(configuration, 'name')\n const connectionType = pluginManager.getConnectionType(type)\n if (!connectionType) {\n throw new Error(`unknown connection type ${type}`)\n }\n const length = self.connectionInstances.push({\n ...initialSnapshot,\n name,\n // @ts-expect-error unsure why ts doesn't like `type` here, but is\n // needed\n type,\n configuration,\n })\n return self.connectionInstances[length - 1]\n },\n\n /**\n * #action\n */\n prepareToBreakConnection(configuration: AnyConfigurationModel) {\n const root = self as typeof self &\n Instance\n const callbacksToDeref: (() => void)[] = []\n const derefTypeCount: Record = {}\n const name = readConfObject(configuration, 'name')\n const connection = self.connectionInstances.find(c => c.name === name)\n if (!connection) {\n return undefined\n }\n for (const track of connection.tracks) {\n const ref = root.getReferring(track)\n root.removeReferring(ref, track, callbacksToDeref, derefTypeCount)\n }\n return [\n () => {\n callbacksToDeref.forEach(cb => {\n cb()\n })\n this.breakConnection(configuration)\n },\n derefTypeCount,\n ]\n },\n\n /**\n * #action\n */\n breakConnection(configuration: AnyConfigurationModel) {\n const name = readConfObject(configuration, 'name')\n const connection = self.connectionInstances.find(c => c.name === name)\n if (!connection) {\n throw new Error(`no connection found with name ${name}`)\n }\n self.connectionInstances.remove(connection)\n },\n\n /**\n * #action\n */\n deleteConnection(configuration: AnyConfigurationModel) {\n const { jbrowse } = self as typeof self & Instance\n return jbrowse.deleteConnectionConf(configuration)\n },\n\n /**\n * #action\n */\n addConnectionConf(connectionConf: AnyConfigurationModel) {\n const { jbrowse } = self as typeof self & Instance\n return jbrowse.addConnectionConf(connectionConf)\n },\n\n /**\n * #action\n */\n clearConnections() {\n self.connectionInstances.clear()\n },\n }))\n}\n\n/** Session mixin MST type for a session that has connections */\nexport type SessionWithConnectionsType = ReturnType<\n typeof ConnectionManagementSessionMixin\n>\n\n/** Instance of a session that has connections: `connectionInstances`,\n * `makeConnection()`, etc. */\nexport type SessionWithConnections = Instance\n\n/** Type guard for SessionWithConnections */\nexport function isSessionWithConnections(\n session: IAnyStateTreeNode,\n): session is SessionWithConnections {\n return isBaseSession(session) && 'connectionInstances' in session\n}\n","import { lazy } from 'react'\nimport Plugin from '@jbrowse/core/Plugin'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport UCSCTrackHubConnectionF from './ucsc-trackhub'\nimport AddTrackWidgetF from './AddTrackWidget'\n\nimport AddConnectionWidgetF from './AddConnectionWidget'\nimport PluginStoreWidgetF from './PluginStoreWidget'\nimport HierarchicalTrackSelectorWidgetF from './HierarchicalTrackSelectorWidget'\n\nconst AssemblyManager = lazy(() => import('./AssemblyManager'))\n\nexport default class DataManagementPlugin extends Plugin {\n name = 'DataManagementPlugin'\n\n exports = {\n AssemblyManager,\n }\n\n install(pluginManager: PluginManager) {\n UCSCTrackHubConnectionF(pluginManager)\n AddTrackWidgetF(pluginManager)\n HierarchicalTrackSelectorWidgetF(pluginManager)\n AddConnectionWidgetF(pluginManager)\n PluginStoreWidgetF(pluginManager)\n }\n\n configure(_pluginManager: PluginManager) {}\n}\n\nexport { AssemblyManager }\n\nexport { type AddTrackModel } from './AddTrackWidget/model'\nexport { type HierarchicalTrackSelectorModel } from './HierarchicalTrackSelectorWidget'\n","import React from 'react'\nimport {\n Alert,\n Button,\n IconButton,\n Snackbar as MUISnackbar,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\n\n// icons\nimport CloseIcon from '@mui/icons-material/Close'\n\n// locals\nimport { AbstractSessionModel } from '../util'\nimport { SnackbarMessage } from './SnackbarModel'\n\ninterface SnackbarSession extends AbstractSessionModel {\n snackbarMessages: SnackbarMessage[]\n popSnackbarMessage: () => void\n}\n\nconst Snackbar = observer(function ({ session }: { session: SnackbarSession }) {\n const { snackbarMessages } = session\n const latestMessage = snackbarMessages.at(-1)\n\n const handleClose = (_event: unknown, reason?: string) => {\n if (reason !== 'clickaway') {\n session.popSnackbarMessage()\n }\n }\n return latestMessage ? (\n \n \n {\n latestMessage.action?.onClick()\n handleClose(e)\n }}\n >\n {latestMessage.action.name}\n \n \n \n \n \n ) : null\n }\n severity={latestMessage.level || 'warning'}\n >\n {latestMessage.message}\n \n \n ) : null\n})\n\nexport default Snackbar\n","import React, { useRef, useState } from 'react'\nimport { Button, alpha } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport ArrowDropDown from '@mui/icons-material/ArrowDropDown'\n\nimport Menu, { MenuItem } from './Menu'\n\nconst useStyles = makeStyles()(theme => ({\n buttonRoot: {\n '&:hover': {\n backgroundColor: alpha(\n theme.palette.primary.contrastText,\n theme.palette.action.hoverOpacity,\n ),\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n}))\n\nconst DropDownMenu = observer(function ({\n menuTitle,\n session,\n menuItems,\n}: {\n menuTitle: string\n\n session: any\n menuItems: MenuItem[]\n}) {\n const [open, setOpen] = useState(false)\n const anchorEl = useRef(null)\n const { classes } = useStyles()\n\n function handleClose() {\n setOpen(false)\n }\n\n return (\n <>\n {\n setOpen(!open)\n }}\n color=\"inherit\"\n data-testid=\"dropDownMenuButton\"\n classes={{ root: classes.buttonRoot }}\n >\n {menuTitle}\n \n \n {\n callback(session)\n handleClose()\n }}\n open={open}\n onClose={handleClose}\n menuItems={menuItems}\n />\n \n )\n})\n\nexport default DropDownMenu\n","import React from 'react'\nimport { observer } from 'mobx-react'\n\n// locals\nimport { readConfObject, AnyConfigurationModel } from '../configuration'\n\n// ui elements\nimport { LogoFull } from './Logo'\n\nconst Logo = observer(function ({\n session,\n}: {\n session: { configuration: AnyConfigurationModel }\n}) {\n const { configuration } = session\n const logoPath = readConfObject(configuration, 'logoPath')\n return logoPath?.uri ? (\n \"Custom\n ) : (\n \n )\n})\n\nexport default Logo\n","import React from 'react'\nimport { Toolbar, Tooltip } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { SessionWithDrawerWidgets } from '@jbrowse/core/util'\nimport DropDownMenu from '@jbrowse/core/ui/DropDownMenu'\nimport EditableTypography from '@jbrowse/core/ui/EditableTypography'\nimport AppLogo from '@jbrowse/core/ui/AppLogo'\nimport { MenuItem as JBMenuItem } from '@jbrowse/core/ui/Menu'\nimport { SnackbarMessage } from '@jbrowse/core/ui/SnackbarModel'\n\nconst useStyles = makeStyles()(theme => ({\n grow: {\n flexGrow: 1,\n },\n inputBase: {\n color: theme.palette.primary.contrastText,\n },\n inputRoot: {\n '&:hover': {\n backgroundColor: theme.palette.primary.light,\n },\n },\n inputFocused: {\n borderColor: theme.palette.secondary.main,\n backgroundColor: theme.palette.primary.light,\n },\n}))\n\ntype AppSession = SessionWithDrawerWidgets & {\n menus: {\n label: string\n menuItems: JBMenuItem[]\n }[]\n savedSessionNames?: string[]\n snackbarMessages: SnackbarMessage[]\n\n renameCurrentSession: (arg: string) => void\n popSnackbarMessage: () => unknown\n}\n\nconst AppToolbar = observer(function ({\n session,\n HeaderButtons =
,\n}: {\n HeaderButtons?: React.ReactElement\n session: AppSession\n}) {\n const { classes } = useStyles()\n const { savedSessionNames, name, menus } = session\n\n return (\n \n {menus.map(menu => (\n \n ))}\n
\n \n {\n if (savedSessionNames?.includes(newName)) {\n session.notify(\n `Cannot rename session to \"${newName}\", a saved session with that name already exists`,\n 'warning',\n )\n } else {\n session.renameCurrentSession(newName)\n }\n }}\n variant=\"body1\"\n classes={{\n inputBase: classes.inputBase,\n inputRoot: classes.inputRoot,\n inputFocused: classes.inputFocused,\n }}\n />\n \n {HeaderButtons}\n
\n
\n \n
\n \n )\n})\n\nexport default AppToolbar\n","import React, { Suspense } from 'react'\nimport { observer } from 'mobx-react'\n\n// locals\nimport { SessionWithDrawerWidgets } from '@jbrowse/core/util'\n\nconst DialogQueue = observer(function ({\n session,\n}: {\n session: SessionWithDrawerWidgets\n}) {\n const { DialogComponent, DialogProps } = session\n return DialogComponent ? (\n \n \n \n ) : null\n})\n\nexport default DialogQueue\n","import React from 'react'\nimport { Fab, Tooltip } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { SessionWithDrawerWidgets } from '@jbrowse/core/util'\n\n// icons\nimport LaunchIcon from '@mui/icons-material/Launch'\n\nconst useStyles = makeStyles()(theme => ({\n left: {\n zIndex: 10000,\n position: 'fixed',\n bottom: theme.spacing(2),\n left: theme.spacing(2),\n },\n right: {\n zIndex: 10000,\n position: 'fixed',\n bottom: theme.spacing(2),\n right: theme.spacing(2),\n },\n}))\n\nconst AppFab = observer(function ({\n session,\n}: {\n session: SessionWithDrawerWidgets\n}) {\n const { minimized, activeWidgets, drawerPosition } = session\n const { classes } = useStyles()\n\n return activeWidgets.size > 0 && minimized ? (\n \n {\n session.showWidgetDrawer()\n }}\n >\n \n \n \n ) : null\n})\n\nexport default AppFab\n","import React, { useState } from 'react'\nimport {\n Button,\n FormControl,\n MenuItem,\n Paper,\n Select,\n Typography,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { makeStyles } from 'tss-react/mui'\n\n// locals\nimport { getEnv, SessionWithDrawerWidgets } from '@jbrowse/core/util'\n\n// ui elements\nimport { MenuItem as JBMenuItem } from '@jbrowse/core/ui/Menu'\nimport { SnackbarMessage } from '@jbrowse/core/ui/SnackbarModel'\n\ntype AppSession = SessionWithDrawerWidgets & {\n savedSessionNames: string[]\n menus: { label: string; menuItems: JBMenuItem[] }[]\n renameCurrentSession: (arg: string) => void\n snackbarMessages: SnackbarMessage[]\n popSnackbarMessage: () => unknown\n}\n\nconst useStyles = makeStyles()(theme => ({\n selectPaper: {\n padding: theme.spacing(4),\n },\n m2: {\n margin: 2,\n },\n}))\n\nconst ViewLauncher = observer(({ session }: { session: AppSession }) => {\n const { classes } = useStyles()\n const { pluginManager } = getEnv(session)\n const viewTypes = pluginManager.getElementTypeRecord('view').all()\n const [value, setValue] = useState(viewTypes[0]?.name || '')\n return (\n \n Select a view to launch\n \n {\n setValue(event.target.value)\n }}\n >\n {viewTypes.map(({ displayName, name }) => (\n \n {displayName}\n \n ))}\n \n \n \n session.addView(value, {})}\n variant=\"contained\"\n color=\"primary\"\n >\n Launch view\n \n \n \n )\n})\n\nexport default ViewLauncher\n","import React from 'react'\nimport {\n SvgIconProps,\n IconButton,\n IconButtonProps as IconButtonPropsType,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { AbstractSessionModel, getSession } from '@jbrowse/core/util'\nimport { IBaseViewModel } from '@jbrowse/core/pluggableElementTypes/models'\nimport {\n bindTrigger,\n bindPopover,\n usePopupState,\n} from 'material-ui-popup-state/hooks'\nimport CascadingMenu from '@jbrowse/core/ui/CascadingMenu'\n\n// icons\nimport MenuIcon from '@mui/icons-material/Menu'\nimport KeyboardDoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown'\nimport KeyboardDoubleArrowUpIcon from '@mui/icons-material/KeyboardDoubleArrowUp'\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'\nimport KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp'\n\nconst ViewMenu = observer(function ({\n model,\n IconButtonProps,\n IconProps,\n}: {\n model: IBaseViewModel\n IconButtonProps?: IconButtonPropsType\n IconProps: SvgIconProps\n}) {\n const session = getSession(model) as AbstractSessionModel & {\n moveViewDown: (arg: string) => void\n moveViewUp: (arg: string) => void\n moveViewToBottom: (arg: string) => void\n moveViewToTop: (arg: string) => void\n }\n\n const popupState = usePopupState({\n popupId: 'viewMenu',\n variant: 'popover',\n })\n\n // note: This does not use CascadingMenuButton on purpose, because there was\n // a confusing bug related to it! see\n // https://github.com/GMOD/jbrowse-components/issues/4115\n //\n // Make sure to test the Breakpoint split view menu checkboxes if you intend\n // to change this\n return (\n <>\n \n \n \n void) => {\n callback()\n }}\n menuItems={[\n ...(session.views.length > 1\n ? [\n {\n label: 'View order',\n type: 'subMenu' as const,\n subMenu: [\n {\n label: 'Move view to top',\n icon: KeyboardDoubleArrowUpIcon,\n onClick: () => {\n session.moveViewToTop(model.id)\n },\n },\n {\n label: 'Move view up',\n icon: KeyboardArrowUpIcon,\n onClick: () => {\n session.moveViewUp(model.id)\n },\n },\n {\n label: 'Move view down',\n icon: KeyboardArrowDownIcon,\n onClick: () => {\n session.moveViewDown(model.id)\n },\n },\n {\n label: 'Move view to bottom',\n icon: KeyboardDoubleArrowDownIcon,\n onClick: () => {\n session.moveViewToBottom(model.id)\n },\n },\n ],\n },\n ]\n : []),\n ...model.menuItems(),\n ]}\n popupState={popupState}\n />\n \n )\n})\nexport default ViewMenu\n","import React from 'react'\nimport { Tooltip } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\n\n// locals\nimport EditableTypography from '@jbrowse/core/ui/EditableTypography'\nimport { IBaseViewModel } from '@jbrowse/core/pluggableElementTypes'\n\nconst useStyles = makeStyles()(theme => ({\n input: {\n paddingBottom: 0,\n paddingTop: 2,\n },\n inputBase: {\n color: theme.palette.secondary.contrastText,\n },\n inputRoot: {\n '&:hover': {\n backgroundColor: theme.palette.secondary.light,\n },\n },\n inputFocused: {\n borderColor: theme.palette.primary.main,\n backgroundColor: theme.palette.secondary.light,\n },\n}))\nconst ViewContainerTitle = observer(function ({\n view,\n}: {\n view: IBaseViewModel\n}) {\n const { classes } = useStyles()\n return (\n \n {\n view.setDisplayName(val)\n }}\n variant=\"body2\"\n classes={{\n input: classes.input,\n inputBase: classes.inputBase,\n inputRoot: classes.inputRoot,\n inputFocused: classes.inputFocused,\n }}\n />\n \n )\n})\n\nexport default ViewContainerTitle\n","import React, { useEffect, useRef } from 'react'\nimport { IconButton } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { IBaseViewModel } from '@jbrowse/core/pluggableElementTypes/models'\n\n// icons\nimport CloseIcon from '@mui/icons-material/Close'\nimport MinimizeIcon from '@mui/icons-material/Minimize'\nimport AddIcon from '@mui/icons-material/Add'\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight'\n\n// locals\nimport ViewMenu from './ViewMenu'\nimport ViewContainerTitle from './ViewContainerTitle'\nimport { getSession } from '@jbrowse/core/util'\n\nconst useStyles = makeStyles()(theme => ({\n icon: {\n color: theme.palette.secondary.contrastText,\n },\n grow: {\n flexGrow: 1,\n },\n viewHeader: {\n display: 'flex',\n },\n viewTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst ViewButtons = observer(function ({\n view,\n onClose,\n onMinimize,\n}: {\n view: IBaseViewModel\n onClose: () => void\n onMinimize: () => void\n}) {\n const { classes } = useStyles()\n return (\n <>\n \n {view.minimized ? (\n \n ) : (\n \n )}\n \n \n \n \n \n )\n})\n\nconst ViewHeader = observer(function ({\n view,\n onClose,\n onMinimize,\n}: {\n view: IBaseViewModel\n onClose: () => void\n onMinimize: () => void\n}) {\n const { classes } = useStyles()\n const scrollRef = useRef(null)\n const session = getSession(view)\n\n // scroll the view into view when first mounted. note: this effect will run\n // only once, because of the empty array second param\n useEffect(() => {\n if (typeof jest === 'undefined') {\n scrollRef.current?.scrollIntoView({ block: 'center' })\n }\n }, [])\n return (\n
\n \n
\n
\n {session.focusedViewId === view.id ? (\n \n ) : null}\n \n
\n
\n \n
\n )\n})\n\nexport default ViewHeader\n","import React, { useEffect } from 'react'\nimport { Paper, useTheme } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { getSession, useWidthSetter } from '@jbrowse/core/util'\nimport { IBaseViewModel } from '@jbrowse/core/pluggableElementTypes/models'\nimport { SessionWithFocusedViewAndDrawerWidgets } from '@jbrowse/core/util'\n\n// locals\nimport ViewHeader from './ViewHeader'\n\nconst useStyles = makeStyles()(theme => ({\n viewContainer: {\n overflow: 'hidden',\n margin: theme.spacing(0.5),\n padding: `0 ${theme.spacing(1)} ${theme.spacing(1)}`,\n },\n focusedView: {\n background: theme.palette.secondary.main,\n },\n unfocusedView: {\n background: theme.palette.secondary.dark,\n },\n}))\n\nconst ViewContainer = observer(function ({\n view,\n onClose,\n onMinimize,\n children,\n}: {\n view: IBaseViewModel\n onClose: () => void\n onMinimize: () => void\n children: React.ReactNode\n}) {\n const theme = useTheme()\n const ref = useWidthSetter(view, theme.spacing(1))\n const { classes, cx } = useStyles()\n const session = getSession(view) as SessionWithFocusedViewAndDrawerWidgets\n\n useEffect(() => {\n function handleSelectView(e: Event) {\n if (e.target instanceof Element && ref.current?.contains(e.target)) {\n session.setFocusedViewId(view.id)\n }\n }\n\n document.addEventListener('mousedown', handleSelectView)\n document.addEventListener('keydown', handleSelectView)\n return () => {\n document.removeEventListener('mousedown', handleSelectView)\n document.removeEventListener('keydown', handleSelectView)\n }\n }, [ref, session, view])\n\n return (\n \n \n {children}\n \n )\n})\n\nexport default ViewContainer\n","import React, { Suspense } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { observer } from 'mobx-react'\n\n// locals\nimport {\n getEnv,\n AbstractViewModel,\n SessionWithDrawerWidgets,\n} from '@jbrowse/core/util'\nimport { SnackbarMessage } from '@jbrowse/core/ui/SnackbarModel'\n\n// ui elements\nimport ErrorMessage from '@jbrowse/core/ui/ErrorMessage'\nimport LoadingEllipses from '@jbrowse/core/ui/LoadingEllipses'\nimport { MenuItem as JBMenuItem } from '@jbrowse/core/ui/Menu'\n\n// locals\nimport ViewContainer from './ViewContainer'\n\ntype AppSession = SessionWithDrawerWidgets & {\n savedSessionNames: string[]\n menus: { label: string; menuItems: JBMenuItem[] }[]\n snackbarMessages: SnackbarMessage[]\n renameCurrentSession: (arg: string) => void\n popSnackbarMessage: () => unknown\n}\n\nconst ViewPanel = observer(function ({\n view,\n session,\n}: {\n view: AbstractViewModel\n session: AppSession\n}) {\n const { pluginManager } = getEnv(session)\n const viewType = pluginManager.getViewType(view.type)\n if (!viewType) {\n throw new Error(`unknown view type ${view.type}`)\n }\n const { ReactComponent } = viewType\n return (\n {\n session.removeView(view)\n }}\n onMinimize={() => {\n view.setMinimized(!view.minimized)\n }}\n >\n {!view.minimized ? (\n }\n >\n }>\n \n \n \n ) : (\n false\n )}\n \n )\n})\n\nexport default ViewPanel\n","import React from 'react'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { SessionWithFocusedViewAndDrawerWidgets } from '@jbrowse/core/util'\nimport { SnackbarMessage } from '@jbrowse/core/ui/SnackbarModel'\nimport { MenuItem as JBMenuItem } from '@jbrowse/core/ui/Menu'\n\n// locals\nimport ViewLauncher from './ViewLauncher'\nimport ViewPanel from './ViewPanel'\n\nconst useStyles = makeStyles()({\n viewsContainer: {\n overflowY: 'auto',\n gridRow: 'components',\n },\n})\n\ninterface Props {\n HeaderButtons?: React.ReactElement\n session: SessionWithFocusedViewAndDrawerWidgets & {\n savedSessionNames: string[]\n menus: { label: string; menuItems: JBMenuItem[] }[]\n renameCurrentSession: (arg: string) => void\n snackbarMessages: SnackbarMessage[]\n popSnackbarMessage: () => unknown\n }\n}\n\nconst ViewsContainer = observer(function ViewsContainer(props: Props) {\n const { session } = props\n const { views } = session\n const { classes } = useStyles()\n return (\n
\n {views.length > 0 ? (\n views.map(view => (\n \n ))\n ) : (\n \n )}\n\n {/* blank space at the bottom of screen allows scroll */}\n
\n
\n )\n})\n\nexport default ViewsContainer\n","import React, { Suspense, lazy } from 'react'\nimport { AppBar } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { SessionWithFocusedViewAndDrawerWidgets } from '@jbrowse/core/util'\nimport Snackbar from '@jbrowse/core/ui/Snackbar'\nimport { SnackbarMessage } from '@jbrowse/core/ui/SnackbarModel'\nimport { MenuItem as JBMenuItem } from '@jbrowse/core/ui/Menu'\n\n// locals\nimport AppToolbar from './AppToolbar'\nimport DialogQueue from './DialogQueue'\nimport AppFab from './AppFab'\nimport ViewsContainer from './ViewsContainer'\n\nconst DrawerWidget = lazy(() => import('./DrawerWidget'))\n\nconst useStyles = makeStyles()(theme => ({\n root: {\n display: 'grid',\n height: '100vh',\n width: '100%',\n colorScheme: theme.palette.mode,\n },\n appContainer: {\n gridColumn: 'main',\n display: 'grid',\n gridTemplateRows: '[menubar] min-content [components] auto',\n height: '100vh',\n },\n\n appBar: {\n flexGrow: 1,\n gridRow: 'menubar',\n },\n}))\n\ninterface Props {\n HeaderButtons?: React.ReactElement\n session: SessionWithFocusedViewAndDrawerWidgets & {\n savedSessionNames: string[]\n menus: { label: string; menuItems: JBMenuItem[] }[]\n renameCurrentSession: (arg: string) => void\n snackbarMessages: SnackbarMessage[]\n popSnackbarMessage: () => unknown\n }\n}\n\nconst LazyDrawerWidget = observer(function (props: Props) {\n const { session } = props\n return (\n \n \n \n )\n})\n\nconst App = observer(function (props: Props) {\n const { session } = props\n const { classes } = useStyles()\n const { minimized, visibleWidget, drawerWidth, drawerPosition } = session\n const drawerVisible = visibleWidget && !minimized\n const d = drawerVisible ? `[drawer] ${drawerWidth}px` : undefined\n const grid =\n drawerPosition === 'right' ? ['[main] 1fr', d] : [d, '[main] 1fr']\n\n return (\n !!f).join(' ') }}\n >\n {drawerVisible && drawerPosition === 'left' ? (\n \n ) : null}\n \n
\n \n \n \n \n
\n \n\n {drawerVisible && drawerPosition === 'right' ? (\n \n ) : null}\n\n \n
\n )\n})\n\nexport { App }\n","// adapted from https://github.com/mobxjs/mobx-state-tree/blob/master/packages/mst-middlewares/src/time-traveller.ts\nimport {\n types,\n resolvePath,\n getEnv,\n onSnapshot,\n getSnapshot,\n applySnapshot,\n IDisposer,\n IAnyStateTreeNode,\n} from 'mobx-state-tree'\n\nconst MAX_HISTORY_LENGTH = 20\n\nfunction debounce(func: (...args: unknown[]) => void, timeout = 300) {\n let timer: ReturnType\n return (...args: unknown[]) => {\n clearTimeout(timer)\n timer = setTimeout(() => {\n func(...args)\n }, timeout)\n }\n}\n\nconst TimeTraveller = types\n .model('TimeTraveller', {\n undoIdx: -1,\n targetPath: '',\n })\n .volatile(() => ({\n history: [] as unknown[],\n notTrackingUndo: false,\n }))\n .views(self => ({\n get canUndo() {\n return self.undoIdx > 0 && !self.notTrackingUndo\n },\n get canRedo() {\n return self.undoIdx < self.history.length - 1 && !self.notTrackingUndo\n },\n }))\n .actions(self => {\n let targetStore: IAnyStateTreeNode | undefined\n let snapshotDisposer: IDisposer\n let skipNextUndoState = false\n\n return {\n // allows user code to (temporarily) stop tracking undo states\n stopTrackingUndo() {\n self.notTrackingUndo = true\n },\n // allows user code to resume tracking undo states\n resumeTrackingUndo() {\n self.notTrackingUndo = false\n },\n addUndoState(todos: unknown) {\n if (self.notTrackingUndo) {\n return\n }\n if (skipNextUndoState) {\n // skip recording if this state was caused by undo / redo\n skipNextUndoState = false\n return\n }\n self.history.splice(self.undoIdx + 1)\n self.history.push(todos)\n if (self.history.length > MAX_HISTORY_LENGTH) {\n self.history.shift()\n }\n self.undoIdx = self.history.length - 1\n },\n\n beforeDestroy() {\n snapshotDisposer()\n },\n initialize() {\n targetStore = self.targetPath\n ? resolvePath(self, self.targetPath)\n : getEnv(self).targetStore\n\n if (!targetStore) {\n throw new Error(\n 'Failed to find target store for TimeTraveller. Please provide `targetPath` property, or a `targetStore` in the environment',\n )\n }\n\n snapshotDisposer = onSnapshot(\n targetStore,\n debounce((snapshot: unknown) => {\n this.addUndoState(snapshot)\n }, 300),\n )\n if (self.history.length === 0) {\n this.addUndoState(getSnapshot(targetStore))\n }\n },\n undo() {\n self.undoIdx--\n skipNextUndoState = true\n if (targetStore) {\n applySnapshot(targetStore, self.history[self.undoIdx])\n }\n },\n redo() {\n self.undoIdx++\n skipNextUndoState = true\n if (targetStore) {\n applySnapshot(targetStore, self.history[self.undoIdx])\n }\n },\n }\n })\n\nexport default TimeTraveller\n","import { ConfigurationSchema } from '../configuration'\n\n/**\n * #config BaseRpcDriver\n */\nfunction x() {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\nconst BaseRpcDriverConfigSchema = ConfigurationSchema(\n 'BaseRpcDriver',\n {\n /**\n * #slot\n */\n workerCount: {\n type: 'number',\n description:\n 'The number of workers to use. If 0 (the default) JBrowse will decide how many workers to use.',\n defaultValue: 0,\n },\n },\n { explicitlyTyped: true },\n)\nexport default BaseRpcDriverConfigSchema\n","import { ConfigurationSchema } from '../configuration'\nimport BaseRpcDriverConfigSchema from './baseRpcConfig'\n\n/**\n * #config WebWorkerRpcDriver\n */\nfunction x() {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\nconst WebWorkerRpcDriverConfigSchema = ConfigurationSchema(\n 'WebWorkerRpcDriver',\n {},\n {\n /**\n * #baseConfiguration\n */\n baseConfiguration: BaseRpcDriverConfigSchema,\n explicitlyTyped: true,\n },\n)\nexport default WebWorkerRpcDriverConfigSchema\n","import { ConfigurationSchema } from '../configuration'\nimport BaseRpcDriverConfigSchema from './baseRpcConfig'\n\n/**\n * #config MainThreadRpcDriver\n */\nfunction x() {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\nconst MainThreadRpcDriverConfigSchema = ConfigurationSchema(\n 'MainThreadRpcDriver',\n {},\n {\n /**\n * #baseConfiguration\n */\n baseConfiguration: BaseRpcDriverConfigSchema,\n explicitlyTyped: true,\n },\n)\nexport default MainThreadRpcDriverConfigSchema\n","import { types } from 'mobx-state-tree'\nimport { ConfigurationSchema } from '../configuration'\nimport WebWorkerRpcDriverConfigSchema from './webWorkerRpcConfig'\nimport MainThreadRpcDriverConfigSchema from './mainThreadRpcConfig'\n\n/**\n * #config RpcOptions\n */\nfunction x() {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\nexport default ConfigurationSchema(\n 'RpcOptions',\n {\n /**\n * #slot\n */\n defaultDriver: {\n type: 'string',\n description:\n 'the RPC driver to use for tracks and tasks that are not configured to use a specific RPC backend',\n defaultValue: 'MainThreadRpcDriver',\n },\n /**\n * #slot\n */\n drivers: types.optional(\n types.map(\n types.union(\n MainThreadRpcDriverConfigSchema,\n WebWorkerRpcDriverConfigSchema,\n ),\n ),\n {\n MainThreadRpcDriver: { type: 'MainThreadRpcDriver' },\n WebWorkerRpcDriver: { type: 'WebWorkerRpcDriver' },\n },\n ),\n },\n {\n actions: (self: any) => ({\n addDriverConfig(configName: string, configSnapshot: { type: string }) {\n self.drivers.set(configName, configSnapshot)\n },\n }),\n },\n)\n","import { isAlive, isStateTreeNode } from 'mobx-state-tree'\nimport { clamp } from '../util'\nimport { serializeAbortSignal } from './remoteAbortSignals'\nimport PluginManager from '../PluginManager'\nimport { readConfObject, AnyConfigurationModel } from '../configuration'\n\nexport interface WorkerHandle {\n status?: string\n error?: unknown\n on?: (channel: string, callback: (message: unknown) => void) => void\n off?: (channel: string, callback: (message: unknown) => void) => void\n destroy(): void\n call(\n functionName: string,\n args?: unknown,\n options?: {\n statusCallback?(message: string): void\n timeout?: number\n rpcDriverClassName: string\n },\n ): Promise\n}\n\nexport interface RpcDriverConstructorArgs {\n config: AnyConfigurationModel\n}\n\nfunction isClonable(thing: unknown) {\n return !(typeof thing === 'function') && !(thing instanceof Error)\n}\n\n// watches the given worker object, returns a promise that will be rejected if\n// the worker times out\nexport async function watchWorker(\n worker: WorkerHandle,\n pingTime: number,\n rpcDriverClassName: string,\n) {\n // after first ping succeeds, apply wait for timeout\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while (true) {\n await worker.call('ping', [], {\n timeout: pingTime * 2,\n rpcDriverClassName,\n })\n await new Promise(resolve => setTimeout(resolve, pingTime))\n }\n}\n\nfunction detectHardwareConcurrency() {\n const mainThread = typeof window !== 'undefined'\n const canDetect = mainThread && 'hardwareConcurrency' in window.navigator\n if (mainThread && canDetect) {\n return window.navigator.hardwareConcurrency\n }\n return 1\n}\nclass LazyWorker {\n workerP?: Promise | undefined\n\n constructor(public driver: BaseRpcDriver) {}\n\n async getWorker() {\n if (!this.workerP) {\n this.workerP = this.driver\n .makeWorker()\n .then(worker => {\n watchWorker(worker, this.driver.maxPingTime, this.driver.name).catch(\n (error: unknown) => {\n console.error(\n 'worker did not respond, killing and generating new one',\n )\n console.error(error)\n worker.destroy()\n worker.status = 'killed'\n worker.error = error\n this.workerP = undefined\n },\n )\n return worker\n })\n .catch((e: unknown) => {\n this.workerP = undefined\n throw e\n })\n }\n return this.workerP\n }\n}\n\nexport default abstract class BaseRpcDriver {\n abstract name: string\n\n private lastWorkerAssignment = -1\n\n private workerAssignments = new Map() // sessionId -> worker number\n\n abstract makeWorker(): Promise\n\n private workerPool?: LazyWorker[]\n\n maxPingTime = 30000\n\n workerCheckFrequency = 5000\n\n config: AnyConfigurationModel\n\n constructor(args: RpcDriverConstructorArgs) {\n this.config = args.config\n }\n\n // filter the given object and just remove any non-clonable things from it\n filterArgs(thing: THING_TYPE, sessionId: string): THING_TYPE {\n if (Array.isArray(thing)) {\n return thing\n .filter(thing => isClonable(thing))\n .map(t => this.filterArgs(t, sessionId)) as unknown as THING_TYPE\n }\n if (typeof thing === 'object' && thing !== null) {\n // AbortSignals are specially handled\n if (thing instanceof AbortSignal) {\n return serializeAbortSignal(\n thing,\n this.remoteAbort.bind(this, sessionId),\n ) as unknown as THING_TYPE\n }\n\n if (isStateTreeNode(thing) && !isAlive(thing)) {\n throw new Error('dead state tree node passed to RPC call')\n }\n\n // special case, don't try to iterate the file's subelements as the\n // object entries below would\n if (thing instanceof File) {\n return thing\n }\n\n return Object.fromEntries(\n Object.entries(thing)\n .filter(e => isClonable(e[1]))\n .map(([k, v]) => [k, this.filterArgs(v, sessionId)]),\n ) as THING_TYPE\n }\n return thing\n }\n\n async remoteAbort(sessionId: string, functionName: string, signalId: number) {\n const worker = await this.getWorker(sessionId)\n await worker.call(\n functionName,\n { signalId },\n { timeout: 1000000, rpcDriverClassName: this.name },\n )\n }\n\n createWorkerPool(): LazyWorker[] {\n const hardwareConcurrency = detectHardwareConcurrency()\n\n const workerCount =\n readConfObject(this.config, 'workerCount') ||\n clamp(1, Math.max(1, hardwareConcurrency - 1), 5)\n\n const workers = []\n for (let i = 0; i < workerCount; i++) {\n workers.push(new LazyWorker(this))\n }\n return workers\n }\n\n getWorkerPool() {\n if (!this.workerPool) {\n const res = this.createWorkerPool()\n this.workerPool = res\n return res // making this several steps makes TS happy\n }\n return this.workerPool\n }\n\n async getWorker(sessionId: string): Promise {\n const workers = this.getWorkerPool()\n let workerNumber = this.workerAssignments.get(sessionId)\n if (workerNumber === undefined) {\n const workerAssignment = (this.lastWorkerAssignment + 1) % workers.length\n this.workerAssignments.set(sessionId, workerAssignment)\n this.lastWorkerAssignment = workerAssignment\n workerNumber = workerAssignment\n }\n\n return workers[workerNumber]!.getWorker()\n }\n\n async call(\n pluginManager: PluginManager,\n sessionId: string,\n functionName: string,\n args: {\n statusCallback?: (message: unknown) => void\n },\n options = {},\n ) {\n if (!sessionId) {\n throw new TypeError('sessionId is required')\n }\n let done = false\n const unextendedWorker = await this.getWorker(sessionId)\n const worker = pluginManager.evaluateExtensionPoint(\n 'Core-extendWorker',\n unextendedWorker,\n ) as WorkerHandle\n const rpcMethod = pluginManager.getRpcMethodType(functionName)\n if (!rpcMethod) {\n throw new Error(`unknown RPC method ${functionName}`)\n }\n const serializedArgs = await rpcMethod.serializeArguments(args, this.name)\n const filteredAndSerializedArgs = this.filterArgs(serializedArgs, sessionId)\n\n // now actually call the worker\n const callP = worker\n .call(functionName, filteredAndSerializedArgs, {\n timeout: 5 * 60 * 1000, // 5 minutes\n statusCallback: args.statusCallback,\n rpcDriverClassName: this.name,\n ...options,\n })\n .finally(() => {\n done = true\n })\n\n // check every 5 seconds to see if the worker has been killed, and\n // reject the killedP promise if it has\n let killedCheckInterval: ReturnType\n const killedP = new Promise((resolve, reject) => {\n killedCheckInterval = setInterval(() => {\n // must've been killed\n if (worker.status === 'killed') {\n reject(\n new Error(\n `operation timed out, worker process stopped responding, ${worker.error}`,\n ),\n )\n } else if (done) {\n resolve(true)\n }\n }, this.workerCheckFrequency)\n }).finally(() => {\n clearInterval(killedCheckInterval)\n })\n\n // the result is a race between the actual result promise, and the \"killed\"\n // promise. the killed promise will only actually win if the worker was\n // killed before the call could return\n const resultP = Promise.race([callP, killedP])\n return rpcMethod.deserializeReturn(resultP, args, this.name)\n }\n}\n","import { deserializeError } from 'serialize-error'\nimport Rpc from 'librpc-web-mod'\n\n// locals\nimport { nanoid } from '../util/nanoid'\nimport BaseRpcDriver, { RpcDriverConstructorArgs } from './BaseRpcDriver'\nimport { PluginDefinition } from '../PluginLoader'\n\ninterface WebWorkerRpcDriverConstructorArgs extends RpcDriverConstructorArgs {\n makeWorkerInstance: () => Worker\n}\n\ninterface Options {\n statusCallback?: (arg0: unknown) => void\n rpcDriverClassName: string\n}\n\nclass WebWorkerHandle extends Rpc.Client {\n destroy(): void {\n this.workers[0]!.terminate()\n }\n\n async call(funcName: string, args: Record, opts: Options) {\n const { statusCallback, rpcDriverClassName } = opts\n const channel = `message-${nanoid()}`\n const listener = (message: unknown) => {\n statusCallback?.(message)\n }\n this.on(channel, listener)\n const result = await super.call(\n funcName,\n { ...args, channel, rpcDriverClassName },\n opts,\n )\n this.off(channel, listener)\n return result\n }\n}\n\nexport default class WebWorkerRpcDriver extends BaseRpcDriver {\n name = 'WebWorkerRpcDriver'\n\n makeWorkerInstance: () => Worker\n\n constructor(\n args: WebWorkerRpcDriverConstructorArgs,\n public workerBootConfiguration: {\n plugins: PluginDefinition[]\n windowHref: string\n },\n ) {\n super(args)\n this.makeWorkerInstance = args.makeWorkerInstance\n }\n\n async makeWorker() {\n // note that we are making a Rpc.Client connection with a worker pool of\n // one for each worker, because we want to do our own state-group-aware\n // load balancing rather than using librpc's builtin round-robin\n const instance = this.makeWorkerInstance()\n\n // @ts-ignore this is used to avoid warning in jbrowse-web startup\n // (because this file is referred to via src, declare.d.ts file is in\n // e.g. products/jbrowse-web)\n const worker = new WebWorkerHandle({ workers: [instance] })\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent)\n if (isSafari) {\n // xref https://github.com/GMOD/jbrowse-components/issues/3245\n // eslint-disable-next-line no-console\n console.log(\n 'console logging the webworker handle avoids the track going into an infinite loading state, this is a hacky workaround for safari',\n instance,\n )\n }\n\n // send the worker its boot configuration using info from the pluginManager\n return new Promise((resolve: (w: WebWorkerHandle) => void, reject) => {\n const listener = (e: MessageEvent) => {\n switch (e.data.message) {\n case 'ready': {\n resolve(worker)\n worker.workers[0]!.removeEventListener('message', listener)\n break\n }\n case 'readyForConfig': {\n worker.workers[0]!.postMessage({\n message: 'config',\n config: this.workerBootConfiguration,\n })\n break\n }\n case 'error': {\n reject(deserializeError(e.data.error))\n break\n }\n // No default\n }\n }\n worker.workers[0]!.addEventListener('message', listener)\n })\n }\n}\n","import BaseRpcDriver, { RpcDriverConstructorArgs } from './BaseRpcDriver'\nimport PluginManager from '../PluginManager'\n\nclass DummyHandle {\n destroy(): void {}\n\n async call(\n _functionName: string,\n _filteredArgs?: Record,\n _options = {},\n ): Promise {\n return undefined\n }\n}\n\n/**\n * Stub RPC driver class that runs RPC functions in-band in the main thread.\n *\n * @param rpcFuncs - object containing runnable rpc functions\n */\nexport default class MainThreadRpcDriver extends BaseRpcDriver {\n name = 'MainThreadRpcDriver'\n\n makeWorker: () => Promise\n\n constructor(args: RpcDriverConstructorArgs) {\n super(args)\n this.makeWorker = async (): Promise => new DummyHandle()\n }\n\n async call(\n pm: PluginManager,\n sessionId: string,\n funcName: string,\n args: Record,\n ) {\n if (!sessionId) {\n throw new TypeError('sessionId is required')\n }\n const rpcMethod = pm.getRpcMethodType(funcName)\n if (!rpcMethod) {\n throw new Error(`unknown RPC method ${funcName}`)\n }\n const serializedArgs = await rpcMethod.serializeArguments(args, this.name)\n const result = await rpcMethod.execute(serializedArgs, this.name)\n return rpcMethod.deserializeReturn(result, args, this.name)\n }\n}\n","import PluginManager from '../PluginManager'\nimport { readConfObject, AnyConfigurationModel } from '../configuration'\nimport rpcConfigSchema from './configSchema'\nimport WebWorkerRpcDriver from './WebWorkerRpcDriver'\nimport MainThreadRpcDriver from './MainThreadRpcDriver'\n\ntype DriverClass = WebWorkerRpcDriver | MainThreadRpcDriver\ninterface BackendConfigurations {\n WebWorkerRpcDriver?: Omit<\n ConstructorParameters[0],\n 'config'\n >\n MainThreadRpcDriver?: Omit<\n ConstructorParameters[0],\n 'config'\n >\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst DriverClasses = {\n WebWorkerRpcDriver,\n MainThreadRpcDriver,\n}\n\nexport default class RpcManager {\n static configSchema = rpcConfigSchema\n\n driverObjects: Map\n\n constructor(\n public pluginManager: PluginManager,\n public mainConfiguration: AnyConfigurationModel,\n public backendConfigurations: BackendConfigurations,\n ) {\n this.driverObjects = new Map()\n }\n\n getDriver(backendName: keyof typeof DriverClasses) {\n const driver = this.driverObjects.get(backendName)\n if (driver) {\n return driver\n }\n const config = this.mainConfiguration.drivers.get('WebWorkerRpcDriver')\n if (backendName === 'MainThreadRpcDriver') {\n const backendConfiguration =\n this.backendConfigurations.MainThreadRpcDriver\n\n if (!backendConfiguration) {\n throw new Error(\n `requested RPC driver \"${backendName}\" is missing config`,\n )\n }\n const newDriver = new MainThreadRpcDriver({\n ...backendConfiguration,\n config,\n })\n this.driverObjects.set(backendName, newDriver)\n return newDriver\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n else if (backendName === 'WebWorkerRpcDriver') {\n const backendConfiguration = this.backendConfigurations.WebWorkerRpcDriver\n if (!backendConfiguration) {\n throw new Error(\n `requested RPC driver \"${backendName}\" is missing config`,\n )\n }\n const newDriver = new WebWorkerRpcDriver(\n { ...backendConfiguration, config },\n {\n plugins: this.pluginManager.runtimePluginDefinitions,\n windowHref: window.location.href,\n },\n )\n this.driverObjects.set(backendName, newDriver)\n return newDriver\n } else {\n throw new Error(`requested RPC driver \"${backendName}\" is not installed`)\n }\n }\n\n async getDriverForCall(\n _sessionId: string,\n _functionName: string,\n args: { rpcDriverName?: string },\n ) {\n const backendName =\n args.rpcDriverName ||\n readConfObject(this.mainConfiguration, 'defaultDriver')\n\n return this.getDriver(backendName)\n }\n\n async call(\n sessionId: string,\n functionName: string,\n args: Record,\n opts = {},\n ) {\n if (!sessionId) {\n throw new Error('sessionId is required')\n }\n const driverForCall = await this.getDriverForCall(\n sessionId,\n functionName,\n args,\n )\n return driverForCall.call(\n this.pluginManager,\n sessionId,\n functionName,\n args,\n opts,\n )\n }\n}\n","import React, { useState, lazy } from 'react'\nimport { observer } from 'mobx-react'\nimport { Button, alpha } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { AbstractSessionModel } from '@jbrowse/core/util'\n\n// icons\nimport ShareIcon from '@mui/icons-material/Share'\n\nconst useStyles = makeStyles()(theme => ({\n shareDiv: {\n textAlign: 'center',\n paddingLeft: '2px',\n },\n shareButton: {\n backgroundColor: alpha(\n theme.palette.primary.contrastText,\n theme.palette.action.hoverOpacity,\n ),\n '&:hover': {\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n}))\n\nconst ShareDialog = lazy(() => import('./ShareDialog'))\n\nconst ShareButton = observer(function (props: {\n session: AbstractSessionModel & { shareURL: string }\n}) {\n const [open, setOpen] = useState(false)\n const { session } = props\n const { classes } = useStyles()\n\n return (\n
\n {\n setOpen(true)\n }}\n size=\"small\"\n color=\"inherit\"\n startIcon={}\n classes={{ root: classes.shareButton }}\n >\n Share\n \n {open ? (\n \n {\n setOpen(false)\n }}\n session={session}\n />\n \n ) : null}\n
\n )\n})\n\nexport default ShareButton\n","import React, { useEffect } from 'react'\nimport { observer } from 'mobx-react'\nimport { onSnapshot } from 'mobx-state-tree'\nimport { useQueryParam, StringParam } from 'use-query-params'\nimport { CssBaseline, ThemeProvider } from '@mui/material'\n\n// core\nimport { App } from '@jbrowse/app-core'\nimport PluginManager from '@jbrowse/core/PluginManager'\n\n// locals\nimport ShareButton from './ShareButton'\nimport { WebSessionModel } from '../sessionModel'\n\nconst JBrowse = observer(function ({\n pluginManager,\n}: {\n pluginManager: PluginManager\n}) {\n const [adminKey] = useQueryParam('adminKey', StringParam)\n const [adminServer] = useQueryParam('adminServer', StringParam)\n const [configPath] = useQueryParam('config', StringParam)\n const [, setSessionId] = useQueryParam('session', StringParam)\n const { rootModel } = pluginManager\n const { error, jbrowse } = rootModel || {}\n const session = rootModel?.session as WebSessionModel | undefined\n const currentSessionId = session?.id\n\n useEffect(() => {\n setSessionId(`local-${currentSessionId}`, 'replaceIn')\n // @ts-expect-error\n window.JBrowseRootModel = rootModel\n // @ts-expect-error\n window.JBrowseSession = session\n }, [currentSessionId, rootModel, session, setSessionId])\n\n useEffect(() => {\n if (!jbrowse || !adminKey) {\n return\n }\n return onSnapshot(jbrowse, async snapshot => {\n try {\n const response = await fetch(adminServer || '/updateConfig', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n adminKey,\n configPath,\n config: snapshot,\n }),\n })\n if (!response.ok) {\n const message = await response.text()\n throw new Error(`HTTP ${response.status} (${message})`)\n }\n } catch (e) {\n session?.notify(`Admin server error: ${e}`)\n }\n })\n }, [jbrowse, session, adminKey, adminServer, configPath])\n\n if (error) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw error\n }\n if (!rootModel) {\n throw new Error('No rootModel found')\n }\n if (!session) {\n throw new Error('No session found')\n }\n\n return (\n \n \n }\n />\n \n )\n})\n\nexport default JBrowse\n","import { types, addDisposer, Instance } from 'mobx-state-tree'\nimport { autorun } from 'mobx'\nimport PluginLoader, {\n PluginDefinition,\n PluginRecord,\n} from '@jbrowse/core/PluginLoader'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { openLocation } from '@jbrowse/core/util/io'\nimport { nanoid } from '@jbrowse/core/util/nanoid'\n\n// locals\nimport { readSessionFromDynamo } from './sessionSharing'\nimport { addRelativeUris, checkPlugins, fromUrlSafeB64, readConf } from './util'\n\nexport interface SessionTriagedInfo {\n snap: unknown\n origin: string\n reason: PluginDefinition[]\n}\n\nconst SessionLoader = types\n .model({\n configPath: types.maybe(types.string),\n sessionQuery: types.maybe(types.string),\n password: types.maybe(types.string),\n adminKey: types.maybe(types.string),\n loc: types.maybe(types.string),\n sessionTracks: types.maybe(types.string),\n assembly: types.maybe(types.string),\n tracks: types.maybe(types.string),\n tracklist: types.maybe(types.boolean),\n highlight: types.maybe(types.string),\n nav: types.maybe(types.boolean),\n initialTimestamp: types.number,\n })\n .volatile(() => ({\n sessionTriaged: undefined as SessionTriagedInfo | undefined,\n configSnapshot: undefined as Record | undefined,\n sessionSnapshot: undefined as Record | undefined,\n sessionSpec: undefined as Record | undefined,\n blankSession: false,\n runtimePlugins: [] as PluginRecord[],\n sessionPlugins: [] as PluginRecord[],\n sessionError: undefined as unknown,\n configError: undefined as unknown,\n bc1:\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n window.BroadcastChannel\n ? new window.BroadcastChannel('jb_request_session')\n : undefined,\n bc2:\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n window.BroadcastChannel\n ? new window.BroadcastChannel('jb_respond_session')\n : undefined,\n }))\n .views(self => ({\n get isSharedSession() {\n return !!self.sessionQuery?.startsWith('share-')\n },\n\n get isSpecSession() {\n return !!self.sessionQuery?.startsWith('spec-')\n },\n\n get isJb1StyleSession() {\n return !!self.loc\n },\n\n get isEncodedSession() {\n return !!self.sessionQuery?.startsWith('encoded-')\n },\n\n get isJsonSession() {\n return !!self.sessionQuery?.startsWith('json-')\n },\n\n get isLocalSession() {\n return !!self.sessionQuery?.startsWith('local-')\n },\n\n get ready() {\n return Boolean(this.isSessionLoaded && !self.configError)\n },\n\n get error() {\n return self.configError || self.sessionError\n },\n\n get isSessionLoaded() {\n return Boolean(\n self.sessionError ||\n self.sessionSnapshot ||\n self.blankSession ||\n self.sessionSpec,\n )\n },\n get isConfigLoaded() {\n return Boolean(self.configError || self.configSnapshot)\n },\n\n get sessionTracksParsed() {\n return self.sessionTracks ? JSON.parse(self.sessionTracks) : []\n },\n }))\n .actions(self => ({\n setSessionQuery(session?: any) {\n self.sessionQuery = session\n },\n setConfigError(error: unknown) {\n self.configError = error\n },\n setSessionError(error: unknown) {\n self.sessionError = error\n },\n setRuntimePlugins(plugins: PluginRecord[]) {\n self.runtimePlugins = plugins\n },\n setSessionPlugins(plugins: PluginRecord[]) {\n self.sessionPlugins = plugins\n },\n setConfigSnapshot(snap: Record) {\n self.configSnapshot = snap\n },\n\n setBlankSession(flag: boolean) {\n self.blankSession = flag\n },\n setSessionTriaged(args?: SessionTriagedInfo) {\n self.sessionTriaged = args\n },\n setSessionSnapshotSuccess(snap: Record) {\n self.sessionSnapshot = snap\n },\n }))\n .actions(self => ({\n async fetchPlugins(config: { plugins: PluginDefinition[] }) {\n try {\n const pluginLoader = new PluginLoader(config.plugins, {\n fetchESM: url => import(/* webpackIgnore:true */ url),\n })\n pluginLoader.installGlobalReExports(window)\n const runtimePlugins = await pluginLoader.load(window.location.href)\n self.setRuntimePlugins([...runtimePlugins])\n } catch (e) {\n console.error(e)\n self.setConfigError(e)\n }\n },\n async fetchSessionPlugins(snap: { sessionPlugins?: PluginDefinition[] }) {\n try {\n const pluginLoader = new PluginLoader(snap.sessionPlugins || [], {\n fetchESM: url => import(/* webpackIgnore:true */ url),\n })\n pluginLoader.installGlobalReExports(window)\n const plugins = await pluginLoader.load(window.location.href)\n self.setSessionPlugins([...plugins])\n } catch (e) {\n console.error(e)\n self.setConfigError(e)\n }\n },\n\n // passed\n async setSessionSnapshot(\n snap: { sessionPlugins?: PluginDefinition[]; id: string },\n userAcceptedConfirmation?: boolean,\n ) {\n try {\n const { sessionPlugins = [] } = snap\n const sessionPluginsAllowed = await checkPlugins(sessionPlugins)\n if (sessionPluginsAllowed || userAcceptedConfirmation) {\n await this.fetchSessionPlugins(snap)\n self.setSessionSnapshotSuccess(snap)\n } else {\n self.setSessionTriaged({\n snap,\n origin: 'session',\n reason: sessionPlugins,\n })\n }\n } catch (e) {\n console.error(e)\n self.setConfigError(e)\n }\n },\n\n async fetchConfig() {\n // @ts-expect-error\n\n let { configPath = window.__jbrowseConfigPath || 'config.json' } = self\n\n // @ts-expect-error\n\n if (window.__jbrowseCacheBuster) {\n configPath += `?rand=${Math.random()}`\n }\n\n const text = await openLocation({\n uri: configPath,\n locationType: 'UriLocation',\n }).readFile('utf8')\n const config = JSON.parse(text)\n const configUri = new URL(configPath, window.location.href)\n addRelativeUris(config, configUri)\n\n // cross origin config check\n if (configUri.hostname !== window.location.hostname) {\n const configPlugins = config.plugins || []\n const configPluginsAllowed = await checkPlugins(configPlugins)\n if (!configPluginsAllowed) {\n self.setSessionTriaged({\n snap: config,\n origin: 'config',\n reason: configPlugins,\n })\n return\n }\n }\n await this.fetchPlugins(config)\n self.setConfigSnapshot(config)\n },\n\n async fetchSessionStorageSession() {\n const sessionStr = sessionStorage.getItem('current')\n const query = self.sessionQuery!.replace('local-', '')\n\n // check if\n if (sessionStr) {\n const sessionSnap = JSON.parse(sessionStr).session || {}\n if (query === sessionSnap.id) {\n return this.setSessionSnapshot(sessionSnap)\n }\n }\n\n if (self.bc1) {\n self.bc1.postMessage(query)\n try {\n const result = await new Promise>(\n (resolve, reject) => {\n if (self.bc2) {\n self.bc2.onmessage = msg => {\n resolve(msg.data)\n }\n }\n setTimeout(() => {\n reject(new Error('timeout'))\n }, 1000)\n },\n )\n await this.setSessionSnapshot({ ...result, id: nanoid() })\n } catch (e) {\n // the broadcast channels did not find the session in another tab\n // clear session param, so just ignore\n }\n }\n throw new Error('Local storage session not found')\n },\n\n async fetchSharedSession() {\n const defaultURL = 'https://share.jbrowse.org/api/v1/'\n const decryptedSession = await readSessionFromDynamo(\n // @ts-expect-error\n `${readConf(self.configSnapshot, 'shareURL', defaultURL)}load`,\n self.sessionQuery || '',\n self.password || '',\n )\n\n const session = JSON.parse(await fromUrlSafeB64(decryptedSession))\n await this.setSessionSnapshot({ ...session, id: nanoid() })\n },\n\n async decodeEncodedUrlSession() {\n const session = JSON.parse(\n // @ts-expect-error\n await fromUrlSafeB64(self.sessionQuery.replace('encoded-', '')),\n )\n await this.setSessionSnapshot({ ...session, id: nanoid() })\n },\n\n decodeSessionSpec() {\n if (!self.sessionQuery) {\n return\n }\n self.sessionSpec = JSON.parse(self.sessionQuery.replace('spec-', ''))\n },\n\n decodeJb1StyleSession() {\n const {\n loc,\n tracks,\n assembly,\n tracklist,\n nav,\n highlight,\n sessionTracksParsed: sessionTracks,\n } = self\n if (loc) {\n self.sessionSpec = {\n sessionTracks,\n views: [\n {\n type: 'LinearGenomeView',\n tracks: tracks?.split(','),\n sessionTracks,\n loc,\n assembly,\n tracklist,\n nav,\n highlight: highlight?.split(' '),\n },\n ],\n }\n }\n },\n\n async decodeJsonUrlSession() {\n // @ts-expect-error\n const session = JSON.parse(self.sessionQuery.replace('json-', ''))\n await this.setSessionSnapshot({ ...session.session, id: nanoid() })\n },\n\n async afterCreate() {\n try {\n // rename the current autosave from previously loaded jbrowse session\n // into previousAutosave on load\n const { configPath } = self\n const lastAutosave = localStorage.getItem(`autosave-${configPath}`)\n if (lastAutosave) {\n localStorage.setItem(`previousAutosave-${configPath}`, lastAutosave)\n }\n } catch (e) {\n console.error('failed to create previousAutosave', e)\n }\n\n try {\n // fetch config\n await this.fetchConfig()\n } catch (e) {\n console.error(e)\n self.setConfigError(e)\n return\n }\n\n addDisposer(\n self,\n autorun(async () => {\n try {\n const {\n isLocalSession,\n isEncodedSession,\n isSpecSession,\n isSharedSession,\n isJsonSession,\n isJb1StyleSession,\n sessionQuery,\n configSnapshot,\n } = self\n if (!configSnapshot) {\n return\n }\n\n if (self.bc1) {\n self.bc1.onmessage = msg => {\n const r =\n JSON.parse(sessionStorage.getItem('current') || '{}')\n .session || {}\n if (r.id === msg.data && self.bc2) {\n self.bc2.postMessage(r)\n }\n }\n }\n\n if (isSharedSession) {\n await this.fetchSharedSession()\n } else if (isSpecSession) {\n this.decodeSessionSpec()\n } else if (isJb1StyleSession) {\n this.decodeJb1StyleSession()\n } else if (isEncodedSession) {\n await this.decodeEncodedUrlSession()\n } else if (isJsonSession) {\n await this.decodeJsonUrlSession()\n } else if (isLocalSession) {\n await this.fetchSessionStorageSession()\n } else if (sessionQuery) {\n // if there was a sessionQuery and we don't recognize it\n throw new Error('unrecognized session format')\n } else {\n // placeholder for session loaded, but none found\n self.setBlankSession(true)\n }\n } catch (e) {\n console.error(e)\n self.setSessionError(e)\n }\n }),\n )\n },\n }))\n\nexport type SessionLoaderModel = Instance\n\nexport default SessionLoader\n\ninterface ViewSpec {\n type: string\n tracks?: string[]\n assembly: string\n loc: string\n}\n\n// use extension point named e.g. LaunchView-LinearGenomeView to initialize an\n// LGV session\nexport function loadSessionSpec(\n {\n views,\n sessionTracks = [],\n }: {\n views: ViewSpec[]\n sessionTracks: unknown[]\n },\n pluginManager: PluginManager,\n) {\n return async () => {\n const { rootModel } = pluginManager\n if (!rootModel) {\n throw new Error('rootModel not initialized')\n }\n try {\n // @ts-expect-error\n rootModel.setSession({\n name: `New session ${new Date().toLocaleString()}`,\n })\n\n // @ts-expect-error\n sessionTracks.forEach(track => rootModel.session.addTrackConf(track))\n\n await Promise.all(\n views.map(view =>\n pluginManager.evaluateAsyncExtensionPoint(`LaunchView-${view.type}`, {\n ...view,\n session: rootModel.session,\n }),\n ),\n )\n } catch (e) {\n console.error(e)\n rootModel.session?.notify(`${e}`)\n }\n }\n}\n","import React from 'react'\nimport { ErrorMessage } from '@jbrowse/core/ui'\nimport NoConfigMessage from './NoConfigMessage'\n\nexport default function StartScreenErrorMessage({ error }: { error: unknown }) {\n return /HTTP 404 fetching config.json/.exec(`${error}`) ? (\n
\n

It worked!

\n \n JBrowse 2 is installed. Your next step is to add and configure an\n assembly. Follow our{' '}\n \n quick start guide\n {' '}\n to continue or browse the sample data{' '}\n here.\n

\n {process.env.NODE_ENV === 'development' ? : null}\n
\n ) : (\n
\n

JBrowse Error

\n \n
\n )\n}\n","// this is in a separate module here so it can be mocked out by jest. the\n// import.meta.url is not well recognized by jest and we use MainThreadRpc in\n// tests anyways right now\n//\n// note: this uses webpack 5 native worker modules\n//\n// see https://github.com/cmdcolin/cra-webpack5-web-worker-example for simple example\n// and docs https://webpack.js.org/guides/web-workers/\n//\n// also note: the craco config for webpack publicPath: 'auto' is needed for\n// these workers\nexport default function makeWorkerInstance() {\n return new Worker(new URL('./rpcWorker', import.meta.url))\n}\n","import { AnyConfigurationSchemaType } from '@jbrowse/core/configuration'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { JBrowseModelF } from '@jbrowse/app-core'\nimport { getSnapshot, resolveIdentifier, types } from 'mobx-state-tree'\nimport clone from 'clone'\n\n// locals\nimport { removeAttr } from './util'\n\n// poke some things for testing (this stuff will eventually be removed)\n// @ts-expect-error\nwindow.getSnapshot = getSnapshot\n// @ts-expect-error\nwindow.resolveIdentifier = resolveIdentifier\n\n/**\n * #stateModel JBrowseWebConfigModel\n * #category root\n * the rootModel.jbrowse state model for JBrowse Web\n */\nexport default function JBrowseWeb({\n pluginManager,\n assemblyConfigSchema,\n}: {\n pluginManager: PluginManager\n assemblyConfigSchema: AnyConfigurationSchemaType\n}) {\n return types.snapshotProcessor(\n JBrowseModelF({ pluginManager, assemblyConfigSchema }),\n {\n postProcessor(snapshot: Record) {\n return removeAttr(clone(snapshot), 'baseUri')\n },\n },\n )\n}\n","import { getParent, types, Instance, IAnyType } from 'mobx-state-tree'\nimport AbortablePromiseCache from '@gmod/abortable-promise-cache'\n\n// locals\nimport { getConf, AnyConfigurationModel } from '../configuration'\nimport {\n BaseOptions,\n BaseRefNameAliasAdapter,\n RegionsAdapter,\n} from '../data_adapters/BaseAdapter'\nimport PluginManager from '../PluginManager'\nimport { when, Region, Feature } from '../util'\nimport QuickLRU from '../util/QuickLRU'\nimport RpcManager from '../rpc/RpcManager'\nimport { adapterConfigCacheKey } from '../data_adapters/dataAdapterCache'\n\ntype AdapterConf = Record\n\n/* biome-ignore lint/complexity/useRegexLiterals: */\nconst refNameRegex = new RegExp(\n '[0-9A-Za-z!#$%&+./:;?@^_|~-][0-9A-Za-z!#$%&*+./:;=?@^_|~-]*',\n)\n\n// Based on the UCSC Genome Browser chromosome color palette:\n// https://github.com/ucscGenomeBrowser/kent/blob/a50ed53aff81d6fb3e34e6913ce18578292bc24e/src/hg/inc/chromColors.h\n// Some colors darkened to have at least a 3:1 contrast ratio on a white\n// background\nconst refNameColors = [\n 'rgb(153, 102, 0)',\n 'rgb(102, 102, 0)',\n 'rgb(153, 153, 30)',\n 'rgb(204, 0, 0)',\n 'rgb(255, 0, 0)',\n 'rgb(255, 0, 204)',\n 'rgb(165, 132, 132)', // originally 'rgb(255, 204, 204)'\n 'rgb(204, 122, 0)', // originally rgb(255, 153, 0)'\n 'rgb(178, 142, 0)', // originally 'rgb(255, 204, 0)'\n 'rgb(153, 153, 0)', // originally 'rgb(255, 255, 0)'\n 'rgb(122, 153, 0)', // originally 'rgb(204, 255, 0)'\n 'rgb(0, 165, 0)', // originally 'rgb(0, 255, 0)'\n 'rgb(53, 128, 0)',\n 'rgb(0, 0, 204)',\n 'rgb(96, 145, 242)', // originally 'rgb(102, 153, 255)'\n 'rgb(107, 142, 178)', // originally 'rgb(153, 204, 255)'\n 'rgb(0, 165, 165)', // originally 'rgb(0, 255, 255)'\n 'rgb(122, 153, 153)', // originally 'rgb(204, 255, 255)'\n 'rgb(153, 0, 204)',\n 'rgb(204, 51, 255)',\n 'rgb(173, 130, 216)', // originally 'rgb(204, 153, 255)'\n 'rgb(102, 102, 102)',\n 'rgb(145, 145, 145)', // originally 'rgb(153, 153, 153)'\n 'rgb(142, 142, 142)', // originally 'rgb(204, 204, 204)'\n 'rgb(142, 142, 107)', // originally 'rgb(204, 204, 153)'\n 'rgb(96, 163, 48)', // originally 'rgb(121, 204, 61)'\n]\n\nasync function loadRefNameMap(\n assembly: Assembly,\n adapterConfig: unknown,\n options: BaseOptions,\n signal?: AbortSignal,\n) {\n const { sessionId } = options\n await when(() => !!(assembly.regions && assembly.refNameAliases), {\n signal,\n name: 'when assembly ready',\n })\n\n const refNames = (await assembly.rpcManager.call(\n sessionId || 'assemblyRpc',\n 'CoreGetRefNames',\n {\n adapterConfig,\n signal,\n ...options,\n },\n { timeout: 1000000 },\n )) as string[]\n\n const { refNameAliases } = assembly\n if (!refNameAliases) {\n throw new Error(`error loading assembly ${assembly.name}'s refNameAliases`)\n }\n\n const refNameMap = Object.fromEntries(\n refNames.map(name => {\n checkRefName(name)\n return [assembly.getCanonicalRefName(name), name]\n }),\n )\n\n return {\n forwardMap: refNameMap,\n reverseMap: Object.fromEntries(\n Object.entries(refNameMap).map(([canonicalName, adapterName]) => [\n adapterName,\n canonicalName,\n ]),\n ),\n }\n}\n\n// Valid refName pattern from https://samtools.github.io/hts-specs/SAMv1.pdf\nfunction checkRefName(refName: string) {\n if (!refNameRegex.test(refName)) {\n throw new Error(`Encountered invalid refName: \"${refName}\"`)\n }\n}\n\ntype RefNameAliases = Record\n\ninterface CacheData {\n adapterConf: unknown\n self: Assembly\n sessionId: string\n options: BaseOptions\n}\n\nexport interface RefNameMap {\n forwardMap: RefNameAliases\n reverseMap: RefNameAliases\n}\n\nexport interface BasicRegion {\n start: number\n end: number\n refName: string\n assemblyName: string\n}\n\n/**\n * #stateModel Assembly\n */\nexport default function assemblyFactory(\n assemblyConfigType: IAnyType,\n pluginManager: PluginManager,\n) {\n const adapterLoads = new AbortablePromiseCache({\n cache: new QuickLRU({ maxSize: 1000 }),\n\n // @ts-expect-error\n async fill(\n args: CacheData,\n signal?: AbortSignal,\n statusCallback?: (arg: string) => void,\n ) {\n const { adapterConf, self, options } = args\n return loadRefNameMap(\n self,\n adapterConf,\n { ...options, statusCallback },\n signal,\n )\n },\n })\n return types\n .model({\n /**\n * #property\n */\n configuration: types.safeReference(assemblyConfigType),\n })\n .volatile(() => ({\n error: undefined as unknown,\n loadingP: undefined as Promise | undefined,\n volatileRegions: undefined as BasicRegion[] | undefined,\n refNameAliases: undefined as RefNameAliases | undefined,\n lowerCaseRefNameAliases: undefined as RefNameAliases | undefined,\n cytobands: undefined as Feature[] | undefined,\n }))\n .views(self => ({\n /**\n * #method\n */\n getConf(arg: string) {\n return self.configuration ? getConf(self, arg) : undefined\n },\n }))\n .views(self => ({\n /**\n * #getter\n */\n get initialized() {\n // @ts-expect-error\n self.load()\n return !!self.refNameAliases\n },\n\n /**\n * #getter\n */\n get name(): string {\n return self.getConf('name') || ''\n },\n\n /**\n * #getter\n */\n get regions() {\n // @ts-expect-error\n self.load()\n return self.volatileRegions\n },\n\n /**\n * #getter\n */\n get aliases(): string[] {\n return self.getConf('aliases') || []\n },\n\n /**\n * #getter\n */\n get displayName(): string | undefined {\n return self.getConf('displayName')\n },\n /**\n * #getter\n */\n hasName(name: string) {\n return this.allAliases.includes(name)\n },\n\n /**\n * #getter\n */\n get allAliases() {\n return [this.name, ...this.aliases]\n },\n\n /**\n * #getter\n * note: lowerCaseRefNameAliases not included here: this allows the list\n * of refnames to be just the \"normal casing\", but things like\n * getCanonicalRefName can resolve a lower-case name if needed\n */\n get allRefNames() {\n return !self.refNameAliases\n ? undefined\n : Object.keys(self.refNameAliases)\n },\n /**\n * #getter\n */\n get lowerCaseRefNames() {\n return !self.lowerCaseRefNameAliases\n ? undefined\n : Object.keys(self.lowerCaseRefNameAliases)\n },\n\n /**\n * #getter\n */\n get allRefNamesWithLowerCase() {\n return this.allRefNames && this.lowerCaseRefNames\n ? [...new Set([...this.allRefNames, ...this.lowerCaseRefNames])]\n : undefined\n },\n /**\n * #getter\n */\n get rpcManager(): RpcManager {\n return getParent(self, 2).rpcManager\n },\n /**\n * #getter\n */\n get refNameColors() {\n const colors: string[] = self.getConf('refNameColors') || []\n return colors.length === 0 ? refNameColors : colors\n },\n }))\n .views(self => ({\n /**\n * #getter\n */\n get refNames() {\n return self.regions?.map(region => region.refName)\n },\n }))\n .views(self => ({\n /**\n * #method\n */\n getCanonicalRefName(refName: string) {\n if (!self.refNameAliases || !self.lowerCaseRefNameAliases) {\n throw new Error(\n 'aliases not loaded, we expect them to be loaded before getCanonicalRefName can be called',\n )\n }\n\n return (\n self.refNameAliases[refName] || self.lowerCaseRefNameAliases[refName]\n )\n },\n /**\n * #method\n */\n getRefNameColor(refName: string) {\n if (!self.refNames) {\n return undefined\n }\n const idx = self.refNames.indexOf(refName)\n return idx === -1\n ? undefined\n : self.refNameColors[idx % self.refNameColors.length]\n },\n /**\n * #method\n */\n isValidRefName(refName: string) {\n if (!self.refNameAliases) {\n throw new Error(\n 'isValidRefName cannot be called yet, the assembly has not finished loading',\n )\n }\n return !!this.getCanonicalRefName(refName)\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n setLoaded({\n regions,\n refNameAliases,\n lowerCaseRefNameAliases,\n cytobands,\n }: {\n regions: Region[]\n refNameAliases: RefNameAliases\n lowerCaseRefNameAliases: RefNameAliases\n cytobands: Feature[]\n }) {\n this.setRegions(regions)\n this.setRefNameAliases(refNameAliases, lowerCaseRefNameAliases)\n this.setCytobands(cytobands)\n },\n /**\n * #action\n */\n setError(e: unknown) {\n self.error = e\n },\n /**\n * #action\n */\n setRegions(regions: Region[]) {\n self.volatileRegions = regions\n },\n /**\n * #action\n */\n setRefNameAliases(\n aliases: RefNameAliases,\n lowerCaseAliases: RefNameAliases,\n ) {\n self.refNameAliases = aliases\n self.lowerCaseRefNameAliases = lowerCaseAliases\n },\n /**\n * #action\n */\n setCytobands(cytobands: Feature[]) {\n self.cytobands = cytobands\n },\n /**\n * #action\n */\n setLoadingP(p?: Promise) {\n self.loadingP = p\n },\n /**\n * #action\n */\n load() {\n if (!self.loadingP) {\n self.loadingP = this.loadPre().catch((e: unknown) => {\n this.setLoadingP(undefined)\n this.setError(e)\n })\n }\n return self.loadingP\n },\n /**\n * #action\n */\n async loadPre() {\n const conf = self.configuration\n const refNameAliasesAdapterConf = conf?.refNameAliases?.adapter\n const cytobandAdapterConf = conf?.cytobands?.adapter\n const sequenceAdapterConf = conf?.sequence.adapter\n const assemblyName = self.name\n\n const regions = await getAssemblyRegions({\n config: sequenceAdapterConf,\n pluginManager,\n })\n\n const adapterRegionsWithAssembly = regions.map(r => {\n checkRefName(r.refName)\n return { ...r, assemblyName }\n })\n const refNameAliases = {} as Record\n\n const refNameAliasCollection = await getRefNameAliases({\n config: refNameAliasesAdapterConf,\n pluginManager,\n })\n\n for (const { refName, aliases, override } of refNameAliasCollection) {\n for (const alias of aliases) {\n checkRefName(alias)\n refNameAliases[alias] = refName\n }\n // the override field is supplied by a RefNameAliasAdapter to make\n // the refName field returned by the adapter to be used as the\n // primary names for this assembly\n if (override) {\n refNameAliases[refName] = refName\n }\n }\n // add identity to the refNameAliases list\n for (const region of adapterRegionsWithAssembly) {\n // this ||= means that if the refNameAliasAdapter already set a\n // mapping for the primary region to be an alias\n refNameAliases[region.refName] ||= region.refName\n }\n const lowerCaseRefNameAliases = Object.fromEntries(\n Object.entries(refNameAliases).map(([key, val]) => [\n key.toLowerCase(),\n val,\n ]),\n )\n\n this.setLoaded({\n refNameAliases,\n regions: adapterRegionsWithAssembly.map(r => ({\n ...r,\n refName: refNameAliases[r.refName] || r.refName,\n })),\n lowerCaseRefNameAliases,\n cytobands: await getCytobands({\n config: cytobandAdapterConf,\n pluginManager,\n }),\n })\n },\n }))\n .views(self => ({\n /**\n * #method\n */\n getAdapterMapEntry(adapterConf: AdapterConf, options: BaseOptions) {\n const { signal, statusCallback, ...rest } = options\n if (!options.sessionId) {\n throw new Error('sessionId is required')\n }\n return adapterLoads.get(\n adapterConfigCacheKey(adapterConf),\n {\n adapterConf,\n self,\n options: rest,\n } as CacheData,\n\n // signal intentionally not passed here, fixes issues like #2221.\n // alternative fix #2540 was proposed but non-working currently\n undefined,\n statusCallback,\n )\n },\n\n /**\n * #method\n * get Map of `canonical-name -> adapter-specific-name`\n */\n async getRefNameMapForAdapter(\n adapterConf: AdapterConf,\n opts: BaseOptions,\n ) {\n if (!opts.sessionId) {\n throw new Error('sessionId is required')\n }\n const map = await this.getAdapterMapEntry(adapterConf, opts)\n return map.forwardMap\n },\n\n /**\n * #method\n * get Map of `adapter-specific-name -> canonical-name`\n */\n async getReverseRefNameMapForAdapter(\n adapterConf: AdapterConf,\n opts: BaseOptions,\n ) {\n const map = await this.getAdapterMapEntry(adapterConf, opts)\n return map.reverseMap\n },\n }))\n}\n\nasync function getRefNameAliases({\n config,\n pluginManager,\n signal,\n}: {\n config: AnyConfigurationModel\n pluginManager: PluginManager\n signal?: AbortSignal\n}) {\n const type = pluginManager.getAdapterType(config.type)!\n const CLASS = await type.getAdapterClass()\n const adapter = new CLASS(\n config,\n undefined,\n pluginManager,\n ) as BaseRefNameAliasAdapter\n return adapter.getRefNameAliases({ signal })\n}\n\nasync function getCytobands({\n config,\n pluginManager,\n}: {\n config: AnyConfigurationModel\n pluginManager: PluginManager\n}) {\n const type = pluginManager.getAdapterType(config.type)!\n const CLASS = await type.getAdapterClass()\n const adapter = new CLASS(config, undefined, pluginManager)\n\n // @ts-expect-error\n return adapter.getData()\n}\n\nasync function getAssemblyRegions({\n config,\n pluginManager,\n signal,\n}: {\n config: AnyConfigurationModel\n pluginManager: PluginManager\n signal?: AbortSignal\n}) {\n const type = pluginManager.getAdapterType(config.type)!\n const CLASS = await type.getAdapterClass()\n const adapter = new CLASS(config, undefined, pluginManager) as RegionsAdapter\n return adapter.getRegions({ signal })\n}\n\nexport type AssemblyModel = ReturnType\nexport type Assembly = Instance\n","import { lazy } from 'react'\nimport {\n addDisposer,\n cast,\n getSnapshot,\n getType,\n types,\n IAnyStateTreeNode,\n SnapshotIn,\n Instance,\n IAnyType,\n} from 'mobx-state-tree'\n\nimport { saveAs } from 'file-saver'\nimport { observable, autorun } from 'mobx'\nimport assemblyConfigSchemaFactory from '@jbrowse/core/assemblyManager/assemblyConfigSchema'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport RpcManager from '@jbrowse/core/rpc/RpcManager'\nimport TextSearchManager from '@jbrowse/core/TextSearch/TextSearchManager'\nimport { AbstractSessionModel, SessionWithWidgets } from '@jbrowse/core/util'\nimport { MenuItem } from '@jbrowse/core/ui'\n\n// icons\nimport AddIcon from '@mui/icons-material/Add'\nimport SettingsIcon from '@mui/icons-material/Settings'\nimport AppsIcon from '@mui/icons-material/Apps'\nimport FileCopyIcon from '@mui/icons-material/FileCopy'\nimport FolderOpenIcon from '@mui/icons-material/FolderOpen'\nimport GetAppIcon from '@mui/icons-material/GetApp'\nimport PublishIcon from '@mui/icons-material/Publish'\nimport ExtensionIcon from '@mui/icons-material/Extension'\nimport StorageIcon from '@mui/icons-material/Storage'\nimport SaveIcon from '@mui/icons-material/Save'\nimport UndoIcon from '@mui/icons-material/Undo'\nimport RedoIcon from '@mui/icons-material/Redo'\nimport { Cable } from '@jbrowse/core/ui/Icons'\n\n// other\nimport makeWorkerInstance from '../makeWorkerInstance'\nimport jbrowseWebFactory from '../jbrowseModel'\nimport { filterSessionInPlace } from '../util'\nimport packageJSON from '../../package.json'\nimport {\n BaseSession,\n BaseSessionType,\n SessionWithDialogs,\n InternetAccountsRootModelMixin,\n BaseRootModelFactory,\n} from '@jbrowse/product-core'\nimport { HistoryManagementMixin, RootAppMenuMixin } from '@jbrowse/app-core'\nimport { hydrateRoot, createRoot } from 'react-dom/client'\nimport { AssemblyManager } from '@jbrowse/plugin-data-management'\n\n// locals\nconst SetDefaultSession = lazy(() => import('../components/SetDefaultSession'))\nconst PreferencesDialog = lazy(() => import('../components/PreferencesDialog'))\n\nexport interface Menu {\n label: string\n menuItems: MenuItem[]\n}\n\ntype AssemblyConfig = ReturnType\ntype SessionModelFactory = (args: {\n pluginManager: PluginManager\n assemblyConfigSchema: AssemblyConfig\n}) => IAnyType\n\n/**\n * #stateModel JBrowseWebRootModel\n *\n * composed of\n * - [BaseRootModel](../baserootmodel)\n * - [InternetAccountsMixin](../internetaccountsmixin)\n * - [HistoryManagementMixin](../historymanagementmixin)\n * - [RootAppMenuMixin](../rootappmenumixin)\n *\n * note: many properties of the root model are available through the session,\n * and we generally prefer using the session model (via e.g. getSession) over\n * the root model (via e.g. getRoot) in plugin code\n */\nexport default function RootModel({\n pluginManager,\n sessionModelFactory,\n adminMode = false,\n}: {\n pluginManager: PluginManager\n sessionModelFactory: SessionModelFactory\n adminMode?: boolean\n}) {\n const assemblyConfigSchema = assemblyConfigSchemaFactory(pluginManager)\n const jbrowseModelType = jbrowseWebFactory({\n pluginManager,\n assemblyConfigSchema,\n })\n const sessionModelType = sessionModelFactory({\n pluginManager,\n assemblyConfigSchema,\n })\n return types\n .compose(\n BaseRootModelFactory({\n pluginManager,\n jbrowseModelType,\n sessionModelType,\n assemblyConfigSchema,\n }),\n InternetAccountsRootModelMixin(pluginManager),\n HistoryManagementMixin(),\n RootAppMenuMixin(),\n )\n .props({\n /**\n * #property\n */\n configPath: types.maybe(types.string),\n })\n .volatile(self => ({\n version: packageJSON.version,\n hydrateFn: hydrateRoot,\n createRootFn: createRoot,\n pluginsUpdated: false,\n rpcManager: new RpcManager(\n pluginManager,\n self.jbrowse.configuration.rpc,\n {\n WebWorkerRpcDriver: { makeWorkerInstance },\n MainThreadRpcDriver: {},\n },\n ),\n savedSessionsVolatile: observable.map<\n string,\n { name: string; [key: string]: unknown }\n >({}),\n textSearchManager: new TextSearchManager(pluginManager),\n error: undefined as unknown,\n }))\n .views(self => ({\n /**\n * #getter\n */\n get savedSessions() {\n return [...self.savedSessionsVolatile.values()]\n },\n /**\n * #method\n */\n localStorageId(name: string) {\n return `localSaved-${name}-${self.configPath}`\n },\n /**\n * #getter\n */\n get autosaveId() {\n return `autosave-${self.configPath}`\n },\n /**\n * #getter\n */\n get previousAutosaveId() {\n return `previousAutosave-${self.configPath}`\n },\n }))\n .views(self => ({\n /**\n * #getter\n */\n get savedSessionNames() {\n return self.savedSessions.map(session => session.name)\n },\n /**\n * #getter\n */\n get currentSessionId() {\n const locationUrl = new URL(window.location.href)\n const params = new URLSearchParams(locationUrl.search)\n return params.get('session')?.split('local-')[1]\n },\n }))\n\n .actions(self => ({\n afterCreate() {\n for (const [key, val] of Object.entries(localStorage)\n .filter(([key, _val]) => key.startsWith('localSaved-'))\n .filter(([key]) => key.includes(self.configPath || 'undefined'))) {\n try {\n const { session } = JSON.parse(val)\n self.savedSessionsVolatile.set(key, session)\n } catch (e) {\n console.error('bad session encountered', key, val)\n }\n }\n addDisposer(\n self,\n autorun(() => {\n for (const [, val] of self.savedSessionsVolatile.entries()) {\n try {\n const key = self.localStorageId(val.name)\n localStorage.setItem(key, JSON.stringify({ session: val }))\n } catch (e) {\n // @ts-expect-error\n if (e.code === '22' || e.code === '1024') {\n alert(\n 'Local storage is full! Please use the \"Open sessions\" panel to remove old sessions',\n )\n }\n }\n }\n }),\n )\n\n addDisposer(\n self,\n autorun(\n () => {\n if (!self.session) {\n return\n }\n const snapshot = getSnapshot(self.session as BaseSession)\n const s = JSON.stringify\n sessionStorage.setItem('current', s({ session: snapshot }))\n localStorage.setItem(\n `autosave-${self.configPath}`,\n s({\n session: {\n ...snapshot,\n name: `${snapshot.name}-autosaved`,\n },\n }),\n )\n\n // this check is not able to be modularized into it's own autorun\n // at current time because it depends on session storage snapshot\n // being set above\n if (self.pluginsUpdated) {\n window.location.reload()\n }\n },\n { delay: 400 },\n ),\n )\n },\n /**\n * #action\n */\n setSession(sessionSnapshot?: SnapshotIn) {\n const oldSession = self.session\n self.session = cast(sessionSnapshot)\n if (self.session) {\n // validate all references in the session snapshot\n try {\n filterSessionInPlace(self.session, getType(self.session))\n } catch (error) {\n // throws error if session filtering failed\n self.session = oldSession\n throw error\n }\n }\n },\n\n /**\n * #action\n */\n setPluginsUpdated(flag: boolean) {\n self.pluginsUpdated = flag\n },\n /**\n * #action\n */\n setDefaultSession() {\n const { defaultSession } = self.jbrowse\n const newSession = {\n ...defaultSession,\n name: `${defaultSession.name} ${new Date().toLocaleString()}`,\n }\n\n this.setSession(newSession)\n },\n /**\n * #action\n */\n renameCurrentSession(sessionName: string) {\n if (self.session) {\n const snapshot = JSON.parse(JSON.stringify(getSnapshot(self.session)))\n snapshot.name = sessionName\n this.setSession(snapshot)\n }\n },\n /**\n * #action\n */\n addSavedSession(session: { name: string }) {\n const key = self.localStorageId(session.name)\n self.savedSessionsVolatile.set(key, session)\n },\n /**\n * #action\n */\n removeSavedSession(session: { name: string }) {\n const key = self.localStorageId(session.name)\n localStorage.removeItem(key)\n self.savedSessionsVolatile.delete(key)\n },\n /**\n * #action\n */\n duplicateCurrentSession() {\n if (self.session) {\n const snapshot = JSON.parse(JSON.stringify(getSnapshot(self.session)))\n let newSnapshotName = `${self.session.name} (copy)`\n if (self.savedSessionNames.includes(newSnapshotName)) {\n let newSnapshotCopyNumber = 2\n do {\n newSnapshotName = `${self.session.name} (copy ${newSnapshotCopyNumber})`\n newSnapshotCopyNumber += 1\n } while (self.savedSessionNames.includes(newSnapshotName))\n }\n snapshot.name = newSnapshotName\n this.setSession(snapshot)\n }\n },\n /**\n * #action\n */\n activateSession(name: string) {\n const localId = self.localStorageId(name)\n const newSessionSnapshot = localStorage.getItem(localId)\n if (!newSessionSnapshot) {\n throw new Error(\n `Can't activate session ${name}, it is not in the savedSessions`,\n )\n }\n\n this.setSession(JSON.parse(newSessionSnapshot).session)\n },\n /**\n * #action\n */\n saveSessionToLocalStorage() {\n if (self.session) {\n const key = self.localStorageId(self.session.name)\n self.savedSessionsVolatile.set(key, getSnapshot(self.session))\n }\n },\n loadAutosaveSession() {\n const previousAutosave = localStorage.getItem(self.previousAutosaveId)\n const autosavedSession = previousAutosave\n ? JSON.parse(previousAutosave).session\n : {}\n const { name } = autosavedSession\n autosavedSession.name = `${name.replace('-autosaved', '')}-restored`\n this.setSession(autosavedSession)\n },\n /**\n * #action\n */\n setError(error?: unknown) {\n self.error = error\n },\n }))\n .volatile(self => ({\n menus: [\n {\n label: 'File',\n menuItems: [\n {\n label: 'New session',\n icon: AddIcon,\n\n onClick: (session: any) => {\n const lastAutosave = localStorage.getItem(self.autosaveId)\n if (lastAutosave) {\n localStorage.setItem(self.previousAutosaveId, lastAutosave)\n }\n session.setDefaultSession()\n },\n },\n {\n label: 'Import session…',\n icon: PublishIcon,\n onClick: (session: SessionWithWidgets) => {\n const widget = session.addWidget(\n 'ImportSessionWidget',\n 'importSessionWidget',\n )\n session.showWidget(widget)\n },\n },\n {\n label: 'Export session',\n icon: GetAppIcon,\n onClick: (session: IAnyStateTreeNode) => {\n const sessionBlob = new Blob(\n [JSON.stringify({ session: getSnapshot(session) }, null, 2)],\n { type: 'text/plain;charset=utf-8' },\n )\n saveAs(sessionBlob, 'session.json')\n },\n },\n {\n label: 'Open session…',\n icon: FolderOpenIcon,\n onClick: (session: SessionWithWidgets) => {\n const widget = session.addWidget(\n 'SessionManager',\n 'sessionManager',\n )\n session.showWidget(widget)\n },\n },\n {\n label: 'Save session',\n icon: SaveIcon,\n onClick: (session: SessionWithWidgets) => {\n self.saveSessionToLocalStorage()\n session.notify(`Saved session \"${session.name}\"`, 'success')\n },\n },\n {\n label: 'Duplicate session',\n icon: FileCopyIcon,\n onClick: (session: AbstractSessionModel) => {\n if (session.duplicateCurrentSession) {\n session.duplicateCurrentSession()\n }\n },\n },\n { type: 'divider' },\n {\n label: 'Open track...',\n icon: StorageIcon,\n onClick: (session: SessionWithWidgets) => {\n if (session.views.length === 0) {\n session.notify('Please open a view to add a track first')\n } else if (session.views.length > 0) {\n const widget = session.addWidget(\n 'AddTrackWidget',\n 'addTrackWidget',\n { view: session.views[0]!.id },\n )\n session.showWidget(widget)\n if (session.views.length > 1) {\n session.notify(\n 'This will add a track to the first view. Note: if you want to open a track in a specific view open the track selector for that view and use the add track (plus icon) in the bottom right',\n )\n }\n }\n },\n },\n {\n label: 'Open connection...',\n icon: Cable,\n onClick: (session: SessionWithWidgets) => {\n session.showWidget(\n session.addWidget(\n 'AddConnectionWidget',\n 'addConnectionWidget',\n ),\n )\n },\n },\n { type: 'divider' },\n {\n label: 'Return to splash screen',\n icon: AppsIcon,\n onClick: () => {\n self.setSession(undefined)\n },\n },\n ],\n },\n ...(adminMode\n ? [\n {\n label: 'Admin',\n menuItems: [\n {\n label: 'Open assembly manager',\n onClick: () =>\n self.session.queueDialog((onClose: () => void) => [\n AssemblyManager,\n { onClose, rootModel: self },\n ]),\n },\n {\n label: 'Set default session',\n onClick: () =>\n self.session.queueDialog((onClose: () => void) => [\n SetDefaultSession,\n { rootModel: self, onClose },\n ]),\n },\n ],\n },\n ]\n : []),\n {\n label: 'Add',\n menuItems: [],\n },\n {\n label: 'Tools',\n menuItems: [\n {\n label: 'Undo',\n icon: UndoIcon,\n onClick: () => {\n if (self.history.canUndo) {\n self.history.undo()\n }\n },\n },\n {\n label: 'Redo',\n icon: RedoIcon,\n onClick: () => {\n if (self.history.canRedo) {\n self.history.redo()\n }\n },\n },\n { type: 'divider' },\n {\n label: 'Plugin store',\n icon: ExtensionIcon,\n onClick: () => {\n if (self.session) {\n self.session.showWidget(\n self.session.addWidget(\n 'PluginStoreWidget',\n 'pluginStoreWidget',\n ),\n )\n }\n },\n },\n {\n label: 'Preferences',\n icon: SettingsIcon,\n onClick: () => {\n if (self.session) {\n ;(self.session as SessionWithDialogs).queueDialog(\n handleClose => [\n PreferencesDialog,\n {\n session: self.session,\n handleClose,\n },\n ],\n )\n }\n },\n },\n ],\n },\n ] as Menu[],\n adminMode,\n }))\n}\n\nexport type WebRootModelType = ReturnType\nexport type WebRootModel = Instance\n","import { ConfigurationSchema } from '../configuration'\nimport PluginManager from '../PluginManager'\n\n/**\n * #config BaseAssembly\n * #category assemblyManagement\n * This corresponds to the assemblies section of the config\n */\nfunction assemblyConfigSchema(pluginManager: PluginManager) {\n return ConfigurationSchema(\n 'BaseAssembly',\n {\n /**\n * #slot\n * aliases are \"reference name aliases\" e.g. aliases for hg38 might be\n * \"GRCh38\"\n */\n aliases: {\n type: 'stringArray',\n defaultValue: [],\n description: 'Other possible names for the assembly',\n },\n\n /**\n * #slot\n * sequence refers to a reference sequence track that has an adapter\n * containing, importantly, a sequence adapter such as\n * IndexedFastaAdapter\n */\n sequence: pluginManager.getTrackType('ReferenceSequenceTrack')!\n .configSchema,\n\n /**\n * #slot\n */\n refNameColors: {\n type: 'stringArray',\n defaultValue: [],\n description:\n 'Define custom colors for each reference sequence. Will cycle through this list if there are not enough colors for every sequence.',\n },\n\n refNameAliases: ConfigurationSchema(\n 'RefNameAliases',\n {\n /**\n * #slot refNameAliases.adapter\n * refNameAliases help resolve e.g. chr1 and 1 as the same entity the\n * data for refNameAliases are fetched from an adapter, that is\n * commonly a tsv like chromAliases.txt from UCSC or similar\n */\n adapter: pluginManager.pluggableConfigSchemaType('adapter'),\n },\n {\n preProcessSnapshot: snap => {\n // allow refNameAliases to be unspecified\n if (!snap.adapter) {\n return { adapter: { type: 'RefNameAliasAdapter' } }\n }\n return snap\n },\n },\n ),\n cytobands: ConfigurationSchema(\n 'Cytoband',\n {\n /**\n * #slot cytobands.adapter\n * cytoband data is fetched from an adapter, and can be displayed by\n * a view type as ideograms\n */\n adapter: pluginManager.pluggableConfigSchemaType('adapter'),\n },\n {\n preProcessSnapshot: snap => {\n // allow cytoBand to be unspecified\n return !snap.adapter\n ? { adapter: { type: 'CytobandAdapter' } }\n : snap\n },\n },\n ),\n\n /**\n * #slot\n */\n displayName: {\n type: 'string',\n defaultValue: '',\n description:\n 'A human readable display name for the assembly e.g. \"Homo sapiens (hg38)\" while the assembly name may just be \"hg38\"',\n },\n },\n {\n /**\n * #identifier name\n * the name acts as a unique identifier in the config, so it cannot be\n * duplicated. it usually a short human readable \"id\" like hg38, but you\n * can also optionally customize the assembly \"displayName\" config slot\n */\n explicitIdentifier: 'name',\n },\n )\n}\n\nexport default assemblyConfigSchema\nexport type BaseAssemblyConfigSchema = ReturnType\n","import PluginManager from '@jbrowse/core/PluginManager'\nimport { BaseAssemblyConfigSchema } from '@jbrowse/core/assemblyManager'\nimport { cast, getParent, getSnapshot } from 'mobx-state-tree'\nimport RpcManager from '@jbrowse/core/rpc/RpcManager'\nimport {\n AnyConfigurationModel,\n readConfObject,\n} from '@jbrowse/core/configuration'\nimport { PluginDefinition } from '@jbrowse/core/PluginLoader'\nimport { toJS } from 'mobx'\n\n// locals\nimport { JBrowseConfigF } from '../JBrowseConfig'\n\n/**\n * #stateModel AppCoreJBrowseModel\n * note that JBrowseRootConfig is a config model, but config models are MST\n * trees themselves, which is why this stateModel is allowed to extend it\n *\n * the AppCoreJBrowseModel is generally on a property named rootModel.jbrowse\n *\n * extends\n * - [JBrowseRootConfig](/docs/config/jbrowserootconfig)\n\n */\nexport function JBrowseModelF({\n pluginManager,\n assemblyConfigSchema,\n}: {\n pluginManager: PluginManager\n assemblyConfigSchema: BaseAssemblyConfigSchema\n}) {\n return JBrowseConfigF({ pluginManager, assemblyConfigSchema })\n .views(self => ({\n /**\n * #getter\n */\n get assemblyNames(): string[] {\n return self.assemblies.map(assembly => readConfObject(assembly, 'name'))\n },\n /**\n * #getter\n */\n get rpcManager(): RpcManager {\n return getParent(self).rpcManager\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n addAssemblyConf(conf: AnyConfigurationModel) {\n const { name } = conf\n if (!name) {\n throw new Error('Can\\'t add assembly with no \"name\"')\n }\n if (self.assemblyNames.includes(name)) {\n throw new Error(\n `Can't add assembly with name \"${name}\", an assembly with that name already exists`,\n )\n }\n const length = self.assemblies.push({\n ...conf,\n sequence: {\n type: 'ReferenceSequenceTrack',\n trackId: `${name}-${Date.now()}`,\n ...conf.sequence,\n },\n })\n return self.assemblies[length - 1]\n },\n /**\n * #action\n */\n removeAssemblyConf(assemblyName: string) {\n const toRemove = self.assemblies.find(a => a.name === assemblyName)\n if (toRemove) {\n self.assemblies.remove(toRemove)\n }\n },\n /**\n * #action\n */\n addTrackConf(trackConf: AnyConfigurationModel) {\n const { type } = trackConf\n if (!type) {\n throw new Error(`unknown track type ${type}`)\n }\n const length = self.tracks.push(trackConf)\n return self.tracks[length - 1]\n },\n /**\n * #action\n */\n addConnectionConf(connectionConf: AnyConfigurationModel) {\n const { type } = connectionConf\n if (!type) {\n throw new Error(`unknown connection type ${type}`)\n }\n const length = self.connections.push(connectionConf)\n return self.connections[length - 1]\n },\n /**\n * #action\n */\n deleteConnectionConf(configuration: AnyConfigurationModel) {\n const elt = self.connections.find(conn => conn.id === configuration.id)\n return self.connections.remove(elt)\n },\n /**\n * #action\n */\n deleteTrackConf(trackConf: AnyConfigurationModel) {\n const elt = self.tracks.find(t => t.trackId === trackConf.trackId)\n return self.tracks.remove(elt)\n },\n /**\n * #action\n */\n addPlugin(pluginDefinition: PluginDefinition) {\n self.plugins.push(pluginDefinition)\n\n const rootModel = getParent(self)\n rootModel.setPluginsUpdated(true)\n },\n /**\n * #action\n */\n removePlugin(pluginDefinition: PluginDefinition) {\n self.plugins = cast(\n self.plugins.filter(\n plugin =>\n // @ts-expect-error\n plugin.url !== pluginDefinition.url ||\n // @ts-expect-error\n plugin.umdUrl !== pluginDefinition.umdUrl ||\n // @ts-expect-error\n plugin.cjsUrl !== pluginDefinition.cjsUrl ||\n // @ts-expect-error\n plugin.esmUrl !== pluginDefinition.esmUrl,\n ),\n )\n\n getParent(self).setPluginsUpdated(true)\n },\n\n /**\n * #action\n */\n setDefaultSessionConf(sessionConf: AnyConfigurationModel) {\n const newDefault =\n getParent(self).session.name === sessionConf.name\n ? getSnapshot(sessionConf)\n : toJS(sessionConf)\n\n if (!newDefault.name) {\n throw new Error(`unable to set default session to ${newDefault.name}`)\n }\n\n self.defaultSession = cast(newDefault)\n },\n /**\n * #action\n */\n addInternetAccountConf(internetAccountConf: AnyConfigurationModel) {\n const { type } = internetAccountConf\n if (!type) {\n throw new Error(`unknown internetAccount type ${type}`)\n }\n const length = self.internetAccounts.push(internetAccountConf)\n return self.internetAccounts[length - 1]\n },\n /**\n * #action\n */\n deleteInternetAccountConf(configuration: AnyConfigurationModel) {\n const elt = self.internetAccounts.find(a => a.id === configuration.id)\n return self.internetAccounts.remove(elt)\n },\n }))\n}\n","import {\n AnyConfigurationSchemaType,\n ConfigurationSchema,\n} from '@jbrowse/core/configuration'\n\nimport { PluginDefinition } from '@jbrowse/core/PluginLoader'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport RpcManager from '@jbrowse/core/rpc/RpcManager'\nimport {\n FormatAboutConfigSchemaFactory,\n FormatDetailsConfigSchemaFactory,\n HierarchicalConfigSchemaFactory,\n} from '@jbrowse/product-core'\nimport { types } from 'mobx-state-tree'\n\n/**\n * #config JBrowseRootConfig\n * #category root\n *\n * this is a config model representing a config.json (for jbrowse-web) or\n * somefile.jbrowse (for jbrowse-desktop, where configs have the .jbrowse\n * extension)\n *\n * includes\n * - [FormatDetails](../formatdetails) for global (instead of per-track)\n * feature detail formatters\n * - [FormatAbout](../formatabout) for global (instead of per-track) about\n * track formatters\n * - [HierarchicalConfigSchema](../hierarchicalconfigschema) for track selector\n * configs\n *\n * also includes any pluginManager.pluginConfigurationSchemas(), so plugins\n * that have a configurationSchema field on their class are mixed into this\n * object\n */\nexport function JBrowseConfigF({\n pluginManager,\n assemblyConfigSchema,\n}: {\n pluginManager: PluginManager\n assemblyConfigSchema: AnyConfigurationSchemaType\n}) {\n return types.model('JBrowseConfig', {\n configuration: ConfigurationSchema('Root', {\n /**\n * #slot configuration.rpc\n */\n rpc: RpcManager.configSchema,\n\n /**\n * #slot configuration.highResolutionScaling\n */\n highResolutionScaling: {\n type: 'number',\n defaultValue: 2,\n },\n\n formatDetails: FormatDetailsConfigSchemaFactory(),\n formatAbout: FormatAboutConfigSchemaFactory(),\n\n /*\n * #slot configuration.shareURL\n */\n shareURL: {\n type: 'string',\n defaultValue: 'https://share.jbrowse.org/api/v1/',\n },\n /**\n * #slot configuration.disableAnalytics\n */\n disableAnalytics: {\n type: 'boolean',\n defaultValue: false,\n },\n\n hierarchical: HierarchicalConfigSchemaFactory(),\n /**\n * #slot configuration.theme\n */\n theme: {\n type: 'frozen',\n defaultValue: {},\n },\n /**\n * #slot configuration.extraThemes\n */\n extraThemes: {\n type: 'frozen',\n defaultValue: {},\n },\n /**\n * #slot configuration.logoPath\n */\n logoPath: {\n type: 'fileLocation',\n defaultValue: { uri: '', locationType: 'UriLocation' },\n },\n ...pluginManager.pluginConfigurationSchemas(),\n }),\n /**\n * #slot\n * defines plugins of the format\n * ```typescript\n * type PluginDefinition=\n * { umdUrl: string, name:string } |\n * { url: string, name: string } |\n * { esmUrl: string } |\n * { cjsUrl: string } |\n * { umdLoc: { uri: string } } |\n * { esmLoc: { uri: string } } |\n * ```\n */\n plugins: types.array(types.frozen()),\n /**\n * #slot\n * configuration of the assemblies in the instance, see BaseAssembly\n */\n assemblies: types.array(assemblyConfigSchema),\n /**\n * #slot\n * track configuration is an array of track config schemas. multiple\n * instances of a track can exist that use the same configuration\n */\n tracks: types.array(pluginManager.pluggableConfigSchemaType('track')),\n /**\n * #slot\n * configuration for internet accounts, see InternetAccounts\n */\n internetAccounts: types.array(\n pluginManager.pluggableConfigSchemaType('internet account'),\n ),\n /**\n * #slot\n * configuration for aggregate text search adapters (created by e.g.\n * jbrowse text-index, but can be a pluggable TextSearchAdapter type)\n */\n aggregateTextSearchAdapters: types.array(\n pluginManager.pluggableConfigSchemaType('text search adapter'),\n ),\n\n /**\n * #slot\n * configuration for connections\n */\n connections: types.array(\n pluginManager.pluggableConfigSchemaType('connection'),\n ),\n\n /**\n * #slot\n */\n defaultSession: types.optional(types.frozen(), {\n name: 'New Session',\n }),\n })\n}\n","import { ConfigurationSchema } from '@jbrowse/core/configuration'\n/**\n * #config FormatDetails\n * generally exists on the tracks in the config.json or as a 'session' config as\n * configuration.formatDetails\n */\nexport function FormatDetailsConfigSchemaFactory() {\n return ConfigurationSchema('FormatDetails', {\n /**\n * #slot configuration.formatDetails.feature\n */\n feature: {\n type: 'frozen',\n description: 'adds extra fields to the feature details',\n defaultValue: {},\n contextVariable: ['feature'],\n },\n /**\n * #slot configuration.formatDetails.subfeatures\n */\n subfeatures: {\n type: 'frozen',\n description: 'adds extra fields to the subfeatures of a feature',\n defaultValue: {},\n contextVariable: ['feature'],\n },\n /**\n * #slot configuration.formatDetails.depth\n */\n depth: {\n type: 'number',\n defaultValue: 2,\n description:\n 'depth to iterate the formatDetails->subfeatures callback on subfeatures (used for example to only apply the callback to the first layer of subfeatures)',\n },\n /**\n * #slot configuration.formatDetails.maxDepth\n */\n maxDepth: {\n type: 'number',\n defaultValue: 10000,\n description: 'hide subfeatures greater than a certain depth',\n },\n })\n}\n","import { ConfigurationSchema } from '@jbrowse/core/configuration'\n/**\n * #config FormatAbout\n * generally exists on the config.json or root config as configuration.formatAbout\n */\nexport function FormatAboutConfigSchemaFactory() {\n return ConfigurationSchema('FormatAbout', {\n /**\n * #slot configuration.formatAbout.config\n */\n config: {\n type: 'frozen',\n description: 'formats configuration object in about dialog',\n defaultValue: {},\n contextVariable: ['config'],\n },\n /**\n * #slot configuration.formatAbout.hideUris\n */\n\n hideUris: {\n type: 'boolean',\n defaultValue: false,\n },\n })\n}\n","import { ConfigurationSchema } from '@jbrowse/core/configuration'\n\n/**\n * #config HierarchicalConfigSchema\n * generally exists on the config.json or root config as configuration.hierarchical\n */\nexport function HierarchicalConfigSchemaFactory() {\n return ConfigurationSchema('hierarchical', {\n sort: ConfigurationSchema('hierarchicalSort', {\n /**\n * #slot configuration.hierarchical.sort.trackNames\n */\n trackNames: {\n type: 'boolean',\n defaultValue: false,\n },\n /**\n * #slot configuration.hierarchical.sort.categories\n */\n categories: {\n type: 'boolean',\n defaultValue: false,\n },\n }),\n defaultCollapsed: ConfigurationSchema('defaultCollapsed', {\n /**\n * #slot configuration.hierarchical.defaultCollapsed.categoryNames\n */\n categoryNames: {\n type: 'stringArray',\n defaultValue: [],\n },\n /**\n * #slot configuration.hierarchical.defaultCollapsed.topLevelCategories\n */\n topLevelCategories: {\n type: 'boolean',\n defaultValue: false,\n },\n /**\n * #slot configuration.hierarchical.defaultCollapsed.subCategories\n */\n subCategories: {\n type: 'boolean',\n defaultValue: false,\n },\n }),\n })\n}\n","import PluginManager from '@jbrowse/core/PluginManager'\nimport assemblyManagerFactory, {\n BaseAssemblyConfigSchema,\n} from '@jbrowse/core/assemblyManager'\nimport RpcManager from '@jbrowse/core/rpc/RpcManager'\nimport {\n IAnyType,\n Instance,\n SnapshotIn,\n cast,\n getSnapshot,\n isStateTreeNode,\n types,\n} from 'mobx-state-tree'\nimport TextSearchManager from '@jbrowse/core/TextSearch/TextSearchManager'\n\n/**\n * #stateModel BaseRootModel\n * #category root\n * factory function for the Base-level root model shared by all products\n */\nexport function BaseRootModelFactory({\n pluginManager,\n jbrowseModelType,\n sessionModelType,\n assemblyConfigSchema,\n}: {\n pluginManager: PluginManager\n jbrowseModelType: IAnyType\n sessionModelType: IAnyType\n assemblyConfigSchema: BaseAssemblyConfigSchema\n}) {\n return types\n .model('BaseRootModel', {\n /**\n * #property\n * `jbrowse` is a mapping of the config.json into the in-memory state\n * tree\n */\n jbrowse: jbrowseModelType,\n\n /**\n * #property\n * `session` encompasses the currently active state of the app, including\n * views open, tracks open in those views, etc.\n */\n session: types.maybe(sessionModelType),\n /**\n * #property\n */\n sessionPath: types.optional(types.string, ''),\n\n /**\n * #property\n */\n assemblyManager: types.optional(\n assemblyManagerFactory(assemblyConfigSchema, pluginManager),\n {},\n ),\n })\n .volatile(self => ({\n rpcManager: new RpcManager(\n pluginManager,\n self.jbrowse.configuration.rpc,\n {\n MainThreadRpcDriver: {},\n },\n ),\n\n adminMode: false,\n error: undefined as unknown,\n textSearchManager: new TextSearchManager(pluginManager),\n pluginManager,\n }))\n .actions(self => ({\n /**\n * #action\n */\n setError(error: unknown) {\n self.error = error\n },\n /**\n * #action\n */\n setSession(sessionSnapshot?: SnapshotIn) {\n self.session = cast(sessionSnapshot)\n },\n /**\n * #action\n */\n setDefaultSession() {\n this.setSession(self.jbrowse.defaultSession)\n },\n /**\n * #action\n */\n setSessionPath(path: string) {\n self.sessionPath = path\n },\n /**\n * #action\n */\n renameCurrentSession(newName: string) {\n if (self.session) {\n const snapshot = JSON.parse(JSON.stringify(getSnapshot(self.session)))\n snapshot.name = newName\n this.setSession(snapshot)\n }\n },\n }))\n}\n\nexport type BaseRootModelType = ReturnType\nexport type BaseRootModel = Instance\n\n/** Type guard for checking if something is a JB root model */\nexport function isRootModel(thing: unknown): thing is BaseRootModelType {\n return (\n isStateTreeNode(thing) &&\n 'session' in thing &&\n 'jbrowse' in thing &&\n 'assemblyManager' in thing\n )\n}\n","import {\n addDisposer,\n cast,\n getParent,\n types,\n Instance,\n IAnyType,\n} from 'mobx-state-tree'\nimport { when } from '../util'\nimport { reaction } from 'mobx'\nimport { readConfObject, AnyConfigurationModel } from '../configuration'\nimport assemblyFactory, { Assembly } from './assembly'\nimport PluginManager from '../PluginManager'\nimport RpcManager from '../rpc/RpcManager'\n\ntype AdapterConf = Record\n\n/**\n * #stateModel AssemblyManager\n */\nfunction assemblyManagerFactory(conf: IAnyType, pm: PluginManager) {\n type Conf = Instance // this is type any, try to narrow...\n return types\n .model({\n /**\n * #property\n * this is automatically managed by an autorun which looks in the parent\n * session.assemblies, session.sessionAssemblies, and\n * session.temporaryAssemblies\n */\n assemblies: types.array(assemblyFactory(conf, pm)),\n })\n .views(self => ({\n get assemblyNameMap() {\n const obj = {} as Record\n for (const assembly of self.assemblies) {\n for (const name of assembly.allAliases) {\n obj[name] = assembly\n }\n }\n return obj\n },\n }))\n .views(self => ({\n /**\n * #method\n */\n get(asmName: string) {\n return self.assemblyNameMap[asmName]\n },\n\n /**\n * #getter\n */\n get assemblyNamesList() {\n return this.assemblyList.map(asm => asm.name)\n },\n\n /**\n * #getter\n * looks at jbrowse.assemblies, session.sessionAssemblies, and\n * session.temporaryAssemblies to load from\n */\n get assemblyList() {\n // name is the explicit identifier and can be accessed without getConf,\n // hence the union with {name:string}\n const {\n jbrowse: { assemblies },\n session: { sessionAssemblies = [], temporaryAssemblies = [] } = {},\n } = getParent(self)\n return [\n ...assemblies,\n ...sessionAssemblies,\n ...temporaryAssemblies,\n ] as AnyConfigurationModel[]\n },\n\n get rpcManager(): RpcManager {\n return getParent(self).rpcManager\n },\n }))\n .views(self => ({\n /**\n * #method\n * use this method instead of assemblyManager.get(assemblyName)\n * to get an assembly with regions loaded\n */\n async waitForAssembly(assemblyName: string) {\n if (!assemblyName) {\n throw new Error('no assembly name supplied to waitForAssembly')\n }\n let assembly = self.get(assemblyName)\n if (!assembly) {\n try {\n await when(() => Boolean(self.get(assemblyName)), { timeout: 1000 })\n assembly = self.get(assemblyName)\n } catch (e) {\n // ignore\n }\n }\n\n if (!assembly) {\n return undefined\n }\n await assembly.load()\n await when(\n () =>\n !!(assembly.regions && assembly.refNameAliases) || !!assembly.error,\n )\n if (assembly.error) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw assembly.error\n }\n return assembly\n },\n\n /**\n * #method\n */\n async getRefNameMapForAdapter(\n adapterConf: AdapterConf,\n assemblyName: string | undefined,\n opts: { signal?: AbortSignal; sessionId: string },\n ) {\n if (assemblyName) {\n const asm = await this.waitForAssembly(assemblyName)\n return asm?.getRefNameMapForAdapter(adapterConf, opts)\n }\n return {}\n },\n\n /**\n * #method\n */\n async getReverseRefNameMapForAdapter(\n adapterConf: AdapterConf,\n assemblyName: string | undefined,\n opts: { signal?: AbortSignal; sessionId: string },\n ) {\n if (assemblyName) {\n const asm = await this.waitForAssembly(assemblyName)\n return asm?.getReverseRefNameMapForAdapter(adapterConf, opts)\n }\n return {}\n },\n\n /**\n * #method\n */\n isValidRefName(refName: string, assemblyName: string) {\n const assembly = self.get(assemblyName)\n if (assembly) {\n return assembly.isValidRefName(refName)\n }\n throw new Error(\n `Failed to look up refName ${refName} on ${assemblyName} because assembly does not exist`,\n )\n },\n }))\n .actions(self => ({\n afterAttach() {\n addDisposer(\n self,\n reaction(\n () => self.assemblyList,\n assemblyConfs => {\n self.assemblies.forEach(asm => {\n if (!asm.configuration) {\n this.removeAssembly(asm)\n }\n })\n assemblyConfs.forEach(conf => {\n if (\n !self.assemblies.some(\n a => a.name === readConfObject(conf, 'name'),\n )\n ) {\n this.addAssembly(conf)\n }\n })\n },\n { fireImmediately: true, name: 'assemblyManagerAfterAttach' },\n ),\n )\n },\n\n /**\n * #action\n * private: you would generally want to add to manipulate\n * jbrowse.assemblies, session.sessionAssemblies, or\n * session.temporaryAssemblies instead of using this directly\n */\n removeAssembly(asm: Assembly) {\n self.assemblies.remove(asm)\n },\n\n /**\n * #action\n * private: you would generally want to add to manipulate\n * jbrowse.assemblies, session.sessionAssemblies, or\n * session.temporaryAssemblies instead of using this directly\n *\n * this can take an active instance of an assembly, in which case it is\n * referred to, or it can take an identifier e.g. assembly name, which is\n * used as a reference. snapshots cannot be used\n */\n addAssembly(configuration: Conf) {\n self.assemblies.push({ configuration })\n },\n\n /**\n * #action\n * private: you would generally want to add to manipulate\n * jbrowse.assemblies, session.sessionAssemblies, or\n * session.temporaryAssemblies instead of using this directly\n */\n replaceAssembly(idx: number, configuration: Conf) {\n self.assemblies[idx] = cast({ configuration })\n },\n }))\n}\n\nexport default assemblyManagerFactory\n","import PluginManager from '@jbrowse/core/PluginManager'\nimport { AnyConfigurationModel } from '@jbrowse/core/configuration'\nimport { UriLocation } from '@jbrowse/core/util'\nimport { autorun } from 'mobx'\nimport { Instance, addDisposer, types } from 'mobx-state-tree'\nimport { BaseRootModel } from './BaseRootModel'\n\n/**\n * #stateModel InternetAccountsMixin\n * #category root\n */\nexport function InternetAccountsRootModelMixin(pluginManager: PluginManager) {\n return types\n .model({\n /**\n * #property\n */\n internetAccounts: types.array(\n pluginManager.pluggableMstType('internet account', 'stateModel'),\n ),\n })\n .actions(self => ({\n /**\n * #action\n */\n initializeInternetAccount(\n internetAccountConfig: AnyConfigurationModel,\n initialSnapshot = {},\n ) {\n const internetAccountType = pluginManager.getInternetAccountType(\n internetAccountConfig.type,\n )\n if (!internetAccountType) {\n throw new Error(\n `unknown internet account type ${internetAccountConfig.type}`,\n )\n }\n\n const length = self.internetAccounts.push({\n ...initialSnapshot,\n type: internetAccountConfig.type,\n configuration: internetAccountConfig,\n })\n return self.internetAccounts[length - 1]\n },\n\n /**\n * #action\n */\n createEphemeralInternetAccount(\n internetAccountId: string,\n initialSnapshot: Record,\n url: string,\n ) {\n let hostUri: string | undefined\n\n try {\n hostUri = new URL(url).origin\n } catch (e) {\n // ignore\n }\n const internetAccountSplit = internetAccountId.split('-')\n const configuration = {\n type: internetAccountSplit[0]!,\n internetAccountId: internetAccountId,\n name: internetAccountSplit.slice(1).join('-'),\n description: '',\n domains: hostUri ? [hostUri] : [],\n }\n const type = pluginManager.getInternetAccountType(configuration.type)!\n const internetAccount = type.stateModel.create({\n ...initialSnapshot,\n type: configuration.type,\n configuration,\n })\n self.internetAccounts.push(internetAccount)\n return internetAccount\n },\n /**\n * #action\n */\n findAppropriateInternetAccount(location: UriLocation) {\n // find the existing account selected from menu\n const selectedId = location.internetAccountId\n if (selectedId) {\n const selectedAccount = self.internetAccounts.find(account => {\n return account.internetAccountId === selectedId\n })\n if (selectedAccount) {\n return selectedAccount\n }\n }\n\n // if no existing account or not found, try to find working account\n for (const account of self.internetAccounts) {\n const handleResult = account.handlesLocation(location)\n if (handleResult) {\n return account\n }\n }\n\n // if still no existing account, create ephemeral config to use\n return selectedId\n ? this.createEphemeralInternetAccount(selectedId, {}, location.uri)\n : null\n },\n }))\n .actions(self => ({\n afterCreate() {\n addDisposer(\n self,\n autorun(() => {\n const { jbrowse } = self as typeof self & BaseRootModel\n jbrowse.internetAccounts.forEach(self.initializeInternetAccount)\n }),\n )\n },\n }))\n}\n\nexport type RootModelWithInternetAccountsType = ReturnType<\n typeof InternetAccountsRootModelMixin\n>\nexport type RootModelWithInternetAccounts =\n Instance\n","import TimeTraveller from '@jbrowse/core/util/TimeTraveller'\nimport type { BaseRootModel } from '@jbrowse/product-core'\nimport { autorun } from 'mobx'\nimport { addDisposer, types } from 'mobx-state-tree'\n\n/**\n * #stateModel HistoryManagementMixin\n * #category root\n */\nexport function HistoryManagementMixin() {\n return types\n .model({\n /**\n * #property\n * used for undo/redo\n */\n history: types.optional(TimeTraveller, { targetPath: '../session' }),\n })\n .actions(self => ({\n afterCreate() {\n document.addEventListener('keydown', e => {\n if (\n self.history.canRedo &&\n // ctrl+shift+z or cmd+shift+z\n (((e.ctrlKey || e.metaKey) && e.shiftKey && e.code === 'KeyZ') ||\n // ctrl+y\n (e.ctrlKey && !e.shiftKey && e.code === 'KeyY')) &&\n document.activeElement?.tagName.toUpperCase() !== 'INPUT'\n ) {\n self.history.redo()\n }\n if (\n self.history.canUndo &&\n // ctrl+z or cmd+z\n (e.ctrlKey || e.metaKey) &&\n !e.shiftKey &&\n e.code === 'KeyZ' &&\n document.activeElement?.tagName.toUpperCase() !== 'INPUT'\n ) {\n self.history.undo()\n }\n })\n addDisposer(\n self,\n autorun(() => {\n const { session } = self as typeof self & BaseRootModel\n if (session) {\n // we use a specific initialization routine after session is\n // created to get it to start tracking itself sort of related\n // issue here\n // https://github.com/mobxjs/mobx-state-tree/issues/1089#issuecomment-441207911\n self.history.initialize()\n }\n }),\n )\n },\n }))\n}\n","import { MenuItem } from '@jbrowse/core/ui/Menu'\nimport { types } from 'mobx-state-tree'\n\nexport interface Menu {\n label: string\n menuItems: MenuItem[]\n}\n\n/**\n * #stateModel RootAppMenuMixin\n */\nexport function RootAppMenuMixin() {\n return types.model({}).actions(s => {\n const self = s as { menus: Menu[] }\n return {\n /**\n * #action\n */\n setMenus(newMenus: Menu[]) {\n self.menus = newMenus\n },\n /**\n * #action\n * Add a top-level menu\n *\n * @param menuName - Name of the menu to insert.\n *\n * @returns The new length of the top-level menus array\n */\n appendMenu(menuName: string) {\n return self.menus.push({ label: menuName, menuItems: [] })\n },\n /**\n * #action\n * Insert a top-level menu\n *\n * @param menuName - Name of the menu to insert.\n *\n * @param position - Position to insert menu. If negative, counts from th\n * end, e.g. `insertMenu('My Menu', -1)` will insert the menu as the\n * second-to-last one.\n *\n * @returns The new length of the top-level menus array\n */\n insertMenu(menuName: string, position: number) {\n self.menus.splice(\n (position < 0 ? self.menus.length : 0) + position,\n 0,\n {\n label: menuName,\n menuItems: [],\n },\n )\n return self.menus.length\n },\n /**\n * #action\n * Add a menu item to a top-level menu\n *\n * @param menuName - Name of the top-level menu to append to.\n *\n * @param menuItem - Menu item to append.\n *\n * @returns The new length of the menu\n */\n appendToMenu(menuName: string, menuItem: MenuItem) {\n const menu = self.menus.find(m => m.label === menuName)\n if (!menu) {\n self.menus.push({ label: menuName, menuItems: [menuItem] })\n return 1\n }\n return menu.menuItems.push(menuItem)\n },\n /**\n * #action\n * Insert a menu item into a top-level menu\n *\n * @param menuName - Name of the top-level menu to insert into\n *\n * @param menuItem - Menu item to insert\n *\n * @param position - Position to insert menu item. If negative, counts\n * from the end, e.g. `insertMenu('My Menu', -1)` will insert the menu as\n * the second-to-last one.\n *\n * @returns The new length of the menu\n */\n insertInMenu(menuName: string, menuItem: MenuItem, position: number) {\n const menu = self.menus.find(m => m.label === menuName)\n if (!menu) {\n self.menus.push({ label: menuName, menuItems: [menuItem] })\n return 1\n }\n const insertPosition =\n position < 0 ? menu.menuItems.length + position : position\n menu.menuItems.splice(insertPosition, 0, menuItem)\n return menu.menuItems.length\n },\n /**\n * #action\n * Add a menu item to a sub-menu\n *\n * @param menuPath - Path to the sub-menu to add to, starting with the\n * top-level menu (e.g. `['File', 'Insert']`).\n *\n * @param menuItem - Menu item to append.\n *\n * @returns The new length of the sub-menu\n */\n appendToSubMenu(menuPath: string[], menuItem: MenuItem) {\n let topMenu = self.menus.find(m => m.label === menuPath[0])\n if (!topMenu) {\n const idx = this.appendMenu(menuPath[0]!)\n topMenu = self.menus[idx - 1]!\n }\n let { menuItems: subMenu } = topMenu\n const pathSoFar = [menuPath[0]]\n menuPath.slice(1).forEach(menuName => {\n pathSoFar.push(menuName)\n let sm = subMenu.find(mi => 'label' in mi && mi.label === menuName)\n if (!sm) {\n const idx = subMenu.push({ label: menuName, subMenu: [] })\n sm = subMenu[idx - 1]!\n }\n if (!('subMenu' in sm)) {\n throw new Error(\n `\"${menuName}\" in path \"${pathSoFar}\" is not a subMenu`,\n )\n }\n subMenu = sm.subMenu\n })\n return subMenu.push(menuItem)\n },\n /**\n * #action\n * Insert a menu item into a sub-menu\n *\n * @param menuPath - Path to the sub-menu to add to, starting with the\n * top-level menu (e.g. `['File', 'Insert']`).\n *\n * @param menuItem - Menu item to insert.\n *\n * @param position - Position to insert menu item. If negative, counts\n * from the end, e.g. `insertMenu('My Menu', -1)` will insert the menu as\n * the second-to-last one.\n *\n * @returns The new length of the sub-menu\n */\n insertInSubMenu(\n menuPath: string[],\n menuItem: MenuItem,\n position: number,\n ) {\n let topMenu = self.menus.find(m => m.label === menuPath[0])\n if (!topMenu) {\n const idx = this.appendMenu(menuPath[0]!)\n topMenu = self.menus[idx - 1]!\n }\n let { menuItems: subMenu } = topMenu\n const pathSoFar = [menuPath[0]]\n menuPath.slice(1).forEach(menuName => {\n pathSoFar.push(menuName)\n let sm = subMenu.find(mi => 'label' in mi && mi.label === menuName)\n if (!sm) {\n const idx = subMenu.push({ label: menuName, subMenu: [] })\n sm = subMenu[idx - 1]!\n }\n if (!('subMenu' in sm)) {\n throw new Error(\n `\"${menuName}\" in path \"${pathSoFar}\" is not a subMenu`,\n )\n }\n subMenu = sm.subMenu\n })\n subMenu.splice(position, 0, menuItem)\n return subMenu.length\n },\n }\n })\n}\n","/** MST props, views, actions, etc related to managing connections */\n\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport {\n TrackViewModel,\n getContainingView,\n isSessionModelWithWidgets,\n} from '@jbrowse/core/util'\nimport {\n IAnyStateTreeNode,\n Instance,\n getMembers,\n getParent,\n getSnapshot,\n getType,\n isModelType,\n isReferenceType,\n types,\n walk,\n} from 'mobx-state-tree'\n\nimport type { BaseTrackConfig } from '@jbrowse/core/pluggableElementTypes'\n// locals\nimport { isBaseSession } from './BaseSession'\n\nexport interface ReferringNode {\n node: IAnyStateTreeNode\n key: string\n}\n\n/**\n * #stateModel ReferenceManagementSessionMixin\n */\nexport function ReferenceManagementSessionMixin(_pluginManager: PluginManager) {\n return types\n .model('ReferenceManagementSessionMixin', {})\n .views(self => ({\n /**\n * #method\n * See if any MST nodes currently have a types.reference to this object.\n *\n * @param object - object\n * @returns An array where the first element is the node referring\n * to the object and the second element is they property name the node is\n * using to refer to the object\n */\n getReferring(object: IAnyStateTreeNode) {\n const refs: ReferringNode[] = []\n walk(getParent(self), node => {\n if (isModelType(getType(node))) {\n const members = getMembers(node)\n Object.entries(members.properties).forEach(([key, value]) => {\n if (isReferenceType(value) && node[key] === object) {\n refs.push({ node, key })\n }\n })\n }\n })\n return refs\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n removeReferring(\n referring: ReferringNode[],\n track: BaseTrackConfig,\n callbacks: ((arg: string) => void)[],\n dereferenceTypeCount: Record,\n ) {\n referring.forEach(({ node }) => {\n let dereferenced = false\n try {\n // If a view is referring to the track config, remove the track\n // from the view\n const type = 'open track(s)'\n const view = getContainingView(node) as TrackViewModel\n callbacks.push(() => {\n view.hideTrack(track.trackId)\n })\n dereferenced = true\n if (!dereferenceTypeCount[type]) {\n dereferenceTypeCount[type] = 0\n }\n dereferenceTypeCount[type] += 1\n } catch (err1) {\n // ignore\n }\n\n if (isSessionModelWithWidgets(self) && self.widgets.has(node.id)) {\n // If a configuration editor widget has the track config\n // open, close the widget\n const type = 'configuration editor widget(s)'\n if (isSessionModelWithWidgets(self)) {\n callbacks.push(() => {\n self.hideWidget(node)\n })\n }\n dereferenced = true\n if (!dereferenceTypeCount[type]) {\n dereferenceTypeCount[type] = 0\n }\n dereferenceTypeCount[type] += 1\n }\n if (!dereferenced) {\n throw new Error(\n `Error when closing this connection, the following node is still referring to a track configuration: ${JSON.stringify(\n getSnapshot(node),\n )}`,\n )\n }\n })\n },\n }))\n}\n\n/** Session mixin MST type for a session that manages multiple views */\nexport type SessionWithReferenceManagementType = ReturnType<\n typeof ReferenceManagementSessionMixin\n>\n\n/** Instance of a session with MST reference management (`getReferring()`, `removeReferring()`) */\nexport type SessionWithReferenceManagement =\n Instance\n\n/** Type guard for SessionWithReferenceManagement */\nexport function isSessionWithReferenceManagement(\n thing: IAnyStateTreeNode,\n): thing is SessionWithReferenceManagement {\n return (\n isBaseSession(thing) &&\n 'getReferring' in thing &&\n typeof thing.getReferring === 'function' &&\n 'removeReferring' in thing &&\n typeof thing.removeReferring === 'function'\n )\n}\n","import {\n IAnyStateTreeNode,\n Instance,\n addDisposer,\n isAlive,\n types,\n} from 'mobx-state-tree'\n\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { localStorageGetItem, localStorageSetItem } from '@jbrowse/core/util'\nimport { autorun } from 'mobx'\nimport {\n AnyConfigurationModel,\n isConfigurationModel,\n} from '@jbrowse/core/configuration'\nimport { isBaseSession } from './BaseSession'\n\nconst minDrawerWidth = 128\n\n/**\n * #stateModel DrawerWidgetSessionMixin\n */\nexport function DrawerWidgetSessionMixin(pluginManager: PluginManager) {\n const widgetStateModelType = pluginManager.pluggableMstType(\n 'widget',\n 'stateModel',\n )\n type WidgetStateModel = Instance\n return types\n .model({\n /**\n * #property\n */\n drawerPosition: types.optional(\n types.string,\n () => localStorageGetItem('drawerPosition') || 'right',\n ),\n /**\n * #property\n */\n drawerWidth: types.optional(\n types.refinement(types.integer, width => width >= minDrawerWidth),\n 384,\n ),\n /**\n * #property\n */\n widgets: types.map(widgetStateModelType),\n /**\n * #property\n */\n activeWidgets: types.map(types.safeReference(widgetStateModelType)),\n\n /**\n * #property\n */\n minimized: types.optional(types.boolean, false),\n })\n .views(self => ({\n /**\n * #getter\n */\n get visibleWidget() {\n if (isAlive(self)) {\n // returns most recently added item in active widgets\n return [...self.activeWidgets.values()][self.activeWidgets.size - 1]\n }\n return undefined\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n setDrawerPosition(arg: string) {\n self.drawerPosition = arg\n localStorage.setItem('drawerPosition', arg)\n },\n\n /**\n * #action\n */\n updateDrawerWidth(drawerWidth: number) {\n if (drawerWidth === self.drawerWidth) {\n return self.drawerWidth\n }\n let newDrawerWidth = drawerWidth\n if (newDrawerWidth < minDrawerWidth) {\n newDrawerWidth = minDrawerWidth\n }\n self.drawerWidth = newDrawerWidth\n return newDrawerWidth\n },\n\n /**\n * #action\n */\n resizeDrawer(distance: number) {\n if (self.drawerPosition === 'left') {\n distance *= -1\n }\n const oldDrawerWidth = self.drawerWidth\n const newDrawerWidth = this.updateDrawerWidth(oldDrawerWidth - distance)\n return oldDrawerWidth - newDrawerWidth\n },\n\n /**\n * #action\n */\n addWidget(\n typeName: string,\n id: string,\n initialState = {},\n conf?: unknown,\n ) {\n const typeDefinition = pluginManager.getElementType('widget', typeName)\n if (!typeDefinition) {\n throw new Error(`unknown widget type ${typeName}`)\n }\n const data = {\n ...initialState,\n id,\n type: typeName,\n configuration: conf || { type: typeName },\n }\n self.widgets.set(id, data)\n return self.widgets.get(id)\n },\n\n /**\n * #action\n */\n showWidget(widget: WidgetStateModel) {\n if (self.activeWidgets.has(widget.id)) {\n self.activeWidgets.delete(widget.id)\n }\n self.activeWidgets.set(widget.id, widget)\n self.minimized = false\n },\n\n /**\n * #action\n */\n hasWidget(widget: WidgetStateModel) {\n return self.activeWidgets.has(widget.id)\n },\n\n /**\n * #action\n */\n hideWidget(widget: WidgetStateModel) {\n self.activeWidgets.delete(widget.id)\n },\n\n /**\n * #action\n */\n minimizeWidgetDrawer() {\n self.minimized = true\n },\n /**\n * #action\n */\n showWidgetDrawer() {\n self.minimized = false\n },\n /**\n * #action\n */\n hideAllWidgets() {\n self.activeWidgets.clear()\n },\n\n /**\n * #action\n * opens a configuration editor to configure the given thing,\n * and sets the current task to be configuring it\n * @param configuration -\n */\n editConfiguration(configuration: AnyConfigurationModel) {\n if (!isConfigurationModel(configuration)) {\n throw new Error(\n 'must pass a configuration model to editConfiguration',\n )\n }\n const editor = this.addWidget(\n 'ConfigurationEditorWidget',\n 'configEditor',\n { target: configuration },\n )\n this.showWidget(editor)\n },\n\n afterAttach() {\n addDisposer(\n self,\n autorun(() => {\n localStorageSetItem('drawerPosition', self.drawerPosition)\n }),\n )\n },\n }))\n}\n\n/** Session mixin MST type for a session that manages drawer widgets */\nexport type SessionWithDrawerWidgetsType = ReturnType<\n typeof DrawerWidgetSessionMixin\n>\n\n/** Instance of a session that manages drawer widgets */\nexport type SessionWithDrawerWidgets = Instance\n\n/** Type guard for SessionWithDrawerWidgets */\nexport function isSessionWithDrawerWidgets(\n session: IAnyStateTreeNode,\n): session is SessionWithDrawerWidgets {\n return (\n isBaseSession(session) &&\n 'widgets' in session &&\n 'drawerPosition' in session\n )\n}\n","import React, { lazy } from 'react'\nimport { types } from 'mobx-state-tree'\nimport { observable } from 'mobx'\n\n// locals\nimport { NotificationLevel, SnackAction } from '../util/types'\n\n// icons\nimport Report from '@mui/icons-material/Report'\n\n// lazies\nconst ErrorMessageStackTraceDialog = lazy(\n () => import('@jbrowse/core/ui/ErrorMessageStackTraceDialog'),\n)\n\nexport interface SnackbarMessage {\n message: string\n level?: NotificationLevel\n action?: SnackAction\n}\n\n/**\n * #stateModel SnackbarModel\n * #category session\n */\nexport default function SnackbarModel() {\n return types\n .model({})\n .volatile(() => ({\n /**\n * #volatile\n */\n snackbarMessages: observable.array(),\n }))\n .views(self => ({\n /**\n * #getter\n */\n get snackbarMessageSet() {\n return new Map(self.snackbarMessages.map(s => [s.message, s]))\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n notify(message: string, level?: NotificationLevel, action?: SnackAction) {\n this.pushSnackbarMessage(message, level, action)\n if (level === 'info' || level === 'success') {\n setTimeout(() => {\n this.removeSnackbarMessage(message)\n }, 5000)\n }\n },\n\n /**\n * #action\n */\n notifyError(errorMessage: string, error?: unknown, extra?: unknown) {\n this.notify(errorMessage, 'error', {\n name: ,\n onClick: () => {\n // @ts-expect-error\n self.queueDialog((onClose: () => void) => [\n ErrorMessageStackTraceDialog,\n {\n onClose,\n error,\n extra,\n },\n ])\n },\n })\n },\n /**\n * #action\n */\n pushSnackbarMessage(\n message: string,\n level?: NotificationLevel,\n action?: SnackAction,\n ) {\n if (action || !self.snackbarMessageSet.has(message)) {\n self.snackbarMessages.push({ message, level, action })\n }\n },\n /**\n * #action\n */\n popSnackbarMessage() {\n return self.snackbarMessages.pop()\n },\n /**\n * #action\n */\n removeSnackbarMessage(message: string) {\n const element = self.snackbarMessageSet.get(message)\n if (element !== undefined) {\n self.snackbarMessages.remove(element)\n }\n },\n }))\n}\n","import { lazy } from 'react'\nimport clone from 'clone'\nimport { PluginDefinition } from '@jbrowse/core/PluginLoader'\nimport {\n getConf,\n AnyConfigurationModel,\n readConfObject,\n AnyConfiguration,\n} from '@jbrowse/core/configuration'\nimport { AssemblyManager, JBrowsePlugin } from '@jbrowse/core/util/types'\nimport { localStorageGetItem, localStorageSetItem } from '@jbrowse/core/util'\nimport { autorun } from 'mobx'\nimport {\n addDisposer,\n cast,\n getParent,\n getSnapshot,\n types,\n SnapshotIn,\n Instance,\n} from 'mobx-state-tree'\nimport TextSearchManager from '@jbrowse/core/TextSearch/TextSearchManager'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport {\n DialogQueueSessionMixin,\n DrawerWidgetSessionMixin,\n MultipleViewsSessionMixin,\n ReferenceManagementSessionMixin,\n SessionTracksManagerSessionMixin,\n ThemeManagerSessionMixin,\n} from '@jbrowse/product-core'\nimport {\n AppFocusMixin,\n SessionAssembliesMixin,\n TemporaryAssembliesMixin,\n} from '@jbrowse/app-core'\nimport { BaseTrackConfig } from '@jbrowse/core/pluggableElementTypes'\nimport { BaseAssemblyConfigSchema } from '@jbrowse/core/assemblyManager'\nimport { BaseConnectionConfigModel } from '@jbrowse/core/pluggableElementTypes/models/baseConnectionConfig'\nimport SnackbarModel from '@jbrowse/core/ui/SnackbarModel'\n\n// icons\nimport SettingsIcon from '@mui/icons-material/Settings'\nimport CopyIcon from '@mui/icons-material/FileCopy'\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport InfoIcon from '@mui/icons-material/Info'\n\n// locals\nimport { WebSessionConnectionsMixin } from '../SessionConnections'\n\n// lazies\nconst AboutDialog = lazy(() => import('./AboutDialog'))\n\n/**\n * #stateModel BaseWebSession\n * used for \"web based\" products, including jbrowse-web and react-app\n * composed of\n * - [ReferenceManagementSessionMixin](../referencemanagementsessionmixin)\n * - [DrawerWidgetSessionMixin](../drawerwidgetsessionmixin)\n * - [DialogQueueSessionMixin](../dialogqueuesessionmixin)\n * - [ThemeManagerSessionMixin](../thememanagersessionmixin)\n * - [MultipleViewsSessionMixin](../multipleviewssessionmixin)\n * - [SessionTracksManagerSessionMixin](../sessiontracksmanagersessionmixin)\n * - [SessionAssembliesMixin](../sessionassembliesmixin)\n * - [TemporaryAssembliesMixin](../temporaryassembliesmixin)\n * - [WebSessionConnectionsMixin](../websessionconnectionsmixin)\n * - [AppFocusMixin](../appfocusmixin)\n */\nexport function BaseWebSession({\n pluginManager,\n assemblyConfigSchema,\n}: {\n pluginManager: PluginManager\n assemblyConfigSchema: BaseAssemblyConfigSchema\n}) {\n const sessionModel = types\n .compose(\n 'WebCoreSessionModel',\n types.compose(\n 'WebCoreSessionModelGroupA',\n ReferenceManagementSessionMixin(pluginManager),\n DrawerWidgetSessionMixin(pluginManager),\n DialogQueueSessionMixin(pluginManager),\n ThemeManagerSessionMixin(pluginManager),\n MultipleViewsSessionMixin(pluginManager),\n ),\n types.compose(\n 'WebCoreSessionModelGroupB',\n SessionTracksManagerSessionMixin(pluginManager),\n SessionAssembliesMixin(pluginManager, assemblyConfigSchema),\n TemporaryAssembliesMixin(pluginManager, assemblyConfigSchema),\n WebSessionConnectionsMixin(pluginManager),\n AppFocusMixin(),\n SnackbarModel(),\n ),\n )\n .props({\n /**\n * #property\n */\n margin: 0,\n /**\n * #property\n */\n sessionPlugins: types.array(types.frozen()),\n })\n .volatile((/* self */) => ({\n /**\n * #volatile\n */\n sessionThemeName: localStorageGetItem('themeName') || 'default',\n /**\n * #volatile\n * this is the current \"task\" that is being performed in the UI.\n * this is usually an object of the form\n * `{ taskName: \"configure\", target: thing_being_configured }`\n */\n task: undefined,\n }))\n .views(self => ({\n /**\n * #getter\n */\n get tracks(): AnyConfigurationModel[] {\n return [...self.sessionTracks, ...self.jbrowse.tracks]\n },\n /**\n * #getter\n */\n get root() {\n return getParent(self)\n },\n /**\n * #getter\n * list of sessionAssemblies and jbrowse config assemblies, does not\n * include temporaryAssemblies. basically the list to be displayed in a\n * AssemblySelector dropdown\n */\n get assemblies(): Instance {\n return [...self.jbrowse.assemblies, ...self.sessionAssemblies]\n },\n /**\n * #getter\n * list of config connections and session connections\n */\n get connections(): BaseConnectionConfigModel[] {\n return [...self.jbrowse.connections, ...self.sessionConnections]\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n setName(str: string) {\n self.name = str\n },\n }))\n\n .views(self => ({\n /**\n * #getter\n * list of sessionAssemblies and jbrowse config assemblies, does not\n * include temporaryAssemblies. basically the list to be displayed in a\n * AssemblySelector dropdown\n */\n get assemblyNames() {\n return self.assemblies.map(f => readConfObject(f, 'name') as string)\n },\n /**\n * #getter\n */\n get version() {\n return self.root.version\n },\n /**\n * #getter\n */\n get shareURL() {\n return getConf(self.jbrowse, 'shareURL')\n },\n /**\n * #getter\n */\n get textSearchManager(): TextSearchManager {\n return self.root.textSearchManager\n },\n /**\n * #getter\n */\n get assemblyManager(): AssemblyManager {\n return self.root.assemblyManager\n },\n /**\n * #getter\n */\n get savedSessions() {\n return self.root.savedSessions\n },\n /**\n * #getter\n */\n get previousAutosaveId() {\n return self.root.previousAutosaveId\n },\n /**\n * #getter\n */\n get savedSessionNames() {\n return self.root.savedSessionNames\n },\n /**\n * #getter\n */\n get history() {\n return self.root.history\n },\n /**\n * #getter\n */\n get menus() {\n return self.root.menus\n },\n /**\n * #method\n */\n renderProps() {\n return {\n theme: self.theme,\n highResolutionScaling: getConf(self, 'highResolutionScaling'),\n }\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n addAssemblyConf(conf: AnyConfiguration) {\n self.jbrowse.addAssemblyConf(conf)\n },\n /**\n * #action\n */\n addSessionPlugin(plugin: JBrowsePlugin) {\n if (self.sessionPlugins.some(p => p.name === plugin.name)) {\n throw new Error('session plugin cannot be installed twice')\n }\n self.sessionPlugins.push(plugin)\n self.root.setPluginsUpdated(true)\n },\n\n /**\n * #action\n */\n removeSessionPlugin(pluginDefinition: PluginDefinition) {\n self.sessionPlugins = cast(\n self.sessionPlugins.filter(\n plugin =>\n // @ts-expect-error\n plugin.url !== pluginDefinition.url ||\n // @ts-expect-error\n plugin.umdUrl !== pluginDefinition.umdUrl ||\n // @ts-expect-error\n plugin.cjsUrl !== pluginDefinition.cjsUrl ||\n // @ts-expect-error\n plugin.esmUrl !== pluginDefinition.esmUrl,\n ),\n )\n getParent(self).setPluginsUpdated(true)\n },\n\n /**\n * #action\n */\n addSavedSession(sessionSnapshot: SnapshotIn) {\n return self.root.addSavedSession(sessionSnapshot)\n },\n\n /**\n * #action\n */\n removeSavedSession(sessionSnapshot: { name: string }) {\n return self.root.removeSavedSession(sessionSnapshot)\n },\n\n /**\n * #action\n */\n renameCurrentSession(sessionName: string) {\n return self.root.renameCurrentSession(sessionName)\n },\n\n /**\n * #action\n */\n duplicateCurrentSession() {\n return self.root.duplicateCurrentSession()\n },\n /**\n * #action\n */\n activateSession(sessionName: string) {\n return self.root.activateSession(sessionName)\n },\n\n /**\n * #action\n */\n setDefaultSession() {\n return self.root.setDefaultSession()\n },\n\n /**\n * #action\n */\n saveSessionToLocalStorage() {\n return self.root.saveSessionToLocalStorage()\n },\n\n /**\n * #action\n */\n loadAutosaveSession() {\n return self.root.loadAutosaveSession()\n },\n\n /**\n * #action\n */\n setSession(sessionSnapshot: SnapshotIn) {\n return self.root.setSession(sessionSnapshot)\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n editTrackConfiguration(configuration: AnyConfigurationModel) {\n const { adminMode, sessionTracks } = self\n if (!adminMode && !sessionTracks.includes(configuration)) {\n throw new Error(\"Can't edit the configuration of a non-session track\")\n }\n self.editConfiguration(configuration)\n },\n }))\n .views(self => ({\n /**\n * #method\n */\n getTrackActionMenuItems(config: BaseTrackConfig) {\n const { adminMode, sessionTracks } = self\n const canEdit =\n adminMode || sessionTracks.find(t => t.trackId === config.trackId)\n\n // disable if it is a reference sequence track\n const isRefSeq = config.type === 'ReferenceSequenceTrack'\n return [\n {\n label: 'About track',\n priority: 1002,\n onClick: () => {\n self.queueDialog(handleClose => [\n AboutDialog,\n { config, handleClose },\n ])\n },\n icon: InfoIcon,\n },\n {\n label: 'Settings',\n priority: 1001,\n disabled: !canEdit,\n onClick: () => {\n self.editTrackConfiguration(config)\n },\n icon: SettingsIcon,\n },\n {\n label: 'Delete track',\n priority: 1000,\n disabled: !canEdit || isRefSeq,\n onClick: () => self.deleteTrackConf(config),\n icon: DeleteIcon,\n },\n {\n label: 'Copy track',\n priority: 999,\n disabled: isRefSeq,\n onClick: () => {\n interface Display {\n displayId: string\n }\n const snap = clone(getSnapshot(config)) as {\n [key: string]: unknown\n displays: Display[]\n }\n const now = Date.now()\n snap.trackId += `-${now}`\n snap.displays.forEach(display => {\n display.displayId += `-${now}`\n })\n // the -sessionTrack suffix to trackId is used as metadata for\n // the track selector to store the track in a special category,\n // and default category is also cleared\n if (!self.adminMode) {\n snap.trackId += '-sessionTrack'\n snap.category = undefined\n }\n snap.name += ' (copy)'\n self.addTrackConf(snap)\n },\n icon: CopyIcon,\n },\n ]\n },\n }))\n .actions(self => ({\n afterAttach() {\n addDisposer(\n self,\n autorun(() => {\n localStorageSetItem('drawerPosition', self.drawerPosition)\n localStorageSetItem('themeName', self.themeName)\n }),\n )\n },\n }))\n\n const extendedSessionModel = pluginManager.evaluateExtensionPoint(\n 'Core-extendSession',\n sessionModel,\n ) as typeof sessionModel\n\n return types.snapshotProcessor(extendedSessionModel, {\n // @ts-expect-error\n preProcessor(snapshot) {\n // @ts-expect-error\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const { connectionInstances, ...rest } = snapshot || {}\n // connectionInstances schema changed from object to an array, so any\n // old connectionInstances as object is in snapshot, filter it out\n // https://github.com/GMOD/jbrowse-components/issues/1903\n return !Array.isArray(connectionInstances) ? rest : snapshot\n },\n })\n}\n","/** MST mixin for managing a queue of dialogs at the level of the session */\n\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { DialogComponentType } from '@jbrowse/core/util'\nimport { IAnyStateTreeNode, Instance, types } from 'mobx-state-tree'\nimport { isBaseSession } from './BaseSession'\n\n/**\n * #stateModel DialogQueueSessionMixin\n */\nexport function DialogQueueSessionMixin(_pluginManager: PluginManager) {\n return types\n .model('DialogQueueSessionMixin', {})\n .volatile(() => ({\n queueOfDialogs: [] as [DialogComponentType, unknown][],\n }))\n .views(self => ({\n /**\n * #getter\n */\n get DialogComponent() {\n return self.queueOfDialogs[0]?.[0]\n },\n /**\n * #getter\n */\n get DialogProps() {\n return self.queueOfDialogs[0]?.[1]\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n removeActiveDialog() {\n self.queueOfDialogs = self.queueOfDialogs.slice(1)\n },\n /**\n * #action\n */\n queueDialog(\n cb: (doneCallback: () => void) => [DialogComponentType, unknown],\n ) {\n const [component, props] = cb(() => {\n this.removeActiveDialog()\n })\n self.queueOfDialogs = [...self.queueOfDialogs, [component, props]]\n },\n }))\n}\n\n/** Session mixin MST type for a session that has `queueOfDialogs`, etc. */\nexport type SessionWithDialogsType = ReturnType\n\n/** Instance of a session that has dialogs */\nexport type SessionWithDialogs = Instance\n\n/** Type guard for SessionWithDialogs */\nexport function isSessionWithDialogs(\n session: IAnyStateTreeNode,\n): session is SessionWithDialogs {\n return isBaseSession(session) && 'queueOfDialogs' in session\n}\n","import {\n IAnyStateTreeNode,\n Instance,\n addDisposer,\n types,\n} from 'mobx-state-tree'\n\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { getConf } from '@jbrowse/core/configuration'\nimport { createJBrowseTheme, defaultThemes } from '@jbrowse/core/ui'\nimport { localStorageGetItem, localStorageSetItem } from '@jbrowse/core/util'\nimport { ThemeOptions } from '@mui/material'\nimport { autorun } from 'mobx'\n\n// locals\nimport { BaseSession } from './BaseSession'\n\ntype ThemeMap = Record\n\n/**\n * #stateModel ThemeManagerSessionMixin\n */\nexport function ThemeManagerSessionMixin(_pluginManager: PluginManager) {\n return types\n .model({})\n .volatile(() => ({\n sessionThemeName: localStorageGetItem('themeName') || 'default',\n }))\n .views(s => ({\n /**\n * #method\n */\n allThemes(): ThemeMap {\n const self = s as typeof s & BaseSession\n const extraThemes = getConf(self.jbrowse, 'extraThemes')\n return { ...defaultThemes, ...extraThemes }\n },\n /**\n * #getter\n */\n get themeName() {\n const { sessionThemeName } = s\n const all = this.allThemes()\n return all[sessionThemeName] ? sessionThemeName : 'default'\n },\n /**\n * #getter\n */\n get theme() {\n const self = s as typeof s & BaseSession\n const configTheme = getConf(self.jbrowse, 'theme')\n const all = this.allThemes()\n return createJBrowseTheme(configTheme, all, this.themeName)\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n setThemeName(name: string) {\n self.sessionThemeName = name\n },\n afterAttach() {\n addDisposer(\n self,\n autorun(() => {\n localStorageSetItem('themeName', self.themeName)\n }),\n )\n },\n }))\n}\n\n/** Session mixin MST type for a session that supports theming */\nexport type SessionWithThemesType = ReturnType\n\n/** Instance of a session that has theming support */\nexport type SessionWithThemes = Instance\n\n/** Type guard for SessionWithThemes */\nexport function isSessionWithThemes(\n session: IAnyStateTreeNode,\n): session is SessionWithThemes {\n return 'theme' in session\n}\n","import {\n IAnyStateTreeNode,\n Instance,\n cast,\n getSnapshot,\n types,\n} from 'mobx-state-tree'\n\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { readConfObject } from '@jbrowse/core/configuration'\nimport { Region } from '@jbrowse/core/util'\nimport { DrawerWidgetSessionMixin } from './DrawerWidgets'\nimport { IBaseViewModel } from '@jbrowse/core/pluggableElementTypes'\nimport { IBaseViewModelWithDisplayedRegions } from '@jbrowse/core/pluggableElementTypes/models/BaseViewModel'\n\n// locals\nimport { BaseSessionModel, isBaseSession } from './BaseSession'\n\n/**\n * #stateModel MultipleViewsSessionMixin\n * composed of\n * - [BaseSessionModel](../basesessionmodel)\n * - [DrawerWidgetSessionMixin](../drawerwidgetsessionmixin)\n */\nexport function MultipleViewsSessionMixin(pluginManager: PluginManager) {\n return types\n .compose(\n BaseSessionModel(pluginManager),\n DrawerWidgetSessionMixin(pluginManager),\n )\n .props({\n /**\n * #property\n */\n views: types.array(pluginManager.pluggableMstType('view', 'stateModel')),\n })\n .actions(self => ({\n /**\n * #action\n */\n moveViewDown(id: string) {\n const idx = self.views.findIndex(v => v.id === id)\n if (idx !== -1 && idx < self.views.length - 1) {\n self.views.splice(idx, 2, self.views[idx + 1], self.views[idx])\n }\n },\n /**\n * #action\n */\n moveViewUp(id: string) {\n const idx = self.views.findIndex(view => view.id === id)\n if (idx > 0) {\n self.views.splice(idx - 1, 2, self.views[idx], self.views[idx - 1])\n }\n },\n /**\n * #action\n */\n moveViewToTop(id: string) {\n const idx = self.views.findIndex(view => view.id === id)\n self.views = cast([\n self.views[idx],\n ...self.views.filter(view => view.id !== id),\n ])\n },\n\n /**\n * #action\n */\n moveViewToBottom(id: string) {\n const idx = self.views.findIndex(view => view.id === id)\n self.views = cast([\n ...self.views.filter(view => view.id !== id),\n self.views[idx],\n ])\n },\n\n /**\n * #action\n */\n addView(typeName: string, initialState = {}) {\n const typeDefinition = pluginManager.getElementType('view', typeName)\n if (!typeDefinition) {\n throw new Error(`unknown view type ${typeName}`)\n }\n\n const length = self.views.push({\n ...initialState,\n type: typeName,\n })\n return self.views[length - 1]\n },\n\n /**\n * #action\n */\n removeView(view: IBaseViewModel) {\n for (const [, widget] of self.activeWidgets) {\n if (widget.view && widget.view.id === view.id) {\n self.hideWidget(widget)\n }\n }\n self.views.remove(view)\n },\n\n /**\n * #action\n */\n addLinearGenomeViewOfAssembly(assemblyName: string, initialState = {}) {\n return this.addViewOfAssembly(\n 'LinearGenomeView',\n assemblyName,\n initialState,\n )\n },\n\n /**\n * #action\n */\n addViewOfAssembly(\n viewType: string,\n assemblyName: string,\n initialState: Record = {},\n ) {\n const asm = self.assemblies.find(\n s => readConfObject(s, 'name') === assemblyName,\n )\n if (!asm) {\n throw new Error(\n `Could not add view of assembly \"${assemblyName}\", assembly name not found`,\n )\n }\n return this.addView(viewType, {\n ...initialState,\n displayRegionsFromAssemblyName: readConfObject(asm, 'name'),\n })\n },\n\n /**\n * #action\n */\n addViewFromAnotherView(\n viewType: string,\n otherView: IBaseViewModelWithDisplayedRegions,\n initialState: { displayedRegions?: Region[] } = {},\n ) {\n const state = { ...initialState }\n state.displayedRegions = getSnapshot(otherView.displayedRegions)\n return this.addView(viewType, state)\n },\n }))\n}\n\n/** Session mixin MST type for a session that manages multiple views */\nexport type SessionWithMultipleViewsType = ReturnType<\n typeof MultipleViewsSessionMixin\n>\n\n/** Instance of a session with multiple views */\nexport type SessionWithMultipleViews = Instance\n\n/** Type guard for SessionWithMultipleViews */\nexport function isSessionWithMultipleViews(\n session: IAnyStateTreeNode,\n): session is SessionWithMultipleViews {\n return isBaseSession(session) && 'views' in session\n}\n","import { IAnyStateTreeNode, Instance, types } from 'mobx-state-tree'\n\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport {\n AnyConfiguration,\n AnyConfigurationModel,\n} from '@jbrowse/core/configuration'\n\n// locals\nimport { TracksManagerSessionMixin } from './Tracks'\nimport { isBaseSession } from './BaseSession'\n\n/**\n * #stateModel SessionTracksManagerSessionMixin\n */\nexport function SessionTracksManagerSessionMixin(pluginManager: PluginManager) {\n return TracksManagerSessionMixin(pluginManager)\n .named('SessionTracksManagerSessionMixin')\n .props({\n /**\n * #property\n */\n sessionTracks: types.array(\n pluginManager.pluggableConfigSchemaType('track'),\n ),\n })\n .views(self => ({\n /**\n * #getter\n */\n get tracks(): AnyConfigurationModel[] {\n return [...self.sessionTracks, ...self.jbrowse.tracks]\n },\n }))\n .actions(self => {\n const {\n addTrackConf: superAddTrackConf,\n deleteTrackConf: superDeleteTrackConf,\n } = self\n return {\n /**\n * #action\n */\n addTrackConf(trackConf: AnyConfiguration) {\n if (self.adminMode) {\n return superAddTrackConf(trackConf)\n }\n\n const { trackId, type } = trackConf as {\n type: string\n trackId: string\n }\n if (!type) {\n throw new Error(`unknown track type ${type}`)\n }\n const track = self.sessionTracks.find(t => t.trackId === trackId)\n if (track) {\n return track\n }\n const length = self.sessionTracks.push(trackConf)\n return self.sessionTracks[length - 1]\n },\n\n /**\n * #action\n */\n deleteTrackConf(trackConf: AnyConfigurationModel) {\n // try to delete it in the main config if in admin mode\n const found = superDeleteTrackConf(trackConf)\n if (found) {\n return found\n }\n // if not found or not in admin mode, try to delete it in the\n // sessionTracks\n const { trackId } = trackConf\n const idx = self.sessionTracks.findIndex(t => t.trackId === trackId)\n if (idx === -1) {\n return undefined\n }\n return self.sessionTracks.splice(idx, 1)\n },\n }\n })\n}\n\n/** Session mixin MST type for a session that has `sessionTracks` */\nexport type SessionWithSessionTracksType = ReturnType<\n typeof SessionTracksManagerSessionMixin\n>\n\n/** Instance of a session that has `sessionTracks` */\nexport type SessionWithSessionTracks = Instance\n\n/** Type guard for SessionWithSessionTracks */\nexport function isSessionWithSessionTracks(\n thing: IAnyStateTreeNode,\n): thing is SessionWithSessionTracks {\n return isBaseSession(thing) && 'sessionTracks' in thing\n}\n","import { IAnyStateTreeNode, Instance, types } from 'mobx-state-tree'\n\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport {\n AnyConfiguration,\n AnyConfigurationModel,\n} from '@jbrowse/core/configuration'\nimport { BaseSessionModel, isBaseSession } from './BaseSession'\nimport { ReferenceManagementSessionMixin } from './ReferenceManagement'\n\n/**\n * #stateModel TracksManagerSessionMixin\n * composed of\n * - BaseSessionModel\n * - ReferenceManagementSessionMixin\n */\nexport function TracksManagerSessionMixin(pluginManager: PluginManager) {\n return types\n .compose(\n 'TracksManagerSessionMixin',\n BaseSessionModel(pluginManager),\n ReferenceManagementSessionMixin(pluginManager),\n )\n .views(self => ({\n /**\n * #getter\n */\n get tracks(): AnyConfigurationModel[] {\n return self.jbrowse.tracks\n },\n }))\n .actions(self => ({\n /**\n * #action\n */\n addTrackConf(trackConf: AnyConfiguration) {\n return self.jbrowse.addTrackConf(trackConf)\n },\n\n /**\n * #action\n */\n deleteTrackConf(trackConf: AnyConfigurationModel) {\n const callbacksToDereferenceTrack: (() => void)[] = []\n const dereferenceTypeCount: Record = {}\n const referring = self.getReferring(trackConf)\n self.removeReferring(\n referring,\n trackConf,\n callbacksToDereferenceTrack,\n dereferenceTypeCount,\n )\n callbacksToDereferenceTrack.forEach(cb => {\n cb()\n })\n if (self.adminMode) {\n return self.jbrowse.deleteTrackConf(trackConf)\n }\n },\n }))\n}\n\n/** Session mixin MST type for a session that has tracks */\nexport type SessionWithTracksType = ReturnType\n\n/** Instance of a session that has tracks */\nexport type SessionWithTracks = Instance\n\n/** Type guard for SessionWithTracks */\nexport function isSessionWithTracks(\n thing: IAnyStateTreeNode,\n): thing is SessionWithTracks {\n return isBaseSession(thing) && 'tracks' in thing\n}\n","import { types } from 'mobx-state-tree'\n\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { AnyConfiguration } from '@jbrowse/core/configuration'\nimport { BaseSession } from '@jbrowse/product-core'\nimport { BaseAssemblyConfigSchema } from '@jbrowse/core/assemblyManager'\n\n/**\n * #stateModel SessionAssembliesMixin\n * #category root\n */\nexport function SessionAssembliesMixin(\n pluginManager: PluginManager,\n assemblyConfigSchemasType: BaseAssemblyConfigSchema,\n) {\n return types\n .model({\n /**\n * #property\n */\n sessionAssemblies: types.array(assemblyConfigSchemasType),\n })\n .actions(s => {\n const self = s as typeof s & BaseSession\n return {\n /**\n * #action\n */\n addSessionAssembly(conf: AnyConfiguration) {\n const asm = self.sessionAssemblies.find(f => f.name === conf.name)\n if (asm) {\n console.warn(`Assembly ${conf.name} already exists`)\n return asm\n }\n const length = self.sessionAssemblies.push(conf)\n return self.sessionAssemblies[length - 1]\n },\n\n /**\n * #action\n */\n removeSessionAssembly(assemblyName: string) {\n const elt = self.sessionAssemblies.find(a => a.name === assemblyName)\n if (elt) {\n self.sessionAssemblies.remove(elt)\n }\n },\n }\n })\n}\n","import { types } from 'mobx-state-tree'\n\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { AnyConfiguration } from '@jbrowse/core/configuration'\nimport { BaseSession } from '@jbrowse/product-core'\n\n/**\n * #stateModel TemporaryAssembliesMixin\n * #category root\n */\nexport function TemporaryAssembliesMixin(\n pluginManager: PluginManager,\n assemblyConfigSchemasType = types.frozen(),\n) {\n return types\n .model({\n /**\n * #property\n */\n temporaryAssemblies: types.array(assemblyConfigSchemasType),\n })\n\n .actions(s => {\n const self = s as typeof s & BaseSession\n return {\n /**\n * #action\n * used for read vs ref type assemblies.\n */\n addTemporaryAssembly(conf: AnyConfiguration) {\n const asm = self.temporaryAssemblies.find(f => f.name === conf.name)\n if (asm) {\n console.warn(`Assembly ${conf.name} was already existing`)\n return asm\n }\n const length = self.temporaryAssemblies.push(conf)\n return self.temporaryAssemblies[length - 1]\n },\n\n /**\n * #action\n */\n removeTemporaryAssembly(name: string) {\n const elt = self.temporaryAssemblies.find(a => a.name === name)\n if (elt) {\n self.temporaryAssemblies.remove(elt)\n }\n },\n }\n })\n}\n","import { types } from 'mobx-state-tree'\n\nimport {\n ConnectionManagementSessionMixin,\n SessionWithSessionTracks,\n} from '@jbrowse/product-core'\nimport type { BaseSession } from '@jbrowse/product-core'\n\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { AnyConfigurationModel } from '@jbrowse/core/configuration'\nimport { BaseConnectionConfigModel } from '@jbrowse/core/pluggableElementTypes/models/baseConnectionConfig'\n\n/**\n * #stateModel WebSessionConnectionsMixin\n * #category session\n */\nexport function WebSessionConnectionsMixin(pluginManager: PluginManager) {\n return types\n .compose(\n 'SessionConnectionsManagement',\n ConnectionManagementSessionMixin(pluginManager),\n types.model({\n /**\n * #property\n */\n sessionConnections: types.array(\n pluginManager.pluggableConfigSchemaType('connection'),\n ),\n }),\n )\n .actions(s => {\n const self = s as typeof s & BaseSession & SessionWithSessionTracks\n const superDeleteConnection = self.deleteConnection\n const superAddConnectionConf = self.addConnectionConf\n return {\n addConnectionConf(connectionConf: BaseConnectionConfigModel) {\n if (self.adminMode) {\n return superAddConnectionConf(connectionConf)\n }\n const { connectionId, type } = connectionConf\n if (!type) {\n throw new Error(`unknown connection type ${type}`)\n }\n const connection = self.sessionTracks.find(\n c => c.connectionId === connectionId,\n )\n if (connection) {\n return connection\n }\n const length = self.sessionConnections.push(connectionConf)\n return self.sessionConnections[length - 1]\n },\n\n deleteConnection(configuration: AnyConfigurationModel) {\n let deletedConn: unknown\n if (self.adminMode) {\n deletedConn = superDeleteConnection(configuration)\n }\n if (!deletedConn) {\n const { connectionId } = configuration\n const idx = self.sessionConnections.findIndex(\n c => c.connectionId === connectionId,\n )\n if (idx === -1) {\n return undefined\n }\n return self.sessionConnections.splice(idx, 1)\n }\n return deletedConn\n },\n }\n })\n}\n","import { types } from 'mobx-state-tree'\n\n/**\n * #stateModel AppFocusMixin\n * #category session\n */\nexport function AppFocusMixin() {\n return types\n .model({\n /**\n * #property\n * used to keep track of which view is in focus\n */\n focusedViewId: types.maybe(types.string),\n })\n .actions(self => ({\n /**\n * #action\n */\n setFocusedViewId(viewId: string) {\n self.focusedViewId = viewId\n },\n }))\n}\n","import { AbstractSessionModel } from '@jbrowse/core/util/types'\nimport { Instance } from 'mobx-state-tree'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { BaseAssemblyConfigSchema } from '@jbrowse/core/assemblyManager'\nimport { BaseWebSession } from '@jbrowse/web-core'\n\n/**\n * #stateModel JBrowseWebSessionModel\n * extends [BaseWebSession](../basewebsession)\n */\nexport default function sessionModelFactory({\n pluginManager,\n assemblyConfigSchema,\n}: {\n pluginManager: PluginManager\n assemblyConfigSchema: BaseAssemblyConfigSchema\n}) {\n return BaseWebSession({ pluginManager, assemblyConfigSchema })\n}\n\nexport type WebSessionModelType = ReturnType\nexport type WebSessionModel = Instance\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction z(x: Instance): AbstractSessionModel {\n // this function's sole purpose is to get typescript to check\n // that the session model implements all of AbstractSessionModel\n return x\n}\n","import PluginManager from '@jbrowse/core/PluginManager'\nimport { doAnalytics } from '@jbrowse/core/util/analytics'\n\n// locals\nimport JBrowseRootModelFactory from './rootModel/rootModel'\nimport sessionModelFactory from './sessionModel'\nimport corePlugins from './corePlugins'\nimport { SessionLoaderModel, loadSessionSpec } from './SessionLoader'\n\nexport function createPluginManager(self: SessionLoaderModel) {\n // it is ready when a session has loaded and when there is no config\n // error Assuming that the query changes self.sessionError or\n // self.sessionSnapshot or self.blankSession\n const pluginManager = new PluginManager([\n ...corePlugins.map(P => ({\n plugin: new P(),\n metadata: { isCore: true },\n })),\n ...self.runtimePlugins.map(({ plugin: P, definition }) => ({\n plugin: new P(),\n definition,\n metadata: {\n // @ts-expect-error\n url: definition.url,\n },\n })),\n ...self.sessionPlugins.map(({ plugin: P, definition }) => ({\n plugin: new P(),\n definition,\n metadata: {\n // @ts-expect-error\n url: definition.url,\n },\n })),\n ])\n pluginManager.createPluggableElements()\n const RootModel = JBrowseRootModelFactory({\n pluginManager,\n sessionModelFactory,\n adminMode: !!self.adminKey,\n })\n\n if (!self.configSnapshot) {\n return undefined\n }\n const rootModel = RootModel.create(\n {\n jbrowse: self.configSnapshot,\n configPath: self.configPath,\n },\n { pluginManager },\n )\n\n // @ts-expect-error\n if (!self.configSnapshot.configuration?.rpc?.defaultDriver) {\n rootModel.jbrowse.configuration.rpc.defaultDriver.set('WebWorkerRpcDriver')\n }\n\n let afterInitializedCb = () => {}\n\n // in order: saves the previous autosave for recovery, tries to load the\n // local session if session in query, or loads the default session\n try {\n if (self.sessionError) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw self.sessionError\n } else if (self.sessionSnapshot) {\n rootModel.setSession(self.sessionSnapshot)\n } else if (self.sessionSpec) {\n // @ts-expect-error\n afterInitializedCb = loadSessionSpec(self.sessionSpec, pluginManager)\n } else if (rootModel.jbrowse.defaultSession?.views?.length) {\n rootModel.setDefaultSession()\n }\n } catch (e) {\n rootModel.setDefaultSession()\n const str = `${e}`\n const m = str.replace('[mobx-state-tree] ', '').replace(/\\(.+/, '')\n const r = m.length > 1000 ? `${m.slice(0, 1000)}...see more in console` : m\n const s = r.startsWith('Error:') ? r : `Error: ${r}`\n rootModel.session?.notifyError(\n `${s}. If you received this URL from another user, request that they send you a session generated with the \"Share\" button instead of copying and pasting their URL`,\n self.sessionError,\n self.sessionSnapshot,\n )\n console.error(e)\n }\n\n // send analytics\n doAnalytics(rootModel, self.initialTimestamp, self.sessionQuery)\n\n pluginManager.setRootModel(rootModel)\n pluginManager.configure()\n afterInitializedCb()\n return pluginManager\n}\n","import { readConfObject } from '../configuration'\nimport { isElectron } from '../util'\n\ntype AnalyticsObj = Record\n\ninterface Track {\n type: string\n}\n\nexport async function writeAWSAnalytics(\n rootModel: any,\n initialTimeStamp: number,\n sessionQuery?: string | null,\n) {\n try {\n const url = 'https://analytics.jbrowse.org/api/v1'\n\n const multiAssemblyTracks = rootModel.jbrowse.tracks.filter(\n (track: any) => (readConfObject(track, 'assemblyNames') || []).length > 1,\n ).length\n\n const savedSessionCount = Object.keys(localStorage).filter(name =>\n name.includes('localSaved-'),\n ).length\n\n const { jbrowse: config, session, version: ver } = rootModel\n const { tracks, assemblies, plugins } = config\n\n // stats to be recorded in db\n const stats: AnalyticsObj = {\n ver,\n 'plugins-count': plugins?.length || 0,\n 'plugin-names': plugins?.map((p: any) => p.name).join(','),\n 'assemblies-count': assemblies.length,\n 'tracks-count': tracks.length,\n 'session-tracks-count': session?.sessionTracks.length || 0,\n 'open-views': session?.views.length || 0,\n 'synteny-tracks-count': multiAssemblyTracks,\n 'saved-sessions-count': savedSessionCount,\n\n // field if existing session param in query before autogenerated param\n 'existing-session-param-type': sessionQuery?.split('-')[0] || 'none',\n\n // screen geometry\n 'scn-h': window.screen.height,\n 'scn-w': window.screen.width,\n\n // window geometry\n 'win-h': window.innerHeight,\n 'win-w': window.innerWidth,\n\n electron: isElectron,\n loadTime: (Date.now() - initialTimeStamp) / 1000,\n jb2: true,\n }\n\n // stringifies the track type counts, gets processed in lambda\n tracks.forEach((track: Track) => {\n const key = `track-types-${track.type}`\n stats[key] = stats[key] + 1 || 1\n })\n\n // stringifies the session track type counts, gets processed in lambda\n session?.sessionTracks.forEach((track: Track) => {\n const key = `sessionTrack-types-${track.type}`\n stats[key] = stats[key] + 1 || 1\n })\n\n // put stats into a query string for get request\n const qs = Object.keys(stats)\n .map(key => `${key}=${stats[key]}`)\n .join('&')\n\n await fetch(`${url}?${qs}`)\n } catch (e) {\n console.error('Failed to write analytics to AWS.', e)\n }\n}\n\nexport async function writeGAAnalytics(\n rootModel: any,\n initialTimestamp: number,\n) {\n const jbrowseUser = 'UA-7115575-5'\n const stats: AnalyticsObj = {\n 'tracks-count': rootModel.jbrowse.tracks.length, // this is all possible tracks\n ver: rootModel.version,\n electron: isElectron,\n loadTime: Date.now() - initialTimestamp,\n pluginNames:\n rootModel.jbrowse.plugins?.map((plugin: any) => plugin.name) || '',\n }\n\n // create script\n let analyticsScript =\n \"(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\"\n analyticsScript +=\n '(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),'\n analyticsScript +=\n 'm=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)'\n analyticsScript +=\n \"})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');\"\n analyticsScript += `ga('create', '${jbrowseUser}', 'auto', 'jbrowseTracker');`\n\n const gaData: AnalyticsObj = {}\n const googleDimensions = 'tracks-count ver electron loadTime pluginNames'\n\n googleDimensions.split(/\\s+/).forEach((key, index) => {\n gaData[`dimension${index + 1}`] = stats[key]\n })\n\n gaData.metric1 = Math.round(stats.loadTime)\n\n analyticsScript += `ga('jbrowseTracker.send', 'pageview',${JSON.stringify(\n gaData,\n )});`\n\n const analyticsScriptNode = document.createElement('script')\n analyticsScriptNode.innerHTML = analyticsScript\n\n document.getElementsByTagName('head')[0]!.append(analyticsScriptNode)\n}\n\nexport function doAnalytics(\n rootModel: any,\n initialTimestamp: number,\n initialSessionQuery: string | null | undefined,\n) {\n if (\n rootModel &&\n !readConfObject(rootModel.jbrowse.configuration, 'disableAnalytics')\n ) {\n // ok if these are unhandled\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n writeAWSAnalytics(rootModel, initialTimestamp, initialSessionQuery)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n writeGAAnalytics(rootModel, initialTimestamp)\n }\n}\n","import React, { lazy, useEffect, useState, Suspense } from 'react'\nimport { observer } from 'mobx-react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport {\n StringParam,\n QueryParamProvider,\n useQueryParam,\n} from 'use-query-params'\nimport { WindowHistoryAdapter } from 'use-query-params/adapters/window'\nimport { FatalErrorDialog, LoadingEllipses } from '@jbrowse/core/ui'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport '@fontsource/roboto'\n\n// locals\nimport Loading from './Loading'\nimport JBrowse from './JBrowse'\nimport factoryReset from '../factoryReset'\nimport SessionLoader, {\n SessionLoaderModel,\n SessionTriagedInfo,\n} from '../SessionLoader'\nimport StartScreenErrorMessage from './StartScreenErrorMessage'\nimport { createPluginManager } from '../createPluginManager'\nimport type { WebRootModel } from '../rootModel/rootModel'\n\nconst ConfigWarningDialog = lazy(() => import('./ConfigWarningDialog'))\nconst SessionWarningDialog = lazy(() => import('./SessionWarningDialog'))\nconst StartScreen = lazy(() => import('./StartScreen'))\n\nfunction normalize(param: T | null | undefined) {\n return param === null ? undefined : param\n}\n\nexport function Loader({\n initialTimestamp = Date.now(),\n}: {\n initialTimestamp?: number\n}) {\n // return value if defined, else convert null to undefined for use with\n // types.maybe\n\n const Str = StringParam\n\n const [config] = useQueryParam('config', Str)\n const [session] = useQueryParam('session', Str)\n const [adminKey] = useQueryParam('adminKey', Str)\n const [password, setPassword] = useQueryParam('password', Str)\n const [loc, setLoc] = useQueryParam('loc', Str)\n const [sessionTracks, setSessionTracks] = useQueryParam('sessionTracks', Str)\n const [assembly, setAssembly] = useQueryParam('assembly', Str)\n const [tracks, setTracks] = useQueryParam('tracks', Str)\n const [highlight, setHighlight] = useQueryParam('highlight', Str)\n const [nav, setNav] = useQueryParam('nav', Str)\n const [tracklist, setTrackList] = useQueryParam('tracklist', Str)\n\n const loader = SessionLoader.create({\n configPath: normalize(config),\n sessionQuery: normalize(session),\n password: normalize(password),\n adminKey: normalize(adminKey),\n loc: normalize(loc),\n assembly: normalize(assembly),\n tracks: normalize(tracks),\n sessionTracks: normalize(sessionTracks),\n tracklist: JSON.parse(normalize(tracklist) || 'false'),\n highlight: normalize(highlight),\n nav: JSON.parse(normalize(nav) || 'true'),\n initialTimestamp,\n })\n\n useEffect(() => {\n setLoc(undefined, 'replaceIn')\n setTracks(undefined, 'replaceIn')\n setAssembly(undefined, 'replaceIn')\n setPassword(undefined, 'replaceIn')\n setSessionTracks(undefined, 'replaceIn')\n setTrackList(undefined, 'replaceIn')\n setNav(undefined, 'replaceIn')\n setHighlight(undefined, 'replaceIn')\n }, [\n setAssembly,\n setLoc,\n setNav,\n setTrackList,\n setTracks,\n setPassword,\n setSessionTracks,\n setHighlight,\n ])\n\n return \n}\n\nconst SessionTriaged = observer(function ({\n sessionTriaged,\n loader,\n}: {\n loader: SessionLoaderModel\n sessionTriaged: SessionTriagedInfo\n}) {\n return (\n \n {sessionTriaged.origin === 'session' ? (\n {\n loader.setSessionTriaged(undefined)\n }}\n />\n ) : (\n {\n loader.setSessionTriaged(undefined)\n }}\n />\n )}\n \n )\n})\n\nconst PluginManagerLoaded = observer(function ({\n pluginManager,\n}: {\n pluginManager: PluginManager\n}) {\n const { rootModel } = pluginManager\n return !rootModel?.session ? (\n }>\n \n \n ) : (\n \n )\n})\n\nconst Renderer = observer(function ({\n loader,\n}: {\n loader: SessionLoaderModel\n}) {\n const { configError, ready, sessionTriaged } = loader\n const [pluginManager, setPluginManager] = useState()\n const [error, setError] = useState()\n\n useEffect(() => {\n let pm: PluginManager | undefined\n try {\n if (!ready) {\n return\n }\n pm = createPluginManager(loader)\n setPluginManager(pm)\n } catch (e) {\n console.error(e)\n setError(e)\n }\n }, [loader, ready])\n\n const err = configError || error\n if (err) {\n return \n } else if (sessionTriaged) {\n return \n } else if (pluginManager) {\n return \n } else {\n return \n }\n})\n\nfunction LoaderWrapper({ initialTimestamp }: { initialTimestamp: number }) {\n return (\n (\n \n )}\n >\n \n \n \n \n )\n}\n\nexport default LoaderWrapper\n","export default async function factoryReset() {\n // @ts-expect-error\n window.location = window.location.pathname\n}\n","import { toUrlSafeB64 } from './util'\n\n// from https://stackoverflow.com/questions/1349404/\nfunction generateUID(length: number) {\n return window\n .btoa(\n [...window.crypto.getRandomValues(new Uint8Array(length * 2))]\n .map(b => String.fromCharCode(b))\n .join(''),\n )\n .replaceAll(/[+/]/g, '')\n .slice(0, length)\n}\n\nconst encrypt = async (text: string, password: string) => {\n const AES = await import('crypto-js/aes')\n return AES.encrypt(text, password).toString()\n}\n\nconst decrypt = async (text: string, password: string) => {\n const AES = await import('crypto-js/aes')\n const Utf8 = await import('crypto-js/enc-utf8')\n const bytes = AES.decrypt(text, password)\n return bytes.toString(Utf8)\n}\n\nfunction getErrorMsg(err: string) {\n try {\n const obj = JSON.parse(err)\n return obj.message\n } catch (e) {\n return err\n }\n}\n// writes the encrypted session, current datetime, and referer to DynamoDB\nexport async function shareSessionToDynamo(\n session: unknown,\n url: string,\n referer: string,\n) {\n const sess = await toUrlSafeB64(JSON.stringify(session))\n const password = generateUID(5)\n const encryptedSession = await encrypt(sess, password)\n\n const data = new FormData()\n data.append('session', encryptedSession)\n data.append('dateShared', `${Date.now()}`)\n data.append('referer', referer)\n\n const response = await fetch(`${url}share`, {\n method: 'POST',\n mode: 'cors',\n body: data,\n })\n\n if (!response.ok) {\n const err = await response.text()\n throw new Error(getErrorMsg(err))\n }\n const json = await response.json()\n return {\n json,\n encryptedSession,\n password,\n }\n}\n\nexport async function readSessionFromDynamo(\n baseUrl: string,\n sessionQueryParam: string,\n password: string,\n signal?: AbortSignal,\n) {\n const sessionId = sessionQueryParam.split('share-')[1]!\n const url = `${baseUrl}?sessionId=${encodeURIComponent(sessionId)}`\n const response = await fetch(url, {\n signal,\n })\n\n if (!response.ok) {\n const err = await response.text()\n throw new Error(getErrorMsg(err))\n }\n\n const json = await response.json()\n return decrypt(json.session, password)\n}\n","import {\n PluginDefinition,\n isCJSPluginDefinition,\n isESMPluginDefinition,\n isUMDPluginDefinition,\n} from '@jbrowse/core/PluginLoader'\nimport {\n getPropertyMembers,\n getChildType,\n isArrayType,\n isModelType,\n isReferenceType,\n isValidReference,\n isMapType,\n IAnyType,\n IAnyStateTreeNode,\n Instance,\n} from 'mobx-state-tree'\nimport type { types } from 'mobx-state-tree'\n\n/**\n * Pad the end of a base64 string with \"=\" to make it valid\n * @param b64 - unpadded b64 string\n */\nexport function b64PadSuffix(b64: string): string {\n let num = 0\n const mo = b64.length % 4\n switch (mo) {\n case 3:\n num = 1\n break\n case 2:\n num = 2\n break\n case 0:\n num = 0\n break\n default:\n throw new Error('base64 not a valid length')\n }\n return b64 + '='.repeat(num)\n}\n\n/**\n * Decode and inflate a url-safe base64 to a string\n * See {@link https://en.wikipedia.org/wiki/Base64#URL_applications}\n * @param b64 - a base64 string to decode and inflate\n */\nexport async function fromUrlSafeB64(b64: string) {\n const originalB64 = b64PadSuffix(\n b64.replaceAll('-', '+').replaceAll('_', '/'),\n )\n const { toByteArray } = await import('base64-js')\n const { inflate } = await import('pako')\n const bytes = toByteArray(originalB64)\n const inflated = inflate(bytes)\n return new TextDecoder().decode(inflated)\n}\n\n/**\n * Compress and encode a string as url-safe base64\n * See {@link https://en.wikipedia.org/wiki/Base64#URL_applications}\n * @param str- a string to compress and encode\n */\nexport async function toUrlSafeB64(str: string) {\n const bytes = new TextEncoder().encode(str)\n const { deflate } = await import('pako')\n const { fromByteArray } = await import('base64-js')\n const deflated = deflate(bytes)\n const encoded = fromByteArray(deflated)\n const pos = encoded.indexOf('=')\n return pos > 0\n ? encoded.slice(0, pos).replaceAll('+', '-').replaceAll('/', '_')\n : encoded.replaceAll('+', '-').replaceAll('/', '_')\n}\n\ntype MSTArray = Instance>\ntype MSTMap = Instance>\n\n// attempts to remove undefined references from the given MST model. can only actually\n// remove them from arrays and maps. throws MST undefined ref error if it encounters\n// undefined refs in model properties\nexport function filterSessionInPlace(\n node: IAnyStateTreeNode | undefined,\n type: IAnyType,\n) {\n // makes it work with session sharing\n if (node === undefined) {\n return\n }\n if (isArrayType(type)) {\n const array = node as MSTArray\n const childType = getChildType(node)\n if (isReferenceType(childType)) {\n // filter array elements\n for (let i = 0; i < array.length; ) {\n if (!isValidReference(() => array[i])) {\n array.splice(i, 1)\n } else {\n i += 1\n }\n }\n }\n array.forEach(el => {\n filterSessionInPlace(el, childType)\n })\n } else if (isMapType(type)) {\n const map = node as MSTMap\n const childType = getChildType(map)\n if (isReferenceType(childType)) {\n // filter the map members\n for (const key in map.keys()) {\n if (!isValidReference(() => map.get(key))) {\n map.delete(key)\n }\n }\n }\n map.forEach(child => {\n filterSessionInPlace(child, childType)\n })\n } else if (isModelType(type)) {\n // iterate over children\n const { properties } = getPropertyMembers(node)\n\n Object.entries(properties).forEach(([pname, ptype]) => {\n // @ts-ignore\n filterSessionInPlace(node[pname], ptype)\n })\n }\n}\n\nexport function addRelativeUris(\n config: Record | null,\n base: URL,\n) {\n if (typeof config === 'object' && config !== null) {\n for (const key of Object.keys(config)) {\n if (typeof config[key] === 'object' && config[key] !== null) {\n addRelativeUris(config[key] as Record, base)\n } else if (key === 'uri') {\n config.baseUri = base.href\n }\n }\n }\n}\n\nexport interface Root {\n configuration?: Record\n}\n\n// raw readConf alternative for before conf is initialized\nexport function readConf({ configuration }: Root, attr: string, def: string) {\n return configuration?.[attr] || def\n}\n\nexport async function fetchPlugins() {\n const response = await fetch('https://jbrowse.org/plugin-store/plugins.json')\n if (!response.ok) {\n throw new Error(\n `HTTP ${response.status} ${response.statusText} fetching plugins`,\n )\n }\n return response.json() as Promise<{ plugins: PluginDefinition[] }>\n}\n\nexport async function checkPlugins(pluginsToCheck: PluginDefinition[]) {\n if (pluginsToCheck.length === 0) {\n return true\n }\n const storePlugins = await fetchPlugins()\n return pluginsToCheck.every(p => {\n if (isUMDPluginDefinition(p)) {\n return storePlugins.plugins.some(\n pp =>\n isUMDPluginDefinition(p) &&\n (('url' in pp && 'url' in p && p.url === pp.url) ||\n ('umdUrl' in pp && 'umdUrl' in p && p.umdUrl === pp.umdUrl)),\n )\n }\n if (isESMPluginDefinition(p)) {\n return storePlugins.plugins.some(\n pp =>\n // @ts-expect-error\n isESMPluginDefinition(p) && 'esmUrl' in p && p.esmUrl === pp.esmUrl,\n )\n }\n if (isCJSPluginDefinition(p)) {\n return storePlugins.plugins.some(\n // @ts-expect-error\n pp => isCJSPluginDefinition(p) && p.cjsUrl === pp.cjsUrl,\n )\n }\n return false\n })\n}\n\nexport function removeAttr(obj: Record, attr: string) {\n for (const prop in obj) {\n if (prop === attr) {\n delete obj[prop]\n } else if (typeof obj[prop] === 'object') {\n removeAttr(obj[prop] as Record, attr)\n }\n }\n return obj\n}\n"],"names":["isUMDPluginDefinition","def","undefined","umdUrl","url","umdLoc","name","isESMPluginDefinition","esmUrl","esmLoc","isCJSPluginDefinition","cjsUrl","pluginDescriptionString","pluginDefinition","uri","PluginLoader","definitions","constructor","defs","args","this","fetchESM","fetchCJS","JSON","parse","stringify","loadCJSPlugin","baseUri","parsedUrl","URL","protocol","Error","href","loadESMPlugin","plugin","loadUMDPlugin","moduleName","umdName","jest","async","scriptUrl","Boolean","globalThis","src","Promise","resolve","reject","domLoadScript","err","script","importScripts","loadScript","default","Plugin","loadPlugin","isElectron","installGlobalReExports","target","JBrowseExports","Object","fromEntries","entries","ReExports","map","module","load","all","definition","adapterConfigCacheKey","conf","idMaker","adapterCache","getAdapter","pluginManager","sessionId","adapterConfigSnapshot","cacheKey","adapterType","type","dataAdapterType","getAdapterType","adapterConfig","configSchema","create","getSubAdapter","bind","dataAdapter","getAdapterClass","sessionIds","Set","cacheEntry","add","freeAdapterResources","specification","deleteCount","specKeys","keys","length","forEach","delete","size","values","regions","region","refName","freeResources","abortSignalCounter","abortSignalIds","WeakMap","serializeAbortSignal","signal","callfunc","abortSignalId","get","set","addEventListener","signalId","isRemoteAbortSignal","thing","surrogateAbortControllers","Map","deserializeAbortSignal","surrogateAbortController","AbortController","CascadingContext","React","parentPopupState","rootPopupState","CascadingMenuItem","onClick","closeAfterItemClick","props","useContext","MenuItem","_extends","event","close","CascadingSubmenu","title","Icon","inset","popupId","popupState","usePopupState","variant","bindHover","bindFocus","ListItemIcon","ListItemText","primary","ChevronRight","CascadingSubmenuHover","anchorOrigin","vertical","horizontal","transformOrigin","onMenuItemClick","menuItems","classes","context","useMemo","Provider","value","HoverMenu","bindMenu","CascadingMenu","Menu","EndDecoration","item","MenuItemEndDecoration","checked","disabled","CascadingMenuList","hasIcon","some","m","icon","sort","a","b","priority","idx","key","label","subMenu","Divider","component","ListSubheader","callback","secondary","subLabel","style","flexGrow","minWidth","rest","useStyles","makeStyles","theme","closeButton","position","right","spacing","top","color","palette","grey","DialogError","error","width","margin","ErrorMessage","observer","header","children","onClose","useTheme","MUIDialog","ScopedCssBaseline","DialogTitle","SanitizedHTML","html","IconButton","className","CloseIcon","ErrorBoundary","FallbackComponent","ThemeProvider","createTheme","components","MuiInputBase","styleOverrides","input","boxSizing","inputBase","typography","left","whiteSpace","visibility","inputRoot","padding","inputFocused","borderStyle","borderWidth","ref","setValue","other","ref2","useMeasure","editedValue","setEditedValue","useState","inputNode","setInputNode","blur","setBlur","useEffect","val","Typography","InputBase","inputRef","node","inputProps","root","focused","onChange","onKeyDown","onBlur","ErrorMessageStackTraceDialog","lazy","bg","background","divider","border","iconFloat","float","marginLeft","ErrorButtons","onReset","showStack","setShowStack","Tooltip","ReportIcon","RefreshIcon","Suspense","fallback","str","str2","indexOf","str3","slice","snapshotError","trim","findStr","match","exec","match2","parseError","RedErrorMessageBox","FactoryResetDialog","open","onFactoryReset","handleDialogClose","action","Dialog","DialogContent","DialogContentText","DialogActions","Button","ContentCopy","SvgIcon","d","Indexing","TrackSelector","Cable","getColors","midnight","forrest","grape","mandarin","gray","Logomark","viewBox","LogoFull","Text","colors","fill","transform","paper","overflowY","overflowX","minHeight","maxWidth","maxHeight","outline","menuItemEndDecoration","height","ArrowRightIcon","CheckBoxIcon","CheckBoxOutlineBlankIcon","RadioButtonCheckedIcon","RadioButtonUncheckedIcon","checkIfValid","MenuPage","subMenuAnchorEl","setSubMenuAnchorEl","openSubMenuIdx","setOpenSubMenuIdx","isSubMenuOpen","setIsSubMenuOpen","selectedMenuItemIdx","setSelectedMenuItemIdx","setPosition","paperRef","useRef","anchorEl","shouldSubMenuBeOpen","timer","setTimeout","clearTimeout","rect","getBoundingClientRect","menuItem","menuItemStyle","ListContents","MenuList","autoFocusItem","dense","endDecoration","MUIMenuItem","id","String","selected","onMouseMove","e","currentTarget","document","activeElement","focus","currentIdx","findLastIndex","findPreviousValidIdx","findIndex","findNextValidIdx","Grow","in","Paper","elevation","Popover","horizontalHandle","cursor","verticalHandle","flexbox_verticalHandle","alignSelf","flexbox_horizontalHandle","onDrag","flexbox","originalClassName","onMouseDown","mouseDragging","setMouseDragging","initialPosition","prevPos","cx","mouseMove","preventDefault","pos","clientX","clientY","totalDistance","current","lastFrameDistance","mouseUp","window","removeEventListener","model","handleClose","clearView","autoFocus","added","full","RegExp","tag","join","pre","linkify","test","escapeHTML","dompurify","tagName","setAttribute","dangerouslySetInnerHTML","__html","refTheme","forest","augmentColor","main","bases","A","green","C","blue","G","orange","T","red","framesCDS","frames","stopCodon","startCodon","stockTheme","mode","tertiary","quaternary","highlight","MuiLink","defaultThemes","lightStock","lightMinimal","darkMinimal","darkStock","MuiAppBar","defaultProps","enableColorOnDark","overwriteArrayMerge","_","sourceArray","createJBrowseBaseTheme","themeP","fontSize","MuiButton","text","MuiAccordion","disableGutters","slotProps","transition","timeout","unmountOnExit","MuiFilledInput","MuiFormControl","MuiFormHelperText","MuiIconButton","MuiAutocomplete","MuiInputLabel","MuiToolbar","MuiListItem","MuiOutlinedInput","MuiFab","backgroundColor","MuiTable","MuiPopover","transitionDuration","MuiMenu","MuiMenuItem","MuiTextField","MuiCheckbox","MuiRadio","MuiFormLabel","MuiAccordionSummary","content","contrastText","MuiToggleButtonGroup","deepmerge","arrayMerge","createJBrowseTheme","configTheme","themes","themeName","augmentTheme","augmentThemePlus","importFormEntry","session","InputProps","TextFieldProps","localStorageKey","helperText","assemblyNames","assemblyManager","config","URLSearchParams","location","search","lastSelected","setLastSelected","useLocalStorage","host","pathname","selection","includes","TextField","select","assembly","displayName","getConf","ToggleButtonWithTooltip","ToggleButton","shorten","len","Math","max","description","rootModel","setLocation","fileOrUrl","isUriLocation","toggleButtonValue","setToggleButtonValue","internetAccountId","accounts","isAppRootModel","internetAccounts","filter","f","recentlyUsedInternetAccounts","setRecentlyUsedInternetAccounts","arr","s","shownAccounts","hiddenAccounts","setAnchorEl","selectedAccount","setLocationWithAccount","useCallback","locationInput","UrlChooser","selectorLabel","LocalFileChooser","SelectorComponent","Box","display","InputLabel","shrink","flexDirection","ToggleButtonGroup","exclusive","_event","newState","notEmpty","toggleContents","ArrowDropDownIcon","FormHelperText","highResolutionScaling","imageData","blockKey","showSoftClip","done","setDone","featureCanvas","canvas","getContext","drawImageOntoCanvasContext","QuickLRU","options","super","maxSize","TypeError","maxAge","Number","POSITIVE_INFINITY","onEviction","cache","oldCache","_size","_emitEvictions","_deleteIfExpired","expiry","Date","now","_getOrDeleteIfExpired","_getItemValue","_peek","_set","_moveToRecent","_entriesAscending","has","peek","deleted","clear","resize","newSize","items","removeCount","Symbol","iterator","entriesDescending","i","entriesAscending","oldCacheSize","min","callbackFunction","thisArgument","call","toStringTag","useDebounce","delay","debouncedValue","setDebouncedValue","handle","useWidthSetter","view","isAlive","requestAnimationFrame","setWidth","parseInt","useDebouncedCallback","wait","argsRef","findParentThat","predicate","hasParent","currentNode","getParent","springAnimate","fromValue","toValue","onFinish","precision","tension","friction","clamp","animationFrameId","update","animation","time","lastPosition","lastTime","velocity","lastVelocity","numSteps","floor","isVelocity","abs","isDisplacement","cancelAnimationFrame","findParentThatIs","getSession","isSessionModel","getContainingView","isViewModel","getContainingTrack","isTrackModel","getContainingDisplay","isDisplayModel","assembleLocString","assembleLocStringFast","toLocale","cb","n","assemblyName","start","end","reversed","assemblyNameString","startString","endString","rev","parseLocStringOneBased","locString","isValidRefName","endsWith","replace","assemblyMatch","assemblyName2","location2","startsWith","lastColonIdx","lastIndexOf","prefix","suffix","rangeMatch","singleMatch","replaceAll","separator","parseLocString","parsed","compareLocs","locA","locB","assemblyComp","localeCompare","refComp","startComp","endComp","compareLocStrings","num","bpToPx","bp","bpPerPx","round","oneEightyOverPi","PI","piOverOneEighty","radToDeg","radians","degToRad","degrees","polarToCartesian","rho","theta","cos","sin","cartesianToPolar","x","y","sqrt","atan","featureSpanPx","feature","bpSpanPx","leftBp","rightBp","iterMap","iter","func","sizeHint","results","Array","from","counter","array","l","findLast","makeAbortableReaction","self","dataFunction","asyncReactionFunction","reactionOptions","startedFunction","successFunction","errorFunction","inProgress","handleError","isAbortException","console","addDisposer","reaction","data","mobxReactionHandle","aborted","abort","thisInProgress","result","checkAbortSignal","renameRegionIfNeeded","refNameMap","isStateTreeNode","newRef","getSnapshot","originalRefName","renameRegionsIfNeeded","assemblyMaps","getRefNameMapForAdapter","minmax","short","coord","oob","useAssemblyName","navigator","userAgent","revcom","seqString","reverse","complement","split","complementRegex","complementTable","S","w","r","N","K","Y","V","M","h","k","g","t","W","X","v","B","H","c","D","R","rIC","requestIdleCallback","widths","measureText","total","code","charCodeAt","getFrame","strand","phase","defaultStarts","defaultStops","defaultCodonTable","TCA","TCC","TCG","TCT","TTC","TTT","TTA","TTG","TAC","TAT","TAA","TAG","TGC","TGT","TGA","TGG","CTA","CTC","CTG","CTT","CCA","CCC","CCG","CCT","CAC","CAT","CAA","CAG","CGA","CGC","CGG","CGT","ATA","ATC","ATT","ATG","ACA","ACC","ACG","ACT","AAC","AAT","AAA","AAG","AGC","AGT","AGA","AGG","GTA","GTC","GTG","GTT","GCA","GCC","GCG","GCT","GAC","GAT","GAA","GAG","GGA","GGC","GGG","GGT","generateCodonTable","table","tempCodonTable","codon","aa","nucs","nuc","charAt","toUpperCase","toLowerCase","n0","j","n1","n2","updateStatus","msg","fn","res","hashCode","hash","objectHash","obj","bytesForRegions","index","blocksForRange","flat","block","minv","blockPosition","maxv","reduce","isSupportedIndexingAdapter","getBpDisplayStr","totalBp","parseFloat","toPrecision","toLocaleString","getTickDisplayStr","toFixed","getViewParams","exportSVG","dynamicBlocks","staticBlocks","offsetPx","contentBlocks","staticblock","staticblock1","offsetPx1","getLayoutId","layoutId","initialValue","storedValue","setStoredValue","localStorage","getItem","valueToStore","Function","setItem","getUriLink","getStr","isObject","coarseStripHTML","measureGridWidth","elements","stripHTML","element","getEnv","getEnvMST","localStorageGetItem","localStorageSetItem","init","NEGATIVE_INFINITY","entry","sum","avg","groupBy","push","mergeIntervals","intervals","stack","at","pop","gatherOverlaps","memo","flatMap","group","stripAlpha","colord","alpha","toHex","getStrokeProps","strokeOpacity","stroke","getFillProps","fillOpacity","renderToStaticMarkup","createRootFn","div","createElement","flushSync","render","innerHTML","isGzip","buf","getTrackAssemblyNames","track","getConfAssemblyNames","configuration","trackAssemblyNames","readConfObject","parent","getRpcSessionId","thisNode","highestRpcSessionId","isRoot","rpcSessionId","getParentRenderProps","renderProps","UNKNOWN","UNSUPPORTED","blobMap","getBlob","getBlobMap","setBlobMap","storeBlobLocation","blobId","blob","locationType","makeIndex","localPath","makeIndexType","typeA","typeB","getFileName","guessAdapter","file","adapterHint","adapter","evaluateExtensionPoint","_file","_index","_adapterHint","adapterGuesser","guessTrackType","trackType","_adapterName","trackTypeGuesser","generateUnsupportedTrackConf","trackName","trackUrl","categories","category","trackId","generateUnknownTrackConf","getTrackName","asm","assemblies","find","sequence","ElementId","types","optional","identifier","nanoid","NoAssemblyRegion","string","number","boolean","actions","setRefName","newRefName","Region","compose","LocalPathLocation","literal","BlobLocation","UriLocationRaw","maybe","internetAccountPreAuthorization","internetAccountType","authInfo","frozen","UriLocation","snapshotProcessor","postProcessor","snap","FileLocation","union","preProcessor","BaseSessionModel","_pluginManager","volatile","hovered","views","jbrowse","rpcManager","adminMode","textSearchManager","setSelection","clearSelection","setHovered","isBaseSession","ConnectionManagementSessionMixin","connectionInstances","pluggableMstType","connections","makeConnection","initialSnapshot","getConnectionType","prepareToBreakConnection","callbacksToDeref","derefTypeCount","connection","tracks","getReferring","removeReferring","breakConnection","remove","deleteConnection","deleteConnectionConf","addConnectionConf","connectionConf","clearConnections","isSessionWithConnections","AssemblyManager","DataManagementPlugin","exports","install","UCSCTrackHubConnectionF","AddTrackWidgetF","HierarchicalTrackSelectorWidgetF","AddConnectionWidgetF","PluginStoreWidgetF","configure","snackbarMessages","latestMessage","reason","popSnackbarMessage","MUISnackbar","Alert","severity","level","message","buttonRoot","hoverOpacity","menuTitle","setOpen","ArrowDropDown","logoPath","alt","grow","light","borderColor","HeaderButtons","savedSessionNames","menus","Toolbar","menu","DropDownMenu","arrow","EditableTypography","newName","notify","renameCurrentSession","AppLogo","DialogComponent","DialogProps","zIndex","bottom","minimized","activeWidgets","drawerPosition","Fab","showWidgetDrawer","LaunchIcon","selectPaper","m2","viewTypes","getElementTypeRecord","FormControl","Select","addView","IconButtonProps","IconProps","bindTrigger","MenuIcon","bindPopover","KeyboardDoubleArrowUpIcon","moveViewToTop","KeyboardArrowUpIcon","moveViewUp","KeyboardArrowDownIcon","moveViewDown","KeyboardDoubleArrowDownIcon","moveViewToBottom","paddingBottom","paddingTop","setDisplayName","viewHeader","viewTitle","alignItems","ViewButtons","onMinimize","AddIcon","MinimizeIcon","scrollRef","scrollIntoView","ViewMenu","focusedViewId","KeyboardArrowRightIcon","ViewContainerTitle","viewContainer","overflow","focusedView","unfocusedView","dark","handleSelectView","Element","contains","setFocusedViewId","ViewHeader","viewType","getViewType","ReactComponent","ViewContainer","removeView","setMinimized","LoadingEllipses","viewsContainer","gridRow","ViewPanel","ViewLauncher","DrawerWidget","colorScheme","appContainer","gridColumn","gridTemplateRows","appBar","LazyDrawerWidget","App","visibleWidget","drawerWidth","drawerVisible","grid","gridTemplateColumns","DialogQueue","AppBar","AppToolbar","ViewsContainer","AppFab","Snackbar","undoIdx","targetPath","history","notTrackingUndo","canUndo","canRedo","targetStore","snapshotDisposer","skipNextUndoState","stopTrackingUndo","resumeTrackingUndo","addUndoState","todos","splice","shift","beforeDestroy","initialize","resolvePath","onSnapshot","debounce","snapshot","undo","applySnapshot","redo","ConfigurationSchema","workerCount","defaultValue","explicitlyTyped","baseConfiguration","BaseRpcDriverConfigSchema","defaultDriver","drivers","MainThreadRpcDriverConfigSchema","WebWorkerRpcDriverConfigSchema","MainThreadRpcDriver","WebWorkerRpcDriver","addDriverConfig","configName","configSnapshot","isClonable","LazyWorker","driver","getWorker","workerP","makeWorker","then","worker","pingTime","rpcDriverClassName","watchWorker","maxPingTime","catch","destroy","status","BaseRpcDriver","lastWorkerAssignment","workerAssignments","workerCheckFrequency","filterArgs","isArray","AbortSignal","remoteAbort","File","functionName","createWorkerPool","hardwareConcurrency","mainThread","canDetect","detectHardwareConcurrency","workers","getWorkerPool","workerPool","workerNumber","workerAssignment","unextendedWorker","rpcMethod","getRpcMethodType","serializedArgs","serializeArguments","filteredAndSerializedArgs","callP","statusCallback","finally","killedCheckInterval","killedP","setInterval","clearInterval","resultP","race","deserializeReturn","WebWorkerHandle","Rpc","Client","terminate","funcName","opts","channel","listener","on","off","workerBootConfiguration","makeWorkerInstance","instance","log","postMessage","deserializeError","DummyHandle","_functionName","_filteredArgs","_options","pm","execute","RpcManager","static","rpcConfigSchema","mainConfiguration","backendConfigurations","driverObjects","getDriver","backendName","backendConfiguration","newDriver","plugins","runtimePluginDefinitions","windowHref","getDriverForCall","_sessionId","rpcDriverName","shareDiv","textAlign","paddingLeft","shareButton","ShareDialog","startIcon","ShareIcon","adminKey","useQueryParam","StringParam","adminServer","configPath","setSessionId","currentSessionId","JBrowseRootModel","JBrowseSession","response","fetch","method","headers","body","ok","CssBaseline","ShareButton","sessionQuery","password","loc","sessionTracks","tracklist","nav","initialTimestamp","sessionTriaged","sessionSnapshot","sessionSpec","blankSession","runtimePlugins","sessionPlugins","sessionError","configError","bc1","BroadcastChannel","bc2","isSharedSession","isSpecSession","isJb1StyleSession","isEncodedSession","isJsonSession","isLocalSession","ready","isSessionLoaded","isConfigLoaded","sessionTracksParsed","setSessionQuery","setConfigError","setSessionError","setRuntimePlugins","setSessionPlugins","setConfigSnapshot","setBlankSession","flag","setSessionTriaged","setSessionSnapshotSuccess","fetchPlugins","pluginLoader","import","fetchSessionPlugins","setSessionSnapshot","userAcceptedConfirmation","checkPlugins","origin","fetchConfig","__jbrowseConfigPath","__jbrowseCacheBuster","random","openLocation","readFile","configUri","addRelativeUris","hostname","configPlugins","fetchSessionStorageSession","sessionStr","sessionStorage","query","sessionSnap","onmessage","fetchSharedSession","decryptedSession","readSessionFromDynamo","readConf","fromUrlSafeB64","decodeEncodedUrlSession","decodeSessionSpec","decodeJb1StyleSession","decodeJsonUrlSession","afterCreate","lastAutosave","autorun","StartScreenErrorMessage","Worker","resolveIdentifier","refNameRegex","refNameColors","checkRefName","assemblyFactory","assemblyConfigType","adapterLoads","AbortablePromiseCache","adapterConf","when","refNameAliases","refNames","getCanonicalRefName","forwardMap","reverseMap","canonicalName","adapterName","loadRefNameMap","safeReference","loadingP","volatileRegions","lowerCaseRefNameAliases","cytobands","arg","initialized","aliases","hasName","allAliases","allRefNames","lowerCaseRefNames","allRefNamesWithLowerCase","getRefNameColor","setLoaded","setRegions","setRefNameAliases","setCytobands","setError","lowerCaseAliases","setLoadingP","p","loadPre","refNameAliasesAdapterConf","cytobandAdapterConf","sequenceAdapterConf","getRegions","getAssemblyRegions","adapterRegionsWithAssembly","refNameAliasCollection","getRefNameAliases","override","alias","getCytobands","getAdapterMapEntry","getReverseRefNameMapForAdapter","getData","SetDefaultSession","PreferencesDialog","RootModel","sessionModelFactory","assemblyConfigSchema","getTrackType","pluggableConfigSchemaType","preProcessSnapshot","explicitIdentifier","assemblyConfigSchemaFactory","jbrowseModelType","rpc","formatDetails","contextVariable","subfeatures","depth","maxDepth","formatAbout","hideUris","shareURL","disableAnalytics","hierarchical","trackNames","defaultCollapsed","categoryNames","topLevelCategories","subCategories","extraThemes","pluginConfigurationSchemas","aggregateTextSearchAdapters","defaultSession","JBrowseConfigF","addAssemblyConf","removeAssemblyConf","toRemove","addTrackConf","trackConf","elt","conn","deleteTrackConf","addPlugin","setPluginsUpdated","removePlugin","cast","setDefaultSessionConf","sessionConf","newDefault","toJS","addInternetAccountConf","internetAccountConf","deleteInternetAccountConf","JBrowseModelF","removeAttr","clone","jbrowseWebFactory","sessionModelType","sessionPath","assemblyNameMap","asmName","assemblyNamesList","assemblyList","sessionAssemblies","temporaryAssemblies","waitForAssembly","afterAttach","assemblyConfs","removeAssembly","addAssembly","fireImmediately","replaceAssembly","TextSearchManager","setSession","setDefaultSession","setSessionPath","path","BaseRootModelFactory","initializeInternetAccount","internetAccountConfig","getInternetAccountType","createEphemeralInternetAccount","hostUri","internetAccountSplit","domains","internetAccount","stateModel","findAppropriateInternetAccount","selectedId","account","handlesLocation","InternetAccountsRootModelMixin","TimeTraveller","ctrlKey","metaKey","shiftKey","setMenus","newMenus","appendMenu","menuName","insertMenu","appendToMenu","insertInMenu","insertPosition","appendToSubMenu","menuPath","topMenu","pathSoFar","sm","mi","insertInSubMenu","version","hydrateFn","hydrateRoot","createRoot","pluginsUpdated","savedSessionsVolatile","observable","savedSessions","localStorageId","autosaveId","previousAutosaveId","locationUrl","params","_val","alert","reload","oldSession","filterSessionInPlace","getType","newSession","sessionName","addSavedSession","removeSavedSession","removeItem","duplicateCurrentSession","newSnapshotName","newSnapshotCopyNumber","activateSession","localId","newSessionSnapshot","saveSessionToLocalStorage","loadAutosaveSession","previousAutosave","autosavedSession","PublishIcon","widget","addWidget","showWidget","GetAppIcon","sessionBlob","Blob","saveAs","FolderOpenIcon","SaveIcon","FileCopyIcon","StorageIcon","AppsIcon","queueDialog","UndoIcon","RedoIcon","ExtensionIcon","SettingsIcon","ReferenceManagementSessionMixin","object","refs","walk","isModelType","members","getMembers","properties","isReferenceType","referring","callbacks","dereferenceTypeCount","dereferenced","hideTrack","err1","isSessionModelWithWidgets","widgets","hideWidget","DrawerWidgetSessionMixin","widgetStateModelType","refinement","integer","setDrawerPosition","updateDrawerWidth","newDrawerWidth","resizeDrawer","distance","oldDrawerWidth","typeName","initialState","getElementType","hasWidget","minimizeWidgetDrawer","hideAllWidgets","editConfiguration","isConfigurationModel","editor","AboutDialog","BaseWebSession","sessionModel","queueOfDialogs","removeActiveDialog","sessionThemeName","allThemes","setThemeName","addLinearGenomeViewOfAssembly","addViewOfAssembly","displayRegionsFromAssemblyName","addViewFromAnotherView","otherView","state","displayedRegions","MultipleViewsSessionMixin","callbacksToDereferenceTrack","TracksManagerSessionMixin","named","superAddTrackConf","superDeleteTrackConf","found","SessionTracksManagerSessionMixin","assemblyConfigSchemasType","addSessionAssembly","warn","removeSessionAssembly","addTemporaryAssembly","removeTemporaryAssembly","TemporaryAssembliesMixin","sessionConnections","superDeleteConnection","superAddConnectionConf","connectionId","deletedConn","WebSessionConnectionsMixin","viewId","snackbarMessageSet","pushSnackbarMessage","removeSnackbarMessage","notifyError","errorMessage","extra","Report","task","setName","addSessionPlugin","removeSessionPlugin","editTrackConfiguration","getTrackActionMenuItems","canEdit","isRefSeq","InfoIcon","DeleteIcon","displays","displayId","CopyIcon","extendedSessionModel","createPluginManager","PluginManager","corePlugins","P","metadata","isCore","createPluggableElements","JBrowseRootModelFactory","afterInitializedCb","evaluateAsyncExtensionPoint","loadSessionSpec","initialSessionQuery","initialTimeStamp","multiAssemblyTracks","savedSessionCount","ver","stats","screen","innerHeight","innerWidth","electron","loadTime","jb2","qs","writeAWSAnalytics","pluginNames","analyticsScript","gaData","metric1","analyticsScriptNode","getElementsByTagName","append","writeGAAnalytics","doAnalytics","setRootModel","ConfigWarningDialog","SessionWarningDialog","StartScreen","normalize","param","Loader","Str","setPassword","setLoc","setSessionTracks","setAssembly","setTracks","setHighlight","setNav","setTrackList","loader","SessionLoader","Renderer","SessionTriaged","PluginManagerLoaded","JBrowse","factoryReset","setPluginManager","Loading","FatalErrorDialog","resetButtonText","QueryParamProvider","WindowHistoryAdapter","encrypt","toString","decrypt","AES","Utf8","getErrorMsg","shareSessionToDynamo","referer","sess","toUrlSafeB64","btoa","crypto","getRandomValues","Uint8Array","fromCharCode","encryptedSession","FormData","json","baseUrl","sessionQueryParam","encodeURIComponent","b64","originalB64","repeat","b64PadSuffix","toByteArray","inflate","inflated","TextDecoder","decode","bytes","TextEncoder","encode","deflate","fromByteArray","encoded","isArrayType","childType","getChildType","isValidReference","el","isMapType","child","getPropertyMembers","pname","ptype","base","attr","pluginsToCheck","storePlugins","statusText","every","pp","prop"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3162.eb9bf76d.chunk.js --- a/x/static/js/3162.eb9bf76d.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3162],{25762:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(74893),i=s(69500);const r=(0,a.A)((0,i.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete")},45331:(e,t,s)=>{"use strict";s.d(t,{Ay:()=>b});var a=s(7552),i=s(93878),r=s(70799),o=s(23879),n=s(51148),l=s(60129),d=s(4785),u=s(3755),c=s(51584),m=s(57406),p=s(74823),h=s(2451),g=s(77999),$=s(69500);const f=(0,n.Ay)("div",{name:"MuiListItem",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:s}=e;return[t.root,s.dense&&t.dense,"flex-start"===s.alignItems&&t.alignItemsFlexStart,s.divider&&t.divider,!s.disableGutters&&t.gutters,!s.disablePadding&&t.padding,s.hasSecondaryAction&&t.secondaryAction]}})((0,l.A)((({theme:e})=>({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>!e.disablePadding&&e.dense,style:{paddingTop:4,paddingBottom:4}},{props:({ownerState:e})=>!e.disablePadding&&!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>!e.disablePadding&&!!e.secondaryAction,style:{paddingRight:48}},{props:({ownerState:e})=>!!e.secondaryAction,style:{[`& > .${h.A.root}`]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:e})=>e.button,style:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:({ownerState:e})=>e.hasSecondaryAction,style:{paddingRight:48}}]})))),v=(0,n.Ay)("li",{name:"MuiListItem",slot:"Container",overridesResolver:(e,t)=>t.container})({position:"relative"}),b=a.forwardRef((function(e,t){const s=(0,d.b)({props:e,name:"MuiListItem"}),{alignItems:n="center",children:l,className:h,component:b,components:y={},componentsProps:w={},ContainerComponent:A="li",ContainerProps:{className:x,...S}={},dense:I=!1,disableGutters:C=!1,disablePadding:R=!1,divider:k=!1,secondaryAction:L,slotProps:P={},slots:j={},...G}=s,M=a.useContext(m.A),z=a.useMemo((()=>({dense:I||M.dense||!1,alignItems:n,disableGutters:C})),[n,M.dense,I,C]),N=a.useRef(null),q=a.Children.toArray(l),U=q.length&&(0,u.A)(q[q.length-1],["ListItemSecondaryAction"]),_={...s,alignItems:n,dense:z.dense,disableGutters:C,disablePadding:R,divider:k,hasSecondaryAction:U},B=(e=>{const{alignItems:t,classes:s,dense:a,disableGutters:i,disablePadding:o,divider:n,hasSecondaryAction:l}=e,d={root:["root",a&&"dense",!i&&"gutters",!o&&"padding",n&&"divider","flex-start"===t&&"alignItemsFlexStart",l&&"secondaryAction"],container:["container"]};return(0,r.A)(d,p._,s)})(_),E=(0,c.A)(N,t),F=j.root||y.Root||f,O=P.root||w.root||{},T={className:(0,i.A)(B.root,O.className,h),...G};let D=b||"li";return U?(D=T.component||b?D:"div","li"===A&&("li"===D?D="div":"li"===T.component&&(T.component="div")),(0,$.jsx)(m.A.Provider,{value:z,children:(0,$.jsxs)(v,{as:A,className:(0,i.A)(B.container,x),ref:E,ownerState:_,...S,children:[(0,$.jsx)(F,{...O,...!(0,o.A)(F)&&{as:D,ownerState:{..._,...O.ownerState}},...T,children:q}),q.pop()]})})):(0,$.jsx)(m.A.Provider,{value:z,children:(0,$.jsxs)(F,{...O,as:D,ref:E,...!(0,o.A)(F)&&{ownerState:{..._,...O.ownerState}},...T,children:[q,L&&(0,$.jsx)(g.A,{children:L})]})})}))},74823:(e,t,s)=>{"use strict";s.d(t,{A:()=>o,_:()=>r});var a=s(33761),i=s(85693);function r(e){return(0,i.Ay)("MuiListItem",e)}const o=(0,a.A)("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"])},2451:(e,t,s)=>{"use strict";s.d(t,{A:()=>o,Y:()=>r});var a=s(33761),i=s(85693);function r(e){return(0,i.Ay)("MuiListItemButton",e)}const o=(0,a.A)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"])},77999:(e,t,s)=>{"use strict";s.d(t,{A:()=>p});var a=s(7552),i=s(93878),r=s(70799),o=s(51148),n=s(4785),l=s(57406),d=s(87739),u=s(69500);const c=(0,o.Ay)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:s}=e;return[t.root,s.disableGutters&&t.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:({ownerState:e})=>e.disableGutters,style:{right:0}}]}),m=a.forwardRef((function(e,t){const s=(0,n.b)({props:e,name:"MuiListItemSecondaryAction"}),{className:o,...m}=s,p=a.useContext(l.A),h={...s,disableGutters:p.disableGutters},g=(e=>{const{disableGutters:t,classes:s}=e,a={root:["root",t&&"disableGutters"]};return(0,r.A)(a,d.g,s)})(h);return(0,u.jsx)(c,{className:(0,i.A)(g.root,o),ownerState:h,ref:t,...m})}));m.muiName="ListItemSecondaryAction";const p=m},87739:(e,t,s)=>{"use strict";s.d(t,{A:()=>o,g:()=>r});var a=s(33761),i=s(85693);function r(e){return(0,i.Ay)("MuiListItemSecondaryAction",e)}const o=(0,a.A)("MuiListItemSecondaryAction",["root","disableGutters"])},93091:function(e){e.exports=function(){var e=[],t=[],s={},a={},i={};function r(e){return"string"==typeof e?new RegExp("^"+e+"$","i"):e}function o(e,t){return e===t?t:e===e.toLowerCase()?t.toLowerCase():e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}function n(e,t){return e.replace(t[0],(function(s,a){var i,r,n=(i=t[1],r=arguments,i.replace(/\$(\d{1,2})/g,(function(e,t){return r[t]||""})));return o(""===s?e[a-1]:s,n)}))}function l(e,t,a){if(!e.length||s.hasOwnProperty(e))return t;for(var i=a.length;i--;){var r=a[i];if(r[0].test(t))return n(t,r)}return t}function d(e,t,s){return function(a){var i=a.toLowerCase();return t.hasOwnProperty(i)?o(a,i):e.hasOwnProperty(i)?o(a,e[i]):l(i,a,s)}}function u(e,t,s,a){return function(a){var i=a.toLowerCase();return!!t.hasOwnProperty(i)||!e.hasOwnProperty(i)&&l(i,i,s)===i}}function c(e,t,s){return(s?t+" ":"")+(1===t?c.singular(e):c.plural(e))}return c.plural=d(i,a,e),c.isPlural=u(i,a,e),c.singular=d(a,i,t),c.isSingular=u(a,i,t),c.addPluralRule=function(t,s){e.push([r(t),s])},c.addSingularRule=function(e,s){t.push([r(e),s])},c.addUncountableRule=function(e){"string"!=typeof e?(c.addPluralRule(e,"$0"),c.addSingularRule(e,"$0")):s[e.toLowerCase()]=!0},c.addIrregularRule=function(e,t){t=t.toLowerCase(),e=e.toLowerCase(),i[e]=t,a[t]=e},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach((function(e){return c.addIrregularRule(e[0],e[1])})),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach((function(e){return c.addPluralRule(e[0],e[1])})),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach((function(e){return c.addSingularRule(e[0],e[1])})),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(c.addUncountableRule),c}()}}]); -//# sourceMappingURL=3162.eb9bf76d.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3162.eb9bf76d.chunk.js.map --- a/x/static/js/3162.eb9bf76d.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3162.eb9bf76d.chunk.js","mappings":"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,CAAC,qGAAsG,OACvG,CAAC,QAAS,OACV,CAAC,2CAA4C,WAC7C,CAAC,oBAAqB,SACtB,CAAC,uBAAwB,SACzB,CAAC,oBAAqB,QACtB,CAAC,gDAAiD,UAClD,CAAC,gCAAiC,SAClC,CAAC,sBAAuB,UACxB,CAAC,oBAAqB,SACtB,CAAC,SAAU,MACX,CAAC,WAAY,OACb,CAAC,OAAQ,QACTwC,SAAQ,SAAUxC,GAClB,OAAO0B,EAAUO,cAAcjC,EAAK,GAAIA,EAAK,GAC/C,IAKA,CACE,CAAC,MAAO,IACR,CAAC,SAAU,MACX,CAAC,gEAAiE,QAClE,CAAC,kCAAmC,OACpC,CAAC,QAAS,KACV,CAAC,uFAAwF,QACzF,CAAC,oBAAqB,QACtB,CAAC,uBAAwB,UACzB,CAAC,sBAAuB,MACxB,CAAC,2FAA4F,MAC7F,CAAC,qEAAsE,SACvE,CAAC,iCAAkC,MACnC,CAAC,oBAAqB,QACtB,CAAC,4FAA6F,QAC9F,CAAC,yGAA0G,QAC3G,CAAC,8FAA+F,QAChG,CAAC,0BAA2B,OAC5B,CAAC,+BAAgC,QACjC,CAAC,sBAAuB,QACxB,CAAC,oBAAqB,UACtB,CAAC,eAAgB,MACjB,CAAC,YAAa,MACd,CAAC,QAAS,QACVwC,SAAQ,SAAUxC,GAClB,OAAO0B,EAAUU,gBAAgBpC,EAAK,GAAIA,EAAK,GACjD,IAKA,CAEE,YACA,SACA,SACA,MACA,WACA,UACA,OACA,YACA,QACA,YACA,QACA,QACA,QACA,QACA,UACA,SACA,OACA,OACA,UACA,QACA,WACA,MACA,WACA,cACA,QACA,SACA,WACA,YACA,MACA,SACA,YACA,YACA,YACA,WACA,WACA,MACA,UACA,UACA,WACA,WACA,eACA,SACA,SACA,YACA,WACA,YACA,cACA,QACA,UACA,QACA,SACA,aACA,YACA,WACA,OACA,QACA,OACA,QACA,QACA,MACA,QACA,OACA,OACA,YACA,OACA,WACA,SACA,SACA,YACA,WACA,OACA,WACA,OACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,UACA,QACA,QACA,SACA,UACA,iBACA,QACA,OACA,SACA,UACA,UACA,aACA,WACA,MACA,eAEA,gBACA,SACA,SACA,YACA,WACA,QACA,WACAwC,QAAQd,EAAUW,oBAEbX,CACT,CAhfqBA,E","sources":["../../../node_modules/@mui/icons-material/esm/Delete.js","../../../node_modules/@mui/material/ListItem/ListItem.js","../../../node_modules/@mui/material/ListItem/listItemClasses.js","../../../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../../../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../../../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js","../../../node_modules/pluralize/pluralize.js"],"sourcesContent":["\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z\"\n}), 'Delete');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport isHostComponent from \"../utils/isHostComponent.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport isMuiElement from \"../utils/isMuiElement.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport { getListItemUtilityClass } from \"./listItemClasses.js\";\nimport { listItemButtonClasses } from \"../ListItemButton/index.js\";\nimport ListItemSecondaryAction from \"../ListItemSecondaryAction/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters, !ownerState.disablePadding && styles.padding, ownerState.hasSecondaryAction && styles.secondaryAction];\n};\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes,\n dense,\n disableGutters,\n disablePadding,\n divider,\n hasSecondaryAction\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', !disableGutters && 'gutters', !disablePadding && 'padding', divider && 'divider', alignItems === 'flex-start' && 'alignItemsFlexStart', hasSecondaryAction && 'secondaryAction'],\n container: ['container']\n };\n return composeClasses(slots, getListItemUtilityClass, classes);\n};\nexport const ListItemRoot = styled('div', {\n name: 'MuiListItem',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n width: '100%',\n boxSizing: 'border-box',\n textAlign: 'left',\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.disablePadding,\n style: {\n paddingTop: 8,\n paddingBottom: 8\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disablePadding && ownerState.dense,\n style: {\n paddingTop: 4,\n paddingBottom: 4\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disablePadding && !ownerState.disableGutters,\n style: {\n paddingLeft: 16,\n paddingRight: 16\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disablePadding && !!ownerState.secondaryAction,\n style: {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n }\n }, {\n props: ({\n ownerState\n }) => !!ownerState.secondaryAction,\n style: {\n [`& > .${listItemButtonClasses.root}`]: {\n paddingRight: 48\n }\n }\n }, {\n props: {\n alignItems: 'flex-start'\n },\n style: {\n alignItems: 'flex-start'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.divider,\n style: {\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,\n backgroundClip: 'padding-box'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.button,\n style: {\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.hasSecondaryAction,\n style: {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n }\n }]\n})));\nconst ListItemContainer = styled('li', {\n name: 'MuiListItem',\n slot: 'Container',\n overridesResolver: (props, styles) => styles.container\n})({\n position: 'relative'\n});\n\n/**\n * Uses an additional container component if `ListItemSecondaryAction` is the last child.\n */\nconst ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItem'\n });\n const {\n alignItems = 'center',\n children: childrenProp,\n className,\n component: componentProp,\n components = {},\n componentsProps = {},\n ContainerComponent = 'li',\n ContainerProps: {\n className: ContainerClassName,\n ...ContainerProps\n } = {},\n dense = false,\n disableGutters = false,\n disablePadding = false,\n divider = false,\n secondaryAction,\n slotProps = {},\n slots = {},\n ...other\n } = props;\n const context = React.useContext(ListContext);\n const childContext = React.useMemo(() => ({\n dense: dense || context.dense || false,\n alignItems,\n disableGutters\n }), [alignItems, context.dense, dense, disableGutters]);\n const listItemRef = React.useRef(null);\n const children = React.Children.toArray(childrenProp);\n\n // v4 implementation, deprecated in v6, will be removed in v7\n const hasSecondaryAction = children.length && isMuiElement(children[children.length - 1], ['ListItemSecondaryAction']);\n const ownerState = {\n ...props,\n alignItems,\n dense: childContext.dense,\n disableGutters,\n disablePadding,\n divider,\n hasSecondaryAction\n };\n const classes = useUtilityClasses(ownerState);\n const handleRef = useForkRef(listItemRef, ref);\n const Root = slots.root || components.Root || ListItemRoot;\n const rootProps = slotProps.root || componentsProps.root || {};\n const componentProps = {\n className: clsx(classes.root, rootProps.className, className),\n ...other\n };\n let Component = componentProp || 'li';\n\n // v4 implementation, deprecated in v6, will be removed in v7\n if (hasSecondaryAction) {\n // Use div by default.\n Component = !componentProps.component && !componentProp ? 'div' : Component;\n\n // Avoid nesting of li > li.\n if (ContainerComponent === 'li') {\n if (Component === 'li') {\n Component = 'div';\n } else if (componentProps.component === 'li') {\n componentProps.component = 'div';\n }\n }\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsxs(ListItemContainer, {\n as: ContainerComponent,\n className: clsx(classes.container, ContainerClassName),\n ref: handleRef,\n ownerState: ownerState,\n ...ContainerProps,\n children: [/*#__PURE__*/_jsx(Root, {\n ...rootProps,\n ...(!isHostComponent(Root) && {\n as: Component,\n ownerState: {\n ...ownerState,\n ...rootProps.ownerState\n }\n }),\n ...componentProps,\n children: children\n }), children.pop()]\n })\n });\n }\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsxs(Root, {\n ...rootProps,\n as: Component,\n ref: handleRef,\n ...(!isHostComponent(Root) && {\n ownerState: {\n ...ownerState,\n ...rootProps.ownerState\n }\n }),\n ...componentProps,\n children: [children, secondaryAction && /*#__PURE__*/_jsx(ListItemSecondaryAction, {\n children: secondaryAction\n })]\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItem.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Defines the `align-items` style property.\n * @default 'center'\n */\n alignItems: PropTypes.oneOf(['center', 'flex-start']),\n /**\n * The content of the component if a `ListItemSecondaryAction` is used it must\n * be the last child.\n */\n children: chainPropTypes(PropTypes.node, props => {\n const children = React.Children.toArray(props.children);\n\n // React.Children.toArray(props.children).findLastIndex(isListItemSecondaryAction)\n let secondaryActionIndex = -1;\n for (let i = children.length - 1; i >= 0; i -= 1) {\n const child = children[i];\n if (isMuiElement(child, ['ListItemSecondaryAction'])) {\n secondaryActionIndex = i;\n break;\n }\n }\n\n // is ListItemSecondaryAction the last child of ListItem\n if (secondaryActionIndex !== -1 && secondaryActionIndex !== children.length - 1) {\n return new Error('MUI: You used an element after ListItemSecondaryAction. ' + 'For ListItem to detect that it has a secondary action ' + 'you must pass it as the last child to ListItem.');\n }\n return null;\n }),\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * @deprecated Use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n * @default {}\n */\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * The container component used when a `ListItemSecondaryAction` is the last child.\n * @default 'li'\n * @deprecated Use the `component` or `slots.root` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n ContainerComponent: elementTypeAcceptingRef,\n /**\n * Props applied to the container component if used.\n * @default {}\n * @deprecated Use the `slotProps.root` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n ContainerProps: PropTypes.object,\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent List component.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * If `true`, all padding is removed.\n * @default false\n */\n disablePadding: PropTypes.bool,\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n * @default false\n */\n divider: PropTypes.bool,\n /**\n * The element to display at the end of ListItem.\n */\n secondaryAction: PropTypes.node,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItem;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemUtilityClass(slot) {\n return generateUtilityClass('MuiListItem', slot);\n}\nconst listItemClasses = generateUtilityClasses('MuiListItem', ['root', 'container', 'dense', 'alignItemsFlexStart', 'divider', 'gutters', 'padding', 'secondaryAction']);\nexport default listItemClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemButtonUtilityClass(slot) {\n return generateUtilityClass('MuiListItemButton', slot);\n}\nconst listItemButtonClasses = generateUtilityClasses('MuiListItemButton', ['root', 'focusVisible', 'dense', 'alignItemsFlexStart', 'disabled', 'divider', 'gutters', 'selected']);\nexport default listItemButtonClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport { getListItemSecondaryActionClassesUtilityClass } from \"./listItemSecondaryActionClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disableGutters,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disableGutters && 'disableGutters']\n };\n return composeClasses(slots, getListItemSecondaryActionClassesUtilityClass, classes);\n};\nconst ListItemSecondaryActionRoot = styled('div', {\n name: 'MuiListItemSecondaryAction',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.disableGutters && styles.disableGutters];\n }\n})({\n position: 'absolute',\n right: 16,\n top: '50%',\n transform: 'translateY(-50%)',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.disableGutters,\n style: {\n right: 0\n }\n }]\n});\n\n/**\n * Must be used as the last child of ListItem to function properly.\n *\n * @deprecated Use the `secondaryAction` prop in the `ListItem` component instead. This component will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\nconst ListItemSecondaryAction = /*#__PURE__*/React.forwardRef(function ListItemSecondaryAction(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItemSecondaryAction'\n });\n const {\n className,\n ...other\n } = props;\n const context = React.useContext(ListContext);\n const ownerState = {\n ...props,\n disableGutters: context.disableGutters\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListItemSecondaryActionRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemSecondaryAction.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally an `IconButton` or selection control.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nListItemSecondaryAction.muiName = 'ListItemSecondaryAction';\nexport default ListItemSecondaryAction;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemSecondaryActionClassesUtilityClass(slot) {\n return generateUtilityClass('MuiListItemSecondaryAction', slot);\n}\nconst listItemSecondaryActionClasses = generateUtilityClasses('MuiListItemSecondaryAction', ['root', 'disableGutters']);\nexport default listItemSecondaryActionClasses;","/* global define */\n\n(function (root, pluralize) {\n /* istanbul ignore else */\n if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {\n // Node.\n module.exports = pluralize();\n } else if (typeof define === 'function' && define.amd) {\n // AMD, registers as an anonymous module.\n define(function () {\n return pluralize();\n });\n } else {\n // Browser global.\n root.pluralize = pluralize();\n }\n})(this, function () {\n // Rule storage - pluralize and singularize need to be run sequentially,\n // while other rules can be optimized using an object for instant lookups.\n var pluralRules = [];\n var singularRules = [];\n var uncountables = {};\n var irregularPlurals = {};\n var irregularSingles = {};\n\n /**\n * Sanitize a pluralization rule to a usable regular expression.\n *\n * @param {(RegExp|string)} rule\n * @return {RegExp}\n */\n function sanitizeRule (rule) {\n if (typeof rule === 'string') {\n return new RegExp('^' + rule + '$', 'i');\n }\n\n return rule;\n }\n\n /**\n * Pass in a word token to produce a function that can replicate the case on\n * another word.\n *\n * @param {string} word\n * @param {string} token\n * @return {Function}\n */\n function restoreCase (word, token) {\n // Tokens are an exact match.\n if (word === token) return token;\n\n // Lower cased words. E.g. \"hello\".\n if (word === word.toLowerCase()) return token.toLowerCase();\n\n // Upper cased words. E.g. \"WHISKY\".\n if (word === word.toUpperCase()) return token.toUpperCase();\n\n // Title cased words. E.g. \"Title\".\n if (word[0] === word[0].toUpperCase()) {\n return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase();\n }\n\n // Lower cased words. E.g. \"test\".\n return token.toLowerCase();\n }\n\n /**\n * Interpolate a regexp string.\n *\n * @param {string} str\n * @param {Array} args\n * @return {string}\n */\n function interpolate (str, args) {\n return str.replace(/\\$(\\d{1,2})/g, function (match, index) {\n return args[index] || '';\n });\n }\n\n /**\n * Replace a word using a rule.\n *\n * @param {string} word\n * @param {Array} rule\n * @return {string}\n */\n function replace (word, rule) {\n return word.replace(rule[0], function (match, index) {\n var result = interpolate(rule[1], arguments);\n\n if (match === '') {\n return restoreCase(word[index - 1], result);\n }\n\n return restoreCase(match, result);\n });\n }\n\n /**\n * Sanitize a word by passing in the word and sanitization rules.\n *\n * @param {string} token\n * @param {string} word\n * @param {Array} rules\n * @return {string}\n */\n function sanitizeWord (token, word, rules) {\n // Empty string or doesn't need fixing.\n if (!token.length || uncountables.hasOwnProperty(token)) {\n return word;\n }\n\n var len = rules.length;\n\n // Iterate over the sanitization rules and use the first one to match.\n while (len--) {\n var rule = rules[len];\n\n if (rule[0].test(word)) return replace(word, rule);\n }\n\n return word;\n }\n\n /**\n * Replace a word with the updated word.\n *\n * @param {Object} replaceMap\n * @param {Object} keepMap\n * @param {Array} rules\n * @return {Function}\n */\n function replaceWord (replaceMap, keepMap, rules) {\n return function (word) {\n // Get the correct token and case restoration functions.\n var token = word.toLowerCase();\n\n // Check against the keep object map.\n if (keepMap.hasOwnProperty(token)) {\n return restoreCase(word, token);\n }\n\n // Check against the replacement map for a direct word replacement.\n if (replaceMap.hasOwnProperty(token)) {\n return restoreCase(word, replaceMap[token]);\n }\n\n // Run all the rules against the word.\n return sanitizeWord(token, word, rules);\n };\n }\n\n /**\n * Check if a word is part of the map.\n */\n function checkWord (replaceMap, keepMap, rules, bool) {\n return function (word) {\n var token = word.toLowerCase();\n\n if (keepMap.hasOwnProperty(token)) return true;\n if (replaceMap.hasOwnProperty(token)) return false;\n\n return sanitizeWord(token, token, rules) === token;\n };\n }\n\n /**\n * Pluralize or singularize a word based on the passed in count.\n *\n * @param {string} word The word to pluralize\n * @param {number} count How many of the word exist\n * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks)\n * @return {string}\n */\n function pluralize (word, count, inclusive) {\n var pluralized = count === 1\n ? pluralize.singular(word) : pluralize.plural(word);\n\n return (inclusive ? count + ' ' : '') + pluralized;\n }\n\n /**\n * Pluralize a word.\n *\n * @type {Function}\n */\n pluralize.plural = replaceWord(\n irregularSingles, irregularPlurals, pluralRules\n );\n\n /**\n * Check if a word is plural.\n *\n * @type {Function}\n */\n pluralize.isPlural = checkWord(\n irregularSingles, irregularPlurals, pluralRules\n );\n\n /**\n * Singularize a word.\n *\n * @type {Function}\n */\n pluralize.singular = replaceWord(\n irregularPlurals, irregularSingles, singularRules\n );\n\n /**\n * Check if a word is singular.\n *\n * @type {Function}\n */\n pluralize.isSingular = checkWord(\n irregularPlurals, irregularSingles, singularRules\n );\n\n /**\n * Add a pluralization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addPluralRule = function (rule, replacement) {\n pluralRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add a singularization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addSingularRule = function (rule, replacement) {\n singularRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add an uncountable word rule.\n *\n * @param {(string|RegExp)} word\n */\n pluralize.addUncountableRule = function (word) {\n if (typeof word === 'string') {\n uncountables[word.toLowerCase()] = true;\n return;\n }\n\n // Set singular and plural references for the word.\n pluralize.addPluralRule(word, '$0');\n pluralize.addSingularRule(word, '$0');\n };\n\n /**\n * Add an irregular word definition.\n *\n * @param {string} single\n * @param {string} plural\n */\n pluralize.addIrregularRule = function (single, plural) {\n plural = plural.toLowerCase();\n single = single.toLowerCase();\n\n irregularSingles[single] = plural;\n irregularPlurals[plural] = single;\n };\n\n /**\n * Irregular rules.\n */\n [\n // Pronouns.\n ['I', 'we'],\n ['me', 'us'],\n ['he', 'they'],\n ['she', 'they'],\n ['them', 'them'],\n ['myself', 'ourselves'],\n ['yourself', 'yourselves'],\n ['itself', 'themselves'],\n ['herself', 'themselves'],\n ['himself', 'themselves'],\n ['themself', 'themselves'],\n ['is', 'are'],\n ['was', 'were'],\n ['has', 'have'],\n ['this', 'these'],\n ['that', 'those'],\n // Words ending in with a consonant and `o`.\n ['echo', 'echoes'],\n ['dingo', 'dingoes'],\n ['volcano', 'volcanoes'],\n ['tornado', 'tornadoes'],\n ['torpedo', 'torpedoes'],\n // Ends with `us`.\n ['genus', 'genera'],\n ['viscus', 'viscera'],\n // Ends with `ma`.\n ['stigma', 'stigmata'],\n ['stoma', 'stomata'],\n ['dogma', 'dogmata'],\n ['lemma', 'lemmata'],\n ['schema', 'schemata'],\n ['anathema', 'anathemata'],\n // Other irregular rules.\n ['ox', 'oxen'],\n ['axe', 'axes'],\n ['die', 'dice'],\n ['yes', 'yeses'],\n ['foot', 'feet'],\n ['eave', 'eaves'],\n ['goose', 'geese'],\n ['tooth', 'teeth'],\n ['quiz', 'quizzes'],\n ['human', 'humans'],\n ['proof', 'proofs'],\n ['carve', 'carves'],\n ['valve', 'valves'],\n ['looey', 'looies'],\n ['thief', 'thieves'],\n ['groove', 'grooves'],\n ['pickaxe', 'pickaxes'],\n ['passerby', 'passersby']\n ].forEach(function (rule) {\n return pluralize.addIrregularRule(rule[0], rule[1]);\n });\n\n /**\n * Pluralization rules.\n */\n [\n [/s?$/i, 's'],\n [/[^\\u0000-\\u007F]$/i, '$0'],\n [/([^aeiou]ese)$/i, '$1'],\n [/(ax|test)is$/i, '$1es'],\n [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, '$1es'],\n [/(e[mn]u)s?$/i, '$1s'],\n [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, '$1'],\n [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1i'],\n [/(alumn|alg|vertebr)(?:a|ae)$/i, '$1ae'],\n [/(seraph|cherub)(?:im)?$/i, '$1im'],\n [/(her|at|gr)o$/i, '$1oes'],\n [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, '$1a'],\n [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, '$1a'],\n [/sis$/i, 'ses'],\n [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, '$1$2ves'],\n [/([^aeiouy]|qu)y$/i, '$1ies'],\n [/([^ch][ieo][ln])ey$/i, '$1ies'],\n [/(x|ch|ss|sh|zz)$/i, '$1es'],\n [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, '$1ices'],\n [/\\b((?:tit)?m|l)(?:ice|ouse)$/i, '$1ice'],\n [/(pe)(?:rson|ople)$/i, '$1ople'],\n [/(child)(?:ren)?$/i, '$1ren'],\n [/eaux$/i, '$0'],\n [/m[ae]n$/i, 'men'],\n ['thou', 'you']\n ].forEach(function (rule) {\n return pluralize.addPluralRule(rule[0], rule[1]);\n });\n\n /**\n * Singularization rules.\n */\n [\n [/s$/i, ''],\n [/(ss)$/i, '$1'],\n [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\\w]|^)li)ves$/i, '$1fe'],\n [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, '$1f'],\n [/ies$/i, 'y'],\n [/\\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, '$1ie'],\n [/\\b(mon|smil)ies$/i, '$1ey'],\n [/\\b((?:tit)?m|l)ice$/i, '$1ouse'],\n [/(seraph|cherub)im$/i, '$1'],\n [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, '$1'],\n [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, '$1sis'],\n [/(movie|twelve|abuse|e[mn]u)s$/i, '$1'],\n [/(test)(?:is|es)$/i, '$1is'],\n [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1us'],\n [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, '$1um'],\n [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, '$1on'],\n [/(alumn|alg|vertebr)ae$/i, '$1a'],\n [/(cod|mur|sil|vert|ind)ices$/i, '$1ex'],\n [/(matr|append)ices$/i, '$1ix'],\n [/(pe)(rson|ople)$/i, '$1rson'],\n [/(child)ren$/i, '$1'],\n [/(eau)x?$/i, '$1'],\n [/men$/i, 'man']\n ].forEach(function (rule) {\n return pluralize.addSingularRule(rule[0], rule[1]);\n });\n\n /**\n * Uncountable rules.\n */\n [\n // Singular words with no plurals.\n 'adulthood',\n 'advice',\n 'agenda',\n 'aid',\n 'aircraft',\n 'alcohol',\n 'ammo',\n 'analytics',\n 'anime',\n 'athletics',\n 'audio',\n 'bison',\n 'blood',\n 'bream',\n 'buffalo',\n 'butter',\n 'carp',\n 'cash',\n 'chassis',\n 'chess',\n 'clothing',\n 'cod',\n 'commerce',\n 'cooperation',\n 'corps',\n 'debris',\n 'diabetes',\n 'digestion',\n 'elk',\n 'energy',\n 'equipment',\n 'excretion',\n 'expertise',\n 'firmware',\n 'flounder',\n 'fun',\n 'gallows',\n 'garbage',\n 'graffiti',\n 'hardware',\n 'headquarters',\n 'health',\n 'herpes',\n 'highjinks',\n 'homework',\n 'housework',\n 'information',\n 'jeans',\n 'justice',\n 'kudos',\n 'labour',\n 'literature',\n 'machinery',\n 'mackerel',\n 'mail',\n 'media',\n 'mews',\n 'moose',\n 'music',\n 'mud',\n 'manga',\n 'news',\n 'only',\n 'personnel',\n 'pike',\n 'plankton',\n 'pliers',\n 'police',\n 'pollution',\n 'premises',\n 'rain',\n 'research',\n 'rice',\n 'salmon',\n 'scissors',\n 'series',\n 'sewage',\n 'shambles',\n 'shrimp',\n 'software',\n 'species',\n 'staff',\n 'swine',\n 'tennis',\n 'traffic',\n 'transportation',\n 'trout',\n 'tuna',\n 'wealth',\n 'welfare',\n 'whiting',\n 'wildebeest',\n 'wildlife',\n 'you',\n /pok[eé]mon$/i,\n // Regexes.\n /[^aeiou]ese$/i, // \"chinese\", \"japanese\"\n /deer$/i, // \"deer\", \"reindeer\"\n /fish$/i, // \"fish\", \"blowfish\", \"angelfish\"\n /measles$/i,\n /o[iu]s$/i, // \"carnivorous\"\n /pox$/i, // \"chickpox\", \"smallpox\"\n /sheep$/i\n ].forEach(pluralize.addUncountableRule);\n\n return pluralize;\n});\n"],"names":["d","ListItemRoot","name","slot","overridesResolver","props","styles","ownerState","root","dense","alignItems","alignItemsFlexStart","divider","disableGutters","gutters","disablePadding","padding","hasSecondaryAction","secondaryAction","theme","display","justifyContent","position","textDecoration","width","boxSizing","textAlign","variants","style","paddingTop","paddingBottom","paddingLeft","paddingRight","borderBottom","vars","palette","backgroundClip","button","transition","transitions","create","duration","shortest","backgroundColor","action","hover","ListItemContainer","container","inProps","ref","children","childrenProp","className","component","componentProp","components","componentsProps","ContainerComponent","ContainerProps","ContainerClassName","slotProps","slots","other","context","childContext","listItemRef","toArray","length","classes","useUtilityClasses","handleRef","Root","rootProps","componentProps","Component","Provider","value","as","pop","getListItemUtilityClass","getListItemButtonUtilityClass","ListItemSecondaryActionRoot","right","top","transform","ListItemSecondaryAction","g","muiName","getListItemSecondaryActionClassesUtilityClass","module","exports","pluralRules","singularRules","uncountables","irregularPlurals","irregularSingles","sanitizeRule","rule","RegExp","restoreCase","word","token","toLowerCase","toUpperCase","charAt","substr","replace","match","index","str","args","result","arguments","sanitizeWord","rules","hasOwnProperty","len","test","replaceWord","replaceMap","keepMap","checkWord","bool","pluralize","count","inclusive","singular","plural","isPlural","isSingular","addPluralRule","replacement","push","addSingularRule","addUncountableRule","addIrregularRule","single","forEach"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3167.312d0953.chunk.js --- a/x/static/js/3167.312d0953.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3167],{23167:(e,t,n)=>{n.r(t),n.d(t,{default:()=>l});var s=n(46377),a=n(66885),r=n(99834),i=n(68120),c=n(78054),o=n(72147);class l extends s.BaseFeatureDataAdapter{static capabilities=["getFeatures","getRefNames"];constructor(e,t,n){super(e,t,n);const s=this.getConf("pifGzLocation"),a=this.getConf(["index","indexType"]),c=this.getConf(["index","location"]),o=this.pluginManager;this.pif=new i.wD({filehandle:(0,r.openLocation)(s,o),csiFilehandle:"CSI"===a?(0,r.openLocation)(c,o):void 0,tbiFilehandle:"CSI"!==a?(0,r.openLocation)(c,o):void 0,chunkCacheSize:52428800})}async getHeader(){return this.pif.getHeader()}getAssemblyNames(){const e=this.getConf("assemblyNames");return 0===e.length?[this.getConf("queryAssembly"),this.getConf("targetAssembly")]:e}async hasDataForRefName(){return!0}async getRefNames(e={}){const t=e.regions?.[0]?.assemblyName;if(!t)throw new Error("no assembly name provided");const n=this.getAssemblyNames().indexOf(t),s=await this.pif.getReferenceSequenceNames(e);return 0===n?s.filter((e=>e.startsWith("q"))).map((e=>e.slice(1))):1===n?s.filter((e=>e.startsWith("t"))).map((e=>e.slice(1))):[]}getFeatures(e,t={}){return(0,a.ObservableCreate)((async n=>{const{assemblyName:s}=e,a=this.getAssemblyNames(),r=0===a.indexOf(s),i=r?"q":"t";await this.pif.getLines(i+e.refName,e.start,e.end,{lineCallback:(e,t)=>{const i=(0,c.xI)(e),l=i.qname.slice(1),u=i.qstart,m=i.qend,d=i.tname,f=i.tstart,h=i.tend,{extra:p,strand:g}=i,{numMatches:b=0,blockLen:y=1,cg:w,...x}=p;n.next(new o.A({uniqueId:t+s,assemblyName:s,start:u,end:m,type:"match",refName:l,strand:g,...x,CIGAR:p.cg,syntenyId:t,identity:b/y,numMatches:b,blockLen:y,mate:{start:f,end:h,refName:d,assemblyName:a[+r]}}))},signal:t.signal}),n.complete()}))}freeResources(){}}},72147:(e,t,n)=>{n.d(t,{A:()=>i});var s=n(99546),a=n(82727);const{getMismatches:r}=a.aF;class i extends s.SimpleFeature{get(e){return"mismatches"===e?r(this.get("CIGAR")):super.get(e)}}},78054:(e,t,n)=>{n.d(t,{PX:()=>l,TA:()=>i,fY:()=>r,gJ:()=>d,qm:()=>m,xI:()=>u,yU:()=>c});var s=n(7706),a=n(99546);function r(e){return new Map(e.split(/\n|\r\n|\r/).filter((e=>!!e||e.startsWith("#"))).map((e=>{const[t,n,s,a,r,i]=e.split("\t");return[a,{refName:t,start:+n,end:+s,score:+r,name:a,strand:"-"===i?-1:1}]})))}async function i(e,t){const n=await e.readFile(t);return new TextDecoder("utf8",{fatal:!0}).decode((0,a.isGzip)(n)?await(0,s.unzip)(n):n)}function c(e,t){return e.map(((e,n)=>[e,t[n]]))}const o="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function l(e,t){let n=0;const s=[];for(;n{const t=e.indexOf(":");return[e.slice(0,t),e.slice(t+3)]})))}}}function m(e){const t=[];for(let n=e.length-2;n>=0;n-=2){t.push(e[n]);const s=e[n+1];"D"===s?t.push("I"):"I"===s?t.push("D"):t.push(s)}return t}function d(e){return e.replaceAll("D","K").replaceAll("I","D").replaceAll("K","I")}}}]); -//# sourceMappingURL=3167.312d0953.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3167.312d0953.chunk.js.map --- a/x/static/js/3167.312d0953.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3167.312d0953.chunk.js","mappings":"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","sources":["../../../plugins/comparative-adapters/src/PairwiseIndexedPAFAdapter/PairwiseIndexedPAFAdapter.ts","../../../plugins/comparative-adapters/src/SyntenyFeature/index.ts","../../../plugins/comparative-adapters/src/util.ts"],"sourcesContent":["import {\n BaseFeatureDataAdapter,\n BaseOptions,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\nimport { FileLocation, Region } from '@jbrowse/core/util/types'\nimport { ObservableCreate } from '@jbrowse/core/util/rxjs'\nimport { Feature } from '@jbrowse/core/util'\nimport { AnyConfigurationModel } from '@jbrowse/core/configuration'\nimport { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { openLocation } from '@jbrowse/core/util/io'\nimport { TabixIndexedFile } from '@gmod/tabix'\n\n// locals\nimport { parsePAFLine } from '../util'\nimport SyntenyFeature from '../SyntenyFeature'\n\ninterface PAFOptions extends BaseOptions {\n config?: AnyConfigurationModel\n}\n\nexport default class PAFAdapter extends BaseFeatureDataAdapter {\n public static capabilities = ['getFeatures', 'getRefNames']\n\n protected pif: TabixIndexedFile\n\n public constructor(\n config: AnyConfigurationModel,\n getSubAdapter?: getSubAdapterType,\n pluginManager?: PluginManager,\n ) {\n super(config, getSubAdapter, pluginManager)\n const pifGzLoc = this.getConf('pifGzLocation') as FileLocation\n const type = this.getConf(['index', 'indexType'])\n const loc = this.getConf(['index', 'location'])\n const pm = this.pluginManager\n\n this.pif = new TabixIndexedFile({\n filehandle: openLocation(pifGzLoc, pm),\n csiFilehandle: type === 'CSI' ? openLocation(loc, pm) : undefined,\n tbiFilehandle: type !== 'CSI' ? openLocation(loc, pm) : undefined,\n chunkCacheSize: 50 * 2 ** 20,\n })\n }\n async getHeader() {\n return this.pif.getHeader()\n }\n\n getAssemblyNames(): string[] {\n const assemblyNames = this.getConf('assemblyNames') as string[]\n if (assemblyNames.length === 0) {\n return [\n this.getConf('queryAssembly') as string,\n this.getConf('targetAssembly') as string,\n ]\n }\n return assemblyNames\n }\n\n public async hasDataForRefName() {\n return true\n }\n\n async getRefNames(opts: BaseOptions & { regions?: Region[] } = {}) {\n const r1 = opts.regions?.[0]?.assemblyName\n if (!r1) {\n throw new Error('no assembly name provided')\n }\n\n const idx = this.getAssemblyNames().indexOf(r1)\n const names = await this.pif.getReferenceSequenceNames(opts)\n if (idx === 0) {\n return names.filter(n => n.startsWith('q')).map(n => n.slice(1))\n } else if (idx === 1) {\n return names.filter(n => n.startsWith('t')).map(n => n.slice(1))\n } else {\n return []\n }\n }\n\n getFeatures(query: Region, opts: PAFOptions = {}) {\n return ObservableCreate(async observer => {\n const { assemblyName } = query\n\n const assemblyNames = this.getAssemblyNames()\n const index = assemblyNames.indexOf(assemblyName)\n const flip = index === 0\n const letter = flip ? 'q' : 't'\n\n await this.pif.getLines(letter + query.refName, query.start, query.end, {\n lineCallback: (line, fileOffset) => {\n const r = parsePAFLine(line)\n const refName = r.qname.slice(1)\n const start = r.qstart\n const end = r.qend\n const mateName = r.tname\n const mateStart = r.tstart\n const mateEnd = r.tend\n\n const { extra, strand } = r\n const { numMatches = 0, blockLen = 1, cg, ...rest } = extra\n\n observer.next(\n new SyntenyFeature({\n uniqueId: fileOffset + assemblyName,\n assemblyName,\n start,\n end,\n type: 'match',\n refName,\n strand,\n ...rest,\n CIGAR: extra.cg,\n syntenyId: fileOffset,\n identity: numMatches / blockLen,\n numMatches,\n blockLen,\n mate: {\n start: mateStart,\n end: mateEnd,\n refName: mateName,\n assemblyName: assemblyNames[+flip],\n },\n }),\n )\n },\n signal: opts.signal,\n })\n\n observer.complete()\n })\n }\n\n freeResources(/* { query } */): void {}\n}\n","import { SimpleFeature } from '@jbrowse/core/util'\nimport { MismatchParser } from '@jbrowse/plugin-alignments'\n\n// locals\nconst { getMismatches } = MismatchParser\n\nexport default class SyntenyFeature extends SimpleFeature {\n get(arg: string): any {\n if (arg === 'mismatches') {\n return getMismatches(this.get('CIGAR'))\n }\n return super.get(arg)\n }\n}\n","import { BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter'\nimport { GenericFilehandle } from 'generic-filehandle'\nimport { unzip } from '@gmod/bgzf-filehandle'\nimport { isGzip } from '@jbrowse/core/util'\nimport type { Buffer } from 'buffer'\n\nimport { PAFRecord } from './PAFAdapter/util'\n\nexport function parseBed(text: string) {\n return new Map(\n text\n .split(/\\n|\\r\\n|\\r/)\n .filter(f => !!f || f.startsWith('#'))\n .map(line => {\n const [refName, start, end, name, score, strand] = line.split('\\t')\n return [\n name,\n {\n refName,\n start: +start!,\n end: +end!,\n score: +score!,\n name,\n strand: strand === '-' ? -1 : 1,\n },\n ]\n }),\n )\n}\n\nexport async function readFile(file: GenericFilehandle, opts?: BaseOptions) {\n const buffer = (await file.readFile(opts)) as Buffer\n return new TextDecoder('utf8', { fatal: true }).decode(\n isGzip(buffer) ? await unzip(buffer) : buffer,\n )\n}\n\nexport function zip(a: number[], b: number[]) {\n return a.map((e, i) => [e, b[i]] as [number, number])\n}\n\nconst decoder =\n typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined\n\nexport function parseLineByLine(\n buffer: Buffer,\n cb: (line: string) => PAFRecord,\n) {\n let blockStart = 0\n const entries = []\n while (blockStart < buffer.length) {\n const n = buffer.indexOf('\\n', blockStart)\n if (n === -1) {\n break\n }\n const b = buffer.subarray(blockStart, n)\n const line = (decoder?.decode(b) || b.toString()).trim()\n if (line) {\n entries.push(cb(line))\n }\n\n blockStart = n + 1\n }\n return entries\n}\n\nexport function parsePAFLine(line: string) {\n const [\n qname,\n ,\n qstart,\n qend,\n strand,\n tname,\n ,\n tstart,\n tend,\n numMatches,\n blockLen,\n mappingQual,\n ...fields\n ] = line.split('\\t')\n\n const rest = Object.fromEntries(\n fields.map(field => {\n const r = field.indexOf(':')\n const fieldName = field.slice(0, r)\n const fieldValue = field.slice(r + 3)\n return [fieldName, fieldValue]\n }),\n )\n\n return {\n tname,\n tstart: +tstart!,\n tend: +tend!,\n qname,\n qstart: +qstart!,\n qend: +qend!,\n strand: strand === '-' ? -1 : 1,\n extra: {\n numMatches: +numMatches!,\n blockLen: +blockLen!,\n mappingQual: +mappingQual!,\n ...rest,\n },\n } as PAFRecord\n}\n\nexport function flipCigar(cigar: string[]) {\n const arr = []\n for (let i = cigar.length - 2; i >= 0; i -= 2) {\n arr.push(cigar[i])\n const op = cigar[i + 1]\n if (op === 'D') {\n arr.push('I')\n } else if (op === 'I') {\n arr.push('D')\n } else {\n arr.push(op)\n }\n }\n return arr\n}\n\nexport function swapIndelCigar(cigar: string) {\n return cigar.replaceAll('D', 'K').replaceAll('I', 'D').replaceAll('K', 'I')\n}\n"],"names":["PAFAdapter","BaseFeatureDataAdapter","constructor","config","getSubAdapter","pluginManager","super","pifGzLoc","this","getConf","type","loc","pm","pif","TabixIndexedFile","filehandle","openLocation","csiFilehandle","undefined","tbiFilehandle","chunkCacheSize","getHeader","getAssemblyNames","assemblyNames","length","hasDataForRefName","getRefNames","opts","r1","regions","assemblyName","Error","idx","indexOf","names","getReferenceSequenceNames","filter","n","startsWith","map","slice","getFeatures","query","ObservableCreate","async","flip","letter","getLines","refName","start","end","lineCallback","line","fileOffset","r","parsePAFLine","qname","qstart","qend","mateName","tname","mateStart","tstart","mateEnd","tend","extra","strand","numMatches","blockLen","cg","rest","observer","next","SyntenyFeature","uniqueId","CIGAR","syntenyId","identity","mate","signal","complete","freeResources","getMismatches","MismatchParser","SimpleFeature","get","arg","parseBed","text","Map","split","f","name","score","readFile","file","buffer","TextDecoder","fatal","decode","isGzip","unzip","zip","a","b","e","i","decoder","parseLineByLine","cb","blockStart","entries","subarray","toString","trim","push","mappingQual","fields","Object","fromEntries","field","flipCigar","cigar","arr","op","swapIndelCigar","replaceAll"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3175.af2c93a5.chunk.js --- a/x/static/js/3175.af2c93a5.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3175],{43175:(e,s,r)=>{r.r(s),r.d(s,{default:()=>i});var t=r(46377),a=r(99834);class i extends t.BaseAdapter{async getRefNameAliases(){const e=this.getConf("location");if(""===e.uri||"/path/to/my/sequence_report.tsv"===e.uri)return[];const s=this.getConf("useUcscNameOverride");return(await(0,a.openLocation)(e,this.pluginManager).readFile("utf8")).split(/\n|\r\n|\r/).slice(1).filter((e=>!!e.trim())).map((e=>e.split("\t"))).map((e=>({refName:e[12],aliases:[e[9],e[6]].filter((e=>!!e)),override:s}))).filter((e=>!!e.refName))}async freeResources(){}}}}]); -//# sourceMappingURL=3175.af2c93a5.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3175.af2c93a5.chunk.js.map --- a/x/static/js/3175.af2c93a5.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3175.af2c93a5.chunk.js","mappings":"iLAMe,MAAMA,UACXC,EAAAA,YAGR,uBAAMC,GACJ,MAAMC,EAAMC,KAAKC,QAAQ,YACzB,GAAgB,KAAZF,EAAIG,KAA0B,oCAAZH,EAAIG,IACxB,MAAO,GAET,MAAMC,EAAWH,KAAKC,QAAQ,uBAE9B,aADsBG,EAAAA,EAAAA,cAAaL,EAAKC,KAAKK,eAAeC,SAAS,SAElEC,MAAM,cACNC,MAAM,GACNC,QAAOC,KAAOA,EAAEC,SAChBC,KAAIC,GAAOA,EAAIN,MAAM,QACrBK,KAAIE,IAAQ,CACXC,QAASD,EAAK,IACdE,QAAS,CAACF,EAAK,GAAIA,EAAK,IAAIL,QAAQC,KAAqBA,IACzDP,eAEDM,QAAOC,KAAOA,EAAEK,SACrB,CAEA,mBAAME,GAAiB,E","sources":["../../../plugins/config/src/NcbiSequenceReportAliasAdapter/NcbiSequenceReportAliasAdapter.ts"],"sourcesContent":["import {\n BaseRefNameAliasAdapter,\n BaseAdapter,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\nimport { openLocation } from '@jbrowse/core/util/io'\n\nexport default class NcbiSequenceReportAliasAdapter\n extends BaseAdapter\n implements BaseRefNameAliasAdapter\n{\n async getRefNameAliases() {\n const loc = this.getConf('location')\n if (loc.uri === '' || loc.uri === '/path/to/my/sequence_report.tsv') {\n return []\n }\n const override = this.getConf('useUcscNameOverride')\n const results = await openLocation(loc, this.pluginManager).readFile('utf8')\n return results\n .split(/\\n|\\r\\n|\\r/)\n .slice(1)\n .filter(f => !!f.trim())\n .map(row => row.split('\\t'))\n .map(cols => ({\n refName: cols[12]!,\n aliases: [cols[9], cols[6]].filter((f): f is string => !!f),\n override,\n }))\n .filter(f => !!f.refName)\n }\n\n async freeResources() {}\n}\n"],"names":["NcbiSequenceReportAliasAdapter","BaseAdapter","getRefNameAliases","loc","this","getConf","uri","override","openLocation","pluginManager","readFile","split","slice","filter","f","trim","map","row","cols","refName","aliases","freeResources"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3199.a36b17a7.chunk.js --- a/x/static/js/3199.a36b17a7.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3199],{53199:(e,l,t)=>{t.r(l),t.d(l,{default:()=>G});var a=t(7552),n=t(68446),o=t(75785),s=t(99546),r=t(9937),i=t(23758),c=t(87731),m=t(85676),d=t(92179),b=t(66395),u=t(84495);const h=(0,a.lazy)((()=>t.e(4773).then(t.bind(t,84773)))),k=(0,o.n9)()((()=>({cell:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}}))),w=(0,n.observer)((function({model:e}){const{classes:l}=k(),{bookmarks:t,bookmarksWithValidAssemblies:n,selectedAssemblies:o,selectedBookmarks:r}=e,i=(0,s.getSession)(e),w=new Set(o),g=t.filter((e=>w.has(e.assemblyName))).map(((e,l)=>{const{assemblyName:t,...a}=e;return{...e,id:l,assemblyName:t,locString:(0,s.assembleLocString)(a),correspondingObj:e}})),f=[50,Math.max((0,s.measureText)("Bookmark link",12)+30,(0,s.measureGridWidth)(g.map((e=>e.locString)))),Math.max((0,s.measureText)("Label",12)+30,(0,s.measureGridWidth)(g.map((e=>e.label)))),Math.max((0,s.measureText)("Assembly",12)+30,(0,s.measureGridWidth)(g.map((e=>e.assemblyName)))),100];return a.createElement(m.z,{autoHeight:!0,density:"compact",rows:g,columns:[{...d.f,width:f[0]},{field:"locString",headerName:"Bookmark link",width:f[1],renderCell:({value:t,row:n})=>a.createElement(c.A,{className:l.cell,href:"#",onClick:async l=>{l.preventDefault();const{views:a}=i;await(0,u.Jn)(t,n.assemblyName,a,e)}},t)},{field:"label",headerName:"Label",width:f[2],editable:!0},{field:"assemblyName",headerName:"Assembly",width:f[3]},{field:"highlight",headerName:"Highlight",width:f[4],renderCell:({value:l,row:t})=>a.createElement(b.Ay,{color:l||"black",onChange:l=>{e.updateBookmarkHighlight(t,l)}})}],onCellDoubleClick:({row:l})=>{(0,s.getSession)(e).queueDialog((t=>[h,{onClose:t,model:e,dialogRow:l}]))},processRowUpdate:l=>{const t=g[l.id];return e.updateBookmarkLabel(t,l.label),l},onProcessRowUpdateError:e=>{i.notifyError(`${e}`,e)},checkboxSelection:!0,onRowSelectionModelChange:l=>{n.length>0&&e.setSelectedBookmarks(l.map((e=>({...g[e]}))))},rowSelectionModel:r.map((e=>e.id)),disableRowSelectionOnClick:!0})}));var g=t(48171),f=t(17125),y=t(98360),p=t(28172),A=t(29629),v=t(32808),E=t(81453);const S=(0,n.observer)((function({model:e}){const{validAssemblies:l,selectedAssemblies:t}=e,n=0===l.size,o="Select assemblies",s="select-assemblies-label",r=new Set(t),i=[...l].every((e=>r.has(e)));return a.createElement(g.A,{disabled:n,fullWidth:!0},a.createElement(f.A,{id:s},o),a.createElement(y.A,{labelId:s,multiple:!0,value:t,onChange:l=>{e.setSelectedAssemblies([...l.target.value])},input:a.createElement(p.A,{label:o}),renderValue:e=>e.join(", ")},a.createElement(A.A,{onClickCapture:l=>{i?e.setSelectedAssemblies([]):e.setSelectedAssemblies(void 0),l.preventDefault()}},a.createElement(v.A,{checked:i,indeterminate:!i&&t.length>0}),a.createElement(E.A,{primary:"Select all"})),[...l].map((e=>a.createElement(A.A,{key:e,value:e},a.createElement(v.A,{checked:t.includes(e)}),a.createElement(E.A,{primary:e}))))))}));var C=t(922),N=t(91194),x=t(550),$=t(22168),_=t(53794),D=t(37702),B=t(25762);const z=(0,a.lazy)((()=>t.e(5746).then(t.bind(t,5746)))),L=(0,a.lazy)((()=>Promise.all([t.e(3011),t.e(3425)]).then(t.bind(t,23425)))),T=(0,a.lazy)((()=>t.e(419).then(t.bind(t,20419)))),q=(0,a.lazy)((()=>t.e(772).then(t.bind(t,70772)))),V=(0,a.lazy)((()=>t.e(1326).then(t.bind(t,11326)))),W=(0,a.lazy)((()=>t.e(1811).then(t.bind(t,71811)))),j=(0,o.n9)()({flex:{display:"flex"}}),G=(0,n.observer)((function({model:e}){const{classes:l}=j();return a.createElement("div",null,a.createElement(r.A,{severity:"info"},"Click and type within the ",a.createElement("strong",null,"label")," field to annotate your bookmark. Double click the ",a.createElement("strong",null,"label")," field to do so within a dialog."),a.createElement("div",{className:l.flex},a.createElement(i.A,{"data-testid":"grid_bookmark_menu",menuItems:[{label:"Export",icon:N.A,onClick:()=>{(0,s.getSession)(e).queueDialog((l=>[z,{onClose:l,model:e}]))}},{label:"Import",icon:x.A,onClick:()=>{(0,s.getSession)(e).queueDialog((l=>[L,{model:e,onClose:l}]))}},{label:"Delete",icon:B.A,onClick:()=>{(0,s.getSession)(e).queueDialog((l=>[W,{model:e,onClose:l}]))}},{label:"Share",icon:D.A,onClick:()=>{(0,s.getSession)(e).queueDialog((l=>[T,{model:e,onClose:l}]))}},{label:"Edit colors",icon:_.A,onClick:()=>{(0,s.getSession)(e).queueDialog((l=>[V,{model:e,onClose:l}]))}},{label:"Settings",icon:$.A,onClick:()=>{(0,s.getSession)(e).queueDialog((l=>[q,{model:e,onClose:l}]))}}]},a.createElement(C.A,null)),a.createElement(S,{model:e})),a.createElement(w,{model:e}))}))},84495:(e,l,t)=>{t.d(l,{Jn:()=>o,LP:()=>r,eW:()=>i,fU:()=>s});var a=t(45465),n=t(99546);async function o(e,l,t,a){const o=(0,n.getSession)(a);try{let n=t.find((e=>e.id===o.focusedViewId));if(n?.assemblyNames[0]!==l&&(n=t.find((e=>"LinearGenomeView"===e.type&&e.assemblyNames[0]===l))),!n){const e=`${a.id}_${l}`;n=o.addView("LinearGenomeView",{id:e})}await n.navToLocString(e,l)}catch(e){console.error(e),o.notifyError(`${e}`,e)}}function s(e,l){const{selectedBookmarks:t,bookmarksWithValidAssemblies:o}=l,s=0===t.length?o:t;if("BED"===e){const e="",l={};s.forEach((e=>{const{label:t}=e,a=""===t?".":t,n=`${e.refName}\t${e.start}\t${e.end}\t${a}\n`;l[e.assemblyName]?l[e.assemblyName].push(n):l[e.assemblyName]=[n]}));for(const t in l){const n=l[t].reduce(((e,l)=>e+l),e),o=new Blob([n||""],{type:"text/x-bed;charset=utf-8"}),s=`jbrowse_bookmarks_${t}.bed`;(0,a.saveAs)(o,s)}}else{const e="chrom\tstart\tend\tlabel\tassembly_name\tcoord_range\n",l=s.map((e=>{const{label:l}=e,t=""===l?".":l,a=(0,n.assembleLocString)(e);return`${e.refName}\t${e.start+1}\t${e.end}\t${t}\t${e.assemblyName}\t${a}\n`})).reduce(((e,l)=>e+l),e),t=new Blob([l||""],{type:"text/tab-separated-values;charset=utf-8"}),o="jbrowse_bookmarks.tsv";(0,a.saveAs)(t,o)}}async function r(e){const l=function(e){let l=0;switch(e.length%4){case 3:l=1;break;case 2:l=2;break;case 0:l=0;break;default:throw new Error("base64 not a valid length")}return e+"=".repeat(l)}(e.replaceAll("-","+").replaceAll("_","/")),{toByteArray:a}=await Promise.resolve().then(t.t.bind(t,47130,19)),{inflate:n}=await t.e(7864).then(t.t.bind(t,57864,23)),o=n(a(l));return(new TextDecoder).decode(o)}async function i(e){const l=(new TextEncoder).encode(e),{deflate:a}=await t.e(7864).then(t.t.bind(t,57864,23)),{fromByteArray:n}=await Promise.resolve().then(t.t.bind(t,47130,19)),o=n(a(l)),s=o.indexOf("=");return s>0?o.slice(0,s).replaceAll("+","-").replaceAll("/","_"):o.replaceAll("+","-").replaceAll("/","_")}}}]); -//# sourceMappingURL=3199.a36b17a7.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3199.a36b17a7.chunk.js.map --- a/x/static/js/3199.a36b17a7.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3199.a36b17a7.chunk.js","mappings":"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","sources":["../../../plugins/grid-bookmark/src/GridBookmarkWidget/components/BookmarkGrid.tsx","../../../plugins/grid-bookmark/src/GridBookmarkWidget/components/AssemblySelector.tsx","../../../plugins/grid-bookmark/src/GridBookmarkWidget/components/GridBookmarkWidget.tsx","../../../plugins/grid-bookmark/src/GridBookmarkWidget/utils.ts"],"sourcesContent":["import React, { lazy } from 'react'\nimport { observer } from 'mobx-react'\nimport { Link } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { DataGrid, GRID_CHECKBOX_SELECTION_COL_DEF } from '@mui/x-data-grid'\nimport {\n getSession,\n assembleLocString,\n measureGridWidth,\n measureText,\n} from '@jbrowse/core/util'\nimport ColorPicker from '@jbrowse/core/ui/ColorPicker'\n\n// locals\nimport { navToBookmark } from '../utils'\nimport { GridBookmarkModel } from '../model'\n\nconst EditBookmarkLabelDialog = lazy(\n () => import('./dialogs/EditBookmarkLabelDialog'),\n)\n\nconst useStyles = makeStyles()(() => ({\n cell: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n}))\n\nconst BookmarkGrid = observer(function ({\n model,\n}: {\n model: GridBookmarkModel\n}) {\n const { classes } = useStyles()\n const {\n bookmarks,\n bookmarksWithValidAssemblies,\n selectedAssemblies,\n selectedBookmarks,\n } = model\n\n const session = getSession(model)\n const selectedSet = new Set(selectedAssemblies)\n const rows = bookmarks\n .filter(r => selectedSet.has(r.assemblyName))\n .map((region, index) => {\n const { assemblyName, ...rest } = region\n return {\n ...region,\n id: index,\n assemblyName,\n locString: assembleLocString(rest),\n correspondingObj: region,\n }\n })\n\n const widths = [\n 50,\n Math.max(\n measureText('Bookmark link', 12) + 30,\n measureGridWidth(rows.map(row => row.locString)),\n ),\n Math.max(\n measureText('Label', 12) + 30,\n measureGridWidth(rows.map(row => row.label)),\n ),\n Math.max(\n measureText('Assembly', 12) + 30,\n measureGridWidth(rows.map(row => row.assemblyName)),\n ),\n 100,\n ]\n\n return (\n (\n {\n event.preventDefault()\n const { views } = session\n await navToBookmark(value, row.assemblyName, views, model)\n }}\n >\n {value}\n \n ),\n },\n {\n field: 'label',\n headerName: 'Label',\n width: widths[2],\n editable: true,\n },\n {\n field: 'assemblyName',\n headerName: 'Assembly',\n width: widths[3],\n },\n {\n field: 'highlight',\n headerName: 'Highlight',\n width: widths[4],\n renderCell: ({ value, row }) => (\n {\n model.updateBookmarkHighlight(row, event)\n }}\n />\n ),\n },\n ]}\n onCellDoubleClick={({ row }) => {\n getSession(model).queueDialog(onClose => [\n EditBookmarkLabelDialog,\n { onClose, model, dialogRow: row },\n ])\n }}\n processRowUpdate={row => {\n const target = rows[row.id]!\n model.updateBookmarkLabel(target, row.label)\n return row\n }}\n onProcessRowUpdateError={e => {\n session.notifyError(`${e}`, e)\n }}\n checkboxSelection\n onRowSelectionModelChange={newRowSelectionModel => {\n if (bookmarksWithValidAssemblies.length > 0) {\n model.setSelectedBookmarks(\n newRowSelectionModel.map(value => ({\n ...rows[value as number]!,\n })),\n )\n }\n }}\n rowSelectionModel={selectedBookmarks.map(r => r.id)}\n disableRowSelectionOnClick\n />\n )\n})\n\nexport default BookmarkGrid\n","import React from 'react'\nimport { observer } from 'mobx-react'\n\nimport {\n Checkbox,\n FormControl,\n InputLabel,\n ListItemText,\n MenuItem,\n OutlinedInput,\n Select,\n} from '@mui/material'\n\n// locals\nimport { GridBookmarkModel } from '../model'\n\nconst AssemblySelector = observer(function ({\n model,\n}: {\n model: GridBookmarkModel\n}) {\n const { validAssemblies, selectedAssemblies } = model\n const noAssemblies = validAssemblies.size === 0\n const label = 'Select assemblies'\n const id = 'select-assemblies-label'\n const selectedSet = new Set(selectedAssemblies)\n const isAllSelected = [...validAssemblies].every(e => selectedSet.has(e))\n\n return (\n \n {label}\n {\n model.setSelectedAssemblies([...event.target.value])\n }}\n input={}\n renderValue={selected => selected.join(', ')}\n >\n {\n // onClickCapture allows us to avoid the parent Select onChange from triggering\n if (isAllSelected) {\n model.setSelectedAssemblies([])\n } else {\n model.setSelectedAssemblies(undefined)\n }\n event.preventDefault()\n }}\n >\n 0}\n />\n \n \n {[...validAssemblies].map(name => (\n \n \n \n \n ))}\n \n \n )\n})\n\nexport default AssemblySelector\n","import React, { lazy } from 'react'\nimport { observer } from 'mobx-react'\nimport { makeStyles } from 'tss-react/mui'\nimport { getSession } from '@jbrowse/core/util'\nimport { Alert } from '@mui/material'\nimport CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton'\n\n// locals\nimport BookmarkGrid from './BookmarkGrid'\nimport AssemblySelector from './AssemblySelector'\nimport { GridBookmarkModel } from '../model'\n\n// icons\nimport Menu from '@mui/icons-material/Menu'\nimport GetApp from '@mui/icons-material/GetApp'\nimport Publish from '@mui/icons-material/Publish'\nimport Settings from '@mui/icons-material/Settings'\nimport Palette from '@mui/icons-material/Palette'\nimport Share from '@mui/icons-material/Share'\nimport Delete from '@mui/icons-material/Delete'\n\n// lazies\nconst ExportBookmarksDialog = lazy(\n () => import('./dialogs/ExportBookmarksDialog'),\n)\nconst ImportBookmarksDialog = lazy(\n () => import('./dialogs/ImportBookmarksDialog'),\n)\nconst ShareBookmarksDialog = lazy(\n () => import('./dialogs/ShareBookmarksDialog'),\n)\nconst HighlightSettingsDialog = lazy(\n () => import('./dialogs/HighlightSettingsDialog'),\n)\nconst EditHighlightColorDialog = lazy(\n () => import('./dialogs/EditHighlightColorDialog'),\n)\nconst DeleteBookmarksDialog = lazy(\n () => import('./dialogs/DeleteBookmarksDialog'),\n)\n\nconst useStyles = makeStyles()({\n flex: {\n display: 'flex',\n },\n})\n\nconst GridBookmarkWidget = observer(function GridBookmarkWidget({\n model,\n}: {\n model: GridBookmarkModel\n}) {\n const { classes } = useStyles()\n return (\n
\n \n Click and type within the label field to annotate your\n bookmark. Double click the label field to do so within\n a dialog.\n \n
\n {\n getSession(model).queueDialog(onClose => [\n ExportBookmarksDialog,\n { onClose, model },\n ])\n },\n },\n {\n label: 'Import',\n icon: Publish,\n onClick: () => {\n getSession(model).queueDialog(onClose => [\n ImportBookmarksDialog,\n { model, onClose },\n ])\n },\n },\n {\n label: 'Delete',\n icon: Delete,\n onClick: () => {\n getSession(model).queueDialog(onClose => [\n DeleteBookmarksDialog,\n { model, onClose },\n ])\n },\n },\n {\n label: 'Share',\n icon: Share,\n onClick: () => {\n getSession(model).queueDialog(onClose => [\n ShareBookmarksDialog,\n { model, onClose },\n ])\n },\n },\n {\n label: 'Edit colors',\n icon: Palette,\n onClick: () => {\n getSession(model).queueDialog(onClose => [\n EditHighlightColorDialog,\n { model, onClose },\n ])\n },\n },\n {\n label: 'Settings',\n icon: Settings,\n onClick: () => {\n getSession(model).queueDialog(onClose => [\n HighlightSettingsDialog,\n { model, onClose },\n ])\n },\n },\n ]}\n >\n \n \n\n \n
\n \n
\n )\n})\n\nexport default GridBookmarkWidget\n","import { saveAs } from 'file-saver'\nimport { getSession, assembleLocString } from '@jbrowse/core/util'\nimport { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view'\nimport { AbstractViewModel } from '@jbrowse/core/util/types'\n\n// locals\nimport { GridBookmarkModel } from './model'\n\ntype LGV = LinearGenomeViewModel\n\ntype MaybeLGV = LGV | undefined\n\nexport async function navToBookmark(\n locString: string,\n assembly: string,\n views: AbstractViewModel[],\n model: GridBookmarkModel,\n) {\n const session = getSession(model)\n try {\n // get the focused view\n let view = views.find(view => view.id === session.focusedViewId) as MaybeLGV\n\n // check if the focused view is the appropriate assembly, if not proceed\n if (view?.assemblyNames[0] !== assembly) {\n view = views.find(\n elt =>\n // @ts-expect-error\n elt.type === 'LinearGenomeView' && elt.assemblyNames[0] === assembly,\n ) as MaybeLGV\n }\n\n // if no view is opened of the selectedAssembly, open a new\n // view with that assembly\n if (!view) {\n const newViewId = `${model.id}_${assembly}`\n view = session.addView('LinearGenomeView', {\n id: newViewId,\n }) as LGV\n }\n await view.navToLocString(locString, assembly)\n } catch (e) {\n console.error(e)\n session.notifyError(`${e}`, e)\n }\n}\n\nexport function downloadBookmarkFile(\n fileFormat: string,\n model: GridBookmarkModel,\n) {\n const { selectedBookmarks, bookmarksWithValidAssemblies } = model\n const bookmarksToDownload =\n selectedBookmarks.length === 0\n ? bookmarksWithValidAssemblies\n : selectedBookmarks\n\n if (fileFormat === 'BED') {\n const fileHeader = ''\n const fileContents: Record = {}\n bookmarksToDownload.forEach(bookmark => {\n const { label } = bookmark\n const labelVal = label === '' ? '.' : label\n const line = `${bookmark.refName}\\t${bookmark.start}\\t${bookmark.end}\\t${labelVal}\\n`\n\n if (fileContents[bookmark.assemblyName]) {\n fileContents[bookmark.assemblyName]!.push(line)\n } else {\n fileContents[bookmark.assemblyName] = [line]\n }\n })\n\n for (const assembly in fileContents) {\n const fileContent = fileContents[assembly]!.reduce(\n (a, b) => a + b,\n fileHeader,\n )\n const blob = new Blob([fileContent || ''], {\n type: 'text/x-bed;charset=utf-8',\n })\n const fileName = `jbrowse_bookmarks_${assembly}.bed`\n saveAs(blob, fileName)\n }\n } else {\n // TSV\n const fileHeader = 'chrom\\tstart\\tend\\tlabel\\tassembly_name\\tcoord_range\\n'\n\n const fileContents = bookmarksToDownload\n .map(bookmark => {\n const { label } = bookmark\n const labelVal = label === '' ? '.' : label\n const locString = assembleLocString(bookmark)\n return `${bookmark.refName}\\t${bookmark.start + 1}\\t${\n bookmark.end\n }\\t${labelVal}\\t${bookmark.assemblyName}\\t${locString}\\n`\n })\n .reduce((a, b) => a + b, fileHeader)\n\n const blob = new Blob([fileContents || ''], {\n type: 'text/tab-separated-values;charset=utf-8',\n })\n const fileName = 'jbrowse_bookmarks.tsv'\n saveAs(blob, fileName)\n }\n}\n\n/**\n * Pad the end of a base64 string with \"=\" to make it valid\n * @param b64 - unpadded b64 string\n */\nexport function b64PadSuffix(b64: string): string {\n let num = 0\n const mo = b64.length % 4\n switch (mo) {\n case 3:\n num = 1\n break\n case 2:\n num = 2\n break\n case 0:\n num = 0\n break\n default:\n throw new Error('base64 not a valid length')\n }\n return b64 + '='.repeat(num)\n}\n\n/**\n * Decode and inflate a url-safe base64 to a string\n * See {@link https://en.wikipedia.org/wiki/Base64#URL_applications}\n * @param b64 - a base64 string to decode and inflate\n */\nexport async function fromUrlSafeB64(b64: string) {\n const originalB64 = b64PadSuffix(\n b64.replaceAll('-', '+').replaceAll('_', '/'),\n )\n const { toByteArray } = await import('base64-js')\n const { inflate } = await import('pako')\n const bytes = toByteArray(originalB64)\n const inflated = inflate(bytes)\n return new TextDecoder().decode(inflated)\n}\n\n/**\n * Compress and encode a string as url-safe base64\n * See {@link https://en.wikipedia.org/wiki/Base64#URL_applications}\n * @param str- a string to compress and encode\n */\nexport async function toUrlSafeB64(str: string) {\n const bytes = new TextEncoder().encode(str)\n const { deflate } = await import('pako')\n const { fromByteArray } = await import('base64-js')\n const deflated = deflate(bytes)\n const encoded = fromByteArray(deflated)\n const pos = encoded.indexOf('=')\n return pos > 0\n ? encoded.slice(0, pos).replaceAll('+', '-').replaceAll('/', '_')\n : encoded.replaceAll('+', '-').replaceAll('/', '_')\n}\n"],"names":["EditBookmarkLabelDialog","lazy","useStyles","makeStyles","cell","whiteSpace","overflow","textOverflow","observer","model","classes","bookmarks","bookmarksWithValidAssemblies","selectedAssemblies","selectedBookmarks","session","getSession","selectedSet","Set","rows","filter","r","has","assemblyName","map","region","index","rest","id","locString","assembleLocString","correspondingObj","widths","Math","max","measureText","measureGridWidth","row","label","React","DataGrid","autoHeight","density","columns","GRID_CHECKBOX_SELECTION_COL_DEF","width","field","headerName","renderCell","value","Link","className","href","onClick","async","event","preventDefault","views","navToBookmark","editable","ColorPicker","color","onChange","updateBookmarkHighlight","onCellDoubleClick","queueDialog","onClose","dialogRow","processRowUpdate","target","updateBookmarkLabel","onProcessRowUpdateError","e","notifyError","checkboxSelection","onRowSelectionModelChange","newRowSelectionModel","length","setSelectedBookmarks","rowSelectionModel","disableRowSelectionOnClick","validAssemblies","noAssemblies","size","isAllSelected","every","FormControl","disabled","fullWidth","InputLabel","Select","labelId","multiple","setSelectedAssemblies","input","OutlinedInput","renderValue","selected","join","MenuItem","onClickCapture","undefined","Checkbox","checked","indeterminate","ListItemText","primary","name","key","includes","ExportBookmarksDialog","ImportBookmarksDialog","ShareBookmarksDialog","HighlightSettingsDialog","EditHighlightColorDialog","DeleteBookmarksDialog","flex","display","Alert","severity","CascadingMenuButton","menuItems","icon","GetApp","Publish","Delete","Share","Palette","Settings","Menu","AssemblySelector","BookmarkGrid","assembly","view","find","focusedViewId","assemblyNames","elt","type","newViewId","addView","navToLocString","console","error","downloadBookmarkFile","fileFormat","bookmarksToDownload","fileHeader","fileContents","forEach","bookmark","labelVal","line","refName","start","end","push","fileContent","reduce","a","b","blob","Blob","fileName","saveAs","fromUrlSafeB64","b64","originalB64","num","Error","repeat","b64PadSuffix","replaceAll","toByteArray","inflate","inflated","TextDecoder","decode","toUrlSafeB64","str","bytes","TextEncoder","encode","deflate","fromByteArray","encoded","pos","indexOf","slice"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3266.accbd4dc.chunk.js --- a/x/static/js/3266.accbd4dc.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3266],{35960:(e,t,a)=>{a.d(t,{A:()=>O});var o=a(7552),r=a(93878),s=a(70799),i=a(72639),l=a(93876),n=a(9547),p=a(48054),d=a(15622),c=a(58520),v=a(30627),u=a(27103),g=a(74893),b=a(69500);const y=(0,g.A)((0,b.jsx)("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"NavigateBefore"),m=(0,g.A)((0,b.jsx)("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext");var h=a(43045),x=a(51148),A=a(60129),f=a(4785);const $=(e,t)=>{const{ownerState:a}=e;return[t.root,t[a.variant],t[`size${(0,d.A)(a.size)}`],"text"===a.variant&&t[`text${(0,d.A)(a.color)}`],"outlined"===a.variant&&t[`outlined${(0,d.A)(a.color)}`],"rounded"===a.shape&&t.rounded,"page"===a.type&&t.page,("start-ellipsis"===a.type||"end-ellipsis"===a.type)&&t.ellipsis,("previous"===a.type||"next"===a.type)&&t.previousNext,("first"===a.type||"last"===a.type)&&t.firstLast]},C=(0,x.Ay)("div",{name:"MuiPaginationItem",slot:"Root",overridesResolver:$})((0,A.A)((({theme:e})=>({...e.typography.body2,borderRadius:16,textAlign:"center",boxSizing:"border-box",minWidth:32,padding:"0 6px",margin:"0 3px",color:(e.vars||e).palette.text.primary,height:"auto",[`&.${n.A.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},variants:[{props:{size:"small"},style:{minWidth:26,borderRadius:13,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,borderRadius:20,padding:"0 10px",fontSize:e.typography.pxToRem(15)}}]})))),z=(0,x.Ay)(p.A,{name:"MuiPaginationItem",slot:"Root",overridesResolver:$})((0,A.A)((({theme:e})=>({...e.typography.body2,borderRadius:16,textAlign:"center",boxSizing:"border-box",minWidth:32,height:32,padding:"0 6px",margin:"0 3px",color:(e.vars||e).palette.text.primary,[`&.${n.A.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${n.A.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},transition:e.transitions.create(["color","background-color"],{duration:e.transitions.duration.short}),"&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${n.A.selected}`]:{backgroundColor:(e.vars||e).palette.action.selected,"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,i.X4)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${n.A.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,i.X4)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)},[`&.${n.A.disabled}`]:{opacity:1,color:(e.vars||e).palette.action.disabled,backgroundColor:(e.vars||e).palette.action.selected}},variants:[{props:{size:"small"},style:{minWidth:26,height:26,borderRadius:13,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,height:40,borderRadius:20,padding:"0 10px",fontSize:e.typography.pxToRem(15)}},{props:{shape:"rounded"},style:{borderRadius:(e.vars||e).shape.borderRadius}},{props:{variant:"outlined"},style:{border:e.vars?`1px solid rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:"1px solid "+("light"===e.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),[`&.${n.A.selected}`]:{[`&.${n.A.disabled}`]:{borderColor:(e.vars||e).palette.action.disabledBackground,color:(e.vars||e).palette.action.disabled}}}},{props:{variant:"text"},style:{[`&.${n.A.selected}`]:{[`&.${n.A.disabled}`]:{color:(e.vars||e).palette.action.disabled}}}},...Object.entries(e.palette).filter((0,c.A)(["dark","contrastText"])).map((([t])=>({props:{variant:"text",color:t},style:{[`&.${n.A.selected}`]:{color:(e.vars||e).palette[t].contrastText,backgroundColor:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:(e.vars||e).palette[t].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t].main}},[`&.${n.A.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t].dark},[`&.${n.A.disabled}`]:{color:(e.vars||e).palette.action.disabled}}}}))),...Object.entries(e.palette).filter((0,c.A)(["light"])).map((([t])=>({props:{variant:"outlined",color:t},style:{[`&.${n.A.selected}`]:{color:(e.vars||e).palette[t].main,border:`1px solid ${e.vars?`rgba(${e.vars.palette[t].mainChannel} / 0.5)`:(0,i.X4)(e.palette[t].main,.5)}`,backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.activatedOpacity})`:(0,i.X4)(e.palette[t].main,e.palette.action.activatedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / calc(${e.vars.palette.action.activatedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,i.X4)(e.palette[t].main,e.palette.action.activatedOpacity+e.palette.action.focusOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${n.A.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / calc(${e.vars.palette.action.activatedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,i.X4)(e.palette[t].main,e.palette.action.activatedOpacity+e.palette.action.focusOpacity)}}}})))]})))),k=(0,x.Ay)("div",{name:"MuiPaginationItem",slot:"Icon",overridesResolver:(e,t)=>t.icon})((0,A.A)((({theme:e})=>({fontSize:e.typography.pxToRem(20),margin:"0 -8px",variants:[{props:{size:"small"},style:{fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:e.typography.pxToRem(22)}}]})))),O=o.forwardRef((function(e,t){const a=(0,f.b)({props:e,name:"MuiPaginationItem"}),{className:o,color:i="standard",component:p,components:c={},disabled:g=!1,page:x,selected:A=!1,shape:$="circular",size:O="medium",slots:R={},slotProps:w={},type:P="page",variant:S="text",...L}=a,T={...a,color:i,disabled:g,selected:A,shape:$,size:O,type:P,variant:S},M=(0,l.I)(),j=(e=>{const{classes:t,color:a,disabled:o,selected:r,size:i,shape:l,type:p,variant:c}=e,v={root:["root",`size${(0,d.A)(i)}`,c,l,"standard"!==a&&`color${(0,d.A)(a)}`,"standard"!==a&&`${c}${(0,d.A)(a)}`,o&&"disabled",r&&"selected",{page:"page",first:"firstLast",last:"firstLast","start-ellipsis":"ellipsis","end-ellipsis":"ellipsis",previous:"previousNext",next:"previousNext"}[p]],icon:["icon"]};return(0,s.A)(v,n.q,t)})(T),N={slots:{previous:R.previous??c.previous,next:R.next??c.next,first:R.first??c.first,last:R.last??c.last},slotProps:w},[I,W]=(0,h.A)("previous",{elementType:y,externalForwardedProps:N,ownerState:T}),[X,F]=(0,h.A)("next",{elementType:m,externalForwardedProps:N,ownerState:T}),[V,_]=(0,h.A)("first",{elementType:v.A,externalForwardedProps:N,ownerState:T}),[q,B]=(0,h.A)("last",{elementType:u.A,externalForwardedProps:N,ownerState:T}),H=M?{previous:"next",next:"previous",first:"last",last:"first"}[P]:P,U={previous:I,next:X,first:V,last:q}[H],D={previous:W,next:F,first:_,last:B}[H];return"start-ellipsis"===P||"end-ellipsis"===P?(0,b.jsx)(C,{ref:t,ownerState:T,className:(0,r.A)(j.root,o),children:"…"}):(0,b.jsxs)(z,{ref:t,ownerState:T,component:p,disabled:g,className:(0,r.A)(j.root,o),...L,children:["page"===P&&x,U?(0,b.jsx)(k,{...D,className:j.icon,as:U}):null]})}))},83266:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o.A,getPaginationItemUtilityClass:()=>r.q,paginationItemClasses:()=>r.A});var o=a(35960),r=a(9547)},9547:(e,t,a)=>{a.d(t,{A:()=>i,q:()=>s});var o=a(33761),r=a(85693);function s(e){return(0,r.Ay)("MuiPaginationItem",e)}const i=(0,o.A)("MuiPaginationItem",["root","page","sizeSmall","sizeLarge","text","textPrimary","textSecondary","outlined","outlinedPrimary","outlinedSecondary","rounded","ellipsis","firstLast","previousNext","focusVisible","disabled","selected","icon","colorPrimary","colorSecondary"])},30627:(e,t,a)=>{a.d(t,{A:()=>s}),a(7552);var o=a(74893),r=a(69500);const s=(0,o.A)((0,r.jsx)("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage")},27103:(e,t,a)=>{a.d(t,{A:()=>s}),a(7552);var o=a(74893),r=a(69500);const s=(0,o.A)((0,r.jsx)("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage")}}]); -//# sourceMappingURL=3266.accbd4dc.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3266.accbd4dc.chunk.js.map --- a/x/static/js/3266.accbd4dc.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3266.accbd4dc.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/internal/svg-icons/NavigateBefore.js","../../../node_modules/@mui/material/internal/svg-icons/NavigateNext.js","../../../node_modules/@mui/material/PaginationItem/PaginationItem.js","../../../node_modules/@mui/material/PaginationItem/paginationItemClasses.js","../../../node_modules/@mui/material/internal/svg-icons/FirstPage.js","../../../node_modules/@mui/material/internal/svg-icons/LastPage.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"\n}), 'NavigateBefore');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'NavigateNext');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport paginationItemClasses, { getPaginationItemUtilityClass } from \"./paginationItemClasses.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport FirstPageIcon from \"../internal/svg-icons/FirstPage.js\";\nimport LastPageIcon from \"../internal/svg-icons/LastPage.js\";\nimport NavigateBeforeIcon from \"../internal/svg-icons/NavigateBefore.js\";\nimport NavigateNextIcon from \"../internal/svg-icons/NavigateNext.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.variant === 'text' && styles[`text${capitalize(ownerState.color)}`], ownerState.variant === 'outlined' && styles[`outlined${capitalize(ownerState.color)}`], ownerState.shape === 'rounded' && styles.rounded, ownerState.type === 'page' && styles.page, (ownerState.type === 'start-ellipsis' || ownerState.type === 'end-ellipsis') && styles.ellipsis, (ownerState.type === 'previous' || ownerState.type === 'next') && styles.previousNext, (ownerState.type === 'first' || ownerState.type === 'last') && styles.firstLast];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disabled,\n selected,\n size,\n shape,\n type,\n variant\n } = ownerState;\n const slots = {\n root: ['root', `size${capitalize(size)}`, variant, shape, color !== 'standard' && `color${capitalize(color)}`, color !== 'standard' && `${variant}${capitalize(color)}`, disabled && 'disabled', selected && 'selected', {\n page: 'page',\n first: 'firstLast',\n last: 'firstLast',\n 'start-ellipsis': 'ellipsis',\n 'end-ellipsis': 'ellipsis',\n previous: 'previousNext',\n next: 'previousNext'\n }[type]],\n icon: ['icon']\n };\n return composeClasses(slots, getPaginationItemUtilityClass, classes);\n};\nconst PaginationItemEllipsis = styled('div', {\n name: 'MuiPaginationItem',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n borderRadius: 32 / 2,\n textAlign: 'center',\n boxSizing: 'border-box',\n minWidth: 32,\n padding: '0 6px',\n margin: '0 3px',\n color: (theme.vars || theme).palette.text.primary,\n height: 'auto',\n [`&.${paginationItemClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n minWidth: 26,\n borderRadius: 26 / 2,\n margin: '0 1px',\n padding: '0 4px'\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n minWidth: 40,\n borderRadius: 40 / 2,\n padding: '0 10px',\n fontSize: theme.typography.pxToRem(15)\n }\n }]\n})));\nconst PaginationItemPage = styled(ButtonBase, {\n name: 'MuiPaginationItem',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n borderRadius: 32 / 2,\n textAlign: 'center',\n boxSizing: 'border-box',\n minWidth: 32,\n height: 32,\n padding: '0 6px',\n margin: '0 3px',\n color: (theme.vars || theme).palette.text.primary,\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`&.${paginationItemClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n transition: theme.transitions.create(['color', 'background-color'], {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${paginationItemClasses.selected}`]: {\n backgroundColor: (theme.vars || theme).palette.action.selected,\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette.action.selected\n }\n },\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n },\n [`&.${paginationItemClasses.disabled}`]: {\n opacity: 1,\n color: (theme.vars || theme).palette.action.disabled,\n backgroundColor: (theme.vars || theme).palette.action.selected\n }\n },\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n minWidth: 26,\n height: 26,\n borderRadius: 26 / 2,\n margin: '0 1px',\n padding: '0 4px'\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n minWidth: 40,\n height: 40,\n borderRadius: 40 / 2,\n padding: '0 10px',\n fontSize: theme.typography.pxToRem(15)\n }\n }, {\n props: {\n shape: 'rounded'\n },\n style: {\n borderRadius: (theme.vars || theme).shape.borderRadius\n }\n }, {\n props: {\n variant: 'outlined'\n },\n style: {\n border: theme.vars ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : `1px solid ${theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'}`,\n [`&.${paginationItemClasses.selected}`]: {\n [`&.${paginationItemClasses.disabled}`]: {\n borderColor: (theme.vars || theme).palette.action.disabledBackground,\n color: (theme.vars || theme).palette.action.disabled\n }\n }\n }\n }, {\n props: {\n variant: 'text'\n },\n style: {\n [`&.${paginationItemClasses.selected}`]: {\n [`&.${paginationItemClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n }\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['dark', 'contrastText'])).map(([color]) => ({\n props: {\n variant: 'text',\n color\n },\n style: {\n [`&.${paginationItemClasses.selected}`]: {\n color: (theme.vars || theme).palette[color].contrastText,\n backgroundColor: (theme.vars || theme).palette[color].main,\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette[color].dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette[color].main\n }\n },\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette[color].dark\n },\n [`&.${paginationItemClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n }\n }\n })), ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['light'])).map(([color]) => ({\n props: {\n variant: 'outlined',\n color\n },\n style: {\n [`&.${paginationItemClasses.selected}`]: {\n color: (theme.vars || theme).palette[color].main,\n border: `1px solid ${theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / 0.5)` : alpha(theme.palette[color].main, 0.5)}`,\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.activatedOpacity})` : alpha(theme.palette[color].main, theme.palette.action.activatedOpacity),\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette[color].main, theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette[color].main, theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity)\n }\n }\n }\n }))]\n})));\nconst PaginationItemPageIcon = styled('div', {\n name: 'MuiPaginationItem',\n slot: 'Icon',\n overridesResolver: (props, styles) => styles.icon\n})(memoTheme(({\n theme\n}) => ({\n fontSize: theme.typography.pxToRem(20),\n margin: '0 -8px',\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n fontSize: theme.typography.pxToRem(18)\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n fontSize: theme.typography.pxToRem(22)\n }\n }]\n})));\nconst PaginationItem = /*#__PURE__*/React.forwardRef(function PaginationItem(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiPaginationItem'\n });\n const {\n className,\n color = 'standard',\n component,\n components = {},\n disabled = false,\n page,\n selected = false,\n shape = 'circular',\n size = 'medium',\n slots = {},\n slotProps = {},\n type = 'page',\n variant = 'text',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n disabled,\n selected,\n shape,\n size,\n type,\n variant\n };\n const isRtl = useRtl();\n const classes = useUtilityClasses(ownerState);\n const externalForwardedProps = {\n slots: {\n previous: slots.previous ?? components.previous,\n next: slots.next ?? components.next,\n first: slots.first ?? components.first,\n last: slots.last ?? components.last\n },\n slotProps\n };\n const [PreviousSlot, previousSlotProps] = useSlot('previous', {\n elementType: NavigateBeforeIcon,\n externalForwardedProps,\n ownerState\n });\n const [NextSlot, nextSlotProps] = useSlot('next', {\n elementType: NavigateNextIcon,\n externalForwardedProps,\n ownerState\n });\n const [FirstSlot, firstSlotProps] = useSlot('first', {\n elementType: FirstPageIcon,\n externalForwardedProps,\n ownerState\n });\n const [LastSlot, lastSlotProps] = useSlot('last', {\n elementType: LastPageIcon,\n externalForwardedProps,\n ownerState\n });\n const rtlAwareType = isRtl ? {\n previous: 'next',\n next: 'previous',\n first: 'last',\n last: 'first'\n }[type] : type;\n const IconSlot = {\n previous: PreviousSlot,\n next: NextSlot,\n first: FirstSlot,\n last: LastSlot\n }[rtlAwareType];\n const iconSlotProps = {\n previous: previousSlotProps,\n next: nextSlotProps,\n first: firstSlotProps,\n last: lastSlotProps\n }[rtlAwareType];\n return type === 'start-ellipsis' || type === 'end-ellipsis' ? /*#__PURE__*/_jsx(PaginationItemEllipsis, {\n ref: ref,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n children: \"\\u2026\"\n }) : /*#__PURE__*/_jsxs(PaginationItemPage, {\n ref: ref,\n ownerState: ownerState,\n component: component,\n disabled: disabled,\n className: clsx(classes.root, className),\n ...other,\n children: [type === 'page' && page, IconSlot ? /*#__PURE__*/_jsx(PaginationItemPageIcon, {\n ...iconSlotProps,\n className: classes.icon,\n as: IconSlot\n }) : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? PaginationItem.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The active color.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'standard'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'standard']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n components: PropTypes.shape({\n first: PropTypes.elementType,\n last: PropTypes.elementType,\n next: PropTypes.elementType,\n previous: PropTypes.elementType\n }),\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The current page number.\n */\n page: PropTypes.node,\n /**\n * If `true` the pagination item is selected.\n * @default false\n */\n selected: PropTypes.bool,\n /**\n * The shape of the pagination item.\n * @default 'circular'\n */\n shape: PropTypes.oneOf(['circular', 'rounded']),\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n first: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n last: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n next: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n previous: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n first: PropTypes.elementType,\n last: PropTypes.elementType,\n next: PropTypes.elementType,\n previous: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The type of pagination item.\n * @default 'page'\n */\n type: PropTypes.oneOf(['end-ellipsis', 'first', 'last', 'next', 'page', 'previous', 'start-ellipsis']),\n /**\n * The variant to use.\n * @default 'text'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['outlined', 'text']), PropTypes.string])\n} : void 0;\nexport default PaginationItem;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getPaginationItemUtilityClass(slot) {\n return generateUtilityClass('MuiPaginationItem', slot);\n}\nconst paginationItemClasses = generateUtilityClasses('MuiPaginationItem', ['root', 'page', 'sizeSmall', 'sizeLarge', 'text', 'textPrimary', 'textSecondary', 'outlined', 'outlinedPrimary', 'outlinedSecondary', 'rounded', 'ellipsis', 'firstLast', 'previousNext', 'focusVisible', 'disabled', 'selected', 'icon', 'colorPrimary', 'colorSecondary']);\nexport default paginationItemClasses;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\"\n}), 'FirstPage');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"\n}), 'LastPage');"],"names":["createSvgIcon","d","overridesResolver","props","styles","ownerState","root","variant","capitalize","size","color","shape","rounded","type","page","ellipsis","previousNext","firstLast","PaginationItemEllipsis","styled","name","slot","memoTheme","theme","typography","body2","borderRadius","textAlign","boxSizing","minWidth","padding","margin","vars","palette","text","primary","height","paginationItemClasses","disabled","opacity","action","disabledOpacity","variants","style","fontSize","pxToRem","PaginationItemPage","ButtonBase","focusVisible","backgroundColor","focus","transition","transitions","create","duration","short","hover","selected","selectedChannel","selectedOpacity","hoverOpacity","focusOpacity","border","common","onBackgroundChannel","mode","borderColor","disabledBackground","Object","entries","filter","createSimplePaletteValueFilter","map","contrastText","main","dark","mainChannel","activatedOpacity","PaginationItemPageIcon","icon","inProps","ref","className","component","components","slots","slotProps","other","isRtl","classes","first","last","previous","next","composeClasses","useUtilityClasses","externalForwardedProps","PreviousSlot","previousSlotProps","useSlot","elementType","NavigateBefore","NextSlot","nextSlotProps","NavigateNext","FirstSlot","firstSlotProps","FirstPage","LastSlot","lastSlotProps","LastPage","rtlAwareType","IconSlot","iconSlotProps","clsx","children","as","getPaginationItemUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3274.053c3df5.chunk.js --- a/x/static/js/3274.053c3df5.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3274],{31647:(e,o,t)=>{t.d(o,{A:()=>c});var a=t(7552),r=t(93878),n=t(70799),s=t(51148),i=t(4785),l=t(39339),b=t(69500);const u=(0,s.Ay)("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(e,o)=>o.root})({width:"100%",overflowX:"auto"}),c=a.forwardRef((function(e,o){const t=(0,i.b)({props:e,name:"MuiTableContainer"}),{className:a,component:s="div",...c}=t,w={...t,component:s},C=(e=>{const{classes:o}=e;return(0,n.A)({root:["root"]},l.I,o)})(w);return(0,b.jsx)(u,{ref:o,as:s,className:(0,r.A)(C.root,a),ownerState:w,...c})}))},93274:(e,o,t)=>{t.r(o),t.d(o,{default:()=>a.A,getTableContainerUtilityClass:()=>r.I,tableContainerClasses:()=>r.A});var a=t(31647),r=t(39339)},39339:(e,o,t)=>{t.d(o,{A:()=>s,I:()=>n});var a=t(33761),r=t(85693);function n(e){return(0,r.Ay)("MuiTableContainer",e)}const s=(0,a.A)("MuiTableContainer",["root"])}}]); -//# sourceMappingURL=3274.053c3df5.chunk.js.map \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3274.053c3df5.chunk.js.map --- a/x/static/js/3274.053c3df5.chunk.js.map Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"file":"static/js/3274.053c3df5.chunk.js","mappings":"yNAUA,MASMA,GAAqB,QAAO,MAAO,CACvCC,KAAM,oBACNC,KAAM,OACNC,kBAAmB,CAACC,EAAOC,IAAWA,EAAOC,MAHpB,CAIxB,CACDC,MAAO,OACPC,UAAW,SAoDb,EAlDoC,cAAiB,SAAwBC,EAASC,GACpF,MAAMN,GAAQ,OAAgB,CAC5BA,MAAOK,EACPR,KAAM,uBAEF,UACJU,EAAS,UACTC,EAAY,SACTC,GACDT,EACEU,EAAa,IACdV,EACHQ,aAEIG,EA/BkBD,KACxB,MAAM,QACJC,GACED,EAIJ,OAAO,OAHO,CACZR,KAAM,CAAC,SAEoB,IAA+BS,EAAQ,EAwBpDC,CAAkBF,GAClC,OAAoB,SAAKd,EAAoB,CAC3CU,IAAKA,EACLO,GAAIL,EACJD,WAAW,OAAKI,EAAQT,KAAMK,GAC9BG,WAAYA,KACTD,GAEP,G,oNC/CO,SAASK,EAA8BhB,GAC5C,OAAO,QAAqB,oBAAqBA,EACnD,CACA,MACA,GAD8B,OAAuB,oBAAqB,CAAC,Q","sources":["../../../node_modules/@mui/material/TableContainer/TableContainer.js","../../../node_modules/@mui/material/TableContainer/tableContainerClasses.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getTableContainerUtilityClass } from \"./tableContainerClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableContainerUtilityClass, classes);\n};\nconst TableContainerRoot = styled('div', {\n name: 'MuiTableContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n width: '100%',\n overflowX: 'auto'\n});\nconst TableContainer = /*#__PURE__*/React.forwardRef(function TableContainer(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableContainer'\n });\n const {\n className,\n component = 'div',\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TableContainerRoot, {\n ref: ref,\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableContainer.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally `Table`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableContainer;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableContainerUtilityClass(slot) {\n return generateUtilityClass('MuiTableContainer', slot);\n}\nconst tableContainerClasses = generateUtilityClasses('MuiTableContainer', ['root']);\nexport default tableContainerClasses;"],"names":["TableContainerRoot","name","slot","overridesResolver","props","styles","root","width","overflowX","inProps","ref","className","component","other","ownerState","classes","useUtilityClasses","as","getTableContainerUtilityClass"],"sourceRoot":""} \ No newline at end of file diff -r 49f3d3878413 -r fd0fc6fdc7c5 x/static/js/3301.db457761.chunk.js --- a/x/static/js/3301.db457761.chunk.js Sat Oct 05 23:58:05 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -/*! For license information please see 3301.db457761.chunk.js.LICENSE.txt */ -"use strict";(globalThis.webpackChunk_jbrowse_web=globalThis.webpackChunk_jbrowse_web||[]).push([[3301],{85120:(e,t,n)=>{n.d(t,{A:()=>re});var r=n(73123),i=Math.abs,a=String.fromCharCode,o=Object.assign;function l(e){return e.trim()}function u(e,t,n){return e.replace(t,n)}function s(e,t){return e.indexOf(t)}function c(e,t){return 0|e.charCodeAt(t)}function f(e,t,n){return e.slice(t,n)}function d(e){return e.length}function p(e){return e.length}function h(e,t){return t.push(e),e}var b=1,v=1,y=0,g=0,m=0,w="";function _(e,t,n,r,i,a,o){return{value:e,root:t,parent:n,type:r,props:i,children:a,line:b,column:v,length:o,return:""}}function S(e,t){return o(_("",null,null,"",null,null,0),e,{length:-e.length},t)}function k(){return m=g>0?c(w,--g):0,v--,10===m&&(v=1,b--),m}function O(){return m=g2||j(m)>3?"":" "}function I(e,t){for(;--t&&O()&&!(m<48||m>102||m>57&&m<65||m>70&&m<97););return x(e,A()+(t<6&&32==P()&&32==O()))}function R(e){for(;O();)switch(m){case e:return g;case 34:case 39:34!==e&&39!==e&&R(m);break;case 40:41===e&&R(e);break;case 92:O()}return g}function M(e,t){for(;O()&&e+m!==57&&(e+m!==84||47!==P()););return"/*"+x(t,g-1)+"*"+a(47===e?e:O())}function L(e){for(;!j(P());)O();return x(e,g)}var D="-ms-",z="-moz-",V="-webkit-",$="comm",F="rule",B="decl",U="@keyframes";function H(e,t){for(var n="",r=p(e),i=0;i0&&d(z)-y&&h(m>32?Y(z+";",r,n,y-1):Y(u(z," ","")+";",r,n,y-2),p);break;case 59:z+=";";default:if(h(D=q(z,t,n,b,v,i,f,C,E=[],R=[],y),o),123===j)if(0===v)G(z,t,D,D,E,o,y,f,R);else switch(99===g&&110===c(z,3)?100:g){case 100:case 108:case 109:case 115:G(e,D,D,r&&h(q(e,D,D,0,0,i,f,C,i,E=[],y),R),i,R,y,f,r?E:R);break;default:G(z,D,D,D,[""],R,0,f,R)}}b=v=m=0,_=x=1,C=z="",y=l;break;case 58:y=1+d(z),m=w;default:if(_<1)if(123==j)--_;else if(125==j&&0==_++&&125==k())continue;switch(z+=a(j),j*_){case 38:x=v>0?1:(z+="\f",-1);break;case 44:f[b++]=(d(z)-1)*x,x=1;break;case 64:45===P()&&(z+=T(O())),g=P(),v=y=d(C=z+=L(A())),j++;break;case 45:45===w&&2==d(z)&&(_=0)}}return o}function q(e,t,n,r,a,o,s,c,d,h,b){for(var v=a-1,y=0===a?o:[""],g=p(y),m=0,w=0,S=0;m0?y[k]+" "+O:u(O,/&\f/g,y[k])))&&(d[S++]=P);return _(e,t,n,0===a?F:c,d,h,b)}function Q(e,t,n){return _(e,t,n,$,a(m),f(e,2,-2),0)}function Y(e,t,n,r){return _(e,t,n,B,f(e,0,r),f(e,r+1,-1),r)}var X=function(e,t,n){for(var r=0,i=0;r=i,i=P(),38===r&&12===i&&(t[n]=1),!j(i);)O();return x(e,g)},J=new WeakMap,Z=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||J.get(n))&&!r){J.set(e,!0);for(var i=[],o=function(e,t){return E(function(e,t){var n=-1,r=44;do{switch(j(r)){case 0:38===r&&12===P()&&(t[n]=1),e[n]+=X(g-1,t,n);break;case 2:e[n]+=T(r);break;case 4:if(44===r){e[++n]=58===P()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=a(r)}}while(r=O());return e}(C(e),t))}(t,i),l=n.props,u=0,s=0;u6)switch(c(e,t+1)){case 109:if(45!==c(e,t+4))break;case 102:return u(e,/(.+:)(.+)-([^]+)/,"$1"+V+"$2-$3$1"+z+(108==c(e,t+3)?"$3":"$2-$3"))+e;case 115:return~s(e,"stretch")?te(u(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==c(e,t+1))break;case 6444:switch(c(e,d(e)-3-(~s(e,"!important")&&10))){case 107:return u(e,":",":"+V)+e;case 101:return u(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+V+(45===c(e,14)?"inline-":"")+"box$3$1"+V+"$2$3$1"+D+"$2box$3")+e}break;case 5936:switch(c(e,t+11)){case 114:return V+e+D+u(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return V+e+D+u(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return V+e+D+u(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return V+e+D+e+e}return e}var ne=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case B:e.return=te(e.value,e.length);break;case U:return H([S(e,{value:u(e.value,"@","@"+V)})],r);case F:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return H([S(e,{props:[u(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return H([S(e,{props:[u(t,/:(plac\w+)/,":"+V+"input-$1")]}),S(e,{props:[u(t,/:(plac\w+)/,":-moz-$1")]}),S(e,{props:[u(t,/:(plac\w+)/,D+"input-$1")]})],r)}return""}))}}],re=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var i,a,o=e.stylisPlugins||ne,l={},u=[];i=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n{function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{A:()=>r})},90722:(e,t,n)=>{n.d(t,{C:()=>o,T:()=>s,_:()=>l,w:()=>u});var r=n(7552),i=n(85120),a=(n(53760),n(20387),r.createContext("undefined"!=typeof HTMLElement?(0,i.A)({key:"css"}):null)),o=a.Provider,l=function(){return(0,r.useContext)(a)},u=function(e){return(0,r.forwardRef)((function(t,n){var i=(0,r.useContext)(a);return e(t,i,n)}))},s=r.createContext({})},64761:(e,t,n)=>{n.d(t,{AH:()=>s,i7:()=>c,mL:()=>u});var r=n(90722),i=n(7552),a=n(92005),o=n(20387),l=n(53760),u=(n(85120),n(806),(0,r.w)((function(e,t){var n=e.styles,u=(0,l.J)([n],void 0,i.useContext(r.T)),s=i.useRef();return(0,o.i)((function(){var e=t.key+"-global",n=new t.sheet.constructor({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),r=!1,i=document.querySelector('style[data-emotion="'+e+" "+u.name+'"]');return t.sheet.tags.length&&(n.before=t.sheet.tags[0]),null!==i&&(r=!0,i.setAttribute("data-emotion",e),n.hydrate([i])),s.current=[n,r],function(){n.flush()}}),[t]),(0,o.i)((function(){var e=s.current,n=e[0];if(e[1])e[1]=!1;else{if(void 0!==u.next&&(0,a.sk)(t,u.next,!0),n.tags.length){var r=n.tags[n.tags.length-1].nextElementSibling;n.before=r,n.flush()}t.insert("",u,n,!1)}}),[t,u.name]),null})));function s(){for(var e=arguments.length,t=new Array(e),n=0;n{n.d(t,{J:()=>v});var r={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},i=n(39389),a=!1,o=/[A-Z]|^ms/g,l=/_EMO_([^_]+?)_([^]*?)_EMO_/g,u=function(e){return 45===e.charCodeAt(1)},s=function(e){return null!=e&&"boolean"!=typeof e},c=(0,i.A)((function(e){return u(e)?e:e.replace(o,"-$&").toLowerCase()})),f=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(l,(function(e,t,n){return h={name:t,styles:n,next:h},t}))}return 1===r[e]||u(e)||"number"!=typeof t||0===t?t:t+"px"},d="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function p(e,t,n){if(null==n)return"";var r=n;if(void 0!==r.__emotion_styles)return r;switch(typeof n){case"boolean":return"";case"object":var i=n;if(1===i.anim)return h={name:i.name,styles:i.styles,next:h},i.name;var o=n;if(void 0!==o.styles){var l=o.next;if(void 0!==l)for(;void 0!==l;)h={name:l.name,styles:l.styles,next:h},l=l.next;return o.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var i=0;i=4;++r,i-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(i){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(i)+u;return{name:s,styles:i,next:h}}},73123:(e,t,n)=>{n.d(t,{v:()=>r});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t{var r;n.d(t,{i:()=>l,s:()=>o});var i=n(7552),a=!!(r||(r=n.t(i,2))).useInsertionEffect&&(r||(r=n.t(i,2))).useInsertionEffect,o=a||function(e){return e()},l=a||i.useLayoutEffect},92005:(e,t,n)=>{function r(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}n.d(t,{Rk:()=>r,SF:()=>i,sk:()=>a});var i=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},a=function(e,t,n){i(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+r:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}}},16179:(e,t,n)=>{n.d(t,{qy:()=>a,rf:()=>o}),n(7552);var r=n(69743);n(69500);const i="function"==typeof(0,r.Dp)({}),a=(e,t)=>({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%",...t&&!e.vars&&{colorScheme:e.palette.mode}}),o=e=>({color:(e.vars||e).palette.text.primary,...e.typography.body1,backgroundColor:(e.vars||e).palette.background.default,"@media print":{backgroundColor:(e.vars||e).palette.common.white}}),l=(e,t=!1)=>{const n={};t&&e.colorSchemes&&"function"==typeof e.getColorSchemeSelector&&Object.entries(e.colorSchemes).forEach((([t,r])=>{const i=e.getColorSchemeSelector(t);i.startsWith("@")?n[i]={":root":{colorScheme:r.palette?.mode}}:n[i.replace(/\s*&/,"")]={colorScheme:r.palette?.mode}}));let r={html:a(e,t),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:e.typography.fontWeightBold},body:{margin:0,...o(e),"&::backdrop":{backgroundColor:(e.vars||e).palette.background.default}},...n};const i=e.components?.MuiCssBaseline?.styleOverrides;return i&&(r=[r,i]),r},u="mui-ecs";(0,r.Dp)(i?({theme:e,enableColorScheme:t})=>l(e,t):({theme:e})=>(e=>{const t=l(e,!1),n=Array.isArray(t)?t[0]:t;return!e.vars&&n&&(n.html[`:root:has(${u})`]={colorScheme:e.palette.mode}),e.colorSchemes&&Object.entries(e.colorSchemes).forEach((([t,r])=>{const i=e.getColorSchemeSelector(t);i.startsWith("@")?n[i]={[`:root:not(:has(.${u}))`]:{colorScheme:r.palette?.mode}}:n[i.replace(/\s*&/,"")]={[`&:not(:has(.${u}))`]:{colorScheme:r.palette?.mode}}})),t})(e))},4785:(e,t,n)=>{n.d(t,{b:()=>i}),n(7552);var r=n(53173);function i(e){return(0,r.b)(e)}n(69500)},46033:(e,t,n)=>{n.d(t,{A:()=>r});const r={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"}},53954:(e,t,n)=>{n.d(t,{A:()=>r});const r={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"}},55194:(e,t,n)=>{n.d(t,{A:()=>r});const r={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"}},37231:(e,t,n)=>{n.d(t,{A:()=>r});const r={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"}},8998:(e,t,n)=>{n.d(t,{A:()=>r});const r={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"}},21699:(e,t,n)=>{n.d(t,{Ay:()=>u,Qw:()=>l,UL:()=>o});var r=n(4705),i=n(28875);const a=[...Array(25)].map(((e,t)=>{if(0===t)return"none";const n=(0,i.A)(t);return`linear-gradient(rgba(255 255 255 / ${n}), rgba(255 255 255 / ${n}))`}));function o(e){return{inputPlaceholder:"dark"===e?.5:.42,inputUnderline:"dark"===e?.7:.42,switchTrackDisabled:"dark"===e?.2:.12,switchTrack:"dark"===e?.3:.38}}function l(e){return"dark"===e?a:[]}function u(e){const{palette:t={mode:"light"},opacity:n,overlays:i,...a}=e,u=(0,r.Ay)(t);return{palette:u,opacity:{...o(u.mode),...n},overlays:i||l(u.mode),...a}}},90841:(e,t,n)=>{function r(e,t){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...t}}n.d(t,{A:()=>r})},4705:(e,t,n)=>{n.d(t,{Ay:()=>y});var r=n(51569),i=n(78745),a=n(72639);const o={black:"#000",white:"#fff"};var l=n(55194);const u={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"};var s=n(8998),c=n(37231),f=n(46033);const d={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"};var p=n(53954);const h={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:o.white,default:o.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},b={text:{primary:o.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:o.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function v(e,t,n,r){const i=r.light||r,o=r.dark||1.5*r;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=(0,a.a)(e.main,i):"dark"===t&&(e.dark=(0,a.e$)(e.main,o)))}function y(e){const{mode:t="light",contrastThreshold:n=3,tonalOffset:y=.2,...g}=e,m=e.primary||function(e="light"){return"dark"===e?{main:f.A[200],light:f.A[50],dark:f.A[400]}:{main:f.A[700],light:f.A[400],dark:f.A[800]}}(t),w=e.secondary||function(e="light"){return"dark"===e?{main:u[200],light:u[50],dark:u[400]}:{main:u[500],light:u[300],dark:u[700]}}(t),_=e.error||function(e="light"){return"dark"===e?{main:s.A[500],light:s.A[300],dark:s.A[700]}:{main:s.A[700],light:s.A[400],dark:s.A[800]}}(t),S=e.info||function(e="light"){return"dark"===e?{main:d[400],light:d[300],dark:d[700]}:{main:d[700],light:d[500],dark:d[900]}}(t),k=e.success||function(e="light"){return"dark"===e?{main:p.A[400],light:p.A[300],dark:p.A[700]}:{main:p.A[800],light:p.A[500],dark:p.A[900]}}(t),O=e.warning||function(e="light"){return"dark"===e?{main:c.A[400],light:c.A[300],dark:c.A[700]}:{main:"#ed6c02",light:c.A[500],dark:c.A[900]}}(t);function P(e){return(0,a.eM)(e,b.text.primary)>=n?b.text.primary:h.text.primary}const A=({color:e,name:t,mainShade:n=500,lightShade:i=300,darkShade:a=700})=>{if(!(e={...e}).main&&e[n]&&(e.main=e[n]),!e.hasOwnProperty("main"))throw new Error((0,r.A)(11,t?` (${t})`:"",n));if("string"!=typeof e.main)throw new Error((0,r.A)(12,t?` (${t})`:"",JSON.stringify(e.main)));return v(e,"light",i,y),v(e,"dark",a,y),e.contrastText||(e.contrastText=P(e.main)),e},x={dark:b,light:h};return(0,i.A)({common:{...o},mode:t,primary:A({color:m,name:"primary"}),secondary:A({color:w,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:A({color:_,name:"error"}),warning:A({color:O,name:"warning"}),info:A({color:S,name:"info"}),success:A({color:k,name:"success"}),grey:l.A,contrastThreshold:n,getContrastText:P,augmentColor:A,tonalOffset:y,...x[t]},g)}},89022:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(4705),i=n(17405),a=n(86501);function o(e,t,n){e.colorSchemes&&n&&(e.colorSchemes[t]={...!0!==n&&n,palette:(0,r.Ay)({...!0===n?{}:n.palette,mode:t})})}function l(e={},...t){const{palette:n,cssVariables:r=!1,colorSchemes:l=(n?void 0:{light:!0}),defaultColorScheme:u=n?.mode,...s}=e,c=u||"light",f=l?.[c],d={...l,...n?{[c]:{..."boolean"!=typeof f&&f,palette:n}}:void 0};if(!1===r){if(!("colorSchemes"in e))return(0,a.A)(e,...t);let r=n;"palette"in e||d[c]&&(!0!==d[c]?r=d[c].palette:"dark"===c&&(r={mode:"dark"}));const i=(0,a.A)({...e,palette:r},...t);return i.defaultColorScheme=c,i.colorSchemes=d,"light"===i.palette.mode&&(i.colorSchemes.light={...!0!==d.light&&d.light,palette:i.palette},o(i,"dark",d.dark)),"dark"===i.palette.mode&&(i.colorSchemes.dark={...!0!==d.dark&&d.dark,palette:i.palette},o(i,"light",d.light)),i}return n||"light"in d||"light"!==c||(d.light=!0),(0,i.A)({...s,colorSchemes:d,defaultColorScheme:c,..."boolean"!=typeof r&&r},...t)}},86501:(e,t,n)=>{n.d(t,{D:()=>v,A:()=>y});var r=n(51569),i=n(78745),a=n(94177),o=n(76795),l=n(72861),u=n(90841),s=n(4705),c=n(34558);function f(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,0.2)`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,0.14)`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,0.12)`].join(",")}const d=["none",f(0,2,1,-1,0,1,1,0,0,1,3,0),f(0,3,1,-2,0,2,2,0,0,1,5,0),f(0,3,3,-2,0,3,4,0,0,1,8,0),f(0,2,4,-1,0,4,5,0,0,1,10,0),f(0,3,5,-1,0,5,8,0,0,1,14,0),f(0,3,5,-1,0,6,10,0,0,1,18,0),f(0,4,5,-2,0,7,10,1,0,2,16,1),f(0,5,5,-3,0,8,10,1,0,3,14,2),f(0,5,6,-3,0,9,12,1,0,3,16,2),f(0,6,6,-3,0,10,14,1,0,4,18,3),f(0,6,7,-4,0,11,15,1,0,4,20,3),f(0,7,8,-4,0,12,17,2,0,5,22,4),f(0,7,8,-4,0,13,19,2,0,5,24,4),f(0,7,9,-4,0,14,21,2,0,5,26,4),f(0,8,9,-5,0,15,22,2,0,6,28,5),f(0,8,10,-5,0,16,24,2,0,6,30,5),f(0,8,11,-5,0,17,26,2,0,6,32,5),f(0,9,11,-5,0,18,28,2,0,7,34,6),f(0,9,12,-6,0,19,29,2,0,7,36,6),f(0,10,13,-6,0,20,31,3,0,8,38,7),f(0,10,13,-6,0,21,33,3,0,8,40,7),f(0,10,14,-6,0,22,35,3,0,8,42,7),f(0,11,14,-7,0,23,36,3,0,9,44,8),f(0,11,15,-7,0,24,38,3,0,9,46,8)];var p=n(94479);const h={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function b(e={},...t){const{breakpoints:n,mixins:f={},spacing:b,palette:v={},transitions:y={},typography:g={},shape:m,...w}=e;if(e.vars)throw new Error((0,r.A)(20));const _=(0,s.Ay)(v),S=(0,l.A)(e);let k=(0,i.A)(S,{mixins:(0,u.A)(S.breakpoints,f),palette:_,shadows:d.slice(),typography:(0,c.A)(_,g),transitions:(0,p.Ay)(y),zIndex:{...h}});return k=(0,i.A)(k,w),k=t.reduce(((e,t)=>(0,i.A)(e,t)),k),k.unstable_sxConfig={...a.A,...w?.unstable_sxConfig},k.unstable_sx=function(e){return(0,o.A)({sx:e,theme:this})},k}function v(...e){return b(...e)}const y=b},17405:(e,t,n)=>{n.d(t,{A:()=>x});var r=n(51569),i=n(78745);function a(e=""){function t(...n){if(!n.length)return"";const r=n[0];return"string"!=typeof r||r.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, ${r}`:`, var(--${e?`${e}-`:""}${r}${t(...n.slice(1))})`}return(n,...r)=>`var(--${e?`${e}-`:""}${n}${t(...r)})`}var o=n(81459),l=n(34901);function u(e){const t={};return Object.entries(e).forEach((e=>{const[n,r]=e;"object"==typeof r&&(t[n]=`${r.fontStyle?`${r.fontStyle} `:""}${r.fontVariant?`${r.fontVariant} `:""}${r.fontWeight?`${r.fontWeight} `:""}${r.fontStretch?`${r.fontStretch} `:""}${r.fontSize||""}${r.lineHeight?`/${r.lineHeight} `:""}${r.fontFamily||""}`)})),t}const s=(e,t,n,r=[])=>{let i=e;t.forEach(((e,a)=>{a===t.length-1?Array.isArray(i)?i[Number(e)]=n:i&&"object"==typeof i&&(i[e]=n):i&&"object"==typeof i&&(i[e]||(i[e]=r.includes(e)?[]:{}),i=i[e])}))};function c(e,t){const{prefix:n,shouldSkipGeneratingVar:r}=t||{},i={},a={},o={};var l,u;return l=(e,t,l)=>{if(!("string"!=typeof t&&"number"!=typeof t||r&&r(e,t))){const r=`--${n?`${n}-`:""}${e.join("-")}`,u=((e,t)=>"number"==typeof t?["lineHeight","fontWeight","opacity","zIndex"].some((t=>e.includes(t)))||e[e.length-1].toLowerCase().includes("opacity")?t:`${t}px`:t)(e,t);Object.assign(i,{[r]:u}),s(a,e,`var(${r})`,l),s(o,e,`var(${r}, ${u})`,l)}},u=e=>"vars"===e[0],function e(t,n=[],r=[]){Object.entries(t).forEach((([t,i])=>{(!u||u&&!u([...n,t]))&&null!=i&&("object"==typeof i&&Object.keys(i).length>0?e(i,[...n,t],Array.isArray(i)?[...r,t]:r):l([...n,t],i,r))}))}(e),{css:i,vars:a,varsWithDefaults:o}}const f=function(e,t={}){const{getSelector:n=g,disableCssColorScheme:r,colorSchemeSelector:a}=t,{colorSchemes:o={},components:l,defaultColorScheme:u="light",...s}=e,{vars:f,css:d,varsWithDefaults:p}=c(s,t);let h=p;const b={},{[u]:v,...y}=o;if(Object.entries(y||{}).forEach((([e,n])=>{const{vars:r,css:a,varsWithDefaults:o}=c(n,t);h=(0,i.A)(h,o),b[e]={css:a,vars:r}})),v){const{css:e,vars:n,varsWithDefaults:r}=c(v,t);h=(0,i.A)(h,r),b[u]={css:e,vars:n}}function g(t,n){let r=a;if("class"===a&&(r=".%s"),"data"===a&&(r="[data-%s]"),a?.startsWith("data-")&&!a.includes("%s")&&(r=`[${a}="%s"]`),t){if("media"===r){if(e.defaultColorScheme===t)return":root";const r=o[t]?.palette?.mode||t;return{[`@media (prefers-color-scheme: ${r})`]:{":root":n}}}if(r)return e.defaultColorScheme===t?`:root, ${r.replace("%s",String(t))}`:r.replace("%s",String(t))}return":root"}return{vars:h,generateThemeVars:()=>{let e={...f};return Object.entries(b).forEach((([,{vars:t}])=>{e=(0,i.A)(e,t)})),e},generateStyleSheets:()=>{const t=[],i=e.defaultColorScheme||"light";function a(e,n){Object.keys(n).length&&t.push("string"==typeof e?{[e]:{...n}}:e)}a(n(void 0,{...d}),d);const{[i]:l,...u}=b;if(l){const{css:e}=l,t=o[i]?.palette?.mode,u=!r&&t?{colorScheme:t,...e}:{...e};a(n(i,{...u}),u)}return Object.entries(u).forEach((([e,{css:t}])=>{const i=o[e]?.palette?.mode,l=!r&&i?{colorScheme:i,...t}:{...t};a(n(e,{...l}),l)})),t}}};var d=n(94177),p=n(76795),h=n(72639),b=n(86501),v=n(21699),y=n(59542),g=n(80040);const m=e=>(t,n)=>{const r=e.colorSchemeSelector;let i=r;if("class"===r&&(i=".%s"),"data"===r&&(i="[data-%s]"),r?.startsWith("data-")&&!r.includes("%s")&&(i=`[${r}="%s"]`),e.defaultColorScheme===t){if("dark"===t){const r={};return(0,g.A)(e.cssVarPrefix).forEach((e=>{r[e]=n[e],delete n[e]})),"media"===i?{":root":n,"@media (prefers-color-scheme: dark)":{":root":r}}:i?{[i.replace("%s",t)]:r,[`:root, ${i.replace("%s",t)}`]:n}:{":root":{...n,...r}}}if(i&&"media"!==i)return`:root, ${i.replace("%s",String(t))}`}else if(t){if("media"===i)return{[`@media (prefers-color-scheme: ${String(t)})`]:{":root":n}};if(i)return i.replace("%s",String(t))}return":root"};function w(e={}){const t={...e};return function e(t){const n=Object.entries(t);for(let a=0;a{try{return e()}catch(e){}},P=(e="mui")=>a(e);function A(e,t,n,r){if(!t)return;t=!0===t?{}:t;const i="dark"===r?"dark":"light";if(!n)return void(e[r]=(0,v.Ay)({...t,palette:{mode:i,...t?.palette}}));const{palette:a,...o}=(0,b.A)({...n,palette:{mode:i,...t?.palette}});return e[r]={...t,palette:a,opacity:{...(0,v.UL)(i),...t?.opacity},overlays:t?.overlays||(0,v.Qw)(i)},o}function x(e={},...t){const{colorSchemes:n={light:!0},defaultColorScheme:a,disableCssColorScheme:s=!1,cssVarPrefix:c="mui",shouldSkipGeneratingVar:b=y.A,colorSchemeSelector:v=(n.light&&n.dark?"media":void 0),...g}=e,x=Object.keys(n)[0],j=a||(n.light&&"light"!==x?"light":x),C=P(c),{[j]:E,light:T,dark:N,...I}=n,R={...I};let M=E;if(("dark"===j&&!("dark"in n)||"light"===j&&!("light"in n))&&(M=!0),!M)throw new Error((0,r.A)(21,j));const L=A(R,M,g,j);T&&!R.light&&A(R,T,void 0,"light"),N&&!R.dark&&A(R,N,void 0,"dark");let D={defaultColorScheme:j,...L,cssVarPrefix:c,colorSchemeSelector:v,getCssVar:C,colorSchemes:R,font:{...u(L.typography),...L.font},spacing:(z=g.spacing,"number"==typeof z?`${z}px`:"string"==typeof z||"function"==typeof z||Array.isArray(z)?z:"8px")};var z;Object.keys(D.colorSchemes).forEach((e=>{const t=D.colorSchemes[e].palette,n=e=>{const n=e.split("-"),r=n[1],i=n[2];return C(e,t[r][i])};var r;if("light"===t.mode&&(_(t.common,"background","#fff"),_(t.common,"onBackground","#000")),"dark"===t.mode&&(_(t.common,"background","#000"),_(t.common,"onBackground","#fff")),r=t,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"].forEach((e=>{r[e]||(r[e]={})})),"light"===t.mode){_(t.Alert,"errorColor",(0,h.Nd)(t.error.light,.6)),_(t.Alert,"infoColor",(0,h.Nd)(t.info.light,.6)),_(t.Alert,"successColor",(0,h.Nd)(t.success.light,.6)),_(t.Alert,"warningColor",(0,h.Nd)(t.warning.light,.6)),_(t.Alert,"errorFilledBg",n("palette-error-main")),_(t.Alert,"infoFilledBg",n("palette-info-main")),_(t.Alert,"successFilledBg",n("palette-success-main")),_(t.Alert,"warningFilledBg",n("palette-warning-main")),_(t.Alert,"errorFilledColor",O((()=>t.getContrastText(t.error.main)))),_(t.Alert,"infoFilledColor",O((()=>t.getContrastText(t.info.main)))),_(t.Alert,"successFilledColor",O((()=>t.getContrastText(t.success.main)))),_(t.Alert,"warningFilledColor",O((()=>t.getContrastText(t.warning.main)))),_(t.Alert,"errorStandardBg",(0,h.j4)(t.error.light,.9)),_(t.Alert,"infoStandardBg",(0,h.j4)(t.info.light,.9)),_(t.Alert,"successStandardBg",(0,h.j4)(t.success.light,.9)),_(t.Alert,"warningStandardBg",(0,h.j4)(t.warning.light,.9)),_(t.Alert,"errorIconColor",n("palette-error-main")),_(t.Alert,"infoIconColor",n("palette-info-main")),_(t.Alert,"successIconColor",n("palette-success-main")),_(t.Alert,"warningIconColor",n("palette-warning-main")),_(t.AppBar,"defaultBg",n("palette-grey-100")),_(t.Avatar,"defaultBg",n("palette-grey-400")),_(t.Button,"inheritContainedBg",n("palette-grey-300")),_(t.Button,"inheritContainedHoverBg",n("palette-grey-A100")),_(t.Chip,"defaultBorder",n("palette-grey-400")),_(t.Chip,"defaultAvatarColor",n("palette-grey-700")),_(t.Chip,"defaultIconColor",n("palette-grey-700")),_(t.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),_(t.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),_(t.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),_(t.LinearProgress,"primaryBg",(0,h.j4)(t.primary.main,.62)),_(t.LinearProgress,"secondaryBg",(0,h.j4)(t.secondary.main,.62)),_(t.LinearProgress,"errorBg",(0,h.j4)(t.error.main,.62)),_(t.LinearProgress,"infoBg",(0,h.j4)(t.info.main,.62)),_(t.LinearProgress,"successBg",(0,h.j4)(t.success.main,.62)),_(t.LinearProgress,"warningBg",(0,h.j4)(t.warning.main,.62)),_(t.Skeleton,"bg",`rgba(${n("palette-text-primaryChannel")} / 0.11)`),_(t.Slider,"primaryTrack",(0,h.j4)(t.primary.main,.62)),_(t.Slider,"secondaryTrack",(0,h.j4)(t.secondary.main,.62)),_(t.Slider,"errorTrack",(0,h.j4)(t.error.main,.62)),_(t.Slider,"infoTrack",(0,h.j4)(t.info.main,.62)),_(t.Slider,"successTrack",(0,h.j4)(t.success.main,.62)),_(t.Slider,"warningTrack",(0,h.j4)(t.warning.main,.62));const e=(0,h.Y9)(t.background.default,.8);_(t.SnackbarContent,"bg",e),_(t.SnackbarContent,"color",O((()=>t.getContrastText(e)))),_(t.SpeedDialAction,"fabHoverBg",(0,h.Y9)(t.background.paper,.15)),_(t.StepConnector,"border",n("palette-grey-400")),_(t.StepContent,"border",n("palette-grey-400")),_(t.Switch,"defaultColor",n("palette-common-white")),_(t.Switch,"defaultDisabledColor",n("palette-grey-100")),_(t.Switch,"primaryDisabledColor",(0,h.j4)(t.primary.main,.62)),_(t.Switch,"secondaryDisabledColor",(0,h.j4)(t.secondary.main,.62)),_(t.Switch,"errorDisabledColor",(0,h.j4)(t.error.main,.62)),_(t.Switch,"infoDisabledColor",(0,h.j4)(t.info.main,.62)),_(t.Switch,"successDisabledColor",(0,h.j4)(t.success.main,.62)),_(t.Switch,"warningDisabledColor",(0,h.j4)(t.warning.main,.62)),_(t.TableCell,"border",(0,h.j4)((0,h.Cg)(t.divider,1),.88)),_(t.Tooltip,"bg",(0,h.Cg)(t.grey[700],.92))}if("dark"===t.mode){_(t.Alert,"errorColor",(0,h.j4)(t.error.light,.6)),_(t.Alert,"infoColor",(0,h.j4)(t.info.light,.6)),_(t.Alert,"successColor",(0,h.j4)(t.success.light,.6)),_(t.Alert,"warningColor",(0,h.j4)(t.warning.light,.6)),_(t.Alert,"errorFilledBg",n("palette-error-dark")),_(t.Alert,"infoFilledBg",n("palette-info-dark")),_(t.Alert,"successFilledBg",n("palette-success-dark")),_(t.Alert,"warningFilledBg",n("palette-warning-dark")),_(t.Alert,"errorFilledColor",O((()=>t.getContrastText(t.error.dark)))),_(t.Alert,"infoFilledColor",O((()=>t.getContrastText(t.info.dark)))),_(t.Alert,"successFilledColor",O((()=>t.getContrastText(t.success.dark)))),_(t.Alert,"warningFilledColor",O((()=>t.getContrastText(t.warning.dark)))),_(t.Alert,"errorStandardBg",(0,h.Nd)(t.error.light,.9)),_(t.Alert,"infoStandardBg",(0,h.Nd)(t.info.light,.9)),_(t.Alert,"successStandardBg",(0,h.Nd)(t.success.light,.9)),_(t.Alert,"warningStandardBg",(0,h.Nd)(t.warning.light,.9)),_(t.Alert,"errorIconColor",n("palette-error-main")),_(t.Alert,"infoIconColor",n("palette-info-main")),_(t.Alert,"successIconColor",n("palette-success-main")),_(t.Alert,"warningIconColor",n("palette-warning-main")),_(t.AppBar,"defaultBg",n("palette-grey-900")),_(t.AppBar,"darkBg",n("palette-background-paper")),_(t.AppBar,"darkColor",n("palette-text-primary")),_(t.Avatar,"defaultBg",n("palette-grey-600")),_(t.Button,"inheritContainedBg",n("palette-grey-800")),_(t.Button,"inheritContainedHoverBg",n("palette-grey-700")),_(t.Chip,"defaultBorder",n("palette-grey-700")),_(t.Chip,"defaultAvatarColor",n("palette-grey-300")),_(t.Chip,"defaultIconColor",n("palette-grey-300")),_(t.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),_(t.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),_(t.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),_(t.LinearProgress,"primaryBg",(0,h.Nd)(t.primary.main,.5)),_(t.LinearProgress,"secondaryBg",(0,h.Nd)(t.secondary.main,.5)),_(t.LinearProgress,"errorBg",(0,h.Nd)(t.error.main,.5)),_(t.LinearProgress,"infoBg",(0,h.Nd)(t.info.main,.5)),_(t.LinearProgress,"successBg",(0,h.Nd)(t.success.main,.5)),_(t.LinearProgress,"warningBg",(0,h.Nd)(t.warning.main,.5)),_(t.Skeleton,"bg",`rgba(${n("palette-text-primaryChannel")} / 0.13)`),_(t.Slider,"primaryTrack",(0,h.Nd)(t.primary.main,.5)),_(t.Slider,"secondaryTrack",(0,h.Nd)(t.secondary.main,.5)),_(t.Slider,"errorTrack",(0,h.Nd)(t.error.main,.5)),_(t.Slider,"infoTrack",(0,h.Nd)(t.info.main,.5)),_(t.Slider,"successTrack",(0,h.Nd)(t.success.main,.5)),_(t.Slider,"warningTrack",(0,h.Nd)(t.warning.main,.5));const e=(0,h.Y9)(t.background.default,.98);_(t.SnackbarContent,"bg",e),_(t.SnackbarContent,"color",O((()=>t.getContrastText(e)))),_(t.SpeedDialAction,"fabHoverBg",(0,h.Y9)(t.background.paper,.15)),_(t.StepConnector,"border",n("palette-grey-600")),_(t.StepContent,"border",n("palette-grey-600")),_(t.Switch,"defaultColor",n("palette-grey-300")),_(t.Switch,"defaultDisabledColor",n("palette-grey-600")),_(t.Switch,"primaryDisabledColor",(0,h.Nd)(t.primary.main,.55)),_(t.Switch,"secondaryDisabledColor",(0,h.Nd)(t.secondary.main,.55)),_(t.Switch,"errorDisabledColor",(0,h.Nd)(t.error.main,.55)),_(t.Switch,"infoDisabledColor",(0,h.Nd)(t.info.main,.55)),_(t.Switch,"successDisabledColor",(0,h.Nd)(t.success.main,.55)),_(t.Switch,"warningDisabledColor",(0,h.Nd)(t.warning.main,.55)),_(t.TableCell,"border",(0,h.Nd)((0,h.Cg)(t.divider,1),.68)),_(t.Tooltip,"bg",(0,h.Cg)(t.grey[700],.92))}k(t.background,"default"),k(t.background,"paper"),k(t.common,"background"),k(t.common,"onBackground"),k(t,"divider"),Object.keys(t).forEach((e=>{const n=t[e];n&&"object"==typeof n&&(n.main&&_(t[e],"mainChannel",(0,h.Me)(S(n.main))),n.light&&_(t[e],"lightChannel",(0,h.Me)(S(n.light))),n.dark&&_(t[e],"darkChannel",(0,h.Me)(S(n.dark))),n.contrastText&&_(t[e],"contrastTextChannel",(0,h.Me)(S(n.contrastText))),"text"===e&&(k(t[e],"primary"),k(t[e],"secondary")),"action"===e&&(n.active&&k(t[e],"active"),n.selected&&k(t[e],"selected")))}))})),D=t.reduce(((e,t)=>(0,i.A)(e,t)),D);const V={prefix:c,disableCssColorScheme:s,shouldSkipGeneratingVar:b,getSelector:m(D)},{vars:$,generateThemeVars:F,generateStyleSheets:B}=f(D,V);return D.vars=$,Object.entries(D.colorSchemes[D.defaultColorScheme]).forEach((([e,t])=>{D[e]=t})),D.generateThemeVars=F,D.generateStyleSheets=B,D.generateSpacing=function(){return(0,o.A)(g.spacing,(0,l.LX)(this))},D.getColorSchemeSelector=function(e){return function(t){return"media"===e?`@media (prefers-color-scheme: ${t})`:e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${t}"] &`:"class"===e?`.${t} &`:"data"===e?`[data-${t}] &`:`${e.replace("%s",t)} &`:"&"}}(v),D.spacing=D.generateSpacing(),D.shouldSkipGeneratingVar=b,D.unstable_sxConfig={...d.A,...g?.unstable_sxConfig},D.unstable_sx=function(e){return(0,p.A)({sx:e,theme:this})},D.toRuntimeSource=w,D}},94479:(e,t,n)=>{n.d(t,{Ay:()=>l,cz:()=>r,p0:()=>i});const r={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},i={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function a(e){return`${Math.round(e)}ms`}function o(e){if(!e)return 0;const t=e/36;return Math.min(Math.round(10*(4+15*t**.25+t/5)),3e3)}function l(e){const t={...r,...e.easing},n={...i,...e.duration};return{getAutoHeightDuration:o,create:(e=["all"],r={})=>{const{duration:i=n.standard,easing:o=t.easeInOut,delay:l=0,...u}=r;return(Array.isArray(e)?e:[e]).map((e=>`${e} ${"string"==typeof i?i:a(i)} ${o} ${"string"==typeof l?l:a(l)}`)).join(",")},...e,easing:t,duration:n}}},34558:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(78745);const i={textTransform:"uppercase"},a='"Roboto", "Helvetica", "Arial", sans-serif';function o(e,t){const{fontFamily:n=a,fontSize:o=14,fontWeightLight:l=300,fontWeightRegular:u=400,fontWeightMedium:s=500,fontWeightBold:c=700,htmlFontSize:f=16,allVariants:d,pxToRem:p,...h}="function"==typeof t?t(e):t,b=o/14,v=p||(e=>e/f*b+"rem"),y=(e,t,r,i,o)=>{return{fontFamily:n,fontWeight:e,fontSize:v(t),lineHeight:r,...n===a?{letterSpacing:(l=i/t,Math.round(1e5*l)/1e5+"em")}:{},...o,...d};var l},g={h1:y(l,96,1.167,-1.5),h2:y(l,60,1.2,-.5),h3:y(u,48,1.167,0),h4:y(u,34,1.235,.25),h5:y(u,24,1.334,0),h6:y(s,20,1.6,.15),subtitle1:y(u,16,1.75,.15),subtitle2:y(s,14,1.57,.1),body1:y(u,16,1.5,.15),body2:y(u,14,1.43,.15),button:y(s,14,1.75,.4,i),caption:y(u,12,1.66,.4),overline:y(u,12,2.66,1,i),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return(0,r.A)({htmlFontSize:f,pxToRem:v,fontFamily:n,fontSize:o,fontWeightLight:l,fontWeightRegular:u,fontWeightMedium:s,fontWeightBold:c,...g},h,{clone:!1})}},23121:(e,t,n)=>{n.d(t,{A:()=>r});const r=(0,n(89022).A)()},80040:(e,t,n)=>{n.d(t,{A:()=>r});const r=e=>[...[...Array(25)].map(((t,n)=>`--${e?`${e}-`:""}overlays-${n}`)),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`]},28875:(e,t,n)=>{function r(e){let t;return t=e<1?5.11916*e**2:4.5*Math.log(e+1)+2,Math.round(10*t)/1e3}n.d(t,{A:()=>r})},74988:(e,t,n)=>{n.d(t,{A:()=>r});const r="$$material"},55270:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(36674);const i=e=>(0,r.A)(e)&&"classes"!==e},59542:(e,t,n)=>{function r(e){return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||"palette"===e[0]&&!!e[1]?.match(/(mode|contrastThreshold|tonalOffset)/)}n.d(t,{A:()=>r})},36674:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}},51148:(e,t,n)=>{n.d(t,{Ay:()=>l});var r=n(15543),i=n(23121),a=n(74988),o=n(55270);const l=(0,r.Ay)({themeId:a.A,defaultTheme:i.A,rootShouldForwardProp:o.A})},15622:(e,t,n)=>{n.d(t,{A:()=>r});const r=n(33283).A},58520:(e,t,n)=>{function r(e=[]){return([,t])=>t&&function(e,t=[]){if(!function(e){return"string"==typeof e.main}(e))return!1;for(const n of t)if(!e.hasOwnProperty(n)||"string"!=typeof e[n])return!1;return!0}(t,e)}n.d(t,{A:()=>r})},60129:(e,t,n)=>{n.d(t,{A:()=>i});const r={theme:void 0};function i(e){let t,n;return i=>{let a=t;return void 0!==a&&i.theme===n||(r.theme=i.theme,a=e(r),t=a,n=i.theme),a}}},53791:(e,t,n)=>{n.d(t,{Ay:()=>g,q_:()=>m});var r=n(6614),i=n(7552),a=n(39389),o=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,l=(0,a.A)((function(e){return o.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),u=n(90722),s=n(92005),c=n(53760),f=n(20387),d=l,p=function(e){return"theme"!==e},h=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?d:p},b=function(e,t,n){var r;if(t){var i=t.shouldForwardProp;r=e.__emotion_forwardProp&&i?function(t){return e.__emotion_forwardProp(t)&&i(t)}:i}return"function"!=typeof r&&n&&(r=e.__emotion_forwardProp),r},v=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return(0,s.SF)(t,n,r),(0,f.s)((function(){return(0,s.sk)(t,n,r)})),null},y=function e(t,n){var a,o,l=t.__emotion_real===t,f=l&&t.__emotion_base||t;void 0!==n&&(a=n.label,o=n.target);var d=b(t,n,l),p=d||h(f),y=!p("as");return function(){var g=arguments,m=l&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==a&&m.push("label:"+a+";"),null==g[0]||void 0===g[0].raw)m.push.apply(m,g);else{m.push(g[0][0]);for(var w=g.length,_=1;_{Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}},53173:(e,t,n)=>{n.d(t,{A:()=>u,b:()=>l});var r=n(7552),i=n(80007),a=n(69500);const o=r.createContext(void 0);function l({props:e,name:t}){return function(e){const{theme:t,name:n,props:r}=e;if(!t||!t.components||!t.components[n])return r;const a=t.components[n];return a.defaultProps?(0,i.A)(a.defaultProps,r):a.styleOverrides||a.variants?r:(0,i.A)(a,r)}({props:e,name:t,theme:{components:r.useContext(o)}})}const u=function({value:e,children:t}){return(0,a.jsx)(o.Provider,{value:e,children:t})}},43059:(e,t,n)=>{n.d(t,{EU:()=>s,NI:()=>u,iZ:()=>f,kW:()=>d,vf:()=>c,zu:()=>a});var r=n(78745),i=n(91939);const a={xs:0,sm:600,md:900,lg:1200,xl:1536},o={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${a[e]}px)`},l={containerQueries:e=>({up:t=>{let n="number"==typeof t?t:a[t]||t;return"number"==typeof n&&(n=`${n}px`),e?`@container ${e} (min-width:${n})`:`@container (min-width:${n})`}})};function u(e,t,n){const r=e.theme||{};if(Array.isArray(t)){const e=r.breakpoints||o;return t.reduce(((r,i,a)=>(r[e.up(e.keys[a])]=n(t[a]),r)),{})}if("object"==typeof t){const e=r.breakpoints||o;return Object.keys(t).reduce(((o,u)=>{if((0,i.ob)(e.keys,u)){const e=(0,i.CT)(r.containerQueries?r:l,u);e&&(o[e]=n(t[u],u))}else if(Object.keys(e.values||a).includes(u))o[e.up(u)]=n(t[u],u);else{const e=u;o[e]=t[e]}return o}),{})}return n(t)}function s(e={}){const t=e.keys?.reduce(((t,n)=>(t[e.up(n)]={},t)),{});return t||{}}function c(e,t){return e.reduce(((e,t)=>{const n=e[t];return(!n||0===Object.keys(n).length)&&delete e[t],e}),t)}function f(e,...t){const n=s(e),i=[n,...t].reduce(((e,t)=>(0,r.A)(e,t)),{});return c(Object.keys(n),i)}function d({values:e,breakpoints:t,base:n}){const r=n||function(e,t){if("object"!=typeof e)return{};const n={},r=Object.keys(t);return Array.isArray(e)?r.forEach(((t,r)=>{r{null!=e[t]&&(n[t]=!0)})),n}(e,t),i=Object.keys(r);if(0===i.length)return e;let a;return i.reduce(((t,n,r)=>(Array.isArray(e)?(t[n]=null!=e[r]?e[r]:e[a],a=r):"object"==typeof e?(t[n]=null!=e[n]?e[n]:e[a],a=n):t[n]=e,t)),{})}},72639:(e,t,n)=>{n.d(t,{Cg:()=>b,E2:()=>o,J1:()=>d,Me:()=>u,Nd:()=>y,Ob:()=>c,X0:()=>s,X4:()=>h,Y9:()=>_,YL:()=>f,a:()=>g,e$:()=>v,eM:()=>p,j4:()=>m,rP:()=>l,tL:()=>w});var r=n(51569),i=n(93801);function a(e,t=0,n=1){return(0,i.A)(e,t,n)}function o(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let n=e.match(t);return n&&1===n[0].length&&(n=n.map((e=>e+e))),n?`rgb${4===n.length?"a":""}(${n.map(((e,t)=>t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3)).join(", ")})`:""}function l(e){if(e.type)return e;if("#"===e.charAt(0))return l(o(e));const t=e.indexOf("("),n=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(n))throw new Error((0,r.A)(9,e));let i,a=e.substring(t+1,e.length-1);if("color"===n){if(a=a.split(" "),i=a.shift(),4===a.length&&"/"===a[3].charAt(0)&&(a[3]=a[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(i))throw new Error((0,r.A)(10,i))}else a=a.split(",");return a=a.map((e=>parseFloat(e))),{type:n,values:a,colorSpace:i}}const u=(e,t)=>{try{return(e=>{const t=l(e);return t.values.slice(0,3).map(((e,n)=>t.type.includes("hsl")&&0!==n?`${e}%`:e)).join(" ")})(e)}catch(t){return e}};function s(e){const{type:t,colorSpace:n}=e;let{values:r}=e;return t.includes("rgb")?r=r.map(((e,t)=>t<3?parseInt(e,10):e)):t.includes("hsl")&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),r=t.includes("color")?`${n} ${r.join(" ")}`:`${r.join(", ")}`,`${t}(${r})`}function c(e){if(e.startsWith("#"))return e;const{values:t}=l(e);return`#${t.map(((e,t)=>function(e){const t=e.toString(16);return 1===t.length?`0${t}`:t}(3===t?Math.round(255*e):e))).join("")}`}function f(e){e=l(e);const{values:t}=e,n=t[0],r=t[1]/100,i=t[2]/100,a=r*Math.min(i,1-i),o=(e,t=(e+n/30)%12)=>i-a*Math.max(Math.min(t-3,9-t,1),-1);let u="rgb";const c=[Math.round(255*o(0)),Math.round(255*o(8)),Math.round(255*o(4))];return"hsla"===e.type&&(u+="a",c.push(t[3])),s({type:u,values:c})}function d(e){let t="hsl"===(e=l(e)).type||"hsla"===e.type?l(f(e)).values:e.values;return t=t.map((t=>("color"!==e.type&&(t/=255),t<=.03928?t/12.92:((t+.055)/1.055)**2.4))),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function p(e,t){const n=d(e),r=d(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function h(e,t){return e=l(e),t=a(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),"color"===e.type?e.values[3]=`/${t}`:e.values[3]=t,s(e)}function b(e,t,n){try{return h(e,t)}catch(t){return e}}function v(e,t){if(e=l(e),t=a(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return s(e)}function y(e,t,n){try{return v(e,t)}catch(t){return e}}function g(e,t){if(e=l(e),t=a(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return s(e)}function m(e,t,n){try{return g(e,t)}catch(t){return e}}function w(e,t=.15){return d(e)>.5?v(e,t):g(e,t)}function _(e,t,n){try{return w(e,t)}catch(t){return e}}},92271:(e,t,n)=>{n.d(t,{A:()=>i});const r=e=>{const t=Object.keys(e).map((t=>({key:t,val:e[t]})))||[];return t.sort(((e,t)=>e.val-t.val)),t.reduce(((e,t)=>({...e,[t.key]:t.val})),{})};function i(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:i=5,...a}=e,o=r(t),l=Object.keys(o);function u(e){return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${n})`}function s(e){return`@media (max-width:${("number"==typeof t[e]?t[e]:e)-i/100}${n})`}function c(e,r){const a=l.indexOf(r);return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${n}) and (max-width:${(-1!==a&&"number"==typeof t[l[a]]?t[l[a]]:r)-i/100}${n})`}return{keys:l,values:o,up:u,down:s,between:c,only:function(e){return l.indexOf(e)+1{n.d(t,{Ay:()=>h});var r=n(53791),i=n(78745),a=n(72861),o=n(76795);const l=(0,a.A)();function u(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}function s(e,t,n){return function(e){for(const t in e)return!1;return!0}(t)?n:t[e]||t}const c=Symbol("mui.processed_props");function f(e,t,n){if(c in e)return e[c];const r={...e,theme:s(t,e.theme,n)};return e[c]=r,r[c]=r,r}function d(e){return e?(t,n)=>n[e]:null}function p(e,t){const n="function"==typeof e?e(t):e;if(Array.isArray(n))return n.flatMap((e=>p(e,t)));if(Array.isArray(n?.variants)){const{variants:e,...r}=n;let i,a=r;e:for(let n=0;n(0,o.A)(f(e,t,n));return h.__mui_systemSx=!0,(e,o={})=>{(0,r.q_)(e,(e=>e.filter((e=>!e?.__mui_systemSx))));const{name:l,slot:v,skipVariantsResolver:y,skipSx:g,overridesResolver:m=d(b(v)),...w}=o,_=void 0!==y?y:v&&"Root"!==v&&"root"!==v||!1,S=g||!1;let k=u;"Root"===v||"root"===v?k=a:v?k=c:function(e){return"string"==typeof e&&e.charCodeAt(0)>96}(e)&&(k=void 0);const O=(0,r.Ay)(e,{shouldForwardProp:k,label:void 0,...w}),P=e=>"function"==typeof e&&e.__emotion_real!==e||(0,i.Q)(e)?r=>p(e,f(r,t,n)):e,A=(r,...i)=>{let a=P(r);const o=i?i.map(P):[];l&&m&&o.push((e=>{const r=s(t,e.theme,n);if(!r.components||!r.components[l]||!r.components[l].styleOverrides)return null;const i=r.components[l].styleOverrides,a={},o=f(e,t,n);for(const e in i)a[e]=p(i[e],o);return m(e,a)})),l&&!_&&o.push((e=>{const r=s(t,e.theme,n),i=r?.components?.[l]?.variants;return i?p({variants:i},f(e,t,n)):null})),S||o.push(h);const u=o.length-i.length;if(Array.isArray(r)&&u>0){const e=new Array(u).fill("");a=[...r,...e],a.raw=[...r.raw,...e]}const c=O(a,...o);return e.muiName&&(c.muiName=e.muiName),c};return O.withConfig&&(A.withConfig=O.withConfig),A}}function b(e){return e?e.charAt(0).toLowerCase()+e.slice(1):e}},81459:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(34901);function i(e=8,t=(0,r.LX)({spacing:e})){if(e.mui)return e;const n=(...e)=>(0===e.length?[1]:e).map((e=>{const n=t(e);return"number"==typeof n?`${n}px`:n})).join(" ");return n.mui=!0,n}},72861:(e,t,n)=>{n.d(t,{A:()=>f});var r=n(78745),i=n(92271),a=n(91939);const o={borderRadius:4};var l=n(81459),u=n(76795),s=n(94177);function c(e,t){const n=this;if(n.vars){if(!n.colorSchemes?.[e]||"function"!=typeof n.getColorSchemeSelector)return{};let r=n.getColorSchemeSelector(e);return"&"===r?t:((r.includes("data-")||r.includes("."))&&(r=`*:where(${r.replace(/\s*&$/,"")}) &`),{[r]:t})}return n.palette.mode===e?t:{}}const f=function(e={},...t){const{breakpoints:n={},palette:f={},spacing:d,shape:p={},...h}=e,b=(0,i.A)(n),v=(0,l.A)(d);let y=(0,r.A)({breakpoints:b,direction:"ltr",components:{},palette:{mode:"light",...f},spacing:v,shape:{...o,...p}},h);return y=(0,a.Ay)(y),y.applyStyles=c,y=t.reduce(((e,t)=>(0,r.A)(e,t)),y),y.unstable_sxConfig={...s.A,...h?.unstable_sxConfig},y.unstable_sx=function(e){return(0,u.A)({sx:e,theme:this})},y}},91939:(e,t,n)=>{function r(e,t){if(!e.containerQueries)return t;const n=Object.keys(t).filter((e=>e.startsWith("@container"))).sort(((e,t)=>{const n=/min-width:\s*([0-9.]+)/;return+(e.match(n)?.[1]||0)-+(t.match(n)?.[1]||0)}));return n.length?n.reduce(((e,n)=>{const r=t[n];return delete e[n],e[n]=r,e}),{...t}):t}function i(e,t){return"@"===t||t.startsWith("@")&&(e.some((e=>t.startsWith(`@${e}`)))||!!t.match(/^@\d/))}function a(e,t){const n=t.match(/^@([^/]+)?\/?(.+)?$/);if(!n)return null;const[,r,i]=n,a=Number.isNaN(+r)?r||0:+r;return e.containerQueries(i).up(a)}function o(e){const t=(e,t)=>e.replace("@media",t?`@container ${t}`:"@container");function n(n,r){n.up=(...n)=>t(e.breakpoints.up(...n),r),n.down=(...n)=>t(e.breakpoints.down(...n),r),n.between=(...n)=>t(e.breakpoints.between(...n),r),n.only=(...n)=>t(e.breakpoints.only(...n),r),n.not=(...n)=>{const i=t(e.breakpoints.not(...n),r);return i.includes("not all and")?i.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):i}}const r={},i=e=>(n(r,e),r);return n(i),{...e,containerQueries:i}}n.d(t,{Ay:()=>o,CT:()=>a,_S:()=>r,ob:()=>i})},99091:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(78745);const i=function(e,t){return t?(0,r.A)(e,t,{clone:!1}):e}},34901:(e,t,n)=>{n.d(t,{LX:()=>h,MA:()=>p,_W:()=>b,Lc:()=>y,Ms:()=>g});var r=n(43059),i=n(39995),a=n(99091);const o={m:"margin",p:"padding"},l={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},u={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},s=function(){const e={};return t=>(void 0===e[t]&&(e[t]=(e=>{if(e.length>2){if(!u[e])return[e];e=u[e]}const[t,n]=e.split(""),r=o[t],i=l[n]||"";return Array.isArray(i)?i.map((e=>r+e)):[r+i]})(t)),e[t])}(),c=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],f=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],d=[...c,...f];function p(e,t,n,r){const a=(0,i.Yn)(e,t,!0)??n;return"number"==typeof a||"string"==typeof a?e=>"string"==typeof e?e:"string"==typeof a?`calc(${e} * ${a})`:a*e:Array.isArray(a)?e=>{if("string"==typeof e)return e;const t=Math.abs(e),n=a[t];return e>=0?n:"number"==typeof n?-n:`-${n}`}:"function"==typeof a?a:()=>{}}function h(e){return p(e,"spacing",8)}function b(e,t){return"string"==typeof t||null==t?t:e(t)}function v(e,t){const n=h(e.theme);return Object.keys(e).map((i=>function(e,t,n,i){if(!t.includes(n))return null;const a=function(e,t){return n=>e.reduce(((e,r)=>(e[r]=b(t,n),e)),{})}(s(n),i),o=e[n];return(0,r.NI)(e,o,a)}(e,t,i,n))).reduce(a.A,{})}function y(e){return v(e,c)}function g(e){return v(e,f)}function m(e){return v(e,d)}y.propTypes={},y.filterProps=c,g.propTypes={},g.filterProps=f,m.propTypes={},m.filterProps=d},39995:(e,t,n)=>{n.d(t,{Ay:()=>l,BO:()=>o,Yn:()=>a});var r=n(33283),i=n(43059);function a(e,t,n=!0){if(!t||"string"!=typeof t)return null;if(e&&e.vars&&n){const n=`vars.${t}`.split(".").reduce(((e,t)=>e&&e[t]?e[t]:null),e);if(null!=n)return n}return t.split(".").reduce(((e,t)=>e&&null!=e[t]?e[t]:null),e)}function o(e,t,n,r=n){let i;return i="function"==typeof e?e(n):Array.isArray(e)?e[n]||r:a(e,n)||r,t&&(i=t(i,r,e)),i}const l=function(e){const{prop:t,cssProperty:n=e.prop,themeKey:l,transform:u}=e,s=e=>{if(null==e[t])return null;const s=e[t],c=a(e.theme,l)||{};return(0,i.NI)(e,s,(e=>{let i=o(c,u,e);return e===i&&"string"==typeof e&&(i=o(c,u,`${t}${"default"===e?"":(0,r.A)(e)}`,e)),!1===n?i:{[n]:i}}))};return s.propTypes={},s.filterProps=[t],s}},94177:(e,t,n)=>{n.d(t,{A:()=>R});var r=n(34901),i=n(39995),a=n(99091);const o=function(...e){const t=e.reduce(((e,t)=>(t.filterProps.forEach((n=>{e[n]=t})),e)),{}),n=e=>Object.keys(e).reduce(((n,r)=>t[r]?(0,a.A)(n,t[r](e)):n),{});return n.propTypes={},n.filterProps=e.reduce(((e,t)=>e.concat(t.filterProps)),[]),n};var l=n(43059);function u(e){return"number"!=typeof e?e:`${e}px solid`}function s(e,t){return(0,i.Ay)({prop:e,themeKey:"borders",transform:t})}const c=s("border",u),f=s("borderTop",u),d=s("borderRight",u),p=s("borderBottom",u),h=s("borderLeft",u),b=s("borderColor"),v=s("borderTopColor"),y=s("borderRightColor"),g=s("borderBottomColor"),m=s("borderLeftColor"),w=s("outline",u),_=s("outlineColor"),S=e=>{if(void 0!==e.borderRadius&&null!==e.borderRadius){const t=(0,r.MA)(e.theme,"shape.borderRadius",4,"borderRadius"),n=e=>({borderRadius:(0,r._W)(t,e)});return(0,l.NI)(e,e.borderRadius,n)}return null};S.propTypes={},S.filterProps=["borderRadius"],o(c,f,d,p,h,b,v,y,g,m,S,w,_);const k=e=>{if(void 0!==e.gap&&null!==e.gap){const t=(0,r.MA)(e.theme,"spacing",8,"gap"),n=e=>({gap:(0,r._W)(t,e)});return(0,l.NI)(e,e.gap,n)}return null};k.propTypes={},k.filterProps=["gap"];const O=e=>{if(void 0!==e.columnGap&&null!==e.columnGap){const t=(0,r.MA)(e.theme,"spacing",8,"columnGap"),n=e=>({columnGap:(0,r._W)(t,e)});return(0,l.NI)(e,e.columnGap,n)}return null};O.propTypes={},O.filterProps=["columnGap"];const P=e=>{if(void 0!==e.rowGap&&null!==e.rowGap){const t=(0,r.MA)(e.theme,"spacing",8,"rowGap"),n=e=>({rowGap:(0,r._W)(t,e)});return(0,l.NI)(e,e.rowGap,n)}return null};function A(e,t){return"grey"===t?t:e}function x(e){return e<=1&&0!==e?100*e+"%":e}P.propTypes={},P.filterProps=["rowGap"],o(k,O,P,(0,i.Ay)({prop:"gridColumn"}),(0,i.Ay)({prop:"gridRow"}),(0,i.Ay)({prop:"gridAutoFlow"}),(0,i.Ay)({prop:"gridAutoColumns"}),(0,i.Ay)({prop:"gridAutoRows"}),(0,i.Ay)({prop:"gridTemplateColumns"}),(0,i.Ay)({prop:"gridTemplateRows"}),(0,i.Ay)({prop:"gridTemplateAreas"}),(0,i.Ay)({prop:"gridArea"})),o((0,i.Ay)({prop:"color",themeKey:"palette",transform:A}),(0,i.Ay)({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:A}),(0,i.Ay)({prop:"backgroundColor",themeKey:"palette",transform:A}));const j=(0,i.Ay)({prop:"width",transform:x}),C=e=>{if(void 0!==e.maxWidth&&null!==e.maxWidth){const t=t=>{const n=e.theme?.breakpoints?.values?.[t]||l.zu[t];return n?"px"!==e.theme?.breakpoints?.unit?{maxWidth:`${n}${e.theme.breakpoints.unit}`}:{maxWidth:n}:{maxWidth:x(t)}};return(0,l.NI)(e,e.maxWidth,t)}return null};C.filterProps=["maxWidth"];const E=(0,i.Ay)({prop:"minWidth",transform:x}),T=(0,i.Ay)({prop:"height",transform:x}),N=(0,i.Ay)({prop:"maxHeight",transform:x}),I=(0,i.Ay)({prop:"minHeight",transform:x}),R=((0,i.Ay)({prop:"size",cssProperty:"width",transform:x}),(0,i.Ay)({prop:"size",cssProperty:"height",transform:x}),o(j,C,E,T,N,I,(0,i.Ay)({prop:"boxSizing"})),{border:{themeKey:"borders",transform:u},borderTop:{themeKey:"borders",transform:u},borderRight:{themeKey:"borders",transform:u},borderBottom:{themeKey:"borders",transform:u},borderLeft:{themeKey:"borders",transform:u},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:u},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:S},color:{themeKey:"palette",transform:A},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:A},backgroundColor:{themeKey:"palette",transform:A},p:{style:r.Ms},pt:{style:r.Ms},pr:{style:r.Ms},pb:{style:r.Ms},pl:{style:r.Ms},px:{style:r.Ms},py:{style:r.Ms},padding:{style:r.Ms},paddingTop:{style:r.Ms},paddingRight:{style:r.Ms},paddingBottom:{style:r.Ms},paddingLeft:{style:r.Ms},paddingX:{style:r.Ms},paddingY:{style:r.Ms},paddingInline:{style:r.Ms},paddingInlineStart:{style:r.Ms},paddingInlineEnd:{style:r.Ms},paddingBlock:{style:r.Ms},paddingBlockStart:{style:r.Ms},paddingBlockEnd:{style:r.Ms},m:{style:r.Lc},mt:{style:r.Lc},mr:{style:r.Lc},mb:{style:r.Lc},ml:{style:r.Lc},mx:{style:r.Lc},my:{style:r.Lc},margin:{style:r.Lc},marginTop:{style:r.Lc},marginRight:{style:r.Lc},marginBottom:{style:r.Lc},marginLeft:{style:r.Lc},marginX:{style:r.Lc},marginY:{style:r.Lc},marginInline:{style:r.Lc},marginInlineStart:{style:r.Lc},marginInlineEnd:{style:r.Lc},marginBlock:{style:r.Lc},marginBlockStart:{style:r.Lc},marginBlockEnd:{style:r.Lc},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:k},rowGap:{style:P},columnGap:{style:O},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:x},maxWidth:{style:C},minWidth:{transform:x},height:{transform:x},maxHeight:{transform:x},minHeight:{transform:x},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}})},76795:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(33283),i=n(99091),a=n(39995),o=n(43059),l=n(91939),u=n(94177);const s=function(){function e(e,t,n,i){const l={[e]:t,theme:n},u=i[e];if(!u)return{[e]:t};const{cssProperty:s=e,themeKey:c,transform:f,style:d}=u;if(null==t)return null;if("typography"===c&&"inherit"===t)return{[e]:t};const p=(0,a.Yn)(n,c)||{};return d?d(l):(0,o.NI)(l,t,(t=>{let n=(0,a.BO)(p,f,t);return t===n&&"string"==typeof t&&(n=(0,a.BO)(p,f,`${e}${"default"===t?"":(0,r.A)(t)}`,t)),!1===s?n:{[s]:n}}))}return function t(n){const{sx:r,theme:a={}}=n||{};if(!r)return null;const s=a.unstable_sxConfig??u.A;function c(n){let r=n;if("function"==typeof n)r=n(a);else if("object"!=typeof n)return n;if(!r)return null;const u=(0,o.EU)(a.breakpoints),c=Object.keys(u);let f=u;return Object.keys(r).forEach((n=>{const l="function"==typeof(u=r[n])?u(a):u;var u;if(null!=l)if("object"==typeof l)if(s[n])f=(0,i.A)(f,e(n,l,a,s));else{const e=(0,o.NI)({theme:a},l,(e=>({[n]:e})));!function(...e){const t=e.reduce(((e,t)=>e.concat(Object.keys(t))),[]),n=new Set(t);return e.every((e=>n.size===Object.keys(e).length))}(e,l)?f=(0,i.A)(f,e):f[n]=t({sx:l,theme:a})}else f=(0,i.A)(f,e(n,l,a,s))})),(0,l._S)(a,(0,o.vf)(c,f))}return Array.isArray(r)?r.map(c):c(r)}}();s.filterProps=["sx"];const c=s},23043:(e,t,n)=>{n.d(t,{A:()=>i});const r=e=>e,i=(()=>{let e=r;return{configure(t){e=t},generate:t=>e(t),reset(){e=r}}})()},33283:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(51569);function i(e){if("string"!=typeof e)throw new Error((0,r.A)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},93801:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e,t=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,n))}},70799:(e,t,n)=>{function r(e,t,n=void 0){const r={};for(const i in e){const a=e[i];let o="",l=!0;for(let e=0;er})},78745:(e,t,n)=>{function r(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)}function i(e){if(!r(e))return e;const t={};return Object.keys(e).forEach((n=>{t[n]=i(e[n])})),t}function a(e,t,n={clone:!0}){const o=n.clone?{...e}:e;return r(e)&&r(t)&&Object.keys(t).forEach((l=>{r(t[l])&&Object.prototype.hasOwnProperty.call(e,l)&&r(e[l])?o[l]=a(e[l],t[l],n):n.clone?o[l]=r(t[l])?i(t[l]):t[l]:o[l]=t[l]})),o}n.d(t,{A:()=>a,Q:()=>r})},51569:(e,t,n)=>{function r(e){let t="https://mui.com/production-error/?code="+e;for(let e=1;er})},85693:(e,t,n)=>{n.d(t,{Ay:()=>a});var r=n(23043);const i={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function a(e,t,n="Mui"){const a=i[t];return a?`${n}-${a}`:`${r.A.generate(e)}-${t}`}},33761:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(85693);function i(e,t,n="Mui"){const i={};return t.forEach((t=>{i[t]=(0,r.Ay)(e,t,n)})),i}},80007:(e,t,n)=>{function r(e,t){const n={...t};for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)){const a=i;if("components"===a||"slots"===a)n[a]={...e[a],...n[a]};else if("componentsProps"===a||"slotProps"===a){const i=e[a],o=t[a];if(o)if(i){n[a]={...o};for(const e in i)if(Object.prototype.hasOwnProperty.call(i,e)){const t=e;n[a][t]=r(i[t],o[t])}}else n[a]=o;else n[a]=i||{}}else void 0===n[a]&&(n[a]=e[a])}return n}n.d(t,{A:()=>r})},35068:e=>{var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===n}(e)}(e)},n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,t){return!1!==t.clone&&t.isMergeableObject(e)?l((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function i(e,t,n){return e.concat(t).map((function(e){return r(e,n)}))}function a(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function l(e,n,u){(u=u||{}).arrayMerge=u.arrayMerge||i,u.isMergeableObject=u.isMergeableObject||t,u.cloneUnlessOtherwiseSpecified=r;var s=Array.isArray(n);return s===Array.isArray(e)?s?u.arrayMerge(e,n,u):function(e,t,n){var i={};return n.isMergeableObject(e)&&a(e).forEach((function(t){i[t]=r(e[t],n)})),a(t).forEach((function(a){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,a)||(o(e,a)&&n.isMergeableObject(t[a])?i[a]=function(e,t){if(!t.customMerge)return l;var n=t.customMerge(e);return"function"==typeof n?n:l}(a,n)(e[a],t[a],n):i[a]=r(t[a],n))})),i}(e,n,u):r(n,u)}l.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return l(e,n,t)}),{})};var u=l;e.exports=u},78245:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(35451);function i(e){return("object"==typeof e&&null!==e&&"message"in e?e.message:`${e}`).replace(/\.$/,"")}class a{async getBufferFromResponse(e){const t=await e.arrayBuffer();return r.hp.from(t)}constructor(e,t={}){this.baseOverrides={},this.url=e;const n=t.fetch||globalThis.fetch.bind(globalThis);if(!n)throw new TypeError("no fetch function supplied, and none found in global environment");t.overrides&&(this.baseOverrides=t.overrides),this.fetchImplementation=n}async fetch(e,t){let n;try{n=await this.fetchImplementation(e,t)}catch(r){if(!`${r}`.includes("Failed to fetch"))throw new Error(`${i(r)} fetching ${e}`,{cause:r});console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{n=await this.fetchImplementation(e,{...t,cache:"reload"})}catch(t){throw new Error(`${i(t)} fetching ${e}`,{cause:t})}}return n}async read(e,t=0,n,r=0,i={}){const{headers:a={},signal:o,overrides:l={}}=i;n<1/0?a.range=`bytes=${r}-${r+n}`:n===1/0&&0!==r&&(a.range=`bytes=${r}-`);const u=await this.fetch(this.url,{...this.baseOverrides,...l,headers:{...a,...l.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:o});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${this.url}`);if(200===u.status&&0===r||206===u.status){const r=await this.getBufferFromResponse(u),i=r.copy(e,t,0,Math.min(n,r.length)),a=u.headers.get("content-range"),o=/\/(\d+)$/.exec(a||"");return(null==o?void 0:o[1])&&(this._stat={size:parseInt(o[1],10)}),{bytesRead:i,buffer:e}}if(200===u.status)throw new Error(`${this.url} fetch returned status 200, expected 206`);throw new Error(`HTTP ${u.status} fetching ${this.url}`)}async readFile(e={}){let t,n;"string"==typeof e?(t=e,n={}):(t=e.encoding,n=e,delete n.encoding);const{headers:r={},signal:i,overrides:a={}}=n,o=await this.fetch(this.url,{headers:r,method:"GET",redirect:"follow",mode:"cors",signal:i,...this.baseOverrides,...a});if(200!==o.status)throw new Error(`HTTP ${o.status} fetching ${this.url}`);if("utf8"===t)return o.text();if(t)throw new Error(`unsupported encoding: ${t}`);return this.getBufferFromResponse(o)}async stat(){if(!this._stat){const e=r.hp.allocUnsafe(10);if(await this.read(e,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}},806:(e,t,n)=>{var r=n(76896),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function u(e){return r.isMemo(e)?o:l[e.$$typeof]||i}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=o;var s=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var i=p(n);i&&i!==h&&e(t,i,r)}var o=c(n);f&&(o=o.concat(f(n)));for(var l=u(t),b=u(n),v=0;v{var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,o=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,b=n?Symbol.for("react.memo"):60115,v=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,g=n?Symbol.for("react.fundamental"):60117,m=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function _(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case f:case a:case l:case o:case p:return e;default:switch(e=e&&e.$$typeof){case s:case d:case v:case b:case u:return e;default:return t}}case i:return t}}}function S(e){return _(e)===f}t.AsyncMode=c,t.ConcurrentMode=f,t.ContextConsumer=s,t.ContextProvider=u,t.Element=r,t.ForwardRef=d,t.Fragment=a,t.Lazy=v,t.Memo=b,t.Portal=i,t.Profiler=l,t.StrictMode=o,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||_(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return _(e)===s},t.isContextProvider=function(e){return _(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return _(e)===d},t.isFragment=function(e){return _(e)===a},t.isLazy=function(e){return _(e)===v},t.isMemo=function(e){return _(e)===b},t.isPortal=function(e){return _(e)===i},t.isProfiler=function(e){return _(e)===l},t.isStrictMode=function(e){return _(e)===o},t.isSuspense=function(e){return _(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===f||e===l||e===o||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===b||e.$$typeof===u||e.$$typeof===s||e.$$typeof===d||e.$$typeof===g||e.$$typeof===m||e.$$typeof===w||e.$$typeof===y)},t.typeOf=_},76896:(e,t,n)=>{e.exports=n(29116)},8167:(e,t,n)=>{n.d(t,{P:()=>d});var r,i,a=n(7552),o=n(89059),l=n(77173),u="function"==typeof Symbol&&Symbol.for,s=null!==(i=null===(r=Object.getOwnPropertyDescriptor((function(){}),"name"))||void 0===r?void 0:r.configurable)&&void 0!==i&&i,c=u?Symbol.for("react.forward_ref"):"function"==typeof a.forwardRef&&(0,a.forwardRef)((function(e){return null})).$$typeof,f=u?Symbol.for("react.memo"):"function"==typeof a.memo&&(0,a.memo)((function(e){return null})).$$typeof;function d(e,t){var n;if(f&&e.$$typeof===f)throw new Error("[mobx-react-lite] You are trying to use `observer` on a function component wrapped in either another `observer` or `React.memo`. The observer already applies 'React.memo' for you.");if((0,o.P)())return e;var r=null!==(n=null==t?void 0:t.forwardRef)&&void 0!==n&&n,i=e,u=e.displayName||e.name;if(c&&e.$$typeof===c&&(r=!0,"function"!=typeof(i=e.render)))throw new Error("[mobx-react-lite] `render` property of ForwardRef was not a function");var d,h,b=function(e,t){return(0,l.q)((function(){return i(e,t)}),u)};return b.displayName=e.displayName,s&&Object.defineProperty(b,"name",{value:e.name,writable:!0,configurable:!0}),e.contextTypes&&(b.contextTypes=e.contextTypes),r&&(b=(0,a.forwardRef)(b)),b=(0,a.memo)(b),d=e,h=b,Object.keys(d).forEach((function(e){p[e]||Object.defineProperty(h,e,Object.getOwnPropertyDescriptor(d,e))})),b}var p={$$typeof:!0,render:!0,compare:!0,type:!0,displayName:!0}},36422:(e,t,n)=>{n.r(t),n.d(t,{addDisposer:()=>K,addMiddleware:()=>Ee,applyAction:()=>we,applyPatch:()=>w,applySnapshot:()=>P,cast:()=>X,castFlowReturn:()=>It,castToReferenceSnapshot:()=>Z,castToSnapshot:()=>J,clone:()=>B,createActionTrackingMiddleware:()=>ve,createActionTrackingMiddleware2:()=>ge,decorate:()=>Te,destroy:()=>H,detach:()=>U,escapeJsonPath:()=>zt,flow:()=>Nt,getChildType:()=>y,getEnv:()=>G,getIdentifier:()=>D,getLivelinessChecking:()=>l,getMembers:()=>Y,getNodeId:()=>ee,getParent:()=>j,getParentOfType:()=>E,getPath:()=>N,getPathParts:()=>I,getPropertyMembers:()=>Q,getRelativePath:()=>F,getRoot:()=>T,getRunningActionContext:()=>Ie,getSnapshot:()=>A,getType:()=>v,hasParent:()=>x,hasParentOfType:()=>C,isActionContextChildOf:()=>Me,isActionContextThisOrChildOf:()=>Le,isAlive:()=>W,isArrayType:()=>en,isFrozenType:()=>$n,isIdentifierType:()=>Zn,isLateType:()=>Ln,isLiteralType:()=>Sn,isMapType:()=>Qt,isModelType:()=>ln,isOptionalType:()=>Tn,isPrimitiveType:()=>mn,isProtected:()=>O,isReferenceType:()=>Gn,isRefinementType:()=>On,isRoot:()=>R,isStateTreeNode:()=>Ye,isType:()=>pe,isUnionType:()=>xn,isValidReference:()=>V,joinJsonPath:()=>$t,onAction:()=>Se,onPatch:()=>g,onSnapshot:()=>m,process:()=>lt,protect:()=>S,recordActions:()=>_e,recordPatches:()=>_,resolveIdentifier:()=>L,resolvePath:()=>M,setLivelinessChecking:()=>o,setLivelynessChecking:()=>u,splitJsonPath:()=>Ft,t:()=>rr,toGenerator:()=>Mt,toGeneratorFunction:()=>Rt,tryReference:()=>z,tryResolve:()=>$,typecheck:()=>He,types:()=>rr,unescapeJsonPath:()=>Vt,unprotect:()=>k,walk:()=>q});var r,i=n(42489),a="warn";function o(e){a=e}function l(){return a}function u(e){o(e)}!function(e){e.afterCreate="afterCreate",e.afterAttach="afterAttach",e.afterCreationFinalization="afterCreationFinalization",e.beforeDetach="beforeDetach",e.beforeDestroy="beforeDestroy"}(r||(r={}));var s=function(e,t){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},s(e,t)};function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var f=function(){return f=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function h(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,a=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)o.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(i)throw i.error}}return o}function b(){for(var e=[],t=0;t";return this.type.name+"@"+e+(this.isAlive?"":" [dead]")}}),Object.defineProperty(t.prototype,"die",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.isAlive&&this.state!==We.DETACHING&&(this.aboutToDie(),this.finalizeDeath())}}),Object.defineProperty(t.prototype,"finalizeCreation",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.baseFinalizeCreation()}}),Object.defineProperty(t.prototype,"aboutToDie",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.baseAboutToDie()}}),Object.defineProperty(t.prototype,"finalizeDeath",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.baseFinalizeDeath()}}),Object.defineProperty(t.prototype,"fireHook",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.fireInternalHook(e)}}),t}(te);ne.prototype.die=(0,i.action)(ne.prototype.die);var re,ie,ae=1,oe={onError:function(e){throw e}},le=function(e){function t(t,n,r,a,o){var l=e.call(this,t,n,r,a)||this;if(Object.defineProperty(l,"nodeId",{enumerable:!0,configurable:!0,writable:!0,value:++ae}),Object.defineProperty(l,"identifierAttribute",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"identifier",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"unnormalizedIdentifier",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"identifierCache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"isProtectionEnabled",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(l,"middlewares",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"hasSnapshotPostProcessor",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(l,"_applyPatches",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"_applySnapshot",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"_autoUnbox",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(l,"_isRunningAction",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(l,"_hasSnapshotReaction",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(l,"_observableInstanceState",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(l,"_childNodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"_initialSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"_cachedInitialSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"_cachedInitialSnapshotCreated",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(l,"_snapshotComputed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"_snapshotUponDeath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(l,"_internalEvents",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),l._snapshotComputed=(0,i.computed)((function(){return l.getSnapshot()})),l.unbox=l.unbox.bind(l),l._initialSnapshot=o,l.identifierAttribute=t.identifierAttribute,n||(l.identifierCache=new Ge),l._childNodes=t.initializeChildNodes(l,l._initialSnapshot),l.identifier=null,l.unnormalizedIdentifier=null,l.identifierAttribute&&l._initialSnapshot){var u=l._initialSnapshot[l.identifierAttribute];if(void 0===u){var s=l._childNodes[l.identifierAttribute];s&&(u=s.value)}if("string"!=typeof u&&"number"!=typeof u)throw dt("Instance identifier '"+l.identifierAttribute+"' for type '"+l.type.name+"' must be a string or a number");l.identifier=er(u),l.unnormalizedIdentifier=u}return n?n.root.identifierCache.addNodeToCache(l):l.identifierCache.addNodeToCache(l),l}return c(t,e),Object.defineProperty(t.prototype,"applyPatches",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.createObservableInstanceIfNeeded(),this._applyPatches(e)}}),Object.defineProperty(t.prototype,"applySnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.createObservableInstanceIfNeeded(),this._applySnapshot(e)}}),Object.defineProperty(t.prototype,"createObservableInstanceIfNeeded",{enumerable:!1,configurable:!0,writable:!0,value:function(e){void 0===e&&(e=!0),0===this._observableInstanceState&&this.createObservableInstance(e)}}),Object.defineProperty(t.prototype,"createObservableInstance",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t,n,i,a;void 0===e&&(e=!0),this._observableInstanceState=1;for(var o=[],l=this.parent;l&&0===l._observableInstanceState;)o.unshift(l),l=l.parent;try{for(var u=p(o),s=u.next();!s.done;s=u.next())(h=s.value).createObservableInstanceIfNeeded(!1)}catch(e){t={error:e}}finally{try{s&&!s.done&&(n=u.return)&&n.call(u)}finally{if(t)throw t.error}}var c=this.type;try{this.storedValue=c.createNewInstance(this._childNodes),this.preboot(),this._isRunningAction=!0,c.finalizeNewInstance(this,this.storedValue)}catch(e){throw this.state=We.DEAD,e}finally{this._isRunningAction=!1}if(this._observableInstanceState=2,this._snapshotComputed.trackAndCompute(),this.isRoot&&this._addSnapshotReaction(),this._childNodes=ct,this.state=We.CREATED,e){this.fireHook(r.afterCreate),this.finalizeCreation();try{for(var f=p(o.reverse()),d=f.next();!d.done;d=f.next()){var h;(h=d.value).fireHook(r.afterCreate),h.finalizeCreation()}}catch(e){i={error:e}}finally{try{d&&!d.done&&(a=f.return)&&a.call(f)}finally{if(i)throw i.error}}}}}),Object.defineProperty(t.prototype,"root",{get:function(){var e=this.parent;return e?e.root:this},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"clearParent",{enumerable:!1,configurable:!0,writable:!0,value:function(){if(this.parent){this.fireHook(r.beforeDetach);var e=this.state;this.state=We.DETACHING;var t=this.root,n=t.environment,i=t.identifierCache.splitCache(this);try{this.parent.removeChild(this.subpath),this.baseSetParent(null,""),this.environment=n,this.identifierCache=i}finally{this.state=e}}}}),Object.defineProperty(t.prototype,"setParent",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=e!==this.parent,i=t!==this.subpath;(n||i)&&(n?(this.environment=void 0,e.root.identifierCache.mergeCache(this),this.baseSetParent(e,t),this.fireHook(r.afterAttach)):i&&this.baseSetParent(this.parent,t))}}),Object.defineProperty(t.prototype,"fireHook",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;this.fireInternalHook(e);var n=this.storedValue&&"object"==typeof this.storedValue&&this.storedValue[e];"function"==typeof n&&(i._allowStateChangesInsideComputed?(0,i._allowStateChangesInsideComputed)((function(){n.apply(t.storedValue)})):n.apply(this.storedValue))}}),Object.defineProperty(t.prototype,"snapshot",{get:function(){return this.hasSnapshotPostProcessor&&this.createObservableInstanceIfNeeded(),this._snapshotComputed.get()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"getSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this.isAlive?2===this._observableInstanceState?this._getActualSnapshot():this._getCachedInitialSnapshot():this._snapshotUponDeath}}),Object.defineProperty(t.prototype,"_getActualSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this.type.getSnapshot(this)}}),Object.defineProperty(t.prototype,"_getCachedInitialSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(){if(!this._cachedInitialSnapshotCreated){var e=this.type,t=this._childNodes,n=this._initialSnapshot;this._cachedInitialSnapshot=e.processInitialSnapshot(t,n),this._cachedInitialSnapshotCreated=!0}return this._cachedInitialSnapshot}}),Object.defineProperty(t.prototype,"isRunningAction",{enumerable:!1,configurable:!0,writable:!0,value:function(){return!!this._isRunningAction||!this.isRoot&&this.parent.isRunningAction()}}),Object.defineProperty(t.prototype,"assertAlive",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t,n=l();if(!this.isAlive&&"ignore"!==n){var r=this._getAssertAliveError(e);switch(n){case"error":throw dt(r);case"warn":t=r,console.warn(new Error("[mobx-state-tree] "+t))}}}}),Object.defineProperty(t.prototype,"_getAssertAliveError",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this.getEscapedPath(!1)||this.pathUponDeath||"",n=e.subpath&&zt(e.subpath)||"",r=e.actionContext||Pe();r&&"action"!==r.type&&r.parentActionEvent&&(r=r.parentActionEvent);var i="";return r&&null!=r.name&&(i=(r&&r.context&&N(r.context)||t)+"."+r.name+"()"),"You are trying to read or write to an object that is no longer part of a state tree. (Object type: '"+this.type.name+"', Path upon death: '"+t+"', Subpath: '"+n+"', Action: '"+i+"'). Either detach nodes first, or don't use objects after removing / replacing them in the tree."}}),Object.defineProperty(t.prototype,"getChildNode",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.assertAlive({subpath:e}),this._autoUnbox=!1;try{return 2===this._observableInstanceState?this.type.getChildNode(this,e):this._childNodes[e]}finally{this._autoUnbox=!0}}}),Object.defineProperty(t.prototype,"getChildren",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.assertAlive(ct),this._autoUnbox=!1;try{return 2===this._observableInstanceState?this.type.getChildren(this):at(this._childNodes)}finally{this._autoUnbox=!0}}}),Object.defineProperty(t.prototype,"getChildType",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return this.type.getChildType(e)}}),Object.defineProperty(t.prototype,"isProtected",{get:function(){return this.root.isProtectionEnabled},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"assertWritable",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(this.assertAlive(e),!this.isRunningAction()&&this.isProtected)throw dt("Cannot modify '"+this+"', the object is protected and can only be modified by using an action.")}}),Object.defineProperty(t.prototype,"removeChild",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.type.removeChild(this,e)}}),Object.defineProperty(t.prototype,"unbox",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return e?(this.assertAlive({subpath:e.subpath||e.subpathUponDeath}),this._autoUnbox?e.value:e):e}}),Object.defineProperty(t.prototype,"toString",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=(this.isAlive?this.path:this.pathUponDeath)||"",t=this.identifier?"(id: "+this.identifier+")":"";return this.type.name+"@"+e+t+(this.isAlive?"":" [dead]")}}),Object.defineProperty(t.prototype,"finalizeCreation",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this;this.baseFinalizeCreation((function(){var t,n;try{for(var i=p(e.getChildren()),a=i.next();!a.done;a=i.next())a.value.finalizeCreation()}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}e.fireInternalHook(r.afterCreationFinalization)}))}}),Object.defineProperty(t.prototype,"detach",{enumerable:!1,configurable:!0,writable:!0,value:function(){if(!this.isAlive)throw dt("Error while detaching, node is not alive.");this.clearParent()}}),Object.defineProperty(t.prototype,"preboot",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this;this._applyPatches=Ce(this.storedValue,"@APPLY_PATCHES",(function(t){t.forEach((function(t){if(t.path){var n=Ft(t.path);it(e,n.slice(0,-1)).applyPatchLocally(n[n.length-1],t)}else e.type.applySnapshot(e,t.value)}))})),this._applySnapshot=Ce(this.storedValue,"@APPLY_SNAPSHOT",(function(t){if(t!==e.snapshot)return e.type.applySnapshot(e,t)})),_t(this.storedValue,"$treenode",this),_t(this.storedValue,"toJSON",et)}}),Object.defineProperty(t.prototype,"die",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.isAlive&&this.state!==We.DETACHING&&(this.aboutToDie(),this.finalizeDeath())}}),Object.defineProperty(t.prototype,"aboutToDie",{enumerable:!1,configurable:!0,writable:!0,value:function(){0!==this._observableInstanceState&&(this.getChildren().forEach((function(e){e.aboutToDie()})),this.baseAboutToDie(),this._internalEventsEmit("dispose"),this._internalEventsClear("dispose"))}}),Object.defineProperty(t.prototype,"finalizeDeath",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.getChildren().forEach((function(e){e.finalizeDeath()})),this.root.identifierCache.notifyDied(this);var e=this.snapshot;this._snapshotUponDeath=e,this._internalEventsClearAll(),this.baseFinalizeDeath()}}),Object.defineProperty(t.prototype,"onSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return this._addSnapshotReaction(),this._internalEventsRegister("snapshot",e)}}),Object.defineProperty(t.prototype,"emitSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this._internalEventsEmit("snapshot",e)}}),Object.defineProperty(t.prototype,"onPatch",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return this._internalEventsRegister("patch",e)}}),Object.defineProperty(t.prototype,"emitPatch",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){if(this._internalEventsHasSubscribers("patch")){var n=function(e){for(var t=[],n=1;n=0&&this.middlewares.splice(t,1)}}}),Object.defineProperty(t.prototype,"addMiddleWare",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=this;void 0===t&&(t=!0);var r={handler:e,includeHooks:t};return this.middlewares?this.middlewares.push(r):this.middlewares=[r],function(){n.removeMiddleware(r)}}}),Object.defineProperty(t.prototype,"applyPatchLocally",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){this.assertWritable({subpath:e}),this.createObservableInstanceIfNeeded(),this.type.applyPatchLocally(this,e,t)}}),Object.defineProperty(t.prototype,"_addSnapshotReaction",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this;if(!this._hasSnapshotReaction){var t=(0,i.reaction)((function(){return e.snapshot}),(function(t){return e.emitSnapshot(t)}),oe);this.addDisposer(t),this._hasSnapshotReaction=!0}}}),Object.defineProperty(t.prototype,"_internalEventsHasSubscribers",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return!!this._internalEvents&&this._internalEvents.hasSubscribers(e)}}),Object.defineProperty(t.prototype,"_internalEventsRegister",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n){return void 0===n&&(n=!1),this._internalEvents||(this._internalEvents=new kt),this._internalEvents.register(e,t,n)}}),Object.defineProperty(t.prototype,"_internalEventsHas",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){return!!this._internalEvents&&this._internalEvents.has(e,t)}}),Object.defineProperty(t.prototype,"_internalEventsUnregister",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){this._internalEvents&&this._internalEvents.unregister(e,t)}}),Object.defineProperty(t.prototype,"_internalEventsEmit",{enumerable:!1,configurable:!0,writable:!0,value:function(e){for(var t,n=[],r=1;r0},enumerable:!1,configurable:!0}),e}();function ge(e){var t=new Map;return function(n,r){var i=n.parentActionEvent?t.get(n.parentActionEvent.id):void 0;if("action"===n.type){var a=f(f({},n),{env:i&&i.call.env,parentCall:i&&i.call}),o=!e.filter||e.filter(a),l=new ye(o?e:void 0,a);t.set(n.id,l);var u=void 0;try{u=r(n)}catch(e){throw t.delete(n.id),l.finish(e),e}return l.hasFlowsPending||(t.delete(n.id),l.finish()),u}if(!i)return r(n);switch(n.type){case"flow_spawn":return i.incFlowsPending(),r(n);case"flow_resume":case"flow_resume_error":return r(n);case"flow_throw":var s=n.args[0];try{return r(n)}finally{i.decFlowsPending(),i.hasFlowsPending||(t.delete(n.parentActionEvent.id),i.finish(s))}case"flow_return":try{return r(n)}finally{i.decFlowsPending(),i.hasFlowsPending||(t.delete(n.parentActionEvent.id),i.finish())}}}}function me(e){return{$MST_UNSERIALIZABLE:!0,type:e}}function we(e,t){Xe(e,1),xt(),(0,i.runInAction)((function(){vt(t).forEach((function(t){return function(e,t){var n=$(e,t.path||"");if(!n)throw dt("Invalid action path: "+(t.path||""));var r=Je(n);if("@APPLY_PATCHES"===t.name)return w.call(null,n,t.args[0]);if("@APPLY_SNAPSHOT"===t.name)return P.call(null,n,t.args[0]);if("function"!=typeof n[t.name])throw dt("Action '"+t.name+"' does not exist in '"+r.path+"'");return n[t.name].apply(n,t.args?t.args.map((function(e){return(t=e)&&"object"==typeof t&&"$MST_DATE"in t?new Date(t.$MST_DATE):t;var t})):[])}(e,t)}))}))}function _e(e,t){Xe(e,1);var n,r=[],i=function(e){(!t||t(e,Ie()))&&r.push(e)},a={actions:r,get recording(){return!!n},stop:function(){n&&(n(),n=void 0)},resume:function(){n||(n=Se(e,i))},replay:function(e){we(e,r)}};return a.resume(),a}function Se(e,t,n){return void 0===n&&(n=!1),Xe(e,1),Ee(e,(function(r,i){if("action"===r.type&&r.id===r.rootId){var a=Je(r.context),o={name:r.name,path:nt(Je(e),a),args:r.args.map((function(e,t){return function(e,t,n,r){if(r instanceof Date)return{$MST_DATE:r.getTime()};if(mt(r))return r;if(Ye(r))return me("[MSTNode: "+v(r).name+"]");if("function"==typeof r)return me("[function]");if("object"==typeof r&&!yt(r)&&!bt(r))return me("[object "+(r&&r.constructor&&r.constructor.name||"Complex Object")+"]");try{return JSON.stringify(r),r}catch(e){return me(""+e)}}(0,r.name,0,e)}))};if(n){var l=i(r);return t(o),l}return t(o),i(r)}return i(r)}))}var ke,Oe=1;function Pe(){return ke}function Ae(){return Oe++}function xe(e,t){var n=Je(e.context);"action"===e.type&&n.assertAlive({actionContext:e});var a=n._isRunningAction;n._isRunningAction=!0;var o=ke;ke=e;try{return function(e,t,n){var a=new Ne(e,n);if(a.isEmpty)return(0,i.action)(n).apply(null,t.args);var o=null;return function e(t){var l=a.getNextMiddleware(),u=l&&l.handler;return u?!l.includeHooks&&r[t.name]?e(t):(u(t,(function(t,n){o=e(t),n&&(o=n(o))}),(function(e){o=e})),o):(0,i.action)(n).apply(null,t.args)}(t)}(n,e,t)}finally{ke=o,n._isRunningAction=a}}function je(e){if(e)return"action"===e.type?e:e.parentActionEvent}function Ce(e,t,n){var r=function(){var r=Ae(),i=ke,a=je(i);return xe({type:"action",name:t,id:r,args:Ot(arguments),context:e,tree:T(e),rootId:i?i.rootId:r,parentId:i?i.id:0,allParentIds:i?b(i.allParentIds,[i.id]):[],parentEvent:i,parentActionEvent:a},n)};return r._isMSTAction=!0,r._isFlowAction=n._isFlowAction,r}function Ee(e,t,n){return void 0===n&&(n=!0),Je(e).addMiddleWare(t,n)}function Te(e,t,n){void 0===n&&(n=!0);var r={handler:e,includeHooks:n};return t.$mst_middleware=t.$mst_middleware||[],t.$mst_middleware.push(r),t}var Ne=function(){function e(e,t){Object.defineProperty(this,"arrayIndex",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"inArrayIndex",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"middlewares",{enumerable:!0,configurable:!0,writable:!0,value:[]}),t.$mst_middleware&&this.middlewares.push(t.$mst_middleware);for(var n=e;n;)n.middlewares&&this.middlewares.push(n.middlewares),n=n.parent}return Object.defineProperty(e.prototype,"isEmpty",{get:function(){return this.middlewares.length<=0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"getNextMiddleware",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.middlewares[this.arrayIndex];if(e)return e[this.inArrayIndex++]||(this.arrayIndex++,this.inArrayIndex=0,this.getNextMiddleware())}}),e}();function Ie(){for(var e=Pe();e&&"action"!==e.type;)e=e.parentActionEvent;return e}function Re(e,t,n){for(var r="number"==typeof t?t:t.id,i=n?e:e.parentActionEvent;i;){if(i.id===r)return!0;i=i.parentActionEvent}return!1}function Me(e,t){return Re(e,t,!1)}function Le(e,t){return Re(e,t,!0)}function De(e){return"function"==typeof e?"":Ye(e)?"<"+e+">":"`"+function(e){try{return JSON.stringify(e)}catch(e){return""}}(e)+"`"}function ze(e){var t=e.value,n=e.context[e.context.length-1].type,r=e.context.map((function(e){return e.path})).filter((function(e){return e.length>0})).join("/"),i=r.length>0?'at path "/'+r+'" ':"",a=Ye(t)?"value of type "+Je(t).type.name+":":mt(t)?"value":"snapshot",o=n&&Ye(t)&&n.is(Je(t).snapshot);return""+i+a+" "+De(t)+" is not assignable "+(n?"to type: `"+n.name+"`":"")+(e.message?" ("+e.message+")":"")+(n?mn(n)||mt(t)?".":", expected an instance of `"+n.name+"` or a snapshot like `"+n.describe()+"` instead."+(o?" (Note that a snapshot of the provided value is compatible with the targeted type)":""):".")}function Ve(e,t,n){return e.concat([{path:t,type:n}])}function $e(){return st}function Fe(e,t,n){return[{context:e,value:t,message:n}]}function Be(e){return e.reduce((function(e,t){return e.concat(t)}),[])}function Ue(e,t){"undefined"!=typeof process&&He(e,t)}function He(e,t){var n=e.validate(t,[{path:"",type:e}]);if(n.length>0)throw dt(function(e,t,n){var r;if(0!==n.length)return"Error while converting "+(((r=De(t)).length<280?r:r.substring(0,272)+"......"+r.substring(r.length-8))+" to `")+e.name+"`:\n\n "+n.map(ze).join("\n ")}(e,t,n))}var We,Ke=0,Ge=function(){function e(){Object.defineProperty(this,"cacheId",{enumerable:!0,configurable:!0,writable:!0,value:Ke++}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:i.observable.map()}),Object.defineProperty(this,"lastCacheModificationPerId",{enumerable:!0,configurable:!0,writable:!0,value:i.observable.map()})}return Object.defineProperty(e.prototype,"updateLastCacheModificationPerId",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this.lastCacheModificationPerId.get(e);this.lastCacheModificationPerId.set(e,void 0===t?1:t+1)}}),Object.defineProperty(e.prototype,"getLastCacheModificationPerId",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this.lastCacheModificationPerId.get(e)||0;return this.cacheId+"-"+t}}),Object.defineProperty(e.prototype,"addNodeToCache",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){if(void 0===t&&(t=!0),e.identifierAttribute){var n=e.identifier;this.cache.has(n)||this.cache.set(n,i.observable.array([],ft));var r=this.cache.get(n);if(-1!==r.indexOf(e))throw dt("Already registered");r.push(e),t&&this.updateLastCacheModificationPerId(n)}}}),Object.defineProperty(e.prototype,"mergeCache",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;(0,i.values)(e.identifierCache.cache).forEach((function(e){return e.forEach((function(e){t.addNodeToCache(e)}))}))}}),Object.defineProperty(e.prototype,"notifyDied",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(e.identifierAttribute){var t=e.identifier,n=this.cache.get(t);n&&(n.remove(e),n.length||this.cache.delete(t),this.updateLastCacheModificationPerId(e.identifier))}}}),Object.defineProperty(e.prototype,"splitCache",{enumerable:!1,configurable:!0,writable:!0,value:function(t){var n=this,r=new e,a=t.path+"/";return(0,i.entries)(this.cache).forEach((function(e){for(var i=h(e,2),o=i[0],l=i[1],u=!1,s=l.length-1;s>=0;s--){var c=l[s];c!==t&&0!==c.path.indexOf(a)||(r.addNodeToCache(c,!1),l.splice(s,1),l.length||n.cache.delete(o),u=!0)}u&&n.updateLastCacheModificationPerId(o)})),r}}),Object.defineProperty(e.prototype,"has",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=this.cache.get(t);return!!n&&n.some((function(t){return e.isAssignableFrom(t.type)}))}}),Object.defineProperty(e.prototype,"resolve",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=this.cache.get(t);if(!n)return null;var r=n.filter((function(t){return e.isAssignableFrom(t.type)}));switch(r.length){case 0:return null;case 1:return r[0];default:throw dt("Cannot resolve a reference to type '"+e.name+"' with id: '"+t+"' unambigously, there are multiple candidates: "+r.map((function(e){return e.path})).join(", "))}}}),e}();function qe(e,t,n,r,i){var a=Ze(i);if(a){if(a.parent)throw dt("Cannot add an object to a state tree if it is already part of the same or another state tree. Tried to assign an object to '"+(t?t.path:"")+"/"+n+"', but it lives already at '"+a.path+"'");return t&&a.setParent(t,n),a}return new le(e,t,n,r,i)}function Qe(e,t,n,r,i){return new ne(e,t,n,r,i)}function Ye(e){return!(!e||!e.$treenode)}function Xe(e,t){xt()}function Je(e){if(!Ye(e))throw dt("Value "+e+" is no MST Node");return e.$treenode}function Ze(e){return e&&e.$treenode||null}function et(){return Je(this).snapshot}!function(e){e[e.INITIALIZING=0]="INITIALIZING",e[e.CREATED=1]="CREATED",e[e.FINALIZED=2]="FINALIZED",e[e.DETACHING=3]="DETACHING",e[e.DEAD=4]="DEAD"}(We||(We={}));var tt=function(e){return".."};function nt(e,t){if(e.root!==t.root)throw dt("Cannot calculate relative path: objects '"+e+"' and '"+t+"' are not part of the same object tree");for(var n=Ft(e.path),r=Ft(t.path),i=0;i0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"register",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=this;return void 0===t&&(t=!1),t?this.handlers.unshift(e):this.handlers.push(e),function(){n.unregister(e)}}}),Object.defineProperty(e.prototype,"has",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return this.handlers.indexOf(e)>=0}}),Object.defineProperty(e.prototype,"unregister",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this.handlers.indexOf(e);t>=0&&this.handlers.splice(t,1)}}),Object.defineProperty(e.prototype,"clear",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.handlers.length=0}}),Object.defineProperty(e.prototype,"emit",{enumerable:!1,configurable:!0,writable:!0,value:function(){for(var e=[],t=0;t0?this.hookInitializers.concat(e):[e];return new t(this.name,this._subType,n)}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return this._determineIdentifierMode(),qe(this,e,t,n,r)}}),Object.defineProperty(t.prototype,"_determineIdentifierMode",{enumerable:!1,configurable:!0,writable:!0,value:function(){if(this.identifierMode===Bt.UNKNOWN){var e=[];if(Kt(this._subType,e)){var t=e.reduce((function(e,t){if(!t.identifierAttribute)return e;if(e&&e!==t.identifierAttribute)throw dt("The objects in a map should all have the same identifier attribute, expected '"+e+"', but child of type '"+t.name+"' declared attribute '"+t.identifierAttribute+"' as identifier");return t.identifierAttribute}),void 0);t?(this.identifierMode=Bt.YES,this.mapIdentifierAttribute=t):this.identifierMode=Bt.NO}}}}),Object.defineProperty(t.prototype,"initializeChildNodes",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){void 0===t&&(t={});var n=e.type._subType,r={};return Object.keys(t).forEach((function(i){r[i]=n.instantiate(e,i,void 0,t[i])})),r}}),Object.defineProperty(t.prototype,"createNewInstance",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return new Gt(e,this.name)}}),Object.defineProperty(t.prototype,"finalizeNewInstance",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){(0,i._interceptReads)(t,e.unbox),e.type.hookInitializers.forEach((function(e){var n=e(t);Object.keys(n).forEach((function(e){var r=n[e],i=Ce(t,e,r);_t(t,e,i)}))})),(0,i.intercept)(t,this.willChange),(0,i.observe)(t,this.didChange)}}),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this.name}}),Object.defineProperty(t.prototype,"getChildren",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return(0,i.values)(e.storedValue)}}),Object.defineProperty(t.prototype,"getChildNode",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=e.storedValue.get(""+t);if(!n)throw dt("Not a child "+t);return n}}),Object.defineProperty(t.prototype,"willChange",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=Je(e.object),n=e.name;t.assertWritable({subpath:n});var r=t.type,i=r._subType;switch(e.type){case"update":var a=e.newValue;if(a===e.object.get(n))return null;Ue(i,a),e.newValue=i.reconcile(t.getChildNode(n),e.newValue,t,n),r.processIdentifier(n,e.newValue);break;case"add":Ue(i,e.newValue),e.newValue=i.instantiate(t,n,void 0,e.newValue),r.processIdentifier(n,e.newValue)}return e}}),Object.defineProperty(t.prototype,"processIdentifier",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){if(this.identifierMode===Bt.YES&&t instanceof le){var n=t.identifier;if(n!==e)throw dt("A map of objects containing an identifier should always store the object under their own identifier. Trying to store key '"+n+"', but expected: '"+e+"'")}}}),Object.defineProperty(t.prototype,"getSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t={};return e.getChildren().forEach((function(e){t[e.subpath]=e.snapshot})),t}}),Object.defineProperty(t.prototype,"processInitialSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t={};return Object.keys(e).forEach((function(n){t[n]=e[n].getSnapshot()})),t}}),Object.defineProperty(t.prototype,"didChange",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=Je(e.object);switch(e.type){case"update":return void t.emitPatch({op:"replace",path:zt(e.name),value:e.newValue.snapshot,oldValue:e.oldValue?e.oldValue.snapshot:void 0},t);case"add":return void t.emitPatch({op:"add",path:zt(e.name),value:e.newValue.snapshot,oldValue:void 0},t);case"delete":var n=e.oldValue.snapshot;return e.oldValue.die(),void t.emitPatch({op:"remove",path:zt(e.name),oldValue:n},t)}}}),Object.defineProperty(t.prototype,"applyPatchLocally",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n){var r=e.storedValue;switch(n.op){case"add":case"replace":r.set(t,n.value);break;case"remove":r.delete(t)}}}),Object.defineProperty(t.prototype,"applySnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){Ue(this,t);var n=e.storedValue,r={};if(Array.from(n.keys()).forEach((function(e){r[e]=!1})),t)for(var i in t)n.set(i,t[i]),r[""+i]=!0;Object.keys(r).forEach((function(e){!1===r[e]&&n.delete(e)}))}}),Object.defineProperty(t.prototype,"getChildType",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this._subType}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=this;return yt(e)?Be(Object.keys(e).map((function(r){return n._subType.validate(e[r],Ve(t,r,n._subType))}))):Fe(t,e,"Value is not a plain object")}}),Object.defineProperty(t.prototype,"getDefaultSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(){return ct}}),Object.defineProperty(t.prototype,"removeChild",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){e.storedValue.delete(t)}}),t}(fe);function Qt(e){return pe(e)&&(e.flags&ie.Map)>0}qt.prototype.applySnapshot=(0,i.action)(qt.prototype.applySnapshot);var Yt=function(e){function t(t,n,r){void 0===r&&(r=[]);var i=e.call(this,t)||this;return Object.defineProperty(i,"_subType",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(i,"flags",{enumerable:!0,configurable:!0,writable:!0,value:ie.Array}),Object.defineProperty(i,"hookInitializers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),i.hookInitializers=r,i}return c(t,e),Object.defineProperty(t.prototype,"hooks",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var n=this.hookInitializers.length>0?this.hookInitializers.concat(e):[e];return new t(this.name,this._subType,n)}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return qe(this,e,t,n,r)}}),Object.defineProperty(t.prototype,"initializeChildNodes",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){void 0===t&&(t=[]);var n=e.type._subType,r={};return t.forEach((function(t,i){var a=""+i;r[a]=n.instantiate(e,a,void 0,t)})),r}}),Object.defineProperty(t.prototype,"createNewInstance",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=f(f({},ft),{name:this.name});return i.observable.array(at(e),t)}}),Object.defineProperty(t.prototype,"finalizeNewInstance",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){(0,i._getAdministration)(t).dehancer=e.unbox,e.type.hookInitializers.forEach((function(e){var n=e(t);Object.keys(n).forEach((function(e){var r=n[e],i=Ce(t,e,r);_t(t,e,i)}))})),(0,i.intercept)(t,this.willChange),(0,i.observe)(t,this.didChange)}}),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this.name}}),Object.defineProperty(t.prototype,"getChildren",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return e.storedValue.slice()}}),Object.defineProperty(t.prototype,"getChildNode",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=Number(t);if(n=0;n--)t.emitPatch({op:"remove",path:""+(e.index+n),oldValue:e.removed[n].snapshot},t);for(n=0;n0}Yt.prototype.applySnapshot=(0,i.action)(Yt.prototype.applySnapshot);var tn="preProcessSnapshot",nn="postProcessSnapshot";function rn(){return Je(this).toString()}var an={name:"AnonymousModel",properties:{},initializers:st};var on=function(e){function t(t){var n,i,a,o=e.call(this,t.name||an.name)||this;return Object.defineProperty(o,"flags",{enumerable:!0,configurable:!0,writable:!0,value:ie.Object}),Object.defineProperty(o,"initializers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(o,"properties",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(o,"preProcessor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(o,"postProcessor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(o,"propertyNames",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(o,"named",{enumerable:!0,configurable:!0,writable:!0,value:function(e){return o.cloneAndEnhance({name:e})}}),Object.defineProperty(o,"props",{enumerable:!0,configurable:!0,writable:!0,value:function(e){return o.cloneAndEnhance({properties:e})}}),Object.defineProperty(o,"preProcessSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=o.preProcessor;return t?o.cloneAndEnhance({preProcessor:function(n){return t(e(n))}}):o.cloneAndEnhance({preProcessor:e})}}),Object.defineProperty(o,"postProcessSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=o.postProcessor;return t?o.cloneAndEnhance({postProcessor:function(n){return e(t(n))}}):o.cloneAndEnhance({postProcessor:e})}}),Object.assign(o,an,t),o.properties=(n=o.properties,i=Object.keys(n),a=new Set,i.forEach((function(e){if(a.has(e))throw dt(e+" is declared twice in the model. Model should not contain the same keys");a.add(e)})),i.reduce((function(e,t){if(t in r)throw dt("Hook '"+t+"' was defined as property. Hooks should be defined as part of the actions");var i=Object.getOwnPropertyDescriptor(n,t);if("get"in i)throw dt("Getters are not supported as properties. Please use views instead");var a=i.value;if(null==a)throw dt("The default value of an attribute cannot be null or undefined as the type cannot be inferred. Did you mean `types.maybe(someType)`?");if(mt(a))e[t]=Cn(function(e){switch(typeof e){case"string":return sn;case"number":return cn;case"boolean":return hn;case"object":if(e instanceof Date)return gn}throw dt("Cannot determine primitive type from value "+e)}(a),a);else if(a instanceof qt)e[t]=Cn(a,{});else if(a instanceof Yt)e[t]=Cn(a,[]);else if(!pe(a))throw dt("Invalid type definition for property '"+t+"', cannot infer a type from a value like '"+a+"' ("+typeof a+")");return e}),f({},n))),o.properties,o.propertyNames=Object.keys(o.properties),o.identifierAttribute=o._getIdentifierAttribute(),o}return c(t,e),Object.defineProperty(t.prototype,"_getIdentifierAttribute",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=void 0;return this.forAllProps((function(t,n){if(n.flags&ie.Identifier){if(e)throw dt("Cannot define property '"+t+"' as object identifier, property '"+e+"' is already defined as identifier property");e=t}})),e}}),Object.defineProperty(t.prototype,"cloneAndEnhance",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return new t({name:e.name||this.name,properties:Object.assign({},this.properties,e.properties),initializers:this.initializers.concat(e.initializers||[]),preProcessor:e.preProcessor||this.preProcessor,postProcessor:e.postProcessor||this.postProcessor})}}),Object.defineProperty(t.prototype,"actions",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;return this.cloneAndEnhance({initializers:[function(n){return t.instantiateActions(n,e(n)),n}]})}}),Object.defineProperty(t.prototype,"instantiateActions",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){if(!yt(t))throw dt("actions initializer should return a plain object containing actions");Object.keys(t).forEach((function(n){if(n===tn)throw dt("Cannot define action '"+tn+"', it should be defined using 'type.preProcessSnapshot(fn)' instead");if(n===nn)throw dt("Cannot define action '"+nn+"', it should be defined using 'type.postProcessSnapshot(fn)' instead");var i=t[n],a=e[n];if(n in r&&a){var o=i;i=function(){a.apply(null,arguments),o.apply(null,arguments)}}var l=i.$mst_middleware,u=i.bind(t);u._isFlowAction=i._isFlowAction||!1,u.$mst_middleware=l;var s=Ce(e,n,u);t[n]=s,_t(e,n,s)}))}}),Object.defineProperty(t.prototype,"volatile",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;if("function"!=typeof e)throw dt("You passed an "+typeof e+" to volatile state as an argument, when function is expected");return this.cloneAndEnhance({initializers:[function(n){return t.instantiateVolatileState(n,e(n)),n}]})}}),Object.defineProperty(t.prototype,"instantiateVolatileState",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){if(!yt(t))throw dt("volatile state initializer should return a plain object containing state");(0,i.set)(e,t)}}),Object.defineProperty(t.prototype,"extend",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;return this.cloneAndEnhance({initializers:[function(n){var r=e(n),i=r.actions,a=r.views,o=r.state,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i0}on.prototype.applySnapshot=(0,i.action)(on.prototype.applySnapshot);var un=function(e){function t(t,n,r,i){void 0===i&&(i=pt);var a=e.call(this,t)||this;return Object.defineProperty(a,"flags",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(a,"checker",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(a,"initializer",{enumerable:!0,configurable:!0,writable:!0,value:i}),a.flags=n,a}return c(t,e),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this.name}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return Qe(this,e,t,n,r)}}),Object.defineProperty(t.prototype,"createNewInstance",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return this.initializer(e)}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){return mt(e)&&this.checker(e)?$e():Fe(t,e,"Value is not a "+("Date"===this.name?"Date or a unix milliseconds timestamp":this.name))}}),t}(de),sn=new un("string",ie.String,(function(e){return"string"==typeof e})),cn=new un("number",ie.Number,(function(e){return"number"==typeof e})),fn=new un("integer",ie.Integer,(function(e){return ht(e)})),dn=new un("float",ie.Float,(function(e){return t=e,Number(t)===t&&t%1!=0;var t})),pn=new un("finite",ie.Finite,(function(e){return t=e,Number.isFinite(t);var t})),hn=new un("boolean",ie.Boolean,(function(e){return"boolean"==typeof e})),bn=new un("null",ie.Null,(function(e){return null===e})),vn=new un("undefined",ie.Undefined,(function(e){return void 0===e})),yn=new un("Date",ie.Date,(function(e){return"number"==typeof e||e instanceof Date}),(function(e){return e instanceof Date?e:new Date(e)}));yn.getSnapshot=function(e){return e.storedValue.getTime()};var gn=yn;function mn(e){return pe(e)&&(e.flags&(ie.String|ie.Number|ie.Integer|ie.Boolean|ie.Date))>0}var wn=function(e){function t(t){var n=e.call(this,JSON.stringify(t))||this;return Object.defineProperty(n,"value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"flags",{enumerable:!0,configurable:!0,writable:!0,value:ie.Literal}),n.value=t,n}return c(t,e),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return Qe(this,e,t,n,r)}}),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return JSON.stringify(this.value)}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){return mt(e)&&e===this.value?$e():Fe(t,e,"Value is not a literal "+JSON.stringify(this.value))}}),t}(de);function _n(e){return new wn(e)}function Sn(e){return pe(e)&&(e.flags&ie.Literal)>0}var kn=function(e){function t(t,n,r,i){var a=e.call(this,t)||this;return Object.defineProperty(a,"_subtype",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(a,"_predicate",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(a,"_message",{enumerable:!0,configurable:!0,writable:!0,value:i}),a}return c(t,e),Object.defineProperty(t.prototype,"flags",{get:function(){return this._subtype.flags|ie.Refinement},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this.name}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return this._subtype.instantiate(e,t,n,r)}}),Object.defineProperty(t.prototype,"isAssignableFrom",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return this._subtype.isAssignableFrom(e)}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=this._subtype.validate(e,t);if(n.length>0)return n;var r=Ye(e)?Je(e).snapshot:e;return this._predicate(r)?$e():Fe(t,e,this._message(e))}}),Object.defineProperty(t.prototype,"reconcile",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return this._subtype.reconcile(e,t,n,r)}}),Object.defineProperty(t.prototype,"getSubTypes",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this._subtype}}),t}(ce);function On(e){return(e.flags&ie.Refinement)>0}var Pn=function(e){function t(t,n,r){var i=e.call(this,t)||this;return Object.defineProperty(i,"_types",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(i,"_dispatcher",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"_eager",{enumerable:!0,configurable:!0,writable:!0,value:!0}),r=f({eager:!0,dispatcher:void 0},r),i._dispatcher=r.dispatcher,r.eager||(i._eager=!1),i}return c(t,e),Object.defineProperty(t.prototype,"flags",{get:function(){var e=ie.Union;return this._types.forEach((function(t){e|=t.flags})),e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isAssignableFrom",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return this._types.some((function(t){return t.isAssignableFrom(e)}))}}),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return"("+this._types.map((function(e){return e.describe()})).join(" | ")+")"}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){var i=this.determineType(r,void 0);if(!i)throw dt("No matching type for union "+this.describe());return i.instantiate(e,t,n,r)}}),Object.defineProperty(t.prototype,"reconcile",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){var i=this.determineType(t,e.getReconciliationType());if(!i)throw dt("No matching type for union "+this.describe());return i.reconcile(e,t,n,r)}}),Object.defineProperty(t.prototype,"determineType",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){return this._dispatcher?this._dispatcher(e):t?t.is(e)?t:this._types.filter((function(e){return e!==t})).find((function(t){return t.is(e)})):this._types.find((function(t){return t.is(e)}))}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){if(this._dispatcher)return this._dispatcher(e).validate(e,t);for(var n=[],r=0,i=0;i0}var jn=function(e){function t(t,n,r){var i=e.call(this,t.name)||this;return Object.defineProperty(i,"_subtype",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(i,"_defaultValue",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(i,"optionalValues",{enumerable:!0,configurable:!0,writable:!0,value:r}),i}return c(t,e),Object.defineProperty(t.prototype,"flags",{get:function(){return this._subtype.flags|ie.Optional},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this._subtype.describe()+"?"}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){if(this.optionalValues.indexOf(r)>=0){var i=this.getDefaultInstanceOrSnapshot();return this._subtype.instantiate(e,t,n,i)}return this._subtype.instantiate(e,t,n,r)}}),Object.defineProperty(t.prototype,"reconcile",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return this._subtype.reconcile(e,this.optionalValues.indexOf(t)<0&&this._subtype.is(t)?t:this.getDefaultInstanceOrSnapshot(),n,r)}}),Object.defineProperty(t.prototype,"getDefaultInstanceOrSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e="function"==typeof this._defaultValue?this._defaultValue():this._defaultValue;return"function"==typeof this._defaultValue&&Ue(this,e),e}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){return this.optionalValues.indexOf(e)>=0?$e():this._subtype.validate(e,t)}}),Object.defineProperty(t.prototype,"isAssignableFrom",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return this._subtype.isAssignableFrom(e)}}),Object.defineProperty(t.prototype,"getSubTypes",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this._subtype}}),t}(ce);function Cn(e,t,n){return function(e,t){if("function"!=typeof t&&Ye(t))throw dt("default value cannot be an instance, pass a snapshot or a function that creates an instance/snapshot instead");he()}(0,t),new jn(e,t,n||En)}var En=[void 0];function Tn(e){return pe(e)&&(e.flags&ie.Optional)>0}var Nn=Cn(vn,void 0),In=Cn(bn,null);function Rn(e){return he(),An(e,Nn)}var Mn=function(e){function t(t,n){var r=e.call(this,t)||this;return Object.defineProperty(r,"_definition",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(r,"_subType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r}return c(t,e),Object.defineProperty(t.prototype,"flags",{get:function(){return(this._subType?this._subType.flags:0)|ie.Late},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"getSubType",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(!this._subType){var t=void 0;try{t=this._definition()}catch(e){if(!(e instanceof ReferenceError))throw e;t=void 0}if(e&&void 0===t)throw dt("Late type seems to be used too early, the definition (still) returns undefined");t&&(this._subType=t)}return this._subType}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return this.getSubType(!0).instantiate(e,t,n,r)}}),Object.defineProperty(t.prototype,"reconcile",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return this.getSubType(!0).reconcile(e,t,n,r)}}),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.getSubType(!1);return e?e.name:""}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=this.getSubType(!1);return n?n.validate(e,t):$e()}}),Object.defineProperty(t.prototype,"isAssignableFrom",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this.getSubType(!1);return!!t&&t.isAssignableFrom(e)}}),Object.defineProperty(t.prototype,"getSubTypes",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this.getSubType(!1)||ue}}),t}(ce);function Ln(e){return pe(e)&&(e.flags&ie.Late)>0}var Dn=function(e){function t(t,n){var r=e.call(this,t)||this;return Object.defineProperty(r,"options",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(r,"flags",{enumerable:!0,configurable:!0,writable:!0,value:ie.Lazy}),Object.defineProperty(r,"loadedType",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(r,"pendingNodeList",{enumerable:!0,configurable:!0,writable:!0,value:i.observable.array()}),(0,i.when)((function(){return r.pendingNodeList.length>0&&r.pendingNodeList.some((function(e){return e.isAlive&&r.options.shouldLoadPredicate(e.parent?e.parent.value:null)}))}),(function(){r.options.loadType().then((0,i.action)((function(e){r.loadedType=e,r.pendingNodeList.forEach((function(e){e.parent&&r.loadedType&&e.parent.applyPatches([{op:"replace",path:"/"+e.subpath,value:e.snapshot}])}))})))})),r}return c(t,e),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return""}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){var a=this;if(this.loadedType)return this.loadedType.instantiate(e,t,n,r);var o=Qe(this,e,t,n,r);return this.pendingNodeList.push(o),(0,i.when)((function(){return!o.isAlive}),(function(){return a.pendingNodeList.splice(a.pendingNodeList.indexOf(o),1)})),o}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){return this.loadedType?this.loadedType.validate(e,t):wt(e)?$e():Fe(t,e,"Value is not serializable and cannot be lazy")}}),Object.defineProperty(t.prototype,"reconcile",{enumerable:!1,configurable:!0,writable:!0,value:function(t,n,r,i){return this.loadedType?(t.die(),this.loadedType.instantiate(r,i,r.environment,n)):e.prototype.reconcile.call(this,t,n,r,i)}}),t}(de),zn=function(e){function t(t){var n=e.call(this,t?"frozen("+t.name+")":"frozen")||this;return Object.defineProperty(n,"subType",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(n,"flags",{enumerable:!0,configurable:!0,writable:!0,value:ie.Frozen}),n}return c(t,e),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return""}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return Qe(this,e,t,n,r)}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){return wt(e)?this.subType?this.subType.validate(e,t):$e():Fe(t,e,"Value is not serializable and cannot be frozen")}}),t}(de),Vn=new zn;function $n(e){return pe(e)&&(e.flags&ie.Frozen)>0}var Fn=function(){function e(e,t){if(Object.defineProperty(this,"targetType",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"identifier",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"node",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"resolvedReference",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),tr(e))this.identifier=e;else{if(!Ye(e))throw dt("Can only store references to tree nodes or identifiers, got: '"+e+"'");var n=Je(e);if(!n.identifierAttribute)throw dt("Can only store references with a defined identifier attribute.");var r=n.unnormalizedIdentifier;if(null==r)throw dt("Can only store references to tree nodes with a defined identifier.");this.identifier=r}}return Object.defineProperty(e.prototype,"updateResolvedReference",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=er(this.identifier),n=e.root,r=n.identifierCache.getLastCacheModificationPerId(t);if(!this.resolvedReference||this.resolvedReference.lastCacheModification!==r){var i=this.targetType,a=n.identifierCache.resolve(i,t);if(!a)throw new Bn("[mobx-state-tree] Failed to resolve reference '"+this.identifier+"' to type '"+this.targetType.name+"' (from node: "+e.path+")");this.resolvedReference={node:a,lastCacheModification:r}}}}),Object.defineProperty(e.prototype,"resolvedValue",{get:function(){return this.updateResolvedReference(this.node),this.resolvedReference.node.value},enumerable:!1,configurable:!0}),e}(),Bn=function(e){function t(n){var r=e.call(this,n)||this;return Object.setPrototypeOf(r,t.prototype),r}return c(t,e),t}(Error),Un=function(e){function t(t,n){var r=e.call(this,"reference("+t.name+")")||this;return Object.defineProperty(r,"targetType",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(r,"onInvalidated",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(r,"flags",{enumerable:!0,configurable:!0,writable:!0,value:ie.Reference}),r}return c(t,e),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this.name}}),Object.defineProperty(t.prototype,"isAssignableFrom",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return this.targetType.isAssignableFrom(e)}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){return tr(e)?$e():Fe(t,e,"Value is not a valid identifier, which is a string or a number")}}),Object.defineProperty(t.prototype,"fireInvalidated",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){var i=t.parent;if(i&&i.isAlive){var a=i.storedValue;a&&this.onInvalidated({cause:e,parent:a,invalidTarget:r?r.storedValue:void 0,invalidId:n,replaceRef:function(e){w(t.root.storedValue,{op:"replace",value:e,path:t.path})},removeRef:function(){ln(i.type)?this.replaceRef(void 0):w(t.root.storedValue,{op:"remove",path:t.path})}})}}}),Object.defineProperty(t.prototype,"addTargetNodeWatcher",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var n=this,i=this.getValue(e);if(i){var a=Je(i),o=function(i,o){var l=function(e){switch(e){case r.beforeDestroy:return"destroy";case r.beforeDetach:return"detach";default:return}}(o);l&&n.fireInvalidated(l,e,t,a)},l=a.registerHook(r.beforeDetach,o),u=a.registerHook(r.beforeDestroy,o);return function(){l(),u()}}}}),Object.defineProperty(t.prototype,"watchTargetNodeForInvalidations",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n){var i=this;if(this.onInvalidated){var a;e.registerHook(r.beforeDestroy,(function(){a&&a()}));var o=function(r){a&&a();var o=e.parent,l=o&&o.storedValue;o&&o.isAlive&&l&&((n?n.get(t,l):e.root.identifierCache.has(i.targetType,er(t)))?a=i.addTargetNodeWatcher(e,t):r||i.fireInvalidated("invalidSnapshotReference",e,t,null))};e.state===We.FINALIZED?o(!0):(e.isRoot||e.root.registerHook(r.afterCreationFinalization,(function(){e.parent&&e.parent.createObservableInstanceIfNeeded()})),e.registerHook(r.afterAttach,(function(){o(!1)})))}}}),t}(de),Hn=function(e){function t(t,n){return e.call(this,t,n)||this}return c(t,e),Object.defineProperty(t.prototype,"getValue",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(e.isAlive)return e.storedValue.resolvedValue}}),Object.defineProperty(t.prototype,"getSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return e.storedValue.identifier}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){var i=Ye(r)?D(r):r,a=new Fn(r,this.targetType),o=Qe(this,e,t,n,a);return a.node=o,this.watchTargetNodeForInvalidations(o,i,void 0),o}}),Object.defineProperty(t.prototype,"reconcile",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){if(!e.isDetaching&&e.type===this){var i=Ye(t),a=e.storedValue;if(!i&&a.identifier===t||i&&a.resolvedValue===t)return e.setParent(n,r),e}var o=this.instantiate(n,r,void 0,t);return e.die(),o}}),t}(Un),Wn=function(e){function t(t,n,r){var i=e.call(this,t,r)||this;return Object.defineProperty(i,"options",{enumerable:!0,configurable:!0,writable:!0,value:n}),i}return c(t,e),Object.defineProperty(t.prototype,"getValue",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(e.isAlive)return this.options.get(e.storedValue,e.parent?e.parent.storedValue:null)}}),Object.defineProperty(t.prototype,"getSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return e.storedValue}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){var i=Ye(r)?this.options.set(r,e?e.storedValue:null):r,a=Qe(this,e,t,n,i);return this.watchTargetNodeForInvalidations(a,i,this.options),a}}),Object.defineProperty(t.prototype,"reconcile",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){var i=Ye(t)?this.options.set(t,e?e.storedValue:null):t;if(!e.isDetaching&&e.type===this&&e.storedValue===i)return e.setParent(n,r),e;var a=this.instantiate(n,r,void 0,i);return e.die(),a}}),t}(Un);function Kn(e,t){he();var n=t||void 0,r=t?t.onInvalidated:void 0;return n&&(n.get||n.set)?new Wn(e,{get:n.get,set:n.set},r):new Hn(e,r)}function Gn(e){return(e.flags&ie.Reference)>0}var qn=function(e){function t(t,n){var r=e.call(this,t)||this;return Object.defineProperty(r,"validType",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(r,"flags",{enumerable:!0,configurable:!0,writable:!0,value:ie.Identifier}),r}return c(t,e),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){if(!(e&&e.type instanceof on))throw dt("Identifier types can only be instantiated as direct child of a model type");return Qe(this,e,t,n,r)}}),Object.defineProperty(t.prototype,"reconcile",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){if(e.storedValue!==t)throw dt("Tried to change identifier from '"+e.storedValue+"' to '"+t+"'. Changing identifiers is not allowed.");return e.setParent(n,r),e}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){return typeof e!==this.validType?Fe(t,e,"Value is not a valid "+this.describe()+", expected a "+this.validType):$e()}}),t}(de),Qn=function(e){function t(){var t=e.call(this,"identifier","string")||this;return Object.defineProperty(t,"flags",{enumerable:!0,configurable:!0,writable:!0,value:ie.Identifier}),t}return c(t,e),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return"identifier"}}),t}(qn),Yn=function(e){function t(){return e.call(this,"identifierNumber","number")||this}return c(t,e),Object.defineProperty(t.prototype,"getSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return e.storedValue}}),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return"identifierNumber"}}),t}(qn),Xn=new Qn,Jn=new Yn;function Zn(e){return pe(e)&&(e.flags&ie.Identifier)>0}function er(e){return""+e}function tr(e){return"string"==typeof e||"number"==typeof e}var nr=function(e){function t(t){var n=e.call(this,t.name)||this;return Object.defineProperty(n,"options",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(n,"flags",{enumerable:!0,configurable:!0,writable:!0,value:ie.Custom}),n}return c(t,e),Object.defineProperty(t.prototype,"describe",{enumerable:!1,configurable:!0,writable:!0,value:function(){return this.name}}),Object.defineProperty(t.prototype,"isValidSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){if(this.options.isTargetType(e))return $e();var n=this.options.getValidationMessage(e);return n?Fe(t,e,"Invalid value for type '"+this.name+"': "+n):$e()}}),Object.defineProperty(t.prototype,"getSnapshot",{enumerable:!1,configurable:!0,writable:!0,value:function(e){return this.options.toSnapshot(e.storedValue)}}),Object.defineProperty(t.prototype,"instantiate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){return Qe(this,e,t,n,this.options.isTargetType(r)?r:this.options.fromSnapshot(r,e&&e.root.environment))}}),Object.defineProperty(t.prototype,"reconcile",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n,r){var i=!this.options.isTargetType(t);if(!e.isDetaching&&e.type===this&&(i?t===e.snapshot:t===e.storedValue))return e.setParent(n,r),e;var a=i?this.options.fromSnapshot(t,n.root.environment):t,o=this.instantiate(n,r,void 0,a);return e.die(),o}}),t}(de),rr={enumeration:function(e,t){var n="string"==typeof e?t:e,r=An.apply(void 0,b(n.map((function(e){return _n(""+e)}))));return"string"==typeof e&&(r.name=e),r},model:function(){for(var e=[],t=0;t",e)},array:function(e){return he(),new Yt(e.name+"[]",e)},frozen:function(e){return 0===arguments.length?Vn:pe(e)?new zn(e):Cn(Vn,e)},identifier:Xn,identifierNumber:Jn,late:function(e,t){var n="string"==typeof e?e:"late("+e.toString()+")";return new Mn(n,"string"==typeof e?t:e)},lazy:function(e,t){return new Dn(e,t)},undefined:vn,null:bn,snapshotProcessor:function(e,t,n){return he(),new Ht(e,t,n)}}},42489:(e,t,n)=>{function r(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;rK,FlowCancellationError:()=>vn,ObservableMap:()=>_r,ObservableSet:()=>Or,Reaction:()=>Et,_allowStateChanges:()=>Qe,_allowStateChangesInsideComputed:()=>qt,_allowStateReadsEnd:()=>ht,_allowStateReadsStart:()=>pt,_autoAction:()=>Gt,_endAction:()=>qe,_getAdministration:()=>Kr,_getGlobalState:()=>_t,_interceptReads:()=>On,_isComputingDerivation:()=>lt,_resetGlobalState:()=>St,_startAction:()=>Ge,action:()=>Kt,autorun:()=>Yt,comparer:()=>Y,computed:()=>$e,configure:()=>sn,createAtom:()=>Q,defineProperty:()=>Vn,entries:()=>Rn,extendObservable:()=>cn,flow:()=>wn,flowResult:()=>Sn,get:()=>zn,getAtom:()=>Wr,getDebugName:()=>Gr,getDependencyTree:()=>fn,getObserverTree:()=>pn,has:()=>Dn,intercept:()=>Pn,isAction:()=>Qt,isBoxedObservable:()=>Ze,isComputed:()=>xn,isComputedProp:()=>jn,isFlow:()=>kn,isFlowCancellationError:()=>yn,isObservable:()=>En,isObservableArray:()=>yr,isObservableMap:()=>Sr,isObservableObject:()=>Nr,isObservableProp:()=>Tn,isObservableSet:()=>Pr,keys:()=>Nn,makeAutoObservable:()=>ar,makeObservable:()=>rr,observable:()=>Le,observe:()=>Fn,onBecomeObserved:()=>nn,onBecomeUnobserved:()=>rn,onReactionError:()=>Tt,override:()=>ee,ownKeys:()=>$n,reaction:()=>Zt,remove:()=>Ln,runInAction:()=>qt,set:()=>Mn,spy:()=>Dt,toJS:()=>Hn,trace:()=>Wn,transaction:()=>Kn,untracked:()=>ct,values:()=>In,when:()=>Gn});var i={};function a(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:i}var o=Object.assign,l=Object.getOwnPropertyDescriptor,u=Object.defineProperty,s=Object.prototype,c=[];Object.freeze(c);var f={};Object.freeze(f);var d="undefined"!=typeof Proxy,p=Object.toString();function h(){d||r("Proxy not available")}function b(e){var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}var v=function(){};function y(e){return"function"==typeof e}function g(e){switch(typeof e){case"string":case"symbol":case"number":return!0}return!1}function m(e){return null!==e&&"object"==typeof e}function w(e){if(!m(e))return!1;var t=Object.getPrototypeOf(e);if(null==t)return!0;var n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n.toString()===p}function _(e){var t=null==e?void 0:e.constructor;return!!t&&("GeneratorFunction"===t.name||"GeneratorFunction"===t.displayName)}function S(e,t,n){u(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function k(e,t,n){u(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function O(e,t){var n="isMobX"+e;return t.prototype[n]=!0,function(e){return m(e)&&!0===e[n]}}function P(e){return null!=e&&"[object Map]"===Object.prototype.toString.call(e)}function A(e){return null!=e&&"[object Set]"===Object.prototype.toString.call(e)}var x=void 0!==Object.getOwnPropertySymbols,j="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:x?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames;function C(e){return null===e?null:"object"==typeof e?""+e:e}function E(e,t){return s.hasOwnProperty.call(e,t)}var T=Object.getOwnPropertyDescriptors||function(e){var t={};return j(e).forEach((function(n){t[n]=l(e,n)})),t};function N(e,t){return!!(e&t)}function I(e,t,n){return n?e|=t:e&=~t,e}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function z(){return z=Object.assign?Object.assign.bind():function(e){for(var t=1;tr&&(r=l.dependenciesState_)}for(n.length=i,e.newObserving_=null,a=t.length;a--;){var u=t[a];0===u.diffValue&&Ot(u,e),u.diffValue=0}for(;i--;){var s=n[i];1===s.diffValue&&(s.diffValue=0,kt(s,e))}r!==tt.UP_TO_DATE_&&(e.dependenciesState_=r,e.onBecomeStale_())}(e),ht(r),i}function st(e){var t=e.observing_;e.observing_=[];for(var n=t.length;n--;)Ot(t[n],e);e.dependenciesState_=tt.NOT_TRACKING_}function ct(e){var t=ft();try{return e()}finally{dt(t)}}function ft(){var e=wt.trackingDerivation;return wt.trackingDerivation=null,e}function dt(e){wt.trackingDerivation=e}function pt(e){var t=wt.allowStateReads;return wt.allowStateReads=e,t}function ht(e){wt.allowStateReads=e}function bt(e){if(e.dependenciesState_!==tt.UP_TO_DATE_){e.dependenciesState_=tt.UP_TO_DATE_;for(var t=e.observing_,n=t.length;n--;)t[n].lowestObserverState_=tt.UP_TO_DATE_}}var vt=["mobxGuid","spyListeners","enforceActions","computedRequiresReaction","reactionRequiresObservable","observableRequiresReaction","allowStateReads","disableErrorBoundaries","runId","UNCHANGED","useProxies"],yt=function(){this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},gt=!0,mt=!1,wt=function(){var e=a();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(gt=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==(new yt).version&&(gt=!1),gt?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new yt):(setTimeout((function(){mt||r(35)}),1),new yt)}();function _t(){return wt}function St(){var e=new yt;for(var t in e)-1===vt.indexOf(t)&&(wt[t]=e[t]);wt.allowStateChanges=!wt.enforceActions}function kt(e,t){e.observers_.add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function Ot(e,t){e.observers_.delete(t),0===e.observers_.size&&Pt(e)}function Pt(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,wt.pendingUnobservations.push(e))}function At(){wt.inBatch++}function xt(){if(0==--wt.inBatch){Rt();for(var e=wt.pendingUnobservations,t=0;t0&&Pt(e),!1)}function Ct(e){e.lowestObserverState_!==tt.STALE_&&(e.lowestObserverState_=tt.STALE_,e.observers_.forEach((function(e){e.dependenciesState_===tt.UP_TO_DATE_&&e.onBecomeStale_(),e.dependenciesState_=tt.STALE_})))}var Et=function(){function e(e,t,n,r){void 0===e&&(e="Reaction"),this.name_=void 0,this.onInvalidate_=void 0,this.errorHandler_=void 0,this.requiresObservable_=void 0,this.observing_=[],this.newObserving_=[],this.dependenciesState_=tt.NOT_TRACKING_,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.isTracing_=nt.NONE,this.name_=e,this.onInvalidate_=t,this.errorHandler_=n,this.requiresObservable_=r}var t=e.prototype;return t.onBecomeStale_=function(){this.schedule_()},t.schedule_=function(){this.isScheduled||(this.isScheduled=!0,wt.pendingReactions.push(this),Rt())},t.runReaction_=function(){if(!this.isDisposed){At(),this.isScheduled=!1;var e=wt.trackingContext;if(wt.trackingContext=this,ot(this)){this.isTrackPending=!0;try{this.onInvalidate_()}catch(e){this.reportExceptionInDerivation_(e)}}wt.trackingContext=e,xt()}},t.track=function(e){if(!this.isDisposed){At(),this.isRunning=!0;var t=wt.trackingContext;wt.trackingContext=this;var n=ut(this,e,void 0);wt.trackingContext=t,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&st(this),at(n)&&this.reportExceptionInDerivation_(n.cause),xt()}},t.reportExceptionInDerivation_=function(e){var t=this;if(this.errorHandler_)this.errorHandler_(e,this);else{if(wt.disableErrorBoundaries)throw e;var n="[mobx] uncaught error in '"+this+"'";wt.suppressReactionErrors||console.error(n,e),wt.globalReactionErrorHandlers.forEach((function(n){return n(e,t)}))}},t.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.isRunning||(At(),st(this),xt()))},t.getDisposer_=function(e){var t=this,n=function n(){t.dispose(),null==e||null==e.removeEventListener||e.removeEventListener("abort",n)};return null==e||null==e.addEventListener||e.addEventListener("abort",n),n[K]=this,n},t.toString=function(){return"Reaction["+this.name_+"]"},t.trace=function(e){void 0===e&&(e=!1)},L(e,[{key:"isDisposed",get:function(){return N(this.flags_,e.isDisposedMask_)},set:function(t){this.flags_=I(this.flags_,e.isDisposedMask_,t)}},{key:"isScheduled",get:function(){return N(this.flags_,e.isScheduledMask_)},set:function(t){this.flags_=I(this.flags_,e.isScheduledMask_,t)}},{key:"isTrackPending",get:function(){return N(this.flags_,e.isTrackPendingMask_)},set:function(t){this.flags_=I(this.flags_,e.isTrackPendingMask_,t)}},{key:"isRunning",get:function(){return N(this.flags_,e.isRunningMask_)},set:function(t){this.flags_=I(this.flags_,e.isRunningMask_,t)}},{key:"diffValue",get:function(){return N(this.flags_,e.diffValueMask_)?1:0},set:function(t){this.flags_=I(this.flags_,e.diffValueMask_,1===t)}}])}();function Tt(e){return wt.globalReactionErrorHandlers.push(e),function(){var t=wt.globalReactionErrorHandlers.indexOf(e);t>=0&&wt.globalReactionErrorHandlers.splice(t,1)}}Et.isDisposedMask_=1,Et.isScheduledMask_=2,Et.isTrackPendingMask_=4,Et.isRunningMask_=8,Et.diffValueMask_=16;var Nt=100,It=function(e){return e()};function Rt(){wt.inBatch>0||wt.isRunningReactions||It(Mt)}function Mt(){wt.isRunningReactions=!0;for(var e=wt.pendingReactions,t=0;e.length>0;){++t===Nt&&(console.error("[mobx] cycle in reaction: "+e[0]),e.splice(0));for(var n=e.splice(0),r=0,i=n.length;r0&&(n.dependencies=(t=e.observing_,Array.from(new Set(t))).map(dn)),n}function pn(e,t){return hn(Wr(e,t))}function hn(e){var t={name:e.name_};return function(e){return e.observers_&&e.observers_.size>0}(e)&&(t.observers=Array.from(function(e){return e.observers_}(e)).map(hn)),t}var bn=0;function vn(){this.message="FLOW_CANCELLED"}function yn(e){return e instanceof vn}vn.prototype=Object.create(Error.prototype);var gn=oe("flow"),mn=oe("flow.bound",{bound:!0}),wn=Object.assign((function(e,t){if(W(t))return gn.decorate_20223_(e,t);if(g(t))return H(e,t,gn);var n=e,r=n.name||"",i=function(){var e,t=arguments,i=++bn,a=Kt(r+" - runid: "+i+" - init",n).apply(this,t),o=void 0,l=new Promise((function(t,n){var l=0;function u(e){var t;o=void 0;try{t=Kt(r+" - runid: "+i+" - yield "+l++,a.next).call(a,e)}catch(e){return n(e)}c(t)}function s(e){var t;o=void 0;try{t=Kt(r+" - runid: "+i+" - yield "+l++,a.throw).call(a,e)}catch(e){return n(e)}c(t)}function c(e){if(!y(null==e?void 0:e.then))return e.done?t(e.value):(o=Promise.resolve(e.value)).then(u,s);e.then(c,n)}e=n,u(void 0)}));return l.cancel=Kt(r+" - runid: "+i+" - cancel",(function(){try{o&&_n(o);var t=a.return(void 0),n=Promise.resolve(t.value);n.then(v,v),_n(n),e(new vn)}catch(t){e(t)}})),l};return i.isMobXFlow=!0,i}),gn);function _n(e){y(e.cancel)&&e.cancel()}function Sn(e){return e}function kn(e){return!0===(null==e?void 0:e.isMobXFlow)}function On(e,t,n){var r;return Sr(e)||yr(e)||Ze(e)?r=Kr(e):Nr(e)&&(r=Kr(e,t)),r.dehancer="function"==typeof t?t:n,function(){r.dehancer=void 0}}function Pn(e,t,n){return y(n)?function(e,t,n){return Kr(e,t).intercept_(n)}(e,t,n):function(e,t){return Kr(e).intercept_(t)}(e,t)}function An(e,t){if(void 0===t)return rt(e);if(!1===Nr(e))return!1;if(!e[K].values_.has(t))return!1;var n=Wr(e,t);return rt(n)}function xn(e){return An(e)}function jn(e,t){return An(e,t)}function Cn(e,t){return!!e&&(void 0!==t?!!Nr(e)&&e[K].values_.has(t):Nr(e)||!!e[K]||q(e)||Lt(e)||rt(e))}function En(e){return Cn(e)}function Tn(e,t){return Cn(e,t)}function Nn(e){return Nr(e)?e[K].keys_():Sr(e)||Pr(e)?Array.from(e.keys()):yr(e)?e.map((function(e,t){return t})):void r(5)}function In(e){return Nr(e)?Nn(e).map((function(t){return e[t]})):Sr(e)?Nn(e).map((function(t){return e.get(t)})):Pr(e)?Array.from(e.values()):yr(e)?e.slice():void r(6)}function Rn(e){return Nr(e)?Nn(e).map((function(t){return[t,e[t]]})):Sr(e)?Nn(e).map((function(t){return[t,e.get(t)]})):Pr(e)?Array.from(e.entries()):yr(e)?e.map((function(e,t){return[t,e]})):void r(7)}function Mn(e,t,n){if(2!==arguments.length||Pr(e))Nr(e)?e[K].set_(t,n):Sr(e)?e.set(t,n):Pr(e)?e.add(t):yr(e)?("number"!=typeof t&&(t=parseInt(t,10)),t<0&&r("Invalid index: '"+t+"'"),At(),t>=e.length&&(e.length=t+1),e[t]=n,xt()):r(8);else{At();var i=t;try{for(var a in i)Mn(e,a,i[a])}finally{xt()}}}function Ln(e,t){Nr(e)?e[K].delete_(t):Sr(e)||Pr(e)?e.delete(t):yr(e)?("number"!=typeof t&&(t=parseInt(t,10)),e.splice(t,1)):r(9)}function Dn(e,t){return Nr(e)?e[K].has_(t):Sr(e)||Pr(e)?e.has(t):yr(e)?t>=0&&t0}function Jn(e,t){var n=e.interceptors_||(e.interceptors_=[]);return n.push(t),b((function(){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}))}function Zn(e,t){var n=ft();try{for(var i=[].concat(e.interceptors_||[]),a=0,o=i.length;a0}function tr(e,t){var n=e.changeListeners_||(e.changeListeners_=[]);return n.push(t),b((function(){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}))}function nr(e,t){var n=ft(),r=e.changeListeners_;if(r){for(var i=0,a=(r=r.slice()).length;i0?e.map(this.dehancer):e},t.intercept_=function(e){return Jn(this,e)},t.observe_=function(e,t){return void 0===t&&(t=!1),t&&e({observableKind:"array",object:this.proxy_,debugObjectName:this.atom_.name_,type:"splice",index:0,added:this.values_.slice(),addedCount:this.values_.length,removed:[],removedCount:0}),tr(this,e)},t.getArrayLength_=function(){return this.atom_.reportObserved(),this.values_.length},t.setArrayLength_=function(e){("number"!=typeof e||isNaN(e)||e<0)&&r("Out of range: "+e);var t=this.values_.length;if(e!==t)if(e>t){for(var n=new Array(e-t),i=0;i0&&Ur(e+t+1)},t.spliceWithArray_=function(e,t,n){var r=this;this.atom_;var i=this.values_.length;if(void 0===e?e=0:e>i?e=i:e<0&&(e=Math.max(0,i+e)),t=1===arguments.length?i-e:null==t?0:Math.max(0,Math.min(t,i-e)),void 0===n&&(n=c),Xn(this)){var a=Zn(this,{object:this.proxy_,type:or,index:e,removedCount:t,added:n});if(!a)return c;t=a.removedCount,n=a.added}if(n=0===n.length?n:n.map((function(e){return r.enhancer_(e,void 0)})),this.legacyMode_){var o=n.length-t;this.updateArrayLength_(i,o)}var l=this.spliceItemsIntoValues_(e,t,n);return 0===t&&0===n.length||this.notifyArraySplice_(e,n,l),this.dehanceValues_(l)},t.spliceItemsIntoValues_=function(e,t,n){var r;if(n.length<1e4)return(r=this.values_).splice.apply(r,[e,t].concat(n));var i=this.values_.slice(e,e+t),a=this.values_.slice(e+t);this.values_.length+=n.length-t;for(var o=0;o=this.values_.length))return this.atom_.reportObserved(),this.dehanceValue_(this.values_[e]);console.warn("[mobx] Out of bounds read: "+e)},t.set_=function(e,t){var n=this.values_;if(this.legacyMode_&&e>n.length&&r(17,e,n.length),e2?n-2:0),i=2;i-1&&(this.splice(n,1),!0)}};function dr(e,t){"function"==typeof Array.prototype[e]&&(fr[e]=t(e))}function pr(e){return function(){var t=this[K];t.atom_.reportObserved();var n=t.dehanceValues_(t.values_);return n[e].apply(n,arguments)}}function hr(e){return function(t,n){var r=this,i=this[K];return i.atom_.reportObserved(),i.dehanceValues_(i.values_)[e]((function(e,i){return t.call(n,e,i,r)}))}}function br(e){return function(){var t=this,n=this[K];n.atom_.reportObserved();var r=n.dehanceValues_(n.values_),i=arguments[0];return arguments[0]=function(e,n,r){return i(e,n,r,t)},r[e].apply(r,arguments)}}dr("at",pr),dr("concat",pr),dr("flat",pr),dr("includes",pr),dr("indexOf",pr),dr("join",pr),dr("lastIndexOf",pr),dr("slice",pr),dr("toString",pr),dr("toLocaleString",pr),dr("toSorted",pr),dr("toSpliced",pr),dr("with",pr),dr("every",hr),dr("filter",hr),dr("find",hr),dr("findIndex",hr),dr("findLast",hr),dr("findLastIndex",hr),dr("flatMap",hr),dr("forEach",hr),dr("map",hr),dr("some",hr),dr("toReversed",hr),dr("reduce",br),dr("reduceRight",br);var vr=O("ObservableArrayAdministration",sr);function yr(e){return m(e)&&vr(e[K])}var gr={},mr="add",wr="delete",_r=function(){function e(e,t,n){var i=this;void 0===t&&(t=X),void 0===n&&(n="ObservableMap"),this.enhancer_=void 0,this.name_=void 0,this[K]=gr,this.data_=void 0,this.hasMap_=void 0,this.keysAtom_=void 0,this.interceptors_=void 0,this.changeListeners_=void 0,this.dehancer=void 0,this.enhancer_=t,this.name_=n,y(Map)||r(18),qr((function(){i.keysAtom_=Q("ObservableMap.keys()"),i.data_=new Map,i.hasMap_=new Map,e&&i.merge(e)}))}var t=e.prototype;return t.has_=function(e){return this.data_.has(e)},t.has=function(e){var t=this;if(!wt.trackingDerivation)return this.has_(e);var n=this.hasMap_.get(e);if(!n){var r=n=new Je(this.has_(e),J,"ObservableMap.key?",!1);this.hasMap_.set(e,r),rn(r,(function(){return t.hasMap_.delete(e)}))}return n.get()},t.set=function(e,t){var n=this.has_(e);if(Xn(this)){var r=Zn(this,{type:n?lr:mr,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.updateValue_(e,t):this.addValue_(e,t),this},t.delete=function(e){var t=this;if(this.keysAtom_,Xn(this)&&!Zn(this,{type:wr,object:this,name:e}))return!1;if(this.has_(e)){var n=er(this),r=n?{observableKind:"map",debugObjectName:this.name_,type:wr,object:this,oldValue:this.data_.get(e).value_,name:e}:null;return Kn((function(){var n;t.keysAtom_.reportChanged(),null==(n=t.hasMap_.get(e))||n.setNewValue_(!1),t.data_.get(e).setNewValue_(void 0),t.data_.delete(e)})),n&&nr(this,r),!0}return!1},t.updateValue_=function(e,t){var n=this.data_.get(e);if((t=n.prepareNewValue_(t))!==wt.UNCHANGED){var r=er(this),i=r?{observableKind:"map",debugObjectName:this.name_,type:lr,object:this,oldValue:n.value_,name:e,newValue:t}:null;n.setNewValue_(t),r&&nr(this,i)}},t.addValue_=function(e,t){var n=this;this.keysAtom_,Kn((function(){var r,i=new Je(t,n.enhancer_,"ObservableMap.key",!1);n.data_.set(e,i),t=i.value_,null==(r=n.hasMap_.get(e))||r.setNewValue_(!0),n.keysAtom_.reportChanged()}));var r=er(this),i=r?{observableKind:"map",debugObjectName:this.name_,type:mr,object:this,name:e,newValue:t}:null;r&&nr(this,i)},t.get=function(e){return this.has(e)?this.dehanceValue_(this.data_.get(e).get()):this.dehanceValue_(void 0)},t.dehanceValue_=function(e){return void 0!==this.dehancer?this.dehancer(e):e},t.keys=function(){return this.keysAtom_.reportObserved(),this.data_.keys()},t.values=function(){var e=this,t=this.keys();return Zr({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:e.get(i)}}})},t.entries=function(){var e=this,t=this.keys();return Zr({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:[i,e.get(i)]}}})},t[Symbol.iterator]=function(){return this.entries()},t.forEach=function(e,t){for(var n,r=D(this);!(n=r()).done;){var i=n.value,a=i[0],o=i[1];e.call(t,o,a,this)}},t.merge=function(e){var t=this;return Sr(e)&&(e=new Map(e)),Kn((function(){var n,i,a;w(e)?function(e){var t=Object.keys(e);if(!x)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter((function(t){return s.propertyIsEnumerable.call(e,t)}))):t}(e).forEach((function(n){return t.set(n,e[n])})):Array.isArray(e)?e.forEach((function(e){var n=e[0],r=e[1];return t.set(n,r)})):P(e)?(n=e,i=Object.getPrototypeOf(n),a=Object.getPrototypeOf(i),null!==Object.getPrototypeOf(a)&&r(19,e),e.forEach((function(e,n){return t.set(n,e)}))):null!=e&&r(20,e)})),this},t.clear=function(){var e=this;Kn((function(){ct((function(){for(var t,n=D(e.keys());!(t=n()).done;){var r=t.value;e.delete(r)}}))}))},t.replace=function(e){var t=this;return Kn((function(){for(var n,i=function(e){if(P(e)||Sr(e))return e;if(Array.isArray(e))return new Map(e);if(w(e)){var t=new Map;for(var n in e)t.set(n,e[n]);return t}return r(21,e)}(e),a=new Map,o=!1,l=D(t.data_.keys());!(n=l()).done;){var u=n.value;if(!i.has(u))if(t.delete(u))o=!0;else{var s=t.data_.get(u);a.set(u,s)}}for(var c,f=D(i.entries());!(c=f()).done;){var d=c.value,p=d[0],h=d[1],b=t.data_.has(p);if(t.set(p,h),t.data_.has(p)){var v=t.data_.get(p);a.set(p,v),b||(o=!0)}}if(!o)if(t.data_.size!==a.size)t.keysAtom_.reportChanged();else for(var y=t.data_.keys(),g=a.keys(),m=y.next(),_=g.next();!m.done;){if(m.value!==_.value){t.keysAtom_.reportChanged();break}m=y.next(),_=g.next()}t.data_=a})),this},t.toString=function(){return"[object ObservableMap]"},t.toJSON=function(){return Array.from(this)},t.observe_=function(e,t){return tr(this,e)},t.intercept_=function(e){return Jn(this,e)},L(e,[{key:"size",get:function(){return this.keysAtom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return"Map"}}])}(),Sr=O("ObservableMap",_r),kr={},Or=function(){function e(e,t,n){var i=this;void 0===t&&(t=X),void 0===n&&(n="ObservableSet"),this.name_=void 0,this[K]=kr,this.data_=new Set,this.atom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.dehancer=void 0,this.enhancer_=void 0,this.name_=n,y(Set)||r(22),this.enhancer_=function(e,r){return t(e,r,n)},qr((function(){i.atom_=Q(i.name_),e&&i.replace(e)}))}var t=e.prototype;return t.dehanceValue_=function(e){return void 0!==this.dehancer?this.dehancer(e):e},t.clear=function(){var e=this;Kn((function(){ct((function(){for(var t,n=D(e.data_.values());!(t=n()).done;){var r=t.value;e.delete(r)}}))}))},t.forEach=function(e,t){for(var n,r=D(this);!(n=r()).done;){var i=n.value;e.call(t,i,i,this)}},t.add=function(e){var t=this;if(this.atom_,Xn(this)&&!Zn(this,{type:mr,object:this,newValue:e}))return this;if(!this.has(e)){Kn((function(){t.data_.add(t.enhancer_(e,void 0)),t.atom_.reportChanged()}));var n=er(this),r=n?{observableKind:"set",debugObjectName:this.name_,type:mr,object:this,newValue:e}:null;n&&nr(this,r)}return this},t.delete=function(e){var t=this;if(Xn(this)&&!Zn(this,{type:wr,object:this,oldValue:e}))return!1;if(this.has(e)){var n=er(this),r=n?{observableKind:"set",debugObjectName:this.name_,type:wr,object:this,oldValue:e}:null;return Kn((function(){t.atom_.reportChanged(),t.data_.delete(e)})),n&&nr(this,r),!0}return!1},t.has=function(e){return this.atom_.reportObserved(),this.data_.has(this.dehanceValue_(e))},t.entries=function(){var e=0,t=Array.from(this.keys()),n=Array.from(this.values());return Zr({next:function(){var r=e;return e+=1,rzr){for(var t=zr;t=0&&n++}e=Jr(e),t=Jr(t);var l="[object Array]"===o;if(!l){if("object"!=typeof e||"object"!=typeof t)return!1;var u=e.constructor,s=t.constructor;if(u!==s&&!(y(u)&&u instanceof u&&y(s)&&s instanceof s)&&"constructor"in e&&"constructor"in t)return!1}if(0===n)return!1;n<0&&(n=-1),i=i||[];for(var c=(r=r||[]).length;c--;)if(r[c]===e)return i[c]===t;if(r.push(e),i.push(t),l){if((c=e.length)!==t.length)return!1;for(;c--;)if(!Xr(e[c],t[c],n-1,r,i))return!1}else{var f,d=Object.keys(e);if(c=d.length,Object.keys(t).length!==c)return!1;for(;c--;)if(!E(t,f=d[c])||!Xr(e[f],t[f],n-1,r,i))return!1}return r.pop(),i.pop(),!0}function Jr(e){return yr(e)?e.slice():P(e)||Sr(e)||A(e)||Pr(e)?Array.from(e.entries()):e}function Zr(e){return e[Symbol.iterator]=ei,e}function ei(){return this}["Symbol","Map","Set"].forEach((function(e){void 0===a()[e]&&r("MobX requires global '"+e+"' to be available or polyfilled")})),"object"==typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:Dt,extras:{getDebugName:Gr},$mobx:K})},45555:(e,t,n)=>{var r=n(7552),i=n(13754);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n