diff --git a/apple-icon.png b/apple-icon.png new file mode 100644 index 0000000..5568f39 Binary files /dev/null and b/apple-icon.png differ diff --git a/asset-manifest.json b/asset-manifest.json new file mode 100644 index 0000000..f7767ae --- /dev/null +++ b/asset-manifest.json @@ -0,0 +1,36 @@ +{ + "files": { + "main.css": "/static/css/main.13210154.css", + "main.js": "/static/js/main.63e0ec27.js", + "static/media/main-background.png": "/static/media/main-background.ec75d719117ef6a4160c.png", + "static/media/ethantran.png": "/static/media/ethantran.064269f5fa6c63c851d7.png", + "static/media/ethanlee.png": "/static/media/ethanlee.4f9e68910cb25858f3f6.png", + "static/media/demo.png": "/static/media/demo.2a06bf5c19e23f2f7396.png", + "static/media/colehuffine.png": "/static/media/colehuffine.002ea266beb2bfd4cf3e.png", + "static/media/fontawesome-webfont.svg?v=4.7.0": "/static/media/fontawesome-webfont.c1e38fd9e0e74ba58f7a.svg", + "static/media/chiragtripathi.png": "/static/media/chiragtripathi.ad04115c7560edd18ff0.png", + "static/media/img-1-1200x1000.jpg": "/static/media/img-1-1200x1000.df1442cf520034feb3b0.jpg", + "static/media/img-2-1200x1000.jpg": "/static/media/img-2-1200x1000.78ce5ecad91906896cd1.jpg", + "static/media/fontawesome-webfont.eot": "/static/media/fontawesome-webfont.8b43027f47b20503057d.eot", + "static/media/fontawesome-webfont.ttf?v=4.7.0": "/static/media/fontawesome-webfont.1e59d2330b4c6deb84b3.ttf", + "static/media/nucleo-icons.svg": "/static/media/nucleo-icons.01ebecaf50461162d4bc.svg", + "static/media/fontawesome-webfont.woff?v=4.7.0": "/static/media/fontawesome-webfont.f691f37e57f04c152e23.woff", + "static/media/ill-2.svg": "/static/media/ill-2.b82bc41ca8f27286779053cc2a544e93.svg", + "static/media/fontawesome-webfont.woff2?v=4.7.0": "/static/media/fontawesome-webfont.20fd1704ea223900efa9.woff2", + "static/media/argon-react.png": "/static/media/argon-react.128d71d316a8e92aff4a.png", + "static/media/endless-altitude-white.png": "/static/media/endless-altitude-white.c4feadc06f0d77b27542.png", + "static/media/nucleo-icons.eot": "/static/media/nucleo-icons.19abb5402a664606b14c.eot", + "static/media/nucleo-icons.ttf": "/static/media/nucleo-icons.d6a66724e7a7bf1bba65.ttf", + "static/media/nucleo-icons.woff": "/static/media/nucleo-icons.c82c9b7c40130b7116d3.woff", + "static/media/nucleo-icons.woff2": "/static/media/nucleo-icons.cba267483aa6a7cb6e33.woff2", + "static/media/google.svg": "/static/media/google.eae9aa9354350126d1b032847835a051.svg", + "static/media/github.svg": "/static/media/github.6c95555646a0ecabf549179c97bf0e7d.svg", + "index.html": "/index.html", + "main.13210154.css.map": "/static/css/main.13210154.css.map", + "main.63e0ec27.js.map": "/static/js/main.63e0ec27.js.map" + }, + "entrypoints": [ + "static/css/main.13210154.css", + "static/js/main.63e0ec27.js" + ] +} \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..4b586a2 Binary files /dev/null and b/favicon.ico differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..06f2fb3 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +Endless Altitude by (EC)<sup>2</sup>
\ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..636cc8b --- /dev/null +++ b/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "Argon Design System React", + "name": "Argon Design System React by Creative Tim", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": "./index.html", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/static/css/main.13210154.css b/static/css/main.13210154.css new file mode 100644 index 0000000..6906c9d --- /dev/null +++ b/static/css/main.13210154.css @@ -0,0 +1,64 @@ +@font-face{font-family:NucleoIcons;font-style:normal;font-weight:400;src:url(/static/media/nucleo-icons.19abb5402a664606b14c.eot);src:url(/static/media/nucleo-icons.19abb5402a664606b14c.eot) format("embedded-opentype"),url(/static/media/nucleo-icons.cba267483aa6a7cb6e33.woff2) format("woff2"),url(/static/media/nucleo-icons.c82c9b7c40130b7116d3.woff) format("woff"),url(/static/media/nucleo-icons.d6a66724e7a7bf1bba65.ttf) format("truetype"),url(/static/media/nucleo-icons.01ebecaf50461162d4bc.svg) format("svg")}.ni{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font:normal normal normal 14px/1 NucleoIcons;font-size:inherit;text-rendering:auto}.ni-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.ni-2x{font-size:2em}.ni-3x{font-size:3em}.ni-4x{font-size:4em}.ni-5x{font-size:5em}.ni.circle,.ni.square{background-color:#eee;padding:.33333333em;vertical-align:-16%}.ni.circle{border-radius:50%}.ni-ul{list-style-type:none;margin-left:2.14285714em;padding-left:0}.ni-ul>li{position:relative}.ni-ul>li>.ni{left:-1.57142857em;position:absolute;text-align:center;top:.14285714em}.ni-ul>li>.ni.lg{left:-1.35714286em;top:0}.ni-ul>li>.ni.circle,.ni-ul>li>.ni.square{left:-1.9047619em;top:-.19047619em}.ni.spin{animation:nc-spin 2s linear infinite}@keyframes nc-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ni.rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);transform:rotate(90deg)}.ni.rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);transform:rotate(180deg)}.ni.rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);transform:rotate(270deg)}.ni.flip-y{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);transform:scaleX(-1)}.ni.flip-x{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);transform:scaleY(-1)}.ni-active-40:before{content:"\ea02"}.ni-air-baloon:before{content:"\ea03"}.ni-album-2:before{content:"\ea04"}.ni-align-center:before{content:"\ea05"}.ni-align-left-2:before{content:"\ea06"}.ni-ambulance:before{content:"\ea07"}.ni-app:before{content:"\ea08"}.ni-archive-2:before{content:"\ea09"}.ni-atom:before{content:"\ea0a"}.ni-badge:before{content:"\ea0b"}.ni-bag-17:before{content:"\ea0c"}.ni-basket:before{content:"\ea0d"}.ni-bell-55:before{content:"\ea0e"}.ni-bold-down:before{content:"\ea0f"}.ni-bold-left:before{content:"\ea10"}.ni-bold-right:before{content:"\ea11"}.ni-bold-up:before{content:"\ea12"}.ni-bold:before{content:"\ea13"}.ni-book-bookmark:before{content:"\ea14"}.ni-books:before{content:"\ea15"}.ni-box-2:before{content:"\ea16"}.ni-briefcase-24:before{content:"\ea17"}.ni-building:before{content:"\ea18"}.ni-bulb-61:before{content:"\ea19"}.ni-bullet-list-67:before{content:"\ea1a"}.ni-bus-front-12:before{content:"\ea1b"}.ni-button-pause:before{content:"\ea1c"}.ni-button-play:before{content:"\ea1d"}.ni-button-power:before{content:"\ea1e"}.ni-calendar-grid-58:before{content:"\ea1f"}.ni-camera-compact:before{content:"\ea20"}.ni-caps-small:before{content:"\ea21"}.ni-cart:before{content:"\ea22"}.ni-chart-bar-32:before{content:"\ea23"}.ni-chart-pie-35:before{content:"\ea24"}.ni-chat-round:before{content:"\ea25"}.ni-check-bold:before{content:"\ea26"}.ni-circle-08:before{content:"\ea27"}.ni-cloud-download-95:before{content:"\ea28"}.ni-cloud-upload-96:before{content:"\ea29"}.ni-compass-04:before{content:"\ea2a"}.ni-controller:before{content:"\ea2b"}.ni-credit-card:before{content:"\ea2c"}.ni-curved-next:before{content:"\ea2d"}.ni-delivery-fast:before{content:"\ea2e"}.ni-diamond:before{content:"\ea2f"}.ni-email-83:before{content:"\ea30"}.ni-fat-add:before{content:"\ea31"}.ni-fat-delete:before{content:"\ea32"}.ni-fat-remove:before{content:"\ea33"}.ni-favourite-28:before{content:"\ea34"}.ni-folder-17:before{content:"\ea35"}.ni-glasses-2:before{content:"\ea36"}.ni-hat-3:before{content:"\ea37"}.ni-headphones:before{content:"\ea38"}.ni-html5:before{content:"\ea39"}.ni-istanbul:before{content:"\ea3a"}.ni-key-25:before{content:"\ea3b"}.ni-laptop:before{content:"\ea3c"}.ni-like-2:before{content:"\ea3d"}.ni-lock-circle-open:before{content:"\ea3e"}.ni-map-big:before{content:"\ea3f"}.ni-mobile-button:before{content:"\ea40"}.ni-money-coins:before{content:"\ea41"}.ni-note-03:before{content:"\ea42"}.ni-notification-70:before{content:"\ea43"}.ni-palette:before{content:"\ea44"}.ni-paper-diploma:before{content:"\ea45"}.ni-pin-3:before{content:"\ea46"}.ni-planet:before{content:"\ea47"}.ni-ruler-pencil:before{content:"\ea48"}.ni-satisfied:before{content:"\ea49"}.ni-scissors:before{content:"\ea4a"}.ni-send:before{content:"\ea4b"}.ni-settings-gear-65:before{content:"\ea4c"}.ni-settings:before{content:"\ea4d"}.ni-single-02:before{content:"\ea4e"}.ni-single-copy-04:before{content:"\ea4f"}.ni-sound-wave:before{content:"\ea50"}.ni-spaceship:before{content:"\ea51"}.ni-square-pin:before{content:"\ea52"}.ni-support-16:before{content:"\ea53"}.ni-tablet-button:before{content:"\ea54"}.ni-tag:before{content:"\ea55"}.ni-tie-bow:before{content:"\ea56"}.ni-time-alarm:before{content:"\ea57"}.ni-trophy:before{content:"\ea58"}.ni-tv-2:before{content:"\ea59"}.ni-umbrella-13:before{content:"\ea5a"}.ni-user-run:before{content:"\ea5b"}.ni-vector:before{content:"\ea5c"}.ni-watch-time:before{content:"\ea5d"}.ni-world:before{content:"\ea5e"}.ni-zoom-split-in:before{content:"\ea5f"}.ni-collection:before{content:"\ea60"}.ni-image:before{content:"\ea61"}.ni-shop:before{content:"\ea62"}.ni-ungroup:before{content:"\ea63"}.ni-world-2:before{content:"\ea64"}.ni-ui-04:before{content:"\ea65"} + +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(/static/media/fontawesome-webfont.8b43027f47b20503057d.eot);src:url(/static/media/fontawesome-webfont.8b43027f47b20503057d.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(/static/media/fontawesome-webfont.20fd1704ea223900efa9.woff2) format("woff2"),url(/static/media/fontawesome-webfont.f691f37e57f04c152e23.woff) format("woff"),url(/static/media/fontawesome-webfont.1e59d2330b4c6deb84b3.ttf) format("truetype"),url(/static/media/fontawesome-webfont.c1e38fd9e0e74ba58f7a.svg#fontawesomeregular) format("svg")}.fa{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{text-align:center;width:1.28571429em}.fa-ul{list-style-type:none;margin-left:2.14285714em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2.14285714em;position:absolute;text-align:center;top:.14285714em;width:2.14285714em}.fa-li.fa-lg{left:-1.85714286em}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s linear infinite}.fa-pulse{animation:fa-spin 1s steps(8) infinite}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only-focusable:active,.sr-only-focusable:focus{margin:0} + +/*! + +========================================================= +* Argon Design System React - v1.1.2 based on Argon Design System - v1.1.1 +========================================================= + +* Product Page: https://www.creative-tim.com/product/argon-design-system-react +* Copyright 2023 Creative Tim (https://www.creative-tim.com) +* Licensed under MIT (https://github.com/creativetimofficial/argon-design-system-react/blob/master/LICENSE.md) + +* Coded by www.creative-tim.com + +========================================================= + +* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +*//*! + * Bootstrap v4.6.2 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--blue:#5e72e4;--indigo:#5603ad;--purple:#8965e0;--pink:#f3a4b5;--red:#f5365c;--orange:#fb6340;--yellow:#ffd600;--green:#2dce89;--teal:#11cdef;--cyan:#2bffc6;--gray:#8898aa;--gray-dark:#32325d;--light:#ced4da;--lighter:#e9ecef;--primary:#5e72e4;--secondary:#f4f5f7;--success:#2dce89;--info:#11cdef;--warning:#fb6340;--danger:#f5365c;--light:#adb5bd;--dark:#212529;--default:#172b4d;--white:#fff;--neutral:#fff;--darker:#000;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{background-color:#fff;color:#525f7f;font-family:Open Sans,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;margin:0;text-align:left}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;margin-top:0}p{margin-bottom:1rem;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{background-color:#0000;color:#5e72e4}a,a:hover{text-decoration:none}a:hover{color:#233dd2}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{-ms-overflow-style:scrollbar;margin-bottom:1rem;margin-top:0;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{caption-side:bottom;color:#8898aa;padding-bottom:1rem;padding-top:1rem;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5rem;line-height:inherit;margin-bottom:.5rem;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{cursor:pointer;display:list-item}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#32325d;font-family:inherit;font-weight:400;line-height:1.5;margin-bottom:.5rem}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.display-1{font-size:3.3rem}.display-1,.display-2{font-weight:600;line-height:1.5}.display-2{font-size:2.75rem}.display-3{font-size:2.1875rem}.display-3,.display-4{font-weight:600;line-height:1.5}.display-4{font-size:1.6275rem}hr{border:0;border-top:.0625rem solid #0000001a;margin-bottom:2rem;margin-top:2rem}.small,small{font-size:80%;font-weight:400}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{list-style:none;padding-left:0}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{font-size:1.25rem;margin-bottom:1rem}.blockquote-footer{color:#8898aa;display:block;font-size:80%}.blockquote-footer:before{content:"— "}.img-fluid,.img-thumbnail{height:auto;max-width:100%}.img-thumbnail{background-color:#fff;border:.0625rem solid #dee2e6;border-radius:.25rem;box-shadow:0 1px 2px rgba(0,0,0,.075);padding:.25rem}.figure{display:inline-block}.figure-img{line-height:1;margin-bottom:.5rem}.figure-caption{color:#8898aa;font-size:90%}code{word-wrap:break-word;color:#f3a4b5;font-size:87.5%}a>code{color:inherit}kbd{background-color:#212529;border-radius:.2rem;box-shadow:inset 0 -.1rem 0 #00000040;color:#fff;font-size:87.5%;padding:.2rem .4rem}kbd kbd{box-shadow:none;font-size:100%;font-weight:600;padding:0}pre{color:#212529;display:block;font-size:87.5%}pre code{color:inherit;font-size:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;width:100%}@media(min-width:576px){.container,.container-sm{max-width:540px}}@media(min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media(min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media(min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1040px}}.row{display:flex;flex-wrap:wrap;margin-left:-15px;margin-right:-15px}.no-gutters{margin-left:0;margin-right:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-left:0;padding-right:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-auto{flex:0 0 auto;max-width:100%;width:auto}.col-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}@media(min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-auto{flex:0 0 auto;max-width:100%;width:auto}.col-sm-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-sm-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-sm-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-sm-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-sm-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}}@media(min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-auto{flex:0 0 auto;max-width:100%;width:auto}.col-md-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-md-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-md-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-md-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-md-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}}@media(min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-auto{flex:0 0 auto;max-width:100%;width:auto}.col-lg-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-lg-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-lg-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-lg-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-lg-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}}@media(min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-auto{flex:0 0 auto;max-width:100%;width:auto}.col-xl-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-xl-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-xl-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-xl-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-xl-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}}.table{background-color:#0000;color:#525f7f;margin-bottom:1rem;width:100%}.table td,.table th{border-top:.0625rem solid #dee2e6;padding:1rem;vertical-align:top}.table thead th{border-bottom:.125rem solid #dee2e6;vertical-align:bottom}.table tbody+tbody{border-top:.125rem solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:.0625rem solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:.125rem}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:#0000000d}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075);color:#525f7f}.table-primary,.table-primary>td,.table-primary>th{background-color:#d2d8f7}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#abb6f1}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#bcc5f3}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#fcfcfd}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#f9fafb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#ededf3}.table-success,.table-success>td,.table-success>th{background-color:#c4f1de}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#92e6c2}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#afecd2}.table-info,.table-info>td,.table-info>th{background-color:#bcf1fb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#83e5f7}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#a4ecfa}.table-warning,.table-warning>td,.table-warning>th{background-color:#fed3ca}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#fdae9c}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#febeb1}.table-danger,.table-danger>td,.table-danger>th{background-color:#fcc7d1}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#fa96aa}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#fbafbd}.table-light,.table-light>td,.table-light>th{background-color:#e8eaed}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#d4d9dd}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#dadde2}.table-dark,.table-dark>td,.table-dark>th{background-color:#c1c2c3}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#8c8e90}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b4b5b6}.table-default,.table-default>td,.table-default>th{background-color:#bec4cd}.table-default tbody+tbody,.table-default td,.table-default th,.table-default thead th{border-color:#8691a2}.table-hover .table-default:hover,.table-hover .table-default:hover>td,.table-hover .table-default:hover>th{background-color:#b0b7c2}.table-white,.table-white>td,.table-white>th{background-color:#fff}.table-white tbody+tbody,.table-white td,.table-white th,.table-white thead th{border-color:#fff}.table-hover .table-white:hover,.table-hover .table-white:hover>td,.table-hover .table-white:hover>th{background-color:#f2f2f2}.table-neutral,.table-neutral>td,.table-neutral>th{background-color:#fff}.table-neutral tbody+tbody,.table-neutral td,.table-neutral th,.table-neutral thead th{border-color:#fff}.table-hover .table-neutral:hover,.table-hover .table-neutral:hover>td,.table-hover .table-neutral:hover>th{background-color:#f2f2f2}.table-darker,.table-darker>td,.table-darker>th{background-color:#b8b8b8}.table-darker tbody+tbody,.table-darker td,.table-darker th,.table-darker thead th{border-color:#7a7a7a}.table-hover .table-darker:hover,.table-hover .table-darker:hover>td,.table-hover .table-darker:hover>th{background-color:#ababab}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{background-color:#212529;border-color:#32383e;color:#fff}.table .thead-light th{background-color:#e9ecef;border-color:#dee2e6;color:#525f7f}.table-dark{background-color:#212529;color:#fff}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:#ffffff0d}.table-dark.table-hover tbody tr:hover{background-color:hsla(0,0%,100%,.075);color:#fff}@media(max-width:575.98px){.table-responsive-sm{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.table-responsive-sm>.table-bordered{border:0}}@media(max-width:767.98px){.table-responsive-md{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.table-responsive-md>.table-bordered{border:0}}@media(max-width:991.98px){.table-responsive-lg{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.table-responsive-lg>.table-bordered{border:0}}@media(max-width:1199.98px){.table-responsive-xl{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.table-responsive>.table-bordered{border:0}.form-control{background-clip:padding-box;background-color:#fff;border:1px solid #cad1d7;border-radius:.25rem;box-shadow:none;color:#8898aa;display:block;font-weight:400;height:calc(1.5em + 1.25rem + 2px);line-height:1.5;padding:.625rem .75rem;transition:all .2s cubic-bezier(.68,-.55,.265,1.55);width:100%}@media(prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:#0000;border:0}.form-control:focus{background-color:#fff;border-color:#3297d340;color:#8898aa;outline:0}.form-control::placeholder{color:#adb5bd;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;appearance:none}select.form-control:-moz-focusring{color:#0000;text-shadow:0 0 0 #8898aa}select.form-control:focus::-ms-value{background-color:#fff;color:#8898aa}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{font-size:inherit;line-height:1.5;margin-bottom:0;padding-bottom:calc(.625rem + 1px);padding-top:calc(.625rem + 1px)}.col-form-label-lg{font-size:.875rem;line-height:1.5;padding-bottom:calc(.875rem + 1px);padding-top:calc(.875rem + 1px)}.col-form-label-sm{font-size:.75rem;line-height:1.5;padding-bottom:calc(.25rem + 1px);padding-top:calc(.25rem + 1px)}.form-control-plaintext{background-color:#0000;border:solid #0000;border-width:1px 0;color:#525f7f;display:block;font-size:.875rem;line-height:1.5;margin-bottom:0;padding:.625rem 0;width:100%}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-left:0;padding-right:0}.form-control-sm{border-radius:.2rem;font-size:.75rem;height:calc(1.5em + .5rem + 2px);line-height:1.5;padding:.25rem .5rem}.form-control-lg{border-radius:.3rem;font-size:.875rem;height:calc(1.5em + 1.75rem + 2px);line-height:1.5;padding:.875rem 1rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-left:-5px;margin-right:-5px}.form-row>.col,.form-row>[class*=col-]{padding-left:5px;padding-right:5px}.form-check{display:block;padding-left:1.25rem;position:relative}.form-check-input{margin-left:-1.25rem;margin-top:.3rem;position:absolute}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#8898aa}.form-check-label{margin-bottom:0}.form-check-inline{align-items:center;display:inline-flex;margin-right:.75rem;padding-left:0}.form-check-inline .form-check-input{margin-left:0;margin-right:.3125rem;margin-top:0;position:static}.valid-feedback{color:#2dce89;display:none;font-size:80%;margin-top:.25rem;width:100%}.valid-tooltip{background-color:#2dce89e6;border-radius:.25rem;color:#fff;display:none;font-size:.875rem;left:0;line-height:1.5;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%232dce89' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-position:right calc(.375em + .3125rem) center;background-repeat:no-repeat;background-size:calc(.75em + .625rem) calc(.75em + .625rem);border-color:#2dce89;padding-right:calc(1.5em + 1.25rem)!important}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#2dce89;box-shadow:0 0 0 0 #2dce8940}.was-validated select.form-control:valid,select.form-control.is-valid{background-position:right 1.5rem center;padding-right:3rem!important}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{background-position:top calc(.375em + .3125rem) right calc(.375em + .3125rem);padding-right:calc(1.5em + 1.25rem)}.custom-select.is-valid,.was-validated .custom-select:valid{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%2332325d' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%232dce89' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") center right 1.75rem/calc(.75em + .625rem) calc(.75em + .625rem) no-repeat;border-color:#2dce89;padding-right:calc(.75em + 2.6875rem)!important}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#2dce89;box-shadow:0 0 0 0 #2dce8940}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#2dce89}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#2dce89}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#2dce89}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{background-color:#54daa1;border-color:#54daa1}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 0 #2dce8940}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#2dce89}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#2dce89;box-shadow:0 0 0 0 #2dce8940}.invalid-feedback{color:#fb6340;display:none;font-size:80%;margin-top:.25rem;width:100%}.invalid-tooltip{background-color:#fb6340e6;border-radius:.25rem;color:#fff;display:none;font-size:.875rem;left:0;line-height:1.5;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23fb6340'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23fb6340' stroke='none'/%3E%3C/svg%3E");background-position:right calc(.375em + .3125rem) center;background-repeat:no-repeat;background-size:calc(.75em + .625rem) calc(.75em + .625rem);border-color:#fb6340;padding-right:calc(1.5em + 1.25rem)!important}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#fb6340;box-shadow:0 0 0 0 #fb634040}.was-validated select.form-control:invalid,select.form-control.is-invalid{background-position:right 1.5rem center;padding-right:3rem!important}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{background-position:top calc(.375em + .3125rem) right calc(.375em + .3125rem);padding-right:calc(1.5em + 1.25rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%2332325d' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23fb6340'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23fb6340' stroke='none'/%3E%3C/svg%3E") center right 1.75rem/calc(.75em + .625rem) calc(.75em + .625rem) no-repeat;border-color:#fb6340;padding-right:calc(.75em + 2.6875rem)!important}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#fb6340;box-shadow:0 0 0 0 #fb634040}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#fb6340}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#fb6340}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#fb6340}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{background-color:#fc8c72;border-color:#fc8c72}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 0 #fb634040}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#fb6340}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#fb6340;box-shadow:0 0 0 0 #fb634040}.form-inline{align-items:center;display:flex;flex-flow:row wrap}.form-inline .form-check{width:100%}@media(min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{align-items:center;display:flex;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;vertical-align:middle;width:auto}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{align-items:center;display:flex;justify-content:center;padding-left:0;width:auto}.form-inline .form-check-input{flex-shrink:0;margin-left:0;margin-right:.25rem;margin-top:0;position:relative}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{background-color:#0000;border:1px solid #0000;border-radius:.25rem;color:#525f7f;display:inline-block;font-weight:600;line-height:1.5;padding:.625rem 1.25rem;text-align:center;transition:all .15s ease;-webkit-user-select:none;user-select:none;vertical-align:middle}@media(prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#525f7f;text-decoration:none}.btn.focus,.btn:focus{box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;outline:0}.btn.disabled,.btn:disabled{box-shadow:none;opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{box-shadow:none}.btn:not(:disabled):not(.disabled).active:focus,.btn:not(:disabled):not(.disabled):active:focus{box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{background-color:#5e72e4;border-color:#5e72e4;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#fff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{background-color:#3d55df;border-color:#324cdd;color:#fff}.btn-primary.focus,.btn-primary:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #7687e880}.btn-primary.disabled,.btn-primary:disabled{background-color:#5e72e4;border-color:#5e72e4;color:#fff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{background-color:#324cdd;border-color:#2742db;color:#fff}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 #7687e880}.btn-secondary{background-color:#f4f5f7;border-color:#f4f5f7;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#212529}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{background-color:#dee1e7;border-color:#d6dae2;color:#212529}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #d4d6d880}.btn-secondary.disabled,.btn-secondary:disabled{background-color:#f4f5f7;border-color:#f4f5f7;color:#212529}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{background-color:#d6dae2;border-color:#cfd3dc;color:#212529}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 0 #d4d6d880}.btn-success{background-color:#2dce89;border-color:#2dce89;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#fff}.btn-success.focus,.btn-success:focus,.btn-success:hover{background-color:#26af74;border-color:#24a46d;color:#fff}.btn-success.focus,.btn-success:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #4dd59b80}.btn-success.disabled,.btn-success:disabled{background-color:#2dce89;border-color:#2dce89;color:#fff}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{background-color:#24a46d;border-color:#229a66;color:#fff}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 0 #4dd59b80}.btn-info{background-color:#11cdef;border-color:#11cdef;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#fff}.btn-info.focus,.btn-info:focus,.btn-info:hover{background-color:#0eafcc;border-color:#0da5c0;color:#fff}.btn-info.focus,.btn-info:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #35d5f180}.btn-info.disabled,.btn-info:disabled{background-color:#11cdef;border-color:#11cdef;color:#fff}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{background-color:#0da5c0;border-color:#0c9ab4;color:#fff}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 0 #35d5f180}.btn-warning{background-color:#fb6340;border-color:#fb6340;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#fff}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{background-color:#fa441b;border-color:#fa3a0e;color:#fff}.btn-warning.focus,.btn-warning:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #fc7a5d80}.btn-warning.disabled,.btn-warning:disabled{background-color:#fb6340;border-color:#fb6340;color:#fff}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{background-color:#fa3a0e;border-color:#f63205;color:#fff}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 0 #fc7a5d80}.btn-danger{background-color:#f5365c;border-color:#f5365c;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#fff}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{background-color:#f3123e;border-color:#ec0c38;color:#fff}.btn-danger.focus,.btn-danger:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #f7547480}.btn-danger.disabled,.btn-danger:disabled{background-color:#f5365c;border-color:#f5365c;color:#fff}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{background-color:#ec0c38;border-color:#e00b36;color:#fff}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 0 #f7547480}.btn-light{background-color:#adb5bd;border-color:#adb5bd;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#fff}.btn-light.focus,.btn-light:focus,.btn-light:hover{background-color:#98a2ac;border-color:#919ca6;color:#fff}.btn-light.focus,.btn-light:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #b9c0c780}.btn-light.disabled,.btn-light:disabled{background-color:#adb5bd;border-color:#adb5bd;color:#fff}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{background-color:#919ca6;border-color:#8a95a1;color:#fff}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 0 #b9c0c780}.btn-dark{background-color:#212529;border-color:#212529;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#fff}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{background-color:#101214;border-color:#0a0c0d;color:#fff}.btn-dark.focus,.btn-dark:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #42464980}.btn-dark.disabled,.btn-dark:disabled{background-color:#212529;border-color:#212529;color:#fff}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{background-color:#0a0c0d;border-color:#050506;color:#fff}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 0 #42464980}.btn-default{background-color:#172b4d;border-color:#172b4d;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#fff}.btn-default.focus,.btn-default:focus,.btn-default:hover{background-color:#0e1b30;border-color:#0b1526;color:#fff}.btn-default.focus,.btn-default:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #3a4b6880}.btn-default.disabled,.btn-default:disabled{background-color:#172b4d;border-color:#172b4d;color:#fff}.btn-default:not(:disabled):not(.disabled).active,.btn-default:not(:disabled):not(.disabled):active,.show>.btn-default.dropdown-toggle{background-color:#0b1526;border-color:#08101c;color:#fff}.btn-default:not(:disabled):not(.disabled).active:focus,.btn-default:not(:disabled):not(.disabled):active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:0 0 0 0 #3a4b6880}.btn-white{background-color:#fff;border-color:#fff;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#212529}.btn-white.focus,.btn-white:focus,.btn-white:hover{background-color:#ececec;border-color:#e6e6e6;color:#212529}.btn-white.focus,.btn-white:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #dededf80}.btn-white.disabled,.btn-white:disabled{background-color:#fff;border-color:#fff;color:#212529}.btn-white:not(:disabled):not(.disabled).active,.btn-white:not(:disabled):not(.disabled):active,.show>.btn-white.dropdown-toggle{background-color:#e6e6e6;border-color:#dfdfdf;color:#212529}.btn-white:not(:disabled):not(.disabled).active:focus,.btn-white:not(:disabled):not(.disabled):active:focus,.show>.btn-white.dropdown-toggle:focus{box-shadow:0 0 0 0 #dededf80}.btn-neutral{background-color:#fff;border-color:#fff;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#212529}.btn-neutral.focus,.btn-neutral:focus,.btn-neutral:hover{background-color:#ececec;border-color:#e6e6e6;color:#212529}.btn-neutral.focus,.btn-neutral:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #dededf80}.btn-neutral.disabled,.btn-neutral:disabled{background-color:#fff;border-color:#fff;color:#212529}.btn-neutral:not(:disabled):not(.disabled).active,.btn-neutral:not(:disabled):not(.disabled):active,.show>.btn-neutral.dropdown-toggle{background-color:#e6e6e6;border-color:#dfdfdf;color:#212529}.btn-neutral:not(:disabled):not(.disabled).active:focus,.btn-neutral:not(:disabled):not(.disabled):active:focus,.show>.btn-neutral.dropdown-toggle:focus{box-shadow:0 0 0 0 #dededf80}.btn-darker{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.btn-darker,.btn-darker.focus,.btn-darker:focus,.btn-darker:hover{background-color:#000;border-color:#000;color:#fff}.btn-darker.focus,.btn-darker:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #26262680}.btn-darker.disabled,.btn-darker:disabled,.btn-darker:not(:disabled):not(.disabled).active,.btn-darker:not(:disabled):not(.disabled):active,.show>.btn-darker.dropdown-toggle{background-color:#000;border-color:#000;color:#fff}.btn-darker:not(:disabled):not(.disabled).active:focus,.btn-darker:not(:disabled):not(.disabled):active:focus,.show>.btn-darker.dropdown-toggle:focus{box-shadow:0 0 0 0 #26262680}.btn-outline-primary{border-color:#5e72e4;color:#5e72e4}.btn-outline-primary:hover{background-color:#5e72e4;border-color:#5e72e4;color:#fff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 0 #5e72e480}.btn-outline-primary.disabled,.btn-outline-primary:disabled{background-color:#0000;color:#5e72e4}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{background-color:#5e72e4;border-color:#5e72e4;color:#fff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 #5e72e480}.btn-outline-secondary{border-color:#f4f5f7;color:#f4f5f7}.btn-outline-secondary:hover{background-color:#f4f5f7;border-color:#f4f5f7;color:#212529}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 0 #f4f5f780}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{background-color:#0000;color:#f4f5f7}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{background-color:#f4f5f7;border-color:#f4f5f7;color:#212529}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 0 #f4f5f780}.btn-outline-success{border-color:#2dce89;color:#2dce89}.btn-outline-success:hover{background-color:#2dce89;border-color:#2dce89;color:#fff}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 0 #2dce8980}.btn-outline-success.disabled,.btn-outline-success:disabled{background-color:#0000;color:#2dce89}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{background-color:#2dce89;border-color:#2dce89;color:#fff}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 0 #2dce8980}.btn-outline-info{border-color:#11cdef;color:#11cdef}.btn-outline-info:hover{background-color:#11cdef;border-color:#11cdef;color:#fff}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 0 #11cdef80}.btn-outline-info.disabled,.btn-outline-info:disabled{background-color:#0000;color:#11cdef}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{background-color:#11cdef;border-color:#11cdef;color:#fff}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 0 #11cdef80}.btn-outline-warning{border-color:#fb6340;color:#fb6340}.btn-outline-warning:hover{background-color:#fb6340;border-color:#fb6340;color:#fff}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 0 #fb634080}.btn-outline-warning.disabled,.btn-outline-warning:disabled{background-color:#0000;color:#fb6340}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{background-color:#fb6340;border-color:#fb6340;color:#fff}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 0 #fb634080}.btn-outline-danger{border-color:#f5365c;color:#f5365c}.btn-outline-danger:hover{background-color:#f5365c;border-color:#f5365c;color:#fff}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 0 #f5365c80}.btn-outline-danger.disabled,.btn-outline-danger:disabled{background-color:#0000;color:#f5365c}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{background-color:#f5365c;border-color:#f5365c;color:#fff}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 0 #f5365c80}.btn-outline-light{border-color:#adb5bd;color:#adb5bd}.btn-outline-light:hover{background-color:#adb5bd;border-color:#adb5bd;color:#fff}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 0 #adb5bd80}.btn-outline-light.disabled,.btn-outline-light:disabled{background-color:#0000;color:#adb5bd}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{background-color:#adb5bd;border-color:#adb5bd;color:#fff}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 0 #adb5bd80}.btn-outline-dark{border-color:#212529;color:#212529}.btn-outline-dark:hover{background-color:#212529;border-color:#212529;color:#fff}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 0 #21252980}.btn-outline-dark.disabled,.btn-outline-dark:disabled{background-color:#0000;color:#212529}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{background-color:#212529;border-color:#212529;color:#fff}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 0 #21252980}.btn-outline-default{border-color:#172b4d;color:#172b4d}.btn-outline-default:hover{background-color:#172b4d;border-color:#172b4d;color:#fff}.btn-outline-default.focus,.btn-outline-default:focus{box-shadow:0 0 0 0 #172b4d80}.btn-outline-default.disabled,.btn-outline-default:disabled{background-color:#0000;color:#172b4d}.btn-outline-default:not(:disabled):not(.disabled).active,.btn-outline-default:not(:disabled):not(.disabled):active,.show>.btn-outline-default.dropdown-toggle{background-color:#172b4d;border-color:#172b4d;color:#fff}.btn-outline-default:not(:disabled):not(.disabled).active:focus,.btn-outline-default:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-default.dropdown-toggle:focus{box-shadow:0 0 0 0 #172b4d80}.btn-outline-white{border-color:#fff;color:#fff}.btn-outline-white:hover{background-color:#fff;border-color:#fff;color:#212529}.btn-outline-white.focus,.btn-outline-white:focus{box-shadow:0 0 0 0 #ffffff80}.btn-outline-white.disabled,.btn-outline-white:disabled{background-color:#0000;color:#fff}.btn-outline-white:not(:disabled):not(.disabled).active,.btn-outline-white:not(:disabled):not(.disabled):active,.show>.btn-outline-white.dropdown-toggle{background-color:#fff;border-color:#fff;color:#212529}.btn-outline-white:not(:disabled):not(.disabled).active:focus,.btn-outline-white:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-white.dropdown-toggle:focus{box-shadow:0 0 0 0 #ffffff80}.btn-outline-neutral{border-color:#fff;color:#fff}.btn-outline-neutral:hover{background-color:#fff;border-color:#fff;color:#212529}.btn-outline-neutral.focus,.btn-outline-neutral:focus{box-shadow:0 0 0 0 #ffffff80}.btn-outline-neutral.disabled,.btn-outline-neutral:disabled{background-color:#0000;color:#fff}.btn-outline-neutral:not(:disabled):not(.disabled).active,.btn-outline-neutral:not(:disabled):not(.disabled):active,.show>.btn-outline-neutral.dropdown-toggle{background-color:#fff;border-color:#fff;color:#212529}.btn-outline-neutral:not(:disabled):not(.disabled).active:focus,.btn-outline-neutral:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-neutral.dropdown-toggle:focus{box-shadow:0 0 0 0 #ffffff80}.btn-outline-darker{border-color:#000;color:#000}.btn-outline-darker:hover{background-color:#000;border-color:#000;color:#fff}.btn-outline-darker.focus,.btn-outline-darker:focus{box-shadow:0 0 0 0 #00000080}.btn-outline-darker.disabled,.btn-outline-darker:disabled{background-color:#0000;color:#000}.btn-outline-darker:not(:disabled):not(.disabled).active,.btn-outline-darker:not(:disabled):not(.disabled):active,.show>.btn-outline-darker.dropdown-toggle{background-color:#000;border-color:#000;color:#fff}.btn-outline-darker:not(:disabled):not(.disabled).active:focus,.btn-outline-darker:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-darker.dropdown-toggle:focus{box-shadow:0 0 0 0 #00000080}.btn-link{color:#5e72e4;font-weight:400;text-decoration:none}.btn-link:hover{color:#233dd2}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:none}.btn-link.disabled,.btn-link:disabled{color:#8898aa;pointer-events:none}.btn-group-lg>.btn,.btn-lg{border-radius:.3rem;font-size:.875rem;line-height:1.5;padding:.875rem 1rem}.btn-group-sm>.btn,.btn-sm{border-radius:.25rem;line-height:1.5;padding:.25rem .5rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;position:relative;transition:height .35s ease}@media(prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.width{height:auto;transition:width .35s ease;width:0}@media(prefers-reduced-motion:reduce){.collapsing.width{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{border-bottom:0;border-left:.3em solid #0000;border-right:.3em solid #0000;border-top:.3em solid;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{background-clip:padding-box;background-color:#fff;border:0 solid #00000026;border-radius:.3rem;box-shadow:0 50px 100px #32325d1a,0 15px 35px #32325d26,0 5px 15px #0000001a;color:#525f7f;display:none;float:left;font-size:1rem;left:0;list-style:none;margin:.125rem 0 0;min-width:10rem;padding:.5rem 0;position:absolute;text-align:left;top:100%;z-index:1000}.dropdown-menu-left{left:0;right:auto}.dropdown-menu-right{left:auto;right:0}@media(min-width:576px){.dropdown-menu-sm-left{left:0;right:auto}.dropdown-menu-sm-right{left:auto;right:0}}@media(min-width:768px){.dropdown-menu-md-left{left:0;right:auto}.dropdown-menu-md-right{left:auto;right:0}}@media(min-width:992px){.dropdown-menu-lg-left{left:0;right:auto}.dropdown-menu-lg-right{left:auto;right:0}}@media(min-width:1200px){.dropdown-menu-xl-left{left:0;right:auto}.dropdown-menu-xl-right{left:auto;right:0}}.dropup .dropdown-menu{bottom:100%;margin-bottom:.125rem;margin-top:0;top:auto}.dropup .dropdown-toggle:after{border-bottom:.3em solid;border-left:.3em solid #0000;border-right:.3em solid #0000;border-top:0;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{left:100%;margin-left:.125rem;margin-top:0;right:auto;top:0}.dropright .dropdown-toggle:after{border-bottom:.3em solid #0000;border-left:.3em solid;border-right:0;border-top:.3em solid #0000;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{left:auto;margin-right:.125rem;margin-top:0;right:100%;top:0}.dropleft .dropdown-toggle:after{content:"";display:inline-block;display:none;margin-left:.255em;vertical-align:.255em}.dropleft .dropdown-toggle:before{border-bottom:.3em solid #0000;border-right:.3em solid;border-top:.3em solid #0000;content:"";display:inline-block;margin-right:.255em;vertical-align:.255em}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{bottom:auto;right:auto}.dropdown-divider{border-top:1px solid #e9ecef;height:0;margin:.5rem 0;overflow:hidden}.dropdown-item{background-color:#0000;border:0;clear:both;color:#212529;display:block;font-weight:400;padding:.25rem 1.5rem;text-align:inherit;white-space:nowrap;width:100%}.dropdown-item:focus,.dropdown-item:hover{background-color:#e9ecef;color:#16181b;text-decoration:none}.dropdown-item.active,.dropdown-item:active{background-color:#5e72e4;color:#fff;text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{background-color:#0000;color:#adb5bd;pointer-events:none}.dropdown-menu.show{display:block}.dropdown-header{color:#8898aa;display:block;font-size:.875rem;margin-bottom:0;padding:.5rem 1.5rem;white-space:nowrap}.dropdown-item-text{color:#212529;display:block;padding:.25rem 1.5rem}.btn-group,.btn-group-vertical{display:inline-flex;position:relative;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{flex:1 1 auto;position:relative}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.dropdown-toggle-split{padding-left:.9375rem;padding-right:.9375rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-left:.375rem;padding-right:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-left:.75rem;padding-right:.75rem}.btn-group.show .dropdown-toggle,.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{align-items:flex-start;flex-direction:column;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{clip:rect(0,0,0,0);pointer-events:none;position:absolute}.input-group{align-items:stretch;display:flex;flex-wrap:wrap;position:relative;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{flex:1 1 auto;margin-bottom:0;min-width:0;position:relative;width:1%}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group>.custom-file{align-items:center;display:flex}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-bottom-right-radius:0;border-top-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-bottom-left-radius:0;border-top-left-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label:after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3),.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label:after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{align-items:center;background-color:#fff;border:1px solid #cad1d7;border-radius:.25rem;color:#adb5bd;display:flex;font-size:.875rem;font-weight:400;line-height:1.5;margin-bottom:0;padding:.625rem .75rem;text-align:center;white-space:nowrap}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1.75rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{border-radius:.3rem;font-size:.875rem;line-height:1.5;padding:.875rem 1rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{border-radius:.2rem;font-size:.75rem;line-height:1.5;padding:.25rem .5rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-bottom-right-radius:0;border-top-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-bottom-left-radius:0;border-top-left-radius:0}.custom-control{display:block;min-height:1.5rem;padding-left:3rem;position:relative;-webkit-print-color-adjust:exact;print-color-adjust:exact;z-index:1}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{height:1.375rem;left:0;opacity:0;position:absolute;width:1.25rem;z-index:-1}.custom-control-input:checked~.custom-control-label:before{background-color:#5e72e4;border-color:#5e72e4;box-shadow:none;color:#fff}.custom-control-input:focus~.custom-control-label:before{box-shadow:none,none}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#3297d340}.custom-control-input:not(:disabled):active~.custom-control-label:before{background-color:#5e72e4;border-color:#5e72e4;box-shadow:none;color:#fff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#8898aa}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;vertical-align:top}.custom-control-label:before{background-color:#fff;box-shadow:none;pointer-events:none}.custom-control-label:after,.custom-control-label:before{content:"";display:block;height:1.25rem;left:-3rem;position:absolute;top:.125rem;width:1.25rem}.custom-control-label:after{background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label:before{border-radius:.2rem}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#5e72e4;border-color:#5e72e4}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:#5e72e480}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:#5e72e480}.custom-switch{padding-left:3.9375rem}.custom-switch .custom-control-label:before{border-radius:.625rem;left:-3.9375rem;pointer-events:all;width:2.1875rem}.custom-switch .custom-control-label:after{background-color:#cad1d7;border-radius:.625rem;height:calc(1.25rem - 4px);left:calc(-3.9375rem + 2px);top:calc(.125rem + 2px);transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:calc(1.25rem - 4px)}@media(prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.9375rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:#5e72e480}.custom-select{-webkit-appearance:none;appearance:none;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%2332325d' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat;border:1px solid #cad1d7;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);color:#8898aa;display:inline-block;font-size:.875rem;font-weight:400;height:calc(1.5em + 1.25rem + 2px);line-height:1.5;padding:.625rem 1.75rem .625rem .75rem;vertical-align:middle;width:100%}.custom-select:focus{border-color:#3297d340;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 0 #5e72e4;outline:0}.custom-select:focus::-ms-value{background-color:#fff;color:#8898aa}.custom-select[multiple],.custom-select[size]:not([size="1"]){background-image:none;height:auto;padding-right:.75rem}.custom-select:disabled{background-color:#e9ecef;color:#8898aa}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:#0000;text-shadow:0 0 0 #8898aa}.custom-select-sm{font-size:.75rem;height:calc(1.5em + .5rem + 2px);padding-bottom:.25rem;padding-left:.5rem;padding-top:.25rem}.custom-select-lg{font-size:.875rem;height:calc(1.5em + 1.75rem + 2px);padding-bottom:.875rem;padding-left:1rem;padding-top:.875rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{height:calc(1.5em + 1.25rem + 2px);position:relative;width:100%}.custom-file-input{margin:0;opacity:0;overflow:hidden;z-index:2}.custom-file-input:focus~.custom-file-label{border-color:#3297d340;box-shadow:none}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{border:1px solid #cad1d7;border-radius:.25rem;box-shadow:none;font-weight:400;height:calc(1.5em + 1.25rem + 2px);left:0;overflow:hidden;z-index:1}.custom-file-label,.custom-file-label:after{background-color:#fff;color:#8898aa;line-height:1.5;padding:.625rem .75rem;position:absolute;right:0;top:0}.custom-file-label:after{border-left:inherit;border-radius:0 .25rem .25rem 0;bottom:0;content:"Browse";display:block;height:calc(1.5em + 1.25rem);z-index:3}.custom-range{-webkit-appearance:none;appearance:none;background-color:#0000;height:1rem;padding:0;width:100%}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,none}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,none}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,none}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:#5e72e4;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem #0000001a;height:1rem;margin-top:-.25rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media(prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#f7f8fe}.custom-range::-webkit-slider-runnable-track{background-color:#dee2e6;border-color:#0000;border-radius:1rem;box-shadow:inset 0 .25rem .25rem #0000001a;color:#0000;cursor:pointer;height:.5rem;width:100%}.custom-range::-moz-range-thumb{appearance:none;background-color:#5e72e4;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem #0000001a;height:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media(prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#f7f8fe}.custom-range::-moz-range-track{background-color:#dee2e6;border-color:#0000;border-radius:1rem;box-shadow:inset 0 .25rem .25rem #0000001a;color:#0000;cursor:pointer;height:.5rem;width:100%}.custom-range::-ms-thumb{appearance:none;background-color:#5e72e4;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem #0000001a;height:1rem;margin-left:0;margin-right:0;margin-top:0;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media(prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#f7f8fe}.custom-range::-ms-track{background-color:#0000;border-color:#0000;border-width:.5rem;box-shadow:inset 0 .25rem .25rem #0000001a;color:#0000;cursor:pointer;height:.5rem;width:100%}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.nav-link{display:block;padding:.25rem .75rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#8898aa;cursor:default;pointer-events:none}.nav-tabs{border-bottom:.0625rem solid #dee2e6}.nav-tabs .nav-link{background-color:#0000;border:.0625rem solid #0000;border-top-left-radius:.25rem;border-top-right-radius:.25rem;margin-bottom:-.0625rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{background-color:#0000;border-color:#0000;color:#8898aa}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{background-color:#fff;border-color:#dee2e6 #dee2e6 #fff;color:#525f7f}.nav-tabs .dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;margin-top:-.0625rem}.nav-pills .nav-link{background:none;border:0;border-radius:.25rem}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{padding:1rem;position:relative}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.navbar-brand{display:inline-block;font-size:1.25rem;line-height:inherit;margin-right:1rem;padding-bottom:.0625rem;padding-top:.0625rem;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;list-style:none;margin-bottom:0;padding-left:0}.navbar-nav .nav-link{padding-left:0;padding-right:0}.navbar-nav .dropdown-menu{float:none;position:static}.navbar-text{display:inline-block;padding-bottom:.25rem;padding-top:.25rem}.navbar-collapse{align-items:center;flex-basis:100%;flex-grow:1}.navbar-toggler{background-color:#0000;border:.0625rem solid #0000;border-radius:.25rem;font-size:1.25rem;line-height:1;padding:.25rem .75rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{background:50%/100% 100% no-repeat;content:"";display:inline-block;height:1.5em;vertical-align:middle;width:1.5em}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media(max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-left:0;padding-right:0}}@media(min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-left:1rem;padding-right:1rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media(max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-left:0;padding-right:0}}@media(min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-left:1rem;padding-right:1rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media(max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-left:0;padding-right:0}}@media(min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-left:1rem;padding-right:1rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media(max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-left:0;padding-right:0}}@media(min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-left:1rem;padding-right:1rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-left:0;padding-right:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-left:1rem;padding-right:1rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:#000000e6}.navbar-light .navbar-nav .nav-link{color:#00000080}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:#000000b3}.navbar-light .navbar-nav .nav-link.disabled{color:#0000004d}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:#000000e6}.navbar-light .navbar-toggler{border-color:#0000;color:#00000080}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:#00000080}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:#000000e6}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#ffffffa6}.navbar-dark .navbar-nav .nav-link{color:#fffffff2}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:#ffffffa6}.navbar-dark .navbar-nav .nav-link.disabled{color:#ffffff40}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#ffffffa6}.navbar-dark .navbar-toggler{border-color:#0000;color:#fffffff2}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.95)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:#fffffff2}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#ffffffa6}.card{word-wrap:break-word;background-clip:initial;background-color:#fff;border:.0625rem solid #0000000d;border-radius:.25rem;display:flex;flex-direction:column;min-width:0}.card>hr{margin-left:0;margin-right:0}.card>.list-group{border-bottom:inherit;border-top:inherit}.card>.list-group:first-child{border-top-left-radius:.1875rem;border-top-right-radius:.1875rem;border-top-width:0}.card>.list-group:last-child{border-bottom-left-radius:.1875rem;border-bottom-right-radius:.1875rem;border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:1.5rem}.card-title{margin-bottom:1.25rem}.card-subtitle{margin-top:-.625rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.5rem}.card-header{background-color:#f6f9fc;border-bottom:.0625rem solid #0000000d;margin-bottom:0;padding:1.25rem 1.5rem}.card-header:first-child{border-radius:.1875rem .1875rem 0 0}.card-footer{background-color:#f6f9fc;border-top:.0625rem solid #0000000d;padding:1.25rem 1.5rem}.card-footer:last-child{border-radius:0 0 .1875rem .1875rem}.card-header-tabs{border-bottom:0;margin-bottom:-1.25rem}.card-header-pills,.card-header-tabs{margin-left:-.75rem;margin-right:-.75rem}.card-img-overlay{border-radius:.1875rem;bottom:0;left:0;padding:1.25rem;position:absolute;right:0;top:0}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:.1875rem;border-top-right-radius:.1875rem}.card-img,.card-img-bottom{border-bottom-left-radius:.1875rem;border-bottom-right-radius:.1875rem}.card-deck .card{margin-bottom:15px}@media(min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-left:-15px;margin-right:-15px}.card-deck .card{flex:1 0;margin-bottom:0;margin-left:15px;margin-right:15px}}.card-group>.card{margin-bottom:15px}@media(min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0;margin-bottom:0}.card-group>.card+.card{border-left:0;margin-left:0}.card-group>.card:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:1.25rem}@media(min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-.0625rem}.breadcrumb{background-color:#e9ecef;border-radius:.25rem;display:flex;flex-wrap:wrap;list-style:none;margin-bottom:1rem;padding:.75rem 1rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{color:#8898aa;content:"/";float:left;padding-right:.5rem}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#8898aa}.pagination{border-radius:.25rem;display:flex;list-style:none;padding-left:0}.page-link{background-color:#fff;border:.0625rem solid #dee2e6;color:#8898aa;display:block;line-height:1.25;margin-left:-.0625rem;padding:.5rem .75rem;position:relative}.page-link:hover{background-color:#dee2e6;border-color:#dee2e6;color:#8898aa;text-decoration:none;z-index:2}.page-link:focus{box-shadow:none;outline:0;z-index:3}.page-item:first-child .page-link{border-bottom-left-radius:.25rem;border-top-left-radius:.25rem;margin-left:0}.page-item:last-child .page-link{border-bottom-right-radius:.25rem;border-top-right-radius:.25rem}.page-item.active .page-link{background-color:#5e72e4;border-color:#5e72e4;color:#fff;z-index:3}.page-item.disabled .page-link{background-color:#fff;border-color:#dee2e6;color:#8898aa;cursor:auto;pointer-events:none}.pagination-lg .page-link{font-size:1.25rem;line-height:1.5;padding:.75rem 1.5rem}.pagination-lg .page-item:first-child .page-link{border-bottom-left-radius:.3rem;border-top-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-bottom-right-radius:.3rem;border-top-right-radius:.3rem}.pagination-sm .page-link{font-size:.875rem;line-height:1.5;padding:.25rem .5rem}.pagination-sm .page-item:first-child .page-link{border-bottom-left-radius:.2rem;border-top-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-bottom-right-radius:.2rem;border-top-right-radius:.2rem}.badge{border-radius:.25rem;display:inline-block;font-size:66%;font-weight:600;line-height:1;padding:.35rem .375rem;text-align:center;transition:all .15s ease;vertical-align:initial;white-space:nowrap}@media(prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{border-radius:10rem}.badge-primary{background-color:#5e72e4;color:#fff}a.badge-primary:focus,a.badge-primary:hover{background-color:#324cdd;color:#fff}a.badge-primary.focus,a.badge-primary:focus{box-shadow:0 0 0 0 #5e72e480;outline:0}.badge-secondary{background-color:#f4f5f7;color:#212529}a.badge-secondary:focus,a.badge-secondary:hover{background-color:#d6dae2;color:#212529}a.badge-secondary.focus,a.badge-secondary:focus{box-shadow:0 0 0 0 #f4f5f780;outline:0}.badge-success{background-color:#2dce89;color:#fff}a.badge-success:focus,a.badge-success:hover{background-color:#24a46d;color:#fff}a.badge-success.focus,a.badge-success:focus{box-shadow:0 0 0 0 #2dce8980;outline:0}.badge-info{background-color:#11cdef;color:#fff}a.badge-info:focus,a.badge-info:hover{background-color:#0da5c0;color:#fff}a.badge-info.focus,a.badge-info:focus{box-shadow:0 0 0 0 #11cdef80;outline:0}.badge-warning{background-color:#fb6340;color:#fff}a.badge-warning:focus,a.badge-warning:hover{background-color:#fa3a0e;color:#fff}a.badge-warning.focus,a.badge-warning:focus{box-shadow:0 0 0 0 #fb634080;outline:0}.badge-danger{background-color:#f5365c;color:#fff}a.badge-danger:focus,a.badge-danger:hover{background-color:#ec0c38;color:#fff}a.badge-danger.focus,a.badge-danger:focus{box-shadow:0 0 0 0 #f5365c80;outline:0}.badge-light{background-color:#adb5bd;color:#fff}a.badge-light:focus,a.badge-light:hover{background-color:#919ca6;color:#fff}a.badge-light.focus,a.badge-light:focus{box-shadow:0 0 0 0 #adb5bd80;outline:0}.badge-dark{background-color:#212529;color:#fff}a.badge-dark:focus,a.badge-dark:hover{background-color:#0a0c0d;color:#fff}a.badge-dark.focus,a.badge-dark:focus{box-shadow:0 0 0 0 #21252980;outline:0}.badge-default{background-color:#172b4d;color:#fff}a.badge-default:focus,a.badge-default:hover{background-color:#0b1526;color:#fff}a.badge-default.focus,a.badge-default:focus{box-shadow:0 0 0 0 #172b4d80;outline:0}.badge-white{background-color:#fff;color:#212529}a.badge-white:focus,a.badge-white:hover{background-color:#e6e6e6;color:#212529}a.badge-white.focus,a.badge-white:focus{box-shadow:0 0 0 0 #ffffff80;outline:0}.badge-neutral{background-color:#fff;color:#212529}a.badge-neutral:focus,a.badge-neutral:hover{background-color:#e6e6e6;color:#212529}a.badge-neutral.focus,a.badge-neutral:focus{box-shadow:0 0 0 0 #ffffff80;outline:0}.badge-darker,a.badge-darker:focus,a.badge-darker:hover{background-color:#000;color:#fff}a.badge-darker.focus,a.badge-darker:focus{box-shadow:0 0 0 0 #00000080;outline:0}.jumbotron{background-color:#e9ecef;border-radius:.3rem;margin-bottom:2rem;padding:2rem 1rem}@media(min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{border-radius:0;padding-left:0;padding-right:0}.alert{border:.0625rem solid #0000;margin-bottom:1rem;position:relative}.alert-heading{color:inherit}.alert-link{font-weight:600}.alert-dismissible{padding-right:4.5rem}.alert-dismissible .close{color:inherit;padding:1rem 1.5rem;position:absolute;right:0;top:0;z-index:2}.alert-primary{background-color:#7889e8;border-color:#7889e8;color:#5e72e4}.alert-primary hr{border-top-color:#6276e4}.alert-primary .alert-link{color:#324cdd}.alert-secondary{background-color:#f6f7f8;border-color:#f6f7f8;color:#f4f5f7}.alert-secondary hr{border-top-color:#e8eaed}.alert-secondary .alert-link{color:#d6dae2}.alert-success{background-color:#4fd69c;border-color:#4fd69c;color:#2dce89}.alert-success hr{border-top-color:#3ad190}.alert-success .alert-link{color:#24a46d}.alert-info{background-color:#37d5f2;border-color:#37d5f2;color:#11cdef}.alert-info hr{border-top-color:#1fd0f0}.alert-info .alert-link{color:#0da5c0}.alert-warning{background-color:#fc7c5f;border-color:#fc7c5f;color:#fb6340}.alert-warning hr{border-top-color:#fc6846}.alert-warning .alert-link{color:#fa3a0e}.alert-danger{background-color:#f75676;border-color:#f75676;color:#f5365c}.alert-danger hr{border-top-color:#f63e62}.alert-danger .alert-link{color:#ec0c38}.alert-light{background-color:#bac1c8;border-color:#bac1c8;color:#adb5bd}.alert-light hr{border-top-color:#acb4bd}.alert-light .alert-link{color:#919ca6}.alert-dark{background-color:#45484b;border-color:#45484b;color:#212529}.alert-dark hr{border-top-color:#393b3e}.alert-dark .alert-link{color:#0a0c0d}.alert-default{background-color:#3c4d69;border-color:#3c4d69;color:#172b4d}.alert-default hr{border-top-color:#334159}.alert-default .alert-link{color:#0b1526}.alert-white{background-color:#fff;border-color:#fff;color:#fff}.alert-white hr{border-top-color:#f2f2f2}.alert-white .alert-link{color:#e6e6e6}.alert-neutral{background-color:#fff;border-color:#fff;color:#fff}.alert-neutral hr{border-top-color:#f2f2f2}.alert-neutral .alert-link{color:#e6e6e6}.alert-darker{background-color:#292929;border-color:#292929;color:#000}.alert-darker hr{border-top-color:#1c1c1c}.alert-darker .alert-link{color:#000}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{border-radius:.25rem;box-shadow:inset 0 .1rem .1rem #0000001a;display:flex;font-size:.75rem;height:1rem;line-height:0}.progress-bar{background-color:#5e72e4;color:#fff;display:flex;flex-direction:column;justify-content:center;overflow:hidden;text-align:center;transition:width .6s ease;white-space:nowrap}@media(prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,#ffffff26 25%,#0000 0,#0000 50%,#ffffff26 0,#ffffff26 75%,#0000 0,#0000);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media(prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{align-items:flex-start;display:flex}.media-body{flex:1 1}.list-group{border-radius:.25rem;display:flex;flex-direction:column;margin-bottom:0;padding-left:0}.list-group-item-action{color:#525f7f;text-align:inherit;width:100%}.list-group-item-action:focus,.list-group-item-action:hover{background-color:#f6f9fc;color:#525f7f;text-decoration:none;z-index:1}.list-group-item-action:active{background-color:#e9ecef;color:#525f7f}.list-group-item{background-color:#fff;border:.0625rem solid #e9ecef;display:block;padding:1rem;position:relative}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{background-color:#fff;color:#8898aa;pointer-events:none}.list-group-item.active{background-color:#5e72e4;border-color:#5e72e4;color:#fff;z-index:2}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{border-top-width:.0625rem;margin-top:-.0625rem}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.25rem}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-left-width:0;border-top-width:.0625rem}.list-group-horizontal>.list-group-item+.list-group-item.active{border-left-width:.0625rem;margin-left:-.0625rem}@media(min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.25rem}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-left-width:0;border-top-width:.0625rem}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{border-left-width:.0625rem;margin-left:-.0625rem}}@media(min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.25rem}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-left-width:0;border-top-width:.0625rem}.list-group-horizontal-md>.list-group-item+.list-group-item.active{border-left-width:.0625rem;margin-left:-.0625rem}}@media(min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.25rem}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-left-width:0;border-top-width:.0625rem}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{border-left-width:.0625rem;margin-left:-.0625rem}}@media(min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.25rem}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-left-width:0;border-top-width:.0625rem}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{border-left-width:.0625rem;margin-left:-.0625rem}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 .0625rem}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{background-color:#d2d8f7;color:#313b77}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{background-color:#bcc5f3;color:#313b77}.list-group-item-primary.list-group-item-action.active{background-color:#313b77;border-color:#313b77;color:#fff}.list-group-item-secondary{background-color:#fcfcfd;color:#7f7f80}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{background-color:#ededf3;color:#7f7f80}.list-group-item-secondary.list-group-item-action.active{background-color:#7f7f80;border-color:#7f7f80;color:#fff}.list-group-item-success{background-color:#c4f1de;color:#176b47}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{background-color:#afecd2;color:#176b47}.list-group-item-success.list-group-item-action.active{background-color:#176b47;border-color:#176b47;color:#fff}.list-group-item-info{background-color:#bcf1fb;color:#096b7c}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{background-color:#a4ecfa;color:#096b7c}.list-group-item-info.list-group-item-action.active{background-color:#096b7c;border-color:#096b7c;color:#fff}.list-group-item-warning{background-color:#fed3ca;color:#833321}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{background-color:#febeb1;color:#833321}.list-group-item-warning.list-group-item-action.active{background-color:#833321;border-color:#833321;color:#fff}.list-group-item-danger{background-color:#fcc7d1;color:#7f1c30}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{background-color:#fbafbd;color:#7f1c30}.list-group-item-danger.list-group-item-action.active{background-color:#7f1c30;border-color:#7f1c30;color:#fff}.list-group-item-light{background-color:#e8eaed;color:#5a5e62}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{background-color:#dadde2;color:#5a5e62}.list-group-item-light.list-group-item-action.active{background-color:#5a5e62;border-color:#5a5e62;color:#fff}.list-group-item-dark{background-color:#c1c2c3;color:#111315}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{background-color:#b4b5b6;color:#111315}.list-group-item-dark.list-group-item-action.active{background-color:#111315;border-color:#111315;color:#fff}.list-group-item-default{background-color:#bec4cd;color:#0c1628}.list-group-item-default.list-group-item-action:focus,.list-group-item-default.list-group-item-action:hover{background-color:#b0b7c2;color:#0c1628}.list-group-item-default.list-group-item-action.active{background-color:#0c1628;border-color:#0c1628;color:#fff}.list-group-item-white{background-color:#fff;color:#858585}.list-group-item-white.list-group-item-action:focus,.list-group-item-white.list-group-item-action:hover{background-color:#f2f2f2;color:#858585}.list-group-item-white.list-group-item-action.active{background-color:#858585;border-color:#858585;color:#fff}.list-group-item-neutral{background-color:#fff;color:#858585}.list-group-item-neutral.list-group-item-action:focus,.list-group-item-neutral.list-group-item-action:hover{background-color:#f2f2f2;color:#858585}.list-group-item-neutral.list-group-item-action.active{background-color:#858585;border-color:#858585;color:#fff}.list-group-item-darker{background-color:#b8b8b8;color:#000}.list-group-item-darker.list-group-item-action:focus,.list-group-item-darker.list-group-item-action:hover{background-color:#ababab;color:#000}.list-group-item-darker.list-group-item-action.active{background-color:#000;border-color:#000;color:#fff}.close{color:#0009;float:right;font-size:1.5rem;font-weight:600;line-height:1;opacity:.5;text-shadow:none}.close:hover{color:#0009;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{background-color:#0000;border:0;padding:0}a.close.disabled{pointer-events:none}.toast{background-clip:padding-box;background-color:#ffffffd9;border:1px solid #0000001a;border-radius:.25rem;box-shadow:0 .25rem .75rem #0000001a;flex-basis:350px;font-size:.875rem;max-width:350px;opacity:0}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{align-items:center;background-clip:padding-box;background-color:#ffffffd9;border-bottom:1px solid #0000000d;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px);color:#8898aa;display:flex;padding:.25rem .75rem}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{display:none;height:100%;left:0;outline:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:1050}.modal-dialog{margin:.5rem;pointer-events:none;position:relative;width:auto}.modal.fade .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}@media(prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{align-items:center;display:flex;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{content:"";display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:min-content}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;height:100%;justify-content:center}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{background-clip:padding-box;background-color:#fff;border:1px solid #0003;box-shadow:0 15px 35px #32325d33,0 5px 15px #0000002b;display:flex;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}.modal-backdrop{background-color:#000;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1040}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.16}.modal-header{align-items:flex-start;border-bottom:1px solid #e9ecef;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);display:flex;justify-content:space-between;padding:1.25rem}.modal-header .close{margin:-1rem -1rem -1rem auto;padding:1.25rem}.modal-title{line-height:1.1;margin-bottom:0}.modal-body{flex:1 1 auto;padding:1.5rem;position:relative}.modal-footer{align-items:center;border-bottom-left-radius:calc(.3rem - 1px);border-bottom-right-radius:calc(.3rem - 1px);border-top:1px solid #e9ecef;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:1.25rem}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{height:50px;overflow:scroll;position:absolute;top:-9999px;width:50px}@media(min-width:576px){.modal-dialog{margin:1.75rem auto;max-width:500px}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:min-content}.modal-content{box-shadow:0 15px 35px #32325d33,0 5px 15px #0000002b}.modal-sm{max-width:380px}}@media(min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{word-wrap:break-word;display:block;font-family:Open Sans,sans-serif;font-size:.875rem;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;margin:0;opacity:0;position:absolute;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:1070}.tooltip.show{opacity:.9}.tooltip .arrow{display:block;height:.4rem;position:absolute;width:.8rem}.tooltip .arrow:before{border-color:#0000;border-style:solid;content:"";position:absolute}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{border-top-color:#000;border-width:.4rem .4rem 0;top:0}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{height:.8rem;left:0;width:.4rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{border-right-color:#000;border-width:.4rem .4rem .4rem 0;right:0}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{border-bottom-color:#000;border-width:0 .4rem .4rem;bottom:0}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{height:.8rem;right:0;width:.4rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{border-left-color:#000;border-width:.4rem 0 .4rem .4rem;left:0}.tooltip-inner{background-color:#000;border-radius:.25rem;color:#fff;max-width:200px;padding:.25rem .5rem;text-align:center}.popover{word-wrap:break-word;background-clip:padding-box;background-color:#fff;border:1px solid #0000000d;border-radius:.3rem;box-shadow:0 .5rem 2rem 0 #0003;font-family:Open Sans,sans-serif;font-size:.875rem;font-style:normal;font-weight:400;left:0;letter-spacing:normal;line-break:auto;line-height:1.5;max-width:276px;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;top:0;white-space:normal;word-break:normal;word-spacing:normal;z-index:1060}.popover,.popover .arrow{display:block;position:absolute}.popover .arrow{height:.75rem;margin:0 .3rem;width:1.5rem}.popover .arrow:after,.popover .arrow:before{border-color:#0000;border-style:solid;content:"";display:block;position:absolute}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.75rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.75rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{border-top-color:#0000;border-width:.75rem .75rem 0;bottom:0}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{border-top-color:#fff;border-width:.75rem .75rem 0;bottom:1px}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.75rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{height:1.5rem;left:calc(-.75rem - 1px);margin:.3rem 0;width:.75rem}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{border-right-color:#0000;border-width:.75rem .75rem .75rem 0;left:0}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{border-right-color:#fff;border-width:.75rem .75rem .75rem 0;left:1px}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.75rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.75rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{border-bottom-color:#0000;border-width:0 .75rem .75rem;top:0}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{border-bottom-color:#fff;border-width:0 .75rem .75rem;top:1px}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{border-bottom:1px solid #fff;content:"";display:block;left:50%;margin-left:-.75rem;position:absolute;top:0;width:1.5rem}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.75rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{height:1.5rem;margin:.3rem 0;right:calc(-.75rem - 1px);width:.75rem}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{border-left-color:#0000;border-width:.75rem 0 .75rem .75rem;right:0}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{border-left-color:#fff;border-width:.75rem 0 .75rem .75rem;right:1px}.popover-header{background-color:#fff;border-bottom:1px solid #f2f2f2;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);color:#32325d;font-size:1rem;margin-bottom:0;padding:.75rem}.popover-header:empty{display:none}.popover-body{color:#525f7f;padding:.75rem}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{overflow:hidden;position:relative;width:100%}.carousel-inner:after{clear:both;content:"";display:block}.carousel-item{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;float:left;margin-right:-100%;position:relative;transition:transform .6s ease-in-out;width:100%}@media(prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transform:none;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1;z-index:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0;transition:opacity 0s .6s;z-index:0}@media(prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{align-items:center;background:none;border:0;bottom:0;color:#fff;display:flex;justify-content:center;opacity:.5;padding:0;position:absolute;text-align:center;top:0;transition:opacity .15s ease;width:15%;z-index:1}@media(prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;opacity:.9;outline:0;text-decoration:none}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{background:50%/100% 100% no-repeat;display:inline-block;height:20px;width:20px}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' fill='%23fff'%3E%3Cpath d='m5.25 0-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' fill='%23fff'%3E%3Cpath d='m2.75 0-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{bottom:0;display:flex;justify-content:center;left:0;list-style:none;margin-left:15%;margin-right:15%;padding-left:0;position:absolute;right:0;z-index:15}.carousel-indicators li{background-clip:padding-box;background-color:#fff;border-bottom:10px solid #0000;border-top:10px solid #0000;box-sizing:initial;cursor:pointer;flex:0 1 auto;height:3px;margin-left:3px;margin-right:3px;opacity:.5;text-indent:-999px;transition:opacity .6s ease;width:30px}@media(prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{bottom:20px;color:#fff;left:15%;padding-bottom:20px;padding-top:20px;position:absolute;right:15%;text-align:center;z-index:10}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{animation:spinner-border .75s linear infinite;border:.25em solid;border-radius:50%;border-right:.25em solid #0000;display:inline-block;height:2rem;vertical-align:-.125em;width:2rem}.spinner-border-sm{border-width:.2em;height:1rem;width:1rem}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{animation:spinner-grow .75s linear infinite;background-color:currentcolor;border-radius:50%;display:inline-block;height:2rem;opacity:0;vertical-align:-.125em;width:2rem}.spinner-grow-sm{height:1rem;width:1rem}@media(prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.align-baseline{vertical-align:initial!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#5e72e4!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#324cdd!important}.bg-secondary{background-color:#f4f5f7!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#d6dae2!important}.bg-success{background-color:#2dce89!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#24a46d!important}.bg-info{background-color:#11cdef!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#0da5c0!important}.bg-warning{background-color:#fb6340!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#fa3a0e!important}.bg-danger{background-color:#f5365c!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#ec0c38!important}.bg-light{background-color:#adb5bd!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#919ca6!important}.bg-dark{background-color:#212529!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#0a0c0d!important}.bg-default{background-color:#172b4d!important}a.bg-default:focus,a.bg-default:hover,button.bg-default:focus,button.bg-default:hover{background-color:#0b1526!important}.bg-neutral{background-color:#fff!important}a.bg-neutral:focus,a.bg-neutral:hover,button.bg-neutral:focus,button.bg-neutral:hover{background-color:#e6e6e6!important}.bg-darker,a.bg-darker:focus,a.bg-darker:hover,button.bg-darker:focus,button.bg-darker:hover{background-color:#000!important}.bg-transparent{background-color:#0000!important}.border{border:.0625rem solid #e9ecef!important}.border-top{border-top:.0625rem solid #e9ecef!important}.border-right{border-right:.0625rem solid #e9ecef!important}.border-bottom{border-bottom:.0625rem solid #e9ecef!important}.border-left{border-left:.0625rem solid #e9ecef!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#5e72e4!important}.border-secondary{border-color:#f4f5f7!important}.border-success{border-color:#2dce89!important}.border-info{border-color:#11cdef!important}.border-warning{border-color:#fb6340!important}.border-danger{border-color:#f5365c!important}.border-light{border-color:#adb5bd!important}.border-dark{border-color:#212529!important}.border-default{border-color:#172b4d!important}.border-neutral{border-color:#fff!important}.border-darker{border-color:#000!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{clear:both;content:"";display:block}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media(min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media(min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media(min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media(min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{display:block;overflow:hidden;padding:0;position:relative;width:100%}.embed-responsive:before{content:"";display:block}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{border:0;bottom:0;height:100%;left:0;position:absolute;top:0;width:100%}.embed-responsive-21by9:before{padding-top:42.85714286%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media(min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media(min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media(min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media(min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media(min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media(min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media(min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media(min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.headroom--pinned,.headroom--unpinned,.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{left:0;position:fixed;right:0;z-index:1030}.fixed-bottom{bottom:0}@supports((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;overflow:visible;position:static;white-space:normal;width:auto}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.profile-page .card-profile .card-profile-image img,.shadow{box-shadow:0 15px 35px #32325d1a,0 5px 15px #00000012!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.m--9{margin:-10rem!important}.mt--9,.my--9{margin-top:-10rem!important}.mr--9,.mx--9{margin-right:-10rem!important}.mb--9,.my--9{margin-bottom:-10rem!important}.ml--9,.mx--9{margin-left:-10rem!important}.m--8{margin:-8rem!important}.mt--8,.my--8{margin-top:-8rem!important}.mr--8,.mx--8{margin-right:-8rem!important}.mb--8,.my--8{margin-bottom:-8rem!important}.ml--8,.mx--8{margin-left:-8rem!important}.m--7{margin:-6rem!important}.mt--7,.my--7{margin-top:-6rem!important}.mr--7,.mx--7{margin-right:-6rem!important}.mb--7,.my--7{margin-bottom:-6rem!important}.ml--7,.mx--7{margin-left:-6rem!important}.m--6{margin:-4.5rem!important}.mt--6,.my--6{margin-top:-4.5rem!important}.mr--6,.mx--6{margin-right:-4.5rem!important}.mb--6,.my--6{margin-bottom:-4.5rem!important}.ml--6,.mx--6{margin-left:-4.5rem!important}.m--5{margin:-3rem!important}.mt--5,.my--5{margin-top:-3rem!important}.mr--5,.mx--5{margin-right:-3rem!important}.mb--5,.my--5{margin-bottom:-3rem!important}.ml--5,.mx--5{margin-left:-3rem!important}.m--4{margin:-1.5rem!important}.mt--4,.my--4{margin-top:-1.5rem!important}.mr--4,.mx--4{margin-right:-1.5rem!important}.mb--4,.my--4{margin-bottom:-1.5rem!important}.ml--4,.mx--4{margin-left:-1.5rem!important}.m--3{margin:-1rem!important}.mt--3,.my--3{margin-top:-1rem!important}.mr--3,.mx--3{margin-right:-1rem!important}.mb--3,.my--3{margin-bottom:-1rem!important}.ml--3,.mx--3{margin-left:-1rem!important}.m--2{margin:-.5rem!important}.mt--2,.my--2{margin-top:-.5rem!important}.mr--2,.mx--2{margin-right:-.5rem!important}.mb--2,.my--2{margin-bottom:-.5rem!important}.ml--2,.mx--2{margin-left:-.5rem!important}.m--1{margin:-.25rem!important}.mt--1,.my--1{margin-top:-.25rem!important}.mr--1,.mx--1{margin-right:-.25rem!important}.mb--1,.my--1{margin-bottom:-.25rem!important}.ml--1,.mx--1{margin-left:-.25rem!important}.m-6{margin:4.5rem!important}.mt-6,.my-6{margin-top:4.5rem!important}.mr-6,.mx-6{margin-right:4.5rem!important}.mb-6,.my-6{margin-bottom:4.5rem!important}.ml-6,.mx-6{margin-left:4.5rem!important}.m-7{margin:6rem!important}.mt-7,.my-7{margin-top:6rem!important}.mr-7,.mx-7{margin-right:6rem!important}.mb-7,.my-7{margin-bottom:6rem!important}.ml-7,.mx-7{margin-left:6rem!important}.m-8{margin:8rem!important}.mt-8,.my-8{margin-top:8rem!important}.mr-8,.mx-8{margin-right:8rem!important}.mb-8,.my-8{margin-bottom:8rem!important}.ml-8,.mx-8{margin-left:8rem!important}.m-9{margin:10rem!important}.mt-9,.my-9{margin-top:10rem!important}.mr-9,.mx-9{margin-right:10rem!important}.mb-9,.my-9{margin-bottom:10rem!important}.ml-9,.mx-9{margin-left:10rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.p--9{padding:-10rem!important}.pt--9,.py--9{padding-top:-10rem!important}.pr--9,.px--9{padding-right:-10rem!important}.pb--9,.py--9{padding-bottom:-10rem!important}.pl--9,.px--9{padding-left:-10rem!important}.p--8{padding:-8rem!important}.pt--8,.py--8{padding-top:-8rem!important}.pr--8,.px--8{padding-right:-8rem!important}.pb--8,.py--8{padding-bottom:-8rem!important}.pl--8,.px--8{padding-left:-8rem!important}.p--7{padding:-6rem!important}.pt--7,.py--7{padding-top:-6rem!important}.pr--7,.px--7{padding-right:-6rem!important}.pb--7,.py--7{padding-bottom:-6rem!important}.pl--7,.px--7{padding-left:-6rem!important}.p--6{padding:-4.5rem!important}.pt--6,.py--6{padding-top:-4.5rem!important}.pr--6,.px--6{padding-right:-4.5rem!important}.pb--6,.py--6{padding-bottom:-4.5rem!important}.pl--6,.px--6{padding-left:-4.5rem!important}.p--5{padding:-3rem!important}.pt--5,.py--5{padding-top:-3rem!important}.pr--5,.px--5{padding-right:-3rem!important}.pb--5,.py--5{padding-bottom:-3rem!important}.pl--5,.px--5{padding-left:-3rem!important}.p--4{padding:-1.5rem!important}.pt--4,.py--4{padding-top:-1.5rem!important}.pr--4,.px--4{padding-right:-1.5rem!important}.pb--4,.py--4{padding-bottom:-1.5rem!important}.pl--4,.px--4{padding-left:-1.5rem!important}.p--3{padding:-1rem!important}.pt--3,.py--3{padding-top:-1rem!important}.pr--3,.px--3{padding-right:-1rem!important}.pb--3,.py--3{padding-bottom:-1rem!important}.pl--3,.px--3{padding-left:-1rem!important}.p--2{padding:-.5rem!important}.pt--2,.py--2{padding-top:-.5rem!important}.pr--2,.px--2{padding-right:-.5rem!important}.pb--2,.py--2{padding-bottom:-.5rem!important}.pl--2,.px--2{padding-left:-.5rem!important}.p--1{padding:-.25rem!important}.pt--1,.py--1{padding-top:-.25rem!important}.pr--1,.px--1{padding-right:-.25rem!important}.pb--1,.py--1{padding-bottom:-.25rem!important}.pl--1,.px--1{padding-left:-.25rem!important}.p-6{padding:4.5rem!important}.pt-6,.py-6{padding-top:4.5rem!important}.pr-6,.px-6{padding-right:4.5rem!important}.pb-6,.py-6{padding-bottom:4.5rem!important}.pl-6,.px-6{padding-left:4.5rem!important}.p-7{padding:6rem!important}.pt-7,.py-7{padding-top:6rem!important}.pr-7,.px-7{padding-right:6rem!important}.pb-7,.py-7{padding-bottom:6rem!important}.pl-7,.px-7{padding-left:6rem!important}.p-8{padding:8rem!important}.pt-8,.py-8{padding-top:8rem!important}.pr-8,.px-8{padding-right:8rem!important}.pb-8,.py-8{padding-bottom:8rem!important}.pl-8,.px-8{padding-left:8rem!important}.p-9{padding:10rem!important}.pt-9,.py-9{padding-top:10rem!important}.pr-9,.px-9{padding-right:10rem!important}.pb-9,.py-9{padding-bottom:10rem!important}.pl-9,.px-9{padding-left:10rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-n-9{margin:10rem!important}.mt-n-9,.my-n-9{margin-top:10rem!important}.mr-n-9,.mx-n-9{margin-right:10rem!important}.mb-n-9,.my-n-9{margin-bottom:10rem!important}.ml-n-9,.mx-n-9{margin-left:10rem!important}.m-n-8{margin:8rem!important}.mt-n-8,.my-n-8{margin-top:8rem!important}.mr-n-8,.mx-n-8{margin-right:8rem!important}.mb-n-8,.my-n-8{margin-bottom:8rem!important}.ml-n-8,.mx-n-8{margin-left:8rem!important}.m-n-7{margin:6rem!important}.mt-n-7,.my-n-7{margin-top:6rem!important}.mr-n-7,.mx-n-7{margin-right:6rem!important}.mb-n-7,.my-n-7{margin-bottom:6rem!important}.ml-n-7,.mx-n-7{margin-left:6rem!important}.m-n-6{margin:4.5rem!important}.mt-n-6,.my-n-6{margin-top:4.5rem!important}.mr-n-6,.mx-n-6{margin-right:4.5rem!important}.mb-n-6,.my-n-6{margin-bottom:4.5rem!important}.ml-n-6,.mx-n-6{margin-left:4.5rem!important}.m-n-5{margin:3rem!important}.mt-n-5,.my-n-5{margin-top:3rem!important}.mr-n-5,.mx-n-5{margin-right:3rem!important}.mb-n-5,.my-n-5{margin-bottom:3rem!important}.ml-n-5,.mx-n-5{margin-left:3rem!important}.m-n-4{margin:1.5rem!important}.mt-n-4,.my-n-4{margin-top:1.5rem!important}.mr-n-4,.mx-n-4{margin-right:1.5rem!important}.mb-n-4,.my-n-4{margin-bottom:1.5rem!important}.ml-n-4,.mx-n-4{margin-left:1.5rem!important}.m-n-3{margin:1rem!important}.mt-n-3,.my-n-3{margin-top:1rem!important}.mr-n-3,.mx-n-3{margin-right:1rem!important}.mb-n-3,.my-n-3{margin-bottom:1rem!important}.ml-n-3,.mx-n-3{margin-left:1rem!important}.m-n-2{margin:.5rem!important}.mt-n-2,.my-n-2{margin-top:.5rem!important}.mr-n-2,.mx-n-2{margin-right:.5rem!important}.mb-n-2,.my-n-2{margin-bottom:.5rem!important}.ml-n-2,.mx-n-2{margin-left:.5rem!important}.m-n-1{margin:.25rem!important}.mt-n-1,.my-n-1{margin-top:.25rem!important}.mr-n-1,.mx-n-1{margin-right:.25rem!important}.mb-n-1,.my-n-1{margin-bottom:.25rem!important}.ml-n-1,.mx-n-1{margin-left:.25rem!important}.m-n6{margin:-4.5rem!important}.mt-n6,.my-n6{margin-top:-4.5rem!important}.mr-n6,.mx-n6{margin-right:-4.5rem!important}.mb-n6,.my-n6{margin-bottom:-4.5rem!important}.ml-n6,.mx-n6{margin-left:-4.5rem!important}.m-n7{margin:-6rem!important}.mt-n7,.my-n7{margin-top:-6rem!important}.mr-n7,.mx-n7{margin-right:-6rem!important}.mb-n7,.my-n7{margin-bottom:-6rem!important}.ml-n7,.mx-n7{margin-left:-6rem!important}.m-n8{margin:-8rem!important}.mt-n8,.my-n8{margin-top:-8rem!important}.mr-n8,.mx-n8{margin-right:-8rem!important}.mb-n8,.my-n8{margin-bottom:-8rem!important}.ml-n8,.mx-n8{margin-left:-8rem!important}.m-n9{margin:-10rem!important}.mt-n9,.my-n9{margin-top:-10rem!important}.mr-n9,.mx-n9{margin-right:-10rem!important}.mb-n9,.my-n9{margin-bottom:-10rem!important}.ml-n9,.mx-n9{margin-left:-10rem!important}@media(min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.m-sm--9{margin:-10rem!important}.mt-sm--9,.my-sm--9{margin-top:-10rem!important}.mr-sm--9,.mx-sm--9{margin-right:-10rem!important}.mb-sm--9,.my-sm--9{margin-bottom:-10rem!important}.ml-sm--9,.mx-sm--9{margin-left:-10rem!important}.m-sm--8{margin:-8rem!important}.mt-sm--8,.my-sm--8{margin-top:-8rem!important}.mr-sm--8,.mx-sm--8{margin-right:-8rem!important}.mb-sm--8,.my-sm--8{margin-bottom:-8rem!important}.ml-sm--8,.mx-sm--8{margin-left:-8rem!important}.m-sm--7{margin:-6rem!important}.mt-sm--7,.my-sm--7{margin-top:-6rem!important}.mr-sm--7,.mx-sm--7{margin-right:-6rem!important}.mb-sm--7,.my-sm--7{margin-bottom:-6rem!important}.ml-sm--7,.mx-sm--7{margin-left:-6rem!important}.m-sm--6{margin:-4.5rem!important}.mt-sm--6,.my-sm--6{margin-top:-4.5rem!important}.mr-sm--6,.mx-sm--6{margin-right:-4.5rem!important}.mb-sm--6,.my-sm--6{margin-bottom:-4.5rem!important}.ml-sm--6,.mx-sm--6{margin-left:-4.5rem!important}.m-sm--5{margin:-3rem!important}.mt-sm--5,.my-sm--5{margin-top:-3rem!important}.mr-sm--5,.mx-sm--5{margin-right:-3rem!important}.mb-sm--5,.my-sm--5{margin-bottom:-3rem!important}.ml-sm--5,.mx-sm--5{margin-left:-3rem!important}.m-sm--4{margin:-1.5rem!important}.mt-sm--4,.my-sm--4{margin-top:-1.5rem!important}.mr-sm--4,.mx-sm--4{margin-right:-1.5rem!important}.mb-sm--4,.my-sm--4{margin-bottom:-1.5rem!important}.ml-sm--4,.mx-sm--4{margin-left:-1.5rem!important}.m-sm--3{margin:-1rem!important}.mt-sm--3,.my-sm--3{margin-top:-1rem!important}.mr-sm--3,.mx-sm--3{margin-right:-1rem!important}.mb-sm--3,.my-sm--3{margin-bottom:-1rem!important}.ml-sm--3,.mx-sm--3{margin-left:-1rem!important}.m-sm--2{margin:-.5rem!important}.mt-sm--2,.my-sm--2{margin-top:-.5rem!important}.mr-sm--2,.mx-sm--2{margin-right:-.5rem!important}.mb-sm--2,.my-sm--2{margin-bottom:-.5rem!important}.ml-sm--2,.mx-sm--2{margin-left:-.5rem!important}.m-sm--1{margin:-.25rem!important}.mt-sm--1,.my-sm--1{margin-top:-.25rem!important}.mr-sm--1,.mx-sm--1{margin-right:-.25rem!important}.mb-sm--1,.my-sm--1{margin-bottom:-.25rem!important}.ml-sm--1,.mx-sm--1{margin-left:-.25rem!important}.m-sm-6{margin:4.5rem!important}.mt-sm-6,.my-sm-6{margin-top:4.5rem!important}.mr-sm-6,.mx-sm-6{margin-right:4.5rem!important}.mb-sm-6,.my-sm-6{margin-bottom:4.5rem!important}.ml-sm-6,.mx-sm-6{margin-left:4.5rem!important}.m-sm-7{margin:6rem!important}.mt-sm-7,.my-sm-7{margin-top:6rem!important}.mr-sm-7,.mx-sm-7{margin-right:6rem!important}.mb-sm-7,.my-sm-7{margin-bottom:6rem!important}.ml-sm-7,.mx-sm-7{margin-left:6rem!important}.m-sm-8{margin:8rem!important}.mt-sm-8,.my-sm-8{margin-top:8rem!important}.mr-sm-8,.mx-sm-8{margin-right:8rem!important}.mb-sm-8,.my-sm-8{margin-bottom:8rem!important}.ml-sm-8,.mx-sm-8{margin-left:8rem!important}.m-sm-9{margin:10rem!important}.mt-sm-9,.my-sm-9{margin-top:10rem!important}.mr-sm-9,.mx-sm-9{margin-right:10rem!important}.mb-sm-9,.my-sm-9{margin-bottom:10rem!important}.ml-sm-9,.mx-sm-9{margin-left:10rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.p-sm--9{padding:-10rem!important}.pt-sm--9,.py-sm--9{padding-top:-10rem!important}.pr-sm--9,.px-sm--9{padding-right:-10rem!important}.pb-sm--9,.py-sm--9{padding-bottom:-10rem!important}.pl-sm--9,.px-sm--9{padding-left:-10rem!important}.p-sm--8{padding:-8rem!important}.pt-sm--8,.py-sm--8{padding-top:-8rem!important}.pr-sm--8,.px-sm--8{padding-right:-8rem!important}.pb-sm--8,.py-sm--8{padding-bottom:-8rem!important}.pl-sm--8,.px-sm--8{padding-left:-8rem!important}.p-sm--7{padding:-6rem!important}.pt-sm--7,.py-sm--7{padding-top:-6rem!important}.pr-sm--7,.px-sm--7{padding-right:-6rem!important}.pb-sm--7,.py-sm--7{padding-bottom:-6rem!important}.pl-sm--7,.px-sm--7{padding-left:-6rem!important}.p-sm--6{padding:-4.5rem!important}.pt-sm--6,.py-sm--6{padding-top:-4.5rem!important}.pr-sm--6,.px-sm--6{padding-right:-4.5rem!important}.pb-sm--6,.py-sm--6{padding-bottom:-4.5rem!important}.pl-sm--6,.px-sm--6{padding-left:-4.5rem!important}.p-sm--5{padding:-3rem!important}.pt-sm--5,.py-sm--5{padding-top:-3rem!important}.pr-sm--5,.px-sm--5{padding-right:-3rem!important}.pb-sm--5,.py-sm--5{padding-bottom:-3rem!important}.pl-sm--5,.px-sm--5{padding-left:-3rem!important}.p-sm--4{padding:-1.5rem!important}.pt-sm--4,.py-sm--4{padding-top:-1.5rem!important}.pr-sm--4,.px-sm--4{padding-right:-1.5rem!important}.pb-sm--4,.py-sm--4{padding-bottom:-1.5rem!important}.pl-sm--4,.px-sm--4{padding-left:-1.5rem!important}.p-sm--3{padding:-1rem!important}.pt-sm--3,.py-sm--3{padding-top:-1rem!important}.pr-sm--3,.px-sm--3{padding-right:-1rem!important}.pb-sm--3,.py-sm--3{padding-bottom:-1rem!important}.pl-sm--3,.px-sm--3{padding-left:-1rem!important}.p-sm--2{padding:-.5rem!important}.pt-sm--2,.py-sm--2{padding-top:-.5rem!important}.pr-sm--2,.px-sm--2{padding-right:-.5rem!important}.pb-sm--2,.py-sm--2{padding-bottom:-.5rem!important}.pl-sm--2,.px-sm--2{padding-left:-.5rem!important}.p-sm--1{padding:-.25rem!important}.pt-sm--1,.py-sm--1{padding-top:-.25rem!important}.pr-sm--1,.px-sm--1{padding-right:-.25rem!important}.pb-sm--1,.py-sm--1{padding-bottom:-.25rem!important}.pl-sm--1,.px-sm--1{padding-left:-.25rem!important}.p-sm-6{padding:4.5rem!important}.pt-sm-6,.py-sm-6{padding-top:4.5rem!important}.pr-sm-6,.px-sm-6{padding-right:4.5rem!important}.pb-sm-6,.py-sm-6{padding-bottom:4.5rem!important}.pl-sm-6,.px-sm-6{padding-left:4.5rem!important}.p-sm-7{padding:6rem!important}.pt-sm-7,.py-sm-7{padding-top:6rem!important}.pr-sm-7,.px-sm-7{padding-right:6rem!important}.pb-sm-7,.py-sm-7{padding-bottom:6rem!important}.pl-sm-7,.px-sm-7{padding-left:6rem!important}.p-sm-8{padding:8rem!important}.pt-sm-8,.py-sm-8{padding-top:8rem!important}.pr-sm-8,.px-sm-8{padding-right:8rem!important}.pb-sm-8,.py-sm-8{padding-bottom:8rem!important}.pl-sm-8,.px-sm-8{padding-left:8rem!important}.p-sm-9{padding:10rem!important}.pt-sm-9,.py-sm-9{padding-top:10rem!important}.pr-sm-9,.px-sm-9{padding-right:10rem!important}.pb-sm-9,.py-sm-9{padding-bottom:10rem!important}.pl-sm-9,.px-sm-9{padding-left:10rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-n-9{margin:10rem!important}.mt-sm-n-9,.my-sm-n-9{margin-top:10rem!important}.mr-sm-n-9,.mx-sm-n-9{margin-right:10rem!important}.mb-sm-n-9,.my-sm-n-9{margin-bottom:10rem!important}.ml-sm-n-9,.mx-sm-n-9{margin-left:10rem!important}.m-sm-n-8{margin:8rem!important}.mt-sm-n-8,.my-sm-n-8{margin-top:8rem!important}.mr-sm-n-8,.mx-sm-n-8{margin-right:8rem!important}.mb-sm-n-8,.my-sm-n-8{margin-bottom:8rem!important}.ml-sm-n-8,.mx-sm-n-8{margin-left:8rem!important}.m-sm-n-7{margin:6rem!important}.mt-sm-n-7,.my-sm-n-7{margin-top:6rem!important}.mr-sm-n-7,.mx-sm-n-7{margin-right:6rem!important}.mb-sm-n-7,.my-sm-n-7{margin-bottom:6rem!important}.ml-sm-n-7,.mx-sm-n-7{margin-left:6rem!important}.m-sm-n-6{margin:4.5rem!important}.mt-sm-n-6,.my-sm-n-6{margin-top:4.5rem!important}.mr-sm-n-6,.mx-sm-n-6{margin-right:4.5rem!important}.mb-sm-n-6,.my-sm-n-6{margin-bottom:4.5rem!important}.ml-sm-n-6,.mx-sm-n-6{margin-left:4.5rem!important}.m-sm-n-5{margin:3rem!important}.mt-sm-n-5,.my-sm-n-5{margin-top:3rem!important}.mr-sm-n-5,.mx-sm-n-5{margin-right:3rem!important}.mb-sm-n-5,.my-sm-n-5{margin-bottom:3rem!important}.ml-sm-n-5,.mx-sm-n-5{margin-left:3rem!important}.m-sm-n-4{margin:1.5rem!important}.mt-sm-n-4,.my-sm-n-4{margin-top:1.5rem!important}.mr-sm-n-4,.mx-sm-n-4{margin-right:1.5rem!important}.mb-sm-n-4,.my-sm-n-4{margin-bottom:1.5rem!important}.ml-sm-n-4,.mx-sm-n-4{margin-left:1.5rem!important}.m-sm-n-3{margin:1rem!important}.mt-sm-n-3,.my-sm-n-3{margin-top:1rem!important}.mr-sm-n-3,.mx-sm-n-3{margin-right:1rem!important}.mb-sm-n-3,.my-sm-n-3{margin-bottom:1rem!important}.ml-sm-n-3,.mx-sm-n-3{margin-left:1rem!important}.m-sm-n-2{margin:.5rem!important}.mt-sm-n-2,.my-sm-n-2{margin-top:.5rem!important}.mr-sm-n-2,.mx-sm-n-2{margin-right:.5rem!important}.mb-sm-n-2,.my-sm-n-2{margin-bottom:.5rem!important}.ml-sm-n-2,.mx-sm-n-2{margin-left:.5rem!important}.m-sm-n-1{margin:.25rem!important}.mt-sm-n-1,.my-sm-n-1{margin-top:.25rem!important}.mr-sm-n-1,.mx-sm-n-1{margin-right:.25rem!important}.mb-sm-n-1,.my-sm-n-1{margin-bottom:.25rem!important}.ml-sm-n-1,.mx-sm-n-1{margin-left:.25rem!important}.m-sm-n6{margin:-4.5rem!important}.mt-sm-n6,.my-sm-n6{margin-top:-4.5rem!important}.mr-sm-n6,.mx-sm-n6{margin-right:-4.5rem!important}.mb-sm-n6,.my-sm-n6{margin-bottom:-4.5rem!important}.ml-sm-n6,.mx-sm-n6{margin-left:-4.5rem!important}.m-sm-n7{margin:-6rem!important}.mt-sm-n7,.my-sm-n7{margin-top:-6rem!important}.mr-sm-n7,.mx-sm-n7{margin-right:-6rem!important}.mb-sm-n7,.my-sm-n7{margin-bottom:-6rem!important}.ml-sm-n7,.mx-sm-n7{margin-left:-6rem!important}.m-sm-n8{margin:-8rem!important}.mt-sm-n8,.my-sm-n8{margin-top:-8rem!important}.mr-sm-n8,.mx-sm-n8{margin-right:-8rem!important}.mb-sm-n8,.my-sm-n8{margin-bottom:-8rem!important}.ml-sm-n8,.mx-sm-n8{margin-left:-8rem!important}.m-sm-n9{margin:-10rem!important}.mt-sm-n9,.my-sm-n9{margin-top:-10rem!important}.mr-sm-n9,.mx-sm-n9{margin-right:-10rem!important}.mb-sm-n9,.my-sm-n9{margin-bottom:-10rem!important}.ml-sm-n9,.mx-sm-n9{margin-left:-10rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media(min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.m-md--9{margin:-10rem!important}.mt-md--9,.my-md--9{margin-top:-10rem!important}.mr-md--9,.mx-md--9{margin-right:-10rem!important}.mb-md--9,.my-md--9{margin-bottom:-10rem!important}.ml-md--9,.mx-md--9{margin-left:-10rem!important}.m-md--8{margin:-8rem!important}.mt-md--8,.my-md--8{margin-top:-8rem!important}.mr-md--8,.mx-md--8{margin-right:-8rem!important}.mb-md--8,.my-md--8{margin-bottom:-8rem!important}.ml-md--8,.mx-md--8{margin-left:-8rem!important}.m-md--7{margin:-6rem!important}.mt-md--7,.my-md--7{margin-top:-6rem!important}.mr-md--7,.mx-md--7{margin-right:-6rem!important}.mb-md--7,.my-md--7{margin-bottom:-6rem!important}.ml-md--7,.mx-md--7{margin-left:-6rem!important}.m-md--6{margin:-4.5rem!important}.mt-md--6,.my-md--6{margin-top:-4.5rem!important}.mr-md--6,.mx-md--6{margin-right:-4.5rem!important}.mb-md--6,.my-md--6{margin-bottom:-4.5rem!important}.ml-md--6,.mx-md--6{margin-left:-4.5rem!important}.m-md--5{margin:-3rem!important}.mt-md--5,.my-md--5{margin-top:-3rem!important}.mr-md--5,.mx-md--5{margin-right:-3rem!important}.mb-md--5,.my-md--5{margin-bottom:-3rem!important}.ml-md--5,.mx-md--5{margin-left:-3rem!important}.m-md--4{margin:-1.5rem!important}.mt-md--4,.my-md--4{margin-top:-1.5rem!important}.mr-md--4,.mx-md--4{margin-right:-1.5rem!important}.mb-md--4,.my-md--4{margin-bottom:-1.5rem!important}.ml-md--4,.mx-md--4{margin-left:-1.5rem!important}.m-md--3{margin:-1rem!important}.mt-md--3,.my-md--3{margin-top:-1rem!important}.mr-md--3,.mx-md--3{margin-right:-1rem!important}.mb-md--3,.my-md--3{margin-bottom:-1rem!important}.ml-md--3,.mx-md--3{margin-left:-1rem!important}.m-md--2{margin:-.5rem!important}.mt-md--2,.my-md--2{margin-top:-.5rem!important}.mr-md--2,.mx-md--2{margin-right:-.5rem!important}.mb-md--2,.my-md--2{margin-bottom:-.5rem!important}.ml-md--2,.mx-md--2{margin-left:-.5rem!important}.m-md--1{margin:-.25rem!important}.mt-md--1,.my-md--1{margin-top:-.25rem!important}.mr-md--1,.mx-md--1{margin-right:-.25rem!important}.mb-md--1,.my-md--1{margin-bottom:-.25rem!important}.ml-md--1,.mx-md--1{margin-left:-.25rem!important}.m-md-6{margin:4.5rem!important}.mt-md-6,.my-md-6{margin-top:4.5rem!important}.mr-md-6,.mx-md-6{margin-right:4.5rem!important}.mb-md-6,.my-md-6{margin-bottom:4.5rem!important}.ml-md-6,.mx-md-6{margin-left:4.5rem!important}.m-md-7{margin:6rem!important}.mt-md-7,.my-md-7{margin-top:6rem!important}.mr-md-7,.mx-md-7{margin-right:6rem!important}.mb-md-7,.my-md-7{margin-bottom:6rem!important}.ml-md-7,.mx-md-7{margin-left:6rem!important}.m-md-8{margin:8rem!important}.mt-md-8,.my-md-8{margin-top:8rem!important}.mr-md-8,.mx-md-8{margin-right:8rem!important}.mb-md-8,.my-md-8{margin-bottom:8rem!important}.ml-md-8,.mx-md-8{margin-left:8rem!important}.m-md-9{margin:10rem!important}.mt-md-9,.my-md-9{margin-top:10rem!important}.mr-md-9,.mx-md-9{margin-right:10rem!important}.mb-md-9,.my-md-9{margin-bottom:10rem!important}.ml-md-9,.mx-md-9{margin-left:10rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.p-md--9{padding:-10rem!important}.pt-md--9,.py-md--9{padding-top:-10rem!important}.pr-md--9,.px-md--9{padding-right:-10rem!important}.pb-md--9,.py-md--9{padding-bottom:-10rem!important}.pl-md--9,.px-md--9{padding-left:-10rem!important}.p-md--8{padding:-8rem!important}.pt-md--8,.py-md--8{padding-top:-8rem!important}.pr-md--8,.px-md--8{padding-right:-8rem!important}.pb-md--8,.py-md--8{padding-bottom:-8rem!important}.pl-md--8,.px-md--8{padding-left:-8rem!important}.p-md--7{padding:-6rem!important}.pt-md--7,.py-md--7{padding-top:-6rem!important}.pr-md--7,.px-md--7{padding-right:-6rem!important}.pb-md--7,.py-md--7{padding-bottom:-6rem!important}.pl-md--7,.px-md--7{padding-left:-6rem!important}.p-md--6{padding:-4.5rem!important}.pt-md--6,.py-md--6{padding-top:-4.5rem!important}.pr-md--6,.px-md--6{padding-right:-4.5rem!important}.pb-md--6,.py-md--6{padding-bottom:-4.5rem!important}.pl-md--6,.px-md--6{padding-left:-4.5rem!important}.p-md--5{padding:-3rem!important}.pt-md--5,.py-md--5{padding-top:-3rem!important}.pr-md--5,.px-md--5{padding-right:-3rem!important}.pb-md--5,.py-md--5{padding-bottom:-3rem!important}.pl-md--5,.px-md--5{padding-left:-3rem!important}.p-md--4{padding:-1.5rem!important}.pt-md--4,.py-md--4{padding-top:-1.5rem!important}.pr-md--4,.px-md--4{padding-right:-1.5rem!important}.pb-md--4,.py-md--4{padding-bottom:-1.5rem!important}.pl-md--4,.px-md--4{padding-left:-1.5rem!important}.p-md--3{padding:-1rem!important}.pt-md--3,.py-md--3{padding-top:-1rem!important}.pr-md--3,.px-md--3{padding-right:-1rem!important}.pb-md--3,.py-md--3{padding-bottom:-1rem!important}.pl-md--3,.px-md--3{padding-left:-1rem!important}.p-md--2{padding:-.5rem!important}.pt-md--2,.py-md--2{padding-top:-.5rem!important}.pr-md--2,.px-md--2{padding-right:-.5rem!important}.pb-md--2,.py-md--2{padding-bottom:-.5rem!important}.pl-md--2,.px-md--2{padding-left:-.5rem!important}.p-md--1{padding:-.25rem!important}.pt-md--1,.py-md--1{padding-top:-.25rem!important}.pr-md--1,.px-md--1{padding-right:-.25rem!important}.pb-md--1,.py-md--1{padding-bottom:-.25rem!important}.pl-md--1,.px-md--1{padding-left:-.25rem!important}.p-md-6{padding:4.5rem!important}.pt-md-6,.py-md-6{padding-top:4.5rem!important}.pr-md-6,.px-md-6{padding-right:4.5rem!important}.pb-md-6,.py-md-6{padding-bottom:4.5rem!important}.pl-md-6,.px-md-6{padding-left:4.5rem!important}.p-md-7{padding:6rem!important}.pt-md-7,.py-md-7{padding-top:6rem!important}.pr-md-7,.px-md-7{padding-right:6rem!important}.pb-md-7,.py-md-7{padding-bottom:6rem!important}.pl-md-7,.px-md-7{padding-left:6rem!important}.p-md-8{padding:8rem!important}.pt-md-8,.py-md-8{padding-top:8rem!important}.pr-md-8,.px-md-8{padding-right:8rem!important}.pb-md-8,.py-md-8{padding-bottom:8rem!important}.pl-md-8,.px-md-8{padding-left:8rem!important}.p-md-9{padding:10rem!important}.pt-md-9,.py-md-9{padding-top:10rem!important}.pr-md-9,.px-md-9{padding-right:10rem!important}.pb-md-9,.py-md-9{padding-bottom:10rem!important}.pl-md-9,.px-md-9{padding-left:10rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-n-9{margin:10rem!important}.mt-md-n-9,.my-md-n-9{margin-top:10rem!important}.mr-md-n-9,.mx-md-n-9{margin-right:10rem!important}.mb-md-n-9,.my-md-n-9{margin-bottom:10rem!important}.ml-md-n-9,.mx-md-n-9{margin-left:10rem!important}.m-md-n-8{margin:8rem!important}.mt-md-n-8,.my-md-n-8{margin-top:8rem!important}.mr-md-n-8,.mx-md-n-8{margin-right:8rem!important}.mb-md-n-8,.my-md-n-8{margin-bottom:8rem!important}.ml-md-n-8,.mx-md-n-8{margin-left:8rem!important}.m-md-n-7{margin:6rem!important}.mt-md-n-7,.my-md-n-7{margin-top:6rem!important}.mr-md-n-7,.mx-md-n-7{margin-right:6rem!important}.mb-md-n-7,.my-md-n-7{margin-bottom:6rem!important}.ml-md-n-7,.mx-md-n-7{margin-left:6rem!important}.m-md-n-6{margin:4.5rem!important}.mt-md-n-6,.my-md-n-6{margin-top:4.5rem!important}.mr-md-n-6,.mx-md-n-6{margin-right:4.5rem!important}.mb-md-n-6,.my-md-n-6{margin-bottom:4.5rem!important}.ml-md-n-6,.mx-md-n-6{margin-left:4.5rem!important}.m-md-n-5{margin:3rem!important}.mt-md-n-5,.my-md-n-5{margin-top:3rem!important}.mr-md-n-5,.mx-md-n-5{margin-right:3rem!important}.mb-md-n-5,.my-md-n-5{margin-bottom:3rem!important}.ml-md-n-5,.mx-md-n-5{margin-left:3rem!important}.m-md-n-4{margin:1.5rem!important}.mt-md-n-4,.my-md-n-4{margin-top:1.5rem!important}.mr-md-n-4,.mx-md-n-4{margin-right:1.5rem!important}.mb-md-n-4,.my-md-n-4{margin-bottom:1.5rem!important}.ml-md-n-4,.mx-md-n-4{margin-left:1.5rem!important}.m-md-n-3{margin:1rem!important}.mt-md-n-3,.my-md-n-3{margin-top:1rem!important}.mr-md-n-3,.mx-md-n-3{margin-right:1rem!important}.mb-md-n-3,.my-md-n-3{margin-bottom:1rem!important}.ml-md-n-3,.mx-md-n-3{margin-left:1rem!important}.m-md-n-2{margin:.5rem!important}.mt-md-n-2,.my-md-n-2{margin-top:.5rem!important}.mr-md-n-2,.mx-md-n-2{margin-right:.5rem!important}.mb-md-n-2,.my-md-n-2{margin-bottom:.5rem!important}.ml-md-n-2,.mx-md-n-2{margin-left:.5rem!important}.m-md-n-1{margin:.25rem!important}.mt-md-n-1,.my-md-n-1{margin-top:.25rem!important}.mr-md-n-1,.mx-md-n-1{margin-right:.25rem!important}.mb-md-n-1,.my-md-n-1{margin-bottom:.25rem!important}.ml-md-n-1,.mx-md-n-1{margin-left:.25rem!important}.m-md-n6{margin:-4.5rem!important}.mt-md-n6,.my-md-n6{margin-top:-4.5rem!important}.mr-md-n6,.mx-md-n6{margin-right:-4.5rem!important}.mb-md-n6,.my-md-n6{margin-bottom:-4.5rem!important}.ml-md-n6,.mx-md-n6{margin-left:-4.5rem!important}.m-md-n7{margin:-6rem!important}.mt-md-n7,.my-md-n7{margin-top:-6rem!important}.mr-md-n7,.mx-md-n7{margin-right:-6rem!important}.mb-md-n7,.my-md-n7{margin-bottom:-6rem!important}.ml-md-n7,.mx-md-n7{margin-left:-6rem!important}.m-md-n8{margin:-8rem!important}.mt-md-n8,.my-md-n8{margin-top:-8rem!important}.mr-md-n8,.mx-md-n8{margin-right:-8rem!important}.mb-md-n8,.my-md-n8{margin-bottom:-8rem!important}.ml-md-n8,.mx-md-n8{margin-left:-8rem!important}.m-md-n9{margin:-10rem!important}.mt-md-n9,.my-md-n9{margin-top:-10rem!important}.mr-md-n9,.mx-md-n9{margin-right:-10rem!important}.mb-md-n9,.my-md-n9{margin-bottom:-10rem!important}.ml-md-n9,.mx-md-n9{margin-left:-10rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media(min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.m-lg--9{margin:-10rem!important}.mt-lg--9,.my-lg--9{margin-top:-10rem!important}.mr-lg--9,.mx-lg--9{margin-right:-10rem!important}.mb-lg--9,.my-lg--9{margin-bottom:-10rem!important}.ml-lg--9,.mx-lg--9{margin-left:-10rem!important}.m-lg--8{margin:-8rem!important}.mt-lg--8,.my-lg--8{margin-top:-8rem!important}.mr-lg--8,.mx-lg--8{margin-right:-8rem!important}.mb-lg--8,.my-lg--8{margin-bottom:-8rem!important}.ml-lg--8,.mx-lg--8{margin-left:-8rem!important}.m-lg--7{margin:-6rem!important}.mt-lg--7,.my-lg--7{margin-top:-6rem!important}.mr-lg--7,.mx-lg--7{margin-right:-6rem!important}.mb-lg--7,.my-lg--7{margin-bottom:-6rem!important}.ml-lg--7,.mx-lg--7{margin-left:-6rem!important}.m-lg--6{margin:-4.5rem!important}.mt-lg--6,.my-lg--6{margin-top:-4.5rem!important}.mr-lg--6,.mx-lg--6{margin-right:-4.5rem!important}.mb-lg--6,.my-lg--6{margin-bottom:-4.5rem!important}.ml-lg--6,.mx-lg--6{margin-left:-4.5rem!important}.m-lg--5{margin:-3rem!important}.mt-lg--5,.my-lg--5{margin-top:-3rem!important}.mr-lg--5,.mx-lg--5{margin-right:-3rem!important}.mb-lg--5,.my-lg--5{margin-bottom:-3rem!important}.ml-lg--5,.mx-lg--5{margin-left:-3rem!important}.m-lg--4{margin:-1.5rem!important}.mt-lg--4,.my-lg--4{margin-top:-1.5rem!important}.mr-lg--4,.mx-lg--4{margin-right:-1.5rem!important}.mb-lg--4,.my-lg--4{margin-bottom:-1.5rem!important}.ml-lg--4,.mx-lg--4{margin-left:-1.5rem!important}.m-lg--3{margin:-1rem!important}.mt-lg--3,.my-lg--3{margin-top:-1rem!important}.mr-lg--3,.mx-lg--3{margin-right:-1rem!important}.mb-lg--3,.my-lg--3{margin-bottom:-1rem!important}.ml-lg--3,.mx-lg--3{margin-left:-1rem!important}.m-lg--2{margin:-.5rem!important}.mt-lg--2,.my-lg--2{margin-top:-.5rem!important}.mr-lg--2,.mx-lg--2{margin-right:-.5rem!important}.mb-lg--2,.my-lg--2{margin-bottom:-.5rem!important}.ml-lg--2,.mx-lg--2{margin-left:-.5rem!important}.m-lg--1{margin:-.25rem!important}.mt-lg--1,.my-lg--1{margin-top:-.25rem!important}.mr-lg--1,.mx-lg--1{margin-right:-.25rem!important}.mb-lg--1,.my-lg--1{margin-bottom:-.25rem!important}.ml-lg--1,.mx-lg--1{margin-left:-.25rem!important}.m-lg-6{margin:4.5rem!important}.mt-lg-6,.my-lg-6{margin-top:4.5rem!important}.mr-lg-6,.mx-lg-6{margin-right:4.5rem!important}.mb-lg-6,.my-lg-6{margin-bottom:4.5rem!important}.ml-lg-6,.mx-lg-6{margin-left:4.5rem!important}.m-lg-7{margin:6rem!important}.mt-lg-7,.my-lg-7{margin-top:6rem!important}.mr-lg-7,.mx-lg-7{margin-right:6rem!important}.mb-lg-7,.my-lg-7{margin-bottom:6rem!important}.ml-lg-7,.mx-lg-7{margin-left:6rem!important}.m-lg-8{margin:8rem!important}.mt-lg-8,.my-lg-8{margin-top:8rem!important}.mr-lg-8,.mx-lg-8{margin-right:8rem!important}.mb-lg-8,.my-lg-8{margin-bottom:8rem!important}.ml-lg-8,.mx-lg-8{margin-left:8rem!important}.m-lg-9{margin:10rem!important}.mt-lg-9,.my-lg-9{margin-top:10rem!important}.mr-lg-9,.mx-lg-9{margin-right:10rem!important}.mb-lg-9,.my-lg-9{margin-bottom:10rem!important}.ml-lg-9,.mx-lg-9{margin-left:10rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.p-lg--9{padding:-10rem!important}.pt-lg--9,.py-lg--9{padding-top:-10rem!important}.pr-lg--9,.px-lg--9{padding-right:-10rem!important}.pb-lg--9,.py-lg--9{padding-bottom:-10rem!important}.pl-lg--9,.px-lg--9{padding-left:-10rem!important}.p-lg--8{padding:-8rem!important}.pt-lg--8,.py-lg--8{padding-top:-8rem!important}.pr-lg--8,.px-lg--8{padding-right:-8rem!important}.pb-lg--8,.py-lg--8{padding-bottom:-8rem!important}.pl-lg--8,.px-lg--8{padding-left:-8rem!important}.p-lg--7{padding:-6rem!important}.pt-lg--7,.py-lg--7{padding-top:-6rem!important}.pr-lg--7,.px-lg--7{padding-right:-6rem!important}.pb-lg--7,.py-lg--7{padding-bottom:-6rem!important}.pl-lg--7,.px-lg--7{padding-left:-6rem!important}.p-lg--6{padding:-4.5rem!important}.pt-lg--6,.py-lg--6{padding-top:-4.5rem!important}.pr-lg--6,.px-lg--6{padding-right:-4.5rem!important}.pb-lg--6,.py-lg--6{padding-bottom:-4.5rem!important}.pl-lg--6,.px-lg--6{padding-left:-4.5rem!important}.p-lg--5{padding:-3rem!important}.pt-lg--5,.py-lg--5{padding-top:-3rem!important}.pr-lg--5,.px-lg--5{padding-right:-3rem!important}.pb-lg--5,.py-lg--5{padding-bottom:-3rem!important}.pl-lg--5,.px-lg--5{padding-left:-3rem!important}.p-lg--4{padding:-1.5rem!important}.pt-lg--4,.py-lg--4{padding-top:-1.5rem!important}.pr-lg--4,.px-lg--4{padding-right:-1.5rem!important}.pb-lg--4,.py-lg--4{padding-bottom:-1.5rem!important}.pl-lg--4,.px-lg--4{padding-left:-1.5rem!important}.p-lg--3{padding:-1rem!important}.pt-lg--3,.py-lg--3{padding-top:-1rem!important}.pr-lg--3,.px-lg--3{padding-right:-1rem!important}.pb-lg--3,.py-lg--3{padding-bottom:-1rem!important}.pl-lg--3,.px-lg--3{padding-left:-1rem!important}.p-lg--2{padding:-.5rem!important}.pt-lg--2,.py-lg--2{padding-top:-.5rem!important}.pr-lg--2,.px-lg--2{padding-right:-.5rem!important}.pb-lg--2,.py-lg--2{padding-bottom:-.5rem!important}.pl-lg--2,.px-lg--2{padding-left:-.5rem!important}.p-lg--1{padding:-.25rem!important}.pt-lg--1,.py-lg--1{padding-top:-.25rem!important}.pr-lg--1,.px-lg--1{padding-right:-.25rem!important}.pb-lg--1,.py-lg--1{padding-bottom:-.25rem!important}.pl-lg--1,.px-lg--1{padding-left:-.25rem!important}.p-lg-6{padding:4.5rem!important}.pt-lg-6,.py-lg-6{padding-top:4.5rem!important}.pr-lg-6,.px-lg-6{padding-right:4.5rem!important}.pb-lg-6,.py-lg-6{padding-bottom:4.5rem!important}.pl-lg-6,.px-lg-6{padding-left:4.5rem!important}.p-lg-7{padding:6rem!important}.pt-lg-7,.py-lg-7{padding-top:6rem!important}.pr-lg-7,.px-lg-7{padding-right:6rem!important}.pb-lg-7,.py-lg-7{padding-bottom:6rem!important}.pl-lg-7,.px-lg-7{padding-left:6rem!important}.p-lg-8{padding:8rem!important}.pt-lg-8,.py-lg-8{padding-top:8rem!important}.pr-lg-8,.px-lg-8{padding-right:8rem!important}.pb-lg-8,.py-lg-8{padding-bottom:8rem!important}.pl-lg-8,.px-lg-8{padding-left:8rem!important}.p-lg-9{padding:10rem!important}.pt-lg-9,.py-lg-9{padding-top:10rem!important}.pr-lg-9,.px-lg-9{padding-right:10rem!important}.pb-lg-9,.py-lg-9{padding-bottom:10rem!important}.pl-lg-9,.px-lg-9{padding-left:10rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-n-9{margin:10rem!important}.mt-lg-n-9,.my-lg-n-9{margin-top:10rem!important}.mr-lg-n-9,.mx-lg-n-9{margin-right:10rem!important}.mb-lg-n-9,.my-lg-n-9{margin-bottom:10rem!important}.ml-lg-n-9,.mx-lg-n-9{margin-left:10rem!important}.m-lg-n-8{margin:8rem!important}.mt-lg-n-8,.my-lg-n-8{margin-top:8rem!important}.mr-lg-n-8,.mx-lg-n-8{margin-right:8rem!important}.mb-lg-n-8,.my-lg-n-8{margin-bottom:8rem!important}.ml-lg-n-8,.mx-lg-n-8{margin-left:8rem!important}.m-lg-n-7{margin:6rem!important}.mt-lg-n-7,.my-lg-n-7{margin-top:6rem!important}.mr-lg-n-7,.mx-lg-n-7{margin-right:6rem!important}.mb-lg-n-7,.my-lg-n-7{margin-bottom:6rem!important}.ml-lg-n-7,.mx-lg-n-7{margin-left:6rem!important}.m-lg-n-6{margin:4.5rem!important}.mt-lg-n-6,.my-lg-n-6{margin-top:4.5rem!important}.mr-lg-n-6,.mx-lg-n-6{margin-right:4.5rem!important}.mb-lg-n-6,.my-lg-n-6{margin-bottom:4.5rem!important}.ml-lg-n-6,.mx-lg-n-6{margin-left:4.5rem!important}.m-lg-n-5{margin:3rem!important}.mt-lg-n-5,.my-lg-n-5{margin-top:3rem!important}.mr-lg-n-5,.mx-lg-n-5{margin-right:3rem!important}.mb-lg-n-5,.my-lg-n-5{margin-bottom:3rem!important}.ml-lg-n-5,.mx-lg-n-5{margin-left:3rem!important}.m-lg-n-4{margin:1.5rem!important}.mt-lg-n-4,.my-lg-n-4{margin-top:1.5rem!important}.mr-lg-n-4,.mx-lg-n-4{margin-right:1.5rem!important}.mb-lg-n-4,.my-lg-n-4{margin-bottom:1.5rem!important}.ml-lg-n-4,.mx-lg-n-4{margin-left:1.5rem!important}.m-lg-n-3{margin:1rem!important}.mt-lg-n-3,.my-lg-n-3{margin-top:1rem!important}.mr-lg-n-3,.mx-lg-n-3{margin-right:1rem!important}.mb-lg-n-3,.my-lg-n-3{margin-bottom:1rem!important}.ml-lg-n-3,.mx-lg-n-3{margin-left:1rem!important}.m-lg-n-2{margin:.5rem!important}.mt-lg-n-2,.my-lg-n-2{margin-top:.5rem!important}.mr-lg-n-2,.mx-lg-n-2{margin-right:.5rem!important}.mb-lg-n-2,.my-lg-n-2{margin-bottom:.5rem!important}.ml-lg-n-2,.mx-lg-n-2{margin-left:.5rem!important}.m-lg-n-1{margin:.25rem!important}.mt-lg-n-1,.my-lg-n-1{margin-top:.25rem!important}.mr-lg-n-1,.mx-lg-n-1{margin-right:.25rem!important}.mb-lg-n-1,.my-lg-n-1{margin-bottom:.25rem!important}.ml-lg-n-1,.mx-lg-n-1{margin-left:.25rem!important}.m-lg-n6{margin:-4.5rem!important}.mt-lg-n6,.my-lg-n6{margin-top:-4.5rem!important}.mr-lg-n6,.mx-lg-n6{margin-right:-4.5rem!important}.mb-lg-n6,.my-lg-n6{margin-bottom:-4.5rem!important}.ml-lg-n6,.mx-lg-n6{margin-left:-4.5rem!important}.m-lg-n7{margin:-6rem!important}.mt-lg-n7,.my-lg-n7{margin-top:-6rem!important}.mr-lg-n7,.mx-lg-n7{margin-right:-6rem!important}.mb-lg-n7,.my-lg-n7{margin-bottom:-6rem!important}.ml-lg-n7,.mx-lg-n7{margin-left:-6rem!important}.m-lg-n8{margin:-8rem!important}.mt-lg-n8,.my-lg-n8{margin-top:-8rem!important}.mr-lg-n8,.mx-lg-n8{margin-right:-8rem!important}.mb-lg-n8,.my-lg-n8{margin-bottom:-8rem!important}.ml-lg-n8,.mx-lg-n8{margin-left:-8rem!important}.m-lg-n9{margin:-10rem!important}.mt-lg-n9,.my-lg-n9{margin-top:-10rem!important}.mr-lg-n9,.mx-lg-n9{margin-right:-10rem!important}.mb-lg-n9,.my-lg-n9{margin-bottom:-10rem!important}.ml-lg-n9,.mx-lg-n9{margin-left:-10rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media(min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.m-xl--9{margin:-10rem!important}.mt-xl--9,.my-xl--9{margin-top:-10rem!important}.mr-xl--9,.mx-xl--9{margin-right:-10rem!important}.mb-xl--9,.my-xl--9{margin-bottom:-10rem!important}.ml-xl--9,.mx-xl--9{margin-left:-10rem!important}.m-xl--8{margin:-8rem!important}.mt-xl--8,.my-xl--8{margin-top:-8rem!important}.mr-xl--8,.mx-xl--8{margin-right:-8rem!important}.mb-xl--8,.my-xl--8{margin-bottom:-8rem!important}.ml-xl--8,.mx-xl--8{margin-left:-8rem!important}.m-xl--7{margin:-6rem!important}.mt-xl--7,.my-xl--7{margin-top:-6rem!important}.mr-xl--7,.mx-xl--7{margin-right:-6rem!important}.mb-xl--7,.my-xl--7{margin-bottom:-6rem!important}.ml-xl--7,.mx-xl--7{margin-left:-6rem!important}.m-xl--6{margin:-4.5rem!important}.mt-xl--6,.my-xl--6{margin-top:-4.5rem!important}.mr-xl--6,.mx-xl--6{margin-right:-4.5rem!important}.mb-xl--6,.my-xl--6{margin-bottom:-4.5rem!important}.ml-xl--6,.mx-xl--6{margin-left:-4.5rem!important}.m-xl--5{margin:-3rem!important}.mt-xl--5,.my-xl--5{margin-top:-3rem!important}.mr-xl--5,.mx-xl--5{margin-right:-3rem!important}.mb-xl--5,.my-xl--5{margin-bottom:-3rem!important}.ml-xl--5,.mx-xl--5{margin-left:-3rem!important}.m-xl--4{margin:-1.5rem!important}.mt-xl--4,.my-xl--4{margin-top:-1.5rem!important}.mr-xl--4,.mx-xl--4{margin-right:-1.5rem!important}.mb-xl--4,.my-xl--4{margin-bottom:-1.5rem!important}.ml-xl--4,.mx-xl--4{margin-left:-1.5rem!important}.m-xl--3{margin:-1rem!important}.mt-xl--3,.my-xl--3{margin-top:-1rem!important}.mr-xl--3,.mx-xl--3{margin-right:-1rem!important}.mb-xl--3,.my-xl--3{margin-bottom:-1rem!important}.ml-xl--3,.mx-xl--3{margin-left:-1rem!important}.m-xl--2{margin:-.5rem!important}.mt-xl--2,.my-xl--2{margin-top:-.5rem!important}.mr-xl--2,.mx-xl--2{margin-right:-.5rem!important}.mb-xl--2,.my-xl--2{margin-bottom:-.5rem!important}.ml-xl--2,.mx-xl--2{margin-left:-.5rem!important}.m-xl--1{margin:-.25rem!important}.mt-xl--1,.my-xl--1{margin-top:-.25rem!important}.mr-xl--1,.mx-xl--1{margin-right:-.25rem!important}.mb-xl--1,.my-xl--1{margin-bottom:-.25rem!important}.ml-xl--1,.mx-xl--1{margin-left:-.25rem!important}.m-xl-6{margin:4.5rem!important}.mt-xl-6,.my-xl-6{margin-top:4.5rem!important}.mr-xl-6,.mx-xl-6{margin-right:4.5rem!important}.mb-xl-6,.my-xl-6{margin-bottom:4.5rem!important}.ml-xl-6,.mx-xl-6{margin-left:4.5rem!important}.m-xl-7{margin:6rem!important}.mt-xl-7,.my-xl-7{margin-top:6rem!important}.mr-xl-7,.mx-xl-7{margin-right:6rem!important}.mb-xl-7,.my-xl-7{margin-bottom:6rem!important}.ml-xl-7,.mx-xl-7{margin-left:6rem!important}.m-xl-8{margin:8rem!important}.mt-xl-8,.my-xl-8{margin-top:8rem!important}.mr-xl-8,.mx-xl-8{margin-right:8rem!important}.mb-xl-8,.my-xl-8{margin-bottom:8rem!important}.ml-xl-8,.mx-xl-8{margin-left:8rem!important}.m-xl-9{margin:10rem!important}.mt-xl-9,.my-xl-9{margin-top:10rem!important}.mr-xl-9,.mx-xl-9{margin-right:10rem!important}.mb-xl-9,.my-xl-9{margin-bottom:10rem!important}.ml-xl-9,.mx-xl-9{margin-left:10rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.p-xl--9{padding:-10rem!important}.pt-xl--9,.py-xl--9{padding-top:-10rem!important}.pr-xl--9,.px-xl--9{padding-right:-10rem!important}.pb-xl--9,.py-xl--9{padding-bottom:-10rem!important}.pl-xl--9,.px-xl--9{padding-left:-10rem!important}.p-xl--8{padding:-8rem!important}.pt-xl--8,.py-xl--8{padding-top:-8rem!important}.pr-xl--8,.px-xl--8{padding-right:-8rem!important}.pb-xl--8,.py-xl--8{padding-bottom:-8rem!important}.pl-xl--8,.px-xl--8{padding-left:-8rem!important}.p-xl--7{padding:-6rem!important}.pt-xl--7,.py-xl--7{padding-top:-6rem!important}.pr-xl--7,.px-xl--7{padding-right:-6rem!important}.pb-xl--7,.py-xl--7{padding-bottom:-6rem!important}.pl-xl--7,.px-xl--7{padding-left:-6rem!important}.p-xl--6{padding:-4.5rem!important}.pt-xl--6,.py-xl--6{padding-top:-4.5rem!important}.pr-xl--6,.px-xl--6{padding-right:-4.5rem!important}.pb-xl--6,.py-xl--6{padding-bottom:-4.5rem!important}.pl-xl--6,.px-xl--6{padding-left:-4.5rem!important}.p-xl--5{padding:-3rem!important}.pt-xl--5,.py-xl--5{padding-top:-3rem!important}.pr-xl--5,.px-xl--5{padding-right:-3rem!important}.pb-xl--5,.py-xl--5{padding-bottom:-3rem!important}.pl-xl--5,.px-xl--5{padding-left:-3rem!important}.p-xl--4{padding:-1.5rem!important}.pt-xl--4,.py-xl--4{padding-top:-1.5rem!important}.pr-xl--4,.px-xl--4{padding-right:-1.5rem!important}.pb-xl--4,.py-xl--4{padding-bottom:-1.5rem!important}.pl-xl--4,.px-xl--4{padding-left:-1.5rem!important}.p-xl--3{padding:-1rem!important}.pt-xl--3,.py-xl--3{padding-top:-1rem!important}.pr-xl--3,.px-xl--3{padding-right:-1rem!important}.pb-xl--3,.py-xl--3{padding-bottom:-1rem!important}.pl-xl--3,.px-xl--3{padding-left:-1rem!important}.p-xl--2{padding:-.5rem!important}.pt-xl--2,.py-xl--2{padding-top:-.5rem!important}.pr-xl--2,.px-xl--2{padding-right:-.5rem!important}.pb-xl--2,.py-xl--2{padding-bottom:-.5rem!important}.pl-xl--2,.px-xl--2{padding-left:-.5rem!important}.p-xl--1{padding:-.25rem!important}.pt-xl--1,.py-xl--1{padding-top:-.25rem!important}.pr-xl--1,.px-xl--1{padding-right:-.25rem!important}.pb-xl--1,.py-xl--1{padding-bottom:-.25rem!important}.pl-xl--1,.px-xl--1{padding-left:-.25rem!important}.p-xl-6{padding:4.5rem!important}.pt-xl-6,.py-xl-6{padding-top:4.5rem!important}.pr-xl-6,.px-xl-6{padding-right:4.5rem!important}.pb-xl-6,.py-xl-6{padding-bottom:4.5rem!important}.pl-xl-6,.px-xl-6{padding-left:4.5rem!important}.p-xl-7{padding:6rem!important}.pt-xl-7,.py-xl-7{padding-top:6rem!important}.pr-xl-7,.px-xl-7{padding-right:6rem!important}.pb-xl-7,.py-xl-7{padding-bottom:6rem!important}.pl-xl-7,.px-xl-7{padding-left:6rem!important}.p-xl-8{padding:8rem!important}.pt-xl-8,.py-xl-8{padding-top:8rem!important}.pr-xl-8,.px-xl-8{padding-right:8rem!important}.pb-xl-8,.py-xl-8{padding-bottom:8rem!important}.pl-xl-8,.px-xl-8{padding-left:8rem!important}.p-xl-9{padding:10rem!important}.pt-xl-9,.py-xl-9{padding-top:10rem!important}.pr-xl-9,.px-xl-9{padding-right:10rem!important}.pb-xl-9,.py-xl-9{padding-bottom:10rem!important}.pl-xl-9,.px-xl-9{padding-left:10rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-n-9{margin:10rem!important}.mt-xl-n-9,.my-xl-n-9{margin-top:10rem!important}.mr-xl-n-9,.mx-xl-n-9{margin-right:10rem!important}.mb-xl-n-9,.my-xl-n-9{margin-bottom:10rem!important}.ml-xl-n-9,.mx-xl-n-9{margin-left:10rem!important}.m-xl-n-8{margin:8rem!important}.mt-xl-n-8,.my-xl-n-8{margin-top:8rem!important}.mr-xl-n-8,.mx-xl-n-8{margin-right:8rem!important}.mb-xl-n-8,.my-xl-n-8{margin-bottom:8rem!important}.ml-xl-n-8,.mx-xl-n-8{margin-left:8rem!important}.m-xl-n-7{margin:6rem!important}.mt-xl-n-7,.my-xl-n-7{margin-top:6rem!important}.mr-xl-n-7,.mx-xl-n-7{margin-right:6rem!important}.mb-xl-n-7,.my-xl-n-7{margin-bottom:6rem!important}.ml-xl-n-7,.mx-xl-n-7{margin-left:6rem!important}.m-xl-n-6{margin:4.5rem!important}.mt-xl-n-6,.my-xl-n-6{margin-top:4.5rem!important}.mr-xl-n-6,.mx-xl-n-6{margin-right:4.5rem!important}.mb-xl-n-6,.my-xl-n-6{margin-bottom:4.5rem!important}.ml-xl-n-6,.mx-xl-n-6{margin-left:4.5rem!important}.m-xl-n-5{margin:3rem!important}.mt-xl-n-5,.my-xl-n-5{margin-top:3rem!important}.mr-xl-n-5,.mx-xl-n-5{margin-right:3rem!important}.mb-xl-n-5,.my-xl-n-5{margin-bottom:3rem!important}.ml-xl-n-5,.mx-xl-n-5{margin-left:3rem!important}.m-xl-n-4{margin:1.5rem!important}.mt-xl-n-4,.my-xl-n-4{margin-top:1.5rem!important}.mr-xl-n-4,.mx-xl-n-4{margin-right:1.5rem!important}.mb-xl-n-4,.my-xl-n-4{margin-bottom:1.5rem!important}.ml-xl-n-4,.mx-xl-n-4{margin-left:1.5rem!important}.m-xl-n-3{margin:1rem!important}.mt-xl-n-3,.my-xl-n-3{margin-top:1rem!important}.mr-xl-n-3,.mx-xl-n-3{margin-right:1rem!important}.mb-xl-n-3,.my-xl-n-3{margin-bottom:1rem!important}.ml-xl-n-3,.mx-xl-n-3{margin-left:1rem!important}.m-xl-n-2{margin:.5rem!important}.mt-xl-n-2,.my-xl-n-2{margin-top:.5rem!important}.mr-xl-n-2,.mx-xl-n-2{margin-right:.5rem!important}.mb-xl-n-2,.my-xl-n-2{margin-bottom:.5rem!important}.ml-xl-n-2,.mx-xl-n-2{margin-left:.5rem!important}.m-xl-n-1{margin:.25rem!important}.mt-xl-n-1,.my-xl-n-1{margin-top:.25rem!important}.mr-xl-n-1,.mx-xl-n-1{margin-right:.25rem!important}.mb-xl-n-1,.my-xl-n-1{margin-bottom:.25rem!important}.ml-xl-n-1,.mx-xl-n-1{margin-left:.25rem!important}.m-xl-n6{margin:-4.5rem!important}.mt-xl-n6,.my-xl-n6{margin-top:-4.5rem!important}.mr-xl-n6,.mx-xl-n6{margin-right:-4.5rem!important}.mb-xl-n6,.my-xl-n6{margin-bottom:-4.5rem!important}.ml-xl-n6,.mx-xl-n6{margin-left:-4.5rem!important}.m-xl-n7{margin:-6rem!important}.mt-xl-n7,.my-xl-n7{margin-top:-6rem!important}.mr-xl-n7,.mx-xl-n7{margin-right:-6rem!important}.mb-xl-n7,.my-xl-n7{margin-bottom:-6rem!important}.ml-xl-n7,.mx-xl-n7{margin-left:-6rem!important}.m-xl-n8{margin:-8rem!important}.mt-xl-n8,.my-xl-n8{margin-top:-8rem!important}.mr-xl-n8,.mx-xl-n8{margin-right:-8rem!important}.mb-xl-n8,.my-xl-n8{margin-bottom:-8rem!important}.ml-xl-n8,.mx-xl-n8{margin-left:-8rem!important}.m-xl-n9{margin:-10rem!important}.mt-xl-n9,.my-xl-n9{margin-top:-10rem!important}.mr-xl-n9,.mx-xl-n9{margin-right:-10rem!important}.mb-xl-n9,.my-xl-n9{margin-bottom:-10rem!important}.ml-xl-n9,.mx-xl-n9{margin-left:-10rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{background-color:#0000;bottom:0;content:"";left:0;pointer-events:auto;position:absolute;right:0;top:0;z-index:1}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media(min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media(min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media(min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media(min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:600!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-primary{color:#5e72e4!important}a.text-primary:focus,a.text-primary:hover{color:#233dd2!important}.text-secondary{color:#f4f5f7!important}a.text-secondary:focus,a.text-secondary:hover{color:#c8cdd7!important}.text-success{color:#2dce89!important}a.text-success:focus,a.text-success:hover{color:#1f8f5f!important}.text-info{color:#11cdef!important}a.text-info:focus,a.text-info:hover{color:#0b90a8!important}.text-warning{color:#fb6340!important}a.text-warning:focus,a.text-warning:hover{color:#ea3005!important}.text-danger{color:#f5365c!important}a.text-danger:focus,a.text-danger:hover{color:#d40b33!important}.text-light{color:#adb5bd!important}a.text-light:focus,a.text-light:hover{color:#838f9b!important}.text-dark{color:#212529!important}a.text-dark:focus,a.text-dark:hover{color:#000!important}.text-default{color:#172b4d!important}a.text-default:focus,a.text-default:hover{color:#050a12!important}.text-neutral{color:#fff!important}a.text-neutral:focus,a.text-neutral:hover{color:#d9d9d9!important}.text-darker,a.text-darker:focus,a.text-darker:hover{color:#000!important}.text-body{color:#525f7f!important}.text-muted{color:#8898aa!important}.text-black-50{color:#00000080!important}.text-white-50{color:#ffffff80!important}.text-hide{background-color:#0000;border:0;color:#0000;font:0/0 a;text-shadow:none}.text-decoration-none{text-decoration:none!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{box-shadow:none!important;text-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:.0625rem solid #adb5bd}blockquote,img,pre,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:.0625rem solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{border-color:#dee2e6;color:inherit}}/*! + +========================================================= +* {{ site.product.name }} {{ site.product.name_long }} - v{{ site.product.version }} +========================================================= + +* Product Page: {{ site.product.download }} +* Copyright {{ 'now' | date: "%Y" }} {{ site.author }} ({{ site.website.url }}) +* Licensed under MIT ({{ site.product.license }}) + +* Coded by www.creative-tim.com + +========================================================= + +* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +*/iframe{border:0}figcaption,figure,main{display:block}main{overflow:hidden}.section-nucleo-icons .icons-container{height:360px;margin:0 auto;max-width:100%;position:relative;z-index:1}.section-nucleo-icons{--icon-size:5rem;--icon-sm-size:3.75rem;--gutter:7rem}.section-nucleo-icons .icons-container i{align-items:center;background:#fff;border-radius:50%;box-shadow:0 15px 35px #32325d1a,0 5px 15px #00000012;display:inline-flex;justify-content:center;position:absolute;transform:translate(-50%,-50%);transition:all .2s cubic-bezier(.25,.65,.9,.75);z-index:1}.section-nucleo-icons .icons-container i.icon{font-size:1.7em;height:var(--icon-size);width:var(--icon-size)}.section-nucleo-icons .icons-container i.icon-sm{font-size:1.5em;height:var(--icon-sm-size);width:var(--icon-sm-size)}.section-nucleo-icons .icons-container i:first-child{color:#fb6340;font-size:42px;z-index:2}.section-nucleo-icons .icons-container:not(.on-screen) i{left:50%;top:50%;transform:translate(-50%,-50%)}.section-nucleo-icons .icons-container:not(.on-screen) i:not(:first-child){opacity:0}.section-nucleo-icons .icons-container.on-screen i{opacity:1}.section-nucleo-icons .icons-container.on-screen i:first-child{color:#fb6340;font-size:42px;left:50%;top:50%}.section-nucleo-icons .icons-container.on-screen i:nth-child(2){left:calc(50% + var(--gutter)*1.7);top:50%}.section-nucleo-icons .icons-container.on-screen i:nth-child(3){left:calc(50% + var(--gutter));top:calc(50% + var(--gutter))}.section-nucleo-icons .icons-container.on-screen i:nth-child(4){left:calc(50% + var(--gutter));top:calc(50% - var(--gutter))}.section-nucleo-icons .icons-container.on-screen i:nth-child(5){left:calc(50% + var(--gutter)*3);top:50%}.section-nucleo-icons .icons-container.on-screen i:nth-child(6){left:calc(50% + var(--gutter)*2.7);top:calc(50% + var(--gutter)*1.5)}.section-nucleo-icons .icons-container.on-screen i:nth-child(7){left:calc(50% + var(--gutter)*2.7);top:calc(50% - var(--gutter)*1.5)}.section-nucleo-icons .icons-container.on-screen i:nth-child(8){left:calc(50% - var(--gutter)*1.7);top:50%}.section-nucleo-icons .icons-container.on-screen i:nth-child(9){left:calc(50% - var(--gutter));top:calc(50% + var(--gutter))}.section-nucleo-icons .icons-container.on-screen i:nth-child(10){left:calc(50% - var(--gutter));top:calc(50% - var(--gutter))}.section-nucleo-icons .icons-container.on-screen i:nth-child(11){left:calc(50% - var(--gutter)*4);top:50%}.section-nucleo-icons .icons-container.on-screen i:nth-child(12){left:calc(50% - var(--gutter)*2.7);top:calc(50% + var(--gutter)*1.5)}.section-nucleo-icons .icons-container.on-screen i:nth-child(13){left:calc(50% - var(--gutter)*2.7);top:calc(50% - var(--gutter)*1.5)}@media(max-width:991.98px){.section-nucleo-icons{overflow:hidden}}.blur--hover{position:relative}.blur--hover .blur-item{filter:blur(0);opacity:1;transition:1s cubic-bezier(.19,1,.22,1);will-change:transform}.blur--hover .blur-hidden{left:50%;opacity:0;position:absolute;top:calc(50% + 7px);transform:translate(-50%,-50%);transition:all .15s ease;z-index:100}.blur--hover:hover .blur-item{filter:blur(10px);opacity:.8;transform:scale(.95);z-index:1}.blur--hover:hover .blur-hidden{opacity:1;top:50%}.info .info-title{font-weight:600;margin:25px 0 15px}.bg-blue{background-color:#5e72e4!important}a.bg-blue:focus,a.bg-blue:hover,button.bg-blue:focus,button.bg-blue:hover{background-color:#324cdd!important}.bg-indigo{background-color:#5603ad!important}a.bg-indigo:focus,a.bg-indigo:hover,button.bg-indigo:focus,button.bg-indigo:hover{background-color:#3d027b!important}.bg-purple{background-color:#8965e0!important}a.bg-purple:focus,a.bg-purple:hover,button.bg-purple:focus,button.bg-purple:hover{background-color:#683bd7!important}.bg-pink{background-color:#f3a4b5!important}a.bg-pink:focus,a.bg-pink:hover,button.bg-pink:focus,button.bg-pink:hover{background-color:#ed7790!important}.bg-red{background-color:#f5365c!important}a.bg-red:focus,a.bg-red:hover,button.bg-red:focus,button.bg-red:hover{background-color:#ec0c38!important}.bg-orange{background-color:#fb6340!important}a.bg-orange:focus,a.bg-orange:hover,button.bg-orange:focus,button.bg-orange:hover{background-color:#fa3a0e!important}.bg-yellow{background-color:#ffd600!important}a.bg-yellow:focus,a.bg-yellow:hover,button.bg-yellow:focus,button.bg-yellow:hover{background-color:#ccab00!important}.bg-green{background-color:#2dce89!important}a.bg-green:focus,a.bg-green:hover,button.bg-green:focus,button.bg-green:hover{background-color:#24a46d!important}.bg-teal{background-color:#11cdef!important}a.bg-teal:focus,a.bg-teal:hover,button.bg-teal:focus,button.bg-teal:hover{background-color:#0da5c0!important}.bg-cyan{background-color:#2bffc6!important}a.bg-cyan:focus,a.bg-cyan:hover,button.bg-cyan:focus,button.bg-cyan:hover{background-color:#00f7b5!important}.bg-white{background-color:#fff!important}a.bg-white:focus,a.bg-white:hover,button.bg-white:focus,button.bg-white:hover{background-color:#e6e6e6!important}.bg-gray{background-color:#8898aa!important}a.bg-gray:focus,a.bg-gray:hover,button.bg-gray:focus,button.bg-gray:hover{background-color:#6a7e95!important}.bg-gray-dark{background-color:#32325d!important}a.bg-gray-dark:focus,a.bg-gray-dark:hover,button.bg-gray-dark:focus,button.bg-gray-dark:hover{background-color:#20203c!important}.bg-light{background-color:#ced4da!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#b1bbc4!important}.bg-lighter{background-color:#e9ecef!important}a.bg-lighter:focus,a.bg-lighter:hover,button.bg-lighter:focus,button.bg-lighter:hover{background-color:#cbd3da!important}.bg-gradient-blue{background:linear-gradient(35deg,#5e72e4,#825ee4)!important}.bg-gradient-indigo{background:linear-gradient(35deg,#5603ad,#9d03ad)!important}.bg-gradient-purple{background:linear-gradient(35deg,#8965e0,#bc65e0)!important}.bg-gradient-pink{background:linear-gradient(35deg,#f3a4b5,#f3b4a4)!important}.bg-gradient-red{background:linear-gradient(35deg,#f5365c,#f56036)!important}.bg-gradient-orange{background:linear-gradient(35deg,#fb6340,#fbb140)!important}.bg-gradient-yellow{background:linear-gradient(35deg,#ffd600,#beff00)!important}.bg-gradient-green{background:linear-gradient(35deg,#2dce89,#2dcecc)!important}.bg-gradient-teal{background:linear-gradient(35deg,#11cdef,#1171ef)!important}.bg-gradient-cyan{background:linear-gradient(35deg,#2bffc6,#2be0ff)!important}.bg-gradient-gray{background:linear-gradient(35deg,#8898aa,#888aaa)!important}.bg-gradient-gray-dark{background:linear-gradient(35deg,#32325d,#44325d)!important}.bg-gradient-light{background:linear-gradient(35deg,#ced4da,#cecfda)!important}.bg-gradient-lighter{background:linear-gradient(35deg,#e9ecef,#e9eaef)!important}.bg-translucent-primary{background-color:#3f57df99!important}a.bg-translucent-primary:focus,a.bg-translucent-primary:hover,button.bg-translucent-primary:focus,button.bg-translucent-primary:hover{background-color:#2a44db99!important}.bg-translucent-secondary{background-color:#dfe2e899!important}a.bg-translucent-secondary:focus,a.bg-translucent-secondary:hover,button.bg-translucent-secondary:focus,button.bg-translucent-secondary:hover{background-color:#d1d5dd99!important}.bg-translucent-success{background-color:#27b17699!important}a.bg-translucent-success:focus,a.bg-translucent-success:hover,button.bg-translucent-success:focus,button.bg-translucent-success:hover{background-color:#229c6899!important}.bg-translucent-info{background-color:#0eb1ce99!important}a.bg-translucent-info:focus,a.bg-translucent-info:hover,button.bg-translucent-info:focus,button.bg-translucent-info:hover{background-color:#0c9cb799!important}.bg-translucent-warning{background-color:#fa461d99!important}a.bg-translucent-warning:focus,a.bg-translucent-warning:hover,button.bg-translucent-warning:focus,button.bg-translucent-warning:hover{background-color:#f9330599!important}.bg-translucent-danger{background-color:#f3144099!important}a.bg-translucent-danger:focus,a.bg-translucent-danger:hover,button.bg-translucent-danger:focus,button.bg-translucent-danger:hover{background-color:#e30b3699!important}.bg-translucent-light{background-color:#99a3ad99!important}a.bg-translucent-light:focus,a.bg-translucent-light:hover,button.bg-translucent-light:focus,button.bg-translucent-light:hover{background-color:#8b96a299!important}.bg-translucent-dark{background-color:#11131599!important}a.bg-translucent-dark:focus,a.bg-translucent-dark:hover,button.bg-translucent-dark:focus,button.bg-translucent-dark:hover{background-color:#06060799!important}.bg-translucent-default{background-color:#0f1c3299!important}a.bg-translucent-default:focus,a.bg-translucent-default:hover,button.bg-translucent-default:focus,button.bg-translucent-default:hover{background-color:#09111e99!important}.bg-translucent-white{background-color:#ededed99!important}a.bg-translucent-white:focus,a.bg-translucent-white:hover,button.bg-translucent-white:focus,button.bg-translucent-white:hover{background-color:#e0e0e099!important}.bg-translucent-neutral{background-color:#ededed99!important}a.bg-translucent-neutral:focus,a.bg-translucent-neutral:hover,button.bg-translucent-neutral:focus,button.bg-translucent-neutral:hover{background-color:#e0e0e099!important}.bg-translucent-darker,a.bg-translucent-darker:focus,a.bg-translucent-darker:hover,button.bg-translucent-darker:focus,button.bg-translucent-darker:hover{background-color:#0009!important}.section-primary{background-color:#fff!important}a.section-primary:focus,a.section-primary:hover,button.section-primary:focus,button.section-primary:hover{background-color:#e6e6e6!important}.section-secondary{background-color:#f4f5f7!important}a.section-secondary:focus,a.section-secondary:hover,button.section-secondary:focus,button.section-secondary:hover{background-color:#d6dae2!important}.section-light{background-color:#ced4da!important}a.section-light:focus,a.section-light:hover,button.section-light:focus,button.section-light:hover{background-color:#b1bbc4!important}.section-dark{background-color:#212529!important}a.section-dark:focus,a.section-dark:hover,button.section-dark:focus,button.section-dark:hover{background-color:#0a0c0d!important}.section-darker,a.section-darker:focus,a.section-darker:hover,button.section-darker:focus,button.section-darker:hover{background-color:#000!important}.bg-gradient-primary{background:linear-gradient(35deg,#5e72e4,#825ee4)!important}.bg-gradient-secondary{background:linear-gradient(35deg,#f4f5f7,#f4f4f7)!important}.bg-gradient-success{background:linear-gradient(35deg,#2dce89,#2dcecc)!important}.bg-gradient-info{background:linear-gradient(35deg,#11cdef,#1171ef)!important}.bg-gradient-warning{background:linear-gradient(35deg,#fb6340,#fbb140)!important}.bg-gradient-danger{background:linear-gradient(35deg,#f5365c,#f56036)!important}.bg-gradient-light{background:linear-gradient(35deg,#adb5bd,#adaebd)!important}.bg-gradient-dark{background:linear-gradient(35deg,#212529,#212229)!important}.bg-gradient-default{background:linear-gradient(35deg,#172b4d,#1a174d)!important}.bg-gradient-neutral,.bg-gradient-white{background:linear-gradient(35deg,#fff,#fff)!important}.bg-gradient-darker{background:linear-gradient(35deg,#000,#000)!important}.fill-primary{fill:#5e72e4}.stroke-primary{stroke:#5e72e4}.fill-secondary{fill:#f4f5f7}.stroke-secondary{stroke:#f4f5f7}.fill-success{fill:#2dce89}.stroke-success{stroke:#2dce89}.fill-info{fill:#11cdef}.stroke-info{stroke:#11cdef}.fill-warning{fill:#fb6340}.stroke-warning{stroke:#fb6340}.fill-danger{fill:#f5365c}.stroke-danger{stroke:#f5365c}.fill-light{fill:#adb5bd}.stroke-light{stroke:#adb5bd}.fill-dark{fill:#212529}.stroke-dark{stroke:#212529}.fill-default{fill:#172b4d}.stroke-default{stroke:#172b4d}.fill-white{fill:#fff}.stroke-white{stroke:#fff}.fill-neutral{fill:#fff}.stroke-neutral{stroke:#fff}.fill-darker{fill:#000}.stroke-darker{stroke:#000}.fill-opacity-8{fill-opacity:.8}.floating{animation:floating 3s ease infinite;will-change:transform}.floating:hover{animation-play-state:paused}.floating-lg{animation:floating-lg 3s ease infinite}.floating-sm{animation:floating-sm 3s ease infinite}@keyframes floating-lg{0%{transform:translateY(0)}50%{transform:translateY(15px)}to{transform:translateY(0)}}@keyframes floating{0%{transform:translateY(0)}50%{transform:translateY(10px)}to{transform:translateY(0)}}@keyframes floating-sm{0%{transform:translateY(0)}50%{transform:translateY(5px)}to{transform:translateY(0)}}.img-center{display:block;margin-left:auto;margin-right:auto}.floatfix:after,.floatfix:before{content:"";display:table}.floatfix:after{clear:both}.overflow-visible{overflow:visible!important}.overflow-hidden{overflow:hidden!important}.opacity-1{opacity:.1!important}.opacity-2{opacity:.2!important}.opacity-3{opacity:.3!important}.opacity-4{opacity:.4!important}.opacity-5{opacity:.5!important}.opacity-6{opacity:.6!important}.opacity-7{opacity:.7!important}.opacity-8{opacity:.8!important}.opacity-9{opacity:.9!important}.opacity-10{opacity:1!important}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:.25rem}.right-1{right:.25rem}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.top-2{top:.5rem}.right-2{right:.5rem}.bottom-2{bottom:.5rem}.left-2{left:.5rem}.top-3{top:1rem}.right-3{right:1rem}.bottom-3{bottom:1rem}.left-3{left:1rem}.top-4{top:1.5rem}.right-4{right:1.5rem}.bottom-4{bottom:1.5rem}.left-4{left:1.5rem}.top-5{top:3rem}.right-5{right:3rem}.bottom-5{bottom:3rem}.left-5{left:3rem}.top--9{top:-10rem}.right--9{right:-10rem}.bottom--9{bottom:-10rem}.left--9{left:-10rem}.top--8{top:-8rem}.right--8{right:-8rem}.bottom--8{bottom:-8rem}.left--8{left:-8rem}.top--7{top:-6rem}.right--7{right:-6rem}.bottom--7{bottom:-6rem}.left--7{left:-6rem}.top--6{top:-4.5rem}.right--6{right:-4.5rem}.bottom--6{bottom:-4.5rem}.left--6{left:-4.5rem}.top--5{top:-3rem}.right--5{right:-3rem}.bottom--5{bottom:-3rem}.left--5{left:-3rem}.top--4{top:-1.5rem}.right--4{right:-1.5rem}.bottom--4{bottom:-1.5rem}.left--4{left:-1.5rem}.top--3{top:-1rem}.right--3{right:-1rem}.bottom--3{bottom:-1rem}.left--3{left:-1rem}.top--2{top:-.5rem}.right--2{right:-.5rem}.bottom--2{bottom:-.5rem}.left--2{left:-.5rem}.top--1{top:-.25rem}.right--1{right:-.25rem}.bottom--1{bottom:-.25rem}.left--1{left:-.25rem}.top-6{top:4.5rem}.right-6{right:4.5rem}.bottom-6{bottom:4.5rem}.left-6{left:4.5rem}.top-7{top:6rem}.right-7{right:6rem}.bottom-7{bottom:6rem}.left-7{left:6rem}.top-8{top:8rem}.right-8{right:8rem}.bottom-8{bottom:8rem}.left-8{left:8rem}.top-9{top:10rem}.right-9{right:10rem}.bottom-9{bottom:10rem}.left-9{left:10rem}.center{left:50%;transform:translateX(-50%)}.h-100vh{height:100vh!important}.row.row-grid>[class*=col-]+[class*=col-]{margin-top:3rem}@media(min-width:992px){.row.row-grid>[class*=col-lg-]+[class*=col-lg-]{margin-top:0}}@media(min-width:768px){.row.row-grid>[class*=col-md-]+[class*=col-md-]{margin-top:0}}@media(min-width:576px){.row.row-grid>[class*=col-sm-]+[class*=col-sm-]{margin-top:0}}.row-grid+.row-grid{margin-top:3rem}@media(min-width:992px){[class*=mb--],[class*=ml--],[class*=mr--],[class*=mt--]{position:relative;z-index:5}.mt--100{margin-top:-100px!important}.mr--100{margin-right:-100px!important}.mb--100{margin-bottom:-100px!important}.ml--100{margin-left:-100px!important}.mt--150{margin-top:-150px!important}.mb--150{margin-bottom:-150px!important}.mt--200{margin-top:-200px!important}.mb--200{margin-bottom:-200px!important}.mt--300{margin-top:-300px!important}.mb--300{margin-bottom:-300px!important}.pt-100{padding-top:100px!important}.pb-100{padding-bottom:100px!important}.pt-150{padding-top:150px!important}.pb-150{padding-bottom:150px!important}.pt-200{padding-top:200px!important}.pb-200{padding-bottom:200px!important}.pt-250{padding-top:250px!important}.pb-250{padding-bottom:250px!important}.pt-300{padding-top:300px!important}.pb-300{padding-bottom:300px!important}}[class*=shadow]{transition:all .15s ease}.shadow-sm--hover:hover{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow--hover:hover{box-shadow:0 15px 35px #32325d1a,0 5px 15px #00000012!important}.shadow-lg--hover:hover{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none--hover:hover{box-shadow:none!important}.font-weight-300{font-weight:300!important}.font-weight-400{font-weight:400!important}.font-weight-500{font-weight:500!important}.font-weight-600{font-weight:600!important}.font-weight-700{font-weight:700!important}.font-weight-800{font-weight:800!important}.font-weight-900{font-weight:900!important}.text-underline{text-decoration:underline}.text-through{text-decoration:line-through}.lh-100{line-height:1}.lh-110{line-height:1.1}.lh-120{line-height:1.2}.lh-130{line-height:1.3}.lh-140{line-height:1.4}.lh-150{line-height:1.5}.lh-160{line-height:1.6}.lh-170{line-height:1.7}.lh-180{line-height:1.8}.ls-1{letter-spacing:.0625rem}.ls-15{letter-spacing:.09375rem}.ls-2{letter-spacing:.125rem}.text-blue{color:#5e72e4!important}a.text-blue:focus,a.text-blue:hover{color:#233dd2!important}.text-indigo{color:#5603ad!important}a.text-indigo:focus,a.text-indigo:hover{color:#310262!important}.text-purple{color:#8965e0!important}a.text-purple:focus,a.text-purple:hover{color:#5a2acf!important}.text-pink{color:#f3a4b5!important}a.text-pink:focus,a.text-pink:hover{color:#ea607e!important}.text-red{color:#f5365c!important}a.text-red:focus,a.text-red:hover{color:#d40b33!important}.text-orange{color:#fb6340!important}a.text-orange:focus,a.text-orange:hover{color:#ea3005!important}.text-yellow{color:#ffd600!important}a.text-yellow:focus,a.text-yellow:hover{color:#b39600!important}.text-green{color:#2dce89!important}a.text-green:focus,a.text-green:hover{color:#1f8f5f!important}.text-teal{color:#11cdef!important}a.text-teal:focus,a.text-teal:hover{color:#0b90a8!important}.text-cyan{color:#2bffc6!important}a.text-cyan:focus,a.text-cyan:hover{color:#00dea2!important}.text-white{color:#fff!important}a.text-white:focus,a.text-white:hover{color:#d9d9d9!important}.text-gray{color:#8898aa!important}a.text-gray:focus,a.text-gray:hover{color:#607286!important}.text-gray-dark{color:#32325d!important}a.text-gray-dark:focus,a.text-gray-dark:hover{color:#17172b!important}.text-light{color:#ced4da!important}a.text-light:focus,a.text-light:hover{color:#a2aeb9!important}.text-lighter{color:#e9ecef!important}a.text-lighter:focus,a.text-lighter:hover{color:#bdc6cf!important}@media(min-width:992px){.transform-perspective-right{transform:scale(1) perspective(1040px) rotateY(-11deg) rotateX(2deg) rotate(2deg)}.transform-perspective-left{transform:scale(1) perspective(2000px) rotateY(11deg) rotateX(2deg) rotate(-2deg)}}.alert{border:0;border-radius:.25rem;font-size:.875rem;padding:1rem 1.5rem}.alert .alert-inner--icon{display:inline-block;font-size:1.25rem;margin-right:1.25rem;vertical-align:middle}.alert .alert-inner--icon i.ni{position:relative;top:1px}.alert .alert-inner--text{display:inline-block;vertical-align:middle}.alert:not(.alert-secondary){color:#fff}[class*=alert-] .alert-link{border-bottom:1px dotted #ffffff80;color:#fff}.alert-heading{font-size:1.5rem;font-weight:600;margin-top:.15rem}.alert-dismissible .close{color:#fff9;opacity:1;padding:0;right:1.5rem;top:50%;transform:translateY(-50%)}.alert-dismissible .close:focus,.alert-dismissible .close:hover{color:#ffffffe6;opacity:1!important}@media(max-width:575.98px){.alert-dismissible .close{right:.5rem;top:1rem}}.alert-dismissible .close>span:not(.sr-only){background-color:#0000;color:#fff9;font-size:1.5rem}.alert-dismissible .close:focus>span:not(.sr-only),.alert-dismissible .close:hover>span:not(.sr-only){background-color:#0000;color:#ffffffe6}.avatar{align-items:center;background-color:#adb5bd;border-radius:50%;color:#fff;display:inline-flex;font-size:1rem;height:48px;justify-content:center;width:48px}.avatar img{border-radius:50%;width:100%}.avatar+.avatar-content{display:inline-block;margin-left:.75rem}.avatar-lg{font-size:.875rem;height:58px;width:58px}.avatar-sm{font-size:.875rem;height:38px;width:38px}.avatar-group .avatar{border:2px solid #fff;position:relative;z-index:2}.avatar-group .avatar:hover{z-index:3}.avatar-group .avatar+.avatar{margin-left:-1rem}.badge{text-transform:uppercase}.badge a{color:#fff}.badge-pill{padding-left:.875em;padding-right:.875em}.badge-circle{align-items:center;border-radius:50%;display:inline-flex;font-size:.875rem;height:2rem;justify-content:center;text-align:center;width:2rem}.badge-inline{margin-right:.625rem}.badge-inline+span{position:relative;top:2px}.badge-inline+span>a{text-decoration:underline}.badge-md{padding:.65em 1em}.badge-lg{padding:.85em 1.375em}.badge-secondary{color:#32325d}.btn .badge:not(:first-child){margin-left:.5rem}.btn .badge:not(:last-child){margin-right:.5rem}.btn{font-size:.875rem;letter-spacing:.025em;position:relative;text-transform:uppercase;will-change:transform}.btn:hover{box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;transform:translateY(-1px)}.btn:not(:last-child){margin-right:.5rem}.btn-group .btn,.input-group .btn{margin-right:0;transform:translateY(0)}.btn-group-sm>.btn,.btn-sm{font-size:.75rem}.btn-group-sm>.btn-icon-only.btn,.btn-sm.btn-icon-only{height:35px;width:35px}.btn-group-sm>.btn .btn-inner--icon,.btn-sm .btn-inner--icon{font-size:.5rem}.btn-group-lg>.btn-icon-only.btn,.btn-lg.btn-icon-only{height:52px;width:52px}.btn-group-lg>.btn .btn-inner--icon,.btn-lg .btn-inner--icon{font-size:1.2rem;position:relative;top:2px}[class*=btn-outline-]{border-width:1px}.btn-outline-secondary{color:#637089}.btn-inner--icon i:not(.fa){position:relative}.btn-link{box-shadow:none;font-weight:600}.btn-link:hover{box-shadow:none;transform:none}.btn-link.text-secondary{color:#637089!important}.btn-neutral{color:#5e72e4}.btn i:not(:first-child),.btn svg:not(:first-child){margin-left:.5rem}.btn i:not(:last-child),.btn svg:not(:last-child){margin-right:.5rem}.btn-icon-label{position:relative}.btn-icon-label .btn-inner--icon{background-color:#0000001a;border-radius:0;height:100%;line-height:1;margin:0;position:absolute;text-align:center;width:3em}.btn-icon-label .btn-inner--icon:not(:first-child){border-bottom-right-radius:inherit;border-top-right-radius:inherit;right:0;top:0}.btn-icon-label .btn-inner--icon:not(:last-child){border-bottom-left-radius:inherit;border-top-left-radius:inherit;left:0;top:0}.btn-icon-label .btn-inner--icon svg{position:relative;top:50%;transform:translateY(-50%)}.btn-icon-label .btn-inner--text:not(:first-child){padding-left:3em}.btn-icon-label .btn-inner--text:not(:last-child){padding-right:3em}.btn-icon .btn-inner--icon img{width:20px}.btn-icon .btn-inner--text:not(:first-child){margin-left:.75em}.btn-icon .btn-inner--text:not(:last-child){margin-right:.75em}.btn-icon-only{height:2.375rem;padding:0;width:2.375rem}a.btn-icon-only{line-height:2.5}.btn-group-sm>.btn-icon-only.btn,.btn-icon-only.btn-sm{height:2rem;width:2rem}.btn-facebook{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.btn-facebook,.btn-facebook:hover{background-color:#3b5999;border-color:#3b5999;color:#fff}.btn-facebook.focus,.btn-facebook:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #3b599980}.btn-facebook.disabled,.btn-facebook:disabled{background-color:#3b5999;border-color:#3b5999;color:#fff}.btn-facebook:not(:disabled):not(.disabled).active,.btn-facebook:not(:disabled):not(.disabled):active,.show>.btn-facebook.dropdown-toggle{background-color:#2d4474;border-color:#3b5999;color:#fff}.btn-facebook:not(:disabled):not(.disabled).active:focus,.btn-facebook:not(:disabled):not(.disabled):active:focus,.show>.btn-facebook.dropdown-toggle:focus{box-shadow:none,0 0 0 0 #3b599980}.btn-twitter{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.btn-twitter,.btn-twitter:hover{background-color:#1da1f2;border-color:#1da1f2;color:#fff}.btn-twitter.focus,.btn-twitter:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #1da1f280}.btn-twitter.disabled,.btn-twitter:disabled{background-color:#1da1f2;border-color:#1da1f2;color:#fff}.btn-twitter:not(:disabled):not(.disabled).active,.btn-twitter:not(:disabled):not(.disabled):active,.show>.btn-twitter.dropdown-toggle{background-color:#0c85d0;border-color:#1da1f2;color:#fff}.btn-twitter:not(:disabled):not(.disabled).active:focus,.btn-twitter:not(:disabled):not(.disabled):active:focus,.show>.btn-twitter.dropdown-toggle:focus{box-shadow:none,0 0 0 0 #1da1f280}.btn-google-plus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.btn-google-plus,.btn-google-plus:hover{background-color:#dd4b39;border-color:#dd4b39;color:#fff}.btn-google-plus.focus,.btn-google-plus:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #dd4b3980}.btn-google-plus.disabled,.btn-google-plus:disabled{background-color:#dd4b39;border-color:#dd4b39;color:#fff}.btn-google-plus:not(:disabled):not(.disabled).active,.btn-google-plus:not(:disabled):not(.disabled):active,.show>.btn-google-plus.dropdown-toggle{background-color:#c23321;border-color:#dd4b39;color:#fff}.btn-google-plus:not(:disabled):not(.disabled).active:focus,.btn-google-plus:not(:disabled):not(.disabled):active:focus,.show>.btn-google-plus.dropdown-toggle:focus{box-shadow:none,0 0 0 0 #dd4b3980}.btn-instagram{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.btn-instagram,.btn-instagram:hover{background-color:#e4405f;border-color:#e4405f;color:#fff}.btn-instagram.focus,.btn-instagram:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #e4405f80}.btn-instagram.disabled,.btn-instagram:disabled{background-color:#e4405f;border-color:#e4405f;color:#fff}.btn-instagram:not(:disabled):not(.disabled).active,.btn-instagram:not(:disabled):not(.disabled):active,.show>.btn-instagram.dropdown-toggle{background-color:#d31e40;border-color:#e4405f;color:#fff}.btn-instagram:not(:disabled):not(.disabled).active:focus,.btn-instagram:not(:disabled):not(.disabled):active:focus,.show>.btn-instagram.dropdown-toggle:focus{box-shadow:none,0 0 0 0 #e4405f80}.btn-pinterest{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.btn-pinterest,.btn-pinterest:hover{background-color:#bd081c;border-color:#bd081c;color:#fff}.btn-pinterest.focus,.btn-pinterest:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #bd081c80}.btn-pinterest.disabled,.btn-pinterest:disabled{background-color:#bd081c;border-color:#bd081c;color:#fff}.btn-pinterest:not(:disabled):not(.disabled).active,.btn-pinterest:not(:disabled):not(.disabled):active,.show>.btn-pinterest.dropdown-toggle{background-color:#8c0615;border-color:#bd081c;color:#fff}.btn-pinterest:not(:disabled):not(.disabled).active:focus,.btn-pinterest:not(:disabled):not(.disabled):active:focus,.show>.btn-pinterest.dropdown-toggle:focus{box-shadow:none,0 0 0 0 #bd081c80}.btn-youtube{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.btn-youtube,.btn-youtube:hover{background-color:#cd201f;border-color:#cd201f;color:#fff}.btn-youtube.focus,.btn-youtube:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #cd201f80}.btn-youtube.disabled,.btn-youtube:disabled{background-color:#cd201f;border-color:#cd201f;color:#fff}.btn-youtube:not(:disabled):not(.disabled).active,.btn-youtube:not(:disabled):not(.disabled):active,.show>.btn-youtube.dropdown-toggle{background-color:#a11918;border-color:#cd201f;color:#fff}.btn-youtube:not(:disabled):not(.disabled).active:focus,.btn-youtube:not(:disabled):not(.disabled):active:focus,.show>.btn-youtube.dropdown-toggle:focus{box-shadow:none,0 0 0 0 #cd201f80}.btn-slack{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.btn-slack,.btn-slack:hover{background-color:#3aaf85;border-color:#3aaf85;color:#fff}.btn-slack.focus,.btn-slack:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #3aaf8580}.btn-slack.disabled,.btn-slack:disabled{background-color:#3aaf85;border-color:#3aaf85;color:#fff}.btn-slack:not(:disabled):not(.disabled).active,.btn-slack:not(:disabled):not(.disabled):active,.show>.btn-slack.dropdown-toggle{background-color:#2d8968;border-color:#3aaf85;color:#fff}.btn-slack:not(:disabled):not(.disabled).active:focus,.btn-slack:not(:disabled):not(.disabled):active:focus,.show>.btn-slack.dropdown-toggle:focus{box-shadow:none,0 0 0 0 #3aaf8580}.btn-dribbble{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.btn-dribbble,.btn-dribbble:hover{background-color:#ea4c89;border-color:#ea4c89;color:#fff}.btn-dribbble.focus,.btn-dribbble:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #ea4c8980}.btn-dribbble.disabled,.btn-dribbble:disabled{background-color:#ea4c89;border-color:#ea4c89;color:#fff}.btn-dribbble:not(:disabled):not(.disabled).active,.btn-dribbble:not(:disabled):not(.disabled):active,.show>.btn-dribbble.dropdown-toggle{background-color:#e51e6b;border-color:#ea4c89;color:#fff}.btn-dribbble:not(:disabled):not(.disabled).active:focus,.btn-dribbble:not(:disabled):not(.disabled):active:focus,.show>.btn-dribbble.dropdown-toggle:focus{box-shadow:none,0 0 0 0 #ea4c8980}.btn-github{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.btn-github,.btn-github:hover{background-color:#222;border-color:#222;color:#fff}.btn-github.focus,.btn-github:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014,0 0 0 0 #22222280}.btn-github.disabled,.btn-github:disabled{background-color:#222;border-color:#222;color:#fff}.btn-github:not(:disabled):not(.disabled).active,.btn-github:not(:disabled):not(.disabled):active,.show>.btn-github.dropdown-toggle{background-color:#090909;border-color:#222;color:#fff}.btn-github:not(:disabled):not(.disabled).active:focus,.btn-github:not(:disabled):not(.disabled):active:focus,.show>.btn-github.dropdown-toggle:focus{box-shadow:none,0 0 0 0 #22222280}.card{position:relative}.card.card-plain{background:#0000;border:none;box-shadow:none}.profile-page .card-profile{margin-top:-150px}.profile-page .card-profile .card-profile-image{position:relative}.profile-page .card-profile .card-profile-image img{border-radius:.25rem;left:50%;max-width:180px;position:absolute;transform:translate(-50%,-30%);transition:all .15s ease}.profile-page .card-profile .card-profile-image img:hover{transform:translate(-50%,-33%)}.profile-page .card-profile .card-profile-stats{padding:1rem 0}.profile-page .card-profile .card-profile-stats>div{margin-right:1rem;padding:.875rem;text-align:center}.profile-page .card-profile .card-profile-stats>div:last-child{margin-right:0}.profile-page .card-profile .card-profile-stats>div .heading{display:block;font-size:1.1rem;font-weight:700}.profile-page .card-profile .card-profile-stats>div .description{color:#adb5bd;font-size:.875rem}.profile-page .card-profile .card-profile-actions{padding:.875rem}@media(max-width:575.98px){.profile-page .card-profile .card-profile-actions{margin-top:110px}}@media(min-width:576px)and (max-width:991.98px){.profile-page .card-profile .card-profile-stats{margin-top:30px}}.card .card-blockquote{padding:2rem;position:relative}.card .card-blockquote .svg-bg{display:block;height:95px;left:0;position:absolute;top:-94px;width:100%}.card-lift--hover:hover{transform:translateY(-20px);transition:all .15s ease}@media(prefers-reduced-motion:reduce){.card-lift--hover:hover{transition:none}}.close{transition:all .15s ease}.close>span:not(.sr-only){background-color:#0000;border-radius:50%;color:#0009;display:block;font-size:1.25rem;height:1.25rem;line-height:17px;transition:all .15s ease;width:1.25rem}.close:focus,.close:hover{background-color:#0000;color:#000000e6;outline:none}.close:focus span:not(.sr-only),.close:hover span:not(.sr-only){background-color:#0000}.custom-control-label:before{border:1px solid #cad1d7;transition:all .3s ease}.custom-control-label span{position:relative;top:2px}.custom-control{padding-left:1.7rem!important}.custom-control-label{margin-bottom:0}.custom-control-label:after,.custom-control-label:before{left:-1.75rem}.custom-control-input:active~.custom-control-label:before{border-color:#5e72e4}.custom-control-alternative .custom-control-label:before{border:0;box-shadow:0 1px 3px #32325d26,0 1px 0 #00000005}.custom-control-alternative .custom-control-input:checked~.custom-control-label:before{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.custom-control-alternative .custom-control-input:active~.custom-control-label:before,.custom-control-alternative .custom-control-input:focus~.custom-control-label:before{box-shadow:0 1px 3px #32325d26,0 1px 0 #00000005}.custom-checkbox .custom-control-input~.custom-control-label{cursor:pointer;font-size:.875rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:before{border-color:#5e72e4}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='m6.564.75-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled~.custom-control-label:before{border-color:#e9ecef}.custom-checkbox .custom-control-input:disabled:checked:before{border-color:#5e72e480}.custom-radio .custom-control-input~.custom-control-label{cursor:pointer;font-size:.875rem}.custom-radio .custom-control-input:checked~.custom-control-label:before{border-color:#5e72e4}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled~.custom-control-label:before{border-color:#e9ecef}.custom-radio .custom-control-input:disabled:checked:before{border-color:#5e72e480}.custom-toggle{display:inline-block;height:1.5rem;position:relative;width:50px}.custom-toggle input{display:none}.custom-toggle input:checked+.custom-toggle-slider{border:1px solid #5e72e4}.custom-toggle input:checked+.custom-toggle-slider:before{background:#5e72e4;transform:translateX(1.625rem)}.custom-toggle input:disabled+.custom-toggle-slider,.custom-toggle input:disabled:checked+.custom-toggle-slider{border:1px solid #e9ecef}.custom-toggle input:disabled:checked+.custom-toggle-slider:before{background-color:#8a98eb}.custom-toggle-slider{background-color:#0000;border:1px solid #cad1d7;border-radius:34px!important;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.custom-toggle-slider:before{background-color:#ddd;border-radius:50%!important;bottom:2px;content:"";height:18px;left:2px;position:absolute;transition:all .2s cubic-bezier(.68,-.55,.265,1.55);width:18px}.dropdown,.dropleft,.dropright,.dropup{display:inline-block}.dropdown-menu{min-width:12rem}.dropdown-menu .dropdown-item{font-size:.875rem;padding:1rem}.dropdown-menu .dropdown-item>i,.dropdown-menu .dropdown-item>svg{font-size:1rem;margin-right:1rem;vertical-align:-17%}.dropdown-header{color:#f6f9fc;font-size:.625rem;font-weight:700;padding-left:1rem;padding-right:1rem;text-transform:uppercase}.dropdown-menu a.media>div:first-child{line-height:1}.dropdown-menu a.media p{color:#8898aa}.dropdown-menu a.media:hover .heading,.dropdown-menu a.media:hover p{color:#172b4d!important}.dropdown-menu-sm{border:.3rem;min-width:100px}.dropdown-menu-lg{border-radius:.3rem;min-width:260px}.dropdown-menu-xl{border-radius:.3rem;min-width:450px}.footer{background:#f4f5f7;padding:1.5rem 0}.footer .col-footer .heading{color:#8898aa;font-size:.875rem;font-weight:600;letter-spacing:0;margin-bottom:1rem;text-transform:uppercase}.footer .footer-link,.footer .nav .nav-item .nav-link{color:#8898aa!important}.footer .footer-link:hover,.footer .nav .nav-item .nav-link:hover{color:#525f7f!important}.footer .list-unstyled li a{color:#8898aa;display:inline-block;font-size:.85rem;padding:.125rem 0}.footer .list-unstyled li a:hover{color:#525f7f}.footer .copyright{font-size:.875rem}.footer .dropdown .btn:not(:disabled):not(.disabled).active:focus,.footer .dropdown .btn:not(:disabled):not(.disabled):active:focus{box-shadow:none}.footer-dark .col-footer .heading{color:#fff}.footer.has-cards{background:#0000;margin-top:-420px;overflow:hidden;padding-top:500px;pointer-events:none;position:relative}.footer.has-cards:before{background:#f4f5f7;content:"";height:2000px;left:0;position:absolute;right:0;top:600px;transform:skew(0,-8deg)}.footer.has-cards .container{pointer-events:auto;position:relative}.nav-footer .nav-link{font-size:.875rem}.nav-footer .nav-item:last-child .nav-link{padding-right:0}.form-control,label{font-size:.875rem}.form-control{transition:all .15s ease}.form-control:focus::placeholder{color:#adb5bd}.form-control.is-invalid,.form-control.is-valid{background-image:none}textarea[resize=none]{resize:none!important}textarea[resize=both]{resize:both!important}textarea[resize=vertical]{resize:vertical!important}textarea[resize=horizontal]{resize:horizontal!important}.form-control-muted{border-color:#edf0f5;box-shadow:none}.form-control-muted,.form-control-muted:focus{background-color:#edf0f5}.form-control-alternative{border:0;box-shadow:0 1px 3px #32325d26,0 1px 0 #00000005;transition:box-shadow .15s ease}.form-control-alternative:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.form-control-lg{font-size:1rem}.has-danger,.has-success{position:relative}.has-danger:after,.has-success:after{border-radius:50%;display:inline-block;font-family:NucleoIcons;font-size:9px;height:19px;line-height:19px;opacity:1;position:absolute;right:15px;text-align:center;top:2px;transform:translateY(50%);width:19px}.has-danger .form-control-alternative.is-invalid:focus,.has-danger .form-control-alternative.is-valid:focus,.has-success .form-control-alternative.is-invalid:focus,.has-success .form-control-alternative.is-valid:focus{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014!important}.has-success:after{background-color:#69deac;color:daken(#2dce89,18%);content:""}.has-success .form-control{background-color:#fff}.has-success .form-control:focus{border-color:#3297d340}.has-success .form-control::placeholder{color:#2dce89}.has-danger:after{background-color:#fda08b;color:daken(#fb6340,18%);content:""}.has-danger .form-control{background-color:#fff}.has-danger .form-control:focus{border-color:#3297d340}.has-danger .form-control::placeholder{color:#fb6340}@media(min-width:992px){.container-lg{max-width:1160px}}.icon{height:3rem;width:3rem}.icon i,.icon svg{font-size:2.25rem}.icon+.icon-text{padding-left:1rem;width:calc(100% - 3rem - 1)}.icon-xl{height:5rem;width:5rem}.icon-xl i,.icon-xl svg{font-size:4.25rem}.icon-xl+.icon-text{width:calc(100% - 5rem - 1)}.icon-lg{height:4rem;width:4rem}.icon-lg i,.icon-lg svg{font-size:3.25rem}.icon-lg+.icon-text{width:calc(100% - 4rem - 1)}.icon-sm{height:2rem;width:2rem}.icon-sm i,.icon-sm svg{font-size:1.25rem}.icon-sm+.icon-text{width:calc(100% - 2rem - 1)}.icon-xs{height:1.25rem;width:1.25rem}.icon-xs i,.icon-xs svg{font-size:.5rem!important}.icon-xs+.icon-text{width:calc(100% - 1.25rem - 1)}.icon-shape{align-items:center;border-radius:50%;display:inline-flex;justify-content:center;padding:12px;text-align:center}.icon-shape i,.icon-shape svg{font-size:1.25rem}.icon-shape.icon-lg i,.icon-shape.icon-lg svg{font-size:1.625rem}.icon-shape.icon-sm i,.icon-shape.icon-sm svg{font-size:.875rem}.icon-shape svg{height:30px;width:30px}.icon-shape-primary{background-color:#8a98eb80;color:#2643e9}.icon-shape-secondary{background-color:#ffffff80;color:#d3d9e5}.icon-shape-success{background-color:#54daa180;color:#1aae6f}.icon-shape-info{background-color:#41d7f280;color:#03acca}.icon-shape-warning{background-color:#fc8c7280;color:#ff3709}.icon-shape-danger{background-color:#f7678380;color:#f80031}.icon-shape-light{background-color:#c9cfd480;color:#879cb0}.icon-shape-dark{background-color:#383f4580;color:#090c0e}.icon-shape-default{background-color:#23417480;color:#091428}.icon-shape-neutral,.icon-shape-white{background-color:#ffffff80;color:#e8e3e3}.icon-shape-darker{background-color:#171a1c80;color:#000}.input-group{border-radius:.25rem;transition:all .15s ease}.input-group,.input-group .form-control{box-shadow:none}.input-group .form-control:not(:first-child){border-left:0;padding-left:0}.input-group .form-control:not(:last-child){border-right:0;padding-right:0}.input-group .form-control:focus{box-shadow:none}.input-group .input-group-prepend{margin-right:0}.input-group .input-group-prepend .input-group-text{border-right:none}.input-group-text{transition:all .15s ease}.input-group-alternative{border:0;box-shadow:0 1px 3px #32325d26,0 1px 0 #00000005;transition:box-shadow .15s ease}.input-group-alternative .form-control,.input-group-alternative .input-group-text{border:0;box-shadow:none}.focused .input-group-alternative{box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014!important}.focused .input-group{box-shadow:none}.focused .input-group-text{background-color:#fff;border-color:#5e72e4;color:#8898aa}.focused .form-control{border-color:#5e72e4}.list-group-space .list-group-item{border-radius:.25rem;margin-bottom:1.5rem}.list-group-img{border-radius:50%;height:3rem;margin:-.1rem 1.2rem 0 -.2rem;vertical-align:top;width:3rem}.list-group-content{flex:1 1;min-width:0}.list-group-content>p{color:#adb5bd;line-height:1.5;margin:.2rem 0 0}.list-group-heading{color:#32325d;font-size:1rem}.list-group-heading>small{color:#adb5bd;float:right;font-weight:500}.modal-content{border:0;border-radius:.3rem}.modal-fluid .modal-dialog{margin-bottom:0;margin-top:0}.modal-fluid .modal-content{border-radius:0}.modal-primary .modal-title{color:#fff}.modal-primary .modal-footer,.modal-primary .modal-header{border-color:hsla(0,0%,100%,.075)}.modal-primary .modal-content{background-color:#5e72e4;color:#fff}.modal-primary .close>span:not(.sr-only),.modal-primary .modal-content .heading{color:#fff}.modal-secondary .modal-title{color:#212529}.modal-secondary .modal-footer,.modal-secondary .modal-header{border-color:rgba(33,37,41,.075)}.modal-secondary .modal-content{background-color:#f4f5f7;color:#212529}.modal-secondary .modal-content .heading{color:#212529}.modal-secondary .close>span:not(.sr-only),.modal-success .modal-title{color:#fff}.modal-success .modal-footer,.modal-success .modal-header{border-color:hsla(0,0%,100%,.075)}.modal-success .modal-content{background-color:#2dce89;color:#fff}.modal-info .modal-title,.modal-success .close>span:not(.sr-only),.modal-success .modal-content .heading{color:#fff}.modal-info .modal-footer,.modal-info .modal-header{border-color:hsla(0,0%,100%,.075)}.modal-info .modal-content{background-color:#11cdef;color:#fff}.modal-info .close>span:not(.sr-only),.modal-info .modal-content .heading,.modal-warning .modal-title{color:#fff}.modal-warning .modal-footer,.modal-warning .modal-header{border-color:hsla(0,0%,100%,.075)}.modal-warning .modal-content{background-color:#fb6340;color:#fff}.modal-danger .modal-title,.modal-warning .close>span:not(.sr-only),.modal-warning .modal-content .heading{color:#fff}.modal-danger .modal-footer,.modal-danger .modal-header{border-color:hsla(0,0%,100%,.075)}.modal-danger .modal-content{background-color:#f5365c;color:#fff}.modal-danger .close>span:not(.sr-only),.modal-danger .modal-content .heading,.modal-light .modal-title{color:#fff}.modal-light .modal-footer,.modal-light .modal-header{border-color:hsla(0,0%,100%,.075)}.modal-light .modal-content{background-color:#adb5bd;color:#fff}.modal-dark .modal-title,.modal-light .close>span:not(.sr-only),.modal-light .modal-content .heading{color:#fff}.modal-dark .modal-footer,.modal-dark .modal-header{border-color:hsla(0,0%,100%,.075)}.modal-dark .modal-content{background-color:#212529;color:#fff}.modal-dark .close>span:not(.sr-only),.modal-dark .modal-content .heading,.modal-default .modal-title{color:#fff}.modal-default .modal-footer,.modal-default .modal-header{border-color:hsla(0,0%,100%,.075)}.modal-default .modal-content{background-color:#172b4d;color:#fff}.modal-default .close>span:not(.sr-only),.modal-default .modal-content .heading{color:#fff}.modal-white .modal-title{color:#212529}.modal-white .modal-footer,.modal-white .modal-header{border-color:rgba(33,37,41,.075)}.modal-white .modal-content{background-color:#fff;color:#212529}.modal-white .modal-content .heading{color:#212529}.modal-white .close>span:not(.sr-only){color:#fff}.modal-neutral .modal-title{color:#212529}.modal-neutral .modal-footer,.modal-neutral .modal-header{border-color:rgba(33,37,41,.075)}.modal-neutral .modal-content{background-color:#fff;color:#212529}.modal-neutral .modal-content .heading{color:#212529}.modal-darker .modal-title,.modal-neutral .close>span:not(.sr-only){color:#fff}.modal-darker .modal-footer,.modal-darker .modal-header{border-color:hsla(0,0%,100%,.075)}.modal-darker .modal-content{background-color:#000;color:#fff}.modal-darker .close>span:not(.sr-only),.modal-darker .modal-content .heading{color:#fff}.nav-link{color:#525f7f}.nav-link.active,.nav-link:hover{color:#5e72e4}.nav-link i:not(.fa){position:relative;top:2px}.nav-pills .nav-item:not(:last-child){padding-right:1rem}.nav-pills .nav-link{background-color:#fff;box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014;color:#5e72e4;font-size:.875rem;font-weight:500;padding:.75rem 1rem;transition:all .15s ease}.nav-pills .nav-link:hover{color:#485fe0}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:#5e72e4;color:#fff}@media(max-width:575.98px){.nav-pills .nav-item{margin-bottom:1rem}}@media(max-width:767.98px){.nav-pills:not(.nav-pills-circle) .nav-item{padding-right:0}}.nav-pills-circle .nav-link{border-radius:50%;height:60px;line-height:60px;padding:0;text-align:center;width:60px}.nav-pills-circle .nav-link-icon i,.nav-pills-circle .nav-link-icon svg{font-size:1rem}.nav-wrapper{border-top-left-radius:.25rem;border-top-right-radius:.25rem;padding:1rem 0}.nav-wrapper+.card{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-top-left-radius:0;border-top-right-radius:0}.navbar.navbar-absolute{position:absolute;width:100%;z-index:1050}.navbar-nav .nav-link{font-family:Open Sans,sans-serif;font-size:.9rem;font-weight:400;letter-spacing:0;text-transform:normal;transition:all .15s linear}@media(prefers-reduced-motion:reduce){.navbar-nav .nav-link{transition:none}}.navbar-nav .nav-link .nav-link-inner--text{margin-left:.25rem}.navbar-brand{font-size:.875rem;font-weight:600;letter-spacing:.05px;text-transform:uppercase}.navbar-brand img{height:30px}.navbar-dark .navbar-brand{color:#fff}.navbar-light .navbar-brand{color:#32325d}.navbar-nav .nav-item .media:not(:last-child){margin-bottom:1.5rem}@media(min-width:992px){.navbar-nav .nav-item{margin-right:.5rem}.navbar-nav .nav-item [data-toggle=dropdown]:after{transition:all .15s ease}.navbar-nav .nav-item.show [data-toggle=dropdown]:after{transform:rotate(180deg)}.navbar-nav .nav-link{border-radius:.25rem;padding-bottom:1rem;padding-top:1rem}.navbar-nav .nav-link i{margin-right:.625rem}.navbar-nav .nav-link-icon{border-radius:.25rem;font-size:1rem;padding-left:.5rem!important;padding-right:.5rem!important}.navbar-nav .nav-link-icon i{margin-right:0}.navbar-nav .dropdown-menu{margin:0;opacity:0;pointer-events:none}.navbar-nav .dropdown-menu:before{background:#fff;border-radius:.2rem;bottom:100%;box-shadow:none;content:"";display:block;height:16px;left:5px;position:absolute;transform:rotate(-45deg) translateY(1rem);width:16px;z-index:-5}.navbar-nav .dropdown-menu-right:before{left:auto;right:20px}.navbar-nav:not(.navbar-nav-hover) .dropdown-menu.show{animation:show-navbar-dropdown .25s ease forwards;opacity:1;pointer-events:auto}.navbar-nav:not(.navbar-nav-hover) .dropdown-menu.close{animation:hide-navbar-dropdown .15s ease backwards;display:block}.navbar-nav.navbar-nav-hover .dropdown-menu{animation:none;display:block;opacity:0;pointer-events:none;transform:translateY(10px) perspective(200px) rotateX(-2deg);transition:visibility .25s,opacity .25s,transform .25s}.navbar-nav.navbar-nav-hover .nav-item.dropdown:hover>.dropdown-menu,.navbar-nav.navbar-nav-hover .nav-item.dropdown>.dropdown-menu .dropdown-item.open+.dropdown-menu{animation:none;display:block;opacity:1;pointer-events:auto;transform:translate(0);visibility:visible}.navbar-nav.navbar-nav-hover .nav-item.dropdown>.dropdown-menu .dropdown-item+.dropdown-menu{margin-left:10px}.navbar-nav.navbar-nav-hover .nav-item.dropdown>.dropdown-menu .dropdown-item+.dropdown-menu:before{left:-16px;top:4px}.navbar-nav .dropdown-menu-inner{padding:1rem;position:relative}}.navbar-transparent{background-color:#0000!important;border:0;box-shadow:none;position:absolute;top:0;width:100%;z-index:100}.navbar-transparent .navbar-brand,.navbar-transparent .navbar-toggler{color:#fff}.navbar-transparent .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.95)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.bg-white .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}@media(min-width:768px){.navbar-transparent .navbar-nav .nav-link{color:#fffffff2}.navbar-transparent .navbar-nav .nav-link:focus,.navbar-transparent .navbar-nav .nav-link:hover{color:#ffffffa6}.navbar-transparent .navbar-nav .nav-link.disabled{color:#ffffff40}.navbar-transparent .navbar-nav .active>.nav-link,.navbar-transparent .navbar-nav .nav-link.active,.navbar-transparent .navbar-nav .nav-link.show,.navbar-transparent .navbar-nav .show>.nav-link{color:#ffffffa6}.navbar-transparent .navbar-brand,.navbar-transparent .navbar-brand:focus,.navbar-transparent .navbar-brand:hover{color:#fffffff2}}.navbar-collapse-header{display:none}@media(max-width:991.98px){.navbar-nav .nav-link{color:#172b4d!important;padding:.625rem 0}.navbar-nav .dropdown-menu{box-shadow:none;min-width:auto}.navbar-nav .dropdown-menu .media svg{width:30px}.navbar-collapse{height:auto!important;left:0;margin:.7rem;opacity:0;overflow-y:auto;position:absolute;right:0;top:0;width:calc(100% - 1.4rem);z-index:1050}.navbar-collapse .navbar-toggler{cursor:pointer;display:inline-block;height:20px;padding:0;position:relative;width:20px}.navbar-collapse .navbar-toggler span{background:#283448;border-radius:2px;display:block;height:2px;opacity:1;position:absolute;width:100%}.navbar-collapse .navbar-toggler :first-child{transform:rotate(135deg)}.navbar-collapse .navbar-toggler :nth-child(2){transform:rotate(-135deg)}.navbar-collapse .navbar-collapse-header{border-bottom:1px solid #0000001a;display:block;margin-bottom:1rem;padding-bottom:1rem}.navbar-collapse .collapse-brand img{height:36px}.navbar-collapse .collapse-close{text-align:right}.navbar-collapse.collapsing,.navbar-collapse.show{animation:show-navbar-collapse .2s ease forwards;background:#fff;border-radius:.25rem;box-shadow:0 50px 100px #32325d1a,0 15px 35px #32325d26,0 5px 15px #0000001a;padding:1.5rem}.navbar-collapse.collapsing-out{animation:hide-navbar-collapse .2s ease forwards}}@keyframes show-navbar-collapse{0%{opacity:0;transform:scale(.95);transform-origin:100% 0}to{opacity:1;transform:scale(1)}}@keyframes hide-navbar-collapse{0%{opacity:1;transform:scale(1);transform-origin:100% 0}to{opacity:0;transform:scale(.95)}}@keyframes show-navbar-dropdown{0%{opacity:0;transform:translateY(10px) perspective(200px) rotateX(-2deg);transition:visibility .25s,opacity .25s,transform .25s}to{opacity:1;transform:translate(0)}}@keyframes hide-navbar-dropdown{0%{opacity:1}to{opacity:0;transform:translateY(10px)}}.page-item.active .page-link{box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014}.page-item .page-link,.page-item span{align-items:center;border-radius:50%!important;display:flex;font-size:.875rem;height:36px;justify-content:center;margin:0 3px;padding:0;width:36px}.pagination-lg .page-item .page-link,.pagination-lg .page-item span{height:46px;line-height:46px;width:46px}.pagination-sm .page-item .page-link,.pagination-sm .page-item span{height:30px;line-height:30px;width:30px}.popover{border:0}.popover-header{font-weight:600}.popover-primary{background-color:#5e72e4}.popover-primary .popover-header{background-color:#5e72e4;color:#fff}.popover-primary .popover-body{color:#fff}.popover-primary .popover-header{border-color:#fff3}.popover-primary.bs-popover-auto[x-placement^=top] .arrow:after,.popover-primary.bs-popover-top .arrow:after{border-top-color:#5e72e4}.popover-primary.bs-popover-auto[x-placement^=right] .arrow:after,.popover-primary.bs-popover-right .arrow:after{border-right-color:#5e72e4}.popover-primary.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-primary.bs-popover-bottom .arrow:after{border-bottom-color:#5e72e4}.popover-primary.bs-popover-auto[x-placement^=left] .arrow:after,.popover-primary.bs-popover-left .arrow:after{border-left-color:#5e72e4}.popover-secondary{background-color:#f4f5f7}.popover-secondary .popover-header{background-color:#f4f5f7;color:#212529}.popover-secondary .popover-body{color:#212529}.popover-secondary .popover-header{border-color:#21252933}.popover-secondary.bs-popover-auto[x-placement^=top] .arrow:after,.popover-secondary.bs-popover-top .arrow:after{border-top-color:#f4f5f7}.popover-secondary.bs-popover-auto[x-placement^=right] .arrow:after,.popover-secondary.bs-popover-right .arrow:after{border-right-color:#f4f5f7}.popover-secondary.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-secondary.bs-popover-bottom .arrow:after{border-bottom-color:#f4f5f7}.popover-secondary.bs-popover-auto[x-placement^=left] .arrow:after,.popover-secondary.bs-popover-left .arrow:after{border-left-color:#f4f5f7}.popover-success{background-color:#2dce89}.popover-success .popover-header{background-color:#2dce89;color:#fff}.popover-success .popover-body{color:#fff}.popover-success .popover-header{border-color:#fff3}.popover-success.bs-popover-auto[x-placement^=top] .arrow:after,.popover-success.bs-popover-top .arrow:after{border-top-color:#2dce89}.popover-success.bs-popover-auto[x-placement^=right] .arrow:after,.popover-success.bs-popover-right .arrow:after{border-right-color:#2dce89}.popover-success.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-success.bs-popover-bottom .arrow:after{border-bottom-color:#2dce89}.popover-success.bs-popover-auto[x-placement^=left] .arrow:after,.popover-success.bs-popover-left .arrow:after{border-left-color:#2dce89}.popover-info{background-color:#11cdef}.popover-info .popover-header{background-color:#11cdef;color:#fff}.popover-info .popover-body{color:#fff}.popover-info .popover-header{border-color:#fff3}.popover-info.bs-popover-auto[x-placement^=top] .arrow:after,.popover-info.bs-popover-top .arrow:after{border-top-color:#11cdef}.popover-info.bs-popover-auto[x-placement^=right] .arrow:after,.popover-info.bs-popover-right .arrow:after{border-right-color:#11cdef}.popover-info.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-info.bs-popover-bottom .arrow:after{border-bottom-color:#11cdef}.popover-info.bs-popover-auto[x-placement^=left] .arrow:after,.popover-info.bs-popover-left .arrow:after{border-left-color:#11cdef}.popover-warning{background-color:#fb6340}.popover-warning .popover-header{background-color:#fb6340;color:#fff}.popover-warning .popover-body{color:#fff}.popover-warning .popover-header{border-color:#fff3}.popover-warning.bs-popover-auto[x-placement^=top] .arrow:after,.popover-warning.bs-popover-top .arrow:after{border-top-color:#fb6340}.popover-warning.bs-popover-auto[x-placement^=right] .arrow:after,.popover-warning.bs-popover-right .arrow:after{border-right-color:#fb6340}.popover-warning.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-warning.bs-popover-bottom .arrow:after{border-bottom-color:#fb6340}.popover-warning.bs-popover-auto[x-placement^=left] .arrow:after,.popover-warning.bs-popover-left .arrow:after{border-left-color:#fb6340}.popover-danger{background-color:#f5365c}.popover-danger .popover-header{background-color:#f5365c;color:#fff}.popover-danger .popover-body{color:#fff}.popover-danger .popover-header{border-color:#fff3}.popover-danger.bs-popover-auto[x-placement^=top] .arrow:after,.popover-danger.bs-popover-top .arrow:after{border-top-color:#f5365c}.popover-danger.bs-popover-auto[x-placement^=right] .arrow:after,.popover-danger.bs-popover-right .arrow:after{border-right-color:#f5365c}.popover-danger.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-danger.bs-popover-bottom .arrow:after{border-bottom-color:#f5365c}.popover-danger.bs-popover-auto[x-placement^=left] .arrow:after,.popover-danger.bs-popover-left .arrow:after{border-left-color:#f5365c}.popover-light{background-color:#adb5bd}.popover-light .popover-header{background-color:#adb5bd;color:#fff}.popover-light .popover-body{color:#fff}.popover-light .popover-header{border-color:#fff3}.popover-light.bs-popover-auto[x-placement^=top] .arrow:after,.popover-light.bs-popover-top .arrow:after{border-top-color:#adb5bd}.popover-light.bs-popover-auto[x-placement^=right] .arrow:after,.popover-light.bs-popover-right .arrow:after{border-right-color:#adb5bd}.popover-light.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-light.bs-popover-bottom .arrow:after{border-bottom-color:#adb5bd}.popover-light.bs-popover-auto[x-placement^=left] .arrow:after,.popover-light.bs-popover-left .arrow:after{border-left-color:#adb5bd}.popover-dark{background-color:#212529}.popover-dark .popover-header{background-color:#212529;color:#fff}.popover-dark .popover-body{color:#fff}.popover-dark .popover-header{border-color:#fff3}.popover-dark.bs-popover-auto[x-placement^=top] .arrow:after,.popover-dark.bs-popover-top .arrow:after{border-top-color:#212529}.popover-dark.bs-popover-auto[x-placement^=right] .arrow:after,.popover-dark.bs-popover-right .arrow:after{border-right-color:#212529}.popover-dark.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-dark.bs-popover-bottom .arrow:after{border-bottom-color:#212529}.popover-dark.bs-popover-auto[x-placement^=left] .arrow:after,.popover-dark.bs-popover-left .arrow:after{border-left-color:#212529}.popover-default{background-color:#172b4d}.popover-default .popover-header{background-color:#172b4d;color:#fff}.popover-default .popover-body{color:#fff}.popover-default .popover-header{border-color:#fff3}.popover-default.bs-popover-auto[x-placement^=top] .arrow:after,.popover-default.bs-popover-top .arrow:after{border-top-color:#172b4d}.popover-default.bs-popover-auto[x-placement^=right] .arrow:after,.popover-default.bs-popover-right .arrow:after{border-right-color:#172b4d}.popover-default.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-default.bs-popover-bottom .arrow:after{border-bottom-color:#172b4d}.popover-default.bs-popover-auto[x-placement^=left] .arrow:after,.popover-default.bs-popover-left .arrow:after{border-left-color:#172b4d}.popover-white{background-color:#fff}.popover-white .popover-header{background-color:#fff;color:#212529}.popover-white .popover-body{color:#212529}.popover-white .popover-header{border-color:#21252933}.popover-white.bs-popover-auto[x-placement^=top] .arrow:after,.popover-white.bs-popover-top .arrow:after{border-top-color:#fff}.popover-white.bs-popover-auto[x-placement^=right] .arrow:after,.popover-white.bs-popover-right .arrow:after{border-right-color:#fff}.popover-white.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-white.bs-popover-bottom .arrow:after{border-bottom-color:#fff}.popover-white.bs-popover-auto[x-placement^=left] .arrow:after,.popover-white.bs-popover-left .arrow:after{border-left-color:#fff}.popover-neutral{background-color:#fff}.popover-neutral .popover-header{background-color:#fff;color:#212529}.popover-neutral .popover-body{color:#212529}.popover-neutral .popover-header{border-color:#21252933}.popover-neutral.bs-popover-auto[x-placement^=top] .arrow:after,.popover-neutral.bs-popover-top .arrow:after{border-top-color:#fff}.popover-neutral.bs-popover-auto[x-placement^=right] .arrow:after,.popover-neutral.bs-popover-right .arrow:after{border-right-color:#fff}.popover-neutral.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-neutral.bs-popover-bottom .arrow:after{border-bottom-color:#fff}.popover-neutral.bs-popover-auto[x-placement^=left] .arrow:after,.popover-neutral.bs-popover-left .arrow:after{border-left-color:#fff}.popover-darker{background-color:#000}.popover-darker .popover-header{background-color:#000;color:#fff}.popover-darker .popover-body{color:#fff}.popover-darker .popover-header{border-color:#fff3}.popover-darker.bs-popover-auto[x-placement^=top] .arrow:after,.popover-darker.bs-popover-top .arrow:after{border-top-color:#000}.popover-darker.bs-popover-auto[x-placement^=right] .arrow:after,.popover-darker.bs-popover-right .arrow:after{border-right-color:#000}.popover-darker.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-darker.bs-popover-bottom .arrow:after{border-bottom-color:#000}.popover-darker.bs-popover-auto[x-placement^=left] .arrow:after,.popover-darker.bs-popover-left .arrow:after{border-left-color:#000}.progress-wrapper{padding-top:1.5rem;position:relative}.progress{background-color:#e9ecef;border-radius:.2rem;box-shadow:inset 0 1px 2px #0000001a;height:8px;margin-bottom:1rem;overflow:hidden}.progress .sr-only{clip:auto;font-size:13px;height:20px;left:0;line-height:20px;margin:0 0 0 30px;width:auto}.progress-heading{font-size:14px;font-weight:500;margin:0 0 2px;padding:0}.progress-bar{border-radius:0;box-shadow:none;height:auto}.progress-label span{color:#172b4d;display:inline-block;font-size:.625rem;font-weight:600;padding:.25rem 0;text-transform:uppercase}.progress-percentage{text-align:right}.progress-percentage span{color:#8898aa;display:inline-block;font-size:.875rem;font-weight:600}.index-page .progress-wrapper{padding-top:1rem}.index-page .progress-wrapper .progress-label{bottom:10px;position:absolute;top:auto}.index-page .progress-wrapper .progress{margin-bottom:0}.section{padding-bottom:4rem;padding-top:4rem;position:relative}.section-xl{padding-bottom:8rem;padding-top:8rem}.section-lg{padding-bottom:6rem;padding-top:6rem}.section-sm{padding-bottom:2rem;padding-top:2rem}@media(min-width:768px){.section-hero{min-height:500px}}.section-shaped{overflow:hidden;position:relative}.section-shaped.section-hero:before{top:680px}.section-shaped .stars-and-coded{margin-top:8rem}.section-shaped .shape{height:100%;position:absolute;top:0;width:100%;z-index:-1}.section-shaped .shape span{position:absolute}.section-shaped .shape+.container{height:100%;position:relative}.section-shaped .shape.shape-skew+.container{padding-top:0}.section-shaped .shape.shape-skew+.container .col{margin-top:-100px}.section-shaped .shape.shape-skew+.shape-container{padding-bottom:19rem;padding-top:18rem}.section-shaped .shape-skew{transform:skewY(-4deg);transform-origin:0}.section-shaped .shape-skew span{transform:skew(4deg)}.section-shaped .shape-primary{background:linear-gradient(150deg,#281483 15%,#8f6ed5 70%,#d782d9 94%)}.section-shaped .shape-primary :first-child{background:#53f}.section-shaped .shape-primary :nth-child(2){background:#4553ff}.section-shaped .shape-primary :nth-child(3){background:#4f40ff}.section-shaped .shape-primary :nth-child(4){background:#25ddf5}.section-shaped .shape-primary :nth-child(5){background:#1fa2ff}.section-shaped .shape-default{background:linear-gradient(150deg,#7795f8 15%,#6772e5 70%,#555abf 94%)}.section-shaped .shape-default :first-child{background:#7795f8}.section-shaped .shape-default :nth-child(2){background:#7b9aff}.section-shaped .shape-default :nth-child(3){background:#6f8ff8}.section-shaped .shape-default :nth-child(4){background:#76eea7}.section-shaped .shape-default :nth-child(5){background:#6adaff}.section-shaped .shape-light{background:linear-gradient(150deg,shapes-light-color("step-1-gradient-bg") 15%,shapes-light-color("step-2-gradient-bg") 70%,shapes-light-color("step-3-gradient-bg") 94%)}.section-shaped .shape-light :first-child{background:shapes-light-color("span-1-bg")}.section-shaped .shape-light :nth-child(2){background:shapes-light-color("span-2-bg")}.section-shaped .shape-light :nth-child(3){background:shapes-light-color("span-3-bg")}.section-shaped .shape-light :nth-child(4){background:shapes-light-color("span-4-bg")}.section-shaped .shape-light :nth-child(5){background:shapes-light-color("span-5-bg")}.section-shaped .shape-dark{background:linear-gradient(150deg,#32325d 15%,#32325d 70%,#32325d 94%)}.section-shaped .shape-dark :first-child{background:#2e2e57}.section-shaped .shape-dark :nth-child(2){background:#2b2b58}.section-shaped .shape-dark :nth-child(3){background:#25254d}.section-shaped .shape-dark :nth-child(4){background:#d782d9}.section-shaped .shape-dark :nth-child(5){background:#008169}.section-shaped .shape-style-1 span{border-radius:50%;height:120px;width:120px}.section-shaped .shape-style-1 .span-200{height:200px;width:200px}.section-shaped .shape-style-1 .span-150{height:150px;width:150px}.section-shaped .shape-style-1 .span-100{height:100px;width:100px}.section-shaped .shape-style-1 .span-75{height:75px;width:75px}.section-shaped .shape-style-1 .span-50{height:50px;width:50px}.section-shaped .shape-style-1 :first-child{background:#ffffff1a;bottom:auto;left:-4%}.section-shaped .shape-style-1 :nth-child(2){background:#ffffff1a;right:4%;top:10%}.section-shaped .shape-style-1 :nth-child(3){background:#ffffff4d;right:5.66666%;top:280px}.section-shaped .shape-style-1 :nth-child(4){background:#ffffff26;right:7%;top:320px}.section-shaped .shape-style-1 :nth-child(5){background:#ffffff0d;left:1%;right:auto;top:38%}.section-shaped .shape-style-1 :nth-child(6){background:#ffffff26;height:200px;left:10%;right:auto;top:44%;width:200px}.section-shaped .shape-style-1 :nth-child(7){background:#ffffff0a;bottom:50%;right:36%}.section-shaped .shape-style-1 :nth-child(8){background:#fff3;bottom:70px;right:2%}.section-shaped .shape-style-1 :nth-child(9){background:#ffffff1a;bottom:1%;right:2%}.section-shaped .shape-style-1 :nth-child(10){background:#ffffff0d;bottom:1%;left:1%;right:auto}@media(max-width:991.98px){.section-shaped .shape-style-1 span{height:120px}}@media(max-width:767.98px){.section-shaped .shape-style-1 span{height:90px}}.section-shaped .shape-style-1.shape-primary{background:linear-gradient(150deg,#281483 15%,#8f6ed5 70%,#d782d9 94%)}.section-shaped .shape-style-1.shape-default{background:linear-gradient(150deg,#7795f8 15%,#6772e5 70%,#555abf 94%)}.section-shaped .shape-style-1.shape-light{background:linear-gradient(150deg,shapes-light-color("step-1-gradient-bg") 15%,shapes-light-color("step-2-gradient-bg") 70%,shapes-light-color("step-3-gradient-bg") 94%)}.section-shaped .shape-style-1.shape-dark{background:linear-gradient(150deg,#32325d 15%,#32325d 70%,#32325d 94%)}.section-shaped .shape-style-2 span{height:190px}.section-shaped .shape-style-2 .span-sm{height:100px}.section-shaped .shape-style-2 :first-child{left:-16.66666%;top:0;width:33.33333%}.section-shaped .shape-style-2 :nth-child(2){left:16.66666%;right:auto;top:0;width:33.33333%}.section-shaped .shape-style-2 :nth-child(3){bottom:auto;left:49.99999%;width:33.33333%}.section-shaped .shape-style-2 :nth-child(4){right:-16.66666%;top:55%;width:33.33333%}.section-shaped .shape-style-2 :nth-child(5){bottom:0;width:33.33333%}@media(max-width:991.98px){.section-shaped .shape-style-2 span{height:120px}}@media(max-width:767.98px){.section-shaped .shape-style-2 span{height:90px}}.section-shaped .shape-style-3 span{height:140px}.section-shaped .shape-style-3 .span-sm{height:100px}.section-shaped .shape-style-3 :first-child{bottom:auto;left:-16.66666%;width:66%}.section-shaped .shape-style-3 :nth-child(2){right:-16.66666%;top:54%;width:40%}.section-shaped .shape-style-3 :nth-child(3){left:-16.66666%;right:auto;top:34%;width:33.33333%}.section-shaped .shape-style-3 :nth-child(4){bottom:0;opacity:.6;right:-16.66666%;width:60%}.section-shaped .shape-style-3 :nth-child(5){bottom:0;width:33.33333%}@media(max-width:991.98px){.section-shaped .shape-style-3 span{height:120px}}@media(max-width:767.98px){.section-shaped .shape-style-3 span{height:90px}}.device-ill{display:flex;left:50%;margin-left:-644px;pointer-events:none;position:absolute;transform:scale(.5) rotate(-12deg) translateX(50px);transform-origin:50% 20%;width:1287px;will-change:transform}.device-ill div{align-items:center;background:#fff;border-radius:.25rem;box-shadow:inset 0 4px 7px 1px #fff,inset 0 -5px 20px #adbacc40,0 2px 6px #00154024,0 10px 20px #0015400d;display:flex;justify-content:center;padding:.875rem}.device-ill .tablet-landscape{height:352px;margin:115px 50px 0;width:512px}@media(min-width:670px){.device-ill{flex-wrap:wrap;margin-left:-50px;top:215px;transform:rotate(-12deg);transform-origin:100% 0;width:512px}.device-ill [class^=tablet]{margin:0}.device-ill .tablet-landscape{height:352px;width:512px}}@media(min-width:880px){.device-ill{margin-left:-10px;top:20px;width:829px}.device-ill .tablet-landscape{align-self:flex-end;margin-right:50px}.device-ill .phone-big{display:flex;height:553px;width:267px}}.section-profile-cover{background-position:50%;background-size:cover;height:580px}@media(max-width:991.98px){.section-profile-cover{height:400px}}.section-components>.form-control+.form-control{margin-top:.5rem}.section-components .badge,.section-components .btn,.section-components .btn-group,.section-components>.alert+.alert,.section-components>.nav+.nav,.section-components>.navbar+.navbar,.section-components>.progress+.btn,.section-components>.progress+.progress{margin-bottom:.5rem;margin-top:.5rem}.section-components .alert,.section-components .btn-group .btn{margin:0}.section-components .alert+.alert{margin-top:1.25rem}.section-components .badge{margin-right:.1rem}.section-components .modal-footer .btn{margin:0}.separator{height:150px;left:0;overflow:hidden;right:0;top:auto;transform:translateZ(0);width:100%;z-index:1}.separator,.separator svg{pointer-events:none;position:absolute}.separator-top{bottom:auto;top:0}.separator-top svg{top:0}.separator-bottom{bottom:0;top:auto}.separator-bottom svg{bottom:0}.separator-inverse{transform:rotate(180deg)}.separator-skew{height:80px}@media(max-width:991.98px){.separator-skew{z-index:0}}.mt-md,.my-md{margin-top:4rem!important}.mr-md,.mx-md{margin-right:4rem!important}.mb-md,.my-md{margin-bottom:4rem!important}.ml-md,.mx-md{margin-left:4rem!important}.m-lg{margin:6rem!important}.mt-lg,.my-lg{margin-top:6rem!important}.mr-lg,.mx-lg{margin-right:6rem!important}.mb-lg,.my-lg{margin-bottom:6rem!important}.ml-lg,.mx-lg{margin-left:6rem!important}.m-xl{margin:8rem!important}.mt-xl,.my-xl{margin-top:8rem!important}.mr-xl,.mx-xl{margin-right:8rem!important}.mb-xl,.my-xl{margin-bottom:8rem!important}.ml-xl,.mx-xl{margin-left:8rem!important}.pt-lg,.py-lg{padding-top:6rem!important}.pr-lg,.px-lg{padding-right:6rem!important}.pb-lg,.py-lg{padding-bottom:6rem!important}.pl-lg,.px-lg{padding-left:6rem!important}.p-xl{padding:8rem!important}.pt-xl,.py-xl{padding-top:8rem!important}.pr-xl,.px-xl{padding-right:8rem!important}.pb-xl,.py-xl{padding-bottom:8rem!important}.pl-xl,.px-xl{padding-left:8rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}p{font-size:1rem}.lead,p{font-weight:300;line-height:1.7}.lead{font-size:1.25rem;margin-top:1.5rem}.lead+.btn-wrapper{margin-top:3rem}.description{font-size:.875rem}.heading{font-size:.95rem;font-weight:400;letter-spacing:.025em;text-transform:uppercase}.heading-section,.heading-title{font-size:1.375rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase}.heading-section img{display:block;height:72px;margin-bottom:1.5rem;width:72px}.heading-section.text-center img{margin-left:auto;margin-right:auto}.display-1 span,.display-2 span,.display-3 span,.display-4 span{display:block;font-weight:300}article h4:not(:first-child),article h5:not(:first-child){margin-top:3rem}article h4,article h5{margin-bottom:1.5rem}article figure{margin:3rem 0}article h5+figure{margin-top:0}.flatpickr-calendar{animation:none;background:#0000;background:#fff;border:0;border-radius:5px;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px #00000014;box-sizing:border-box;direction:ltr;display:none;font-size:14px;line-height:24px;opacity:0;padding:0;position:absolute;text-align:center;touch-action:manipulation;visibility:hidden;width:307.875px}.flatpickr-calendar.inline,.flatpickr-calendar.open{max-height:640px;opacity:1;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);box-shadow:0 4px 6px #32325d1c,0 1px 3px #00000014}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{display:block;z-index:999}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{border-top:1px solid #e6e6e6;height:40px}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before{background:#fff;border-radius:.2rem;bottom:100%;box-shadow:none;content:"";display:block;height:16px;left:5px;position:absolute;transform:rotate(-45deg) translateY(1rem);width:16px;z-index:-5}.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{display:inline-block;position:relative}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{fill:#000000e6;background:#0000;color:#000000e6;flex:1 1;height:28px;line-height:1;overflow:hidden;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{fill:#000000e6;color:#000000e6;cursor:pointer;height:28px;line-height:16px;padding:10px;position:absolute;text-decoration:none;top:0;z-index:3}.flatpickr-months .flatpickr-next-month.disabled,.flatpickr-months .flatpickr-prev-month.disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{height:14px;width:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{fill:inherit;transition:fill .1s}.numInputWrapper{height:auto;position:relative}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.numInputWrapper span{border:1px solid #39393926;box-sizing:border-box;cursor:pointer;height:50%;line-height:50%;opacity:0;padding:0 4px 0 2px;position:absolute;right:0;width:14px}.numInputWrapper span:hover{background:#0000001a}.numInputWrapper span:active{background:#0003}.numInputWrapper span:after{content:"";display:block;position:absolute}.numInputWrapper span.arrowUp{border-bottom:0;top:-3px}.numInputWrapper span.arrowUp:after{border-bottom:4px solid #39393999;border-left:4px solid #0000;border-right:4px solid #0000;top:26%}.numInputWrapper span.arrowDown{top:37%}.numInputWrapper span.arrowDown:after{border-left:4px solid #0000;border-right:4px solid #0000;border-top:4px solid #39393999;top:40%}.numInputWrapper span svg{height:auto;width:inherit}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:#0000000d}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{color:inherit;display:inline-block;font-size:135%;font-weight:300;height:28px;left:12.5%;line-height:inherit;line-height:1;line-height:20px;padding:6.16px 0 0;position:absolute;text-align:center;transform:translateZ(0);width:75%}.flatpickr-current-month span.cur-month{color:inherit;display:inline-block;font-family:inherit;font-weight:700;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:#0000000d}.flatpickr-current-month .numInputWrapper{display:inline-block;width:6ch;width:7ch\0}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{-webkit-appearance:textfield;appearance:textfield;background:#0000;border:0;border-radius:0;box-sizing:border-box;color:inherit;cursor:text;display:inline-block;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:0;padding:0 0 0 .5ch;vertical-align:initial}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{background:#0000;color:#00000080;font-size:100%;pointer-events:none}.flatpickr-weekdays{align-items:center;background:#0000;display:flex;height:28px;overflow:hidden;text-align:center;width:100%}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1 1}span.flatpickr-weekday{background:#0000;color:#0000008a;cursor:default;display:block;flex:1 1;font-size:90%;font-weight:bolder;line-height:1;margin:0;text-align:center}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{align-items:flex-start;display:flex;overflow:hidden;position:relative;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{box-sizing:border-box;display:inline-block;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;justify-content:space-around;max-width:307.875px;min-width:307.875px;opacity:1;outline:0;padding:0;text-align:left;transform:translateZ(0);width:307.875px}.dayContainer+.dayContainer{box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid #0000;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;display:inline-block;flex-basis:14.2857143%;font-weight:400;height:39px;justify-content:center;line-height:39px;margin:0;max-width:39px;position:relative;text-align:center;width:14.2857143%}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{background:#e6e6e6;border-color:#e6e6e6;cursor:pointer;outline:0}.flatpickr-day.today{border-color:#959ea9;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014}.flatpickr-day.today:focus,.flatpickr-day.today:hover{background:#959ea9;border-color:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;border-color:#569ff7;box-shadow:none;color:#fff}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.disabled,.flatpickr-day.disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{background:#0000;border-color:#0000;color:#3939394d;cursor:default}.flatpickr-day.disabled,.flatpickr-day.disabled:hover{color:#3939391a;cursor:not-allowed}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{display:inline-block;float:left}.flatpickr-weekwrapper .flatpickr-weeks{box-shadow:1px 0 0 #e6e6e6;padding:0 12px}.flatpickr-weekwrapper .flatpickr-weekday{float:none;line-height:28px;width:100%}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{background:#0000;border:none;color:#3939394d;cursor:default;display:block;max-width:none;width:100%}.flatpickr-innerContainer{box-sizing:border-box;display:block;display:flex;overflow:hidden}.flatpickr-rContainer{box-sizing:border-box;display:inline-block;padding:0}.flatpickr-time{box-sizing:border-box;display:block;display:flex;height:0;line-height:40px;max-height:40px;outline:0;overflow:hidden;text-align:center}.flatpickr-time:after{clear:both;content:"";display:table}.flatpickr-time .numInputWrapper{flex:1 1;float:left;height:40px;width:40%}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{-webkit-appearance:textfield;appearance:textfield;background:#0000;border:0;border-radius:0;box-shadow:none;box-sizing:border-box;color:#393939;font-size:14px;height:inherit;line-height:inherit;margin:0;padding:0;position:relative;text-align:center}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{align-self:center;color:#393939;display:inline-block;float:left;font-weight:700;height:inherit;line-height:inherit;-webkit-user-select:none;user-select:none;width:2%}.flatpickr-time .flatpickr-am-pm{cursor:pointer;font-weight:400;outline:0;text-align:center;width:18%}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}.flatpickr-calendar.open{margin-left:-38px;margin-top:4px}.flatpickr-calendar.arrowBottom{margin-top:-20px}.flatpickr-calendar .flatpickr-innerContainer{margin-top:15px!important}.flatpickr-calendar .numInputWrapper span{border:none;border-bottom:1px solid #39393926}.flatpickr-calendar .numInputWrapper:hover .arrowDown,.flatpickr-calendar .numInputWrapper:hover .arrowUp{margin-top:3px}.flatpickr-calendar .flatpickr-day.endRange,.flatpickr-calendar .flatpickr-day.selected,.flatpickr-calendar .flatpickr-day.startRange,.flatpickr-calendar .flatpickr-day.today{background:#5e72e4!important;border:none;color:#fff}.flatpickr-calendar .flatpickr-day.inRange{background:#5e72e447;border:none;box-shadow:-5px 0 0 #d7dcf8,5px 0 0 #d7dcf8}.flatpickr-calendar .flatpickr-day:not(.selected):focus,.flatpickr-calendar .flatpickr-day:not(.selected):hover{background:#5e72e447;border:none}.flatpickr-calendar .flatpickr-time .flatpickr-am-pm:focus,.flatpickr-calendar .flatpickr-time .flatpickr-am-pm:hover,.flatpickr-calendar .flatpickr-time input:focus,.flatpickr-calendar .flatpickr-time input:hover{background:#5e72e447}.flatpickr.form-control{background:#fff}@keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.datepicker{border-radius:.25rem;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{box-shadow:0 50px 100px #32325d1a,0 15px 35px #32325d26,0 5px 15px #0000001a;left:0;padding:20px 22px;top:0}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{border-bottom:0;border-top:7px solid #fff;bottom:-7px}.datepicker-dropdown.datepicker-orient-top:after{border-bottom:0;border-top:6px solid #fff;bottom:-6px}.datepicker table{-webkit-touch-callout:none;margin:0;-webkit-user-select:none;user-select:none}.datepicker table tr td{border-radius:50%}.datepicker table tr th{border-radius:.25rem;font-weight:500}.datepicker table tr td,.datepicker table tr th{border:none;font-size:.875rem;height:36px;text-align:center;transition:all .15s ease;width:36px}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:#0000}.datepicker table tr td.new,.datepicker table tr td.old{color:#adb5bd}.datepicker table tr td.day:hover,.datepicker table tr td.focused{background:#fff;cursor:pointer}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:none;color:#dee2e6;cursor:default}.datepicker table tr td.highlighted{border-radius:0}.datepicker table tr td.highlighted.focused{background:#5e72e4}.datepicker table tr td.highlighted.disabled,.datepicker table tr td.highlighted.disabled:active{background:#5e72e4;color:#ced4da}.datepicker table tr td.today,.datepicker table tr td.today.focused{background:#fff}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:active{background:#fff;color:#8898aa}.datepicker table tr td.range{background:#5e72e4;border-radius:0;color:#fff}.datepicker table tr td.range.focused{background:#3b53de}.datepicker table tr td.range.day.disabled:hover,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:active{background:#324cdd;color:#8a98eb}.datepicker table tr td.range.highlighted.focused{background:#cbd3da}.datepicker table tr td.range.highlighted.disabled,.datepicker table tr td.range.highlighted.disabled:active{background:#e9ecef;color:#dee2e6}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:active{background:#5e72e4;color:#fff}.datepicker table tr td.day.range-start{border-bottom-right-radius:0;border-top-right-radius:0}.datepicker table tr td.day.range-end{border-bottom-left-radius:0;border-top-left-radius:0}.datepicker table tr td.day.range-start.range-end{border-radius:50%}.datepicker table tr td.day.range:hover,.datepicker table tr td.selected,.datepicker table tr td.selected.highlighted,.datepicker table tr td.selected.highlighted:hover,.datepicker table tr td.selected:hover{background:#5e72e4;color:#fff}.datepicker table tr td.active,.datepicker table tr td.active.highlighted,.datepicker table tr td.active.highlighted:hover,.datepicker table tr td.active:hover{background:#5e72e4;box-shadow:none;color:#fff}.datepicker table tr td span{border-radius:4px;cursor:pointer;display:block;float:left;height:54px;line-height:54px;margin:1%;width:23%}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#e9ecef}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:none;color:#dee2e6;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{text-shadow:0 -1px 0 #00000040}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#8898aa}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#e9ecef}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;padding:0 2px 0 5px;vertical-align:middle;width:12px}.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);box-sizing:border-box;touch-action:none;-webkit-user-select:none;user-select:none}.noUi-target{direction:ltr;position:relative}.noUi-base,.noUi-connects{height:100%;position:relative;width:100%;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{left:0;position:absolute;top:0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-style:flat;will-change:transform;z-index:1}.noUi-connect{height:100%;width:100%}.noUi-origin{height:10%;width:10%}html:not([dir=rtl]) .noUi-horizontal .noUi-origin{left:auto;right:0}.noUi-vertical .noUi-origin{width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.noUi-touch-area{height:100%;width:100%}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal .noUi-handle{height:28px;left:-17px;top:-6px;width:34px}.noUi-vertical .noUi-handle{height:34px;left:-6px;top:-17px;width:28px}html:not([dir=rtl]) .noUi-horizontal .noUi-handle{left:auto;right:-17px}.noUi-connects{border-radius:3px}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{background:#fff;border:1px solid #d9d9d9;border-radius:3px;box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ebebeb,0 3px 6px -3px #bbb;cursor:default;outline:none}.noUi-active{outline:none}[disabled] .noUi-connect{background:#b8b8b8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{box-sizing:border-box}.noUi-pips{color:#999;position:absolute}.noUi-value{position:absolute;text-align:center;white-space:nowrap}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{background:#ccc;position:absolute}.noUi-marker-large,.noUi-marker-sub{background:#aaa}.noUi-pips-horizontal{height:80px;left:0;padding:10px 0;top:100%;width:100%}.noUi-value-horizontal{transform:translate(-50%,50%)}.noUi-rtl .noUi-value-horizontal{transform:translate(50%,50%)}.noUi-marker-horizontal.noUi-marker{height:5px;margin-left:-1px;width:2px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{height:100%;left:100%;padding:0 10px;top:0}.noUi-value-vertical{padding-left:25px;transform:translate(0,-50%,0)}.noUi-rtl .noUi-value-vertical{transform:translateY(50%)}.noUi-marker-vertical.noUi-marker{height:2px;margin-top:-1px;width:5px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{background:#fff;border:1px solid #d9d9d9;border-radius:3px;color:#000;display:block;padding:5px;position:absolute;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{bottom:120%;left:50%;transform:translate(-50%)}.noUi-vertical .noUi-tooltip{right:120%;top:50%;transform:translateY(-50%)}.noUi-target{background:#eceeef;border:0;border-radius:5px;box-shadow:inset 0 1px 2px #5a61691a;cursor:pointer;margin:15px 0}.noUi-horizontal{height:5px}html:not([dir=rtl]) .noUi-horizontal .noUi-handle{right:-10px}.noUi-vertical{width:5px}.noUi-connect{background:#5e72e4;box-shadow:none}.noUi-horizontal .noUi-handle,.noUi-vertical .noUi-handle{background-color:#5e72e4;border:0;border-radius:100%;box-shadow:none;cursor:pointer;height:15px;top:-5px;transition:box-shadow .15s,transform .15s;width:15px}.noUi-horizontal .noUi-handle.noUi-active,.noUi-vertical .noUi-handle.noUi-active{transform:scale(1.2)}.input-slider--cyan .noUi-connect{background:#2bffc6}.input-slider--cyan.noUi-horizontal .noUi-handle,.input-slider--cyan.noUi-vertical .noUi-handle{background-color:#2bffc6}.input-slider--red .noUi-connect{background:#f5365c}.input-slider--red.noUi-horizontal .noUi-handle,.input-slider--red.noUi-vertical .noUi-handle{background-color:#f5365c}.input-slider--green .noUi-connect{background:#2dce89}.input-slider--green.noUi-horizontal .noUi-handle,.input-slider--green.noUi-vertical .noUi-handle{background-color:#2dce89}.input-slider--yellow .noUi-connect{background:#ffd600}.input-slider--yellow.noUi-horizontal .noUi-handle,.input-slider--yellow.noUi-vertical .noUi-handle{background-color:#ffd600}.input-slider--pink .noUi-connect{background:#f3a4b5}.input-slider--pink.noUi-horizontal .noUi-handle,.input-slider--pink.noUi-vertical .noUi-handle{background-color:#f3a4b5}[disabled] .noUi-connect,[disabled].noUi-connect{background:#b2b2b2}[disabled] .noUi-handle,[disabled].noUi-origin{cursor:not-allowed}.range-slider-value{background-color:#212529b3;border-radius:10px;color:#fff;font-size:.75rem;font-weight:500;padding:.4em .8em .3em .85em}.range-slider-wrapper .upper-info{font-weight:400;margin-bottom:5px}.input-slider-value-output{background:#333;border-radius:2px;color:#fff;font-size:11px;padding:4px 8px;position:relative;top:12px}.input-slider-value-output:after{border:4px solid #88b7d500;border-bottom-color:#333;bottom:100%;content:" ";height:0;left:10px;margin-left:-4px;pointer-events:none;position:absolute;width:0}.input-slider-value-output.left:after{left:10px;right:auto}.input-slider-value-output.right:after{left:auto;right:10px}.headroom{background-color:inherit;transition:all .15s ease;will-change:transform}@media(prefers-reduced-motion:reduce){.headroom{transition:none}}.headroom--pinned{transform:translateY(0)}.headroom--unpinned{transform:translateY(-100%)}.headroom--not-top{background-color:#172b4d!important;box-shadow:0 1px 10px #8282861a;padding-bottom:.5rem;padding-top:.5rem}.ct-clipboard{display:none;float:right;position:relative}.ct-clipboard+.highlight{margin-top:0}.btn-clipboard{background-color:#0000;background-color:#5e72e4;border:0;border-radius:.25rem;color:#fff;cursor:pointer;display:block;font-size:75%;padding:.25rem .5rem;position:absolute;right:1rem;top:1rem;z-index:10}.btn-clipboard:hover{background-color:#324cdd;color:#fff}@media(min-width:768px){.ct-clipboard{display:block}}.ct-example-row .row>.col span,.ct-example-row .row>[class^=col-] span{background-color:#fff;border-radius:.25rem;box-shadow:0 0 0 1px #0000001a,0 4px 16px #0000001a;color:#393f49;display:block;font-size:.875rem;margin:1rem 0;padding:.75rem}.ct-example-row .no-gutters>.col span,.ct-example-row .no-gutters>[class^=col-] span{border-radius:0}.ct-example-row .flex-items-bottom,.ct-example-row .flex-items-middle,.ct-example-row .flex-items-top{background-color:#ff00001a;min-height:6rem}.ct-example-row-flex-cols .row{background-color:#ff00001a;min-height:10rem}.ct-example-row-flex-cols .row+.row{margin-top:1rem}.ct-highlight{background-color:#5e72e426;border:1px solid #5e72e426}.example-container{margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;width:800px;width:100%}.example-row{display:flex;flex-wrap:wrap;margin-left:-15px;margin-right:-15px}.example-content-main{padding-left:15px;padding-right:15px;position:relative;width:100%}@media(min-width:576px){.example-content-main{flex:0 0 50%;max-width:50%}}@media(min-width:992px){.example-content-main{flex:0 0 66.66666667%;max-width:66.66666667%}}.example-content-secondary{padding-left:15px;padding-right:15px;position:relative;width:100%}@media(min-width:576px){.example-content-secondary{flex:0 0 50%;max-width:50%}}@media(min-width:992px){.example-content-secondary{flex:0 0 33.33333333%;max-width:33.33333333%}}.ct-example-container{margin-left:auto;margin-right:auto;max-width:25rem;min-width:16rem}.ct-example-container-header{background-color:#fff;border-radius:.25rem;height:3rem;margin-bottom:.5rem}.ct-example-container-sidebar{float:right;width:4rem}.ct-example-container-body,.ct-example-container-sidebar{background-color:#cbd2f6;border-radius:.25rem;height:8rem}.ct-example-container-body{margin-right:4.5rem}.ct-example-container-fluid{max-width:none}.ct-example{margin:1rem -15px 0;position:relative}.ct-example:after{clear:both;content:"";display:block}@media(min-width:576px){.ct-example{margin-left:0;margin-right:0}}.ct-example+.clipboard+.highlight,.ct-example+.highlight{margin-top:0}.ct-example+p{margin-top:2rem}.ct-example .pos-f-t{margin:-1rem;position:relative}@media(min-width:576px){.ct-example .pos-f-t{margin:-1.5rem}}.ct-example .custom-file-input:lang(es)~.custom-file-label:after{content:"Elegir"}.ct-example>.form-control+.form-control{margin-top:.5rem}.ct-example .badge,.ct-example .btn,.ct-example .btn-group,.ct-example>.alert+.alert,.ct-example>.nav+.nav,.ct-example>.navbar+.navbar,.ct-example>.progress+.btn,.ct-example>.progress+.progress{margin-bottom:.5rem;margin-top:.5rem}.ct-example .alert,.ct-example .btn-group .btn{margin:0}.ct-example .alert+.alert{margin-top:1.25rem}.ct-example .badge{margin-right:.5rem}.ct-example>.dropdown-menu:first-child{display:block;position:static}.ct-example>.form-group:last-child{margin-bottom:0}.ct-example>.close{float:none}.ct-example-type .table .type-info{color:#999;vertical-align:middle}.ct-example-type .table td{border-color:#eee;padding:1rem 0}.ct-example-type .table tr:first-child td{border-top:0}.ct-example-type h1,.ct-example-type h2,.ct-example-type h3,.ct-example-type h4,.ct-example-type h5,.ct-example-type h6{margin-bottom:0;margin-top:0}.ct-example-bg-classes p{padding:1rem}.ct-example>img+img{margin-left:.5rem}.ct-example>.btn-group{margin-bottom:.25rem;margin-top:.25rem}.ct-example-control-sizing input[type=text]+input[type=text],.ct-example-control-sizing select,.ct-example>.btn-toolbar+.btn-toolbar{margin-top:.5rem}.ct-example-form .input-group{margin-bottom:.5rem}.ct-example>textarea.form-control{resize:vertical}.ct-example>.list-group{max-width:400px}.ct-example .fixed-top,.ct-example .sticky-top{margin:-1rem -1rem 1rem;position:static}.ct-example .fixed-bottom{margin:1rem -1rem -1rem;position:static}@media(min-width:576px){.ct-example .fixed-top,.ct-example .sticky-top{margin:-1.5rem -1.5rem 1rem}.ct-example .fixed-bottom{margin:1rem -1.5rem -1.5rem}}.ct-example .pagination{margin-bottom:.5rem;margin-top:.5rem}.modal{z-index:1072}.modal .popover,.modal .tooltip{z-index:1073}.modal-backdrop{z-index:1071}.ct-example-modal{background-color:#fafafa}.ct-example-modal .modal{bottom:auto;display:block;left:auto;position:relative;right:auto;top:auto;z-index:1}.ct-example-modal .modal-dialog{left:auto;margin-left:auto;margin-right:auto}.ct-example-tabs .nav-tabs{margin-bottom:1rem}.ct-example-popover-static{background-color:#f9f9f9;padding-bottom:1.5rem}.ct-example-popover-static .popover{display:block;float:left;margin:1.25rem;position:relative;width:260px}.tooltip-demo a{white-space:nowrap}.ct-example-tooltip-static .tooltip{display:inline-block;margin:10px 20px;opacity:1;position:relative}.scrollspy-example{height:200px;margin-top:.5rem;overflow:auto;position:relative}.scrollspy-example-2{height:350px;overflow:auto;position:relative}.ct-example-border-utils [class^=border]{background-color:#f5f5f5;display:inline-block;height:5rem;margin:.25rem;width:5rem}.ct-example-border-utils-0 [class^=border]{border:1px solid #e9ecef}.highlight{-ms-overflow-style:-ms-autohiding-scrollbar;margin-top:1rem;padding:0}@media(min-width:576px){.highlight{padding:0}}.ct-content .highlight{margin-left:-15px;margin-right:-15px}@media(min-width:576px){.ct-content .highlight{margin-left:0;margin-right:0}}.ct-example{border-bottom:1px solid #e9ecef;margin-bottom:2rem;padding-bottom:2rem}.ct-example .tab-content .tab-example-result{background-color:#f5f7f9;border:1px solid #e6ecf1;border-radius:.25rem;padding:1.25rem}.ct-example .nav-tabs-code{margin-bottom:.375rem}.ct-example .nav-tabs-code .nav-link{font-size:.875rem}.ct-example .nav-tabs-code .nav-link.active,.ct-example .nav-tabs-code .nav-link:active{color:#5e72e4}.icon-examples{margin-top:1rem}.btn-icon-clipboard{-moz-appearance:none;background-color:#f8f9fa;border:0;border-radius:4px;color:#393f49;cursor:pointer;display:inline-block;font-family:inherit;font-size:16px;font-weight:400;line-height:1.25;margin:.5rem 0;padding:24px;text-align:left;text-decoration:none;vertical-align:middle;width:100%}.btn-icon-clipboard:hover{background-color:#fff;box-shadow:0 0 0 1px #0000001a,0 4px 16px #0000001a}.btn-icon-clipboard>div{align-items:center;display:flex}.btn-icon-clipboard i{box-sizing:initial;color:#393f49;font-size:1.5rem;vertical-align:middle}.btn-icon-clipboard span{color:#393f49;display:inline-block;font-size:.875rem;line-height:1.5;margin-left:16px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.docs{background:#fff}.docs h6{font-size:1rem;font-weight:600}.ct-content{order:1}.ct-content>h2[id],.ct-content>h3[id],.ct-content>h4[id]{pointer-events:none}.ct-content>h2[id]>a,.ct-content>h2[id]>div,.ct-content>h3[id]>a,.ct-content>h3[id]>div,.ct-content>h4[id]>a,.ct-content>h4[id]>div{pointer-events:auto}.ct-content>h2[id]:before,.ct-content>h3[id]:before,.ct-content>h4[id]:before{content:"";display:block;height:6rem;margin-top:-6rem;visibility:hidden}.ct-content>table{margin-bottom:1rem;max-width:100%;width:100%}@media(max-width:991.98px){.ct-content>table{-ms-overflow-style:-ms-autohiding-scrollbar;display:block;overflow-x:auto}.ct-content>table.table-bordered{border:0}}.ct-content>table>tbody>tr>td,.ct-content>table>tbody>tr>th,.ct-content>table>tfoot>tr>td,.ct-content>table>tfoot>tr>th,.ct-content>table>thead>tr>td,.ct-content>table>thead>tr>th{border:1px solid #dee2e6;padding:1rem;vertical-align:top}.ct-content>table>tbody>tr>td>p:last-child,.ct-content>table>tbody>tr>th>p:last-child,.ct-content>table>tfoot>tr>td>p:last-child,.ct-content>table>tfoot>tr>th>p:last-child,.ct-content>table>thead>tr>td>p:last-child,.ct-content>table>thead>tr>th>p:last-child{margin-bottom:0}.ct-content>table td:first-child>code{white-space:nowrap}.ct-content>h2:not(:first-child){font-size:1.5rem;font-weight:600;margin-top:3rem}.ct-content>h3{font-size:1.25rem;font-weight:600;margin-top:2.5rem}.ct-content>ol li,.ct-content>ul li{margin-bottom:.25rem}@media(min-width:992px){.ct-content>ol,.ct-content>p,.ct-content>ul{max-width:80%}}.ct-page-title{border-left:2px solid #5e72e4;margin-bottom:1.5rem;padding-left:1.25rem}.ct-title{font-weight:300;margin-bottom:.5rem;margin-top:1rem}@media(min-width:576px){.ct-title{font-size:1.5rem;font-weight:600}}.ct-lead{color:#3b454e;font-weight:500}@media(min-width:576px){.ct-lead{font-size:.875rem;margin-bottom:1rem;max-width:80%}}.ct-text-purple{color:#5e72e4}.ct-text-purple-bright{color:#9da9f2}.ct-tabs-example .nav-link i{margin-right:5px}.color-swatch{background-color:#f4f5f7;border-radius:.25rem;margin:1rem 0}.color-swatch:after{clear:both;content:" ";display:table}.color-swatch-header{border:1px solid #0000;border-radius:.25rem .25rem 0 0;height:0;padding-bottom:50%;position:relative}.color-swatch-header.is-light{border-color:#c1c7d0}.color-swatch-header .pass-fail{bottom:0;position:absolute;width:100%}.color-swatch-header .pass-fail-item-wrap{float:left;left:50%;position:relative;transform:translateX(-50%)}.color-swatch-header .pass-fail-item-group{display:inline-block;padding:0 5px}.color-swatch-header .pass-fail-item{display:inline-block;float:left;padding:2px;text-align:center}.color-swatch-header .pass-fail-item.white .example{color:#fff}.color-swatch-header .pass-fail-item.small .example{font-size:10px}.color-swatch-header .pass-fail-item .lozenge{background:#000;border-radius:4px;color:#fff;font-size:11px;font-weight:600;letter-spacing:.05em;line-height:10px;padding:2px 4px;text-transform:uppercase}.color-swatch-body{float:left;left:50%;padding:10px 0;position:relative;transform:translateX(-50%)}.color-swatch-body .prop-item-wrap{float:left;min-width:65px;padding:0 15px}.color-swatch-body .prop-item{padding:15px 0}.color-swatch-body .prop-item .label{color:#62748c;font-size:11px;line-height:16px;text-transform:uppercase}.color-swatch-body .prop-item .value{font-size:14px}.table-colors{font-size:16px;font-weight:600;width:100%}.table-colors td,.table-colors td:first-child,.table-colors td:last-child,.table-colors:first-child td,.table-colors:first-child td:first-child,.table-colors:first-child td:last-child{background:#ffffffe6;border-bottom:1px solid #0000001a;padding:10px}.table-colors tr:last-child td,.table-colors:first-child tr:last-child td{border-bottom:none}.table-colors td:first-child,.table-colors:first-child td:first-child{line-height:40px}.table-colors .swatch,.table-colors:first-child .swatch{border:1px solid #0000;border-radius:4px;display:inline-block;float:left;height:40px;margin-right:20px;width:40px}.table-colors .swatch.is-light,.table-colors:first-child .swatch.is-light{border-color:#c1c7d0}.table-colors .lozenge,.table-colors:first-child .lozenge{background:#97a0af;border-radius:4px;color:#042a53;display:inline-block;float:left;font-size:10px;font-weight:600;letter-spacing:.05em;line-height:10px;margin:5px 10px 0 0;padding:2px 4px;text-transform:uppercase}#tags-component.tab-pane .choices__inner{height:60px}.highlight pre{background:#f5f7ff;border-radius:.25rem;color:#5e6687;direction:ltr;font-family:Consolas,Menlo,Monaco,Andale Mono WT,Andale Mono,Lucida Console,Lucida Sans Typewriter,DejaVu Sans Mono,Bitstream Vera Sans Mono,Liberation Mono,Nimbus Mono L,Courier New,Courier,monospace;font-size:14px;-webkit-hyphens:none;hyphens:none;-ms-hyphens:none;line-height:1.375;margin:0;overflow:auto;padding:1.25rem;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}.highlight pre code{color:#5e6687;font-size:87.5%;word-break:break-word}.highlight pre pre code{color:inherit;font-size:inherit;word-break:normal}.highlight pre code,.highlight pre kbd,.highlight pre pre,.highlight pre samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}.highlight pre .nt{color:#3d8fd1}.highlight pre .na{color:#c76b29}.highlight pre .s,.highlight pre .token.control,.highlight pre .token.directive,.highlight pre .token.keyword,.highlight pre .token.unit{color:#ac9739}.highlight pre .token.punctuation{color:#5e6687}.btn-clipboard{top:3.5rem}.offline-doc .page-header{align-items:center;display:flex;height:100vh;justify-content:center}.ct-footer{background-color:#f7f7f7;font-size:85%;text-align:center}.ct-footer a{color:#525f7f;font-weight:500}.ct-footer a:focus,.ct-footer a:hover{color:#5e72e4}.ct-footer p{margin-bottom:0}@media(min-width:576px){.ct-footer{text-align:left}}.ct-footer-links{margin-bottom:1rem;padding-left:0}.ct-footer-links li{display:inline-block}.ct-footer-links li+li{margin-left:1rem}.ct-navbar{background-color:#5e72e4;box-shadow:0 1px 1px 0 #74818d1a;padding-bottom:.5rem;padding-top:.5rem}@media(max-width:991.98px){.ct-navbar{padding-left:.5rem;padding-right:.5rem}.ct-navbar .navbar-nav-scroll{font-size:.875rem;height:2.5rem;margin-top:.25rem;max-width:100%;overflow:hidden}.ct-navbar .navbar-nav-scroll .navbar-nav{-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:2rem;white-space:nowrap}}@media(min-width:768px){@supports((position:-webkit-sticky) or (position:sticky)){.ct-navbar{position:-webkit-sticky;position:sticky;top:0;z-index:1071}}}.ct-navbar .navbar-nav .nav-link{color:#ffffffe6!important;padding-left:.5rem;padding-right:.5rem}.ct-navbar .navbar-nav .nav-link.active,.ct-navbar .navbar-nav .nav-link:hover{background-color:#0000!important;color:#fff!important}.ct-navbar .navbar-nav .nav-link.active{font-weight:500}.ct-navbar .navbar-nav-svg{display:inline-block;height:1rem;vertical-align:text-top;width:1rem}.ct-navbar .dropdown-menu{font-size:.875rem}.ct-navbar .dropdown-item.active{background-color:#0000;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3E%3Cpath fill=%27%23292b2c%27 d=%27M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3E%3C/svg%3E");background-position:.4rem .87rem;background-repeat:no-repeat;background-size:.75rem .75rem;color:#212529;font-weight:500;padding-left:25px}.github-corner{position:fixed;right:0;z-index:1080}.github-corner:hover .octo-arm{animation:octocat-wave .56s ease-in-out}.github-corner svg{fill:#fff;color:#5e72e4}@keyframes octocat-wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}code[class*=language-],pre[class*=language-]{background:#f5f7ff;border-radius:.25rem;color:#5e6687;direction:ltr;font-family:Consolas,Menlo,Monaco,Andale Mono WT,Andale Mono,Lucida Console,Lucida Sans Typewriter,DejaVu Sans Mono,Bitstream Vera Sans Mono,Liberation Mono,Nimbus Mono L,Courier New,Courier,monospace;font-size:14px;-webkit-hyphens:none;hyphens:none;line-height:1.375;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{background:#dfe2f1;text-shadow:none}pre[class*=language-]{margin:0;overflow:auto;padding:1.25rem}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#898ea4}.token.punctuation{color:#5e6687}.token.namespace{opacity:.7}.token.boolean,.token.number,.token.operator{color:#c76b29}.token.property{color:#c08b30}.token.tag{color:#3d8fd1}.token.string{color:#22a2c9}.token.selector{color:#6679cc}.token.attr-name{color:#c76b29}.language-css .token.string,.style .token.string,.token.entity,.token.url{color:#22a2c9}.token.attr-value,.token.control,.token.directive,.token.keyword,.token.unit{color:#ac9739}.token.atrule,.token.regex,.token.statement{color:#22a2c9}.token.placeholder,.token.variable{color:#3d8fd1}.token.deleted{text-decoration:line-through}.token.inserted{border-bottom:1px dotted #202746;text-decoration:none}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.important{color:#c94922}.token.entity{cursor:help}pre>code.highlight{outline:.4em solid #c94922;outline-offset:.4em}.line-numbers .line-numbers-rows{border-right-color:#dfe2f1}.line-numbers-rows>span:before{color:#979db4}.line-highlight{background:#6b739433;background:linear-gradient(90deg,#6b739433 70%,#6b739400)}.ct-toc{font-size:.875rem;order:2;padding-bottom:1.5rem;padding-top:2rem}@supports((position:-webkit-sticky) or (position:sticky)){.ct-toc{height:calc(100vh - 4rem);overflow-y:auto;position:-webkit-sticky;position:sticky;top:4rem}}.section-nav{border-left:1px solid #eee;padding-left:0}.section-nav ul{padding-left:1rem}.section-nav ul ul{display:none}.toc-entry{display:block;font-size:1rem}.toc-entry a{color:#99979c;display:block;font-size:90%;padding:.125rem 1.5rem}.toc-entry a:hover{color:#5e72e4;text-decoration:none}.ct-sidebar{background-color:#f5f7f9;border-bottom:1px solid #e6ecf1;order:0}@media(min-width:768px){.ct-sidebar{border-right:1px solid #e6ecf1}@supports((position:-webkit-sticky) or (position:sticky)){.ct-sidebar{height:calc(100vh - 4rem);position:-webkit-sticky;position:sticky;top:4rem;z-index:1000}}}@media(min-width:1200px){.ct-sidebar{flex:0 1 320px}}.ct-links{margin-left:-15px;margin-right:-15px;padding-bottom:1rem;padding-top:2rem}@media(min-width:768px){@supports((position:-webkit-sticky) or (position:sticky)){.ct-links{max-height:calc(100vh - 5rem);overflow-y:auto}}}@media(min-width:768px){.ct-links{display:block!important}}.ct-search{border-bottom:1px solid #0000000d;margin-left:-15px;margin-right:-15px;padding:1rem 15px;position:relative}.ct-search .form-control:focus{border-color:#9da9f2;box-shadow:0 0 0 3px #9da9f240}.ct-search-docs-toggle{color:#212529;line-height:1}.ct-sidenav{display:none}.ct-toc-link{color:#0d2b3e;display:block;font-size:.875rem;font-weight:600;padding:.25rem 1.5rem}.ct-toc-link:hover{color:#000000d9;text-decoration:none}.ct-toc-item.active{margin-bottom:1rem}.ct-toc-item.active:not(:first-child){margin-top:1rem}.ct-toc-item.active>.ct-toc-link{color:#000000d9}.ct-toc-item.active>.ct-toc-link:hover{background-color:#0000}.ct-toc-item.active>.ct-sidenav{display:block}.ct-sidebar .nav>li>a{color:#4c555a;display:block;font-size:84%;padding:.25rem 1.5rem}.ct-sidebar .nav>li>a:hover{background-color:#0000;color:#000000d9;text-decoration:none}.ct-sidebar .nav>.active>a{background-color:#0000;color:#0099e5;font-weight:500;padding-left:2rem;position:relative}.ct-sidebar .nav>.active>a:before{background-color:#0099e5;content:"";height:16px;left:1.5rem;position:absolute;top:50%;transform:translateY(-50%);width:2px}.ct-sidebar .nav>.active:hover>a{color:#0099e5}.scrollbar-inner{height:100%}.scrollbar-inner:not(:hover) .scroll-element{opacity:0}.scrollbar-inner .scroll-element{margin-right:2px;transition:opacity .3s}.scrollbar-inner .scroll-element .scroll-bar,.scrollbar-inner .scroll-element .scroll-element_track{transition:background-color .3s}.scrollbar-inner .scroll-element .scroll-element_track{background-color:#0000}.scrollbar-inner .scroll-element.scroll-y{right:0;width:3px}.scrollbar-inner .scroll-element.scroll-x{bottom:0;height:3px}/*! + +========================================================= +* Argon Design System React - v1.1.2 based on Argon Design System - v1.0.1 +========================================================= + +* Product Page: https://www.creative-tim.com/product/argon-design-system-react +* Copyright 2023 Creative Tim (https://www.creative-tim.com) +* Licensed under MIT (https://github.com/creativetimofficial/argon-design-system-react/blob/master/LICENSE.md) + +* Coded by www.creative-tim.com + +========================================================= + +* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +*/@media(max-width:991.98px){.dropdown-menu.show{left:0!important;position:static!important;top:100%!important;transform:none!important;will-change:auto!important}}:focus{outline:none}.navbar .collapsing .navbar-toggler{pointer-events:none}.popover-primary .popover{background-color:#5e72e4}.popover-primary .popover .popover-header{background-color:#5e72e4;color:#fff}.popover-primary .popover .popover-body{color:#fff}.popover-primary .popover .popover-header{border-color:#fff3}.popover-primary .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-primary .popover.bs-popover-top .arrow:after{border-top-color:#5e72e4}.popover-primary .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-primary .popover.bs-popover-right .arrow:after{border-right-color:#5e72e4}.popover-primary .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-primary .popover.bs-popover-bottom .arrow:after{border-bottom-color:#5e72e4}.popover-primary .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-primary .popover.bs-popover-left .arrow:after{border-left-color:#5e72e4}.popover-secondary .popover{background-color:#f4f5f7}.popover-secondary .popover .popover-header{background-color:#f4f5f7;color:#212529}.popover-secondary .popover .popover-body{color:#212529}.popover-secondary .popover .popover-header{border-color:#21252933}.popover-secondary .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-secondary .popover.bs-popover-top .arrow:after{border-top-color:#f4f5f7}.popover-secondary .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-secondary .popover.bs-popover-right .arrow:after{border-right-color:#f4f5f7}.popover-secondary .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-secondary .popover.bs-popover-bottom .arrow:after{border-bottom-color:#f4f5f7}.popover-secondary .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-secondary .popover.bs-popover-left .arrow:after{border-left-color:#f4f5f7}.popover-success .popover{background-color:#2dce89}.popover-success .popover .popover-header{background-color:#2dce89;color:#fff}.popover-success .popover .popover-body{color:#fff}.popover-success .popover .popover-header{border-color:#fff3}.popover-success .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-success .popover.bs-popover-top .arrow:after{border-top-color:#2dce89}.popover-success .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-success .popover.bs-popover-right .arrow:after{border-right-color:#2dce89}.popover-success .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-success .popover.bs-popover-bottom .arrow:after{border-bottom-color:#2dce89}.popover-success .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-success .popover.bs-popover-left .arrow:after{border-left-color:#2dce89}.popover-info .popover{background-color:#11cdef}.popover-info .popover .popover-header{background-color:#11cdef;color:#fff}.popover-info .popover .popover-body{color:#fff}.popover-info .popover .popover-header{border-color:#fff3}.popover-info .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-info .popover.bs-popover-top .arrow:after{border-top-color:#11cdef}.popover-info .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-info .popover.bs-popover-right .arrow:after{border-right-color:#11cdef}.popover-info .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-info .popover.bs-popover-bottom .arrow:after{border-bottom-color:#11cdef}.popover-info .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-info .popover.bs-popover-left .arrow:after{border-left-color:#11cdef}.popover-warning .popover{background-color:#fb6340}.popover-warning .popover .popover-header{background-color:#fb6340;color:#fff}.popover-warning .popover .popover-body{color:#fff}.popover-warning .popover .popover-header{border-color:#fff3}.popover-warning .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-warning .popover.bs-popover-top .arrow:after{border-top-color:#fb6340}.popover-warning .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-warning .popover.bs-popover-right .arrow:after{border-right-color:#fb6340}.popover-warning .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-warning .popover.bs-popover-bottom .arrow:after{border-bottom-color:#fb6340}.popover-warning .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-warning .popover.bs-popover-left .arrow:after{border-left-color:#fb6340}.popover-danger .popover{background-color:#f5365c}.popover-danger .popover .popover-header{background-color:#f5365c;color:#fff}.popover-danger .popover .popover-body{color:#fff}.popover-danger .popover .popover-header{border-color:#fff3}.popover-danger .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-danger .popover.bs-popover-top .arrow:after{border-top-color:#f5365c}.popover-danger .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-danger .popover.bs-popover-right .arrow:after{border-right-color:#f5365c}.popover-danger .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-danger .popover.bs-popover-bottom .arrow:after{border-bottom-color:#f5365c}.popover-danger .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-danger .popover.bs-popover-left .arrow:after{border-left-color:#f5365c}.popover-light .popover{background-color:#adb5bd}.popover-light .popover .popover-header{background-color:#adb5bd;color:#fff}.popover-light .popover .popover-body{color:#fff}.popover-light .popover .popover-header{border-color:#fff3}.popover-light .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-light .popover.bs-popover-top .arrow:after{border-top-color:#adb5bd}.popover-light .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-light .popover.bs-popover-right .arrow:after{border-right-color:#adb5bd}.popover-light .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-light .popover.bs-popover-bottom .arrow:after{border-bottom-color:#adb5bd}.popover-light .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-light .popover.bs-popover-left .arrow:after{border-left-color:#adb5bd}.popover-dark .popover{background-color:#212529}.popover-dark .popover .popover-header{background-color:#212529;color:#fff}.popover-dark .popover .popover-body{color:#fff}.popover-dark .popover .popover-header{border-color:#fff3}.popover-dark .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-dark .popover.bs-popover-top .arrow:after{border-top-color:#212529}.popover-dark .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-dark .popover.bs-popover-right .arrow:after{border-right-color:#212529}.popover-dark .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-dark .popover.bs-popover-bottom .arrow:after{border-bottom-color:#212529}.popover-dark .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-dark .popover.bs-popover-left .arrow:after{border-left-color:#212529}.popover-default .popover{background-color:#172b4d}.popover-default .popover .popover-header{background-color:#172b4d;color:#fff}.popover-default .popover .popover-body{color:#fff}.popover-default .popover .popover-header{border-color:#fff3}.popover-default .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-default .popover.bs-popover-top .arrow:after{border-top-color:#172b4d}.popover-default .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-default .popover.bs-popover-right .arrow:after{border-right-color:#172b4d}.popover-default .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-default .popover.bs-popover-bottom .arrow:after{border-bottom-color:#172b4d}.popover-default .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-default .popover.bs-popover-left .arrow:after{border-left-color:#172b4d}.popover-white .popover{background-color:#fff}.popover-white .popover .popover-header{background-color:#fff;color:#212529}.popover-white .popover .popover-body{color:#212529}.popover-white .popover .popover-header{border-color:#21252933}.popover-white .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-white .popover.bs-popover-top .arrow:after{border-top-color:#fff}.popover-white .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-white .popover.bs-popover-right .arrow:after{border-right-color:#fff}.popover-white .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-white .popover.bs-popover-bottom .arrow:after{border-bottom-color:#fff}.popover-white .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-white .popover.bs-popover-left .arrow:after{border-left-color:#fff}.popover-neutral .popover{background-color:#fff}.popover-neutral .popover .popover-header{background-color:#fff;color:#212529}.popover-neutral .popover .popover-body{color:#212529}.popover-neutral .popover .popover-header{border-color:#21252933}.popover-neutral .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-neutral .popover.bs-popover-top .arrow:after{border-top-color:#fff}.popover-neutral .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-neutral .popover.bs-popover-right .arrow:after{border-right-color:#fff}.popover-neutral .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-neutral .popover.bs-popover-bottom .arrow:after{border-bottom-color:#fff}.popover-neutral .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-neutral .popover.bs-popover-left .arrow:after{border-left-color:#fff}.popover-darker .popover{background-color:#000}.popover-darker .popover .popover-header{background-color:#000;color:#fff}.popover-darker .popover .popover-body{color:#fff}.popover-darker .popover .popover-header{border-color:#fff3}.popover-darker .popover.bs-popover-auto[x-placement^=top] .arrow:after,.popover-darker .popover.bs-popover-top .arrow:after{border-top-color:#000}.popover-darker .popover.bs-popover-auto[x-placement^=right] .arrow:after,.popover-darker .popover.bs-popover-right .arrow:after{border-right-color:#000}.popover-darker .popover.bs-popover-auto[x-placement^=bottom] .arrow:after,.popover-darker .popover.bs-popover-bottom .arrow:after{border-bottom-color:#000}.popover-darker .popover.bs-popover-auto[x-placement^=left] .arrow:after,.popover-darker .popover.bs-popover-left .arrow:after{border-left-color:#000}.separator{z-index:auto}/*! +* https://github.com/YouCanBookMe/react-datetime +*/.rdt{position:relative}.rdt.rdtPickerOnRight .rdtPicker{right:0}.rdt .rdtPicker{display:block;margin-top:-20px;opacity:0;transition:all .15s linear;visibility:hidden}.rdt.rdtOpen .rdtPicker{margin-top:0;opacity:1;visibility:visible}.rdtPicker{background:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:.375rem;box-shadow:0 10px 50px 0 #0003;display:none;margin-top:1px;min-width:292px;padding:20px;position:absolute;z-index:99999!important}@media(max-width:575.98px){.rdtPicker{min-width:262px;padding:5px}}.rdtPicker{display:block;top:50px}.rdtStatic .rdtPicker{box-shadow:none;position:static}.rdtPicker .rdtTimeToggle{border-radius:4px;padding:10px;position:relative;text-align:center;visibility:hidden}.rdtPicker .rdtTimeToggle:before{align-items:center;border-radius:3px;content:"";display:flex;font:normal normal normal 1em/1 Nucleo;font-size:18px;height:100%;justify-content:center;left:0;position:absolute;top:0;visibility:visible;width:100%}.rdtPicker table{border-color:#fff!important;margin:0;width:100%}.rdtPicker td,.rdtPicker th{padding:1px;text-align:center}.rdtPicker td{cursor:pointer}.rdtDay{border:none;border-radius:50%;font-size:.875rem;height:36px;text-align:center;transition:all .15s ease;width:36px}.rdtDay.end-date,.rdtDay.end-date:hover,.rdtDay.middle-date,.rdtDay.middle-date:hover,.rdtDay.rdtActive,.rdtDay.rdtActive:hover,.rdtDay.rdtToday.rdtActive,.rdtDay.start-date,.rdtDay.start-date:hover{background-color:#11cdef!important;color:#fff!important}.rdtDay.start-date{border-bottom-right-radius:0;border-top-right-radius:0}.rdtDay.middle-date{border-radius:0}.rdtDay.end-date{border-bottom-left-radius:0;border-top-left-radius:0}.rdtDays tr .dow{font-size:12px;font-size:.875rem;font-weight:inherit;font-weight:300;height:20px;padding-bottom:5px;padding-top:10px;text-align:center;width:20px}.rdtDays tr .rdtDay{color:#525f7f;font-size:.875rem}.rdtDays tr .rdtDay.rdtNew,.rdtDays tr .rdtDay.rdtOld{color:#adb5bd;font-weight:300}.rdtPicker .rdtTimeToggle:hover,.rdtPicker .rdtTimeToggle:hover:before,.rdtPicker td.rdtDay:hover,.rdtPicker td.rdtHour:hover,.rdtPicker td.rdtMinute:hover,.rdtPicker td.rdtSecond:hover{background:#eee;cursor:pointer}.rdtPicker td.rdtToday{position:relative}.rdtPicker td.rdtActive.rdtToday:before{border-bottom-color:#fff}.rdtPicker td.rdtDisabled,.rdtPicker td.rdtDisabled:hover{background:none;color:#999;cursor:not-allowed}.rdtPicker td span.rdtOld{color:#999}.rdtPicker td span.rdtDisabled,.rdtPicker td span.rdtDisabled:hover{background:none;color:#999;cursor:not-allowed}.rdtPicker tr .dow{border:none;width:14.2857%;width:36px}.rdtPicker th.rdtSwitch,.rdtPicker tr .dow{border-radius:.375rem;font-size:.875rem;font-weight:500;height:36px;text-align:center;transition:all .15s ease}.rdtPicker th.rdtSwitch{border:none;width:145px}.rdtPicker th.rdtNext,.rdtPicker th.rdtPrev{border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;height:36px;text-align:center;transition:all .15s ease;width:36px}.rdtPicker .dow,.rdtPicker .rdtTimeToggle,.rdtPicker th.rdtNext,.rdtPicker th.rdtPrev,.rdtPicker th.rdtSwitch{color:#525f7f}.rdtNext span,.rdtPrev span{-webkit-touch-callout:none;display:block;-webkit-user-select:none;user-select:none}.rdtPicker th.rdtDisabled,.rdtPicker th.rdtDisabled:hover{background:none;color:#999;cursor:not-allowed}.rdtPicker thead tr:first-child th{cursor:pointer}.rdtPicker thead tr:first-child th:hover{background:#eee}.rdtPicker button{background:none;border:none;cursor:pointer}.rdtPicker button:hover{background-color:#eee}.rdtPicker thead button{height:100%;width:100%}td.rdtMonth,td.rdtYear{cursor:pointer;height:50px;width:25%}td.rdtMonth:hover,td.rdtYear:hover{background:#eee}.rdtCounters{display:inline-block}.rdtCounters>div{border-radius:50%;float:left;font-weight:inherit;margin:3px;width:40px}.rdtCounters .rdtCounterSeparator{border:1px solid #0000;width:0}.rdtCounter{height:100px;width:40px}.rdtCounter .rdtCount{border:1px solid #0000;height:40px;padding:7px}.rdtCounters .rdtCounter:last-child .rdtCount{border:1px solid #11cdef;border-radius:50%;color:#11cdef}.rdtCounterSeparator{line-height:100px;padding:7px}.rdtCounter .rdtBtn{-webkit-touch-callout:none;border-radius:50%;color:#adb5bd;cursor:pointer;display:block;line-height:40px;transition:all 60ms ease-in;-webkit-user-select:none;user-select:none}.rdtCounter .rdtBtn:hover{background:#eee;color:#797979}.rdtCounter .rdtCount{font-size:inherit;line-height:25px}.rdtMilli{padding-left:8px;vertical-align:middle;width:48px}.rdtMilli input{font-size:inherit;margin-top:37px;width:100%}.rdtMonths,.rdtYears{padding-bottom:10px}.rdtMonths .rdtMonth,.rdtMonths .rdtYear,.rdtYears .rdtMonth,.rdtYears .rdtYear{border-radius:50%;cursor:pointer;display:inline-block;height:56px;line-height:56px;margin:3px;text-align:center;width:56px}.rdtMonths .rdtMonth.end-date,.rdtMonths .rdtMonth.middle-date,.rdtMonths .rdtMonth.rdtActive,.rdtMonths .rdtMonth.start-date,.rdtMonths .rdtYear.end-date,.rdtMonths .rdtYear.middle-date,.rdtMonths .rdtYear.rdtActive,.rdtMonths .rdtYear.start-date,.rdtYears .rdtMonth.end-date,.rdtYears .rdtMonth.middle-date,.rdtYears .rdtMonth.rdtActive,.rdtYears .rdtMonth.start-date,.rdtYears .rdtYear.end-date,.rdtYears .rdtYear.middle-date,.rdtYears .rdtYear.rdtActive,.rdtYears .rdtYear.start-date{background-color:#11cdef!important;color:#fff}.input-group .input-group-prepend+.rdt .form-control{border-bottom-left-radius:0;border-left:0;border-right:1px solid #cad1d7;border-top-left-radius:0;padding-left:0;padding-right:.75rem}.input-group>.rdt:not(:last-child) .form-control{border-bottom-right-radius:0;border-left:1px solid #cad1d7;border-right:0;border-top-right-radius:0;padding-left:.75rem;padding-right:0}.focused .input-group .input-group-prepend+.rdt .form-control,.focused .input-group>.rdt:not(:last-child) .form-control{border-color:#3297d340}.form-group .rdt{flex:1 1 auto;margin-bottom:0;width:1%} +/*# sourceMappingURL=main.13210154.css.map*/ \ No newline at end of file diff --git a/static/css/main.13210154.css.map b/static/css/main.13210154.css.map new file mode 100644 index 0000000..102228a --- /dev/null +++ b/static/css/main.13210154.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.13210154.css","mappings":"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CiDF,Y6CjDE,sS7CiDF,gC6CjDE,8V7CiDF,yC6CjDE,0WAUN,eAEI,0VCrBJ,uCAOE,6BALA,wCAUA,2EAMG,CAAD,8BANF,0CAqBI,CAfF,cAEA,uCAaE,aADF,6BACE,4CADF,eACE,6BADF,YACE,yBCzBF,iBACA,sBADA,aACA,+BACA,oDACA,+DAEA,iCACA,yCACA,2CACA,+CACA,6BACA,oCACA,oCACA,4CAEA,kEACA,qDACA,6CACA,8DACA,0EAEA,+CACA,4CACA,kEACA,oCACA,8DAEA,wCACA,sEACA,qCACA,4DACA,+DACA,2DAEA,4CACA,8CACA,qDACA,+BACA,0DACA,0D/CYA,8B+ClDA,oCACA,oCACA,8DACA,8DAEA,gDACA,6BACA,+DACA,qDACA,gBACA,uCACA,2CACA,gDAEA,iEACA,mDACA,kCACA,0BADA,4BACA,0BACA,WADA,aACA,4IAIA,qCADA,uBACA,2CACA,wDACA,iDAEA,8CACA,uDACA,6CACA,6EACA,mDACA,gEAEA,oDACA,oCACA,qEACA,uCACA,+DACA,oC/CYA,wD+ClDA,yBACA,gCACA,iEACA,+DAEA,oDACA,gDACA,iDACA,uBACA,oDACA,6BACA,wDACA,oDAEA,qDACA,6DACA,2DACA,uDACA,8DAEA,6EACA,+CACA,mDACA,iDACA,sCAEA,4EACA,0DACA,gEACA,uCACA,kEACA,sEAEA,sCACA,yDACA,0CACA,kDACA,6DACA,8DAtCA,6DACA,uCACA,kEACA,uDAEA,mDACA,wBACA,sDACA,uDACA,6BACA,2DACA,uBACA,gCAEA,mFACA,+DACA,oCACA,+EACA,8EAEA,iDACA,kDACA,sDACA,oDACA,uCAEA,4EACA,0DACA,gEACA,uCACA,kEACA,sEAEA,sCACA,yDACA,0CACA,kDACA,6DACA,8DAtCA,6DACA,uCACA,kEACA,uDAEA,mDACA,wBACA,sDACA,uDACA,6BACA,2DACA,uBACA,iCAEA,kFACA,+DACA,qCACA,8EACA,8EAEA,iDACA,kDACA,sDACA,oDACA,mEAEA,gDACA,0DACA,gEACA,uCACA,kEACA,sEAEA,sCA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","sources":["assets/vendor/nucleo/css/nucleo.css","assets/vendor/font-awesome/css/font-awesome.min.css","assets/scss/argon-design-system-react.scss","../node_modules/bootstrap/scss/_root.scss","../node_modules/bootstrap/scss/_reboot.scss","assets/scss/argon-design-system/variables.scss","../node_modules/bootstrap/scss/vendor/_rfs.scss","../node_modules/bootstrap/scss/_variables.scss","../node_modules/bootstrap/scss/mixins/_hover.scss","../node_modules/bootstrap/scss/_type.scss","../node_modules/bootstrap/scss/mixins/_lists.scss","../node_modules/bootstrap/scss/_images.scss","../node_modules/bootstrap/scss/mixins/_image.scss","../node_modules/bootstrap/scss/mixins/_border-radius.scss","../node_modules/bootstrap/scss/mixins/_box-shadow.scss","../node_modules/bootstrap/scss/_code.scss","../node_modules/bootstrap/scss/_grid.scss","../node_modules/bootstrap/scss/mixins/_grid.scss","../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../node_modules/bootstrap/scss/mixins/_grid-framework.scss","../node_modules/bootstrap/scss/_tables.scss","../node_modules/bootstrap/scss/mixins/_table-row.scss","../node_modules/bootstrap/scss/_forms.scss","../node_modules/bootstrap/scss/mixins/_transition.scss","../node_modules/bootstrap/scss/mixins/_forms.scss","../node_modules/bootstrap/scss/_buttons.scss","../node_modules/bootstrap/scss/mixins/_buttons.scss","../node_modules/bootstrap/scss/mixins/_gradients.scss","../node_modules/bootstrap/scss/_transitions.scss","../node_modules/bootstrap/scss/mixins/_caret.scss","../node_modules/bootstrap/scss/_dropdown.scss","../node_modules/bootstrap/scss/mixins/_nav-divider.scss","../node_modules/bootstrap/scss/_button-group.scss","../node_modules/bootstrap/scss/_input-group.scss","../node_modules/bootstrap/scss/_custom-forms.scss","../node_modules/bootstrap/scss/_nav.scss","../node_modules/bootstrap/scss/_navbar.scss","../node_modules/bootstrap/scss/_card.scss","../node_modules/bootstrap/scss/_breadcrumb.scss","../node_modules/bootstrap/scss/_pagination.scss","../node_modules/bootstrap/scss/mixins/_pagination.scss","../node_modules/bootstrap/scss/_badge.scss","../node_modules/bootstrap/scss/mixins/_badge.scss","../node_modules/bootstrap/scss/_jumbotron.scss","../node_modules/bootstrap/scss/_alert.scss","../node_modules/bootstrap/scss/mixins/_alert.scss","../node_modules/bootstrap/scss/_progress.scss","../node_modules/bootstrap/scss/_media.scss","../node_modules/bootstrap/scss/_list-group.scss","../node_modules/bootstrap/scss/mixins/_list-group.scss","../node_modules/bootstrap/scss/_close.scss","../node_modules/bootstrap/scss/_toasts.scss","../node_modules/bootstrap/scss/_modal.scss","../node_modules/bootstrap/scss/_tooltip.scss","../node_modules/bootstrap/scss/mixins/_reset-text.scss","../node_modules/bootstrap/scss/_popover.scss","../node_modules/bootstrap/scss/_carousel.scss","../node_modules/bootstrap/scss/mixins/_clearfix.scss","../node_modules/bootstrap/scss/_spinners.scss","../node_modules/bootstrap/scss/utilities/_align.scss","../node_modules/bootstrap/scss/mixins/_background-variant.scss","../node_modules/bootstrap/scss/utilities/_background.scss","../node_modules/bootstrap/scss/utilities/_borders.scss","../node_modules/bootstrap/scss/utilities/_display.scss","../node_modules/bootstrap/scss/utilities/_embed.scss","../node_modules/bootstrap/scss/utilities/_flex.scss","../node_modules/bootstrap/scss/utilities/_float.scss","../node_modules/bootstrap/scss/utilities/_interactions.scss","../node_modules/bootstrap/scss/utilities/_position.scss","../node_modules/bootstrap/scss/mixins/_screen-reader.scss","../node_modules/bootstrap/scss/utilities/_shadows.scss","../node_modules/bootstrap/scss/utilities/_sizing.scss","../node_modules/bootstrap/scss/utilities/_spacing.scss","../node_modules/bootstrap/scss/utilities/_stretched-link.scss","../node_modules/bootstrap/scss/utilities/_text.scss","../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../node_modules/bootstrap/scss/mixins/_text-emphasis.scss","../node_modules/bootstrap/scss/mixins/_text-hide.scss","../node_modules/bootstrap/scss/utilities/_visibility.scss","../node_modules/bootstrap/scss/_print.scss","assets/scss/argon-design-system/theme.scss","assets/scss/argon-design-system/reboot.scss","assets/scss/argon-design-system/global.scss","assets/scss/argon-design-system/mixins/background-variant.scss","assets/scss/argon-design-system/utilities/backgrounds.scss","assets/scss/argon-design-system/utilities/floating.scss","assets/scss/argon-design-system/utilities/helper.scss","assets/scss/argon-design-system/utilities/position.scss","assets/scss/argon-design-system/utilities/sizing.scss","assets/scss/argon-design-system/utilities/spacing.scss","assets/scss/argon-design-system/utilities/shadows.scss","assets/scss/argon-design-system/utilities/text.scss","assets/scss/argon-design-system/utilities/transform.scss","assets/scss/argon-design-system/alert.scss","assets/scss/argon-design-system/avatar.scss","assets/scss/argon-design-system/badge.scss","assets/scss/argon-design-system/buttons.scss","assets/scss/argon-design-system/mixins/buttons.scss","assets/scss/argon-design-system/card.scss","assets/scss/argon-design-system/close.scss","assets/scss/argon-design-system/custom-forms.scss","assets/scss/argon-design-system/dropdown.scss","assets/scss/argon-design-system/footer.scss","assets/scss/argon-design-system/forms.scss","assets/scss/argon-design-system/icons.scss","assets/scss/argon-design-system/mixins/icon.scss","assets/scss/argon-design-system/input-group.scss","assets/scss/argon-design-system/list-group.scss","assets/scss/argon-design-system/modal.scss","assets/scss/argon-design-system/mixins/modals.scss","assets/scss/argon-design-system/nav.scss","assets/scss/argon-design-system/navbar.scss","assets/scss/argon-design-system/pagination.scss","assets/scss/argon-design-system/popover.scss","assets/scss/argon-design-system/mixins/popover.scss","assets/scss/argon-design-system/progress.scss","assets/scss/argon-design-system/section.scss","assets/scss/argon-design-system/separator.scss","assets/scss/argon-design-system/type.scss","assets/scss/argon-design-system/vendor/datetimepicker.scss","assets/scss/argon-design-system/vendor/_bootstrap-datepicker.scss","assets/scss/argon-design-system/vendor/nouislider.scss","assets/scss/argon-design-system/vendor/headroom.scss","assets/scss/argon-design-system/docs/clipboard-js.scss","assets/scss/argon-design-system/docs/variables.scss","assets/scss/argon-design-system/docs/component-examples.scss","assets/scss/argon-design-system/docs/content.scss","assets/scss/argon-design-system/docs/footer.scss","assets/scss/argon-design-system/docs/nav.scss","assets/scss/argon-design-system/docs/prism.scss","assets/scss/argon-design-system/docs/sidebar.scss","assets/scss/react/react-differences.scss","assets/scss/react/custom/_dropdown.scss","assets/scss/react/custom/_mixins.scss","assets/scss/react/custom/_navbar.scss","assets/scss/react/custom/_popover.scss","assets/scss/react/custom/_separator.scss","assets/scss/react/custom/vendor/_react-datetime.scss"],"sourcesContent":["/*--------------------------------\n\nhermes-dashboard-icons Web Font - built using nucleoapp.com\nLicense - nucleoapp.com/license/\n\n-------------------------------- */\n@font-face {\n font-family: 'NucleoIcons';\n src: url('../fonts/nucleo-icons.eot');\n src: url('../fonts/nucleo-icons.eot') format('embedded-opentype'), url('../fonts/nucleo-icons.woff2') format('woff2'), url('../fonts/nucleo-icons.woff') format('woff'), url('../fonts/nucleo-icons.ttf') format('truetype'), url('../fonts/nucleo-icons.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n/*------------------------\n base class definition\n-------------------------*/\n.ni {\n display: inline-block;\n font: normal normal normal 14px/1 NucleoIcons;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/*------------------------\n change icon size\n-------------------------*/\n.ni-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.ni-2x {\n font-size: 2em;\n}\n.ni-3x {\n font-size: 3em;\n}\n.ni-4x {\n font-size: 4em;\n}\n.ni-5x {\n font-size: 5em;\n}\n\n/*----------------------------------\n add a square/circle background\n-----------------------------------*/\n.ni.square,\n.ni.circle {\n padding: 0.33333333em;\n vertical-align: -16%;\n background-color: #eee;\n}\n.ni.circle {\n border-radius: 50%;\n}\n/*------------------------\n list icons\n-------------------------*/\n.ni-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.ni-ul > li {\n position: relative;\n}\n.ni-ul > li > .ni {\n position: absolute;\n left: -1.57142857em;\n top: 0.14285714em;\n text-align: center;\n}\n.ni-ul > li > .ni.lg {\n top: 0;\n left: -1.35714286em;\n}\n.ni-ul > li > .ni.circle,\n.ni-ul > li > .ni.square {\n top: -0.19047619em;\n left: -1.9047619em;\n}\n/*------------------------\n spinning icons\n-------------------------*/\n.ni.spin {\n -webkit-animation: nc-spin 2s infinite linear;\n -moz-animation: nc-spin 2s infinite linear;\n animation: nc-spin 2s infinite linear;\n}\n@-webkit-keyframes nc-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n}\n@-moz-keyframes nc-spin {\n 0% {\n -moz-transform: rotate(0deg);\n }\n 100% {\n -moz-transform: rotate(360deg);\n }\n}\n@keyframes nc-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -moz-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n -o-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n -moz-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n -o-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n/*------------------------\n rotated/flipped icons\n-------------------------*/\n.ni.rotate-90 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n -webkit-transform: rotate(90deg);\n -moz-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n -o-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.ni.rotate-180 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n -webkit-transform: rotate(180deg);\n -moz-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n -o-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.ni.rotate-270 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n -webkit-transform: rotate(270deg);\n -moz-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n -o-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.ni.flip-y {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);\n -webkit-transform: scale(-1, 1);\n -moz-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n -o-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.ni.flip-x {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n -webkit-transform: scale(1, -1);\n -moz-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n -o-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n/*------------------------\n font icons\n-------------------------*/\n\n.ni-active-40::before {\n content: \"\\ea02\";\n}\n\n.ni-air-baloon::before {\n content: \"\\ea03\";\n}\n\n.ni-album-2::before {\n content: \"\\ea04\";\n}\n\n.ni-align-center::before {\n content: \"\\ea05\";\n}\n\n.ni-align-left-2::before {\n content: \"\\ea06\";\n}\n\n.ni-ambulance::before {\n content: \"\\ea07\";\n}\n\n.ni-app::before {\n content: \"\\ea08\";\n}\n\n.ni-archive-2::before {\n content: \"\\ea09\";\n}\n\n.ni-atom::before {\n content: \"\\ea0a\";\n}\n\n.ni-badge::before {\n content: \"\\ea0b\";\n}\n\n.ni-bag-17::before {\n content: \"\\ea0c\";\n}\n\n.ni-basket::before {\n content: \"\\ea0d\";\n}\n\n.ni-bell-55::before {\n content: \"\\ea0e\";\n}\n\n.ni-bold-down::before {\n content: \"\\ea0f\";\n}\n\n.ni-bold-left::before {\n content: \"\\ea10\";\n}\n\n.ni-bold-right::before {\n content: \"\\ea11\";\n}\n\n.ni-bold-up::before {\n content: \"\\ea12\";\n}\n\n.ni-bold::before {\n content: \"\\ea13\";\n}\n\n.ni-book-bookmark::before {\n content: \"\\ea14\";\n}\n\n.ni-books::before {\n content: \"\\ea15\";\n}\n\n.ni-box-2::before {\n content: \"\\ea16\";\n}\n\n.ni-briefcase-24::before {\n content: \"\\ea17\";\n}\n\n.ni-building::before {\n content: \"\\ea18\";\n}\n\n.ni-bulb-61::before {\n content: \"\\ea19\";\n}\n\n.ni-bullet-list-67::before {\n content: \"\\ea1a\";\n}\n\n.ni-bus-front-12::before {\n content: \"\\ea1b\";\n}\n\n.ni-button-pause::before {\n content: \"\\ea1c\";\n}\n\n.ni-button-play::before {\n content: \"\\ea1d\";\n}\n\n.ni-button-power::before {\n content: \"\\ea1e\";\n}\n\n.ni-calendar-grid-58::before {\n content: \"\\ea1f\";\n}\n\n.ni-camera-compact::before {\n content: \"\\ea20\";\n}\n\n.ni-caps-small::before {\n content: \"\\ea21\";\n}\n\n.ni-cart::before {\n content: \"\\ea22\";\n}\n\n.ni-chart-bar-32::before {\n content: \"\\ea23\";\n}\n\n.ni-chart-pie-35::before {\n content: \"\\ea24\";\n}\n\n.ni-chat-round::before {\n content: \"\\ea25\";\n}\n\n.ni-check-bold::before {\n content: \"\\ea26\";\n}\n\n.ni-circle-08::before {\n content: \"\\ea27\";\n}\n\n.ni-cloud-download-95::before {\n content: \"\\ea28\";\n}\n\n.ni-cloud-upload-96::before {\n content: \"\\ea29\";\n}\n\n.ni-compass-04::before {\n content: \"\\ea2a\";\n}\n\n.ni-controller::before {\n content: \"\\ea2b\";\n}\n\n.ni-credit-card::before {\n content: \"\\ea2c\";\n}\n\n.ni-curved-next::before {\n content: \"\\ea2d\";\n}\n\n.ni-delivery-fast::before {\n content: \"\\ea2e\";\n}\n\n.ni-diamond::before {\n content: \"\\ea2f\";\n}\n\n.ni-email-83::before {\n content: \"\\ea30\";\n}\n\n.ni-fat-add::before {\n content: \"\\ea31\";\n}\n\n.ni-fat-delete::before {\n content: \"\\ea32\";\n}\n\n.ni-fat-remove::before {\n content: \"\\ea33\";\n}\n\n.ni-favourite-28::before {\n content: \"\\ea34\";\n}\n\n.ni-folder-17::before {\n content: \"\\ea35\";\n}\n\n.ni-glasses-2::before {\n content: \"\\ea36\";\n}\n\n.ni-hat-3::before {\n content: \"\\ea37\";\n}\n\n.ni-headphones::before {\n content: \"\\ea38\";\n}\n\n.ni-html5::before {\n content: \"\\ea39\";\n}\n\n.ni-istanbul::before {\n content: \"\\ea3a\";\n}\n\n.ni-key-25::before {\n content: \"\\ea3b\";\n}\n\n.ni-laptop::before {\n content: \"\\ea3c\";\n}\n\n.ni-like-2::before {\n content: \"\\ea3d\";\n}\n\n.ni-lock-circle-open::before {\n content: \"\\ea3e\";\n}\n\n.ni-map-big::before {\n content: \"\\ea3f\";\n}\n\n.ni-mobile-button::before {\n content: \"\\ea40\";\n}\n\n.ni-money-coins::before {\n content: \"\\ea41\";\n}\n\n.ni-note-03::before {\n content: \"\\ea42\";\n}\n\n.ni-notification-70::before {\n content: \"\\ea43\";\n}\n\n.ni-palette::before {\n content: \"\\ea44\";\n}\n\n.ni-paper-diploma::before {\n content: \"\\ea45\";\n}\n\n.ni-pin-3::before {\n content: \"\\ea46\";\n}\n\n.ni-planet::before {\n content: \"\\ea47\";\n}\n\n.ni-ruler-pencil::before {\n content: \"\\ea48\";\n}\n\n.ni-satisfied::before {\n content: \"\\ea49\";\n}\n\n.ni-scissors::before {\n content: \"\\ea4a\";\n}\n\n.ni-send::before {\n content: \"\\ea4b\";\n}\n\n.ni-settings-gear-65::before {\n content: \"\\ea4c\";\n}\n\n.ni-settings::before {\n content: \"\\ea4d\";\n}\n\n.ni-single-02::before {\n content: \"\\ea4e\";\n}\n\n.ni-single-copy-04::before {\n content: \"\\ea4f\";\n}\n\n.ni-sound-wave::before {\n content: \"\\ea50\";\n}\n\n.ni-spaceship::before {\n content: \"\\ea51\";\n}\n\n.ni-square-pin::before {\n content: \"\\ea52\";\n}\n\n.ni-support-16::before {\n content: \"\\ea53\";\n}\n\n.ni-tablet-button::before {\n content: \"\\ea54\";\n}\n\n.ni-tag::before {\n content: \"\\ea55\";\n}\n\n.ni-tie-bow::before {\n content: \"\\ea56\";\n}\n\n.ni-time-alarm::before {\n content: \"\\ea57\";\n}\n\n.ni-trophy::before {\n content: \"\\ea58\";\n}\n\n.ni-tv-2::before {\n content: \"\\ea59\";\n}\n\n.ni-umbrella-13::before {\n content: \"\\ea5a\";\n}\n\n.ni-user-run::before {\n content: \"\\ea5b\";\n}\n\n.ni-vector::before {\n content: \"\\ea5c\";\n}\n\n.ni-watch-time::before {\n content: \"\\ea5d\";\n}\n\n.ni-world::before {\n content: \"\\ea5e\";\n}\n\n.ni-zoom-split-in::before {\n content: \"\\ea5f\";\n}\n\n.ni-collection::before {\n content: \"\\ea60\";\n}\n\n.ni-image::before {\n content: \"\\ea61\";\n}\n\n.ni-shop::before {\n content: \"\\ea62\";\n}\n\n.ni-ungroup::before {\n content: \"\\ea63\";\n}\n\n.ni-world-2::before {\n content: \"\\ea64\";\n}\n\n.ni-ui-04::before {\n content: \"\\ea65\";\n}\n\n\n/* all icon font classes list here */\n","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\\f000\"}.fa-music:before{content:\"\\f001\"}.fa-search:before{content:\"\\f002\"}.fa-envelope-o:before{content:\"\\f003\"}.fa-heart:before{content:\"\\f004\"}.fa-star:before{content:\"\\f005\"}.fa-star-o:before{content:\"\\f006\"}.fa-user:before{content:\"\\f007\"}.fa-film:before{content:\"\\f008\"}.fa-th-large:before{content:\"\\f009\"}.fa-th:before{content:\"\\f00a\"}.fa-th-list:before{content:\"\\f00b\"}.fa-check:before{content:\"\\f00c\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\\f00d\"}.fa-search-plus:before{content:\"\\f00e\"}.fa-search-minus:before{content:\"\\f010\"}.fa-power-off:before{content:\"\\f011\"}.fa-signal:before{content:\"\\f012\"}.fa-gear:before,.fa-cog:before{content:\"\\f013\"}.fa-trash-o:before{content:\"\\f014\"}.fa-home:before{content:\"\\f015\"}.fa-file-o:before{content:\"\\f016\"}.fa-clock-o:before{content:\"\\f017\"}.fa-road:before{content:\"\\f018\"}.fa-download:before{content:\"\\f019\"}.fa-arrow-circle-o-down:before{content:\"\\f01a\"}.fa-arrow-circle-o-up:before{content:\"\\f01b\"}.fa-inbox:before{content:\"\\f01c\"}.fa-play-circle-o:before{content:\"\\f01d\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\\f01e\"}.fa-refresh:before{content:\"\\f021\"}.fa-list-alt:before{content:\"\\f022\"}.fa-lock:before{content:\"\\f023\"}.fa-flag:before{content:\"\\f024\"}.fa-headphones:before{content:\"\\f025\"}.fa-volume-off:before{content:\"\\f026\"}.fa-volume-down:before{content:\"\\f027\"}.fa-volume-up:before{content:\"\\f028\"}.fa-qrcode:before{content:\"\\f029\"}.fa-barcode:before{content:\"\\f02a\"}.fa-tag:before{content:\"\\f02b\"}.fa-tags:before{content:\"\\f02c\"}.fa-book:before{content:\"\\f02d\"}.fa-bookmark:before{content:\"\\f02e\"}.fa-print:before{content:\"\\f02f\"}.fa-camera:before{content:\"\\f030\"}.fa-font:before{content:\"\\f031\"}.fa-bold:before{content:\"\\f032\"}.fa-italic:before{content:\"\\f033\"}.fa-text-height:before{content:\"\\f034\"}.fa-text-width:before{content:\"\\f035\"}.fa-align-left:before{content:\"\\f036\"}.fa-align-center:before{content:\"\\f037\"}.fa-align-right:before{content:\"\\f038\"}.fa-align-justify:before{content:\"\\f039\"}.fa-list:before{content:\"\\f03a\"}.fa-dedent:before,.fa-outdent:before{content:\"\\f03b\"}.fa-indent:before{content:\"\\f03c\"}.fa-video-camera:before{content:\"\\f03d\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\\f03e\"}.fa-pencil:before{content:\"\\f040\"}.fa-map-marker:before{content:\"\\f041\"}.fa-adjust:before{content:\"\\f042\"}.fa-tint:before{content:\"\\f043\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\\f044\"}.fa-share-square-o:before{content:\"\\f045\"}.fa-check-square-o:before{content:\"\\f046\"}.fa-arrows:before{content:\"\\f047\"}.fa-step-backward:before{content:\"\\f048\"}.fa-fast-backward:before{content:\"\\f049\"}.fa-backward:before{content:\"\\f04a\"}.fa-play:before{content:\"\\f04b\"}.fa-pause:before{content:\"\\f04c\"}.fa-stop:before{content:\"\\f04d\"}.fa-forward:before{content:\"\\f04e\"}.fa-fast-forward:before{content:\"\\f050\"}.fa-step-forward:before{content:\"\\f051\"}.fa-eject:before{content:\"\\f052\"}.fa-chevron-left:before{content:\"\\f053\"}.fa-chevron-right:before{content:\"\\f054\"}.fa-plus-circle:before{content:\"\\f055\"}.fa-minus-circle:before{content:\"\\f056\"}.fa-times-circle:before{content:\"\\f057\"}.fa-check-circle:before{content:\"\\f058\"}.fa-question-circle:before{content:\"\\f059\"}.fa-info-circle:before{content:\"\\f05a\"}.fa-crosshairs:before{content:\"\\f05b\"}.fa-times-circle-o:before{content:\"\\f05c\"}.fa-check-circle-o:before{content:\"\\f05d\"}.fa-ban:before{content:\"\\f05e\"}.fa-arrow-left:before{content:\"\\f060\"}.fa-arrow-right:before{content:\"\\f061\"}.fa-arrow-up:before{content:\"\\f062\"}.fa-arrow-down:before{content:\"\\f063\"}.fa-mail-forward:before,.fa-share:before{content:\"\\f064\"}.fa-expand:before{content:\"\\f065\"}.fa-compress:before{content:\"\\f066\"}.fa-plus:before{content:\"\\f067\"}.fa-minus:before{content:\"\\f068\"}.fa-asterisk:before{content:\"\\f069\"}.fa-exclamation-circle:before{content:\"\\f06a\"}.fa-gift:before{content:\"\\f06b\"}.fa-leaf:before{content:\"\\f06c\"}.fa-fire:before{content:\"\\f06d\"}.fa-eye:before{content:\"\\f06e\"}.fa-eye-slash:before{content:\"\\f070\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\\f071\"}.fa-plane:before{content:\"\\f072\"}.fa-calendar:before{content:\"\\f073\"}.fa-random:before{content:\"\\f074\"}.fa-comment:before{content:\"\\f075\"}.fa-magnet:before{content:\"\\f076\"}.fa-chevron-up:before{content:\"\\f077\"}.fa-chevron-down:before{content:\"\\f078\"}.fa-retweet:before{content:\"\\f079\"}.fa-shopping-cart:before{content:\"\\f07a\"}.fa-folder:before{content:\"\\f07b\"}.fa-folder-open:before{content:\"\\f07c\"}.fa-arrows-v:before{content:\"\\f07d\"}.fa-arrows-h:before{content:\"\\f07e\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\\f080\"}.fa-twitter-square:before{content:\"\\f081\"}.fa-facebook-square:before{content:\"\\f082\"}.fa-camera-retro:before{content:\"\\f083\"}.fa-key:before{content:\"\\f084\"}.fa-gears:before,.fa-cogs:before{content:\"\\f085\"}.fa-comments:before{content:\"\\f086\"}.fa-thumbs-o-up:before{content:\"\\f087\"}.fa-thumbs-o-down:before{content:\"\\f088\"}.fa-star-half:before{content:\"\\f089\"}.fa-heart-o:before{content:\"\\f08a\"}.fa-sign-out:before{content:\"\\f08b\"}.fa-linkedin-square:before{content:\"\\f08c\"}.fa-thumb-tack:before{content:\"\\f08d\"}.fa-external-link:before{content:\"\\f08e\"}.fa-sign-in:before{content:\"\\f090\"}.fa-trophy:before{content:\"\\f091\"}.fa-github-square:before{content:\"\\f092\"}.fa-upload:before{content:\"\\f093\"}.fa-lemon-o:before{content:\"\\f094\"}.fa-phone:before{content:\"\\f095\"}.fa-square-o:before{content:\"\\f096\"}.fa-bookmark-o:before{content:\"\\f097\"}.fa-phone-square:before{content:\"\\f098\"}.fa-twitter:before{content:\"\\f099\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\\f09a\"}.fa-github:before{content:\"\\f09b\"}.fa-unlock:before{content:\"\\f09c\"}.fa-credit-card:before{content:\"\\f09d\"}.fa-feed:before,.fa-rss:before{content:\"\\f09e\"}.fa-hdd-o:before{content:\"\\f0a0\"}.fa-bullhorn:before{content:\"\\f0a1\"}.fa-bell:before{content:\"\\f0f3\"}.fa-certificate:before{content:\"\\f0a3\"}.fa-hand-o-right:before{content:\"\\f0a4\"}.fa-hand-o-left:before{content:\"\\f0a5\"}.fa-hand-o-up:before{content:\"\\f0a6\"}.fa-hand-o-down:before{content:\"\\f0a7\"}.fa-arrow-circle-left:before{content:\"\\f0a8\"}.fa-arrow-circle-right:before{content:\"\\f0a9\"}.fa-arrow-circle-up:before{content:\"\\f0aa\"}.fa-arrow-circle-down:before{content:\"\\f0ab\"}.fa-globe:before{content:\"\\f0ac\"}.fa-wrench:before{content:\"\\f0ad\"}.fa-tasks:before{content:\"\\f0ae\"}.fa-filter:before{content:\"\\f0b0\"}.fa-briefcase:before{content:\"\\f0b1\"}.fa-arrows-alt:before{content:\"\\f0b2\"}.fa-group:before,.fa-users:before{content:\"\\f0c0\"}.fa-chain:before,.fa-link:before{content:\"\\f0c1\"}.fa-cloud:before{content:\"\\f0c2\"}.fa-flask:before{content:\"\\f0c3\"}.fa-cut:before,.fa-scissors:before{content:\"\\f0c4\"}.fa-copy:before,.fa-files-o:before{content:\"\\f0c5\"}.fa-paperclip:before{content:\"\\f0c6\"}.fa-save:before,.fa-floppy-o:before{content:\"\\f0c7\"}.fa-square:before{content:\"\\f0c8\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\\f0c9\"}.fa-list-ul:before{content:\"\\f0ca\"}.fa-list-ol:before{content:\"\\f0cb\"}.fa-strikethrough:before{content:\"\\f0cc\"}.fa-underline:before{content:\"\\f0cd\"}.fa-table:before{content:\"\\f0ce\"}.fa-magic:before{content:\"\\f0d0\"}.fa-truck:before{content:\"\\f0d1\"}.fa-pinterest:before{content:\"\\f0d2\"}.fa-pinterest-square:before{content:\"\\f0d3\"}.fa-google-plus-square:before{content:\"\\f0d4\"}.fa-google-plus:before{content:\"\\f0d5\"}.fa-money:before{content:\"\\f0d6\"}.fa-caret-down:before{content:\"\\f0d7\"}.fa-caret-up:before{content:\"\\f0d8\"}.fa-caret-left:before{content:\"\\f0d9\"}.fa-caret-right:before{content:\"\\f0da\"}.fa-columns:before{content:\"\\f0db\"}.fa-unsorted:before,.fa-sort:before{content:\"\\f0dc\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\\f0dd\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\\f0de\"}.fa-envelope:before{content:\"\\f0e0\"}.fa-linkedin:before{content:\"\\f0e1\"}.fa-rotate-left:before,.fa-undo:before{content:\"\\f0e2\"}.fa-legal:before,.fa-gavel:before{content:\"\\f0e3\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\\f0e4\"}.fa-comment-o:before{content:\"\\f0e5\"}.fa-comments-o:before{content:\"\\f0e6\"}.fa-flash:before,.fa-bolt:before{content:\"\\f0e7\"}.fa-sitemap:before{content:\"\\f0e8\"}.fa-umbrella:before{content:\"\\f0e9\"}.fa-paste:before,.fa-clipboard:before{content:\"\\f0ea\"}.fa-lightbulb-o:before{content:\"\\f0eb\"}.fa-exchange:before{content:\"\\f0ec\"}.fa-cloud-download:before{content:\"\\f0ed\"}.fa-cloud-upload:before{content:\"\\f0ee\"}.fa-user-md:before{content:\"\\f0f0\"}.fa-stethoscope:before{content:\"\\f0f1\"}.fa-suitcase:before{content:\"\\f0f2\"}.fa-bell-o:before{content:\"\\f0a2\"}.fa-coffee:before{content:\"\\f0f4\"}.fa-cutlery:before{content:\"\\f0f5\"}.fa-file-text-o:before{content:\"\\f0f6\"}.fa-building-o:before{content:\"\\f0f7\"}.fa-hospital-o:before{content:\"\\f0f8\"}.fa-ambulance:before{content:\"\\f0f9\"}.fa-medkit:before{content:\"\\f0fa\"}.fa-fighter-jet:before{content:\"\\f0fb\"}.fa-beer:before{content:\"\\f0fc\"}.fa-h-square:before{content:\"\\f0fd\"}.fa-plus-square:before{content:\"\\f0fe\"}.fa-angle-double-left:before{content:\"\\f100\"}.fa-angle-double-right:before{content:\"\\f101\"}.fa-angle-double-up:before{content:\"\\f102\"}.fa-angle-double-down:before{content:\"\\f103\"}.fa-angle-left:before{content:\"\\f104\"}.fa-angle-right:before{content:\"\\f105\"}.fa-angle-up:before{content:\"\\f106\"}.fa-angle-down:before{content:\"\\f107\"}.fa-desktop:before{content:\"\\f108\"}.fa-laptop:before{content:\"\\f109\"}.fa-tablet:before{content:\"\\f10a\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\\f10b\"}.fa-circle-o:before{content:\"\\f10c\"}.fa-quote-left:before{content:\"\\f10d\"}.fa-quote-right:before{content:\"\\f10e\"}.fa-spinner:before{content:\"\\f110\"}.fa-circle:before{content:\"\\f111\"}.fa-mail-reply:before,.fa-reply:before{content:\"\\f112\"}.fa-github-alt:before{content:\"\\f113\"}.fa-folder-o:before{content:\"\\f114\"}.fa-folder-open-o:before{content:\"\\f115\"}.fa-smile-o:before{content:\"\\f118\"}.fa-frown-o:before{content:\"\\f119\"}.fa-meh-o:before{content:\"\\f11a\"}.fa-gamepad:before{content:\"\\f11b\"}.fa-keyboard-o:before{content:\"\\f11c\"}.fa-flag-o:before{content:\"\\f11d\"}.fa-flag-checkered:before{content:\"\\f11e\"}.fa-terminal:before{content:\"\\f120\"}.fa-code:before{content:\"\\f121\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\\f122\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\\f123\"}.fa-location-arrow:before{content:\"\\f124\"}.fa-crop:before{content:\"\\f125\"}.fa-code-fork:before{content:\"\\f126\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\\f127\"}.fa-question:before{content:\"\\f128\"}.fa-info:before{content:\"\\f129\"}.fa-exclamation:before{content:\"\\f12a\"}.fa-superscript:before{content:\"\\f12b\"}.fa-subscript:before{content:\"\\f12c\"}.fa-eraser:before{content:\"\\f12d\"}.fa-puzzle-piece:before{content:\"\\f12e\"}.fa-microphone:before{content:\"\\f130\"}.fa-microphone-slash:before{content:\"\\f131\"}.fa-shield:before{content:\"\\f132\"}.fa-calendar-o:before{content:\"\\f133\"}.fa-fire-extinguisher:before{content:\"\\f134\"}.fa-rocket:before{content:\"\\f135\"}.fa-maxcdn:before{content:\"\\f136\"}.fa-chevron-circle-left:before{content:\"\\f137\"}.fa-chevron-circle-right:before{content:\"\\f138\"}.fa-chevron-circle-up:before{content:\"\\f139\"}.fa-chevron-circle-down:before{content:\"\\f13a\"}.fa-html5:before{content:\"\\f13b\"}.fa-css3:before{content:\"\\f13c\"}.fa-anchor:before{content:\"\\f13d\"}.fa-unlock-alt:before{content:\"\\f13e\"}.fa-bullseye:before{content:\"\\f140\"}.fa-ellipsis-h:before{content:\"\\f141\"}.fa-ellipsis-v:before{content:\"\\f142\"}.fa-rss-square:before{content:\"\\f143\"}.fa-play-circle:before{content:\"\\f144\"}.fa-ticket:before{content:\"\\f145\"}.fa-minus-square:before{content:\"\\f146\"}.fa-minus-square-o:before{content:\"\\f147\"}.fa-level-up:before{content:\"\\f148\"}.fa-level-down:before{content:\"\\f149\"}.fa-check-square:before{content:\"\\f14a\"}.fa-pencil-square:before{content:\"\\f14b\"}.fa-external-link-square:before{content:\"\\f14c\"}.fa-share-square:before{content:\"\\f14d\"}.fa-compass:before{content:\"\\f14e\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\\f150\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\\f151\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\\f152\"}.fa-euro:before,.fa-eur:before{content:\"\\f153\"}.fa-gbp:before{content:\"\\f154\"}.fa-dollar:before,.fa-usd:before{content:\"\\f155\"}.fa-rupee:before,.fa-inr:before{content:\"\\f156\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\\f157\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\\f158\"}.fa-won:before,.fa-krw:before{content:\"\\f159\"}.fa-bitcoin:before,.fa-btc:before{content:\"\\f15a\"}.fa-file:before{content:\"\\f15b\"}.fa-file-text:before{content:\"\\f15c\"}.fa-sort-alpha-asc:before{content:\"\\f15d\"}.fa-sort-alpha-desc:before{content:\"\\f15e\"}.fa-sort-amount-asc:before{content:\"\\f160\"}.fa-sort-amount-desc:before{content:\"\\f161\"}.fa-sort-numeric-asc:before{content:\"\\f162\"}.fa-sort-numeric-desc:before{content:\"\\f163\"}.fa-thumbs-up:before{content:\"\\f164\"}.fa-thumbs-down:before{content:\"\\f165\"}.fa-youtube-square:before{content:\"\\f166\"}.fa-youtube:before{content:\"\\f167\"}.fa-xing:before{content:\"\\f168\"}.fa-xing-square:before{content:\"\\f169\"}.fa-youtube-play:before{content:\"\\f16a\"}.fa-dropbox:before{content:\"\\f16b\"}.fa-stack-overflow:before{content:\"\\f16c\"}.fa-instagram:before{content:\"\\f16d\"}.fa-flickr:before{content:\"\\f16e\"}.fa-adn:before{content:\"\\f170\"}.fa-bitbucket:before{content:\"\\f171\"}.fa-bitbucket-square:before{content:\"\\f172\"}.fa-tumblr:before{content:\"\\f173\"}.fa-tumblr-square:before{content:\"\\f174\"}.fa-long-arrow-down:before{content:\"\\f175\"}.fa-long-arrow-up:before{content:\"\\f176\"}.fa-long-arrow-left:before{content:\"\\f177\"}.fa-long-arrow-right:before{content:\"\\f178\"}.fa-apple:before{content:\"\\f179\"}.fa-windows:before{content:\"\\f17a\"}.fa-android:before{content:\"\\f17b\"}.fa-linux:before{content:\"\\f17c\"}.fa-dribbble:before{content:\"\\f17d\"}.fa-skype:before{content:\"\\f17e\"}.fa-foursquare:before{content:\"\\f180\"}.fa-trello:before{content:\"\\f181\"}.fa-female:before{content:\"\\f182\"}.fa-male:before{content:\"\\f183\"}.fa-gittip:before,.fa-gratipay:before{content:\"\\f184\"}.fa-sun-o:before{content:\"\\f185\"}.fa-moon-o:before{content:\"\\f186\"}.fa-archive:before{content:\"\\f187\"}.fa-bug:before{content:\"\\f188\"}.fa-vk:before{content:\"\\f189\"}.fa-weibo:before{content:\"\\f18a\"}.fa-renren:before{content:\"\\f18b\"}.fa-pagelines:before{content:\"\\f18c\"}.fa-stack-exchange:before{content:\"\\f18d\"}.fa-arrow-circle-o-right:before{content:\"\\f18e\"}.fa-arrow-circle-o-left:before{content:\"\\f190\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\\f191\"}.fa-dot-circle-o:before{content:\"\\f192\"}.fa-wheelchair:before{content:\"\\f193\"}.fa-vimeo-square:before{content:\"\\f194\"}.fa-turkish-lira:before,.fa-try:before{content:\"\\f195\"}.fa-plus-square-o:before{content:\"\\f196\"}.fa-space-shuttle:before{content:\"\\f197\"}.fa-slack:before{content:\"\\f198\"}.fa-envelope-square:before{content:\"\\f199\"}.fa-wordpress:before{content:\"\\f19a\"}.fa-openid:before{content:\"\\f19b\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\\f19c\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\\f19d\"}.fa-yahoo:before{content:\"\\f19e\"}.fa-google:before{content:\"\\f1a0\"}.fa-reddit:before{content:\"\\f1a1\"}.fa-reddit-square:before{content:\"\\f1a2\"}.fa-stumbleupon-circle:before{content:\"\\f1a3\"}.fa-stumbleupon:before{content:\"\\f1a4\"}.fa-delicious:before{content:\"\\f1a5\"}.fa-digg:before{content:\"\\f1a6\"}.fa-pied-piper-pp:before{content:\"\\f1a7\"}.fa-pied-piper-alt:before{content:\"\\f1a8\"}.fa-drupal:before{content:\"\\f1a9\"}.fa-joomla:before{content:\"\\f1aa\"}.fa-language:before{content:\"\\f1ab\"}.fa-fax:before{content:\"\\f1ac\"}.fa-building:before{content:\"\\f1ad\"}.fa-child:before{content:\"\\f1ae\"}.fa-paw:before{content:\"\\f1b0\"}.fa-spoon:before{content:\"\\f1b1\"}.fa-cube:before{content:\"\\f1b2\"}.fa-cubes:before{content:\"\\f1b3\"}.fa-behance:before{content:\"\\f1b4\"}.fa-behance-square:before{content:\"\\f1b5\"}.fa-steam:before{content:\"\\f1b6\"}.fa-steam-square:before{content:\"\\f1b7\"}.fa-recycle:before{content:\"\\f1b8\"}.fa-automobile:before,.fa-car:before{content:\"\\f1b9\"}.fa-cab:before,.fa-taxi:before{content:\"\\f1ba\"}.fa-tree:before{content:\"\\f1bb\"}.fa-spotify:before{content:\"\\f1bc\"}.fa-deviantart:before{content:\"\\f1bd\"}.fa-soundcloud:before{content:\"\\f1be\"}.fa-database:before{content:\"\\f1c0\"}.fa-file-pdf-o:before{content:\"\\f1c1\"}.fa-file-word-o:before{content:\"\\f1c2\"}.fa-file-excel-o:before{content:\"\\f1c3\"}.fa-file-powerpoint-o:before{content:\"\\f1c4\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\\f1c5\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\\f1c6\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\\f1c7\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\\f1c8\"}.fa-file-code-o:before{content:\"\\f1c9\"}.fa-vine:before{content:\"\\f1ca\"}.fa-codepen:before{content:\"\\f1cb\"}.fa-jsfiddle:before{content:\"\\f1cc\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\\f1cd\"}.fa-circle-o-notch:before{content:\"\\f1ce\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\\f1d0\"}.fa-ge:before,.fa-empire:before{content:\"\\f1d1\"}.fa-git-square:before{content:\"\\f1d2\"}.fa-git:before{content:\"\\f1d3\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\\f1d4\"}.fa-tencent-weibo:before{content:\"\\f1d5\"}.fa-qq:before{content:\"\\f1d6\"}.fa-wechat:before,.fa-weixin:before{content:\"\\f1d7\"}.fa-send:before,.fa-paper-plane:before{content:\"\\f1d8\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\\f1d9\"}.fa-history:before{content:\"\\f1da\"}.fa-circle-thin:before{content:\"\\f1db\"}.fa-header:before{content:\"\\f1dc\"}.fa-paragraph:before{content:\"\\f1dd\"}.fa-sliders:before{content:\"\\f1de\"}.fa-share-alt:before{content:\"\\f1e0\"}.fa-share-alt-square:before{content:\"\\f1e1\"}.fa-bomb:before{content:\"\\f1e2\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\\f1e3\"}.fa-tty:before{content:\"\\f1e4\"}.fa-binoculars:before{content:\"\\f1e5\"}.fa-plug:before{content:\"\\f1e6\"}.fa-slideshare:before{content:\"\\f1e7\"}.fa-twitch:before{content:\"\\f1e8\"}.fa-yelp:before{content:\"\\f1e9\"}.fa-newspaper-o:before{content:\"\\f1ea\"}.fa-wifi:before{content:\"\\f1eb\"}.fa-calculator:before{content:\"\\f1ec\"}.fa-paypal:before{content:\"\\f1ed\"}.fa-google-wallet:before{content:\"\\f1ee\"}.fa-cc-visa:before{content:\"\\f1f0\"}.fa-cc-mastercard:before{content:\"\\f1f1\"}.fa-cc-discover:before{content:\"\\f1f2\"}.fa-cc-amex:before{content:\"\\f1f3\"}.fa-cc-paypal:before{content:\"\\f1f4\"}.fa-cc-stripe:before{content:\"\\f1f5\"}.fa-bell-slash:before{content:\"\\f1f6\"}.fa-bell-slash-o:before{content:\"\\f1f7\"}.fa-trash:before{content:\"\\f1f8\"}.fa-copyright:before{content:\"\\f1f9\"}.fa-at:before{content:\"\\f1fa\"}.fa-eyedropper:before{content:\"\\f1fb\"}.fa-paint-brush:before{content:\"\\f1fc\"}.fa-birthday-cake:before{content:\"\\f1fd\"}.fa-area-chart:before{content:\"\\f1fe\"}.fa-pie-chart:before{content:\"\\f200\"}.fa-line-chart:before{content:\"\\f201\"}.fa-lastfm:before{content:\"\\f202\"}.fa-lastfm-square:before{content:\"\\f203\"}.fa-toggle-off:before{content:\"\\f204\"}.fa-toggle-on:before{content:\"\\f205\"}.fa-bicycle:before{content:\"\\f206\"}.fa-bus:before{content:\"\\f207\"}.fa-ioxhost:before{content:\"\\f208\"}.fa-angellist:before{content:\"\\f209\"}.fa-cc:before{content:\"\\f20a\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\\f20b\"}.fa-meanpath:before{content:\"\\f20c\"}.fa-buysellads:before{content:\"\\f20d\"}.fa-connectdevelop:before{content:\"\\f20e\"}.fa-dashcube:before{content:\"\\f210\"}.fa-forumbee:before{content:\"\\f211\"}.fa-leanpub:before{content:\"\\f212\"}.fa-sellsy:before{content:\"\\f213\"}.fa-shirtsinbulk:before{content:\"\\f214\"}.fa-simplybuilt:before{content:\"\\f215\"}.fa-skyatlas:before{content:\"\\f216\"}.fa-cart-plus:before{content:\"\\f217\"}.fa-cart-arrow-down:before{content:\"\\f218\"}.fa-diamond:before{content:\"\\f219\"}.fa-ship:before{content:\"\\f21a\"}.fa-user-secret:before{content:\"\\f21b\"}.fa-motorcycle:before{content:\"\\f21c\"}.fa-street-view:before{content:\"\\f21d\"}.fa-heartbeat:before{content:\"\\f21e\"}.fa-venus:before{content:\"\\f221\"}.fa-mars:before{content:\"\\f222\"}.fa-mercury:before{content:\"\\f223\"}.fa-intersex:before,.fa-transgender:before{content:\"\\f224\"}.fa-transgender-alt:before{content:\"\\f225\"}.fa-venus-double:before{content:\"\\f226\"}.fa-mars-double:before{content:\"\\f227\"}.fa-venus-mars:before{content:\"\\f228\"}.fa-mars-stroke:before{content:\"\\f229\"}.fa-mars-stroke-v:before{content:\"\\f22a\"}.fa-mars-stroke-h:before{content:\"\\f22b\"}.fa-neuter:before{content:\"\\f22c\"}.fa-genderless:before{content:\"\\f22d\"}.fa-facebook-official:before{content:\"\\f230\"}.fa-pinterest-p:before{content:\"\\f231\"}.fa-whatsapp:before{content:\"\\f232\"}.fa-server:before{content:\"\\f233\"}.fa-user-plus:before{content:\"\\f234\"}.fa-user-times:before{content:\"\\f235\"}.fa-hotel:before,.fa-bed:before{content:\"\\f236\"}.fa-viacoin:before{content:\"\\f237\"}.fa-train:before{content:\"\\f238\"}.fa-subway:before{content:\"\\f239\"}.fa-medium:before{content:\"\\f23a\"}.fa-yc:before,.fa-y-combinator:before{content:\"\\f23b\"}.fa-optin-monster:before{content:\"\\f23c\"}.fa-opencart:before{content:\"\\f23d\"}.fa-expeditedssl:before{content:\"\\f23e\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\\f240\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\\f241\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\\f242\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\\f243\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\\f244\"}.fa-mouse-pointer:before{content:\"\\f245\"}.fa-i-cursor:before{content:\"\\f246\"}.fa-object-group:before{content:\"\\f247\"}.fa-object-ungroup:before{content:\"\\f248\"}.fa-sticky-note:before{content:\"\\f249\"}.fa-sticky-note-o:before{content:\"\\f24a\"}.fa-cc-jcb:before{content:\"\\f24b\"}.fa-cc-diners-club:before{content:\"\\f24c\"}.fa-clone:before{content:\"\\f24d\"}.fa-balance-scale:before{content:\"\\f24e\"}.fa-hourglass-o:before{content:\"\\f250\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\\f251\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\\f252\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\\f253\"}.fa-hourglass:before{content:\"\\f254\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\\f255\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\\f256\"}.fa-hand-scissors-o:before{content:\"\\f257\"}.fa-hand-lizard-o:before{content:\"\\f258\"}.fa-hand-spock-o:before{content:\"\\f259\"}.fa-hand-pointer-o:before{content:\"\\f25a\"}.fa-hand-peace-o:before{content:\"\\f25b\"}.fa-trademark:before{content:\"\\f25c\"}.fa-registered:before{content:\"\\f25d\"}.fa-creative-commons:before{content:\"\\f25e\"}.fa-gg:before{content:\"\\f260\"}.fa-gg-circle:before{content:\"\\f261\"}.fa-tripadvisor:before{content:\"\\f262\"}.fa-odnoklassniki:before{content:\"\\f263\"}.fa-odnoklassniki-square:before{content:\"\\f264\"}.fa-get-pocket:before{content:\"\\f265\"}.fa-wikipedia-w:before{content:\"\\f266\"}.fa-safari:before{content:\"\\f267\"}.fa-chrome:before{content:\"\\f268\"}.fa-firefox:before{content:\"\\f269\"}.fa-opera:before{content:\"\\f26a\"}.fa-internet-explorer:before{content:\"\\f26b\"}.fa-tv:before,.fa-television:before{content:\"\\f26c\"}.fa-contao:before{content:\"\\f26d\"}.fa-500px:before{content:\"\\f26e\"}.fa-amazon:before{content:\"\\f270\"}.fa-calendar-plus-o:before{content:\"\\f271\"}.fa-calendar-minus-o:before{content:\"\\f272\"}.fa-calendar-times-o:before{content:\"\\f273\"}.fa-calendar-check-o:before{content:\"\\f274\"}.fa-industry:before{content:\"\\f275\"}.fa-map-pin:before{content:\"\\f276\"}.fa-map-signs:before{content:\"\\f277\"}.fa-map-o:before{content:\"\\f278\"}.fa-map:before{content:\"\\f279\"}.fa-commenting:before{content:\"\\f27a\"}.fa-commenting-o:before{content:\"\\f27b\"}.fa-houzz:before{content:\"\\f27c\"}.fa-vimeo:before{content:\"\\f27d\"}.fa-black-tie:before{content:\"\\f27e\"}.fa-fonticons:before{content:\"\\f280\"}.fa-reddit-alien:before{content:\"\\f281\"}.fa-edge:before{content:\"\\f282\"}.fa-credit-card-alt:before{content:\"\\f283\"}.fa-codiepie:before{content:\"\\f284\"}.fa-modx:before{content:\"\\f285\"}.fa-fort-awesome:before{content:\"\\f286\"}.fa-usb:before{content:\"\\f287\"}.fa-product-hunt:before{content:\"\\f288\"}.fa-mixcloud:before{content:\"\\f289\"}.fa-scribd:before{content:\"\\f28a\"}.fa-pause-circle:before{content:\"\\f28b\"}.fa-pause-circle-o:before{content:\"\\f28c\"}.fa-stop-circle:before{content:\"\\f28d\"}.fa-stop-circle-o:before{content:\"\\f28e\"}.fa-shopping-bag:before{content:\"\\f290\"}.fa-shopping-basket:before{content:\"\\f291\"}.fa-hashtag:before{content:\"\\f292\"}.fa-bluetooth:before{content:\"\\f293\"}.fa-bluetooth-b:before{content:\"\\f294\"}.fa-percent:before{content:\"\\f295\"}.fa-gitlab:before{content:\"\\f296\"}.fa-wpbeginner:before{content:\"\\f297\"}.fa-wpforms:before{content:\"\\f298\"}.fa-envira:before{content:\"\\f299\"}.fa-universal-access:before{content:\"\\f29a\"}.fa-wheelchair-alt:before{content:\"\\f29b\"}.fa-question-circle-o:before{content:\"\\f29c\"}.fa-blind:before{content:\"\\f29d\"}.fa-audio-description:before{content:\"\\f29e\"}.fa-volume-control-phone:before{content:\"\\f2a0\"}.fa-braille:before{content:\"\\f2a1\"}.fa-assistive-listening-systems:before{content:\"\\f2a2\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\\f2a3\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\\f2a4\"}.fa-glide:before{content:\"\\f2a5\"}.fa-glide-g:before{content:\"\\f2a6\"}.fa-signing:before,.fa-sign-language:before{content:\"\\f2a7\"}.fa-low-vision:before{content:\"\\f2a8\"}.fa-viadeo:before{content:\"\\f2a9\"}.fa-viadeo-square:before{content:\"\\f2aa\"}.fa-snapchat:before{content:\"\\f2ab\"}.fa-snapchat-ghost:before{content:\"\\f2ac\"}.fa-snapchat-square:before{content:\"\\f2ad\"}.fa-pied-piper:before{content:\"\\f2ae\"}.fa-first-order:before{content:\"\\f2b0\"}.fa-yoast:before{content:\"\\f2b1\"}.fa-themeisle:before{content:\"\\f2b2\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\\f2b3\"}.fa-fa:before,.fa-font-awesome:before{content:\"\\f2b4\"}.fa-handshake-o:before{content:\"\\f2b5\"}.fa-envelope-open:before{content:\"\\f2b6\"}.fa-envelope-open-o:before{content:\"\\f2b7\"}.fa-linode:before{content:\"\\f2b8\"}.fa-address-book:before{content:\"\\f2b9\"}.fa-address-book-o:before{content:\"\\f2ba\"}.fa-vcard:before,.fa-address-card:before{content:\"\\f2bb\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\\f2bc\"}.fa-user-circle:before{content:\"\\f2bd\"}.fa-user-circle-o:before{content:\"\\f2be\"}.fa-user-o:before{content:\"\\f2c0\"}.fa-id-badge:before{content:\"\\f2c1\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\\f2c2\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\\f2c3\"}.fa-quora:before{content:\"\\f2c4\"}.fa-free-code-camp:before{content:\"\\f2c5\"}.fa-telegram:before{content:\"\\f2c6\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\\f2c7\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\\f2c8\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\\f2c9\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\\f2ca\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\\f2cb\"}.fa-shower:before{content:\"\\f2cc\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\\f2cd\"}.fa-podcast:before{content:\"\\f2ce\"}.fa-window-maximize:before{content:\"\\f2d0\"}.fa-window-minimize:before{content:\"\\f2d1\"}.fa-window-restore:before{content:\"\\f2d2\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\\f2d3\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\\f2d4\"}.fa-bandcamp:before{content:\"\\f2d5\"}.fa-grav:before{content:\"\\f2d6\"}.fa-etsy:before{content:\"\\f2d7\"}.fa-imdb:before{content:\"\\f2d8\"}.fa-ravelry:before{content:\"\\f2d9\"}.fa-eercast:before{content:\"\\f2da\"}.fa-microchip:before{content:\"\\f2db\"}.fa-snowflake-o:before{content:\"\\f2dc\"}.fa-superpowers:before{content:\"\\f2dd\"}.fa-wpexplorer:before{content:\"\\f2de\"}.fa-meetup:before{content:\"\\f2e0\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}\n","/*!\n\n=========================================================\n* Argon Design System React - v1.1.2 based on Argon Design System - v1.1.1\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/argon-design-system-react\n* Copyright 2023 Creative Tim (https://www.creative-tim.com)\n* Licensed under MIT (https://github.com/creativetimofficial/argon-design-system-react/blob/master/LICENSE.md)\n\n* Coded by www.creative-tim.com\n\n=========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n*/\n\n// Bootstrap Functions\n@import \"../../../node_modules/bootstrap/scss/functions\";\n\n// Theme Variables\n@import \"argon-design-system/variables\";\n\n// Bootstrap Core\n@import \"../../../node_modules/bootstrap/scss/bootstrap\";\n\n// Theme Core\n@import \"argon-design-system/theme\";\n\n// React Differences\n@import \"react/react-differences\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`\n * \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *

I appear first
\n *
I replace the above
\n * \n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM 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 * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames();\n\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionName(fn, name) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\tif (!loose || functionsHaveConfigurableNames) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'name', name, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'name', name);\n\t\t}\n\t}\n\treturn fn;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.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__.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__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on
,\n * useSubmit(), , etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | DataFunctionValue;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n const starParam = params[star];\n\n // Apply the splat\n return starParam;\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n\n return param;\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n DataResult,\n DeferredData,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n V7_MutationFormMethod,\n V7_FormMethod,\n HTMLFormMethod,\n MutationFormMethod,\n MapRoutePropertiesFunction,\n} from \"./utils\";\nimport {\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_normalizeFormMethod: boolean;\n v7_prependBasename: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\ntype BaseNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n fromRouteId?: string;\n};\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | V7_FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | V7_FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_normalizeFormMethod: false,\n v7_prependBasename: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(router.state.blockers) });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n for (let [key] of blockerFunctions) {\n deleteBlocker(key);\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers: new Map(state.blockers),\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(state.blockers) });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a mutation submission\n // For example, on /page#hash and submit a which will\n // default to a navigation to /page\n if (\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission || fetcherSubmission\n ? submission || fetcherSubmission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) => {\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n submission,\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (\n ABSOLUTE_URL_REGEX.test(redirect.location) &&\n isBrowser &&\n typeof window?.location !== \"undefined\"\n ) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename = stripBasename(url.pathname, basename) == null;\n\n if (window.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else if (isFetchActionRedirect) {\n // For a fetch action redirect, we kick off a new loading navigation\n // without the fetcher submission, but we send it along for shouldRevalidate\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n },\n fetcherSubmission: submission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n state.blockers.set(key, newBlocker);\n updateState({ blockers: new Map(state.blockers) });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n inFlightDataRoutes = newRoutes;\n }\n\n router = {\n get basename() {\n return basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId != null && relative !== \"path\") {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route. When using relative:path,\n // fromRouteId is ignored since that is always relative to the current\n // location path\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getPathContributingMatches(contextualMatches).map((m) => m.pathnameBase),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: RouterNavigateOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n let formMethod = opts.formMethod || \"get\";\n submission = {\n formMethod: normalizeFormMethod\n ? (formMethod.toUpperCase() as V7_FormMethod)\n : (formMethod.toLowerCase() as FormMethod),\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n let shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n defaultShouldRevalidate: isRevalidationRequired,\n });\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location\n );\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // No hash -> hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // current hash -> same hash\n return true;\n } else if (b.hash !== \"\") {\n // current hash -> new hash\n return true;\n }\n\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey] = React.useState(() => String(++blockerId));\n\n let blockerFunction = React.useCallback(\n (args) => {\n return typeof shouldBlock === \"function\"\n ? !!shouldBlock(args)\n : !!shouldBlock;\n },\n [shouldBlock]\n );\n\n let blocker = router.getBlocker(blockerKey, blockerFunction);\n\n // Cleanup on unmount\n React.useEffect(\n () => () => router.deleteBlocker(blockerKey),\n [router, blockerKey]\n );\n\n // Prefer the blocker from state since DataRouterContext is memoized so this\n // ensures we update on blocker state updates\n return state.blockers.get(blockerKey) || blocker;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n To,\n LazyRouteFunction,\n RelativeRoutingType,\n RouterState,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n RouteContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n useRoutesImpl,\n useLocation,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n let [state, setState] = React.useState(router.state);\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a