From b075bbaea3770774734cc46dbb2329abe5e77d77 Mon Sep 17 00:00:00 2001 From: Michael Herger Date: Wed, 14 Apr 2021 22:37:44 +0200 Subject: [PATCH 1/6] Add link to the ESP32 WiFi Manager to the settings page in LMS. --- .../HTML/EN/plugins/SqueezeESP32/settings/player.html | 6 +++++- plugin/SqueezeESP32/PlayerSettings.pm | 1 + plugin/SqueezeESP32/strings.txt | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/plugin/SqueezeESP32/HTML/EN/plugins/SqueezeESP32/settings/player.html b/plugin/SqueezeESP32/HTML/EN/plugins/SqueezeESP32/settings/player.html index fd07f991..a37121c5 100644 --- a/plugin/SqueezeESP32/HTML/EN/plugins/SqueezeESP32/settings/player.html +++ b/plugin/SqueezeESP32/HTML/EN/plugins/SqueezeESP32/settings/player.html @@ -1,5 +1,9 @@ [% PROCESS settings/header.html %] + [% WRAPPER setting title="PLUGIN_SQUEEZEESP32_FIRMWARE" desc="" %] +
[% "PLUGIN_SQUEEZEESP32_PLAYERSETTINGS" | string %] ([% player_ip %])
+ [% END %] + [% IF prefs.pref_width %] [% WRAPPER setting title="PLUGIN_SQUEEZEESP32_WIDTH" desc="PLUGIN_SQUEEZEESP32_WIDTH_DESC" %] @@ -101,6 +105,6 @@ [% END %] [% END %] - [% END %] + [% END %] [% PROCESS settings/footer.html %] diff --git a/plugin/SqueezeESP32/PlayerSettings.pm b/plugin/SqueezeESP32/PlayerSettings.pm index e1619200..b466c77b 100644 --- a/plugin/SqueezeESP32/PlayerSettings.pm +++ b/plugin/SqueezeESP32/PlayerSettings.pm @@ -94,6 +94,7 @@ sub handler { } $paramRef->{'pref_equalizer'} = $cprefs->get('equalizer') if $client->depth == 16; + $paramRef->{'player_ip'} = $client->ip; return $class->SUPER::handler($client, $paramRef); } diff --git a/plugin/SqueezeESP32/strings.txt b/plugin/SqueezeESP32/strings.txt index 965e67de..b3ca6087 100644 --- a/plugin/SqueezeESP32/strings.txt +++ b/plugin/SqueezeESP32/strings.txt @@ -21,6 +21,9 @@ PLUGIN_SQUEEZEESP32_PLAYERSETTINGS DE ESP32 Einstellungen EN ESP32 settings +PLUGIN_SQUEEZEESP32_FIRMWARE + EN Firmware + PLUGIN_SQUEEZEESP32_WIDTH DE Displaybreite EN Screen width From 36571d3dad79e4a0e7184657445df2b3e63c9785 Mon Sep 17 00:00:00 2001 From: Michael Herger Date: Wed, 14 Apr 2021 23:51:18 +0200 Subject: [PATCH 2/6] Improve firmware download proxy * initialize firmware pre-fetching when a player connects * get firmware based on the player's version string as returned by `status.json` * keep firmware file per platform/branch/resolution combination to support different squeezelite-ESP32 players in an installation * remove handler to get firmware by numeric ID rather than filename --- plugin/SqueezeESP32/FirmwareHelper.pm | 122 +++++++++++--------------- plugin/SqueezeESP32/Player.pm | 4 + plugin/SqueezeESP32/Plugin.pm | 4 - 3 files changed, 56 insertions(+), 74 deletions(-) diff --git a/plugin/SqueezeESP32/FirmwareHelper.pm b/plugin/SqueezeESP32/FirmwareHelper.pm index 3f0c192e..884468fb 100644 --- a/plugin/SqueezeESP32/FirmwareHelper.pm +++ b/plugin/SqueezeESP32/FirmwareHelper.pm @@ -13,25 +13,63 @@ use constant FIRMWARE_POLL_INTERVAL => 3600 * (5 + rand()); use constant GITHUB_RELEASES_URI => "https://api.github.com/repos/sle118/squeezelite-esp32/releases"; use constant GITHUB_ASSET_URI => GITHUB_RELEASES_URI . "/assets/"; use constant GITHUB_DOWNLOAD_URI => "https://github.com/sle118/squeezelite-esp32/releases/download/"; -my $FW_DOWNLOAD_ID_REGEX = qr|plugins/SqueezeESP32/firmware/(-?\d+)|; +use constant ESP32_STATUS_URI => "/status.json"; + my $FW_DOWNLOAD_REGEX = qr|plugins/SqueezeESP32/firmware/([-a-z0-9-/.]+\.bin)$|i; my $FW_FILENAME_REGEX = qr/^squeezelite-esp32-.*\.bin(\.tmp)?$/; -my $FW_TAG_REGEX = qr/\/(ESP32-A1S|SqueezeAmp|I2S-4MFlash)\.(16|32)\.(\d+)\.(.*)\//; +my $FW_TAG_REGEX = qr/\b(ESP32-A1S|SqueezeAmp|I2S-4MFlash)\.(16|32)\.(\d+)\.([-a-zA-Z0-9]+)\b/; my $prefs = preferences('plugin.squeezeesp32'); my $log = logger('plugin.squeezeesp32'); +my $initialized; + sub init { - Slim::Web::Pages->addRawFunction($FW_DOWNLOAD_ID_REGEX, \&handleFirmwareDownload); - Slim::Web::Pages->addRawFunction($FW_DOWNLOAD_REGEX, \&handleFirmwareDownloadDirect); + my ($client) = @_; + + if (!$initialized) { + $initialized = 1; + Slim::Web::Pages->addRawFunction($FW_DOWNLOAD_REGEX, \&handleFirmwareDownload); + } # start checking for firmware updates - Slim::Utils::Timers::setTimer(undef, Time::HiRes::time() + 30 + rand(30), \&prefetchFirmware); + Slim::Utils::Timers::setTimer($client, Time::HiRes::time() + 3.0 + rand(3.0), \&initFirmwareDownload); +} + +sub initFirmwareDownload { + my ($client) = @_; + + Slim::Utils::Timers::killTimers($client, \&initFirmwareDownload); + + Slim::Networking::SimpleAsyncHTTP->new( + sub { + my $http = shift; + my $content = eval { from_json( $http->content ) }; + + if ($content && ref $content) { + my $releaseInfo = _getFirmwareTag($content->{version}); + + if ($releaseInfo && ref $releaseInfo) { + prefetchFirmware($releaseInfo); + } + } + }, + sub { + my ($http, $error) = @_; + $log->error("Failed to get releases from Github: $error"); + }, + { + timeout => 10 + } + )->get('http://' . $client->ip . ESP32_STATUS_URI); + + Slim::Utils::Timers::setTimer($client, Time::HiRes::time() + FIRMWARE_POLL_INTERVAL, \&initFirmwareDownload); } sub prefetchFirmware { - Slim::Utils::Timers::killTimers(undef, \&prefetchFirmware); - my $releaseInfo = $prefs->get('lastReleaseTagUsed'); + my ($releaseInfo) = @_; + + return unless $releaseInfo; Slim::Networking::SimpleAsyncHTTP->new( sub { @@ -63,7 +101,6 @@ sub prefetchFirmware { $log->error(sprintf("Failed to get firmware image from Github: %s (%s)", $error || $http->error, $url)); }, $url) if $url && $url =~ /^https?/; - }, sub { my ($http, $error) = @_; @@ -74,9 +111,7 @@ sub prefetchFirmware { cache => 1, expires => 3600 } - )->get(GITHUB_RELEASES_URI) if $releaseInfo; - - Slim::Utils::Timers::setTimer(undef, Time::HiRes::time() + FIRMWARE_POLL_INTERVAL, \&prefetchFirmware); + )->get(GITHUB_RELEASES_URI); } sub handleFirmwareDownload { @@ -88,59 +123,6 @@ sub handleFirmwareDownload { _errorDownloading($httpClient, $response, @_); }; - my $id; - if (!defined $request || !(($id) = $request->uri =~ $FW_DOWNLOAD_ID_REGEX)) { - return $_errorDownloading->(undef, 'Invalid request', $request->uri, 400); - } - - # this is the magic number used on the client to figure out whether the plugin does support download proxying - if ($id == -99) { - $response->code(204); - $response->header('Access-Control-Allow-Origin' => '*'); - - $httpClient->send_response($response); - return Slim::Web::HTTP::closeHTTPSocket($httpClient); - } - - Slim::Networking::SimpleAsyncHTTP->new( - sub { - my $http = shift; - my $content = eval { from_json( $http->content ) }; - - if (!$content || !ref $content) { - $@ && $log->error("Failed to parse response: $@"); - return $_errorDownloading->($http); - } - elsif (!$content->{browser_download_url} || !$content->{name}) { - return $_errorDownloading->($http, 'No download URL found'); - } - - downloadFirmwareFile(sub { - my $firmwareFile = shift; - $response->code(200); - Slim::Web::HTTP::sendStreamingFile($httpClient, $response, 'application/octet-stream', $firmwareFile, undef, 1); - }, $_errorDownloading, $content->{browser_download_url}, $content->{name}); - }, - $_errorDownloading, - { - timeout => 10, - cache => 1, - expires => 86400 - } - )->get(GITHUB_ASSET_URI . $id); - - return; -} - -sub handleFirmwareDownloadDirect { - my ($httpClient, $response) = @_; - - my $request = $response->request; - - my $_errorDownloading = sub { - _errorDownloading($httpClient, $response, @_); - }; - my $path; if (!defined $request || !(($path) = $request->uri =~ $FW_DOWNLOAD_REGEX)) { return $_errorDownloading->(undef, 'Invalid request', $request->uri, 400); @@ -159,7 +141,7 @@ sub downloadFirmwareFile { my ($cb, $ecb, $url, $name) = @_; # keep track of the last firmware we requested, to prefetch it in the future - _getFirmwareTag($url); + my $releaseInfo = _getFirmwareTag($url); $name ||= basename($url); @@ -169,7 +151,9 @@ sub downloadFirmwareFile { my $updatesDir = Slim::Utils::OSDetect::dirsFor('updates'); my $firmwareFile = catfile($updatesDir, $name); - Slim::Utils::Misc::deleteFiles($updatesDir, $FW_FILENAME_REGEX, $firmwareFile); + + my $fileMatchRegex = join('-', '', $releaseInfo->{branch}, $releaseInfo->{model}, $releaseInfo->{res}); + Slim::Utils::Misc::deleteFiles($updatesDir, $fileMatchRegex, $firmwareFile); if (-f $firmwareFile) { main::INFOLOG && $log->is_info && $log->info("Found cached firmware file"); @@ -198,9 +182,9 @@ sub downloadFirmwareFile { } sub _getFirmwareTag { - my ($url) = @_; + my ($info) = @_; - if (my ($model, $resolution, $version, $branch) = $url =~ $FW_TAG_REGEX) { + if (my ($model, $resolution, $version, $branch) = $info =~ $FW_TAG_REGEX) { my $releaseInfo = { model => $model, res => $resolution, @@ -208,8 +192,6 @@ sub _getFirmwareTag { branch => $branch }; - $prefs->set('lastReleaseTagUsed', $releaseInfo); - return $releaseInfo; } } diff --git a/plugin/SqueezeESP32/Player.pm b/plugin/SqueezeESP32/Player.pm index d82b3b5c..da0d7e8d 100644 --- a/plugin/SqueezeESP32/Player.pm +++ b/plugin/SqueezeESP32/Player.pm @@ -9,6 +9,8 @@ use List::Util qw(min); use Slim::Utils::Log; use Slim::Utils::Prefs; +use Plugins::SqueezeESP32::FirmwareHelper; + my $sprefs = preferences('server'); my $prefs = preferences('plugin.squeezeesp32'); my $log = logger('plugin.squeezeesp32'); @@ -95,6 +97,8 @@ sub init { } $client->SUPER::init(@_); + Plugins::SqueezeESP32::FirmwareHelper::init($client); + main::INFOLOG && $log->is_info && $log->info("SqueezeESP player connected: " . $client->id); } diff --git a/plugin/SqueezeESP32/Plugin.pm b/plugin/SqueezeESP32/Plugin.pm index 6614c179..0f87410d 100644 --- a/plugin/SqueezeESP32/Plugin.pm +++ b/plugin/SqueezeESP32/Plugin.pm @@ -8,8 +8,6 @@ use Slim::Utils::Prefs; use Slim::Utils::Log; use Slim::Web::ImageProxy; -use Plugins::SqueezeESP32::FirmwareHelper; - my $prefs = preferences('plugin.squeezeesp32'); my $log = Slim::Utils::Log->addLogCategory({ @@ -60,8 +58,6 @@ sub initPlugin { Slim::Control::Request::subscribe( sub { onNotification(@_) }, [ ['newmetadata'] ] ); Slim::Control::Request::subscribe( sub { onNotification(@_) }, [ ['playlist'], ['open', 'newsong'] ]); Slim::Control::Request::subscribe( \&onStopClear, [ ['playlist'], ['stop', 'clear'] ]); - - Plugins::SqueezeESP32::FirmwareHelper->init(); } sub onStopClear { From f96d06912fccf5650f845ac9e27439d8cf0b794a Mon Sep 17 00:00:00 2001 From: Michael Herger Date: Sat, 17 Apr 2021 06:31:28 +0200 Subject: [PATCH 3/6] Fix LMS plugin availability check. As I removed the download by ID, this needs a tweak on the UI/JS side. --- components/wifi-manager/webapp/.eslintcache | 2 +- .../wifi-manager/webapp/src/js/custom.js | 3 +- components/wifi-manager/webapp/webapp.cmake | 6 +- components/wifi-manager/webapp/webpack.c | 30 ++++---- components/wifi-manager/webapp/webpack.h | 66 +++++++++--------- .../webapp/webpack/dist/favicon-32x32.png | Bin 578 -> 634 bytes .../webapp/webpack/dist/index.html | 2 +- .../webapp/webpack/dist/index.html.br | Bin 4863 -> 4859 bytes .../webapp/webpack/dist/index.html.gz | Bin 5894 -> 5894 bytes .../webpack/dist/js/index.abeafc.bundle.js.br | Bin 32792 -> 0 bytes .../webpack/dist/js/index.abeafc.bundle.js.gz | Bin 42212 -> 0 bytes ...beafc.bundle.js => index.cf3fe8.bundle.js} | 4 +- .../webpack/dist/js/index.cf3fe8.bundle.js.br | Bin 0 -> 32538 bytes .../webpack/dist/js/index.cf3fe8.bundle.js.gz | Bin 0 -> 42152 bytes ...undle.js => node-modules.cf3fe8.bundle.js} | 0 ...js.br => node-modules.cf3fe8.bundle.js.br} | Bin ...js.gz => node-modules.cf3fe8.bundle.js.gz} | Bin 90823 -> 90823 bytes ...afc.bundle.js => runtime.cf3fe8.bundle.js} | 0 ...ndle.js.br => runtime.cf3fe8.bundle.js.br} | Bin ...ndle.js.gz => runtime.cf3fe8.bundle.js.gz} | Bin 722 -> 722 bytes plugin/SqueezeESP32/FirmwareHelper.pm | 13 +++- 21 files changed, 68 insertions(+), 58 deletions(-) delete mode 100644 components/wifi-manager/webapp/webpack/dist/js/index.abeafc.bundle.js.br delete mode 100644 components/wifi-manager/webapp/webpack/dist/js/index.abeafc.bundle.js.gz rename components/wifi-manager/webapp/webpack/dist/js/{index.abeafc.bundle.js => index.cf3fe8.bundle.js} (87%) create mode 100644 components/wifi-manager/webapp/webpack/dist/js/index.cf3fe8.bundle.js.br create mode 100644 components/wifi-manager/webapp/webpack/dist/js/index.cf3fe8.bundle.js.gz rename components/wifi-manager/webapp/webpack/dist/js/{node-modules.abeafc.bundle.js => node-modules.cf3fe8.bundle.js} (100%) rename components/wifi-manager/webapp/webpack/dist/js/{node-modules.abeafc.bundle.js.br => node-modules.cf3fe8.bundle.js.br} (100%) rename components/wifi-manager/webapp/webpack/dist/js/{node-modules.abeafc.bundle.js.gz => node-modules.cf3fe8.bundle.js.gz} (98%) rename components/wifi-manager/webapp/webpack/dist/js/{runtime.abeafc.bundle.js => runtime.cf3fe8.bundle.js} (100%) rename components/wifi-manager/webapp/webpack/dist/js/{runtime.abeafc.bundle.js.br => runtime.cf3fe8.bundle.js.br} (100%) rename components/wifi-manager/webapp/webpack/dist/js/{runtime.abeafc.bundle.js.gz => runtime.cf3fe8.bundle.js.gz} (90%) diff --git a/components/wifi-manager/webapp/.eslintcache b/components/wifi-manager/webapp/.eslintcache index c2f34a87..4490b73c 100644 --- a/components/wifi-manager/webapp/.eslintcache +++ b/components/wifi-manager/webapp/.eslintcache @@ -1 +1 @@ -[{"C:\\Users\\sle11\\Documents\\VSCode\\squeezelite-esp32\\components\\wifi-manager\\webapp\\src\\js\\test.js":"1","C:\\Users\\sle11\\Documents\\VSCode\\squeezelite-esp32\\components\\wifi-manager\\webapp\\src\\js\\custom.js":"2"},{"size":4775,"mtime":1608244817341,"results":"3","hashOfConfig":"4"},{"size":61704,"mtime":1618438544167,"results":"5","hashOfConfig":"4"},{"filePath":"6","messages":"7","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"8"},"1275pne",{"filePath":"9","messages":"10","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"C:\\Users\\sle11\\Documents\\VSCode\\squeezelite-esp32\\components\\wifi-manager\\webapp\\src\\js\\test.js",[],[],"C:\\Users\\sle11\\Documents\\VSCode\\squeezelite-esp32\\components\\wifi-manager\\webapp\\src\\js\\custom.js",[]] \ No newline at end of file +[{"/Users/mh/SynologyDrive/git/squeezelite-esp32/components/wifi-manager/webapp/src/js/custom.js":"1"},{"size":59815,"mtime":1618633783112,"results":"2","hashOfConfig":"3"},{"filePath":"4","messages":"5","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"15w6qa4","/Users/mh/SynologyDrive/git/squeezelite-esp32/components/wifi-manager/webapp/src/js/custom.js",[]] \ No newline at end of file diff --git a/components/wifi-manager/webapp/src/js/custom.js b/components/wifi-manager/webapp/src/js/custom.js index f98c6308..5e4edaab 100644 --- a/components/wifi-manager/webapp/src/js/custom.js +++ b/components/wifi-manager/webapp/src/js/custom.js @@ -1496,7 +1496,8 @@ function checkStatus() { const baseUrl = 'http://' + data.lms_ip + ':' + data.lms_port; prevLMSIP=data.lms_ip; $.ajax({ - url: baseUrl + '/plugins/SqueezeESP32/firmware/-99', + url: baseUrl + '/plugins/SqueezeESP32/firmware/-check.bin', + type: 'HEAD', dataType: 'text', cache: false, error: function() { diff --git a/components/wifi-manager/webapp/webapp.cmake b/components/wifi-manager/webapp/webapp.cmake index 65bb7350..d03c4905 100644 --- a/components/wifi-manager/webapp/webapp.cmake +++ b/components/wifi-manager/webapp/webapp.cmake @@ -1,5 +1,5 @@ target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/favicon-32x32.png BINARY) target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/index.html.gz BINARY) -target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/index.abeafc.bundle.js.gz BINARY) -target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/node-modules.abeafc.bundle.js.gz BINARY) -target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/runtime.abeafc.bundle.js.gz BINARY) +target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/index.cf3fe8.bundle.js.gz BINARY) +target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/node-modules.cf3fe8.bundle.js.gz BINARY) +target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/runtime.cf3fe8.bundle.js.gz BINARY) diff --git a/components/wifi-manager/webapp/webpack.c b/components/wifi-manager/webapp/webpack.c index ac601a15..8fa46dc7 100644 --- a/components/wifi-manager/webapp/webpack.c +++ b/components/wifi-manager/webapp/webpack.c @@ -4,31 +4,31 @@ extern const uint8_t _favicon_32x32_png_start[] asm("_binary_favicon_32x32_png_s extern const uint8_t _favicon_32x32_png_end[] asm("_binary_favicon_32x32_png_end"); extern const uint8_t _index_html_gz_start[] asm("_binary_index_html_gz_start"); extern const uint8_t _index_html_gz_end[] asm("_binary_index_html_gz_end"); -extern const uint8_t _index_abeafc_bundle_js_gz_start[] asm("_binary_index_abeafc_bundle_js_gz_start"); -extern const uint8_t _index_abeafc_bundle_js_gz_end[] asm("_binary_index_abeafc_bundle_js_gz_end"); -extern const uint8_t _node_modules_abeafc_bundle_js_gz_start[] asm("_binary_node_modules_abeafc_bundle_js_gz_start"); -extern const uint8_t _node_modules_abeafc_bundle_js_gz_end[] asm("_binary_node_modules_abeafc_bundle_js_gz_end"); -extern const uint8_t _runtime_abeafc_bundle_js_gz_start[] asm("_binary_runtime_abeafc_bundle_js_gz_start"); -extern const uint8_t _runtime_abeafc_bundle_js_gz_end[] asm("_binary_runtime_abeafc_bundle_js_gz_end"); +extern const uint8_t _index_cf3fe8_bundle_js_gz_start[] asm("_binary_index_cf3fe8_bundle_js_gz_start"); +extern const uint8_t _index_cf3fe8_bundle_js_gz_end[] asm("_binary_index_cf3fe8_bundle_js_gz_end"); +extern const uint8_t _node_modules_cf3fe8_bundle_js_gz_start[] asm("_binary_node_modules_cf3fe8_bundle_js_gz_start"); +extern const uint8_t _node_modules_cf3fe8_bundle_js_gz_end[] asm("_binary_node_modules_cf3fe8_bundle_js_gz_end"); +extern const uint8_t _runtime_cf3fe8_bundle_js_gz_start[] asm("_binary_runtime_cf3fe8_bundle_js_gz_start"); +extern const uint8_t _runtime_cf3fe8_bundle_js_gz_end[] asm("_binary_runtime_cf3fe8_bundle_js_gz_end"); const char * resource_lookups[] = { "/dist/favicon-32x32.png", "/dist/index.html.gz", - "/js/index.abeafc.bundle.js.gz", - "/js/node-modules.abeafc.bundle.js.gz", - "/js/runtime.abeafc.bundle.js.gz", + "/js/index.cf3fe8.bundle.js.gz", + "/js/node-modules.cf3fe8.bundle.js.gz", + "/js/runtime.cf3fe8.bundle.js.gz", "" }; const uint8_t * resource_map_start[] = { _favicon_32x32_png_start, _index_html_gz_start, - _index_abeafc_bundle_js_gz_start, - _node_modules_abeafc_bundle_js_gz_start, - _runtime_abeafc_bundle_js_gz_start + _index_cf3fe8_bundle_js_gz_start, + _node_modules_cf3fe8_bundle_js_gz_start, + _runtime_cf3fe8_bundle_js_gz_start }; const uint8_t * resource_map_end[] = { _favicon_32x32_png_end, _index_html_gz_end, - _index_abeafc_bundle_js_gz_end, - _node_modules_abeafc_bundle_js_gz_end, - _runtime_abeafc_bundle_js_gz_end + _index_cf3fe8_bundle_js_gz_end, + _node_modules_cf3fe8_bundle_js_gz_end, + _runtime_cf3fe8_bundle_js_gz_end }; diff --git a/components/wifi-manager/webapp/webpack.h b/components/wifi-manager/webapp/webpack.h index cba735c1..960318d5 100644 --- a/components/wifi-manager/webapp/webpack.h +++ b/components/wifi-manager/webapp/webpack.h @@ -1,40 +1,40 @@ /*********************************** webpack_headers -Hash: abeafc790ab5fbef1c83 +Hash: cf3fe8058d89a1b0df6f Version: webpack 4.46.0 -Time: 7893ms -Built at: 2021-04-14 21 h 06 min 20 s +Time: 4393ms +Built at: 17.04.2021 06:30:07 Asset Size Chunks Chunk Names - ./js/index.abeafc.bundle.js 231 KiB 0 [emitted] [immutable] index - ./js/index.abeafc.bundle.js.br 32 KiB [emitted] - ./js/index.abeafc.bundle.js.gz 41.2 KiB [emitted] - ./js/node-modules.abeafc.bundle.js 266 KiB 1 [emitted] [immutable] [big] node-modules -./js/node-modules.abeafc.bundle.js.br 76.3 KiB [emitted] -./js/node-modules.abeafc.bundle.js.gz 88.7 KiB [emitted] - ./js/runtime.abeafc.bundle.js 1.46 KiB 2 [emitted] [immutable] runtime - ./js/runtime.abeafc.bundle.js.br 644 bytes [emitted] - ./js/runtime.abeafc.bundle.js.gz 722 bytes [emitted] - favicon-32x32.png 578 bytes [emitted] + ./js/index.cf3fe8.bundle.js 231 KiB 0 [emitted] [immutable] index + ./js/index.cf3fe8.bundle.js.br 31.8 KiB [emitted] + ./js/index.cf3fe8.bundle.js.gz 41.2 KiB [emitted] + ./js/node-modules.cf3fe8.bundle.js 266 KiB 1 [emitted] [immutable] [big] node-modules +./js/node-modules.cf3fe8.bundle.js.br 76.3 KiB [emitted] +./js/node-modules.cf3fe8.bundle.js.gz 88.7 KiB [emitted] + ./js/runtime.cf3fe8.bundle.js 1.46 KiB 2 [emitted] [immutable] runtime + ./js/runtime.cf3fe8.bundle.js.br 644 bytes [emitted] + ./js/runtime.cf3fe8.bundle.js.gz 722 bytes [emitted] + favicon-32x32.png 634 bytes [emitted] index.html 21.7 KiB [emitted] index.html.br 4.75 KiB [emitted] index.html.gz 5.76 KiB [emitted] sprite.svg 4.4 KiB [emitted] sprite.svg.br 912 bytes [emitted] -Entrypoint index [big] = ./js/runtime.abeafc.bundle.js ./js/node-modules.abeafc.bundle.js ./js/index.abeafc.bundle.js +Entrypoint index [big] = ./js/runtime.cf3fe8.bundle.js ./js/node-modules.cf3fe8.bundle.js ./js/index.cf3fe8.bundle.js [6] ./node_modules/bootstrap/dist/js/bootstrap-exposed.js 437 bytes {1} [built] [11] ./src/sass/main.scss 1.55 KiB {0} [built] -[16] ./node_modules/remixicon/icons/Device/signal-wifi-fill.svg 340 bytes {1} [built] -[17] ./node_modules/remixicon/icons/Device/signal-wifi-3-fill.svg 344 bytes {1} [built] -[18] ./node_modules/remixicon/icons/Device/signal-wifi-2-fill.svg 344 bytes {1} [built] -[19] ./node_modules/remixicon/icons/Device/signal-wifi-1-fill.svg 344 bytes {1} [built] -[20] ./node_modules/remixicon/icons/Device/signal-wifi-line.svg 340 bytes {1} [built] -[21] ./node_modules/remixicon/icons/Device/battery-line.svg 332 bytes {1} [built] -[22] ./node_modules/remixicon/icons/Device/battery-low-line.svg 340 bytes {1} [built] -[23] ./node_modules/remixicon/icons/Device/battery-fill.svg 332 bytes {1} [built] -[24] ./node_modules/remixicon/icons/Media/headphone-fill.svg 335 bytes {1} [built] -[25] ./node_modules/remixicon/icons/Device/device-recover-fill.svg 346 bytes {1} [built] -[26] ./node_modules/remixicon/icons/Device/bluetooth-fill.svg 336 bytes {1} [built] -[27] ./node_modules/remixicon/icons/Device/bluetooth-connect-fill.svg 352 bytes {1} [built] +[16] ./node_modules/remixicon/icons/Device/signal-wifi-fill.svg 323 bytes {1} [built] +[17] ./node_modules/remixicon/icons/Device/signal-wifi-3-fill.svg 327 bytes {1} [built] +[18] ./node_modules/remixicon/icons/Device/signal-wifi-2-fill.svg 327 bytes {1} [built] +[19] ./node_modules/remixicon/icons/Device/signal-wifi-1-fill.svg 327 bytes {1} [built] +[20] ./node_modules/remixicon/icons/Device/signal-wifi-line.svg 323 bytes {1} [built] +[21] ./node_modules/remixicon/icons/Device/battery-line.svg 315 bytes {1} [built] +[22] ./node_modules/remixicon/icons/Device/battery-low-line.svg 323 bytes {1} [built] +[23] ./node_modules/remixicon/icons/Device/battery-fill.svg 315 bytes {1} [built] +[24] ./node_modules/remixicon/icons/Media/headphone-fill.svg 318 bytes {1} [built] +[25] ./node_modules/remixicon/icons/Device/device-recover-fill.svg 329 bytes {1} [built] +[26] ./node_modules/remixicon/icons/Device/bluetooth-fill.svg 319 bytes {1} [built] +[27] ./node_modules/remixicon/icons/Device/bluetooth-connect-fill.svg 335 bytes {1} [built] [37] ./src/index.ts + 1 modules 62.5 KiB {0} [built] | ./src/index.ts 1.36 KiB [built] | ./src/js/custom.js 61 KiB [built] @@ -43,14 +43,14 @@ Entrypoint index [big] = ./js/runtime.abeafc.bundle.js ./js/node-modules.abeafc. WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB). This can impact web performance. Assets: - ./js/node-modules.abeafc.bundle.js (266 KiB) + ./js/node-modules.cf3fe8.bundle.js (266 KiB) WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance. Entrypoints: - index (499 KiB) - ./js/runtime.abeafc.bundle.js - ./js/node-modules.abeafc.bundle.js - ./js/index.abeafc.bundle.js + index (498 KiB) + ./js/runtime.cf3fe8.bundle.js + ./js/node-modules.cf3fe8.bundle.js + ./js/index.cf3fe8.bundle.js WARNING in webpack performance recommendations: @@ -58,9 +58,9 @@ You can limit the size of your bundles by using import() or require.ensure to la For more info visit https://webpack.js.org/guides/code-splitting/ Child html-webpack-plugin for "index.html": Asset Size Chunks Chunk Names - index.html 560 KiB 0 + index.html 559 KiB 0 Entrypoint undefined = index.html - [0] ./node_modules/html-webpack-plugin/lib/loader.js!./src/index.ejs 23.9 KiB {0} [built] + [0] ./node_modules/html-webpack-plugin/lib/loader.js!./src/index.ejs 22.9 KiB {0} [built] [1] ./node_modules/lodash/lodash.js 531 KiB {0} [built] [2] (webpack)/buildin/global.js 472 bytes {0} [built] [3] (webpack)/buildin/module.js 497 bytes {0} [built] diff --git a/components/wifi-manager/webapp/webpack/dist/favicon-32x32.png b/components/wifi-manager/webapp/webpack/dist/favicon-32x32.png index 0024ef9d7d6294861b1d039956601655abb54cbc..533c03ab135aa78c5ff2c98b8cf9d7bc24d5d087 100644 GIT binary patch delta 609 zcmV-n0-pWC1o{M!B!6#EOjJe4$;+(5!iABn5sLIHs+SrYsy`TU902g#pPJdJV;9CD#{rv>}y8r+G z|NsC0|NsC0|NcmuguMU&0i#JoK~y-)ZIcO-gCGz^t(Zi_C2C}eAh_iIXPjOzld#2y|8y#kJI8o@XJn&QMwl0Ue^ef|(Ts*t+hMY7~c=&?N$;u5VA!G>v0R8pmnE zo?8z@cG303c7NN-Bwz@c`s|vO0>5WFXUUup%%Mw|68j&U8Oa3Bx@JE=iHVv3@})ZT zO(X!ne?Ja+@(mCP-~qM|5Xgs2kb(i4zzN8eGLV9RF##(J0HX}1Fzv_y{lT`TxxIpM z(V1L1B^hW>z*{-*oiWbI_J6>|5WE5){|5H$14JL*0e^sK{s8+Kh+hC)2v9&nFp!2A zEpG9?!40D&C>KIB%E$BC$g_2H!&p^|4gM~h7 zM*sr9VOju*p*m?mp8(x3F;oB{M~(dk4s9v!&4D1qjqTd3#Wnlsb%o($&@`CMUVNyAGR- z!qCw4_4Ov2mIZWX2ZM75l7YC#$N&HTcgVy_v#%qPjvS$uIj^c-zPhH;(BR_ZlGD-5 z>gl=L+Dsm=)&Kwi3UpFVQ~m${|5^S0{sg*oi=8acHO@QGkSQE0{&oz}Eem)RQCx*b>m{ zzJ9Ts8(GfDbG?EnD%~f0990q+$*o0Iw7S0SQl!d^)Vjrz#J_D}ln}J)Ui|VQA$kGG zS2pV>kpTLA+<&qR`yNCFc!KK&PWDj=B?RCFJb=<#j}i>H1bjpQy!BMVk4^yI!SzXN z8%`fg@TCn_2{1l@XoCUaLr~-2KrrWNEP(PS5U(3B=8Pu*<9`A131FHVz=r@1cnStg zn!@e$7sm@1iiXn$tifAj(k|Q>>AV53{c-e%DGhvuy?^ckyy9>S!*J~*ZupwrhjPaZ zKEGpJ_{wvX*dDk%5@O!K_#$nnSl z1b-5Mh^2dIA)f&~39)p5h~pvtghSiv_mmNWWQaYzaqKI-PC^JGuJ{u*4q9*J8q8$z r^P5{wnj&}oR_@)qdH-pDo!b8k6o4(vt7=PS00000NkvXXu0mjfOwSqueezeESP32
Software Updates
VersionDate/TimePlatformBranchBit Depth
Local Firmware Upload
KeyValue
Usage Templates
Output
WiFi Status
JoinedNameSignalSecurity
Logs
TimestampMessage
Tasks
#Task NameCPUStateMin StackBase PriorityCur Priority
Credits

squeezelite-esp32
© 2020, philippe44, sle118, daduke
This software is released under the MIT License.

This app would not be possible without the following libraries:

  • squeezelite, © 2012-2019, Adrian Smith and Ralph Irving. Licensed under the GPL License.
  • esp32-wifi-manager, © 2017-2019, Tony Pottier. Licensed under the MIT License.
  • SpinKit, © 2015, Tobias Ahlin. Licensed under the MIT License.
  • jQuery, The jQuery Foundation. Licensed under the MIT License.
  • cJSON, © 2009-2017, Dave Gamble and cJSON contributors. Licensed under the MIT License.
  • esp32-rotary-encoder, © 2011-2019, David Antliff and Ben Buxton. Licensed under the GPL License.
  • tarablessd1306, © 2017-2018, Tara Keeling. Licensed under the MIT license.
Extras/Overrides
\ No newline at end of file +SqueezeESP32
Software Updates
VersionDate/TimePlatformBranchBit Depth
Local Firmware Upload
KeyValue
Usage Templates
Output
WiFi Status
JoinedNameSignalSecurity
Logs
TimestampMessage
Tasks
#Task NameCPUStateMin StackBase PriorityCur Priority
Credits

squeezelite-esp32
© 2020, philippe44, sle118, daduke
This software is released under the MIT License.

This app would not be possible without the following libraries:

  • squeezelite, © 2012-2019, Adrian Smith and Ralph Irving. Licensed under the GPL License.
  • esp32-wifi-manager, © 2017-2019, Tony Pottier. Licensed under the MIT License.
  • SpinKit, © 2015, Tobias Ahlin. Licensed under the MIT License.
  • jQuery, The jQuery Foundation. Licensed under the MIT License.
  • cJSON, © 2009-2017, Dave Gamble and cJSON contributors. Licensed under the MIT License.
  • esp32-rotary-encoder, © 2011-2019, David Antliff and Ben Buxton. Licensed under the GPL License.
  • tarablessd1306, © 2017-2018, Tara Keeling. Licensed under the MIT license.
Extras/Overrides
\ No newline at end of file diff --git a/components/wifi-manager/webapp/webpack/dist/index.html.br b/components/wifi-manager/webapp/webpack/dist/index.html.br index d66be4e4aaf0e2dd9afc2f9a20d879fd96c86790..fdd1baf9a3440ba22afc980a476bbdb02c75893e 100644 GIT binary patch delta 4839 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 NA?NvQw; delta 4859 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 diff --git a/components/wifi-manager/webapp/webpack/dist/js/index.abeafc.bundle.js.gz b/components/wifi-manager/webapp/webpack/dist/js/index.abeafc.bundle.js.gz deleted file mode 100644 index 02ae37fdde42cbb29209dd9972e602591f3599a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42212 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 diff --git a/components/wifi-manager/webapp/webpack/dist/js/index.abeafc.bundle.js b/components/wifi-manager/webapp/webpack/dist/js/index.cf3fe8.bundle.js similarity index 87% rename from components/wifi-manager/webapp/webpack/dist/js/index.abeafc.bundle.js rename to components/wifi-manager/webapp/webpack/dist/js/index.cf3fe8.bundle.js index 03b2b8c3..95263186 100644 --- a/components/wifi-manager/webapp/webpack/dist/js/index.abeafc.bundle.js +++ b/components/wifi-manager/webapp/webpack/dist/js/index.cf3fe8.bundle.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{11:function(n,t,o){var r=o(12);"string"==typeof r&&(r=[[n.i,r,""]]);var e={hmr:!0,transform:void 0,insertInto:void 0};o(14)(r,e);r.locals&&(n.exports=r.locals)},12:function(n,t,o){(t=n.exports=o(13)(!1)).push([n.i,"@import url(https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap);",""]),t.push([n.i,'/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #375a7f;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #e74c3c;\n --orange: #fd7e14;\n --yellow: #f39c12;\n --green: #00bc8c;\n --teal: #20c997;\n --cyan: #3498db;\n --white: #fff;\n --gray: #888;\n --gray-dark: #303030;\n --primary: #375a7f;\n --secondary: #444;\n --success: #00bc8c;\n --info: #3498db;\n --warning: #f39c12;\n --danger: #e74c3c;\n --light: #adb5bd;\n --dark: #303030;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; }\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block; }\n\nbody {\n margin: 0;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #fff;\n text-align: left;\n background-color: #222; }\n\n[tabindex="-1"]:focus:not(:focus-visible) {\n outline: 0 !important; }\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible; }\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem; }\n\np {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none; }\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit; }\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0; }\n\ndt {\n font-weight: 700; }\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; }\n\nblockquote {\n margin: 0 0 1rem; }\n\nb,\nstrong {\n font-weight: bolder; }\n\nsmall {\n font-size: 80%; }\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline; }\n\nsub {\n bottom: -.25em; }\n\nsup {\n top: -.5em; }\n\na {\n color: #00bc8c;\n text-decoration: none;\n background-color: transparent; }\n a:hover {\n color: #007053;\n text-decoration: underline; }\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none; }\n a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none; }\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n font-size: 1em; }\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar; }\n\nfigure {\n margin: 0 0 1rem; }\n\nimg {\n vertical-align: middle;\n border-style: none; }\n\nsvg {\n overflow: hidden;\n vertical-align: middle; }\n\ntable {\n border-collapse: collapse; }\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #888;\n text-align: left;\n caption-side: bottom; }\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent; }\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem; }\n\nbutton {\n border-radius: 0; }\n\nbutton:focus:not(:focus-visible) {\n outline: 0; }\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit; }\n\nbutton,\ninput {\n overflow: visible; }\n\nbutton,\nselect {\n text-transform: none; }\n\n[role="button"] {\n cursor: pointer; }\n\nselect {\n word-wrap: normal; }\n\nbutton,\n[type="button"],\n[type="reset"],\n[type="submit"] {\n -webkit-appearance: button; }\n\nbutton:not(:disabled),\n[type="button"]:not(:disabled),\n[type="reset"]:not(:disabled),\n[type="submit"]:not(:disabled) {\n cursor: pointer; }\n\nbutton::-moz-focus-inner,\n[type="button"]::-moz-focus-inner,\n[type="reset"]::-moz-focus-inner,\n[type="submit"]::-moz-focus-inner {\n padding: 0;\n border-style: none; }\n\ninput[type="radio"],\ninput[type="checkbox"] {\n box-sizing: border-box;\n padding: 0; }\n\ntextarea {\n overflow: auto;\n resize: vertical; }\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0; }\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal; }\n\nprogress {\n vertical-align: baseline; }\n\n[type="number"]::-webkit-inner-spin-button,\n[type="number"]::-webkit-outer-spin-button {\n height: auto; }\n\n[type="search"] {\n outline-offset: -2px;\n -webkit-appearance: none; }\n\n[type="search"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button; }\n\noutput {\n display: inline-block; }\n\nsummary {\n display: list-item;\n cursor: pointer; }\n\ntemplate {\n display: none; }\n\n[hidden] {\n display: none !important; }\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2; }\n\nh1, .h1 {\n font-size: 3rem; }\n\nh2, .h2 {\n font-size: 2.5rem; }\n\nh3, .h3 {\n font-size: 2rem; }\n\nh4, .h4 {\n font-size: 1.40625rem; }\n\nh5, .h5 {\n font-size: 1.17188rem; }\n\nh6, .h6 {\n font-size: 0.9375rem; }\n\n.lead {\n font-size: 1.17188rem;\n font-weight: 300; }\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1); }\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400; }\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3; }\n\n.list-unstyled {\n padding-left: 0;\n list-style: none; }\n\n.list-inline {\n padding-left: 0;\n list-style: none; }\n\n.list-inline-item {\n display: inline-block; }\n .list-inline-item:not(:last-child) {\n margin-right: 0.5rem; }\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase; }\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.17188rem; }\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #888; }\n .blockquote-footer::before {\n content: "\\2014\\A0"; }\n\n.img-fluid {\n max-width: 100%;\n height: auto; }\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #222;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto; }\n\n.figure {\n display: inline-block; }\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1; }\n\n.figure-caption {\n font-size: 90%;\n color: #888; }\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word; }\n a > code {\n color: inherit; }\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #222;\n border-radius: 0.2rem; }\n kbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700; }\n\npre {\n display: block;\n font-size: 87.5%;\n color: inherit; }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal; }\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll; }\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto; }\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px; } }\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px; } }\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px; } }\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px; } }\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px; }\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0; }\n .no-gutters > .col,\n .no-gutters > [class*="col-"] {\n padding-right: 0;\n padding-left: 0; }\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .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-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .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-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .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-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .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-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px; }\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n\n.row-cols-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n\n.row-cols-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n\n.col-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n\n.col-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n\n.col-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n\n.col-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n\n.col-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n\n.col-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n\n.col-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n\n.col-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n\n.order-first {\n order: -1; }\n\n.order-last {\n order: 13; }\n\n.order-0 {\n order: 0; }\n\n.order-1 {\n order: 1; }\n\n.order-2 {\n order: 2; }\n\n.order-3 {\n order: 3; }\n\n.order-4 {\n order: 4; }\n\n.order-5 {\n order: 5; }\n\n.order-6 {\n order: 6; }\n\n.order-7 {\n order: 7; }\n\n.order-8 {\n order: 8; }\n\n.order-9 {\n order: 9; }\n\n.order-10 {\n order: 10; }\n\n.order-11 {\n order: 11; }\n\n.order-12 {\n order: 12; }\n\n.offset-1 {\n margin-left: 8.33333%; }\n\n.offset-2 {\n margin-left: 16.66667%; }\n\n.offset-3 {\n margin-left: 25%; }\n\n.offset-4 {\n margin-left: 33.33333%; }\n\n.offset-5 {\n margin-left: 41.66667%; }\n\n.offset-6 {\n margin-left: 50%; }\n\n.offset-7 {\n margin-left: 58.33333%; }\n\n.offset-8 {\n margin-left: 66.66667%; }\n\n.offset-9 {\n margin-left: 75%; }\n\n.offset-10 {\n margin-left: 83.33333%; }\n\n.offset-11 {\n margin-left: 91.66667%; }\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-sm-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-sm-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-sm-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-sm-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-sm-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-sm-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-sm-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-sm-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-sm-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-sm-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-sm-first {\n order: -1; }\n .order-sm-last {\n order: 13; }\n .order-sm-0 {\n order: 0; }\n .order-sm-1 {\n order: 1; }\n .order-sm-2 {\n order: 2; }\n .order-sm-3 {\n order: 3; }\n .order-sm-4 {\n order: 4; }\n .order-sm-5 {\n order: 5; }\n .order-sm-6 {\n order: 6; }\n .order-sm-7 {\n order: 7; }\n .order-sm-8 {\n order: 8; }\n .order-sm-9 {\n order: 9; }\n .order-sm-10 {\n order: 10; }\n .order-sm-11 {\n order: 11; }\n .order-sm-12 {\n order: 12; }\n .offset-sm-0 {\n margin-left: 0; }\n .offset-sm-1 {\n margin-left: 8.33333%; }\n .offset-sm-2 {\n margin-left: 16.66667%; }\n .offset-sm-3 {\n margin-left: 25%; }\n .offset-sm-4 {\n margin-left: 33.33333%; }\n .offset-sm-5 {\n margin-left: 41.66667%; }\n .offset-sm-6 {\n margin-left: 50%; }\n .offset-sm-7 {\n margin-left: 58.33333%; }\n .offset-sm-8 {\n margin-left: 66.66667%; }\n .offset-sm-9 {\n margin-left: 75%; }\n .offset-sm-10 {\n margin-left: 83.33333%; }\n .offset-sm-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-md-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-md-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-md-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-md-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-md-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-md-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-md-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-md-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-md-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-md-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-md-first {\n order: -1; }\n .order-md-last {\n order: 13; }\n .order-md-0 {\n order: 0; }\n .order-md-1 {\n order: 1; }\n .order-md-2 {\n order: 2; }\n .order-md-3 {\n order: 3; }\n .order-md-4 {\n order: 4; }\n .order-md-5 {\n order: 5; }\n .order-md-6 {\n order: 6; }\n .order-md-7 {\n order: 7; }\n .order-md-8 {\n order: 8; }\n .order-md-9 {\n order: 9; }\n .order-md-10 {\n order: 10; }\n .order-md-11 {\n order: 11; }\n .order-md-12 {\n order: 12; }\n .offset-md-0 {\n margin-left: 0; }\n .offset-md-1 {\n margin-left: 8.33333%; }\n .offset-md-2 {\n margin-left: 16.66667%; }\n .offset-md-3 {\n margin-left: 25%; }\n .offset-md-4 {\n margin-left: 33.33333%; }\n .offset-md-5 {\n margin-left: 41.66667%; }\n .offset-md-6 {\n margin-left: 50%; }\n .offset-md-7 {\n margin-left: 58.33333%; }\n .offset-md-8 {\n margin-left: 66.66667%; }\n .offset-md-9 {\n margin-left: 75%; }\n .offset-md-10 {\n margin-left: 83.33333%; }\n .offset-md-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-lg-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-lg-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-lg-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-lg-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-lg-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-lg-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-lg-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-lg-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-lg-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-lg-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-lg-first {\n order: -1; }\n .order-lg-last {\n order: 13; }\n .order-lg-0 {\n order: 0; }\n .order-lg-1 {\n order: 1; }\n .order-lg-2 {\n order: 2; }\n .order-lg-3 {\n order: 3; }\n .order-lg-4 {\n order: 4; }\n .order-lg-5 {\n order: 5; }\n .order-lg-6 {\n order: 6; }\n .order-lg-7 {\n order: 7; }\n .order-lg-8 {\n order: 8; }\n .order-lg-9 {\n order: 9; }\n .order-lg-10 {\n order: 10; }\n .order-lg-11 {\n order: 11; }\n .order-lg-12 {\n order: 12; }\n .offset-lg-0 {\n margin-left: 0; }\n .offset-lg-1 {\n margin-left: 8.33333%; }\n .offset-lg-2 {\n margin-left: 16.66667%; }\n .offset-lg-3 {\n margin-left: 25%; }\n .offset-lg-4 {\n margin-left: 33.33333%; }\n .offset-lg-5 {\n margin-left: 41.66667%; }\n .offset-lg-6 {\n margin-left: 50%; }\n .offset-lg-7 {\n margin-left: 58.33333%; }\n .offset-lg-8 {\n margin-left: 66.66667%; }\n .offset-lg-9 {\n margin-left: 75%; }\n .offset-lg-10 {\n margin-left: 83.33333%; }\n .offset-lg-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-xl-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-xl-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-xl-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-xl-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-xl-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-xl-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-xl-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-xl-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-xl-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-xl-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-xl-first {\n order: -1; }\n .order-xl-last {\n order: 13; }\n .order-xl-0 {\n order: 0; }\n .order-xl-1 {\n order: 1; }\n .order-xl-2 {\n order: 2; }\n .order-xl-3 {\n order: 3; }\n .order-xl-4 {\n order: 4; }\n .order-xl-5 {\n order: 5; }\n .order-xl-6 {\n order: 6; }\n .order-xl-7 {\n order: 7; }\n .order-xl-8 {\n order: 8; }\n .order-xl-9 {\n order: 9; }\n .order-xl-10 {\n order: 10; }\n .order-xl-11 {\n order: 11; }\n .order-xl-12 {\n order: 12; }\n .offset-xl-0 {\n margin-left: 0; }\n .offset-xl-1 {\n margin-left: 8.33333%; }\n .offset-xl-2 {\n margin-left: 16.66667%; }\n .offset-xl-3 {\n margin-left: 25%; }\n .offset-xl-4 {\n margin-left: 33.33333%; }\n .offset-xl-5 {\n margin-left: 41.66667%; }\n .offset-xl-6 {\n margin-left: 50%; }\n .offset-xl-7 {\n margin-left: 58.33333%; }\n .offset-xl-8 {\n margin-left: 66.66667%; }\n .offset-xl-9 {\n margin-left: 75%; }\n .offset-xl-10 {\n margin-left: 83.33333%; }\n .offset-xl-11 {\n margin-left: 91.66667%; } }\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #fff; }\n .table th,\n .table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #444; }\n .table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #444; }\n .table tbody + tbody {\n border-top: 2px solid #444; }\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem; }\n\n.table-bordered {\n border: 1px solid #444; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #444; }\n .table-bordered thead th,\n .table-bordered thead td {\n border-bottom-width: 2px; }\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0; }\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: #303030; }\n\n.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #c7d1db; }\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #97a9bc; }\n\n.table-hover .table-primary:hover {\n background-color: #b7c4d1; }\n .table-hover .table-primary:hover > td,\n .table-hover .table-primary:hover > th {\n background-color: #b7c4d1; }\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #cbcbcb; }\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #9e9e9e; }\n\n.table-hover .table-secondary:hover {\n background-color: #bebebe; }\n .table-hover .table-secondary:hover > td,\n .table-hover .table-secondary:hover > th {\n background-color: #bebebe; }\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #b8ecdf; }\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #7adcc3; }\n\n.table-hover .table-success:hover {\n background-color: #a4e7d6; }\n .table-hover .table-success:hover > td,\n .table-hover .table-success:hover > th {\n background-color: #a4e7d6; }\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #c6e2f5; }\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #95c9ec; }\n\n.table-hover .table-info:hover {\n background-color: #b0d7f1; }\n .table-hover .table-info:hover > td,\n .table-hover .table-info:hover > th {\n background-color: #b0d7f1; }\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #fce3bd; }\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #f9cc84; }\n\n.table-hover .table-warning:hover {\n background-color: #fbd9a5; }\n .table-hover .table-warning:hover > td,\n .table-hover .table-warning:hover > th {\n background-color: #fbd9a5; }\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f8cdc8; }\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #f3a29a; }\n\n.table-hover .table-danger:hover {\n background-color: #f5b8b1; }\n .table-hover .table-danger:hover > td,\n .table-hover .table-danger:hover > th {\n background-color: #f5b8b1; }\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #e8eaed; }\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #d4d9dd; }\n\n.table-hover .table-light:hover {\n background-color: #dadde2; }\n .table-hover .table-light:hover > td,\n .table-hover .table-light:hover > th {\n background-color: #dadde2; }\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c5c5c5; }\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #939393; }\n\n.table-hover .table-dark:hover {\n background-color: #b8b8b8; }\n .table-hover .table-dark:hover > td,\n .table-hover .table-dark:hover > th {\n background-color: #b8b8b8; }\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075); }\n .table-hover .table-active:hover > td,\n .table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table .thead-dark th {\n color: #fff;\n background-color: #303030;\n border-color: #434343; }\n\n.table .thead-light th {\n color: #444;\n background-color: #ebebeb;\n border-color: #444; }\n\n.table-dark {\n color: #fff;\n background-color: #303030; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th {\n border-color: #434343; }\n .table-dark.table-bordered {\n border: 0; }\n .table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05); }\n .table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075); }\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-sm > .table-bordered {\n border: 0; } }\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-md > .table-bordered {\n border: 0; } }\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-lg > .table-bordered {\n border: 0; } }\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-xl > .table-bordered {\n border: 0; } }\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive > .table-bordered {\n border: 0; }\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #444;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #222;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none; } }\n .form-control::-ms-expand {\n background-color: transparent;\n border: 0; }\n .form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #444; }\n .form-control:focus {\n color: #444;\n background-color: #fff;\n border-color: #739ac2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .form-control::placeholder {\n color: #888;\n opacity: 1; }\n .form-control:disabled, .form-control[readonly] {\n background-color: #ebebeb;\n opacity: 1; }\n\ninput[type="date"].form-control,\ninput[type="time"].form-control,\ninput[type="datetime-local"].form-control,\ninput[type="month"].form-control {\n appearance: none; }\n\nselect.form-control:focus::-ms-value {\n color: #444;\n background-color: #fff; }\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%; }\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5; }\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.17188rem;\n line-height: 1.5; }\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.825rem;\n line-height: 1.5; }\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 0.9375rem;\n line-height: 1.5;\n color: #fff;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0; }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0; }\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto; }\n\ntextarea.form-control {\n height: auto; }\n\n.form-group {\n margin-bottom: 1rem; }\n\n.form-text {\n display: block;\n margin-top: 0.25rem; }\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px; }\n .form-row > .col,\n .form-row > [class*="col-"] {\n padding-right: 5px;\n padding-left: 5px; }\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem; }\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem; }\n .form-check-input[disabled] ~ .form-check-label,\n .form-check-input:disabled ~ .form-check-label {\n color: #888; }\n\n.form-check-label {\n margin-bottom: 0; }\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem; }\n .form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0; }\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #00bc8c; }\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.825rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(0, 188, 140, 0.9);\n border-radius: 0.25rem; }\n .form-row > .col > .valid-tooltip,\n .form-row > [class*="col-"] > .valid-tooltip {\n left: 5px; }\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #00bc8c;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2300bc8c\' d=\'M2.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\'/%3e%3c/svg%3e");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #00bc8c;\n padding-right: calc(0.75em + 2.3125rem);\n background: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2300bc8c\' d=\'M2.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\'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; }\n .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #00bc8c; }\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #00bc8c; }\n .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #00bc8c; }\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #00efb2;\n background-color: #00efb2; }\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #00bc8c; }\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #00bc8c; }\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #e74c3c; }\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.825rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(231, 76, 60, 0.9);\n border-radius: 0.25rem; }\n .form-row > .col > .invalid-tooltip,\n .form-row > [class*="col-"] > .invalid-tooltip {\n left: 5px; }\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #e74c3c;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' fill=\'none\' stroke=\'%23e74c3c\' viewBox=\'0 0 12 12\'%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=\'%23e74c3c\' stroke=\'none\'/%3e%3c/svg%3e");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #e74c3c;\n padding-right: calc(0.75em + 2.3125rem);\n background: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' fill=\'none\' stroke=\'%23e74c3c\' viewBox=\'0 0 12 12\'%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=\'%23e74c3c\' stroke=\'none\'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; }\n .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #e74c3c; }\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #e74c3c; }\n .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #e74c3c; }\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #ed7669;\n background-color: #ed7669; }\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #e74c3c; }\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #e74c3c; }\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; }\n .form-inline .form-check {\n width: 100%; }\n @media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0; }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0; }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle; }\n .form-inline .form-control-plaintext {\n display: inline-block; }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto; }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0; }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0; }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center; }\n .form-inline .custom-control-label {\n margin-bottom: 0; } }\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #fff;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 0.9375rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none; } }\n .btn:hover {\n color: #fff;\n text-decoration: none; }\n .btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .btn.disabled, .btn:disabled {\n opacity: 0.65; }\n .btn:not(:disabled):not(.disabled) {\n cursor: pointer; }\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none; }\n\n.btn-primary {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-primary:hover {\n color: #fff;\n background-color: #2b4764;\n border-color: #28415b; }\n .btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #2b4764;\n border-color: #28415b;\n box-shadow: 0 0 0 0.2rem rgba(85, 115, 146, 0.5); }\n .btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #28415b;\n border-color: #243a53; }\n .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(85, 115, 146, 0.5); }\n\n.btn-secondary {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-secondary:hover {\n color: #fff;\n background-color: #313131;\n border-color: #2b2b2b; }\n .btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #313131;\n border-color: #2b2b2b;\n box-shadow: 0 0 0 0.2rem rgba(96, 96, 96, 0.5); }\n .btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #2b2b2b;\n border-color: #242424; }\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(96, 96, 96, 0.5); }\n\n.btn-success {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-success:hover {\n color: #fff;\n background-color: #009670;\n border-color: #008966; }\n .btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #009670;\n border-color: #008966;\n box-shadow: 0 0 0 0.2rem rgba(38, 198, 157, 0.5); }\n .btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #008966;\n border-color: #007c5d; }\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 198, 157, 0.5); }\n\n.btn-info {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-info:hover {\n color: #fff;\n background-color: #2384c6;\n border-color: #217dbb; }\n .btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #2384c6;\n border-color: #217dbb;\n box-shadow: 0 0 0 0.2rem rgba(82, 167, 224, 0.5); }\n .btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #217dbb;\n border-color: #1f76b0; }\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 167, 224, 0.5); }\n\n.btn-warning {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-warning:hover {\n color: #fff;\n background-color: #d4860b;\n border-color: #c87f0a; }\n .btn-warning:focus, .btn-warning.focus {\n color: #fff;\n background-color: #d4860b;\n border-color: #c87f0a;\n box-shadow: 0 0 0 0.2rem rgba(245, 171, 54, 0.5); }\n .btn-warning.disabled, .btn-warning:disabled {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n .show > .btn-warning.dropdown-toggle {\n color: #fff;\n background-color: #c87f0a;\n border-color: #bc770a; }\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(245, 171, 54, 0.5); }\n\n.btn-danger {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-danger:hover {\n color: #fff;\n background-color: #e12e1c;\n border-color: #d62c1a; }\n .btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #e12e1c;\n border-color: #d62c1a;\n box-shadow: 0 0 0 0.2rem rgba(235, 103, 89, 0.5); }\n .btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #d62c1a;\n border-color: #ca2a19; }\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(235, 103, 89, 0.5); }\n\n.btn-light {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-light:hover {\n color: #fff;\n background-color: #98a2ac;\n border-color: #919ca6; }\n .btn-light:focus, .btn-light.focus {\n color: #fff;\n background-color: #98a2ac;\n border-color: #919ca6;\n box-shadow: 0 0 0 0.2rem rgba(152, 159, 166, 0.5); }\n .btn-light.disabled, .btn-light:disabled {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n .show > .btn-light.dropdown-toggle {\n color: #fff;\n background-color: #919ca6;\n border-color: #8a95a1; }\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(152, 159, 166, 0.5); }\n\n.btn-dark {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-dark:hover {\n color: #fff;\n background-color: #1d1d1d;\n border-color: #171717; }\n .btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #1d1d1d;\n border-color: #171717;\n box-shadow: 0 0 0 0.2rem rgba(79, 79, 79, 0.5); }\n .btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #171717;\n border-color: #101010; }\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(79, 79, 79, 0.5); }\n\n.btn-outline-primary {\n color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:hover {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #375a7f;\n background-color: transparent; }\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n\n.btn-outline-secondary {\n color: #444;\n border-color: #444; }\n .btn-outline-secondary:hover {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #444;\n background-color: transparent; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n\n.btn-outline-success {\n color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:hover {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n .btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #00bc8c;\n background-color: transparent; }\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n\n.btn-outline-info {\n color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:hover {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n .btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #3498db;\n background-color: transparent; }\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n\n.btn-outline-warning {\n color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:hover {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #f39c12;\n background-color: transparent; }\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n .show > .btn-outline-warning.dropdown-toggle {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n\n.btn-outline-danger {\n color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:hover {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #e74c3c;\n background-color: transparent; }\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n\n.btn-outline-light {\n color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:hover {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n .btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #adb5bd;\n background-color: transparent; }\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n .show > .btn-outline-light.dropdown-toggle {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n\n.btn-outline-dark {\n color: #303030;\n border-color: #303030; }\n .btn-outline-dark:hover {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #303030;\n background-color: transparent; }\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n .show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n\n.btn-link {\n font-weight: 400;\n color: #00bc8c;\n text-decoration: none; }\n .btn-link:hover {\n color: #007053;\n text-decoration: underline; }\n .btn-link:focus, .btn-link.focus {\n text-decoration: underline; }\n .btn-link:disabled, .btn-link.disabled {\n color: #888;\n pointer-events: none; }\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.btn-block {\n display: block;\n width: 100%; }\n .btn-block + .btn-block {\n margin-top: 0.5rem; }\n\ninput[type="submit"].btn-block,\ninput[type="reset"].btn-block,\ninput[type="button"].btn-block {\n width: 100%; }\n\n.fade {\n transition: opacity 0.15s linear; }\n @media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none; } }\n .fade:not(.show) {\n opacity: 0; }\n\n.collapse:not(.show) {\n display: none; }\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease; }\n @media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none; } }\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative; }\n\n.dropdown-toggle {\n white-space: nowrap; }\n .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent; }\n .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 0.9375rem;\n color: #fff;\n text-align: left;\n list-style: none;\n background-color: #222;\n background-clip: padding-box;\n border: 1px solid #444;\n border-radius: 0.25rem; }\n\n.dropdown-menu-left {\n right: auto;\n left: 0; }\n\n.dropdown-menu-right {\n right: 0;\n left: auto; }\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0; }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0; }\n .dropdown-menu-md-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0; }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0; }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto; } }\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem; }\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent; }\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem; }\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid; }\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0; }\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem; }\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: ""; }\n\n.dropleft .dropdown-toggle::after {\n display: none; }\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent; }\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0; }\n\n.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {\n right: auto;\n bottom: auto; }\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #444; }\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #fff;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0; }\n .dropdown-item:hover, .dropdown-item:focus {\n color: #fff;\n text-decoration: none;\n background-color: #375a7f; }\n .dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #375a7f; }\n .dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent; }\n\n.dropdown-menu.show {\n display: block; }\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.825rem;\n color: #888;\n white-space: nowrap; }\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #fff; }\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; }\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto; }\n .btn-group > .btn:hover,\n .btn-group-vertical > .btn:hover {\n z-index: 1; }\n .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n .btn-group-vertical > .btn:focus,\n .btn-group-vertical > .btn:active,\n .btn-group-vertical > .btn.active {\n z-index: 1; }\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start; }\n .btn-toolbar .input-group {\n width: auto; }\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px; }\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem; }\n .dropdown-toggle-split::after,\n .dropup .dropdown-toggle-split::after,\n .dropright .dropdown-toggle-split::after {\n margin-left: 0; }\n .dropleft .dropdown-toggle-split::before {\n margin-right: 0; }\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem; }\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem; }\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center; }\n .btn-group-vertical > .btn,\n .btn-group-vertical > .btn-group {\n width: 100%; }\n .btn-group-vertical > .btn:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px; }\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .btn-group-vertical > .btn:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0; }\n .btn-group-toggle > .btn input[type="radio"],\n .btn-group-toggle > .btn input[type="checkbox"],\n .btn-group-toggle > .btn-group > .btn input[type="radio"],\n .btn-group-toggle > .btn-group > .btn input[type="checkbox"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none; }\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%; }\n .input-group > .form-control,\n .input-group > .form-control-plaintext,\n .input-group > .custom-select,\n .input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0; }\n .input-group > .form-control + .form-control,\n .input-group > .form-control + .custom-select,\n .input-group > .form-control + .custom-file,\n .input-group > .form-control-plaintext + .form-control,\n .input-group > .form-control-plaintext + .custom-select,\n .input-group > .form-control-plaintext + .custom-file,\n .input-group > .custom-select + .form-control,\n .input-group > .custom-select + .custom-select,\n .input-group > .custom-select + .custom-file,\n .input-group > .custom-file + .form-control,\n .input-group > .custom-file + .custom-select,\n .input-group > .custom-file + .custom-file {\n margin-left: -1px; }\n .input-group > .form-control:focus,\n .input-group > .custom-select:focus,\n .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3; }\n .input-group > .custom-file .custom-file-input:focus {\n z-index: 4; }\n .input-group > .form-control:not(:first-child),\n .input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .input-group > .custom-file {\n display: flex;\n align-items: center; }\n .input-group > .custom-file:not(:last-child) .custom-file-label,\n .input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .input-group:not(.has-validation) > .form-control:not(:last-child),\n .input-group:not(.has-validation) > .custom-select:not(:last-child),\n .input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .input-group.has-validation > .form-control:nth-last-child(n + 3),\n .input-group.has-validation > .custom-select:nth-last-child(n + 3),\n .input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group-prepend,\n.input-group-append {\n display: flex; }\n .input-group-prepend .btn,\n .input-group-append .btn {\n position: relative;\n z-index: 2; }\n .input-group-prepend .btn:focus,\n .input-group-append .btn:focus {\n z-index: 3; }\n .input-group-prepend .btn + .btn,\n .input-group-prepend .btn + .input-group-text,\n .input-group-prepend .input-group-text + .input-group-text,\n .input-group-prepend .input-group-text + .btn,\n .input-group-append .btn + .btn,\n .input-group-append .btn + .input-group-text,\n .input-group-append .input-group-text + .input-group-text,\n .input-group-append .input-group-text + .btn {\n margin-left: -1px; }\n\n.input-group-prepend {\n margin-right: -1px; }\n\n.input-group-append {\n margin-left: -1px; }\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #adb5bd;\n text-align: center;\n white-space: nowrap;\n background-color: #444;\n border: 1px solid #222;\n border-radius: 0.25rem; }\n .input-group-text input[type="radio"],\n .input-group-text input[type="checkbox"] {\n margin-top: 0; }\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px); }\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px); }\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem; }\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.40625rem;\n padding-left: 1.5rem;\n color-adjust: exact; }\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem; }\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.20313rem;\n opacity: 0; }\n .custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #375a7f;\n background-color: #375a7f; }\n .custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #739ac2; }\n .custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #97b3d2;\n border-color: #97b3d2; }\n .custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #888; }\n .custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #ebebeb; }\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top; }\n .custom-control-label::before {\n position: absolute;\n top: 0.20313rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: "";\n background-color: #fff;\n border: #adb5bd solid 1px; }\n .custom-control-label::after {\n position: absolute;\n top: 0.20313rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: "";\n background: 50% / 50% 50% no-repeat; }\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem; }\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z\'/%3e%3c/svg%3e"); }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #375a7f;\n background-color: #375a7f; }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'4\' viewBox=\'0 0 4 4\'%3e%3cpath stroke=\'%23fff\' d=\'M0 2h4\'/%3e%3c/svg%3e"); }\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%; }\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%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"); }\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-switch {\n padding-left: 2.25rem; }\n .custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem; }\n .custom-switch .custom-control-label::after {\n top: calc(0.20313rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none; } }\n .custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem); }\n .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #444;\n vertical-align: middle;\n background: #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat;\n border: 1px solid #222;\n border-radius: 0.25rem;\n appearance: none; }\n .custom-select:focus {\n border-color: #739ac2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-select:focus::-ms-value {\n color: #444;\n background-color: #fff; }\n .custom-select[multiple], .custom-select[size]:not([size="1"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none; }\n .custom-select:disabled {\n color: #888;\n background-color: #ebebeb; }\n .custom-select::-ms-expand {\n display: none; }\n .custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #444; }\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.825rem; }\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.17188rem; }\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0; }\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n overflow: hidden;\n opacity: 0; }\n .custom-file-input:focus ~ .custom-file-label {\n border-color: #739ac2;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-file-input[disabled] ~ .custom-file-label,\n .custom-file-input:disabled ~ .custom-file-label {\n background-color: #ebebeb; }\n .custom-file-input:lang(en) ~ .custom-file-label::after {\n content: "Browse"; }\n .custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse); }\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n overflow: hidden;\n font-weight: 400;\n line-height: 1.5;\n color: #adb5bd;\n background-color: #fff;\n border: 1px solid #222;\n border-radius: 0.25rem; }\n .custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #adb5bd;\n content: "Browse";\n background-color: #444;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0; }\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none; }\n .custom-range:focus {\n outline: 0; }\n .custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range::-moz-focus-outer {\n border: 0; }\n .custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none; } }\n .custom-range::-webkit-slider-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none; } }\n .custom-range::-moz-range-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none; } }\n .custom-range::-ms-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem; }\n .custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default; }\n .custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-moz-range-track {\n cursor: default; }\n .custom-range:disabled::-ms-thumb {\n background-color: #adb5bd; }\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none; } }\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n\n.nav-link {\n display: block;\n padding: 0.5rem 2rem; }\n .nav-link:hover, .nav-link:focus {\n text-decoration: none; }\n .nav-link.disabled {\n color: #adb5bd;\n pointer-events: none;\n cursor: default; }\n\n.nav-tabs {\n border-bottom: 1px solid #444; }\n .nav-tabs .nav-link {\n margin-bottom: -1px;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #444 #444 transparent; }\n .nav-tabs .nav-link.disabled {\n color: #adb5bd;\n background-color: transparent;\n border-color: transparent; }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: #fff;\n background-color: #222;\n border-color: #444 #444 transparent; }\n .nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.nav-pills .nav-link {\n border-radius: 0.25rem; }\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #375a7f; }\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center; }\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center; }\n\n.tab-content > .tab-pane {\n display: none; }\n\n.tab-content > .active {\n display: block; }\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1rem; }\n .navbar .container,\n .navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between; }\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.32422rem;\n padding-bottom: 0.32422rem;\n margin-right: 1rem;\n font-size: 1.17188rem;\n line-height: inherit;\n white-space: nowrap; }\n .navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none; }\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n .navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0; }\n .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem; }\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center; }\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.17188rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n .navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none; }\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: "";\n background: 50% / 100% 100% no-repeat; }\n\n.navbar-nav-scroll {\n max-height: 75vh;\n overflow-y: auto; }\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row; }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-sm .navbar-toggler {\n display: none; } }\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-md .navbar-nav {\n flex-direction: row; }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-md .navbar-toggler {\n display: none; } }\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row; }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-lg .navbar-toggler {\n display: none; } }\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row; }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-xl .navbar-toggler {\n display: none; } }\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0; }\n .navbar-expand .navbar-nav {\n flex-direction: row; }\n .navbar-expand .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand .navbar-toggler {\n display: none; }\n\n.navbar-light .navbar-brand {\n color: #222; }\n .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: #222; }\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(34, 34, 34, 0.7); }\n .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: #222; }\n .navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3); }\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: #222; }\n\n.navbar-light .navbar-toggler {\n color: rgba(34, 34, 34, 0.7);\n border-color: rgba(34, 34, 34, 0.1); }\n\n.navbar-light .navbar-toggler-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'30\' height=\'30\' viewBox=\'0 0 30 30\'%3e%3cpath stroke=\'rgba%2834, 34, 34, 0.7%29\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' stroke-width=\'2\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e"); }\n\n.navbar-light .navbar-text {\n color: rgba(34, 34, 34, 0.7); }\n .navbar-light .navbar-text a {\n color: #222; }\n .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: #222; }\n\n.navbar-dark .navbar-brand {\n color: #fff; }\n .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff; }\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.6); }\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: #fff; }\n .navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25); }\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff; }\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.6);\n border-color: rgba(255, 255, 255, 0.1); }\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'30\' height=\'30\' viewBox=\'0 0 30 30\'%3e%3cpath stroke=\'rgba%28255, 255, 255, 0.6%29\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' stroke-width=\'2\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e"); }\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.6); }\n .navbar-dark .navbar-text a {\n color: #fff; }\n .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff; }\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #303030;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem; }\n .card > hr {\n margin-right: 0;\n margin-left: 0; }\n .card > .list-group {\n border-top: inherit;\n border-bottom: inherit; }\n .card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n .card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n .card > .card-header + .list-group,\n .card > .list-group + .card-footer {\n border-top: 0; }\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem; }\n\n.card-title {\n margin-bottom: 0.75rem; }\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0; }\n\n.card-text:last-child {\n margin-bottom: 0; }\n\n.card-link:hover {\n text-decoration: none; }\n\n.card-link + .card-link {\n margin-left: 1.25rem; }\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: #444;\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\n .card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: #444;\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\n .card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0; }\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem; }\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px); }\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%; }\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n\n.card-deck .card {\n margin-bottom: 15px; }\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px; }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px; } }\n\n.card-group > .card {\n margin-bottom: 15px; }\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap; }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0; }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0; }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0; } }\n\n.card-columns .card {\n margin-bottom: 0.75rem; }\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1; }\n .card-columns .card {\n display: inline-block;\n width: 100%; } }\n\n.accordion {\n overflow-anchor: none; }\n .accordion > .card {\n overflow: hidden; }\n .accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n .accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px; }\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #444;\n border-radius: 0.25rem; }\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem; }\n .breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: 0.5rem;\n color: #888;\n content: "/"; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none; }\n\n.breadcrumb-item.active {\n color: #888; }\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem; }\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: 0;\n line-height: 1.25;\n color: #fff;\n background-color: #00bc8c;\n border: 0 solid transparent; }\n .page-link:hover {\n z-index: 2;\n color: #fff;\n text-decoration: none;\n background-color: #00efb2;\n border-color: transparent; }\n .page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem; }\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #00efb2;\n border-color: transparent; }\n\n.page-item.disabled .page-link {\n color: #fff;\n pointer-events: none;\n cursor: auto;\n background-color: #007053;\n border-color: transparent; }\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.17188rem;\n line-height: 1.5; }\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem; }\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem; }\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5; }\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem; }\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem; }\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none; } }\n a.badge:hover, a.badge:focus {\n text-decoration: none; }\n .badge:empty {\n display: none; }\n\n.btn .badge {\n position: relative;\n top: -1px; }\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem; }\n\n.badge-primary {\n color: #fff;\n background-color: #375a7f; }\n a.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #28415b; }\n a.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n\n.badge-secondary {\n color: #fff;\n background-color: #444; }\n a.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #2b2b2b; }\n a.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n\n.badge-success {\n color: #fff;\n background-color: #00bc8c; }\n a.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #008966; }\n a.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n\n.badge-info {\n color: #fff;\n background-color: #3498db; }\n a.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #217dbb; }\n a.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n\n.badge-warning {\n color: #fff;\n background-color: #f39c12; }\n a.badge-warning:hover, a.badge-warning:focus {\n color: #fff;\n background-color: #c87f0a; }\n a.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n\n.badge-danger {\n color: #fff;\n background-color: #e74c3c; }\n a.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #d62c1a; }\n a.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n\n.badge-light {\n color: #222;\n background-color: #adb5bd; }\n a.badge-light:hover, a.badge-light:focus {\n color: #222;\n background-color: #919ca6; }\n a.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n\n.badge-dark {\n color: #fff;\n background-color: #303030; }\n a.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #171717; }\n a.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #303030;\n border-radius: 0.3rem; }\n @media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem; } }\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0; }\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n\n.alert-heading {\n color: inherit; }\n\n.alert-link {\n font-weight: 700; }\n\n.alert-dismissible {\n padding-right: 3.90625rem; }\n .alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit; }\n\n.alert-primary {\n color: #1d2f42;\n background-color: #d7dee5;\n border-color: #c7d1db; }\n .alert-primary hr {\n border-top-color: #b7c4d1; }\n .alert-primary .alert-link {\n color: #0d161f; }\n\n.alert-secondary {\n color: #232323;\n background-color: #dadada;\n border-color: #cbcbcb; }\n .alert-secondary hr {\n border-top-color: #bebebe; }\n .alert-secondary .alert-link {\n color: #0a0a0a; }\n\n.alert-success {\n color: #006249;\n background-color: #ccf2e8;\n border-color: #b8ecdf; }\n .alert-success hr {\n border-top-color: #a4e7d6; }\n .alert-success .alert-link {\n color: #002f23; }\n\n.alert-info {\n color: #1b4f72;\n background-color: #d6eaf8;\n border-color: #c6e2f5; }\n .alert-info hr {\n border-top-color: #b0d7f1; }\n .alert-info .alert-link {\n color: #113249; }\n\n.alert-warning {\n color: #7e5109;\n background-color: #fdebd0;\n border-color: #fce3bd; }\n .alert-warning hr {\n border-top-color: #fbd9a5; }\n .alert-warning .alert-link {\n color: #4e3206; }\n\n.alert-danger {\n color: #78281f;\n background-color: #fadbd8;\n border-color: #f8cdc8; }\n .alert-danger hr {\n border-top-color: #f5b8b1; }\n .alert-danger .alert-link {\n color: #4f1a15; }\n\n.alert-light {\n color: #5a5e62;\n background-color: #eff0f2;\n border-color: #e8eaed; }\n .alert-light hr {\n border-top-color: #dadde2; }\n .alert-light .alert-link {\n color: #424547; }\n\n.alert-dark {\n color: #191919;\n background-color: #d6d6d6;\n border-color: #c5c5c5; }\n .alert-dark hr {\n border-top-color: #b8b8b8; }\n .alert-dark .alert-link {\n color: black; }\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0; }\n to {\n background-position: 0 0; } }\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.70313rem;\n background-color: #444;\n border-radius: 0.25rem; }\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #375a7f;\n transition: width 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none; } }\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem; }\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none; } }\n\n.media {\n display: flex;\n align-items: flex-start; }\n\n.media-body {\n flex: 1; }\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem; }\n\n.list-group-item-action {\n width: 100%;\n color: #444;\n text-align: inherit; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #444;\n text-decoration: none;\n background-color: #444; }\n .list-group-item-action:active {\n color: #fff;\n background-color: #ebebeb; }\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #303030;\n border: 1px solid #444; }\n .list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit; }\n .list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit; }\n .list-group-item.disabled, .list-group-item:disabled {\n color: #888;\n pointer-events: none;\n background-color: #303030; }\n .list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .list-group-item + .list-group-item {\n border-top-width: 0; }\n .list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px; }\n\n.list-group-horizontal {\n flex-direction: row; }\n .list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; }\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row; }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row; }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row; }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row; }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n.list-group-flush {\n border-radius: 0; }\n .list-group-flush > .list-group-item {\n border-width: 0 0 1px; }\n .list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0; }\n\n.list-group-item-primary {\n color: #1d2f42;\n background-color: #c7d1db; }\n .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #1d2f42;\n background-color: #b7c4d1; }\n .list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #1d2f42;\n border-color: #1d2f42; }\n\n.list-group-item-secondary {\n color: #232323;\n background-color: #cbcbcb; }\n .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #232323;\n background-color: #bebebe; }\n .list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #232323;\n border-color: #232323; }\n\n.list-group-item-success {\n color: #006249;\n background-color: #b8ecdf; }\n .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #006249;\n background-color: #a4e7d6; }\n .list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #006249;\n border-color: #006249; }\n\n.list-group-item-info {\n color: #1b4f72;\n background-color: #c6e2f5; }\n .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #1b4f72;\n background-color: #b0d7f1; }\n .list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #1b4f72;\n border-color: #1b4f72; }\n\n.list-group-item-warning {\n color: #7e5109;\n background-color: #fce3bd; }\n .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #7e5109;\n background-color: #fbd9a5; }\n .list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #7e5109;\n border-color: #7e5109; }\n\n.list-group-item-danger {\n color: #78281f;\n background-color: #f8cdc8; }\n .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #78281f;\n background-color: #f5b8b1; }\n .list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #78281f;\n border-color: #78281f; }\n\n.list-group-item-light {\n color: #5a5e62;\n background-color: #e8eaed; }\n .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #5a5e62;\n background-color: #dadde2; }\n .list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #5a5e62;\n border-color: #5a5e62; }\n\n.list-group-item-dark {\n color: #191919;\n background-color: #c5c5c5; }\n .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #191919;\n background-color: #b8b8b8; }\n .list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #191919;\n border-color: #191919; }\n\n.close {\n float: right;\n font-size: 1.40625rem;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-shadow: none;\n opacity: .5; }\n .close:hover {\n color: #fff;\n text-decoration: none; }\n .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75; }\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0; }\n\na.close.disabled {\n pointer-events: none; }\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: #444;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem; }\n .toast:not(:last-child) {\n margin-bottom: 0.75rem; }\n .toast.showing {\n opacity: 1; }\n .toast.show {\n display: block;\n opacity: 1; }\n .toast.hide {\n display: none; }\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #888;\n background-color: #303030;\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.toast-body {\n padding: 0.75rem; }\n\n.modal-open {\n overflow: hidden; }\n .modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto; }\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0; }\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none; }\n .modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px); }\n @media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none; } }\n .modal.show .modal-dialog {\n transform: none; }\n .modal.modal-static .modal-dialog {\n transform: scale(1.02); }\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden; }\n .modal-dialog-scrollable .modal-header,\n .modal-dialog-scrollable .modal-footer {\n flex-shrink: 0; }\n .modal-dialog-scrollable .modal-body {\n overflow-y: auto; }\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem); }\n .modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: ""; }\n .modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%; }\n .modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none; }\n .modal-dialog-centered.modal-dialog-scrollable::before {\n content: none; }\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #303030;\n background-clip: padding-box;\n border: 1px solid #444;\n border-radius: 0.3rem;\n outline: 0; }\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000; }\n .modal-backdrop.fade {\n opacity: 0; }\n .modal-backdrop.show {\n opacity: 0.5; }\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #444;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto; }\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5; }\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem; }\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #444;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px); }\n .modal-footer > * {\n margin: 0.25rem; }\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto; }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem); }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem); }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content; }\n .modal-sm {\n max-width: 300px; } }\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px; } }\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px; } }\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.825rem;\n word-wrap: break-word;\n opacity: 0; }\n .tooltip.show {\n opacity: 0.9; }\n .tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem; }\n .tooltip .arrow::before {\n position: absolute;\n content: "";\n border-color: transparent;\n border-style: solid; }\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {\n padding: 0.4rem 0; }\n .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {\n bottom: 0; }\n .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000; }\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {\n padding: 0 0.4rem; }\n .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000; }\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {\n padding: 0.4rem 0; }\n .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {\n top: 0; }\n .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000; }\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {\n padding: 0 0.4rem; }\n .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000; }\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem; }\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.825rem;\n word-wrap: break-word;\n background-color: #303030;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem; }\n .popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem; }\n .popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: "";\n border-color: transparent;\n border-style: solid; }\n\n.bs-popover-top, .bs-popover-auto[x-placement^="top"] {\n margin-bottom: 0.5rem; }\n .bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow {\n bottom: calc(-0.5rem - 1px); }\n .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #303030; }\n\n.bs-popover-right, .bs-popover-auto[x-placement^="right"] {\n margin-left: 0.5rem; }\n .bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #303030; }\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {\n margin-top: 0.5rem; }\n .bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow {\n top: calc(-0.5rem - 1px); }\n .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #303030; }\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: "";\n border-bottom: 1px solid #444; }\n\n.bs-popover-left, .bs-popover-auto[x-placement^="left"] {\n margin-right: 0.5rem; }\n .bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #303030; }\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 0.9375rem;\n background-color: #444;\n border-bottom: 1px solid #373737;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .popover-header:empty {\n display: none; }\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #fff; }\n\n.carousel {\n position: relative; }\n\n.carousel.pointer-event {\n touch-action: pan-y; }\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden; }\n .carousel-inner::after {\n display: block;\n clear: both;\n content: ""; }\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none; } }\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block; }\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%); }\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%); }\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none; }\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1; }\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none; } }\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none; } }\n .carousel-control-prev:hover, .carousel-control-prev:focus,\n .carousel-control-next:hover,\n .carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9; }\n\n.carousel-control-prev {\n left: 0; }\n\n.carousel-control-next {\n right: 0; }\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: 50% / 100% 100% no-repeat; }\n\n.carousel-control-prev-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z\'/%3e%3c/svg%3e"); }\n\n.carousel-control-next-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z\'/%3e%3c/svg%3e"); }\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none; }\n .carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none; } }\n .carousel-indicators .active {\n opacity: 1; }\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center; }\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg); } }\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: .75s linear infinite spinner-border; }\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em; }\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0); }\n 50% {\n opacity: 1;\n transform: none; } }\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: .75s linear infinite spinner-grow; }\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem; }\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n animation-duration: 1.5s; } }\n\n.align-baseline {\n vertical-align: baseline !important; }\n\n.align-top {\n vertical-align: top !important; }\n\n.align-middle {\n vertical-align: middle !important; }\n\n.align-bottom {\n vertical-align: bottom !important; }\n\n.align-text-bottom {\n vertical-align: text-bottom !important; }\n\n.align-text-top {\n vertical-align: text-top !important; }\n\n.bg-primary {\n background-color: #375a7f !important; }\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #28415b !important; }\n\n.bg-secondary {\n background-color: #444 !important; }\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #2b2b2b !important; }\n\n.bg-success {\n background-color: #00bc8c !important; }\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #008966 !important; }\n\n.bg-info {\n background-color: #3498db !important; }\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #217dbb !important; }\n\n.bg-warning {\n background-color: #f39c12 !important; }\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #c87f0a !important; }\n\n.bg-danger {\n background-color: #e74c3c !important; }\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #d62c1a !important; }\n\n.bg-light {\n background-color: #adb5bd !important; }\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #919ca6 !important; }\n\n.bg-dark {\n background-color: #303030 !important; }\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #171717 !important; }\n\n.bg-white {\n background-color: #fff !important; }\n\n.bg-transparent {\n background-color: transparent !important; }\n\n.border {\n border: 1px solid #dee2e6 !important; }\n\n.border-top {\n border-top: 1px solid #dee2e6 !important; }\n\n.border-right {\n border-right: 1px solid #dee2e6 !important; }\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important; }\n\n.border-left {\n border-left: 1px solid #dee2e6 !important; }\n\n.border-0 {\n border: 0 !important; }\n\n.border-top-0 {\n border-top: 0 !important; }\n\n.border-right-0 {\n border-right: 0 !important; }\n\n.border-bottom-0 {\n border-bottom: 0 !important; }\n\n.border-left-0 {\n border-left: 0 !important; }\n\n.border-primary {\n border-color: #375a7f !important; }\n\n.border-secondary {\n border-color: #444 !important; }\n\n.border-success {\n border-color: #00bc8c !important; }\n\n.border-info {\n border-color: #3498db !important; }\n\n.border-warning {\n border-color: #f39c12 !important; }\n\n.border-danger {\n border-color: #e74c3c !important; }\n\n.border-light {\n border-color: #adb5bd !important; }\n\n.border-dark {\n border-color: #303030 !important; }\n\n.border-white {\n border-color: #fff !important; }\n\n.rounded-sm {\n border-radius: 0.2rem !important; }\n\n.rounded {\n border-radius: 0.25rem !important; }\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important; }\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important; }\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-lg {\n border-radius: 0.3rem !important; }\n\n.rounded-circle {\n border-radius: 50% !important; }\n\n.rounded-pill {\n border-radius: 50rem !important; }\n\n.rounded-0 {\n border-radius: 0 !important; }\n\n.clearfix::after {\n display: block;\n clear: both;\n content: ""; }\n\n.d-none {\n display: none !important; }\n\n.d-inline {\n display: inline !important; }\n\n.d-inline-block {\n display: inline-block !important; }\n\n.d-block {\n display: block !important; }\n\n.d-table {\n display: table !important; }\n\n.d-table-row {\n display: table-row !important; }\n\n.d-table-cell {\n display: table-cell !important; }\n\n.d-flex {\n display: flex !important; }\n\n.d-inline-flex {\n display: inline-flex !important; }\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important; }\n .d-sm-inline {\n display: inline !important; }\n .d-sm-inline-block {\n display: inline-block !important; }\n .d-sm-block {\n display: block !important; }\n .d-sm-table {\n display: table !important; }\n .d-sm-table-row {\n display: table-row !important; }\n .d-sm-table-cell {\n display: table-cell !important; }\n .d-sm-flex {\n display: flex !important; }\n .d-sm-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important; }\n .d-md-inline {\n display: inline !important; }\n .d-md-inline-block {\n display: inline-block !important; }\n .d-md-block {\n display: block !important; }\n .d-md-table {\n display: table !important; }\n .d-md-table-row {\n display: table-row !important; }\n .d-md-table-cell {\n display: table-cell !important; }\n .d-md-flex {\n display: flex !important; }\n .d-md-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important; }\n .d-lg-inline {\n display: inline !important; }\n .d-lg-inline-block {\n display: inline-block !important; }\n .d-lg-block {\n display: block !important; }\n .d-lg-table {\n display: table !important; }\n .d-lg-table-row {\n display: table-row !important; }\n .d-lg-table-cell {\n display: table-cell !important; }\n .d-lg-flex {\n display: flex !important; }\n .d-lg-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important; }\n .d-xl-inline {\n display: inline !important; }\n .d-xl-inline-block {\n display: inline-block !important; }\n .d-xl-block {\n display: block !important; }\n .d-xl-table {\n display: table !important; }\n .d-xl-table-row {\n display: table-row !important; }\n .d-xl-table-cell {\n display: table-cell !important; }\n .d-xl-flex {\n display: flex !important; }\n .d-xl-inline-flex {\n display: inline-flex !important; } }\n\n@media print {\n .d-print-none {\n display: none !important; }\n .d-print-inline {\n display: inline !important; }\n .d-print-inline-block {\n display: inline-block !important; }\n .d-print-block {\n display: block !important; }\n .d-print-table {\n display: table !important; }\n .d-print-table-row {\n display: table-row !important; }\n .d-print-table-cell {\n display: table-cell !important; }\n .d-print-flex {\n display: flex !important; }\n .d-print-inline-flex {\n display: inline-flex !important; } }\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden; }\n .embed-responsive::before {\n display: block;\n content: ""; }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object,\n .embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0; }\n\n.embed-responsive-21by9::before {\n padding-top: 42.85714%; }\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%; }\n\n.embed-responsive-4by3::before {\n padding-top: 75%; }\n\n.embed-responsive-1by1::before {\n padding-top: 100%; }\n\n.flex-row {\n flex-direction: row !important; }\n\n.flex-column {\n flex-direction: column !important; }\n\n.flex-row-reverse {\n flex-direction: row-reverse !important; }\n\n.flex-column-reverse {\n flex-direction: column-reverse !important; }\n\n.flex-wrap {\n flex-wrap: wrap !important; }\n\n.flex-nowrap {\n flex-wrap: nowrap !important; }\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n\n.flex-fill {\n flex: 1 1 auto !important; }\n\n.flex-grow-0 {\n flex-grow: 0 !important; }\n\n.flex-grow-1 {\n flex-grow: 1 !important; }\n\n.flex-shrink-0 {\n flex-shrink: 0 !important; }\n\n.flex-shrink-1 {\n flex-shrink: 1 !important; }\n\n.justify-content-start {\n justify-content: flex-start !important; }\n\n.justify-content-end {\n justify-content: flex-end !important; }\n\n.justify-content-center {\n justify-content: center !important; }\n\n.justify-content-between {\n justify-content: space-between !important; }\n\n.justify-content-around {\n justify-content: space-around !important; }\n\n.align-items-start {\n align-items: flex-start !important; }\n\n.align-items-end {\n align-items: flex-end !important; }\n\n.align-items-center {\n align-items: center !important; }\n\n.align-items-baseline {\n align-items: baseline !important; }\n\n.align-items-stretch {\n align-items: stretch !important; }\n\n.align-content-start {\n align-content: flex-start !important; }\n\n.align-content-end {\n align-content: flex-end !important; }\n\n.align-content-center {\n align-content: center !important; }\n\n.align-content-between {\n align-content: space-between !important; }\n\n.align-content-around {\n align-content: space-around !important; }\n\n.align-content-stretch {\n align-content: stretch !important; }\n\n.align-self-auto {\n align-self: auto !important; }\n\n.align-self-start {\n align-self: flex-start !important; }\n\n.align-self-end {\n align-self: flex-end !important; }\n\n.align-self-center {\n align-self: center !important; }\n\n.align-self-baseline {\n align-self: baseline !important; }\n\n.align-self-stretch {\n align-self: stretch !important; }\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important; }\n .flex-sm-column {\n flex-direction: column !important; }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-sm-wrap {\n flex-wrap: wrap !important; }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important; }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-sm-fill {\n flex: 1 1 auto !important; }\n .flex-sm-grow-0 {\n flex-grow: 0 !important; }\n .flex-sm-grow-1 {\n flex-grow: 1 !important; }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-sm-start {\n justify-content: flex-start !important; }\n .justify-content-sm-end {\n justify-content: flex-end !important; }\n .justify-content-sm-center {\n justify-content: center !important; }\n .justify-content-sm-between {\n justify-content: space-between !important; }\n .justify-content-sm-around {\n justify-content: space-around !important; }\n .align-items-sm-start {\n align-items: flex-start !important; }\n .align-items-sm-end {\n align-items: flex-end !important; }\n .align-items-sm-center {\n align-items: center !important; }\n .align-items-sm-baseline {\n align-items: baseline !important; }\n .align-items-sm-stretch {\n align-items: stretch !important; }\n .align-content-sm-start {\n align-content: flex-start !important; }\n .align-content-sm-end {\n align-content: flex-end !important; }\n .align-content-sm-center {\n align-content: center !important; }\n .align-content-sm-between {\n align-content: space-between !important; }\n .align-content-sm-around {\n align-content: space-around !important; }\n .align-content-sm-stretch {\n align-content: stretch !important; }\n .align-self-sm-auto {\n align-self: auto !important; }\n .align-self-sm-start {\n align-self: flex-start !important; }\n .align-self-sm-end {\n align-self: flex-end !important; }\n .align-self-sm-center {\n align-self: center !important; }\n .align-self-sm-baseline {\n align-self: baseline !important; }\n .align-self-sm-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important; }\n .flex-md-column {\n flex-direction: column !important; }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-md-wrap {\n flex-wrap: wrap !important; }\n .flex-md-nowrap {\n flex-wrap: nowrap !important; }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-md-fill {\n flex: 1 1 auto !important; }\n .flex-md-grow-0 {\n flex-grow: 0 !important; }\n .flex-md-grow-1 {\n flex-grow: 1 !important; }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-md-start {\n justify-content: flex-start !important; }\n .justify-content-md-end {\n justify-content: flex-end !important; }\n .justify-content-md-center {\n justify-content: center !important; }\n .justify-content-md-between {\n justify-content: space-between !important; }\n .justify-content-md-around {\n justify-content: space-around !important; }\n .align-items-md-start {\n align-items: flex-start !important; }\n .align-items-md-end {\n align-items: flex-end !important; }\n .align-items-md-center {\n align-items: center !important; }\n .align-items-md-baseline {\n align-items: baseline !important; }\n .align-items-md-stretch {\n align-items: stretch !important; }\n .align-content-md-start {\n align-content: flex-start !important; }\n .align-content-md-end {\n align-content: flex-end !important; }\n .align-content-md-center {\n align-content: center !important; }\n .align-content-md-between {\n align-content: space-between !important; }\n .align-content-md-around {\n align-content: space-around !important; }\n .align-content-md-stretch {\n align-content: stretch !important; }\n .align-self-md-auto {\n align-self: auto !important; }\n .align-self-md-start {\n align-self: flex-start !important; }\n .align-self-md-end {\n align-self: flex-end !important; }\n .align-self-md-center {\n align-self: center !important; }\n .align-self-md-baseline {\n align-self: baseline !important; }\n .align-self-md-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important; }\n .flex-lg-column {\n flex-direction: column !important; }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-lg-wrap {\n flex-wrap: wrap !important; }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important; }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-lg-fill {\n flex: 1 1 auto !important; }\n .flex-lg-grow-0 {\n flex-grow: 0 !important; }\n .flex-lg-grow-1 {\n flex-grow: 1 !important; }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-lg-start {\n justify-content: flex-start !important; }\n .justify-content-lg-end {\n justify-content: flex-end !important; }\n .justify-content-lg-center {\n justify-content: center !important; }\n .justify-content-lg-between {\n justify-content: space-between !important; }\n .justify-content-lg-around {\n justify-content: space-around !important; }\n .align-items-lg-start {\n align-items: flex-start !important; }\n .align-items-lg-end {\n align-items: flex-end !important; }\n .align-items-lg-center {\n align-items: center !important; }\n .align-items-lg-baseline {\n align-items: baseline !important; }\n .align-items-lg-stretch {\n align-items: stretch !important; }\n .align-content-lg-start {\n align-content: flex-start !important; }\n .align-content-lg-end {\n align-content: flex-end !important; }\n .align-content-lg-center {\n align-content: center !important; }\n .align-content-lg-between {\n align-content: space-between !important; }\n .align-content-lg-around {\n align-content: space-around !important; }\n .align-content-lg-stretch {\n align-content: stretch !important; }\n .align-self-lg-auto {\n align-self: auto !important; }\n .align-self-lg-start {\n align-self: flex-start !important; }\n .align-self-lg-end {\n align-self: flex-end !important; }\n .align-self-lg-center {\n align-self: center !important; }\n .align-self-lg-baseline {\n align-self: baseline !important; }\n .align-self-lg-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important; }\n .flex-xl-column {\n flex-direction: column !important; }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-xl-wrap {\n flex-wrap: wrap !important; }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important; }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-xl-fill {\n flex: 1 1 auto !important; }\n .flex-xl-grow-0 {\n flex-grow: 0 !important; }\n .flex-xl-grow-1 {\n flex-grow: 1 !important; }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-xl-start {\n justify-content: flex-start !important; }\n .justify-content-xl-end {\n justify-content: flex-end !important; }\n .justify-content-xl-center {\n justify-content: center !important; }\n .justify-content-xl-between {\n justify-content: space-between !important; }\n .justify-content-xl-around {\n justify-content: space-around !important; }\n .align-items-xl-start {\n align-items: flex-start !important; }\n .align-items-xl-end {\n align-items: flex-end !important; }\n .align-items-xl-center {\n align-items: center !important; }\n .align-items-xl-baseline {\n align-items: baseline !important; }\n .align-items-xl-stretch {\n align-items: stretch !important; }\n .align-content-xl-start {\n align-content: flex-start !important; }\n .align-content-xl-end {\n align-content: flex-end !important; }\n .align-content-xl-center {\n align-content: center !important; }\n .align-content-xl-between {\n align-content: space-between !important; }\n .align-content-xl-around {\n align-content: space-around !important; }\n .align-content-xl-stretch {\n align-content: stretch !important; }\n .align-self-xl-auto {\n align-self: auto !important; }\n .align-self-xl-start {\n align-self: flex-start !important; }\n .align-self-xl-end {\n align-self: flex-end !important; }\n .align-self-xl-center {\n align-self: center !important; }\n .align-self-xl-baseline {\n align-self: baseline !important; }\n .align-self-xl-stretch {\n align-self: stretch !important; } }\n\n.float-left {\n float: left !important; }\n\n.float-right {\n float: right !important; }\n\n.float-none {\n float: none !important; }\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important; }\n .float-sm-right {\n float: right !important; }\n .float-sm-none {\n float: none !important; } }\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important; }\n .float-md-right {\n float: right !important; }\n .float-md-none {\n float: none !important; } }\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important; }\n .float-lg-right {\n float: right !important; }\n .float-lg-none {\n float: none !important; } }\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important; }\n .float-xl-right {\n float: right !important; }\n .float-xl-none {\n float: none !important; } }\n\n.user-select-all {\n user-select: all !important; }\n\n.user-select-auto {\n user-select: auto !important; }\n\n.user-select-none {\n user-select: none !important; }\n\n.overflow-auto {\n overflow: auto !important; }\n\n.overflow-hidden {\n overflow: hidden !important; }\n\n.position-static {\n position: static !important; }\n\n.position-relative {\n position: relative !important; }\n\n.position-absolute {\n position: absolute !important; }\n\n.position-fixed {\n position: fixed !important; }\n\n.position-sticky {\n position: sticky !important; }\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030; }\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030; }\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal; }\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }\n\n.shadow-none {\n box-shadow: none !important; }\n\n.w-25 {\n width: 25% !important; }\n\n.w-50 {\n width: 50% !important; }\n\n.w-75 {\n width: 75% !important; }\n\n.w-100 {\n width: 100% !important; }\n\n.w-auto {\n width: auto !important; }\n\n.h-25 {\n height: 25% !important; }\n\n.h-50 {\n height: 50% !important; }\n\n.h-75 {\n height: 75% !important; }\n\n.h-100 {\n height: 100% !important; }\n\n.h-auto {\n height: auto !important; }\n\n.mw-100 {\n max-width: 100% !important; }\n\n.mh-100 {\n max-height: 100% !important; }\n\n.min-vw-100 {\n min-width: 100vw !important; }\n\n.min-vh-100 {\n min-height: 100vh !important; }\n\n.vw-100 {\n width: 100vw !important; }\n\n.vh-100 {\n height: 100vh !important; }\n\n.m-0 {\n margin: 0 !important; }\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important; }\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important; }\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important; }\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important; }\n\n.m-1 {\n margin: 0.25rem !important; }\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important; }\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important; }\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important; }\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important; }\n\n.m-2 {\n margin: 0.5rem !important; }\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important; }\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important; }\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important; }\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important; }\n\n.m-3 {\n margin: 1rem !important; }\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important; }\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important; }\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important; }\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important; }\n\n.m-4 {\n margin: 1.5rem !important; }\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important; }\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important; }\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important; }\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important; }\n\n.m-5 {\n margin: 3rem !important; }\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important; }\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important; }\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important; }\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important; }\n\n.p-0 {\n padding: 0 !important; }\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important; }\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important; }\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important; }\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important; }\n\n.p-1 {\n padding: 0.25rem !important; }\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important; }\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important; }\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important; }\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important; }\n\n.p-2 {\n padding: 0.5rem !important; }\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important; }\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important; }\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important; }\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important; }\n\n.p-3 {\n padding: 1rem !important; }\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important; }\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important; }\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important; }\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important; }\n\n.p-4 {\n padding: 1.5rem !important; }\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important; }\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important; }\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important; }\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important; }\n\n.p-5 {\n padding: 3rem !important; }\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important; }\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important; }\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important; }\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important; }\n\n.m-n1 {\n margin: -0.25rem !important; }\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important; }\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important; }\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important; }\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important; }\n\n.m-n2 {\n margin: -0.5rem !important; }\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important; }\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important; }\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important; }\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important; }\n\n.m-n3 {\n margin: -1rem !important; }\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important; }\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important; }\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important; }\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important; }\n\n.m-n4 {\n margin: -1.5rem !important; }\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important; }\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important; }\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important; }\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important; }\n\n.m-n5 {\n margin: -3rem !important; }\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important; }\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important; }\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important; }\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important; }\n\n.m-auto {\n margin: auto !important; }\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important; }\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important; }\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important; }\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important; }\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important; }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important; }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important; }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important; }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important; }\n .m-sm-1 {\n margin: 0.25rem !important; }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important; }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important; }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important; }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important; }\n .m-sm-2 {\n margin: 0.5rem !important; }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important; }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important; }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important; }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important; }\n .m-sm-3 {\n margin: 1rem !important; }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important; }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important; }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important; }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important; }\n .m-sm-4 {\n margin: 1.5rem !important; }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important; }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important; }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important; }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important; }\n .m-sm-5 {\n margin: 3rem !important; }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important; }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important; }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important; }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important; }\n .p-sm-0 {\n padding: 0 !important; }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important; }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important; }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important; }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important; }\n .p-sm-1 {\n padding: 0.25rem !important; }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important; }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important; }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important; }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important; }\n .p-sm-2 {\n padding: 0.5rem !important; }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important; }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important; }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important; }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important; }\n .p-sm-3 {\n padding: 1rem !important; }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important; }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important; }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important; }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important; }\n .p-sm-4 {\n padding: 1.5rem !important; }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important; }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important; }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important; }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important; }\n .p-sm-5 {\n padding: 3rem !important; }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important; }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important; }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important; }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important; }\n .m-sm-n1 {\n margin: -0.25rem !important; }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important; }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important; }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important; }\n .m-sm-n2 {\n margin: -0.5rem !important; }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important; }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important; }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important; }\n .m-sm-n3 {\n margin: -1rem !important; }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important; }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important; }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important; }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important; }\n .m-sm-n4 {\n margin: -1.5rem !important; }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important; }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important; }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important; }\n .m-sm-n5 {\n margin: -3rem !important; }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important; }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important; }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important; }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important; }\n .m-sm-auto {\n margin: auto !important; }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important; }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important; }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important; }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important; }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important; }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important; }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important; }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important; }\n .m-md-1 {\n margin: 0.25rem !important; }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important; }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important; }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important; }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important; }\n .m-md-2 {\n margin: 0.5rem !important; }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important; }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important; }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important; }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important; }\n .m-md-3 {\n margin: 1rem !important; }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important; }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important; }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important; }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important; }\n .m-md-4 {\n margin: 1.5rem !important; }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important; }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important; }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important; }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important; }\n .m-md-5 {\n margin: 3rem !important; }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important; }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important; }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important; }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important; }\n .p-md-0 {\n padding: 0 !important; }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important; }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important; }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important; }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important; }\n .p-md-1 {\n padding: 0.25rem !important; }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important; }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important; }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important; }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important; }\n .p-md-2 {\n padding: 0.5rem !important; }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important; }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important; }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important; }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important; }\n .p-md-3 {\n padding: 1rem !important; }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important; }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important; }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important; }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important; }\n .p-md-4 {\n padding: 1.5rem !important; }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important; }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important; }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important; }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important; }\n .p-md-5 {\n padding: 3rem !important; }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important; }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important; }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important; }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important; }\n .m-md-n1 {\n margin: -0.25rem !important; }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important; }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important; }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important; }\n .m-md-n2 {\n margin: -0.5rem !important; }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important; }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important; }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important; }\n .m-md-n3 {\n margin: -1rem !important; }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important; }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important; }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important; }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important; }\n .m-md-n4 {\n margin: -1.5rem !important; }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important; }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important; }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important; }\n .m-md-n5 {\n margin: -3rem !important; }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important; }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important; }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important; }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important; }\n .m-md-auto {\n margin: auto !important; }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important; }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important; }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important; }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important; }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important; }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important; }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important; }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important; }\n .m-lg-1 {\n margin: 0.25rem !important; }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important; }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important; }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important; }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important; }\n .m-lg-2 {\n margin: 0.5rem !important; }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important; }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important; }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important; }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important; }\n .m-lg-3 {\n margin: 1rem !important; }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important; }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important; }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important; }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important; }\n .m-lg-4 {\n margin: 1.5rem !important; }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important; }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important; }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important; }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important; }\n .m-lg-5 {\n margin: 3rem !important; }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important; }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important; }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important; }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important; }\n .p-lg-0 {\n padding: 0 !important; }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important; }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important; }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important; }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important; }\n .p-lg-1 {\n padding: 0.25rem !important; }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important; }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important; }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important; }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important; }\n .p-lg-2 {\n padding: 0.5rem !important; }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important; }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important; }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important; }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important; }\n .p-lg-3 {\n padding: 1rem !important; }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important; }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important; }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important; }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important; }\n .p-lg-4 {\n padding: 1.5rem !important; }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important; }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important; }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important; }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important; }\n .p-lg-5 {\n padding: 3rem !important; }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important; }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important; }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important; }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important; }\n .m-lg-n1 {\n margin: -0.25rem !important; }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important; }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important; }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important; }\n .m-lg-n2 {\n margin: -0.5rem !important; }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important; }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important; }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important; }\n .m-lg-n3 {\n margin: -1rem !important; }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important; }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important; }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important; }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important; }\n .m-lg-n4 {\n margin: -1.5rem !important; }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important; }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important; }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important; }\n .m-lg-n5 {\n margin: -3rem !important; }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important; }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important; }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important; }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important; }\n .m-lg-auto {\n margin: auto !important; }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important; }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important; }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important; }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important; }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important; }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important; }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important; }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important; }\n .m-xl-1 {\n margin: 0.25rem !important; }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important; }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important; }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important; }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important; }\n .m-xl-2 {\n margin: 0.5rem !important; }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important; }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important; }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important; }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important; }\n .m-xl-3 {\n margin: 1rem !important; }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important; }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important; }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important; }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important; }\n .m-xl-4 {\n margin: 1.5rem !important; }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important; }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important; }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important; }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important; }\n .m-xl-5 {\n margin: 3rem !important; }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important; }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important; }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important; }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important; }\n .p-xl-0 {\n padding: 0 !important; }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important; }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important; }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important; }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important; }\n .p-xl-1 {\n padding: 0.25rem !important; }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important; }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important; }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important; }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important; }\n .p-xl-2 {\n padding: 0.5rem !important; }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important; }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important; }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important; }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important; }\n .p-xl-3 {\n padding: 1rem !important; }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important; }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important; }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important; }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important; }\n .p-xl-4 {\n padding: 1.5rem !important; }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important; }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important; }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important; }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important; }\n .p-xl-5 {\n padding: 3rem !important; }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important; }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important; }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important; }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important; }\n .m-xl-n1 {\n margin: -0.25rem !important; }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important; }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important; }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important; }\n .m-xl-n2 {\n margin: -0.5rem !important; }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important; }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important; }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important; }\n .m-xl-n3 {\n margin: -1rem !important; }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important; }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important; }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important; }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important; }\n .m-xl-n4 {\n margin: -1.5rem !important; }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important; }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important; }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important; }\n .m-xl-n5 {\n margin: -3rem !important; }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important; }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important; }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important; }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important; }\n .m-xl-auto {\n margin: auto !important; }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important; }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important; }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important; }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important; } }\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: "";\n background-color: rgba(0, 0, 0, 0); }\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; }\n\n.text-justify {\n text-align: justify !important; }\n\n.text-wrap {\n white-space: normal !important; }\n\n.text-nowrap {\n white-space: nowrap !important; }\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n\n.text-left {\n text-align: left !important; }\n\n.text-right {\n text-align: right !important; }\n\n.text-center {\n text-align: center !important; }\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important; }\n .text-sm-right {\n text-align: right !important; }\n .text-sm-center {\n text-align: center !important; } }\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important; }\n .text-md-right {\n text-align: right !important; }\n .text-md-center {\n text-align: center !important; } }\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important; }\n .text-lg-right {\n text-align: right !important; }\n .text-lg-center {\n text-align: center !important; } }\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important; }\n .text-xl-right {\n text-align: right !important; }\n .text-xl-center {\n text-align: center !important; } }\n\n.text-lowercase {\n text-transform: lowercase !important; }\n\n.text-uppercase {\n text-transform: uppercase !important; }\n\n.text-capitalize {\n text-transform: capitalize !important; }\n\n.font-weight-light {\n font-weight: 300 !important; }\n\n.font-weight-lighter {\n font-weight: lighter !important; }\n\n.font-weight-normal {\n font-weight: 400 !important; }\n\n.font-weight-bold {\n font-weight: 700 !important; }\n\n.font-weight-bolder {\n font-weight: bolder !important; }\n\n.font-italic {\n font-style: italic !important; }\n\n.text-white {\n color: #fff !important; }\n\n.text-primary {\n color: #375a7f !important; }\n\na.text-primary:hover, a.text-primary:focus {\n color: #20344a !important; }\n\n.text-secondary {\n color: #444 !important; }\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #1e1e1e !important; }\n\n.text-success {\n color: #00bc8c !important; }\n\na.text-success:hover, a.text-success:focus {\n color: #007053 !important; }\n\n.text-info {\n color: #3498db !important; }\n\na.text-info:hover, a.text-info:focus {\n color: #1d6fa5 !important; }\n\n.text-warning {\n color: #f39c12 !important; }\n\na.text-warning:hover, a.text-warning:focus {\n color: #b06f09 !important; }\n\n.text-danger {\n color: #e74c3c !important; }\n\na.text-danger:hover, a.text-danger:focus {\n color: #bf2718 !important; }\n\n.text-light {\n color: #adb5bd !important; }\n\na.text-light:hover, a.text-light:focus {\n color: #838f9b !important; }\n\n.text-dark {\n color: #303030 !important; }\n\na.text-dark:hover, a.text-dark:focus {\n color: #0a0a0a !important; }\n\n.text-body {\n color: #fff !important; }\n\n.text-muted {\n color: #888 !important; }\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important; }\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important; }\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0; }\n\n.text-decoration-none {\n text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important; }\n\n.text-reset {\n color: inherit !important; }\n\n.visible {\n visibility: visible !important; }\n\n.invisible {\n visibility: hidden !important; }\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important; }\n a:not(.btn) {\n text-decoration: underline; }\n abbr[title]::after {\n content: " (" attr(title) ")"; }\n pre {\n white-space: pre-wrap !important; }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid; }\n thead {\n display: table-header-group; }\n tr,\n img {\n page-break-inside: avoid; }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3; }\n h2,\n h3 {\n page-break-after: avoid; }\n @page {\n size: a3; }\n body {\n min-width: 992px !important; }\n .container {\n min-width: 992px !important; }\n .navbar {\n display: none; }\n .badge {\n border: 1px solid #000; }\n .table {\n border-collapse: collapse !important; }\n .table td,\n .table th {\n background-color: #fff !important; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important; }\n .table-dark {\n color: inherit; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #444; }\n .table .thead-dark th {\n color: inherit;\n border-color: #444; } }\n\n.blockquote-footer {\n color: #888; }\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #375a7f; }\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #444; }\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #adb5bd; }\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #303030; }\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #00bc8c; }\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #3498db; }\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #e74c3c; }\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #f39c12; }\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-hover .table-primary:hover,\n.table-hover .table-primary:hover > th,\n.table-hover .table-primary:hover > td {\n background-color: #2f4d6d; }\n\n.table-hover .table-secondary:hover,\n.table-hover .table-secondary:hover > th,\n.table-hover .table-secondary:hover > td {\n background-color: #373737; }\n\n.table-hover .table-light:hover,\n.table-hover .table-light:hover > th,\n.table-hover .table-light:hover > td {\n background-color: #9fa8b2; }\n\n.table-hover .table-dark:hover,\n.table-hover .table-dark:hover > th,\n.table-hover .table-dark:hover > td {\n background-color: #232323; }\n\n.table-hover .table-success:hover,\n.table-hover .table-success:hover > th,\n.table-hover .table-success:hover > td {\n background-color: #00a379; }\n\n.table-hover .table-info:hover,\n.table-hover .table-info:hover > th,\n.table-hover .table-info:hover > td {\n background-color: #258cd1; }\n\n.table-hover .table-danger:hover,\n.table-hover .table-danger:hover > th,\n.table-hover .table-danger:hover > td {\n background-color: #e43725; }\n\n.table-hover .table-warning:hover,\n.table-hover .table-warning:hover > th,\n.table-hover .table-warning:hover > td {\n background-color: #e08e0b; }\n\n.table-hover .table-active:hover,\n.table-hover .table-active:hover > th,\n.table-hover .table-active:hover > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.input-group-addon {\n color: #fff; }\n\n.nav-tabs .nav-link,\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-link.active:focus,\n.nav-tabs .nav-link.active:hover,\n.nav-tabs .nav-item.open .nav-link,\n.nav-tabs .nav-item.open .nav-link:focus,\n.nav-tabs .nav-item.open .nav-link:hover,\n.nav-pills .nav-link,\n.nav-pills .nav-link.active,\n.nav-pills .nav-link.active:focus,\n.nav-pills .nav-link.active:hover,\n.nav-pills .nav-item.open .nav-link,\n.nav-pills .nav-item.open .nav-link:focus,\n.nav-pills .nav-item.open .nav-link:hover {\n color: #fff; }\n\n.breadcrumb a {\n color: #fff; }\n\n.pagination a:hover {\n text-decoration: none; }\n\n.close {\n opacity: .4; }\n .close:hover, .close:focus {\n opacity: 1; }\n\n.alert {\n border: none;\n color: #fff; }\n .alert a,\n .alert .alert-link {\n color: #fff;\n text-decoration: underline; }\n .alert-primary {\n background-color: #375a7f; }\n .alert-secondary {\n background-color: #444; }\n .alert-success {\n background-color: #00bc8c; }\n .alert-info {\n background-color: #3498db; }\n .alert-warning {\n background-color: #f39c12; }\n .alert-danger {\n background-color: #e74c3c; }\n .alert-light {\n background-color: #adb5bd; }\n .alert-dark {\n background-color: #303030; }\n\n.list-group-item-action {\n color: #fff; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n background-color: #444;\n color: #fff; }\n .list-group-item-action .list-group-item-heading {\n color: #fff; }\n\nbody {\n min-height: 100vh; }\n\n.border-bottom {\n border-width: 3px !important; }\n\n.border-top {\n border-width: 3px !important; }\n\ntr.hide {\n display: none; }\n\n.rebooting {\n display: none; }\n\n/* body {\r\n border: 0;\r\n margin: 0;\r\n margin-bottom:50px;\r\n padding-left: 12px;\r\n padding-right: 12px;\r\n padding-bottom: 45px;\r\n}\r\na {\r\n color: #fff;\r\n transition: color .2s ease-out;\r\n text-decoration: none\r\n}\r\na:hover {\r\n color: #99f;\r\n text-decoration: none\r\n}\r\n.glyphicon {\r\n font-size: 18px;\r\n}\r\ninput:focus,\r\nselect:focus,\r\ntextarea:focus,\r\nbutton:focus {\r\n outline: none;\r\n}\r\n.blur {\r\n -webkit-filter: blur(2px);\r\n -moz-filter: blur(2px);\r\n -ms-filter: blur(2px);\r\n -o-filter: blur(2px);\r\n filter: blur(2px);\r\n}\r\n.ape {\r\n padding: 10px 0px 10px 10px;\r\n background-color: #444;\r\n}\r\n.ape:hover {\r\n cursor: pointer;\r\n}\r\nheader {\r\n border-bottom: 1px solid #000;\r\n border-top: 1px solid #000;\r\n}\r\nsection {\r\n border-bottom: 1px solid #000;\r\n border-top: 1px solid #000;\r\n}\r\nh1 {\r\n margin: 0;\r\n margin-top: 20px;\r\n padding: 10px;\r\n text-transform: uppercase;\r\n color: #888;\r\n font-size: 1.6em\r\n}\r\nh2 {\r\n margin: 0;\r\n margin-top: 20px;\r\n padding: 10px;\r\n text-transform: uppercase;\r\n color: #888;\r\n font-size: 1.0em\r\n}\r\nh3 {\r\n margin: 0;\r\n text-align: center;\r\n padding: 20px 0px 20px 0px;\r\n}\r\n.gr {\r\n color: green;\r\n}\r\n.rd {\r\n color: red;\r\n}\r\n#wifi-status {\r\n display: none;\r\n}\r\n#connect {\r\n display: none;\r\n}\r\n#connect_manual {\r\n display: none;\r\n}\r\n#manual_ssid {\r\n border: none;\r\n width: 80%;\r\n padding: 10px 0px 10px 10px;\r\n display: block\r\n}\r\n#manual_pwd {\r\n border: none;\r\n width: 80%;\r\n padding: 10px 0px 10px 10px;\r\n display: block\r\n}\r\n#pwd {\r\n border: none;\r\n width: 80%;\r\n padding: 10px 0px 10px 10px;\r\n display: block\r\n}\r\n.buttons {\r\n padding: 15px;\r\n}\r\n#join {\r\n float: right;\r\n}\r\n#manual_join {\r\n float: right;\r\n}\r\n#yes-disconnect {\r\n display: inline-block;\r\n}\r\n#no-disconnect {\r\n display: inline-block;\r\n}\r\n.tctr {\r\n text-align: center;\r\n}\r\n#connect-wait {\r\n display: none;\r\n}\r\n#connect-success {\r\n display: none;\r\n}\r\n#connect-fail {\r\n display: none;\r\n}\r\n#connect-details {\r\n display: none;\r\n}\r\n#diag-disconnect {\r\n display: none;\r\n}\r\n.fr {\r\n float: right;\r\n margin-right: 20px;\r\n} */\n/* .w0 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABzUlEQVRIS+WUTShEURTH3zyRhjQ+8hWxmCJMoSzEwsbCgi1LZRYW9pONptiwka9iI81CWFpYaEqNMkVKmpWN1IhYKN9ZDL/z3p3mxZh5g9X4168799xz/vPefedeLeuVC+3gdTgc07CsmCQ2DI2gg21Jci30wSpGt/CeghickTsHPVACDkgqp67rPgpO4E0ZZMIj7OHhxSvPtEyomcVDeFXJv+EZNvEsNa01rZfAuSUhThR2wU+ObJkbyhRNMMDaDIThBqy1MdZ3wAPawqfFC2Lj0Ab5kpBGxdAJs9TeW72ITUhCPZMjFYwwbwXpnkwlDzOIx50yXwP5c0MeggHGanNqSDqqBqQ7/Kxvg2zHAfMN8IE8uZhYO6eBnBXGKnOakLWfaQZ9jMRjSPXhZUuC5A9JjVFpKkeNSVVA0Tq8KJN0yFl4gilqbW2tm+SQKoybXIG8jcT34RSsh1Byt6iVg2ZLlRCg6JpROqEDpFheXZ5S9rcLFsl5YJwHad+MVA5y13w5lRY5oRsKjdm/Vz/7LR86zG+5wr+9NX+iOowjEO+aELEic+lv1ILppeUPosRst6QduTANgnE2mC+BnYswI1VwfYzCCL9dZij7pWkf6UeSTYAuE/QAAAAASUVORK5CYII=\') no-repeat left top;\r\n height: 24px;\r\n}\r\n.w1 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHiSURBVEhL5dRPKINxHMfxPVskpA35F3FYEVasHBYHFwcHrhyVZ8vBfblIceEi/4qLtINwdHCQUpQVKcnJRYqIg/J3OYz399nv0YPNtuzEt149+31/v+/n4fGYLVHpup4Rnyregd+K27TIghe63+8fx7wySqsPdbAj3qzha0MOV6ETiwTd4u0HUZxydgrtKISGj0xreG4gEAgycIRXFZCOR2yTQZSebeaa4Q1s7iOiDv/GM1bJLDJv0EHjzHLAdIFNjHBGHpkbxUo9utmbQBg3sM5G2d+AR24w82XznN4QmpGjXrCExRkXfJhk9t6aRW9YDtSwOFDNE9ZNyFLzKRczOegh406FL8ElG8JDM8S1Qtaq7KhEO0Y0TVtHGHusVxCEDy5oMLNqyVrgWm5kqaYw3mdVdmqQsENE8JbAPbY43yszMqiyHOr66QayL5XH0DJeVEgyUTxhjNmPR/vtBpZyc3hHDZohV5DfRvq7OMYtrDdZY7YwFpG8yhBi6JrrMFogww7IT1mOVsxy5oHrNIqRVpWgDtnGKn7log35xurfVxfPW/7QYT57Ybz7mapqgk9gvjU79ApiW5mpRkIvLTe4oJfyK5lKOQndgvG/wXoOSb8I061Svj4G0M9nZ6z198tmeweYtIrMYP17VAAAAABJRU5ErkJggg==\') no-repeat left top;\r\n height: 24px;\r\n}\r\n.w2 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHkSURBVEhL3dRLKERRGMDxuSPSkLzyilgo8iiUhVjYWFiwZancmSzsZSPFho28io1kISwtLKQURZGSrGykiFgo7yyG/zdzznRm5iK5Sk79uvd85/u++5hzx2Pb9q9yDLrJMWhIRB1sv98/ghlliFAXyuGFU21IbECSi9CKORrd4O0TQZyQO45mZMJCpKfZ3BcIBPooOMSravAdD9ikB63sJN1XN69kcQ8vKvknnrBMzyx9gRYCp0aCdo51DJIjr6wU2UoF2lkbxS6uYdYGWV9DtVxgMmbxjFg/apEM/ZQfyUADxqi9M3sRG5CEEib7KnjMvAaye2IbfUVupoMet6r5PDL0YjXBBY4Fai5kRxVCdscg66uQ17HDfAl9kDuXJzB3Thk5sxzzZa6DumHknN3QS+IBPvvh5ZVskN8ZU5+gz3XAlELRIp5Vk6/It/CIYWrjXm3URCkleUsV6iaXkKeR+DaOYH6EkrtCrXxoUf2iJoY8LFB0xXEA9ZBieXS5S3m/jZgi557jBGT7xvWKCxhyIP81ka/SgQ9NSDViURyDbvpTo82yrAPscl4HKxR1aRTT+BhvyhaxtPCSO6OKphfGBc6JZYaX3BnpNN1AUC7AfBrJoRUXR67X6+1BN+fp4dD/Hx7PO4o9VGuAapKIAAAAAElFTkSuQmCC\') no-repeat left top;\r\n height: 24px;\r\n}\r\n.w3 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAACAElEQVRIS7XUP0gbYRjH8VSpiBZJWvEflXYQKtqACg6ig4uDg651LPQSHLpLlyDoUhdpVdBFxEG0YwcHCQgRFJSCFKcuUohY6iC0VYtD9PuE9w3vXZ74h16HD3fv733e53KX9y7ied5/pYZhUkPHQ3TBSyQS7zFvTBC9RivKoK3NCwZS3IxBLNLoBFc3yOEbtR/Qj8d4gEJPt3lVMpkcY8E+Lk2D+/iDTXrQyquwfW3zdiZ38dcU/4tzrNHzib3AAMGhU2BlsYFxauSRtaDWaMMwc1PYwU+4a3PMryMuF5gJTH4ne4dOVMLeZSkx9GCatb/cXmQpKXjOYM+EB4w7ILsn2Og28mNe0ePUNF9CzE7GCZc5NpmxkB31FLI7xpn/DHkc24xXMQb55XIH7s55Qc0Cx0YZ29A2LJyzG95S+AU3/fHySNLUjwTWl9tzG7iqWbSCC9PkNvIunGGStUWP1jcwWijOmIW2yTHkbiTfwle4L6HUfmKtvGi+fr6BowHLLPrBMYVuyGK5dfmV8nx7MUvNb44fIdu3qFdR4KiDfGsKb6WiCn145GQ+ahgmNQyTGpYwxPOWP3qHc/mE+76apaih4hmND2B3TYasJlCjUkPFS5oeORfIkhVtSY0aKqI0TSP/bjCew10+hPf6D+r5fIziDefRwFxJahgmNQyPF7kGEsc1es+A2E4AAAAASUVORK5CYII=\') no-repeat left top;\r\n height: 24px;\r\n} */\n/* .pw {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABIUlEQVRIS+3VsU7CUBTGcYhBJCwqwcmEJ2DkCQgzb8ADmLgYWXTzMVjcGNjYGEAXgoSRhTg5OroYIyFY/h+hWGwvtzQ0LpzkF8i5l/uRQ2kTjuPEKrC5T79vzHWJO4wxwzeGuMY5AitsQBFvmEObvNQboQBfhQk4gQ5wD+zgBrcYrHrSwzE2KkxAHVrQWB6QgiqJLB7xA+2pYaNsAWm8QAsa0Sn+1gU+oT1NHGFdtoAcJtBCSw1DuaPqQiNdly0gj1doQaMwleavPc+IJUDffKeADO7Rxxe08A4dEOQD2qPXJ1xh+VuYAirQVaNGFFPov2MM0OXm/UAUZRwCtjoEWP1vQBXuLTgKPYRKMAacoY0oIboDNLB8+PgC4hLY3B8nsQCQEf56jLJoQAAAAABJRU5ErkJggg==\') no-repeat left top;\r\n height: 24px;\r\n} */\n/* SpinKit is licensed under the MIT License. Copyright (c) 2015 Tobias Ahlin */\n/* .spinner {\r\n width: 40px;\r\n height: 40px;\r\n \r\n position: relative;\r\n margin: 100px auto;\r\n }\r\n \r\n .double-bounce1, .double-bounce2 {\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 50%;\r\n background-color: #333;\r\n opacity: 0.6;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n \r\n -webkit-animation: bounce 2.0s infinite ease-in-out;\r\n animation: bounce 2.0s infinite ease-in-out;\r\n }\r\n \r\n .double-bounce2 {\r\n -webkit-animation-delay: -1.0s;\r\n animation-delay: -1.0s;\r\n }\r\n \r\n @-webkit-keyframes bounce {\r\n 0%, 100% { -webkit-transform: scale(0.0) }\r\n 50% { -webkit-transform: scale(1.0) }\r\n }\r\n \r\n @keyframes bounce {\r\n 0%, 100% { \r\n transform: scale(0.0);\r\n -webkit-transform: scale(0.0);\r\n } 50% { \r\n transform: scale(1.0);\r\n -webkit-transform: scale(1.0);\r\n }\r\n } */\n/* end of SpinKit */\n/* daduke stuff */\n/* input[type=\'text\'], input[type=\'password\'], textarea, select, option {\r\n background: #999;\r\n border: 0;\r\n padding: 4px;\r\n}\r\n\r\n.custom-switch {\r\n margin-left: 8px;\r\n}\r\n\r\n.custom-switch, .custom-radio {\r\n padding-left: 2.25rem;\r\n padding-bottom: 1rem;\r\n}\r\n\r\n.custom-checkbox > .custom-control-label {\r\n padding-top: 0.5rem;\r\n padding-left: 2rem;\r\n padding-bottom: 0.1rem;\r\n}\r\n\r\n.custom-switch .custom-control-label::before {\r\n left: -2.25rem;\r\n height: 2rem;\r\n width: 3.5rem;\r\n pointer-events: all;\r\n border-radius: 1rem;\r\n background-color: #f00;\r\n} */\n/* \r\n.custom-switch .custom-control-label::after {\r\n top: calc(0.25rem + 2px);\r\n left: calc(-2.25rem + 2px);\r\n width: calc(2rem - 4px);\r\n height: calc(2rem - 4px);\r\n background-color: #adb5bd;\r\n border-radius: 2rem;\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\r\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .custom-switch .custom-control-label::after {\r\n transition: none;\r\n }\r\n} */\n/* \r\n.custom-switch .custom-control-input:checked ~ .custom-control-label::before {\r\n background-color: #0f0;\r\n}\r\n\r\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\r\n background-color: #fff;\r\n -webkit-transform: translateX(1.5rem); \r\n transform: translateX(1.5rem); \r\n}\r\n\r\ntextarea#autoexec1, textarea#fwurl, div#upload {\r\n width: 80%;\r\n}\r\n\r\ntable tr.MESSAGING_INFO {\r\n background: #123;\r\n}\r\n\r\ntable tr.MESSAGING_WARNING {\r\n background: #330;\r\n}\r\n\r\ntable tr.MESSAGING_ERROR {\r\n background: #300;\r\n}\r\n\r\ninput, textarea {\r\n border-radius: 3px;\r\n border: 1px solid transparent;\r\n border-top: none;\r\n border-bottom: 1px solid #DDD;\r\n box-shadow: inset 0 1px 2px rgba(0,0,0,.39), 0 -1px 1px #FFF, 0 1px 0 #FFF;\r\n}\r\n\r\n#otadiv {\r\n\tdisplay: none;\r\n}\r\n\r\n#btsinkdiv {\r\n\tdisplay: none;\r\n}\r\n\r\n.tooltip-inner {\r\n font-family: monospace, monospace;\r\n font-size: 70%;\r\n}\r\n\r\n#progress {\r\n width: 60%;\r\n}\r\n\r\n.progress-bar {\r\n color: #fff;\r\n background-color: #037AF0;\r\n}\r\n\r\nspan#flash-status {\r\n padding-left: 15px;\r\n font-size: 120%;\r\n} */\n/* #info {\r\n padding-top: 7px;\r\n float: right;\r\n display: grid;\r\n} */\n/* svg#battery {\r\n fill: #ddd;\r\n}\r\n\r\nsvg#output {\r\n fill: #ddd;\r\n padding-right: 4px;\r\n}\r\n\r\nsvg#jack {\r\n fill: #ddd;\r\n padding-right: 4px;\r\n} */\n/* \r\nul#navbar {\r\n border-bottom: 0px;\r\n}\r\n.navbar-nav {\r\n float: left;\r\n margin: 0;\r\n padding-top: 1rem;\r\n\r\n}\r\n#content {\r\n border-top: 1px solid black;\r\n} */\n/* .footer {\r\n position: fixed;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n background-color: #555;\r\n color: white;\r\n text-align: center;\r\n} */\n/* \r\n.sl {\r\n background-color: #053c1e;\r\n}\r\n.recovery {\r\n background-color: #3c0505;\r\n}\r\n\r\ntd.value {\r\n width: 80%;\r\n}\r\n\r\n#boot-div {\r\n float: right;\r\n}\r\ndiv#message {\r\n display: none;\r\n color: #000;\r\n background: #f00;\r\n position:fixed;\r\n padding: 8px;\r\n top: 20%;\r\n left: 50%;\r\n width:20em;\r\n height:4em;\r\n text-align: center;\r\n margin-left: -10em; \r\n margin-top: -2em; \r\n border-radius: 8px;\r\n box-shadow: 0px 5px 2px -5px rgba(255, 255, 255, 0.5) inset, 0px 10px 20px -5px rgba(255, 255, 255, 0.1) inset, 0 0px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 1px rgba(0, 0, 0, 0.12), 0 1px 10px 0 rgba(0, 0, 0, 0.3);\r\n z-index: 20;\r\n} */\n/* \r\n */\n/* \r\n#searchfw {\r\n float: right;\r\n display: none;\r\n} */\n/* button#updateAP {\r\n float: right;\r\n display: inline;\r\n} */\n',""])},36:function(n,t){},37:function(n,t,o){"use strict";o.r(t);o(6),o(11),o(16),o(17),o(18),o(19),o(20),o(21),o(22),o(23),o(24),o(25),o(26),o(27),o(28),o(29),o(30),o(31),o(32);var r=o(3),e=o.n(r),a=o(1),i=o.n(a),l=o(5),d=o.n(l),m=o(0);function c(n,t){var o;if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(o=function(n,t){if(!n)return;if("string"==typeof n)return s(n,t);var o=Object.prototype.toString.call(n).slice(8,-1);"Object"===o&&n.constructor&&(o=n.constructor.name);if("Map"===o||"Set"===o)return Array.from(n);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return s(n,t)}(n))||t&&n&&"number"==typeof n.length){o&&(n=o);var r=0,e=function(){};return{s:e,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){o=n[Symbol.iterator]()},n:function(){var n=o.next();return i=n.done,n},e:function(n){l=!0,a=n},f:function(){try{i||null==o.return||o.return()}finally{if(l)throw a}}}}function s(n,t){(null==t||t>n.length)&&(t=n.length);for(var o=0,r=new Array(t);o")}}),Object.assign(Date.prototype,{toLocalShort:function(){return this.toLocaleString(void 0,{dateStyle:"short",timeStyle:"short"})}});var p=1,b=17,g=2,f=18,u=4,h=20,x=8,v=24,w={bt_playing:"play-circle-fill",bt_disconnected:"bluetooth-fill",bt_neutral:"",bt_connected:"bluetooth-connect-fill",bt_disabled:"",play_arrow:"play-circle-fill",pause:"pause-circle-fill",stop:"stop-circle-fill","":""},y=[{desc:"Idle",sub:["bt_neutral"]},{desc:"Discovering",sub:["bt_disconnected"]},{desc:"Discovered",sub:["bt_disconnected"]},{desc:"Unconnected",sub:["bt_disconnected"]},{desc:"Connecting",sub:["bt_disconnected"]},{desc:"Connected",sub:["bt_connected","play_arrow","bt_playing","pause","stop"]},{desc:"Disconnecting",sub:["bt_disconnected"]}],k={MESSAGING_INFO:"badge-success",MESSAGING_WARNING:"badge-warning",MESSAGING_ERROR:"badge-danger"},A=0,S=1,z=3,E=4,_={0:"eRunning", +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{11:function(n,t,o){var r=o(12);"string"==typeof r&&(r=[[n.i,r,""]]);var e={hmr:!0,transform:void 0,insertInto:void 0};o(14)(r,e);r.locals&&(n.exports=r.locals)},12:function(n,t,o){(t=n.exports=o(13)(!1)).push([n.i,"@import url(https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap);",""]),t.push([n.i,'/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #375a7f;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #e74c3c;\n --orange: #fd7e14;\n --yellow: #f39c12;\n --green: #00bc8c;\n --teal: #20c997;\n --cyan: #3498db;\n --white: #fff;\n --gray: #888;\n --gray-dark: #303030;\n --primary: #375a7f;\n --secondary: #444;\n --success: #00bc8c;\n --info: #3498db;\n --warning: #f39c12;\n --danger: #e74c3c;\n --light: #adb5bd;\n --dark: #303030;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; }\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block; }\n\nbody {\n margin: 0;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #fff;\n text-align: left;\n background-color: #222; }\n\n[tabindex="-1"]:focus:not(:focus-visible) {\n outline: 0 !important; }\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible; }\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem; }\n\np {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none; }\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit; }\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0; }\n\ndt {\n font-weight: 700; }\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; }\n\nblockquote {\n margin: 0 0 1rem; }\n\nb,\nstrong {\n font-weight: bolder; }\n\nsmall {\n font-size: 80%; }\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline; }\n\nsub {\n bottom: -.25em; }\n\nsup {\n top: -.5em; }\n\na {\n color: #00bc8c;\n text-decoration: none;\n background-color: transparent; }\n a:hover {\n color: #007053;\n text-decoration: underline; }\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none; }\n a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none; }\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n font-size: 1em; }\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar; }\n\nfigure {\n margin: 0 0 1rem; }\n\nimg {\n vertical-align: middle;\n border-style: none; }\n\nsvg {\n overflow: hidden;\n vertical-align: middle; }\n\ntable {\n border-collapse: collapse; }\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #888;\n text-align: left;\n caption-side: bottom; }\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent; }\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem; }\n\nbutton {\n border-radius: 0; }\n\nbutton:focus:not(:focus-visible) {\n outline: 0; }\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit; }\n\nbutton,\ninput {\n overflow: visible; }\n\nbutton,\nselect {\n text-transform: none; }\n\n[role="button"] {\n cursor: pointer; }\n\nselect {\n word-wrap: normal; }\n\nbutton,\n[type="button"],\n[type="reset"],\n[type="submit"] {\n -webkit-appearance: button; }\n\nbutton:not(:disabled),\n[type="button"]:not(:disabled),\n[type="reset"]:not(:disabled),\n[type="submit"]:not(:disabled) {\n cursor: pointer; }\n\nbutton::-moz-focus-inner,\n[type="button"]::-moz-focus-inner,\n[type="reset"]::-moz-focus-inner,\n[type="submit"]::-moz-focus-inner {\n padding: 0;\n border-style: none; }\n\ninput[type="radio"],\ninput[type="checkbox"] {\n box-sizing: border-box;\n padding: 0; }\n\ntextarea {\n overflow: auto;\n resize: vertical; }\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0; }\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal; }\n\nprogress {\n vertical-align: baseline; }\n\n[type="number"]::-webkit-inner-spin-button,\n[type="number"]::-webkit-outer-spin-button {\n height: auto; }\n\n[type="search"] {\n outline-offset: -2px;\n -webkit-appearance: none; }\n\n[type="search"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button; }\n\noutput {\n display: inline-block; }\n\nsummary {\n display: list-item;\n cursor: pointer; }\n\ntemplate {\n display: none; }\n\n[hidden] {\n display: none !important; }\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2; }\n\nh1, .h1 {\n font-size: 3rem; }\n\nh2, .h2 {\n font-size: 2.5rem; }\n\nh3, .h3 {\n font-size: 2rem; }\n\nh4, .h4 {\n font-size: 1.40625rem; }\n\nh5, .h5 {\n font-size: 1.17188rem; }\n\nh6, .h6 {\n font-size: 0.9375rem; }\n\n.lead {\n font-size: 1.17188rem;\n font-weight: 300; }\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1); }\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400; }\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3; }\n\n.list-unstyled {\n padding-left: 0;\n list-style: none; }\n\n.list-inline {\n padding-left: 0;\n list-style: none; }\n\n.list-inline-item {\n display: inline-block; }\n .list-inline-item:not(:last-child) {\n margin-right: 0.5rem; }\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase; }\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.17188rem; }\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #888; }\n .blockquote-footer::before {\n content: "\\2014\\A0"; }\n\n.img-fluid {\n max-width: 100%;\n height: auto; }\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #222;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto; }\n\n.figure {\n display: inline-block; }\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1; }\n\n.figure-caption {\n font-size: 90%;\n color: #888; }\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word; }\n a > code {\n color: inherit; }\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #222;\n border-radius: 0.2rem; }\n kbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700; }\n\npre {\n display: block;\n font-size: 87.5%;\n color: inherit; }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal; }\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll; }\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto; }\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px; } }\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px; } }\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px; } }\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px; } }\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px; }\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0; }\n .no-gutters > .col,\n .no-gutters > [class*="col-"] {\n padding-right: 0;\n padding-left: 0; }\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .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-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .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-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .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-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .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-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px; }\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n\n.row-cols-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n\n.row-cols-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n\n.col-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n\n.col-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n\n.col-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n\n.col-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n\n.col-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n\n.col-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n\n.col-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n\n.col-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n\n.order-first {\n order: -1; }\n\n.order-last {\n order: 13; }\n\n.order-0 {\n order: 0; }\n\n.order-1 {\n order: 1; }\n\n.order-2 {\n order: 2; }\n\n.order-3 {\n order: 3; }\n\n.order-4 {\n order: 4; }\n\n.order-5 {\n order: 5; }\n\n.order-6 {\n order: 6; }\n\n.order-7 {\n order: 7; }\n\n.order-8 {\n order: 8; }\n\n.order-9 {\n order: 9; }\n\n.order-10 {\n order: 10; }\n\n.order-11 {\n order: 11; }\n\n.order-12 {\n order: 12; }\n\n.offset-1 {\n margin-left: 8.33333%; }\n\n.offset-2 {\n margin-left: 16.66667%; }\n\n.offset-3 {\n margin-left: 25%; }\n\n.offset-4 {\n margin-left: 33.33333%; }\n\n.offset-5 {\n margin-left: 41.66667%; }\n\n.offset-6 {\n margin-left: 50%; }\n\n.offset-7 {\n margin-left: 58.33333%; }\n\n.offset-8 {\n margin-left: 66.66667%; }\n\n.offset-9 {\n margin-left: 75%; }\n\n.offset-10 {\n margin-left: 83.33333%; }\n\n.offset-11 {\n margin-left: 91.66667%; }\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-sm-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-sm-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-sm-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-sm-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-sm-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-sm-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-sm-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-sm-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-sm-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-sm-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-sm-first {\n order: -1; }\n .order-sm-last {\n order: 13; }\n .order-sm-0 {\n order: 0; }\n .order-sm-1 {\n order: 1; }\n .order-sm-2 {\n order: 2; }\n .order-sm-3 {\n order: 3; }\n .order-sm-4 {\n order: 4; }\n .order-sm-5 {\n order: 5; }\n .order-sm-6 {\n order: 6; }\n .order-sm-7 {\n order: 7; }\n .order-sm-8 {\n order: 8; }\n .order-sm-9 {\n order: 9; }\n .order-sm-10 {\n order: 10; }\n .order-sm-11 {\n order: 11; }\n .order-sm-12 {\n order: 12; }\n .offset-sm-0 {\n margin-left: 0; }\n .offset-sm-1 {\n margin-left: 8.33333%; }\n .offset-sm-2 {\n margin-left: 16.66667%; }\n .offset-sm-3 {\n margin-left: 25%; }\n .offset-sm-4 {\n margin-left: 33.33333%; }\n .offset-sm-5 {\n margin-left: 41.66667%; }\n .offset-sm-6 {\n margin-left: 50%; }\n .offset-sm-7 {\n margin-left: 58.33333%; }\n .offset-sm-8 {\n margin-left: 66.66667%; }\n .offset-sm-9 {\n margin-left: 75%; }\n .offset-sm-10 {\n margin-left: 83.33333%; }\n .offset-sm-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-md-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-md-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-md-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-md-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-md-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-md-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-md-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-md-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-md-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-md-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-md-first {\n order: -1; }\n .order-md-last {\n order: 13; }\n .order-md-0 {\n order: 0; }\n .order-md-1 {\n order: 1; }\n .order-md-2 {\n order: 2; }\n .order-md-3 {\n order: 3; }\n .order-md-4 {\n order: 4; }\n .order-md-5 {\n order: 5; }\n .order-md-6 {\n order: 6; }\n .order-md-7 {\n order: 7; }\n .order-md-8 {\n order: 8; }\n .order-md-9 {\n order: 9; }\n .order-md-10 {\n order: 10; }\n .order-md-11 {\n order: 11; }\n .order-md-12 {\n order: 12; }\n .offset-md-0 {\n margin-left: 0; }\n .offset-md-1 {\n margin-left: 8.33333%; }\n .offset-md-2 {\n margin-left: 16.66667%; }\n .offset-md-3 {\n margin-left: 25%; }\n .offset-md-4 {\n margin-left: 33.33333%; }\n .offset-md-5 {\n margin-left: 41.66667%; }\n .offset-md-6 {\n margin-left: 50%; }\n .offset-md-7 {\n margin-left: 58.33333%; }\n .offset-md-8 {\n margin-left: 66.66667%; }\n .offset-md-9 {\n margin-left: 75%; }\n .offset-md-10 {\n margin-left: 83.33333%; }\n .offset-md-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-lg-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-lg-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-lg-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-lg-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-lg-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-lg-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-lg-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-lg-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-lg-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-lg-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-lg-first {\n order: -1; }\n .order-lg-last {\n order: 13; }\n .order-lg-0 {\n order: 0; }\n .order-lg-1 {\n order: 1; }\n .order-lg-2 {\n order: 2; }\n .order-lg-3 {\n order: 3; }\n .order-lg-4 {\n order: 4; }\n .order-lg-5 {\n order: 5; }\n .order-lg-6 {\n order: 6; }\n .order-lg-7 {\n order: 7; }\n .order-lg-8 {\n order: 8; }\n .order-lg-9 {\n order: 9; }\n .order-lg-10 {\n order: 10; }\n .order-lg-11 {\n order: 11; }\n .order-lg-12 {\n order: 12; }\n .offset-lg-0 {\n margin-left: 0; }\n .offset-lg-1 {\n margin-left: 8.33333%; }\n .offset-lg-2 {\n margin-left: 16.66667%; }\n .offset-lg-3 {\n margin-left: 25%; }\n .offset-lg-4 {\n margin-left: 33.33333%; }\n .offset-lg-5 {\n margin-left: 41.66667%; }\n .offset-lg-6 {\n margin-left: 50%; }\n .offset-lg-7 {\n margin-left: 58.33333%; }\n .offset-lg-8 {\n margin-left: 66.66667%; }\n .offset-lg-9 {\n margin-left: 75%; }\n .offset-lg-10 {\n margin-left: 83.33333%; }\n .offset-lg-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-xl-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-xl-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-xl-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-xl-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-xl-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-xl-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-xl-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-xl-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-xl-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-xl-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-xl-first {\n order: -1; }\n .order-xl-last {\n order: 13; }\n .order-xl-0 {\n order: 0; }\n .order-xl-1 {\n order: 1; }\n .order-xl-2 {\n order: 2; }\n .order-xl-3 {\n order: 3; }\n .order-xl-4 {\n order: 4; }\n .order-xl-5 {\n order: 5; }\n .order-xl-6 {\n order: 6; }\n .order-xl-7 {\n order: 7; }\n .order-xl-8 {\n order: 8; }\n .order-xl-9 {\n order: 9; }\n .order-xl-10 {\n order: 10; }\n .order-xl-11 {\n order: 11; }\n .order-xl-12 {\n order: 12; }\n .offset-xl-0 {\n margin-left: 0; }\n .offset-xl-1 {\n margin-left: 8.33333%; }\n .offset-xl-2 {\n margin-left: 16.66667%; }\n .offset-xl-3 {\n margin-left: 25%; }\n .offset-xl-4 {\n margin-left: 33.33333%; }\n .offset-xl-5 {\n margin-left: 41.66667%; }\n .offset-xl-6 {\n margin-left: 50%; }\n .offset-xl-7 {\n margin-left: 58.33333%; }\n .offset-xl-8 {\n margin-left: 66.66667%; }\n .offset-xl-9 {\n margin-left: 75%; }\n .offset-xl-10 {\n margin-left: 83.33333%; }\n .offset-xl-11 {\n margin-left: 91.66667%; } }\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #fff; }\n .table th,\n .table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #444; }\n .table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #444; }\n .table tbody + tbody {\n border-top: 2px solid #444; }\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem; }\n\n.table-bordered {\n border: 1px solid #444; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #444; }\n .table-bordered thead th,\n .table-bordered thead td {\n border-bottom-width: 2px; }\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0; }\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: #303030; }\n\n.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #c7d1db; }\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #97a9bc; }\n\n.table-hover .table-primary:hover {\n background-color: #b7c4d1; }\n .table-hover .table-primary:hover > td,\n .table-hover .table-primary:hover > th {\n background-color: #b7c4d1; }\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #cbcbcb; }\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #9e9e9e; }\n\n.table-hover .table-secondary:hover {\n background-color: #bebebe; }\n .table-hover .table-secondary:hover > td,\n .table-hover .table-secondary:hover > th {\n background-color: #bebebe; }\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #b8ecdf; }\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #7adcc3; }\n\n.table-hover .table-success:hover {\n background-color: #a4e7d6; }\n .table-hover .table-success:hover > td,\n .table-hover .table-success:hover > th {\n background-color: #a4e7d6; }\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #c6e2f5; }\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #95c9ec; }\n\n.table-hover .table-info:hover {\n background-color: #b0d7f1; }\n .table-hover .table-info:hover > td,\n .table-hover .table-info:hover > th {\n background-color: #b0d7f1; }\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #fce3bd; }\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #f9cc84; }\n\n.table-hover .table-warning:hover {\n background-color: #fbd9a5; }\n .table-hover .table-warning:hover > td,\n .table-hover .table-warning:hover > th {\n background-color: #fbd9a5; }\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f8cdc8; }\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #f3a29a; }\n\n.table-hover .table-danger:hover {\n background-color: #f5b8b1; }\n .table-hover .table-danger:hover > td,\n .table-hover .table-danger:hover > th {\n background-color: #f5b8b1; }\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #e8eaed; }\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #d4d9dd; }\n\n.table-hover .table-light:hover {\n background-color: #dadde2; }\n .table-hover .table-light:hover > td,\n .table-hover .table-light:hover > th {\n background-color: #dadde2; }\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c5c5c5; }\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #939393; }\n\n.table-hover .table-dark:hover {\n background-color: #b8b8b8; }\n .table-hover .table-dark:hover > td,\n .table-hover .table-dark:hover > th {\n background-color: #b8b8b8; }\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075); }\n .table-hover .table-active:hover > td,\n .table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table .thead-dark th {\n color: #fff;\n background-color: #303030;\n border-color: #434343; }\n\n.table .thead-light th {\n color: #444;\n background-color: #ebebeb;\n border-color: #444; }\n\n.table-dark {\n color: #fff;\n background-color: #303030; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th {\n border-color: #434343; }\n .table-dark.table-bordered {\n border: 0; }\n .table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05); }\n .table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075); }\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-sm > .table-bordered {\n border: 0; } }\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-md > .table-bordered {\n border: 0; } }\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-lg > .table-bordered {\n border: 0; } }\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-xl > .table-bordered {\n border: 0; } }\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive > .table-bordered {\n border: 0; }\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #444;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #222;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none; } }\n .form-control::-ms-expand {\n background-color: transparent;\n border: 0; }\n .form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #444; }\n .form-control:focus {\n color: #444;\n background-color: #fff;\n border-color: #739ac2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .form-control::placeholder {\n color: #888;\n opacity: 1; }\n .form-control:disabled, .form-control[readonly] {\n background-color: #ebebeb;\n opacity: 1; }\n\ninput[type="date"].form-control,\ninput[type="time"].form-control,\ninput[type="datetime-local"].form-control,\ninput[type="month"].form-control {\n appearance: none; }\n\nselect.form-control:focus::-ms-value {\n color: #444;\n background-color: #fff; }\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%; }\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5; }\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.17188rem;\n line-height: 1.5; }\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.825rem;\n line-height: 1.5; }\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 0.9375rem;\n line-height: 1.5;\n color: #fff;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0; }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0; }\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto; }\n\ntextarea.form-control {\n height: auto; }\n\n.form-group {\n margin-bottom: 1rem; }\n\n.form-text {\n display: block;\n margin-top: 0.25rem; }\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px; }\n .form-row > .col,\n .form-row > [class*="col-"] {\n padding-right: 5px;\n padding-left: 5px; }\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem; }\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem; }\n .form-check-input[disabled] ~ .form-check-label,\n .form-check-input:disabled ~ .form-check-label {\n color: #888; }\n\n.form-check-label {\n margin-bottom: 0; }\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem; }\n .form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0; }\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #00bc8c; }\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.825rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(0, 188, 140, 0.9);\n border-radius: 0.25rem; }\n .form-row > .col > .valid-tooltip,\n .form-row > [class*="col-"] > .valid-tooltip {\n left: 5px; }\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #00bc8c;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2300bc8c\' d=\'M2.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\'/%3e%3c/svg%3e");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #00bc8c;\n padding-right: calc(0.75em + 2.3125rem);\n background: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2300bc8c\' d=\'M2.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\'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; }\n .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #00bc8c; }\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #00bc8c; }\n .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #00bc8c; }\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #00efb2;\n background-color: #00efb2; }\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #00bc8c; }\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #00bc8c; }\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #e74c3c; }\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.825rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(231, 76, 60, 0.9);\n border-radius: 0.25rem; }\n .form-row > .col > .invalid-tooltip,\n .form-row > [class*="col-"] > .invalid-tooltip {\n left: 5px; }\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #e74c3c;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' fill=\'none\' stroke=\'%23e74c3c\' viewBox=\'0 0 12 12\'%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=\'%23e74c3c\' stroke=\'none\'/%3e%3c/svg%3e");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #e74c3c;\n padding-right: calc(0.75em + 2.3125rem);\n background: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' fill=\'none\' stroke=\'%23e74c3c\' viewBox=\'0 0 12 12\'%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=\'%23e74c3c\' stroke=\'none\'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; }\n .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #e74c3c; }\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #e74c3c; }\n .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #e74c3c; }\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #ed7669;\n background-color: #ed7669; }\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #e74c3c; }\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #e74c3c; }\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; }\n .form-inline .form-check {\n width: 100%; }\n @media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0; }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0; }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle; }\n .form-inline .form-control-plaintext {\n display: inline-block; }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto; }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0; }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0; }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center; }\n .form-inline .custom-control-label {\n margin-bottom: 0; } }\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #fff;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 0.9375rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none; } }\n .btn:hover {\n color: #fff;\n text-decoration: none; }\n .btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .btn.disabled, .btn:disabled {\n opacity: 0.65; }\n .btn:not(:disabled):not(.disabled) {\n cursor: pointer; }\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none; }\n\n.btn-primary {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-primary:hover {\n color: #fff;\n background-color: #2b4764;\n border-color: #28415b; }\n .btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #2b4764;\n border-color: #28415b;\n box-shadow: 0 0 0 0.2rem rgba(85, 115, 146, 0.5); }\n .btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #28415b;\n border-color: #243a53; }\n .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(85, 115, 146, 0.5); }\n\n.btn-secondary {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-secondary:hover {\n color: #fff;\n background-color: #313131;\n border-color: #2b2b2b; }\n .btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #313131;\n border-color: #2b2b2b;\n box-shadow: 0 0 0 0.2rem rgba(96, 96, 96, 0.5); }\n .btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #2b2b2b;\n border-color: #242424; }\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(96, 96, 96, 0.5); }\n\n.btn-success {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-success:hover {\n color: #fff;\n background-color: #009670;\n border-color: #008966; }\n .btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #009670;\n border-color: #008966;\n box-shadow: 0 0 0 0.2rem rgba(38, 198, 157, 0.5); }\n .btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #008966;\n border-color: #007c5d; }\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 198, 157, 0.5); }\n\n.btn-info {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-info:hover {\n color: #fff;\n background-color: #2384c6;\n border-color: #217dbb; }\n .btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #2384c6;\n border-color: #217dbb;\n box-shadow: 0 0 0 0.2rem rgba(82, 167, 224, 0.5); }\n .btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #217dbb;\n border-color: #1f76b0; }\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 167, 224, 0.5); }\n\n.btn-warning {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-warning:hover {\n color: #fff;\n background-color: #d4860b;\n border-color: #c87f0a; }\n .btn-warning:focus, .btn-warning.focus {\n color: #fff;\n background-color: #d4860b;\n border-color: #c87f0a;\n box-shadow: 0 0 0 0.2rem rgba(245, 171, 54, 0.5); }\n .btn-warning.disabled, .btn-warning:disabled {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n .show > .btn-warning.dropdown-toggle {\n color: #fff;\n background-color: #c87f0a;\n border-color: #bc770a; }\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(245, 171, 54, 0.5); }\n\n.btn-danger {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-danger:hover {\n color: #fff;\n background-color: #e12e1c;\n border-color: #d62c1a; }\n .btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #e12e1c;\n border-color: #d62c1a;\n box-shadow: 0 0 0 0.2rem rgba(235, 103, 89, 0.5); }\n .btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #d62c1a;\n border-color: #ca2a19; }\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(235, 103, 89, 0.5); }\n\n.btn-light {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-light:hover {\n color: #fff;\n background-color: #98a2ac;\n border-color: #919ca6; }\n .btn-light:focus, .btn-light.focus {\n color: #fff;\n background-color: #98a2ac;\n border-color: #919ca6;\n box-shadow: 0 0 0 0.2rem rgba(152, 159, 166, 0.5); }\n .btn-light.disabled, .btn-light:disabled {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n .show > .btn-light.dropdown-toggle {\n color: #fff;\n background-color: #919ca6;\n border-color: #8a95a1; }\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(152, 159, 166, 0.5); }\n\n.btn-dark {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-dark:hover {\n color: #fff;\n background-color: #1d1d1d;\n border-color: #171717; }\n .btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #1d1d1d;\n border-color: #171717;\n box-shadow: 0 0 0 0.2rem rgba(79, 79, 79, 0.5); }\n .btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #171717;\n border-color: #101010; }\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(79, 79, 79, 0.5); }\n\n.btn-outline-primary {\n color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:hover {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #375a7f;\n background-color: transparent; }\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n\n.btn-outline-secondary {\n color: #444;\n border-color: #444; }\n .btn-outline-secondary:hover {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #444;\n background-color: transparent; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n\n.btn-outline-success {\n color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:hover {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n .btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #00bc8c;\n background-color: transparent; }\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n\n.btn-outline-info {\n color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:hover {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n .btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #3498db;\n background-color: transparent; }\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n\n.btn-outline-warning {\n color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:hover {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #f39c12;\n background-color: transparent; }\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n .show > .btn-outline-warning.dropdown-toggle {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n\n.btn-outline-danger {\n color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:hover {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #e74c3c;\n background-color: transparent; }\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n\n.btn-outline-light {\n color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:hover {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n .btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #adb5bd;\n background-color: transparent; }\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n .show > .btn-outline-light.dropdown-toggle {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n\n.btn-outline-dark {\n color: #303030;\n border-color: #303030; }\n .btn-outline-dark:hover {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #303030;\n background-color: transparent; }\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n .show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n\n.btn-link {\n font-weight: 400;\n color: #00bc8c;\n text-decoration: none; }\n .btn-link:hover {\n color: #007053;\n text-decoration: underline; }\n .btn-link:focus, .btn-link.focus {\n text-decoration: underline; }\n .btn-link:disabled, .btn-link.disabled {\n color: #888;\n pointer-events: none; }\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.btn-block {\n display: block;\n width: 100%; }\n .btn-block + .btn-block {\n margin-top: 0.5rem; }\n\ninput[type="submit"].btn-block,\ninput[type="reset"].btn-block,\ninput[type="button"].btn-block {\n width: 100%; }\n\n.fade {\n transition: opacity 0.15s linear; }\n @media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none; } }\n .fade:not(.show) {\n opacity: 0; }\n\n.collapse:not(.show) {\n display: none; }\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease; }\n @media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none; } }\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative; }\n\n.dropdown-toggle {\n white-space: nowrap; }\n .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent; }\n .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 0.9375rem;\n color: #fff;\n text-align: left;\n list-style: none;\n background-color: #222;\n background-clip: padding-box;\n border: 1px solid #444;\n border-radius: 0.25rem; }\n\n.dropdown-menu-left {\n right: auto;\n left: 0; }\n\n.dropdown-menu-right {\n right: 0;\n left: auto; }\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0; }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0; }\n .dropdown-menu-md-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0; }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0; }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto; } }\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem; }\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent; }\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem; }\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid; }\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0; }\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem; }\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: ""; }\n\n.dropleft .dropdown-toggle::after {\n display: none; }\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent; }\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0; }\n\n.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {\n right: auto;\n bottom: auto; }\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #444; }\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #fff;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0; }\n .dropdown-item:hover, .dropdown-item:focus {\n color: #fff;\n text-decoration: none;\n background-color: #375a7f; }\n .dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #375a7f; }\n .dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent; }\n\n.dropdown-menu.show {\n display: block; }\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.825rem;\n color: #888;\n white-space: nowrap; }\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #fff; }\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; }\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto; }\n .btn-group > .btn:hover,\n .btn-group-vertical > .btn:hover {\n z-index: 1; }\n .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n .btn-group-vertical > .btn:focus,\n .btn-group-vertical > .btn:active,\n .btn-group-vertical > .btn.active {\n z-index: 1; }\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start; }\n .btn-toolbar .input-group {\n width: auto; }\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px; }\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem; }\n .dropdown-toggle-split::after,\n .dropup .dropdown-toggle-split::after,\n .dropright .dropdown-toggle-split::after {\n margin-left: 0; }\n .dropleft .dropdown-toggle-split::before {\n margin-right: 0; }\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem; }\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem; }\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center; }\n .btn-group-vertical > .btn,\n .btn-group-vertical > .btn-group {\n width: 100%; }\n .btn-group-vertical > .btn:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px; }\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .btn-group-vertical > .btn:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0; }\n .btn-group-toggle > .btn input[type="radio"],\n .btn-group-toggle > .btn input[type="checkbox"],\n .btn-group-toggle > .btn-group > .btn input[type="radio"],\n .btn-group-toggle > .btn-group > .btn input[type="checkbox"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none; }\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%; }\n .input-group > .form-control,\n .input-group > .form-control-plaintext,\n .input-group > .custom-select,\n .input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0; }\n .input-group > .form-control + .form-control,\n .input-group > .form-control + .custom-select,\n .input-group > .form-control + .custom-file,\n .input-group > .form-control-plaintext + .form-control,\n .input-group > .form-control-plaintext + .custom-select,\n .input-group > .form-control-plaintext + .custom-file,\n .input-group > .custom-select + .form-control,\n .input-group > .custom-select + .custom-select,\n .input-group > .custom-select + .custom-file,\n .input-group > .custom-file + .form-control,\n .input-group > .custom-file + .custom-select,\n .input-group > .custom-file + .custom-file {\n margin-left: -1px; }\n .input-group > .form-control:focus,\n .input-group > .custom-select:focus,\n .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3; }\n .input-group > .custom-file .custom-file-input:focus {\n z-index: 4; }\n .input-group > .form-control:not(:first-child),\n .input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .input-group > .custom-file {\n display: flex;\n align-items: center; }\n .input-group > .custom-file:not(:last-child) .custom-file-label,\n .input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .input-group:not(.has-validation) > .form-control:not(:last-child),\n .input-group:not(.has-validation) > .custom-select:not(:last-child),\n .input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .input-group.has-validation > .form-control:nth-last-child(n + 3),\n .input-group.has-validation > .custom-select:nth-last-child(n + 3),\n .input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group-prepend,\n.input-group-append {\n display: flex; }\n .input-group-prepend .btn,\n .input-group-append .btn {\n position: relative;\n z-index: 2; }\n .input-group-prepend .btn:focus,\n .input-group-append .btn:focus {\n z-index: 3; }\n .input-group-prepend .btn + .btn,\n .input-group-prepend .btn + .input-group-text,\n .input-group-prepend .input-group-text + .input-group-text,\n .input-group-prepend .input-group-text + .btn,\n .input-group-append .btn + .btn,\n .input-group-append .btn + .input-group-text,\n .input-group-append .input-group-text + .input-group-text,\n .input-group-append .input-group-text + .btn {\n margin-left: -1px; }\n\n.input-group-prepend {\n margin-right: -1px; }\n\n.input-group-append {\n margin-left: -1px; }\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #adb5bd;\n text-align: center;\n white-space: nowrap;\n background-color: #444;\n border: 1px solid #222;\n border-radius: 0.25rem; }\n .input-group-text input[type="radio"],\n .input-group-text input[type="checkbox"] {\n margin-top: 0; }\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px); }\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px); }\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem; }\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.40625rem;\n padding-left: 1.5rem;\n color-adjust: exact; }\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem; }\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.20312rem;\n opacity: 0; }\n .custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #375a7f;\n background-color: #375a7f; }\n .custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #739ac2; }\n .custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #97b3d2;\n border-color: #97b3d2; }\n .custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #888; }\n .custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #ebebeb; }\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top; }\n .custom-control-label::before {\n position: absolute;\n top: 0.20312rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: "";\n background-color: #fff;\n border: #adb5bd solid 1px; }\n .custom-control-label::after {\n position: absolute;\n top: 0.20312rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: "";\n background: 50% / 50% 50% no-repeat; }\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem; }\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z\'/%3e%3c/svg%3e"); }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #375a7f;\n background-color: #375a7f; }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'4\' viewBox=\'0 0 4 4\'%3e%3cpath stroke=\'%23fff\' d=\'M0 2h4\'/%3e%3c/svg%3e"); }\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%; }\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%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"); }\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-switch {\n padding-left: 2.25rem; }\n .custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem; }\n .custom-switch .custom-control-label::after {\n top: calc(0.20312rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none; } }\n .custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem); }\n .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #444;\n vertical-align: middle;\n background: #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat;\n border: 1px solid #222;\n border-radius: 0.25rem;\n appearance: none; }\n .custom-select:focus {\n border-color: #739ac2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-select:focus::-ms-value {\n color: #444;\n background-color: #fff; }\n .custom-select[multiple], .custom-select[size]:not([size="1"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none; }\n .custom-select:disabled {\n color: #888;\n background-color: #ebebeb; }\n .custom-select::-ms-expand {\n display: none; }\n .custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #444; }\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.825rem; }\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.17188rem; }\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0; }\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n overflow: hidden;\n opacity: 0; }\n .custom-file-input:focus ~ .custom-file-label {\n border-color: #739ac2;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-file-input[disabled] ~ .custom-file-label,\n .custom-file-input:disabled ~ .custom-file-label {\n background-color: #ebebeb; }\n .custom-file-input:lang(en) ~ .custom-file-label::after {\n content: "Browse"; }\n .custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse); }\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n overflow: hidden;\n font-weight: 400;\n line-height: 1.5;\n color: #adb5bd;\n background-color: #fff;\n border: 1px solid #222;\n border-radius: 0.25rem; }\n .custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #adb5bd;\n content: "Browse";\n background-color: #444;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0; }\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none; }\n .custom-range:focus {\n outline: 0; }\n .custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range::-moz-focus-outer {\n border: 0; }\n .custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none; } }\n .custom-range::-webkit-slider-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none; } }\n .custom-range::-moz-range-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none; } }\n .custom-range::-ms-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem; }\n .custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default; }\n .custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-moz-range-track {\n cursor: default; }\n .custom-range:disabled::-ms-thumb {\n background-color: #adb5bd; }\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none; } }\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n\n.nav-link {\n display: block;\n padding: 0.5rem 2rem; }\n .nav-link:hover, .nav-link:focus {\n text-decoration: none; }\n .nav-link.disabled {\n color: #adb5bd;\n pointer-events: none;\n cursor: default; }\n\n.nav-tabs {\n border-bottom: 1px solid #444; }\n .nav-tabs .nav-link {\n margin-bottom: -1px;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #444 #444 transparent; }\n .nav-tabs .nav-link.disabled {\n color: #adb5bd;\n background-color: transparent;\n border-color: transparent; }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: #fff;\n background-color: #222;\n border-color: #444 #444 transparent; }\n .nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.nav-pills .nav-link {\n border-radius: 0.25rem; }\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #375a7f; }\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center; }\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center; }\n\n.tab-content > .tab-pane {\n display: none; }\n\n.tab-content > .active {\n display: block; }\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1rem; }\n .navbar .container,\n .navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between; }\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.32422rem;\n padding-bottom: 0.32422rem;\n margin-right: 1rem;\n font-size: 1.17188rem;\n line-height: inherit;\n white-space: nowrap; }\n .navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none; }\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n .navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0; }\n .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem; }\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center; }\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.17188rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n .navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none; }\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: "";\n background: 50% / 100% 100% no-repeat; }\n\n.navbar-nav-scroll {\n max-height: 75vh;\n overflow-y: auto; }\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row; }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-sm .navbar-toggler {\n display: none; } }\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-md .navbar-nav {\n flex-direction: row; }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-md .navbar-toggler {\n display: none; } }\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row; }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-lg .navbar-toggler {\n display: none; } }\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row; }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-xl .navbar-toggler {\n display: none; } }\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0; }\n .navbar-expand .navbar-nav {\n flex-direction: row; }\n .navbar-expand .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand .navbar-toggler {\n display: none; }\n\n.navbar-light .navbar-brand {\n color: #222; }\n .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: #222; }\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(34, 34, 34, 0.7); }\n .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: #222; }\n .navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3); }\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: #222; }\n\n.navbar-light .navbar-toggler {\n color: rgba(34, 34, 34, 0.7);\n border-color: rgba(34, 34, 34, 0.1); }\n\n.navbar-light .navbar-toggler-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'30\' height=\'30\' viewBox=\'0 0 30 30\'%3e%3cpath stroke=\'rgba%2834, 34, 34, 0.7%29\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' stroke-width=\'2\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e"); }\n\n.navbar-light .navbar-text {\n color: rgba(34, 34, 34, 0.7); }\n .navbar-light .navbar-text a {\n color: #222; }\n .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: #222; }\n\n.navbar-dark .navbar-brand {\n color: #fff; }\n .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff; }\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.6); }\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: #fff; }\n .navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25); }\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff; }\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.6);\n border-color: rgba(255, 255, 255, 0.1); }\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'30\' height=\'30\' viewBox=\'0 0 30 30\'%3e%3cpath stroke=\'rgba%28255, 255, 255, 0.6%29\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' stroke-width=\'2\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e"); }\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.6); }\n .navbar-dark .navbar-text a {\n color: #fff; }\n .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff; }\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #303030;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem; }\n .card > hr {\n margin-right: 0;\n margin-left: 0; }\n .card > .list-group {\n border-top: inherit;\n border-bottom: inherit; }\n .card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n .card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n .card > .card-header + .list-group,\n .card > .list-group + .card-footer {\n border-top: 0; }\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem; }\n\n.card-title {\n margin-bottom: 0.75rem; }\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0; }\n\n.card-text:last-child {\n margin-bottom: 0; }\n\n.card-link:hover {\n text-decoration: none; }\n\n.card-link + .card-link {\n margin-left: 1.25rem; }\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: #444;\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\n .card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: #444;\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\n .card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0; }\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem; }\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px); }\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%; }\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n\n.card-deck .card {\n margin-bottom: 15px; }\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px; }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px; } }\n\n.card-group > .card {\n margin-bottom: 15px; }\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap; }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0; }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0; }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0; } }\n\n.card-columns .card {\n margin-bottom: 0.75rem; }\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1; }\n .card-columns .card {\n display: inline-block;\n width: 100%; } }\n\n.accordion {\n overflow-anchor: none; }\n .accordion > .card {\n overflow: hidden; }\n .accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n .accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px; }\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #444;\n border-radius: 0.25rem; }\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem; }\n .breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: 0.5rem;\n color: #888;\n content: "/"; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none; }\n\n.breadcrumb-item.active {\n color: #888; }\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem; }\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: 0;\n line-height: 1.25;\n color: #fff;\n background-color: #00bc8c;\n border: 0 solid transparent; }\n .page-link:hover {\n z-index: 2;\n color: #fff;\n text-decoration: none;\n background-color: #00efb2;\n border-color: transparent; }\n .page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem; }\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #00efb2;\n border-color: transparent; }\n\n.page-item.disabled .page-link {\n color: #fff;\n pointer-events: none;\n cursor: auto;\n background-color: #007053;\n border-color: transparent; }\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.17188rem;\n line-height: 1.5; }\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem; }\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem; }\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5; }\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem; }\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem; }\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none; } }\n a.badge:hover, a.badge:focus {\n text-decoration: none; }\n .badge:empty {\n display: none; }\n\n.btn .badge {\n position: relative;\n top: -1px; }\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem; }\n\n.badge-primary {\n color: #fff;\n background-color: #375a7f; }\n a.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #28415b; }\n a.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n\n.badge-secondary {\n color: #fff;\n background-color: #444; }\n a.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #2b2b2b; }\n a.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n\n.badge-success {\n color: #fff;\n background-color: #00bc8c; }\n a.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #008966; }\n a.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n\n.badge-info {\n color: #fff;\n background-color: #3498db; }\n a.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #217dbb; }\n a.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n\n.badge-warning {\n color: #fff;\n background-color: #f39c12; }\n a.badge-warning:hover, a.badge-warning:focus {\n color: #fff;\n background-color: #c87f0a; }\n a.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n\n.badge-danger {\n color: #fff;\n background-color: #e74c3c; }\n a.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #d62c1a; }\n a.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n\n.badge-light {\n color: #222;\n background-color: #adb5bd; }\n a.badge-light:hover, a.badge-light:focus {\n color: #222;\n background-color: #919ca6; }\n a.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n\n.badge-dark {\n color: #fff;\n background-color: #303030; }\n a.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #171717; }\n a.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #303030;\n border-radius: 0.3rem; }\n @media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem; } }\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0; }\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n\n.alert-heading {\n color: inherit; }\n\n.alert-link {\n font-weight: 700; }\n\n.alert-dismissible {\n padding-right: 3.90625rem; }\n .alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit; }\n\n.alert-primary {\n color: #1d2f42;\n background-color: #d7dee5;\n border-color: #c7d1db; }\n .alert-primary hr {\n border-top-color: #b7c4d1; }\n .alert-primary .alert-link {\n color: #0d161f; }\n\n.alert-secondary {\n color: #232323;\n background-color: #dadada;\n border-color: #cbcbcb; }\n .alert-secondary hr {\n border-top-color: #bebebe; }\n .alert-secondary .alert-link {\n color: #0a0a0a; }\n\n.alert-success {\n color: #006249;\n background-color: #ccf2e8;\n border-color: #b8ecdf; }\n .alert-success hr {\n border-top-color: #a4e7d6; }\n .alert-success .alert-link {\n color: #002f23; }\n\n.alert-info {\n color: #1b4f72;\n background-color: #d6eaf8;\n border-color: #c6e2f5; }\n .alert-info hr {\n border-top-color: #b0d7f1; }\n .alert-info .alert-link {\n color: #113249; }\n\n.alert-warning {\n color: #7e5109;\n background-color: #fdebd0;\n border-color: #fce3bd; }\n .alert-warning hr {\n border-top-color: #fbd9a5; }\n .alert-warning .alert-link {\n color: #4e3206; }\n\n.alert-danger {\n color: #78281f;\n background-color: #fadbd8;\n border-color: #f8cdc8; }\n .alert-danger hr {\n border-top-color: #f5b8b1; }\n .alert-danger .alert-link {\n color: #4f1a15; }\n\n.alert-light {\n color: #5a5e62;\n background-color: #eff0f2;\n border-color: #e8eaed; }\n .alert-light hr {\n border-top-color: #dadde2; }\n .alert-light .alert-link {\n color: #424547; }\n\n.alert-dark {\n color: #191919;\n background-color: #d6d6d6;\n border-color: #c5c5c5; }\n .alert-dark hr {\n border-top-color: #b8b8b8; }\n .alert-dark .alert-link {\n color: black; }\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0; }\n to {\n background-position: 0 0; } }\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.70312rem;\n background-color: #444;\n border-radius: 0.25rem; }\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #375a7f;\n transition: width 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none; } }\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem; }\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none; } }\n\n.media {\n display: flex;\n align-items: flex-start; }\n\n.media-body {\n flex: 1; }\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem; }\n\n.list-group-item-action {\n width: 100%;\n color: #444;\n text-align: inherit; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #444;\n text-decoration: none;\n background-color: #444; }\n .list-group-item-action:active {\n color: #fff;\n background-color: #ebebeb; }\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #303030;\n border: 1px solid #444; }\n .list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit; }\n .list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit; }\n .list-group-item.disabled, .list-group-item:disabled {\n color: #888;\n pointer-events: none;\n background-color: #303030; }\n .list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .list-group-item + .list-group-item {\n border-top-width: 0; }\n .list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px; }\n\n.list-group-horizontal {\n flex-direction: row; }\n .list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; }\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row; }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row; }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row; }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row; }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n.list-group-flush {\n border-radius: 0; }\n .list-group-flush > .list-group-item {\n border-width: 0 0 1px; }\n .list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0; }\n\n.list-group-item-primary {\n color: #1d2f42;\n background-color: #c7d1db; }\n .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #1d2f42;\n background-color: #b7c4d1; }\n .list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #1d2f42;\n border-color: #1d2f42; }\n\n.list-group-item-secondary {\n color: #232323;\n background-color: #cbcbcb; }\n .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #232323;\n background-color: #bebebe; }\n .list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #232323;\n border-color: #232323; }\n\n.list-group-item-success {\n color: #006249;\n background-color: #b8ecdf; }\n .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #006249;\n background-color: #a4e7d6; }\n .list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #006249;\n border-color: #006249; }\n\n.list-group-item-info {\n color: #1b4f72;\n background-color: #c6e2f5; }\n .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #1b4f72;\n background-color: #b0d7f1; }\n .list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #1b4f72;\n border-color: #1b4f72; }\n\n.list-group-item-warning {\n color: #7e5109;\n background-color: #fce3bd; }\n .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #7e5109;\n background-color: #fbd9a5; }\n .list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #7e5109;\n border-color: #7e5109; }\n\n.list-group-item-danger {\n color: #78281f;\n background-color: #f8cdc8; }\n .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #78281f;\n background-color: #f5b8b1; }\n .list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #78281f;\n border-color: #78281f; }\n\n.list-group-item-light {\n color: #5a5e62;\n background-color: #e8eaed; }\n .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #5a5e62;\n background-color: #dadde2; }\n .list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #5a5e62;\n border-color: #5a5e62; }\n\n.list-group-item-dark {\n color: #191919;\n background-color: #c5c5c5; }\n .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #191919;\n background-color: #b8b8b8; }\n .list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #191919;\n border-color: #191919; }\n\n.close {\n float: right;\n font-size: 1.40625rem;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-shadow: none;\n opacity: .5; }\n .close:hover {\n color: #fff;\n text-decoration: none; }\n .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75; }\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0; }\n\na.close.disabled {\n pointer-events: none; }\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: #444;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem; }\n .toast:not(:last-child) {\n margin-bottom: 0.75rem; }\n .toast.showing {\n opacity: 1; }\n .toast.show {\n display: block;\n opacity: 1; }\n .toast.hide {\n display: none; }\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #888;\n background-color: #303030;\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.toast-body {\n padding: 0.75rem; }\n\n.modal-open {\n overflow: hidden; }\n .modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto; }\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0; }\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none; }\n .modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px); }\n @media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none; } }\n .modal.show .modal-dialog {\n transform: none; }\n .modal.modal-static .modal-dialog {\n transform: scale(1.02); }\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden; }\n .modal-dialog-scrollable .modal-header,\n .modal-dialog-scrollable .modal-footer {\n flex-shrink: 0; }\n .modal-dialog-scrollable .modal-body {\n overflow-y: auto; }\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem); }\n .modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: ""; }\n .modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%; }\n .modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none; }\n .modal-dialog-centered.modal-dialog-scrollable::before {\n content: none; }\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #303030;\n background-clip: padding-box;\n border: 1px solid #444;\n border-radius: 0.3rem;\n outline: 0; }\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000; }\n .modal-backdrop.fade {\n opacity: 0; }\n .modal-backdrop.show {\n opacity: 0.5; }\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #444;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto; }\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5; }\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem; }\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #444;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px); }\n .modal-footer > * {\n margin: 0.25rem; }\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto; }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem); }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem); }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content; }\n .modal-sm {\n max-width: 300px; } }\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px; } }\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px; } }\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.825rem;\n word-wrap: break-word;\n opacity: 0; }\n .tooltip.show {\n opacity: 0.9; }\n .tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem; }\n .tooltip .arrow::before {\n position: absolute;\n content: "";\n border-color: transparent;\n border-style: solid; }\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {\n padding: 0.4rem 0; }\n .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {\n bottom: 0; }\n .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000; }\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {\n padding: 0 0.4rem; }\n .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000; }\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {\n padding: 0.4rem 0; }\n .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {\n top: 0; }\n .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000; }\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {\n padding: 0 0.4rem; }\n .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000; }\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem; }\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.825rem;\n word-wrap: break-word;\n background-color: #303030;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem; }\n .popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem; }\n .popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: "";\n border-color: transparent;\n border-style: solid; }\n\n.bs-popover-top, .bs-popover-auto[x-placement^="top"] {\n margin-bottom: 0.5rem; }\n .bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow {\n bottom: calc(-0.5rem - 1px); }\n .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #303030; }\n\n.bs-popover-right, .bs-popover-auto[x-placement^="right"] {\n margin-left: 0.5rem; }\n .bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #303030; }\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {\n margin-top: 0.5rem; }\n .bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow {\n top: calc(-0.5rem - 1px); }\n .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #303030; }\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: "";\n border-bottom: 1px solid #444; }\n\n.bs-popover-left, .bs-popover-auto[x-placement^="left"] {\n margin-right: 0.5rem; }\n .bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #303030; }\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 0.9375rem;\n background-color: #444;\n border-bottom: 1px solid #373737;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .popover-header:empty {\n display: none; }\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #fff; }\n\n.carousel {\n position: relative; }\n\n.carousel.pointer-event {\n touch-action: pan-y; }\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden; }\n .carousel-inner::after {\n display: block;\n clear: both;\n content: ""; }\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none; } }\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block; }\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%); }\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%); }\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none; }\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1; }\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none; } }\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none; } }\n .carousel-control-prev:hover, .carousel-control-prev:focus,\n .carousel-control-next:hover,\n .carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9; }\n\n.carousel-control-prev {\n left: 0; }\n\n.carousel-control-next {\n right: 0; }\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: 50% / 100% 100% no-repeat; }\n\n.carousel-control-prev-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z\'/%3e%3c/svg%3e"); }\n\n.carousel-control-next-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z\'/%3e%3c/svg%3e"); }\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none; }\n .carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none; } }\n .carousel-indicators .active {\n opacity: 1; }\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center; }\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg); } }\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: .75s linear infinite spinner-border; }\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em; }\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0); }\n 50% {\n opacity: 1;\n transform: none; } }\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: .75s linear infinite spinner-grow; }\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem; }\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n animation-duration: 1.5s; } }\n\n.align-baseline {\n vertical-align: baseline !important; }\n\n.align-top {\n vertical-align: top !important; }\n\n.align-middle {\n vertical-align: middle !important; }\n\n.align-bottom {\n vertical-align: bottom !important; }\n\n.align-text-bottom {\n vertical-align: text-bottom !important; }\n\n.align-text-top {\n vertical-align: text-top !important; }\n\n.bg-primary {\n background-color: #375a7f !important; }\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #28415b !important; }\n\n.bg-secondary {\n background-color: #444 !important; }\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #2b2b2b !important; }\n\n.bg-success {\n background-color: #00bc8c !important; }\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #008966 !important; }\n\n.bg-info {\n background-color: #3498db !important; }\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #217dbb !important; }\n\n.bg-warning {\n background-color: #f39c12 !important; }\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #c87f0a !important; }\n\n.bg-danger {\n background-color: #e74c3c !important; }\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #d62c1a !important; }\n\n.bg-light {\n background-color: #adb5bd !important; }\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #919ca6 !important; }\n\n.bg-dark {\n background-color: #303030 !important; }\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #171717 !important; }\n\n.bg-white {\n background-color: #fff !important; }\n\n.bg-transparent {\n background-color: transparent !important; }\n\n.border {\n border: 1px solid #dee2e6 !important; }\n\n.border-top {\n border-top: 1px solid #dee2e6 !important; }\n\n.border-right {\n border-right: 1px solid #dee2e6 !important; }\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important; }\n\n.border-left {\n border-left: 1px solid #dee2e6 !important; }\n\n.border-0 {\n border: 0 !important; }\n\n.border-top-0 {\n border-top: 0 !important; }\n\n.border-right-0 {\n border-right: 0 !important; }\n\n.border-bottom-0 {\n border-bottom: 0 !important; }\n\n.border-left-0 {\n border-left: 0 !important; }\n\n.border-primary {\n border-color: #375a7f !important; }\n\n.border-secondary {\n border-color: #444 !important; }\n\n.border-success {\n border-color: #00bc8c !important; }\n\n.border-info {\n border-color: #3498db !important; }\n\n.border-warning {\n border-color: #f39c12 !important; }\n\n.border-danger {\n border-color: #e74c3c !important; }\n\n.border-light {\n border-color: #adb5bd !important; }\n\n.border-dark {\n border-color: #303030 !important; }\n\n.border-white {\n border-color: #fff !important; }\n\n.rounded-sm {\n border-radius: 0.2rem !important; }\n\n.rounded {\n border-radius: 0.25rem !important; }\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important; }\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important; }\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-lg {\n border-radius: 0.3rem !important; }\n\n.rounded-circle {\n border-radius: 50% !important; }\n\n.rounded-pill {\n border-radius: 50rem !important; }\n\n.rounded-0 {\n border-radius: 0 !important; }\n\n.clearfix::after {\n display: block;\n clear: both;\n content: ""; }\n\n.d-none {\n display: none !important; }\n\n.d-inline {\n display: inline !important; }\n\n.d-inline-block {\n display: inline-block !important; }\n\n.d-block {\n display: block !important; }\n\n.d-table {\n display: table !important; }\n\n.d-table-row {\n display: table-row !important; }\n\n.d-table-cell {\n display: table-cell !important; }\n\n.d-flex {\n display: flex !important; }\n\n.d-inline-flex {\n display: inline-flex !important; }\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important; }\n .d-sm-inline {\n display: inline !important; }\n .d-sm-inline-block {\n display: inline-block !important; }\n .d-sm-block {\n display: block !important; }\n .d-sm-table {\n display: table !important; }\n .d-sm-table-row {\n display: table-row !important; }\n .d-sm-table-cell {\n display: table-cell !important; }\n .d-sm-flex {\n display: flex !important; }\n .d-sm-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important; }\n .d-md-inline {\n display: inline !important; }\n .d-md-inline-block {\n display: inline-block !important; }\n .d-md-block {\n display: block !important; }\n .d-md-table {\n display: table !important; }\n .d-md-table-row {\n display: table-row !important; }\n .d-md-table-cell {\n display: table-cell !important; }\n .d-md-flex {\n display: flex !important; }\n .d-md-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important; }\n .d-lg-inline {\n display: inline !important; }\n .d-lg-inline-block {\n display: inline-block !important; }\n .d-lg-block {\n display: block !important; }\n .d-lg-table {\n display: table !important; }\n .d-lg-table-row {\n display: table-row !important; }\n .d-lg-table-cell {\n display: table-cell !important; }\n .d-lg-flex {\n display: flex !important; }\n .d-lg-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important; }\n .d-xl-inline {\n display: inline !important; }\n .d-xl-inline-block {\n display: inline-block !important; }\n .d-xl-block {\n display: block !important; }\n .d-xl-table {\n display: table !important; }\n .d-xl-table-row {\n display: table-row !important; }\n .d-xl-table-cell {\n display: table-cell !important; }\n .d-xl-flex {\n display: flex !important; }\n .d-xl-inline-flex {\n display: inline-flex !important; } }\n\n@media print {\n .d-print-none {\n display: none !important; }\n .d-print-inline {\n display: inline !important; }\n .d-print-inline-block {\n display: inline-block !important; }\n .d-print-block {\n display: block !important; }\n .d-print-table {\n display: table !important; }\n .d-print-table-row {\n display: table-row !important; }\n .d-print-table-cell {\n display: table-cell !important; }\n .d-print-flex {\n display: flex !important; }\n .d-print-inline-flex {\n display: inline-flex !important; } }\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden; }\n .embed-responsive::before {\n display: block;\n content: ""; }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object,\n .embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0; }\n\n.embed-responsive-21by9::before {\n padding-top: 42.85714%; }\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%; }\n\n.embed-responsive-4by3::before {\n padding-top: 75%; }\n\n.embed-responsive-1by1::before {\n padding-top: 100%; }\n\n.flex-row {\n flex-direction: row !important; }\n\n.flex-column {\n flex-direction: column !important; }\n\n.flex-row-reverse {\n flex-direction: row-reverse !important; }\n\n.flex-column-reverse {\n flex-direction: column-reverse !important; }\n\n.flex-wrap {\n flex-wrap: wrap !important; }\n\n.flex-nowrap {\n flex-wrap: nowrap !important; }\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n\n.flex-fill {\n flex: 1 1 auto !important; }\n\n.flex-grow-0 {\n flex-grow: 0 !important; }\n\n.flex-grow-1 {\n flex-grow: 1 !important; }\n\n.flex-shrink-0 {\n flex-shrink: 0 !important; }\n\n.flex-shrink-1 {\n flex-shrink: 1 !important; }\n\n.justify-content-start {\n justify-content: flex-start !important; }\n\n.justify-content-end {\n justify-content: flex-end !important; }\n\n.justify-content-center {\n justify-content: center !important; }\n\n.justify-content-between {\n justify-content: space-between !important; }\n\n.justify-content-around {\n justify-content: space-around !important; }\n\n.align-items-start {\n align-items: flex-start !important; }\n\n.align-items-end {\n align-items: flex-end !important; }\n\n.align-items-center {\n align-items: center !important; }\n\n.align-items-baseline {\n align-items: baseline !important; }\n\n.align-items-stretch {\n align-items: stretch !important; }\n\n.align-content-start {\n align-content: flex-start !important; }\n\n.align-content-end {\n align-content: flex-end !important; }\n\n.align-content-center {\n align-content: center !important; }\n\n.align-content-between {\n align-content: space-between !important; }\n\n.align-content-around {\n align-content: space-around !important; }\n\n.align-content-stretch {\n align-content: stretch !important; }\n\n.align-self-auto {\n align-self: auto !important; }\n\n.align-self-start {\n align-self: flex-start !important; }\n\n.align-self-end {\n align-self: flex-end !important; }\n\n.align-self-center {\n align-self: center !important; }\n\n.align-self-baseline {\n align-self: baseline !important; }\n\n.align-self-stretch {\n align-self: stretch !important; }\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important; }\n .flex-sm-column {\n flex-direction: column !important; }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-sm-wrap {\n flex-wrap: wrap !important; }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important; }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-sm-fill {\n flex: 1 1 auto !important; }\n .flex-sm-grow-0 {\n flex-grow: 0 !important; }\n .flex-sm-grow-1 {\n flex-grow: 1 !important; }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-sm-start {\n justify-content: flex-start !important; }\n .justify-content-sm-end {\n justify-content: flex-end !important; }\n .justify-content-sm-center {\n justify-content: center !important; }\n .justify-content-sm-between {\n justify-content: space-between !important; }\n .justify-content-sm-around {\n justify-content: space-around !important; }\n .align-items-sm-start {\n align-items: flex-start !important; }\n .align-items-sm-end {\n align-items: flex-end !important; }\n .align-items-sm-center {\n align-items: center !important; }\n .align-items-sm-baseline {\n align-items: baseline !important; }\n .align-items-sm-stretch {\n align-items: stretch !important; }\n .align-content-sm-start {\n align-content: flex-start !important; }\n .align-content-sm-end {\n align-content: flex-end !important; }\n .align-content-sm-center {\n align-content: center !important; }\n .align-content-sm-between {\n align-content: space-between !important; }\n .align-content-sm-around {\n align-content: space-around !important; }\n .align-content-sm-stretch {\n align-content: stretch !important; }\n .align-self-sm-auto {\n align-self: auto !important; }\n .align-self-sm-start {\n align-self: flex-start !important; }\n .align-self-sm-end {\n align-self: flex-end !important; }\n .align-self-sm-center {\n align-self: center !important; }\n .align-self-sm-baseline {\n align-self: baseline !important; }\n .align-self-sm-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important; }\n .flex-md-column {\n flex-direction: column !important; }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-md-wrap {\n flex-wrap: wrap !important; }\n .flex-md-nowrap {\n flex-wrap: nowrap !important; }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-md-fill {\n flex: 1 1 auto !important; }\n .flex-md-grow-0 {\n flex-grow: 0 !important; }\n .flex-md-grow-1 {\n flex-grow: 1 !important; }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-md-start {\n justify-content: flex-start !important; }\n .justify-content-md-end {\n justify-content: flex-end !important; }\n .justify-content-md-center {\n justify-content: center !important; }\n .justify-content-md-between {\n justify-content: space-between !important; }\n .justify-content-md-around {\n justify-content: space-around !important; }\n .align-items-md-start {\n align-items: flex-start !important; }\n .align-items-md-end {\n align-items: flex-end !important; }\n .align-items-md-center {\n align-items: center !important; }\n .align-items-md-baseline {\n align-items: baseline !important; }\n .align-items-md-stretch {\n align-items: stretch !important; }\n .align-content-md-start {\n align-content: flex-start !important; }\n .align-content-md-end {\n align-content: flex-end !important; }\n .align-content-md-center {\n align-content: center !important; }\n .align-content-md-between {\n align-content: space-between !important; }\n .align-content-md-around {\n align-content: space-around !important; }\n .align-content-md-stretch {\n align-content: stretch !important; }\n .align-self-md-auto {\n align-self: auto !important; }\n .align-self-md-start {\n align-self: flex-start !important; }\n .align-self-md-end {\n align-self: flex-end !important; }\n .align-self-md-center {\n align-self: center !important; }\n .align-self-md-baseline {\n align-self: baseline !important; }\n .align-self-md-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important; }\n .flex-lg-column {\n flex-direction: column !important; }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-lg-wrap {\n flex-wrap: wrap !important; }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important; }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-lg-fill {\n flex: 1 1 auto !important; }\n .flex-lg-grow-0 {\n flex-grow: 0 !important; }\n .flex-lg-grow-1 {\n flex-grow: 1 !important; }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-lg-start {\n justify-content: flex-start !important; }\n .justify-content-lg-end {\n justify-content: flex-end !important; }\n .justify-content-lg-center {\n justify-content: center !important; }\n .justify-content-lg-between {\n justify-content: space-between !important; }\n .justify-content-lg-around {\n justify-content: space-around !important; }\n .align-items-lg-start {\n align-items: flex-start !important; }\n .align-items-lg-end {\n align-items: flex-end !important; }\n .align-items-lg-center {\n align-items: center !important; }\n .align-items-lg-baseline {\n align-items: baseline !important; }\n .align-items-lg-stretch {\n align-items: stretch !important; }\n .align-content-lg-start {\n align-content: flex-start !important; }\n .align-content-lg-end {\n align-content: flex-end !important; }\n .align-content-lg-center {\n align-content: center !important; }\n .align-content-lg-between {\n align-content: space-between !important; }\n .align-content-lg-around {\n align-content: space-around !important; }\n .align-content-lg-stretch {\n align-content: stretch !important; }\n .align-self-lg-auto {\n align-self: auto !important; }\n .align-self-lg-start {\n align-self: flex-start !important; }\n .align-self-lg-end {\n align-self: flex-end !important; }\n .align-self-lg-center {\n align-self: center !important; }\n .align-self-lg-baseline {\n align-self: baseline !important; }\n .align-self-lg-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important; }\n .flex-xl-column {\n flex-direction: column !important; }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-xl-wrap {\n flex-wrap: wrap !important; }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important; }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-xl-fill {\n flex: 1 1 auto !important; }\n .flex-xl-grow-0 {\n flex-grow: 0 !important; }\n .flex-xl-grow-1 {\n flex-grow: 1 !important; }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-xl-start {\n justify-content: flex-start !important; }\n .justify-content-xl-end {\n justify-content: flex-end !important; }\n .justify-content-xl-center {\n justify-content: center !important; }\n .justify-content-xl-between {\n justify-content: space-between !important; }\n .justify-content-xl-around {\n justify-content: space-around !important; }\n .align-items-xl-start {\n align-items: flex-start !important; }\n .align-items-xl-end {\n align-items: flex-end !important; }\n .align-items-xl-center {\n align-items: center !important; }\n .align-items-xl-baseline {\n align-items: baseline !important; }\n .align-items-xl-stretch {\n align-items: stretch !important; }\n .align-content-xl-start {\n align-content: flex-start !important; }\n .align-content-xl-end {\n align-content: flex-end !important; }\n .align-content-xl-center {\n align-content: center !important; }\n .align-content-xl-between {\n align-content: space-between !important; }\n .align-content-xl-around {\n align-content: space-around !important; }\n .align-content-xl-stretch {\n align-content: stretch !important; }\n .align-self-xl-auto {\n align-self: auto !important; }\n .align-self-xl-start {\n align-self: flex-start !important; }\n .align-self-xl-end {\n align-self: flex-end !important; }\n .align-self-xl-center {\n align-self: center !important; }\n .align-self-xl-baseline {\n align-self: baseline !important; }\n .align-self-xl-stretch {\n align-self: stretch !important; } }\n\n.float-left {\n float: left !important; }\n\n.float-right {\n float: right !important; }\n\n.float-none {\n float: none !important; }\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important; }\n .float-sm-right {\n float: right !important; }\n .float-sm-none {\n float: none !important; } }\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important; }\n .float-md-right {\n float: right !important; }\n .float-md-none {\n float: none !important; } }\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important; }\n .float-lg-right {\n float: right !important; }\n .float-lg-none {\n float: none !important; } }\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important; }\n .float-xl-right {\n float: right !important; }\n .float-xl-none {\n float: none !important; } }\n\n.user-select-all {\n user-select: all !important; }\n\n.user-select-auto {\n user-select: auto !important; }\n\n.user-select-none {\n user-select: none !important; }\n\n.overflow-auto {\n overflow: auto !important; }\n\n.overflow-hidden {\n overflow: hidden !important; }\n\n.position-static {\n position: static !important; }\n\n.position-relative {\n position: relative !important; }\n\n.position-absolute {\n position: absolute !important; }\n\n.position-fixed {\n position: fixed !important; }\n\n.position-sticky {\n position: sticky !important; }\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030; }\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030; }\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal; }\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }\n\n.shadow-none {\n box-shadow: none !important; }\n\n.w-25 {\n width: 25% !important; }\n\n.w-50 {\n width: 50% !important; }\n\n.w-75 {\n width: 75% !important; }\n\n.w-100 {\n width: 100% !important; }\n\n.w-auto {\n width: auto !important; }\n\n.h-25 {\n height: 25% !important; }\n\n.h-50 {\n height: 50% !important; }\n\n.h-75 {\n height: 75% !important; }\n\n.h-100 {\n height: 100% !important; }\n\n.h-auto {\n height: auto !important; }\n\n.mw-100 {\n max-width: 100% !important; }\n\n.mh-100 {\n max-height: 100% !important; }\n\n.min-vw-100 {\n min-width: 100vw !important; }\n\n.min-vh-100 {\n min-height: 100vh !important; }\n\n.vw-100 {\n width: 100vw !important; }\n\n.vh-100 {\n height: 100vh !important; }\n\n.m-0 {\n margin: 0 !important; }\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important; }\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important; }\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important; }\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important; }\n\n.m-1 {\n margin: 0.25rem !important; }\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important; }\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important; }\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important; }\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important; }\n\n.m-2 {\n margin: 0.5rem !important; }\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important; }\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important; }\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important; }\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important; }\n\n.m-3 {\n margin: 1rem !important; }\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important; }\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important; }\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important; }\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important; }\n\n.m-4 {\n margin: 1.5rem !important; }\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important; }\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important; }\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important; }\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important; }\n\n.m-5 {\n margin: 3rem !important; }\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important; }\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important; }\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important; }\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important; }\n\n.p-0 {\n padding: 0 !important; }\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important; }\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important; }\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important; }\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important; }\n\n.p-1 {\n padding: 0.25rem !important; }\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important; }\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important; }\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important; }\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important; }\n\n.p-2 {\n padding: 0.5rem !important; }\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important; }\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important; }\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important; }\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important; }\n\n.p-3 {\n padding: 1rem !important; }\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important; }\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important; }\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important; }\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important; }\n\n.p-4 {\n padding: 1.5rem !important; }\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important; }\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important; }\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important; }\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important; }\n\n.p-5 {\n padding: 3rem !important; }\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important; }\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important; }\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important; }\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important; }\n\n.m-n1 {\n margin: -0.25rem !important; }\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important; }\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important; }\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important; }\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important; }\n\n.m-n2 {\n margin: -0.5rem !important; }\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important; }\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important; }\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important; }\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important; }\n\n.m-n3 {\n margin: -1rem !important; }\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important; }\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important; }\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important; }\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important; }\n\n.m-n4 {\n margin: -1.5rem !important; }\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important; }\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important; }\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important; }\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important; }\n\n.m-n5 {\n margin: -3rem !important; }\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important; }\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important; }\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important; }\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important; }\n\n.m-auto {\n margin: auto !important; }\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important; }\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important; }\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important; }\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important; }\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important; }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important; }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important; }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important; }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important; }\n .m-sm-1 {\n margin: 0.25rem !important; }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important; }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important; }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important; }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important; }\n .m-sm-2 {\n margin: 0.5rem !important; }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important; }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important; }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important; }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important; }\n .m-sm-3 {\n margin: 1rem !important; }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important; }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important; }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important; }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important; }\n .m-sm-4 {\n margin: 1.5rem !important; }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important; }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important; }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important; }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important; }\n .m-sm-5 {\n margin: 3rem !important; }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important; }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important; }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important; }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important; }\n .p-sm-0 {\n padding: 0 !important; }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important; }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important; }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important; }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important; }\n .p-sm-1 {\n padding: 0.25rem !important; }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important; }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important; }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important; }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important; }\n .p-sm-2 {\n padding: 0.5rem !important; }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important; }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important; }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important; }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important; }\n .p-sm-3 {\n padding: 1rem !important; }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important; }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important; }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important; }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important; }\n .p-sm-4 {\n padding: 1.5rem !important; }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important; }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important; }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important; }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important; }\n .p-sm-5 {\n padding: 3rem !important; }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important; }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important; }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important; }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important; }\n .m-sm-n1 {\n margin: -0.25rem !important; }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important; }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important; }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important; }\n .m-sm-n2 {\n margin: -0.5rem !important; }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important; }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important; }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important; }\n .m-sm-n3 {\n margin: -1rem !important; }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important; }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important; }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important; }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important; }\n .m-sm-n4 {\n margin: -1.5rem !important; }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important; }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important; }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important; }\n .m-sm-n5 {\n margin: -3rem !important; }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important; }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important; }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important; }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important; }\n .m-sm-auto {\n margin: auto !important; }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important; }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important; }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important; }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important; }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important; }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important; }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important; }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important; }\n .m-md-1 {\n margin: 0.25rem !important; }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important; }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important; }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important; }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important; }\n .m-md-2 {\n margin: 0.5rem !important; }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important; }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important; }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important; }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important; }\n .m-md-3 {\n margin: 1rem !important; }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important; }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important; }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important; }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important; }\n .m-md-4 {\n margin: 1.5rem !important; }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important; }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important; }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important; }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important; }\n .m-md-5 {\n margin: 3rem !important; }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important; }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important; }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important; }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important; }\n .p-md-0 {\n padding: 0 !important; }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important; }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important; }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important; }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important; }\n .p-md-1 {\n padding: 0.25rem !important; }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important; }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important; }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important; }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important; }\n .p-md-2 {\n padding: 0.5rem !important; }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important; }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important; }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important; }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important; }\n .p-md-3 {\n padding: 1rem !important; }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important; }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important; }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important; }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important; }\n .p-md-4 {\n padding: 1.5rem !important; }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important; }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important; }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important; }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important; }\n .p-md-5 {\n padding: 3rem !important; }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important; }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important; }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important; }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important; }\n .m-md-n1 {\n margin: -0.25rem !important; }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important; }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important; }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important; }\n .m-md-n2 {\n margin: -0.5rem !important; }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important; }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important; }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important; }\n .m-md-n3 {\n margin: -1rem !important; }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important; }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important; }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important; }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important; }\n .m-md-n4 {\n margin: -1.5rem !important; }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important; }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important; }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important; }\n .m-md-n5 {\n margin: -3rem !important; }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important; }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important; }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important; }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important; }\n .m-md-auto {\n margin: auto !important; }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important; }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important; }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important; }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important; }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important; }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important; }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important; }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important; }\n .m-lg-1 {\n margin: 0.25rem !important; }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important; }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important; }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important; }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important; }\n .m-lg-2 {\n margin: 0.5rem !important; }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important; }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important; }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important; }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important; }\n .m-lg-3 {\n margin: 1rem !important; }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important; }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important; }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important; }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important; }\n .m-lg-4 {\n margin: 1.5rem !important; }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important; }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important; }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important; }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important; }\n .m-lg-5 {\n margin: 3rem !important; }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important; }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important; }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important; }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important; }\n .p-lg-0 {\n padding: 0 !important; }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important; }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important; }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important; }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important; }\n .p-lg-1 {\n padding: 0.25rem !important; }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important; }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important; }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important; }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important; }\n .p-lg-2 {\n padding: 0.5rem !important; }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important; }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important; }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important; }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important; }\n .p-lg-3 {\n padding: 1rem !important; }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important; }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important; }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important; }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important; }\n .p-lg-4 {\n padding: 1.5rem !important; }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important; }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important; }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important; }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important; }\n .p-lg-5 {\n padding: 3rem !important; }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important; }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important; }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important; }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important; }\n .m-lg-n1 {\n margin: -0.25rem !important; }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important; }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important; }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important; }\n .m-lg-n2 {\n margin: -0.5rem !important; }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important; }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important; }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important; }\n .m-lg-n3 {\n margin: -1rem !important; }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important; }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important; }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important; }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important; }\n .m-lg-n4 {\n margin: -1.5rem !important; }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important; }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important; }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important; }\n .m-lg-n5 {\n margin: -3rem !important; }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important; }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important; }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important; }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important; }\n .m-lg-auto {\n margin: auto !important; }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important; }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important; }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important; }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important; }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important; }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important; }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important; }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important; }\n .m-xl-1 {\n margin: 0.25rem !important; }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important; }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important; }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important; }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important; }\n .m-xl-2 {\n margin: 0.5rem !important; }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important; }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important; }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important; }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important; }\n .m-xl-3 {\n margin: 1rem !important; }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important; }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important; }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important; }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important; }\n .m-xl-4 {\n margin: 1.5rem !important; }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important; }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important; }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important; }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important; }\n .m-xl-5 {\n margin: 3rem !important; }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important; }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important; }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important; }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important; }\n .p-xl-0 {\n padding: 0 !important; }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important; }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important; }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important; }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important; }\n .p-xl-1 {\n padding: 0.25rem !important; }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important; }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important; }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important; }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important; }\n .p-xl-2 {\n padding: 0.5rem !important; }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important; }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important; }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important; }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important; }\n .p-xl-3 {\n padding: 1rem !important; }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important; }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important; }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important; }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important; }\n .p-xl-4 {\n padding: 1.5rem !important; }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important; }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important; }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important; }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important; }\n .p-xl-5 {\n padding: 3rem !important; }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important; }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important; }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important; }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important; }\n .m-xl-n1 {\n margin: -0.25rem !important; }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important; }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important; }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important; }\n .m-xl-n2 {\n margin: -0.5rem !important; }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important; }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important; }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important; }\n .m-xl-n3 {\n margin: -1rem !important; }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important; }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important; }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important; }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important; }\n .m-xl-n4 {\n margin: -1.5rem !important; }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important; }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important; }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important; }\n .m-xl-n5 {\n margin: -3rem !important; }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important; }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important; }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important; }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important; }\n .m-xl-auto {\n margin: auto !important; }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important; }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important; }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important; }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important; } }\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: "";\n background-color: rgba(0, 0, 0, 0); }\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; }\n\n.text-justify {\n text-align: justify !important; }\n\n.text-wrap {\n white-space: normal !important; }\n\n.text-nowrap {\n white-space: nowrap !important; }\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n\n.text-left {\n text-align: left !important; }\n\n.text-right {\n text-align: right !important; }\n\n.text-center {\n text-align: center !important; }\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important; }\n .text-sm-right {\n text-align: right !important; }\n .text-sm-center {\n text-align: center !important; } }\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important; }\n .text-md-right {\n text-align: right !important; }\n .text-md-center {\n text-align: center !important; } }\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important; }\n .text-lg-right {\n text-align: right !important; }\n .text-lg-center {\n text-align: center !important; } }\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important; }\n .text-xl-right {\n text-align: right !important; }\n .text-xl-center {\n text-align: center !important; } }\n\n.text-lowercase {\n text-transform: lowercase !important; }\n\n.text-uppercase {\n text-transform: uppercase !important; }\n\n.text-capitalize {\n text-transform: capitalize !important; }\n\n.font-weight-light {\n font-weight: 300 !important; }\n\n.font-weight-lighter {\n font-weight: lighter !important; }\n\n.font-weight-normal {\n font-weight: 400 !important; }\n\n.font-weight-bold {\n font-weight: 700 !important; }\n\n.font-weight-bolder {\n font-weight: bolder !important; }\n\n.font-italic {\n font-style: italic !important; }\n\n.text-white {\n color: #fff !important; }\n\n.text-primary {\n color: #375a7f !important; }\n\na.text-primary:hover, a.text-primary:focus {\n color: #20344a !important; }\n\n.text-secondary {\n color: #444 !important; }\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #1e1e1e !important; }\n\n.text-success {\n color: #00bc8c !important; }\n\na.text-success:hover, a.text-success:focus {\n color: #007053 !important; }\n\n.text-info {\n color: #3498db !important; }\n\na.text-info:hover, a.text-info:focus {\n color: #1d6fa5 !important; }\n\n.text-warning {\n color: #f39c12 !important; }\n\na.text-warning:hover, a.text-warning:focus {\n color: #b06f09 !important; }\n\n.text-danger {\n color: #e74c3c !important; }\n\na.text-danger:hover, a.text-danger:focus {\n color: #bf2718 !important; }\n\n.text-light {\n color: #adb5bd !important; }\n\na.text-light:hover, a.text-light:focus {\n color: #838f9b !important; }\n\n.text-dark {\n color: #303030 !important; }\n\na.text-dark:hover, a.text-dark:focus {\n color: #0a0a0a !important; }\n\n.text-body {\n color: #fff !important; }\n\n.text-muted {\n color: #888 !important; }\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important; }\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important; }\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0; }\n\n.text-decoration-none {\n text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important; }\n\n.text-reset {\n color: inherit !important; }\n\n.visible {\n visibility: visible !important; }\n\n.invisible {\n visibility: hidden !important; }\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important; }\n a:not(.btn) {\n text-decoration: underline; }\n abbr[title]::after {\n content: " (" attr(title) ")"; }\n pre {\n white-space: pre-wrap !important; }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid; }\n thead {\n display: table-header-group; }\n tr,\n img {\n page-break-inside: avoid; }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3; }\n h2,\n h3 {\n page-break-after: avoid; }\n @page {\n size: a3; }\n body {\n min-width: 992px !important; }\n .container {\n min-width: 992px !important; }\n .navbar {\n display: none; }\n .badge {\n border: 1px solid #000; }\n .table {\n border-collapse: collapse !important; }\n .table td,\n .table th {\n background-color: #fff !important; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important; }\n .table-dark {\n color: inherit; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #444; }\n .table .thead-dark th {\n color: inherit;\n border-color: #444; } }\n\n.blockquote-footer {\n color: #888; }\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #375a7f; }\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #444; }\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #adb5bd; }\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #303030; }\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #00bc8c; }\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #3498db; }\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #e74c3c; }\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #f39c12; }\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-hover .table-primary:hover,\n.table-hover .table-primary:hover > th,\n.table-hover .table-primary:hover > td {\n background-color: #2f4d6d; }\n\n.table-hover .table-secondary:hover,\n.table-hover .table-secondary:hover > th,\n.table-hover .table-secondary:hover > td {\n background-color: #373737; }\n\n.table-hover .table-light:hover,\n.table-hover .table-light:hover > th,\n.table-hover .table-light:hover > td {\n background-color: #9fa8b2; }\n\n.table-hover .table-dark:hover,\n.table-hover .table-dark:hover > th,\n.table-hover .table-dark:hover > td {\n background-color: #232323; }\n\n.table-hover .table-success:hover,\n.table-hover .table-success:hover > th,\n.table-hover .table-success:hover > td {\n background-color: #00a379; }\n\n.table-hover .table-info:hover,\n.table-hover .table-info:hover > th,\n.table-hover .table-info:hover > td {\n background-color: #258cd1; }\n\n.table-hover .table-danger:hover,\n.table-hover .table-danger:hover > th,\n.table-hover .table-danger:hover > td {\n background-color: #e43725; }\n\n.table-hover .table-warning:hover,\n.table-hover .table-warning:hover > th,\n.table-hover .table-warning:hover > td {\n background-color: #e08e0b; }\n\n.table-hover .table-active:hover,\n.table-hover .table-active:hover > th,\n.table-hover .table-active:hover > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.input-group-addon {\n color: #fff; }\n\n.nav-tabs .nav-link,\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-link.active:focus,\n.nav-tabs .nav-link.active:hover,\n.nav-tabs .nav-item.open .nav-link,\n.nav-tabs .nav-item.open .nav-link:focus,\n.nav-tabs .nav-item.open .nav-link:hover,\n.nav-pills .nav-link,\n.nav-pills .nav-link.active,\n.nav-pills .nav-link.active:focus,\n.nav-pills .nav-link.active:hover,\n.nav-pills .nav-item.open .nav-link,\n.nav-pills .nav-item.open .nav-link:focus,\n.nav-pills .nav-item.open .nav-link:hover {\n color: #fff; }\n\n.breadcrumb a {\n color: #fff; }\n\n.pagination a:hover {\n text-decoration: none; }\n\n.close {\n opacity: .4; }\n .close:hover, .close:focus {\n opacity: 1; }\n\n.alert {\n border: none;\n color: #fff; }\n .alert a,\n .alert .alert-link {\n color: #fff;\n text-decoration: underline; }\n .alert-primary {\n background-color: #375a7f; }\n .alert-secondary {\n background-color: #444; }\n .alert-success {\n background-color: #00bc8c; }\n .alert-info {\n background-color: #3498db; }\n .alert-warning {\n background-color: #f39c12; }\n .alert-danger {\n background-color: #e74c3c; }\n .alert-light {\n background-color: #adb5bd; }\n .alert-dark {\n background-color: #303030; }\n\n.list-group-item-action {\n color: #fff; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n background-color: #444;\n color: #fff; }\n .list-group-item-action .list-group-item-heading {\n color: #fff; }\n\nbody {\n min-height: 100vh; }\n\n.border-bottom {\n border-width: 3px !important; }\n\n.border-top {\n border-width: 3px !important; }\n\ntr.hide {\n display: none; }\n\n.rebooting {\n display: none; }\n\n/* body {\n border: 0;\n margin: 0;\n margin-bottom:50px;\n padding-left: 12px;\n padding-right: 12px;\n padding-bottom: 45px;\n}\na {\n color: #fff;\n transition: color .2s ease-out;\n text-decoration: none\n}\na:hover {\n color: #99f;\n text-decoration: none\n}\n.glyphicon {\n font-size: 18px;\n}\ninput:focus,\nselect:focus,\ntextarea:focus,\nbutton:focus {\n outline: none;\n}\n.blur {\n -webkit-filter: blur(2px);\n -moz-filter: blur(2px);\n -ms-filter: blur(2px);\n -o-filter: blur(2px);\n filter: blur(2px);\n}\n.ape {\n padding: 10px 0px 10px 10px;\n background-color: #444;\n}\n.ape:hover {\n cursor: pointer;\n}\nheader {\n border-bottom: 1px solid #000;\n border-top: 1px solid #000;\n}\nsection {\n border-bottom: 1px solid #000;\n border-top: 1px solid #000;\n}\nh1 {\n margin: 0;\n margin-top: 20px;\n padding: 10px;\n text-transform: uppercase;\n color: #888;\n font-size: 1.6em\n}\nh2 {\n margin: 0;\n margin-top: 20px;\n padding: 10px;\n text-transform: uppercase;\n color: #888;\n font-size: 1.0em\n}\nh3 {\n margin: 0;\n text-align: center;\n padding: 20px 0px 20px 0px;\n}\n.gr {\n color: green;\n}\n.rd {\n color: red;\n}\n#wifi-status {\n display: none;\n}\n#connect {\n display: none;\n}\n#connect_manual {\n display: none;\n}\n#manual_ssid {\n border: none;\n width: 80%;\n padding: 10px 0px 10px 10px;\n display: block\n}\n#manual_pwd {\n border: none;\n width: 80%;\n padding: 10px 0px 10px 10px;\n display: block\n}\n#pwd {\n border: none;\n width: 80%;\n padding: 10px 0px 10px 10px;\n display: block\n}\n.buttons {\n padding: 15px;\n}\n#join {\n float: right;\n}\n#manual_join {\n float: right;\n}\n#yes-disconnect {\n display: inline-block;\n}\n#no-disconnect {\n display: inline-block;\n}\n.tctr {\n text-align: center;\n}\n#connect-wait {\n display: none;\n}\n#connect-success {\n display: none;\n}\n#connect-fail {\n display: none;\n}\n#connect-details {\n display: none;\n}\n#diag-disconnect {\n display: none;\n}\n.fr {\n float: right;\n margin-right: 20px;\n} */\n/* .w0 {\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABzUlEQVRIS+WUTShEURTH3zyRhjQ+8hWxmCJMoSzEwsbCgi1LZRYW9pONptiwka9iI81CWFpYaEqNMkVKmpWN1IhYKN9ZDL/z3p3mxZh5g9X4168799xz/vPefedeLeuVC+3gdTgc07CsmCQ2DI2gg21Jci30wSpGt/CeghickTsHPVACDkgqp67rPgpO4E0ZZMIj7OHhxSvPtEyomcVDeFXJv+EZNvEsNa01rZfAuSUhThR2wU+ObJkbyhRNMMDaDIThBqy1MdZ3wAPawqfFC2Lj0Ab5kpBGxdAJs9TeW72ITUhCPZMjFYwwbwXpnkwlDzOIx50yXwP5c0MeggHGanNqSDqqBqQ7/Kxvg2zHAfMN8IE8uZhYO6eBnBXGKnOakLWfaQZ9jMRjSPXhZUuC5A9JjVFpKkeNSVVA0Tq8KJN0yFl4gilqbW2tm+SQKoybXIG8jcT34RSsh1Byt6iVg2ZLlRCg6JpROqEDpFheXZ5S9rcLFsl5YJwHad+MVA5y13w5lRY5oRsKjdm/Vz/7LR86zG+5wr+9NX+iOowjEO+aELEic+lv1ILppeUPosRst6QduTANgnE2mC+BnYswI1VwfYzCCL9dZij7pWkf6UeSTYAuE/QAAAAASUVORK5CYII=\') no-repeat left top;\n height: 24px;\n}\n.w1 {\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHiSURBVEhL5dRPKINxHMfxPVskpA35F3FYEVasHBYHFwcHrhyVZ8vBfblIceEi/4qLtINwdHCQUpQVKcnJRYqIg/J3OYz399nv0YPNtuzEt149+31/v+/n4fGYLVHpup4Rnyregd+K27TIghe63+8fx7wySqsPdbAj3qzha0MOV6ETiwTd4u0HUZxydgrtKISGj0xreG4gEAgycIRXFZCOR2yTQZSebeaa4Q1s7iOiDv/GM1bJLDJv0EHjzHLAdIFNjHBGHpkbxUo9utmbQBg3sM5G2d+AR24w82XznN4QmpGjXrCExRkXfJhk9t6aRW9YDtSwOFDNE9ZNyFLzKRczOegh406FL8ElG8JDM8S1Qtaq7KhEO0Y0TVtHGHusVxCEDy5oMLNqyVrgWm5kqaYw3mdVdmqQsENE8JbAPbY43yszMqiyHOr66QayL5XH0DJeVEgyUTxhjNmPR/vtBpZyc3hHDZohV5DfRvq7OMYtrDdZY7YwFpG8yhBi6JrrMFogww7IT1mOVsxy5oHrNIqRVpWgDtnGKn7log35xurfVxfPW/7QYT57Ybz7mapqgk9gvjU79ApiW5mpRkIvLTe4oJfyK5lKOQndgvG/wXoOSb8I061Svj4G0M9nZ6z198tmeweYtIrMYP17VAAAAABJRU5ErkJggg==\') no-repeat left top;\n height: 24px;\n}\n.w2 {\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHkSURBVEhL3dRLKERRGMDxuSPSkLzyilgo8iiUhVjYWFiwZancmSzsZSPFho28io1kISwtLKQURZGSrGykiFgo7yyG/zdzznRm5iK5Sk79uvd85/u++5hzx2Pb9q9yDLrJMWhIRB1sv98/ghlliFAXyuGFU21IbECSi9CKORrd4O0TQZyQO45mZMJCpKfZ3BcIBPooOMSravAdD9ikB63sJN1XN69kcQ8vKvknnrBMzyx9gRYCp0aCdo51DJIjr6wU2UoF2lkbxS6uYdYGWV9DtVxgMmbxjFg/apEM/ZQfyUADxqi9M3sRG5CEEib7KnjMvAaye2IbfUVupoMet6r5PDL0YjXBBY4Fai5kRxVCdscg66uQ17HDfAl9kDuXJzB3Thk5sxzzZa6DumHknN3QS+IBPvvh5ZVskN8ZU5+gz3XAlELRIp5Vk6/It/CIYWrjXm3URCkleUsV6iaXkKeR+DaOYH6EkrtCrXxoUf2iJoY8LFB0xXEA9ZBieXS5S3m/jZgi557jBGT7xvWKCxhyIP81ka/SgQ9NSDViURyDbvpTo82yrAPscl4HKxR1aRTT+BhvyhaxtPCSO6OKphfGBc6JZYaX3BnpNN1AUC7AfBrJoRUXR67X6+1BN+fp4dD/Hx7PO4o9VGuAapKIAAAAAElFTkSuQmCC\') no-repeat left top;\n height: 24px;\n}\n.w3 {\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAACAElEQVRIS7XUP0gbYRjH8VSpiBZJWvEflXYQKtqACg6ig4uDg651LPQSHLpLlyDoUhdpVdBFxEG0YwcHCQgRFJSCFKcuUohY6iC0VYtD9PuE9w3vXZ74h16HD3fv733e53KX9y7ied5/pYZhUkPHQ3TBSyQS7zFvTBC9RivKoK3NCwZS3IxBLNLoBFc3yOEbtR/Qj8d4gEJPt3lVMpkcY8E+Lk2D+/iDTXrQyquwfW3zdiZ38dcU/4tzrNHzib3AAMGhU2BlsYFxauSRtaDWaMMwc1PYwU+4a3PMryMuF5gJTH4ne4dOVMLeZSkx9GCatb/cXmQpKXjOYM+EB4w7ILsn2Og28mNe0ePUNF9CzE7GCZc5NpmxkB31FLI7xpn/DHkc24xXMQb55XIH7s55Qc0Cx0YZ29A2LJyzG95S+AU3/fHySNLUjwTWl9tzG7iqWbSCC9PkNvIunGGStUWP1jcwWijOmIW2yTHkbiTfwle4L6HUfmKtvGi+fr6BowHLLPrBMYVuyGK5dfmV8nx7MUvNb44fIdu3qFdR4KiDfGsKb6WiCn145GQ+ahgmNQyTGpYwxPOWP3qHc/mE+76apaih4hmND2B3TYasJlCjUkPFS5oeORfIkhVtSY0aKqI0TSP/bjCew10+hPf6D+r5fIziDefRwFxJahgmNQyPF7kGEsc1es+A2E4AAAAASUVORK5CYII=\') no-repeat left top;\n height: 24px;\n} */\n/* .pw {\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABIUlEQVRIS+3VsU7CUBTGcYhBJCwqwcmEJ2DkCQgzb8ADmLgYWXTzMVjcGNjYGEAXgoSRhTg5OroYIyFY/h+hWGwvtzQ0LpzkF8i5l/uRQ2kTjuPEKrC5T79vzHWJO4wxwzeGuMY5AitsQBFvmEObvNQboQBfhQk4gQ5wD+zgBrcYrHrSwzE2KkxAHVrQWB6QgiqJLB7xA+2pYaNsAWm8QAsa0Sn+1gU+oT1NHGFdtoAcJtBCSw1DuaPqQiNdly0gj1doQaMwleavPc+IJUDffKeADO7Rxxe08A4dEOQD2qPXJ1xh+VuYAirQVaNGFFPov2MM0OXm/UAUZRwCtjoEWP1vQBXuLTgKPYRKMAacoY0oIboDNLB8+PgC4hLY3B8nsQCQEf56jLJoQAAAAABJRU5ErkJggg==\') no-repeat left top;\n height: 24px;\n} */\n/* SpinKit is licensed under the MIT License. Copyright (c) 2015 Tobias Ahlin */\n/* .spinner {\n width: 40px;\n height: 40px;\n \n position: relative;\n margin: 100px auto;\n }\n \n .double-bounce1, .double-bounce2 {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: #333;\n opacity: 0.6;\n position: absolute;\n top: 0;\n left: 0;\n \n -webkit-animation: bounce 2.0s infinite ease-in-out;\n animation: bounce 2.0s infinite ease-in-out;\n }\n \n .double-bounce2 {\n -webkit-animation-delay: -1.0s;\n animation-delay: -1.0s;\n }\n \n @-webkit-keyframes bounce {\n 0%, 100% { -webkit-transform: scale(0.0) }\n 50% { -webkit-transform: scale(1.0) }\n }\n \n @keyframes bounce {\n 0%, 100% { \n transform: scale(0.0);\n -webkit-transform: scale(0.0);\n } 50% { \n transform: scale(1.0);\n -webkit-transform: scale(1.0);\n }\n } */\n/* end of SpinKit */\n/* daduke stuff */\n/* input[type=\'text\'], input[type=\'password\'], textarea, select, option {\n background: #999;\n border: 0;\n padding: 4px;\n}\n\n.custom-switch {\n margin-left: 8px;\n}\n\n.custom-switch, .custom-radio {\n padding-left: 2.25rem;\n padding-bottom: 1rem;\n}\n\n.custom-checkbox > .custom-control-label {\n padding-top: 0.5rem;\n padding-left: 2rem;\n padding-bottom: 0.1rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n height: 2rem;\n width: 3.5rem;\n pointer-events: all;\n border-radius: 1rem;\n background-color: #f00;\n} */\n/* \n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(2rem - 4px);\n height: calc(2rem - 4px);\n background-color: #adb5bd;\n border-radius: 2rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n} */\n/* \n.custom-switch .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #0f0;\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(1.5rem); \n transform: translateX(1.5rem); \n}\n\ntextarea#autoexec1, textarea#fwurl, div#upload {\n width: 80%;\n}\n\ntable tr.MESSAGING_INFO {\n background: #123;\n}\n\ntable tr.MESSAGING_WARNING {\n background: #330;\n}\n\ntable tr.MESSAGING_ERROR {\n background: #300;\n}\n\ninput, textarea {\n border-radius: 3px;\n border: 1px solid transparent;\n border-top: none;\n border-bottom: 1px solid #DDD;\n box-shadow: inset 0 1px 2px rgba(0,0,0,.39), 0 -1px 1px #FFF, 0 1px 0 #FFF;\n}\n\n#otadiv {\n\tdisplay: none;\n}\n\n#btsinkdiv {\n\tdisplay: none;\n}\n\n.tooltip-inner {\n font-family: monospace, monospace;\n font-size: 70%;\n}\n\n#progress {\n width: 60%;\n}\n\n.progress-bar {\n color: #fff;\n background-color: #037AF0;\n}\n\nspan#flash-status {\n padding-left: 15px;\n font-size: 120%;\n} */\n/* #info {\n padding-top: 7px;\n float: right;\n display: grid;\n} */\n/* svg#battery {\n fill: #ddd;\n}\n\nsvg#output {\n fill: #ddd;\n padding-right: 4px;\n}\n\nsvg#jack {\n fill: #ddd;\n padding-right: 4px;\n} */\n/* \nul#navbar {\n border-bottom: 0px;\n}\n.navbar-nav {\n float: left;\n margin: 0;\n padding-top: 1rem;\n\n}\n#content {\n border-top: 1px solid black;\n} */\n/* .footer {\n position: fixed;\n left: 0;\n bottom: 0;\n width: 100%;\n background-color: #555;\n color: white;\n text-align: center;\n} */\n/* \n.sl {\n background-color: #053c1e;\n}\n.recovery {\n background-color: #3c0505;\n}\n\ntd.value {\n width: 80%;\n}\n\n#boot-div {\n float: right;\n}\ndiv#message {\n display: none;\n color: #000;\n background: #f00;\n position:fixed;\n padding: 8px;\n top: 20%;\n left: 50%;\n width:20em;\n height:4em;\n text-align: center;\n margin-left: -10em; \n margin-top: -2em; \n border-radius: 8px;\n box-shadow: 0px 5px 2px -5px rgba(255, 255, 255, 0.5) inset, 0px 10px 20px -5px rgba(255, 255, 255, 0.1) inset, 0 0px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 1px rgba(0, 0, 0, 0.12), 0 1px 10px 0 rgba(0, 0, 0, 0.3);\n z-index: 20;\n} */\n/* \n */\n/* \n#searchfw {\n float: right;\n display: none;\n} */\n/* button#updateAP {\n float: right;\n display: inline;\n} */\n',""])},36:function(n,t){},37:function(n,t,o){"use strict";o.r(t);o(6),o(11),o(16),o(17),o(18),o(19),o(20),o(21),o(22),o(23),o(24),o(25),o(26),o(27),o(28),o(29),o(30),o(31),o(32);var r=o(3),e=o.n(r),a=o(1),i=o.n(a),l=o(5),d=o.n(l),m=o(0);function c(n,t){var o;if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(o=function(n,t){if(!n)return;if("string"==typeof n)return s(n,t);var o=Object.prototype.toString.call(n).slice(8,-1);"Object"===o&&n.constructor&&(o=n.constructor.name);if("Map"===o||"Set"===o)return Array.from(n);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return s(n,t)}(n))||t&&n&&"number"==typeof n.length){o&&(n=o);var r=0,e=function(){};return{s:e,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){o=n[Symbol.iterator]()},n:function(){var n=o.next();return i=n.done,n},e:function(n){l=!0,a=n},f:function(){try{i||null==o.return||o.return()}finally{if(l)throw a}}}}function s(n,t){(null==t||t>n.length)&&(t=n.length);for(var o=0,r=new Array(t);o")}}),Object.assign(Date.prototype,{toLocalShort:function(){return this.toLocaleString(void 0,{dateStyle:"short",timeStyle:"short"})}});var p=1,b=17,g=2,f=18,u=4,h=20,x=8,v=24,w={bt_playing:"play-circle-fill",bt_disconnected:"bluetooth-fill",bt_neutral:"",bt_connected:"bluetooth-connect-fill",bt_disabled:"",play_arrow:"play-circle-fill",pause:"pause-circle-fill",stop:"stop-circle-fill","":""},y=[{desc:"Idle",sub:["bt_neutral"]},{desc:"Discovering",sub:["bt_disconnected"]},{desc:"Discovered",sub:["bt_disconnected"]},{desc:"Unconnected",sub:["bt_disconnected"]},{desc:"Connecting",sub:["bt_disconnected"]},{desc:"Connected",sub:["bt_connected","play_arrow","bt_playing","pause","stop"]},{desc:"Disconnecting",sub:["bt_disconnected"]}],k={MESSAGING_INFO:"badge-success",MESSAGING_WARNING:"badge-warning",MESSAGING_ERROR:"badge-danger"},A=0,S=1,z=3,E=4,_={0:"eRunning", /*! < A task is querying the state of itself, so must be running. */ 1:"eReady", /*! < The task being queried is in a read or pending ready list. */ @@ -6,4 +6,4 @@ /*! < The task being queried is in the Blocked state. */ 3:"eSuspended", /*! < The task being queried is in the Suspended state, or is in the Blocked state with an infinite time out. */ -4:"eDeleted"},R={NONE:0,REBOOT_TO_RECOVERY:2,SET_FWURL:5,FLASHING:6,DONE:7,UPLOADING:8,ERROR:9},N=R.FLASH_NONE,j="",O=0,C=!1;function T(n){var t={timestamp:Date.now(),config:n};$.ajax({url:"/config.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(t),error:F})}function I(n){n.ota_dsc&&(j=n.ota_dsc),null!=n.ota_pct&&(O=n.ota_pct),N!=R.ERROR&&(!function(n){return N!=R.UPLOADING&&(""!=n.ota_dsc||n.ota_pct>0)}(n)?N==R.FLASHING?100==O?(N=R.DONE,$("#flashfilename").val("")):O<0&&C&&(console.log("End of flashing from older recovery"),""==n.ota_dsc&&(j="OTA Process Completed"),N=R.DONE):N==R.UPLOADING&&100==O&&(O=0,N=R.FLASHING):N=R.FLASHING)}function G(n){N=R.ERROR,B({ota_pct:0,ota_dsc:n,event:M.SET_ERROR})}function L(){$("#otadiv").modal(),O>=0&&U(),""!==j&&$("span#flash-status").html(j)}var M={SET_ERROR:function(n){var t;j=n.ota_dsc?n.ota_dsc:"Error",O=null!==(t=n.ota_pct)&&void 0!==t?t:0,$("#fwProgressLabel").parent().addClass("bg-danger"),U(),L()},START_OTA:function(){if(N==R.NONE||N==R.ERROR||null==N){if($("#fwProgressLabel").parent().removeClass("bg-danger"),N=R.REBOOT_TO_RECOVERY,H)j="Starting Update";else{j="Starting recovery mode...";var n={timestamp:Date.now()};$.ajax({url:"/recovery.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(n),error:function(n,t,o){var r;G("Unexpected error while trying to restart to recovery. (status=".concat(null!==(r=n.status)&&void 0!==r?r:"",", error=").concat(null!=o?o:""," ) "))},complete:function(n){console.log(n.responseText)}})}L()}else console.warn("Unexpected status while starting flashing")},FOUND_RECOVERY:function(n){console.log(JSON.stringify(n));var t=$("#fw-url-input").val();if(N==R.REBOOT_TO_RECOVERY){var o=$("#flashfilename")[0].files;if(o.length>0){j="Sending file to device.",N=R.UPLOADING;var r=new XMLHttpRequest;r.upload.addEventListener("progress",D,!1),r.onreadystatechange=function(){4===r.readyState&&(0!==r.status&&404!==r.status||(G("Upload Failed. Recovery version might not support uploading. Please use web update instead."),$("#flashfilename").val("")))},r.open("POST","/flash.json",!0),r.send(o[0])}else if(""==t)N=R.NONE;else{j="Saving firmware URL location.",N=R.SET_FWURL,T({fwurl:{value:$("#fw-url-input").val(),type:33}})}L()}},PROCESS_OTA_UPLOAD:function(n){N=R.UPLOADING,I(n),L()},PROCESS_OTA_STATUS:function(n){n.ota_pct>0&&(C=!0),N==R.REBOOT_TO_RECOVERY?(n.event=M.FOUND_RECOVERY,B(n)):N!=R.DONE||H?(I(n),N&&N>R.NONE&&O>=0&&L()):(N=R.NONE,$("#rTable tr.release").removeClass("table-success table-warning"),$("#fw-url-input").val(""))},PROCESS_OTA:function(n){I(n),N&&N>R.NONE&&O>=0&&L()}};function U(){$(".progress-bar").css("width",O+"%").attr("aria-valuenow",O).text(O+"%"),$(".progress-bar").html((N==R.DONE?100:O)+"%")}function B(n){n.event?n.event(n):console.error("Unexpected error while processing handle_flash_state")}function D(n){B({ota_pct:Math.round(n.loaded/n.total*100),ota_dsc:"Uploading file to device",event:M.PROCESS_OTA_UPLOAD})}function P(n){"bt"===n?($("#bt").prop("checked",!0),$("#o_bt").attr("display","inline"),$("#o_spdif").attr("display","none"),$("#o_i2s").attr("display","none"),on="bt"):"spdif"===n?($("#spdif").prop("checked",!0),$("#o_bt").attr("display","none"),$("#o_spdif").attr("display","inline"),$("#o_i2s").attr("display","none"),on="spdif"):($("#i2s").prop("checked",!0),$("#o_bt").attr("display","none"),$("#o_spdif").attr("display","none"),$("#o_i2s").attr("display","inline"),on="i2s")}function F(n,t,o){console.log(n.status),console.log(o),""!==o&&jn(o,"MESSAGING_ERROR")}function Y(n){$("#toast_"+n).css("display","none"),$("#toast_"+n).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass("table-success"),$("#msg_"+n).html("")}function J(n,t,o){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],e="table-success";"MESSAGING_WARNING"===t?e="table-warning":"MESSAGING_ERROR"===t&&(e="table-danger"),$("#toast_"+n).css("display","block"),$("#toast_"+n).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass(e);var a=o.substring(0,o.length-1).encodeHTML().replace(/\n/g,"
");a=($("#msg_"+n).html().length>0&&r?$("#msg_"+n).html()+"
":"")+a,$("#msg_"+n).html(a)}window.hideSurrounding=function(n){$(n).parent().parent().hide()},window.hFlash=function(){$("#flashfilename").val(""),B({event:M.START_OTA,url:$("#fw-url-input").val()})},window.handleReboot=function(n){"reboot_ota"==n?($("#reboot_ota_nav").removeClass("active").prop("disabled",!0),hn(500,"","reboot_ota")):($("#reboot_nav").removeClass("active"),hn(500,"",n))};var Q,V="https://api.github.com/repos/sle118/squeezelite-esp32/releases",H=!1,W=!1,Z=0,q="MESSAGING_INFO",K=!1,X=null,nn={},tn=null,on="",rn="",en="Squeezelite-ESP32",an="",ln=en,dn=en,mn={},cn={},sn="",pn=0,bn=1,gn=2;function fn(){K=!0,setTimeout(En,3e3)}function un(n){var t={};$("input.nvs").each((function(o,r){if(n)t[r.id]=r.value;else{var e=parseInt(r.attributes.nvs_type.value,10);""!==r.id&&(t[r.id]={},t[r.id].value=e===p||e===b||e===g||e===f||e===u||e===h||e===x||e===v?parseInt(r.value):r.value,t[r.id].type=e)}}));var o=$("#nvs-new-key").val(),r=$("#nvs-new-value").val();return""!==o&&(n?t[o]=r:(t[o]={},t[o].value=r,t[o].type=33)),t}function hn(n,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"reboot",r="/"+o+".json";$("tbody#tasks").empty(),$("#tasks_sect").css("visibility","collapse"),m.Promise.resolve({cmdname:t,url:r}).delay(n).then((function(n){n.cmdname.length>0?J(n.cmdname,"MESSAGING_WARNING","System is rebooting.\n",!0):jn("System is rebooting.\n","MESSAGING_WARNING"),console.log("now triggering reboot"),$("button[onclick*='handleReboot']").addClass("rebooting"),$.ajax({url:n.url,dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()}),error:F,complete:function(){console.log("reboot call completed"),m.Promise.resolve(n).delay(6e3).then((function(n){n.cmdname.length>0&&Y(n.cmdname),Rn(),Nn()}))}})}))}function xn(n){return $(".upf").filter((function(){return $(this).text().toUpperCase()===n.toUpperCase()})).length>0&&($("#splf").val(n).trigger("input"),!0)}function vn(n){return n>=-55?"#signal-wifi-fill":n>=-60?"#signal-wifi-3-fill":n>=-65?"#signal-wifi-2-fill":n>=-70?"#signal-wifi-1-fill":"#signal-wifi-line"}function wn(){$.getJSON("/scan.json",e()(i.a.mark((function n(){return i.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Tn(2e3);case 2:$.getJSON("/ap.json",(function(n){n.length>0&&(n.sort((function(n,t){var o=n.rssi,r=t.rssi;return or?-1:0})),kn(n))}));case 3:case"end":return n.stop()}}),n)}))))}function yn(n,t,o){return''.concat(n,'\n \n \t\n\t\t\t\t\n\t\t\t\n \n \n \n \n\n\n ')}function kn(n){var t="";if($("#wifiTable tr td:first-of-type").text(""),$("#wifiTable tr").removeClass("table-success table-warning"),n&&(n.forEach((function(n){t+=yn(n.ssid,n.rssi,n.auth)})),$("#wifiTable").html(t)),0==$(".manual_add").length&&($("#wifiTable").append(yn("Manual add",0,0)),$("#wifiTable tr:last").addClass("table-light text-dark").addClass("manual_add")),!mn.ssid||mn.urc!==A&&mn.urc!==E)$("span#foot-wifi").html("");else{var o,r='#wifiTable td:contains("'.concat(mn.ssid,'")');if(0==$(r).filter((function(){return $(this).text()===mn.ssid})).length)$("#wifiTable").prepend("".concat(yn(mn.ssid,null!==(o=mn.rssi)&&void 0!==o?o:0,0)));$(r).filter((function(){return $(this).text()===mn.ssid})).siblings().first().html("✓").parent().addClass(mn.urc===A?"table-success":"table-warning"),$("span#foot-wifi").html("SSID: ".concat(mn.ssid,", IP: ").concat(mn.ip,"")),$("#wifiStsIcon").attr("xlink:href",vn(mn.rssi))}}function An(n){console.debug(this.toLocaleString()+"\t"+n.nme+"\t"+n.cpu+"\t"+_[n.st]+"\t"+n.minstk+"\t"+n.bprio+"\t"+n.cprio+"\t"+n.num),$("tbody#tasks").append(''+n.num+""+n.nme+""+n.cpu+""+_[n.st]+""+n.minstk+""+n.bprio+""+n.cprio+"")}function Sn(n){return $("".concat("#cfg-audio-bt_source-sink_name"," option:contains('").concat(n,"')"))}function $n(n){if($("#WifiConnectDialog").is(":visible")){if(mn.ip&&$("#ipAddress").text(mn.ip),mn.ssid&&$("#connectedToSSID").text(mn.ssid),mn.gw&&$("#gateway").text(mn.gw),mn.netmask&&$("#netmask").text(mn.netmask),(void 0===cn.Action||cn.Action&&cn.Action==gn)&&($("*[class*='connecting']").hide(),$(".connecting-status").show()),nn.ap_ssid&&$("#apName").text(nn.ap_ssid),nn.ap_pwd&&$("#apPass").text(nn.ap_pwd),!n)return;switch(n.urc){case A:n.ssid&&n.ssid===cn.ssid&&($("*[class*='connecting']").hide(),$(".connecting-success").show(),cn.Action=gn);break;case S:cn.Action!=gn&&cn.ssid==n.ssid&&($("*[class*='connecting']").hide(),$(".connecting-fail").show());break;case z:break;case E:cn.Action!=gn&&cn.ssid!=n.ssid&&($("*[class*='connecting']").hide(),$(".connecting-fail").show())}}}function zn(n){(function(n){return n.urc!==mn.urc||n.ssid!==mn.ssid||n.gw!==mn.gw||n.netmask!==mn.netmask||n.ip!==mn.ip||n.rssi!==mn.rssi})(n)&&(mn=n,kn()),$n(n)}function En(){K&&fn(),W||(W=!0,$.getJSON("/messages.json",function(){var n=e()(i.a.mark((function n(t){var o,r,e,a,l,d,m,s,p,b,g;return i.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:o=c(t);try{for(e=function(){var n,t,o=r.value,e=o.current_time-o.sent_time;switch((a=new Date).setTime(a.getTime()-e),o.class){case"MESSAGING_CLASS_OTA":B({ota_pct:null!==(n=(l=JSON.parse(o.message)).ota_pct)&&void 0!==n?n:-1,ota_dsc:null!==(t=l.ota_dsc)&&void 0!==t?t:"",event:M.PROCESS_OTA});break;case"MESSAGING_CLASS_STATS":d=JSON.parse(o.message),console.debug(a.toLocalShort()+" - Number of running tasks: "+d.ntasks),console.debug(a.toLocalShort()+"\tname\tcpu\tstate\tminstk\tbprio\tcprio\tnum"),d.tasks?("collapse"===$("#tasks_sect").css("visibility")&&$("#tasks_sect").css("visibility","visible"),$("tbody#tasks").html(""),d.tasks.sort((function(n,t){return t.cpu-n.cpu})).forEach(An,a)):"visible"===$("#tasks_sect").css("visibility")&&($("tbody#tasks").empty(),$("#tasks_sect").css("visibility","collapse"));break;case"MESSAGING_CLASS_SYSTEM":On(o,a);break;case"MESSAGING_CLASS_CFGCMD":J((m=o.message.split(/((?:(?!\n)[\s\S])*)\n([\s\S]*)/g))[1],o.type,m[2],!0);break;case"MESSAGING_CLASS_BT":if($("#cfg-audio-bt_source-sink_name").is("input")){for(s=$("#cfg-audio-bt_source-sink_name")[0].attributes,p="",b=0;b "))}JSON.parse(o.message).forEach((function(n){Sn(n.name).length>0||($("#cfg-audio-bt_source-sink_name").append("")),On({type:o.type,message:"BT Audio device found: ".concat(n.name," RSSI: ").concat(n.rssi," ")},a)),Sn(n.name).attr("data-description","".concat(n.name," (").concat(n.rssi,"dB)")).attr("rssi",n.rssi).attr("value",n.name).text("".concat(n.name," [").concat(n.rssi,"dB]")).trigger("change")})),$("#cfg-audio-bt_source-sink_name").append($("".concat("#cfg-audio-bt_source-sink_name"," option")).remove().sort((function(n,t){return console.log("".concat(parseInt($(n).attr("rssi"))," < ").concat(parseInt($(t).attr("rssi"))," ? ")),parseInt($(n).attr("rssi"))[recovery]":"")),$("span#foot-fw").html("fw: ".concat(en,", mode: ").concat(H?"Recovery":ln,""))):$("span#flash-status").html(""),n.Voltage?($("#battery").attr("xlink:href","#".concat(function(n){if(n>0)return Cn(n,5.8,6.8)||Cn(n,8.8,10.2)||Cn(n,6.8,7.4)||Cn(n,10.2,11.1)||Cn(n,7.4,7.5)||Cn(n,11.1,11.25)?"battery-low-line":Cn(n,7.5,7.8)||Cn(n,11.25,11.7)?"battery-fill":"battery-line"}(n.Voltage))),$("#battery").show()):$("#battery").hide(),""!=(null!==(r=n.message)&&void 0!==r?r:"")&&an!=n.message&&(an=n.message,jn(n.message,"MESSAGING_INFO")),$("button[onclick*='handleReboot']").removeClass("rebooting"),void 0===Q||n.lms_ip!=sn&&n.lms_ip&&n.lms_port){var e="http://"+n.lms_ip+":"+n.lms_port;sn=n.lms_ip,$.ajax({url:e+"/plugins/SqueezeESP32/firmware/-99",dataType:"text",cache:!1,error:function(){Q=""},success:function(){Q=e}})}$("#o_jack").attr("display",Number(n.Jack)?"inline":"none"),W=!1})).fail((function(n,t,o){F(n,0,o),W=!1})))}function _n(n,t,o){return void 0!==n.values[t]?n.values[t][o]:""}function Rn(){$.getJSON("/commands.json",(function(n){console.log(n),$(".orec").show(),n.commands.forEach((function(t){if(0===$("#flds-"+t.name).length){var o=t.name.split("-"),r="cfg"===o[0],e="#tab-"+o[0]+"-"+o[1],a="";a+='

'+t.help.encodeHTML().replace(/\n/g,"
")+'
',a+='
',t.argtable&&t.argtable.forEach((function(o){var r=o.datatype||"",e=t.name+"-"+o.longopts,i=_n(n,t.name,o.longopts),l="hasvalue="+o.hasvalue+" ";l+='longopts="'+o.longopts+'" ',l+='shortopts="'+o.shortopts+'" ',l+="checkbox="+o.checkbox+" ",l+='cmdname="'+t.name+'" ',l+='id="'+e+'" name="'+e+'" hasvalue="'+o.hasvalue+'" ';var d=o.mincount>0?"bg-success":"";"hidden"===o.glossary&&(l+=' style="visibility: hidden;"'),o.checkbox?(a+='
"):(a+='
",r.includes("|")?(d=r.startsWith("+")?" multiple ":"",r=r.replace("<","").replace("=","").replace(">",""),a+=""):a+='",a+='Previous value: '+(i||"")+""),a+="
"})),a+='
',a+='',r?(a+='',a+=''):a+='',a+="
",r?$(e).append(a):$("#commands-list").append(a)}})),n.commands.forEach((function(t){$("[cmdname="+t.name+"]:input").val(""),$("[cmdname="+t.name+"]:checkbox").prop("checked",!1),t.argtable&&t.argtable.forEach((function(o){var r="#"+t.name+"-"+o.longopts,e=_n(n,t.name,o.longopts);o.checkbox?$(r)[0].checked=e:(void 0!==e&&$(r).val(e).trigger("change"),0===$(r)[0].value.length&&(o.datatype||"").includes("|")&&($(r)[0].value="--"))}))}))})).fail((function(n,t,o){404==n.status?$(".orec").hide():F(n,0,o),$("#commands-list").empty(),W=!1}))}function Nn(){$.getJSON("/config.json",(function(n){$("#nvsTable tr").remove();var t=n.config?n.config:n;nn=t,Object.keys(t).sort().forEach((function(n){var o=t[n].value;if("autoexec"===n)"0"===t.autoexec.value?$("#disable-squeezelite")[0].checked=!0:$("#disable-squeezelite")[0].checked=!1;else if("autoexec1"===n){var r=/-o\s?(["][^"]*["]|[^-]+)/g.exec(o);r[1].toUpperCase().startsWith("I2S")?P("i2s"):r[1].toUpperCase().startsWith("SPDIF")?P("spdif"):r[1].toUpperCase().startsWith('"BT')&&P("bt")}else"host_name"===n?(o=o.replaceAll('"',""),$("input#dhcp-name1").val(o),$("input#dhcp-name2").val(o),$("#player").val(o),document.title=o,rn=o):"rel_api"===n&&(V=o);$("tbody#nvsTable").append(""+n+""),$("input#"+n).val(t[n].value)})),$("tbody#nvsTable").append(""),n.gpio?($("#pins").show(),$("tbody#gpiotable tr").remove(),n.gpio.forEach((function(n){$("tbody#gpiotable").append("'+n.group+""+n.name+""+n.gpio+""+(n.fixed?"Fixed":"Configuration")+"")}))):$("#pins").hide()})).fail((function(n,t,o){F(n,0,o),W=!1}))}function jn(n,t){On({message:n,type:t},new Date)}function On(n,t){var o="table-success";"MESSAGING_WARNING"===n.type?(o="table-warning","MESSAGING_INFO"===q&&(q="MESSAGING_WARNING")):"MESSAGING_ERROR"===n.type&&("MESSAGING_INFO"!==q&&"MESSAGING_WARNING"!==q||(q="MESSAGING_ERROR"),o="table-danger"),++Z>0&&($("#msgcnt").removeClass("badge-success"),$("#msgcnt").removeClass("badge-warning"),$("#msgcnt").removeClass("badge-danger"),$("#msgcnt").addClass(k[q]),$("#msgcnt").text(Z)),$("#syslogTable").append(""+t.toLocalShort()+""+n.message.encodeHTML()+"")}function Cn(n,t,o){return(n-t)*(n-o)<=0}function Tn(n){return new m.Promise((function(t){return setTimeout(t,n)}))}m.Promise.prototype.delay=function(n){return this.then((function(t){return new m.Promise((function(o){setTimeout((function(){o(t)}),n)}))}),(function(t){return new m.Promise((function(o,r){setTimeout((function(){r(t)}),n)}))}))},window.saveAutoexec1=function(n){J("cfg-audio-tmpl","MESSAGING_INFO","Saving.\n",!1);var t='squeezelite -b 500:2000 -d all=info -C 30 -W -n "'+$("#player").val()+'"';"bt"===on?(t+=' -o "BT" -R -Z 192000',J("cfg-audio-tmpl","MESSAGING_INFO","Remember to configure the Bluetooth audio device name.\n",!0)):t+="spdif"===on?" -o SPDIF -Z 192000":" -o I2S",""!==$("#optional").val()&&(t+=" "+$("#optional").val());var o={timestamp:Date.now()};o.config={autoexec1:{value:t,type:33},autoexec:{value:$("#disable-squeezelite").prop("checked")?"0":"1",type:33}},$.ajax({url:"/config.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(o),error:F,complete:function(t){t.responseText.result&&"OK"===JSON.parse(t.responseText).result?(J("cfg-audio-tmpl","MESSAGING_INFO","Done.\n",!0),n&&hn(1500,"cfg-audio-tmpl")):t.responseText.result?J("cfg-audio-tmpl","MESSAGING_WARNING",JSON.parse(t.responseText).Result+"\n",!0):J("cfg-audio-tmpl","MESSAGING_ERROR",t.statusText+"\n"),console.log(t.responseText)}}),console.log("sent data:",JSON.stringify(o))},window.handleDisconnect=function(){$.ajax({url:"/connect.json",dataType:"text",method:"DELETE",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()})})},window.handleConnect=function(){cn.ssid=$("#manual_ssid").val(),cn.pwd=$("#manual_pwd").val(),cn.dhcpname=$("#dhcp-name2").val(),$("*[class*='connecting']").hide(),$("#ssid-wait").text(cn.ssid),$(".connecting").show(),$.ajax({url:"/connect.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now(),ssid:cn.ssid,pwd:cn.pwd}),error:F}),fn()},$(document).ready((function(){$("#wifiTable").on("click","tr",(function(){})),$("#fw-url-input").on("input",(function(){$(this).val().length>8&&($(this).val().startsWith("http://")||$(this).val().startsWith("https://"))?$("#start-flash").show():$("#start-flash").hide()})),$(".upSrch").on("input",(function(){var n=this.value;$("#rTable tr").removeClass(this.id+"_hide"),n.length>0&&$("#rTable td:nth-child(".concat($(this).parent().index()+1,")")).filter((function(){return!$(this).text().toUpperCase().includes(n.toUpperCase())})).parent().addClass(this.id+"_hide"),$('[class*="_hide"]').hide(),$("#rTable tr").not('[class*="_hide"]').show()})),setTimeout(wn,1500),$("#otadiv").on("hidden.bs.modal",(function(){N=R.NONE})),$("#WifiConnectDialog").on("shown.bs.modal",(function(){$("*[class*='connecting']").hide(),cn.Action!==gn?($(".connecting-init").show(),$("#manual_ssid").trigger("focus")):$n()})),$("#WifiConnectDialog").on("hidden.bs.modal",(function(){$("#WifiConnectDialog input").val("")})),$("#uCnfrm").on("shown.bs.modal",(function(){$("#selectedFWURL").text($("#fw-url-input").val())})),$("input#show-commands")[0].checked=1===tn,$('a[href^="#tab-commands"]').hide(),$("#load-nvs").on("click",(function(){$("#nvsfilename").trigger("click")})),$("#clear-syslog").on("click",(function(){Z=0,q="MESSAGING_INFO",$("#msgcnt").text(""),$("#syslogTable").html("")})),$("#wifiTable").on("click","tr",(function(){cn.Action=pn,$(this).children("td:eq(1)").text()!=mn.ssid?$(this).is(":last-child")?(cn.Action=bn,cn.ssid="",$("#manual_ssid").val(cn.ssid)):(cn.ssid=$(this).children("td:eq(1)").text(),$("#manual_ssid").val(cn.ssid)):cn.Action=gn})),$("#ok-credits").on("click",(function(){$("#credits").slideUp("fast",(function(){})),$("#app").slideDown("fast",(function(){}))})),$("#acredits").on("click",(function(n){n.preventDefault(),$("#app").slideUp("fast",(function(){})),$("#credits").slideDown("fast",(function(){}))})),$("input#show-commands").on("click",(function(){this.checked=this.checked?1:0,this.checked?($('a[href^="#tab-commands"]').show(),tn=1):(tn=0,$('a[href^="#tab-commands"]').hide())})),$("input#show-nvs").on("click",(function(){this.checked=this.checked?1:0,this.checked?$('*[href*="-nvs"]').show():$('*[href*="-nvs"]').hide()})),$("#save-as-nvs").on("click",(function(){var n=un(!0),t=document.createElement("a");t.href=URL.createObjectURL(new Blob([JSON.stringify(n,null,2)],{type:"text/plain"})),t.setAttribute("download","nvs_config_"+rn+"_"+Date.now()+"json"),document.body.appendChild(t),t.click(),document.body.removeChild(t)})),$("#save-nvs").on("click",(function(){T(un(!1))})),$("#fwUpload").on("click",(function(){var n=document.getElementById("flashfilename").files;0===n.length?alert("No file selected!"):B({event:M.START_OTA,file:n[0]})})),$("[name=output-tmpl]").on("click",(function(){P(this.id)})),$("#chkUpdates").on("click",(function(){$("#rTable").html(""),$.getJSON(V,(function(n){var t=[];n.forEach((function(n){var o=n.name.split("#")[3];t.includes(o)||t.push(o)}));var o="";t.forEach((function(n){o+='"})),$("#fwbranch").append(o),n.forEach((function(n){var t="";n.assets.forEach((function(n){n.name.match(/\.bin$/)&&(t=n.browser_download_url)}));var o=n.name.split("#"),r=o[0],e=o[2],a=o[3],i=r.substr(r.lastIndexOf("-")+1);i="32"==i||"16"==i?i:"";var l=n.body;l=(l=(l=l.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- "),$("#rTable").append("\n ").concat(r,"").concat(new Date(n.created_at).toLocalShort(),"\n ").concat(e,"").concat(a,"").concat(i,""))})),$("#searchfw").css("display","inline"),xn(dn)||xn(ln),$("#rTable tr.release").on("click",(function(){var n=this.attributes.fwurl.value;Q&&(n=n.replace(/.*\/download\//,Q+"/plugins/SqueezeESP32/firmware/")),$("#fw-url-input").val(n),$("#start-flash").show(),$("#rTable tr.release").removeClass("table-success table-warning"),$(this).addClass("table-success table-warning")}))})).fail((function(){alert("failed to fetch release history!")}))})),$("#fwcheck").on("click",(function(){$("#releaseTable").html(""),$("#fwbranch").empty(),$.getJSON(V,(function(n){var t,o=0,r=[];n.forEach((function(n){var t=n.name.split("#")[3];r.includes(t)||r.push(t)})),r.forEach((function(n){t+='"})),$("#fwbranch").append(t),n.forEach((function(n){var t="";n.assets.forEach((function(n){n.name.match(/\.bin$/)&&(t=n.browser_download_url)}));var r=n.name.split("#"),e=r[0],a=r[1],i=r[2],l=r[3],d=n.body;d=(d=(d=d.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- ");var m=o++>6?" hide":"";$("#releaseTable").append(""+e+""+new Date(n.created_at).toLocalShort()+""+i+""+a+""+l+"")})),o>7&&($("#releaseTable").append(""),$("#showallbutton").on("click",(function(){$("tr.hide").removeClass("hide"),$("tr#showall").addClass("hide")}))),$("#searchfw").css("display","inline")})).fail((function(){alert("failed to fetch release history!")}))})),$("#updateAP").on("click",(function(){wn(),console.log("refresh AP")})),Nn(),Rn(),fn()})),window.setURL=function(n){var t=n.dataset.url;$('[data-url^="http"]').addClass("btn-success").removeClass("btn-danger"),$('[data-url="'+t+'"]').addClass("btn-danger").removeClass("btn-success"),Q&&(t=t.replace(/.*\/download\//,Q+"/plugins/SqueezeESP32/firmware/")),$("#fwurl").val(t)},window.runCommand=function(n,t){var o=n.attributes.cmdname.value;J(n.attributes.cmdname.value,"MESSAGING_INFO","Executing.",!1);var r=document.getElementById("flds-"+o);if(o+=" ",r)for(var e=r.querySelectorAll("select,input"),a=0;a0)}(n)?N==R.FLASHING?100==O?(N=R.DONE,$("#flashfilename").val("")):O<0&&C&&(console.log("End of flashing from older recovery"),""==n.ota_dsc&&(j="OTA Process Completed"),N=R.DONE):N==R.UPLOADING&&100==O&&(O=0,N=R.FLASHING):N=R.FLASHING)}function G(n){N=R.ERROR,B({ota_pct:0,ota_dsc:n,event:M.SET_ERROR})}function L(){$("#otadiv").modal(),O>=0&&U(),""!==j&&$("span#flash-status").html(j)}var M={SET_ERROR:function(n){var t;j=n.ota_dsc?n.ota_dsc:"Error",O=null!==(t=n.ota_pct)&&void 0!==t?t:0,$("#fwProgressLabel").parent().addClass("bg-danger"),U(),L()},START_OTA:function(){if(N==R.NONE||N==R.ERROR||null==N){if($("#fwProgressLabel").parent().removeClass("bg-danger"),N=R.REBOOT_TO_RECOVERY,H)j="Starting Update";else{j="Starting recovery mode...";var n={timestamp:Date.now()};$.ajax({url:"/recovery.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(n),error:function(n,t,o){var r;G("Unexpected error while trying to restart to recovery. (status=".concat(null!==(r=n.status)&&void 0!==r?r:"",", error=").concat(null!=o?o:""," ) "))},complete:function(n){console.log(n.responseText)}})}L()}else console.warn("Unexpected status while starting flashing")},FOUND_RECOVERY:function(n){console.log(JSON.stringify(n));var t=$("#fw-url-input").val();if(N==R.REBOOT_TO_RECOVERY){var o=$("#flashfilename")[0].files;if(o.length>0){j="Sending file to device.",N=R.UPLOADING;var r=new XMLHttpRequest;r.upload.addEventListener("progress",D,!1),r.onreadystatechange=function(){4===r.readyState&&(0!==r.status&&404!==r.status||(G("Upload Failed. Recovery version might not support uploading. Please use web update instead."),$("#flashfilename").val("")))},r.open("POST","/flash.json",!0),r.send(o[0])}else if(""==t)N=R.NONE;else{j="Saving firmware URL location.",N=R.SET_FWURL,T({fwurl:{value:$("#fw-url-input").val(),type:33}})}L()}},PROCESS_OTA_UPLOAD:function(n){N=R.UPLOADING,I(n),L()},PROCESS_OTA_STATUS:function(n){n.ota_pct>0&&(C=!0),N==R.REBOOT_TO_RECOVERY?(n.event=M.FOUND_RECOVERY,B(n)):N!=R.DONE||H?(I(n),N&&N>R.NONE&&O>=0&&L()):(N=R.NONE,$("#rTable tr.release").removeClass("table-success table-warning"),$("#fw-url-input").val(""))},PROCESS_OTA:function(n){I(n),N&&N>R.NONE&&O>=0&&L()}};function U(){$(".progress-bar").css("width",O+"%").attr("aria-valuenow",O).text(O+"%"),$(".progress-bar").html((N==R.DONE?100:O)+"%")}function B(n){n.event?n.event(n):console.error("Unexpected error while processing handle_flash_state")}function D(n){B({ota_pct:Math.round(n.loaded/n.total*100),ota_dsc:"Uploading file to device",event:M.PROCESS_OTA_UPLOAD})}function P(n){"bt"===n?($("#bt").prop("checked",!0),$("#o_bt").attr("display","inline"),$("#o_spdif").attr("display","none"),$("#o_i2s").attr("display","none"),on="bt"):"spdif"===n?($("#spdif").prop("checked",!0),$("#o_bt").attr("display","none"),$("#o_spdif").attr("display","inline"),$("#o_i2s").attr("display","none"),on="spdif"):($("#i2s").prop("checked",!0),$("#o_bt").attr("display","none"),$("#o_spdif").attr("display","none"),$("#o_i2s").attr("display","inline"),on="i2s")}function F(n,t,o){console.log(n.status),console.log(o),""!==o&&jn(o,"MESSAGING_ERROR")}function Y(n){$("#toast_"+n).css("display","none"),$("#toast_"+n).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass("table-success"),$("#msg_"+n).html("")}function J(n,t,o){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],e="table-success";"MESSAGING_WARNING"===t?e="table-warning":"MESSAGING_ERROR"===t&&(e="table-danger"),$("#toast_"+n).css("display","block"),$("#toast_"+n).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass(e);var a=o.substring(0,o.length-1).encodeHTML().replace(/\n/g,"
");a=($("#msg_"+n).html().length>0&&r?$("#msg_"+n).html()+"
":"")+a,$("#msg_"+n).html(a)}window.hideSurrounding=function(n){$(n).parent().parent().hide()},window.hFlash=function(){$("#flashfilename").val(""),B({event:M.START_OTA,url:$("#fw-url-input").val()})},window.handleReboot=function(n){"reboot_ota"==n?($("#reboot_ota_nav").removeClass("active").prop("disabled",!0),hn(500,"","reboot_ota")):($("#reboot_nav").removeClass("active"),hn(500,"",n))};var Q,V="https://api.github.com/repos/sle118/squeezelite-esp32/releases",H=!1,W=!1,Z=0,q="MESSAGING_INFO",K=!1,X=null,nn={},tn=null,on="",rn="",en="Squeezelite-ESP32",an="",ln=en,dn=en,mn={},cn={},sn="",pn=0,bn=1,gn=2;function fn(){K=!0,setTimeout(En,3e3)}function un(n){var t={};$("input.nvs").each((function(o,r){if(n)t[r.id]=r.value;else{var e=parseInt(r.attributes.nvs_type.value,10);""!==r.id&&(t[r.id]={},t[r.id].value=e===p||e===b||e===g||e===f||e===u||e===h||e===x||e===v?parseInt(r.value):r.value,t[r.id].type=e)}}));var o=$("#nvs-new-key").val(),r=$("#nvs-new-value").val();return""!==o&&(n?t[o]=r:(t[o]={},t[o].value=r,t[o].type=33)),t}function hn(n,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"reboot",r="/"+o+".json";$("tbody#tasks").empty(),$("#tasks_sect").css("visibility","collapse"),m.Promise.resolve({cmdname:t,url:r}).delay(n).then((function(n){n.cmdname.length>0?J(n.cmdname,"MESSAGING_WARNING","System is rebooting.\n",!0):jn("System is rebooting.\n","MESSAGING_WARNING"),console.log("now triggering reboot"),$("button[onclick*='handleReboot']").addClass("rebooting"),$.ajax({url:n.url,dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()}),error:F,complete:function(){console.log("reboot call completed"),m.Promise.resolve(n).delay(6e3).then((function(n){n.cmdname.length>0&&Y(n.cmdname),Rn(),Nn()}))}})}))}function xn(n){return $(".upf").filter((function(){return $(this).text().toUpperCase()===n.toUpperCase()})).length>0&&($("#splf").val(n).trigger("input"),!0)}function vn(n){return n>=-55?"#signal-wifi-fill":n>=-60?"#signal-wifi-3-fill":n>=-65?"#signal-wifi-2-fill":n>=-70?"#signal-wifi-1-fill":"#signal-wifi-line"}function wn(){$.getJSON("/scan.json",e()(i.a.mark((function n(){return i.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Tn(2e3);case 2:$.getJSON("/ap.json",(function(n){n.length>0&&(n.sort((function(n,t){var o=n.rssi,r=t.rssi;return or?-1:0})),kn(n))}));case 3:case"end":return n.stop()}}),n)}))))}function yn(n,t,o){return''.concat(n,'\n \n \t\n\t\t\t\t\n\t\t\t\n \n \n \n \n\n\n ')}function kn(n){var t="";if($("#wifiTable tr td:first-of-type").text(""),$("#wifiTable tr").removeClass("table-success table-warning"),n&&(n.forEach((function(n){t+=yn(n.ssid,n.rssi,n.auth)})),$("#wifiTable").html(t)),0==$(".manual_add").length&&($("#wifiTable").append(yn("Manual add",0,0)),$("#wifiTable tr:last").addClass("table-light text-dark").addClass("manual_add")),!mn.ssid||mn.urc!==A&&mn.urc!==E)$("span#foot-wifi").html("");else{var o,r='#wifiTable td:contains("'.concat(mn.ssid,'")');if(0==$(r).filter((function(){return $(this).text()===mn.ssid})).length)$("#wifiTable").prepend("".concat(yn(mn.ssid,null!==(o=mn.rssi)&&void 0!==o?o:0,0)));$(r).filter((function(){return $(this).text()===mn.ssid})).siblings().first().html("✓").parent().addClass(mn.urc===A?"table-success":"table-warning"),$("span#foot-wifi").html("SSID: ".concat(mn.ssid,", IP: ").concat(mn.ip,"")),$("#wifiStsIcon").attr("xlink:href",vn(mn.rssi))}}function An(n){console.debug(this.toLocaleString()+"\t"+n.nme+"\t"+n.cpu+"\t"+_[n.st]+"\t"+n.minstk+"\t"+n.bprio+"\t"+n.cprio+"\t"+n.num),$("tbody#tasks").append(''+n.num+""+n.nme+""+n.cpu+""+_[n.st]+""+n.minstk+""+n.bprio+""+n.cprio+"")}function Sn(n){return $("".concat("#cfg-audio-bt_source-sink_name"," option:contains('").concat(n,"')"))}function $n(n){if($("#WifiConnectDialog").is(":visible")){if(mn.ip&&$("#ipAddress").text(mn.ip),mn.ssid&&$("#connectedToSSID").text(mn.ssid),mn.gw&&$("#gateway").text(mn.gw),mn.netmask&&$("#netmask").text(mn.netmask),(void 0===cn.Action||cn.Action&&cn.Action==gn)&&($("*[class*='connecting']").hide(),$(".connecting-status").show()),nn.ap_ssid&&$("#apName").text(nn.ap_ssid),nn.ap_pwd&&$("#apPass").text(nn.ap_pwd),!n)return;switch(n.urc){case A:n.ssid&&n.ssid===cn.ssid&&($("*[class*='connecting']").hide(),$(".connecting-success").show(),cn.Action=gn);break;case S:cn.Action!=gn&&cn.ssid==n.ssid&&($("*[class*='connecting']").hide(),$(".connecting-fail").show());break;case z:break;case E:cn.Action!=gn&&cn.ssid!=n.ssid&&($("*[class*='connecting']").hide(),$(".connecting-fail").show())}}}function zn(n){(function(n){return n.urc!==mn.urc||n.ssid!==mn.ssid||n.gw!==mn.gw||n.netmask!==mn.netmask||n.ip!==mn.ip||n.rssi!==mn.rssi})(n)&&(mn=n,kn()),$n(n)}function En(){K&&fn(),W||(W=!0,$.getJSON("/messages.json",function(){var n=e()(i.a.mark((function n(t){var o,r,e,a,l,d,m,s,p,b,g;return i.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:o=c(t);try{for(e=function(){var n,t,o=r.value,e=o.current_time-o.sent_time;switch((a=new Date).setTime(a.getTime()-e),o.class){case"MESSAGING_CLASS_OTA":B({ota_pct:null!==(n=(l=JSON.parse(o.message)).ota_pct)&&void 0!==n?n:-1,ota_dsc:null!==(t=l.ota_dsc)&&void 0!==t?t:"",event:M.PROCESS_OTA});break;case"MESSAGING_CLASS_STATS":d=JSON.parse(o.message),console.debug(a.toLocalShort()+" - Number of running tasks: "+d.ntasks),console.debug(a.toLocalShort()+"\tname\tcpu\tstate\tminstk\tbprio\tcprio\tnum"),d.tasks?("collapse"===$("#tasks_sect").css("visibility")&&$("#tasks_sect").css("visibility","visible"),$("tbody#tasks").html(""),d.tasks.sort((function(n,t){return t.cpu-n.cpu})).forEach(An,a)):"visible"===$("#tasks_sect").css("visibility")&&($("tbody#tasks").empty(),$("#tasks_sect").css("visibility","collapse"));break;case"MESSAGING_CLASS_SYSTEM":On(o,a);break;case"MESSAGING_CLASS_CFGCMD":J((m=o.message.split(/((?:(?!\n)[\s\S])*)\n([\s\S]*)/g))[1],o.type,m[2],!0);break;case"MESSAGING_CLASS_BT":if($("#cfg-audio-bt_source-sink_name").is("input")){for(s=$("#cfg-audio-bt_source-sink_name")[0].attributes,p="",b=0;b "))}JSON.parse(o.message).forEach((function(n){Sn(n.name).length>0||($("#cfg-audio-bt_source-sink_name").append("")),On({type:o.type,message:"BT Audio device found: ".concat(n.name," RSSI: ").concat(n.rssi," ")},a)),Sn(n.name).attr("data-description","".concat(n.name," (").concat(n.rssi,"dB)")).attr("rssi",n.rssi).attr("value",n.name).text("".concat(n.name," [").concat(n.rssi,"dB]")).trigger("change")})),$("#cfg-audio-bt_source-sink_name").append($("".concat("#cfg-audio-bt_source-sink_name"," option")).remove().sort((function(n,t){return console.log("".concat(parseInt($(n).attr("rssi"))," < ").concat(parseInt($(t).attr("rssi"))," ? ")),parseInt($(n).attr("rssi"))[recovery]":"")),$("span#foot-fw").html("fw: ".concat(en,", mode: ").concat(H?"Recovery":ln,""))):$("span#flash-status").html(""),n.Voltage?($("#battery").attr("xlink:href","#".concat(function(n){if(n>0)return Cn(n,5.8,6.8)||Cn(n,8.8,10.2)||Cn(n,6.8,7.4)||Cn(n,10.2,11.1)||Cn(n,7.4,7.5)||Cn(n,11.1,11.25)?"battery-low-line":Cn(n,7.5,7.8)||Cn(n,11.25,11.7)?"battery-fill":"battery-line"}(n.Voltage))),$("#battery").show()):$("#battery").hide(),""!=(null!==(r=n.message)&&void 0!==r?r:"")&&an!=n.message&&(an=n.message,jn(n.message,"MESSAGING_INFO")),$("button[onclick*='handleReboot']").removeClass("rebooting"),void 0===Q||n.lms_ip!=sn&&n.lms_ip&&n.lms_port){var e="http://"+n.lms_ip+":"+n.lms_port;sn=n.lms_ip,$.ajax({url:e+"/plugins/SqueezeESP32/firmware/-check.bin",type:"HEAD",dataType:"text",cache:!1,error:function(){Q=""},success:function(){Q=e}})}$("#o_jack").attr("display",Number(n.Jack)?"inline":"none"),W=!1})).fail((function(n,t,o){F(n,0,o),W=!1})))}function _n(n,t,o){return void 0!==n.values[t]?n.values[t][o]:""}function Rn(){$.getJSON("/commands.json",(function(n){console.log(n),$(".orec").show(),n.commands.forEach((function(t){if(0===$("#flds-"+t.name).length){var o=t.name.split("-"),r="cfg"===o[0],e="#tab-"+o[0]+"-"+o[1],a="";a+='
'+t.help.encodeHTML().replace(/\n/g,"
")+'
',a+='
',t.argtable&&t.argtable.forEach((function(o){var r=o.datatype||"",e=t.name+"-"+o.longopts,i=_n(n,t.name,o.longopts),l="hasvalue="+o.hasvalue+" ";l+='longopts="'+o.longopts+'" ',l+='shortopts="'+o.shortopts+'" ',l+="checkbox="+o.checkbox+" ",l+='cmdname="'+t.name+'" ',l+='id="'+e+'" name="'+e+'" hasvalue="'+o.hasvalue+'" ';var d=o.mincount>0?"bg-success":"";"hidden"===o.glossary&&(l+=' style="visibility: hidden;"'),o.checkbox?(a+='
"):(a+='
",r.includes("|")?(d=r.startsWith("+")?" multiple ":"",r=r.replace("<","").replace("=","").replace(">",""),a+=""):a+='",a+='Previous value: '+(i||"")+""),a+="
"})),a+='
',a+='',r?(a+='',a+=''):a+='',a+="
",r?$(e).append(a):$("#commands-list").append(a)}})),n.commands.forEach((function(t){$("[cmdname="+t.name+"]:input").val(""),$("[cmdname="+t.name+"]:checkbox").prop("checked",!1),t.argtable&&t.argtable.forEach((function(o){var r="#"+t.name+"-"+o.longopts,e=_n(n,t.name,o.longopts);o.checkbox?$(r)[0].checked=e:(void 0!==e&&$(r).val(e).trigger("change"),0===$(r)[0].value.length&&(o.datatype||"").includes("|")&&($(r)[0].value="--"))}))}))})).fail((function(n,t,o){404==n.status?$(".orec").hide():F(n,0,o),$("#commands-list").empty(),W=!1}))}function Nn(){$.getJSON("/config.json",(function(n){$("#nvsTable tr").remove();var t=n.config?n.config:n;nn=t,Object.keys(t).sort().forEach((function(n){var o=t[n].value;if("autoexec"===n)"0"===t.autoexec.value?$("#disable-squeezelite")[0].checked=!0:$("#disable-squeezelite")[0].checked=!1;else if("autoexec1"===n){var r=/-o\s?(["][^"]*["]|[^-]+)/g.exec(o);r[1].toUpperCase().startsWith("I2S")?P("i2s"):r[1].toUpperCase().startsWith("SPDIF")?P("spdif"):r[1].toUpperCase().startsWith('"BT')&&P("bt")}else"host_name"===n?(o=o.replaceAll('"',""),$("input#dhcp-name1").val(o),$("input#dhcp-name2").val(o),$("#player").val(o),document.title=o,rn=o):"rel_api"===n&&(V=o);$("tbody#nvsTable").append(""+n+""),$("input#"+n).val(t[n].value)})),$("tbody#nvsTable").append(""),n.gpio?($("#pins").show(),$("tbody#gpiotable tr").remove(),n.gpio.forEach((function(n){$("tbody#gpiotable").append("'+n.group+""+n.name+""+n.gpio+""+(n.fixed?"Fixed":"Configuration")+"")}))):$("#pins").hide()})).fail((function(n,t,o){F(n,0,o),W=!1}))}function jn(n,t){On({message:n,type:t},new Date)}function On(n,t){var o="table-success";"MESSAGING_WARNING"===n.type?(o="table-warning","MESSAGING_INFO"===q&&(q="MESSAGING_WARNING")):"MESSAGING_ERROR"===n.type&&("MESSAGING_INFO"!==q&&"MESSAGING_WARNING"!==q||(q="MESSAGING_ERROR"),o="table-danger"),++Z>0&&($("#msgcnt").removeClass("badge-success"),$("#msgcnt").removeClass("badge-warning"),$("#msgcnt").removeClass("badge-danger"),$("#msgcnt").addClass(k[q]),$("#msgcnt").text(Z)),$("#syslogTable").append(""+t.toLocalShort()+""+n.message.encodeHTML()+"")}function Cn(n,t,o){return(n-t)*(n-o)<=0}function Tn(n){return new m.Promise((function(t){return setTimeout(t,n)}))}m.Promise.prototype.delay=function(n){return this.then((function(t){return new m.Promise((function(o){setTimeout((function(){o(t)}),n)}))}),(function(t){return new m.Promise((function(o,r){setTimeout((function(){r(t)}),n)}))}))},window.saveAutoexec1=function(n){J("cfg-audio-tmpl","MESSAGING_INFO","Saving.\n",!1);var t='squeezelite -b 500:2000 -d all=info -C 30 -W -n "'+$("#player").val()+'"';"bt"===on?(t+=' -o "BT" -R -Z 192000',J("cfg-audio-tmpl","MESSAGING_INFO","Remember to configure the Bluetooth audio device name.\n",!0)):t+="spdif"===on?" -o SPDIF -Z 192000":" -o I2S",""!==$("#optional").val()&&(t+=" "+$("#optional").val());var o={timestamp:Date.now()};o.config={autoexec1:{value:t,type:33},autoexec:{value:$("#disable-squeezelite").prop("checked")?"0":"1",type:33}},$.ajax({url:"/config.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(o),error:F,complete:function(t){t.responseText.result&&"OK"===JSON.parse(t.responseText).result?(J("cfg-audio-tmpl","MESSAGING_INFO","Done.\n",!0),n&&hn(1500,"cfg-audio-tmpl")):t.responseText.result?J("cfg-audio-tmpl","MESSAGING_WARNING",JSON.parse(t.responseText).Result+"\n",!0):J("cfg-audio-tmpl","MESSAGING_ERROR",t.statusText+"\n"),console.log(t.responseText)}}),console.log("sent data:",JSON.stringify(o))},window.handleDisconnect=function(){$.ajax({url:"/connect.json",dataType:"text",method:"DELETE",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()})})},window.handleConnect=function(){cn.ssid=$("#manual_ssid").val(),cn.pwd=$("#manual_pwd").val(),cn.dhcpname=$("#dhcp-name2").val(),$("*[class*='connecting']").hide(),$("#ssid-wait").text(cn.ssid),$(".connecting").show(),$.ajax({url:"/connect.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now(),ssid:cn.ssid,pwd:cn.pwd}),error:F}),fn()},$(document).ready((function(){$("#wifiTable").on("click","tr",(function(){})),$("#fw-url-input").on("input",(function(){$(this).val().length>8&&($(this).val().startsWith("http://")||$(this).val().startsWith("https://"))?$("#start-flash").show():$("#start-flash").hide()})),$(".upSrch").on("input",(function(){var n=this.value;$("#rTable tr").removeClass(this.id+"_hide"),n.length>0&&$("#rTable td:nth-child(".concat($(this).parent().index()+1,")")).filter((function(){return!$(this).text().toUpperCase().includes(n.toUpperCase())})).parent().addClass(this.id+"_hide"),$('[class*="_hide"]').hide(),$("#rTable tr").not('[class*="_hide"]').show()})),setTimeout(wn,1500),$("#otadiv").on("hidden.bs.modal",(function(){N=R.NONE})),$("#WifiConnectDialog").on("shown.bs.modal",(function(){$("*[class*='connecting']").hide(),cn.Action!==gn?($(".connecting-init").show(),$("#manual_ssid").trigger("focus")):$n()})),$("#WifiConnectDialog").on("hidden.bs.modal",(function(){$("#WifiConnectDialog input").val("")})),$("#uCnfrm").on("shown.bs.modal",(function(){$("#selectedFWURL").text($("#fw-url-input").val())})),$("input#show-commands")[0].checked=1===tn,$('a[href^="#tab-commands"]').hide(),$("#load-nvs").on("click",(function(){$("#nvsfilename").trigger("click")})),$("#clear-syslog").on("click",(function(){Z=0,q="MESSAGING_INFO",$("#msgcnt").text(""),$("#syslogTable").html("")})),$("#wifiTable").on("click","tr",(function(){cn.Action=pn,$(this).children("td:eq(1)").text()!=mn.ssid?$(this).is(":last-child")?(cn.Action=bn,cn.ssid="",$("#manual_ssid").val(cn.ssid)):(cn.ssid=$(this).children("td:eq(1)").text(),$("#manual_ssid").val(cn.ssid)):cn.Action=gn})),$("#ok-credits").on("click",(function(){$("#credits").slideUp("fast",(function(){})),$("#app").slideDown("fast",(function(){}))})),$("#acredits").on("click",(function(n){n.preventDefault(),$("#app").slideUp("fast",(function(){})),$("#credits").slideDown("fast",(function(){}))})),$("input#show-commands").on("click",(function(){this.checked=this.checked?1:0,this.checked?($('a[href^="#tab-commands"]').show(),tn=1):(tn=0,$('a[href^="#tab-commands"]').hide())})),$("input#show-nvs").on("click",(function(){this.checked=this.checked?1:0,this.checked?$('*[href*="-nvs"]').show():$('*[href*="-nvs"]').hide()})),$("#save-as-nvs").on("click",(function(){var n=un(!0),t=document.createElement("a");t.href=URL.createObjectURL(new Blob([JSON.stringify(n,null,2)],{type:"text/plain"})),t.setAttribute("download","nvs_config_"+rn+"_"+Date.now()+"json"),document.body.appendChild(t),t.click(),document.body.removeChild(t)})),$("#save-nvs").on("click",(function(){T(un(!1))})),$("#fwUpload").on("click",(function(){var n=document.getElementById("flashfilename").files;0===n.length?alert("No file selected!"):B({event:M.START_OTA,file:n[0]})})),$("[name=output-tmpl]").on("click",(function(){P(this.id)})),$("#chkUpdates").on("click",(function(){$("#rTable").html(""),$.getJSON(V,(function(n){var t=[];n.forEach((function(n){var o=n.name.split("#")[3];t.includes(o)||t.push(o)}));var o="";t.forEach((function(n){o+='"})),$("#fwbranch").append(o),n.forEach((function(n){var t="";n.assets.forEach((function(n){n.name.match(/\.bin$/)&&(t=n.browser_download_url)}));var o=n.name.split("#"),r=o[0],e=o[2],a=o[3],i=r.substr(r.lastIndexOf("-")+1);i="32"==i||"16"==i?i:"";var l=n.body;l=(l=(l=l.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- "),$("#rTable").append("\n ").concat(r,"").concat(new Date(n.created_at).toLocalShort(),"\n ").concat(e,"").concat(a,"").concat(i,""))})),$("#searchfw").css("display","inline"),xn(dn)||xn(ln),$("#rTable tr.release").on("click",(function(){var n=this.attributes.fwurl.value;Q&&(n=n.replace(/.*\/download\//,Q+"/plugins/SqueezeESP32/firmware/")),$("#fw-url-input").val(n),$("#start-flash").show(),$("#rTable tr.release").removeClass("table-success table-warning"),$(this).addClass("table-success table-warning")}))})).fail((function(){alert("failed to fetch release history!")}))})),$("#fwcheck").on("click",(function(){$("#releaseTable").html(""),$("#fwbranch").empty(),$.getJSON(V,(function(n){var t,o=0,r=[];n.forEach((function(n){var t=n.name.split("#")[3];r.includes(t)||r.push(t)})),r.forEach((function(n){t+='"})),$("#fwbranch").append(t),n.forEach((function(n){var t="";n.assets.forEach((function(n){n.name.match(/\.bin$/)&&(t=n.browser_download_url)}));var r=n.name.split("#"),e=r[0],a=r[1],i=r[2],l=r[3],d=n.body;d=(d=(d=d.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- ");var m=o++>6?" hide":"";$("#releaseTable").append(""+e+""+new Date(n.created_at).toLocalShort()+""+i+""+a+""+l+"")})),o>7&&($("#releaseTable").append(""),$("#showallbutton").on("click",(function(){$("tr.hide").removeClass("hide"),$("tr#showall").addClass("hide")}))),$("#searchfw").css("display","inline")})).fail((function(){alert("failed to fetch release history!")}))})),$("#updateAP").on("click",(function(){wn(),console.log("refresh AP")})),Nn(),Rn(),fn()})),window.setURL=function(n){var t=n.dataset.url;$('[data-url^="http"]').addClass("btn-success").removeClass("btn-danger"),$('[data-url="'+t+'"]').addClass("btn-danger").removeClass("btn-success"),Q&&(t=t.replace(/.*\/download\//,Q+"/plugins/SqueezeESP32/firmware/")),$("#fwurl").val(t)},window.runCommand=function(n,t){var o=n.attributes.cmdname.value;J(n.attributes.cmdname.value,"MESSAGING_INFO","Executing.",!1);var r=document.getElementById("flds-"+o);if(o+=" ",r)for(var e=r.querySelectorAll("select,input"),a=0;aRTJZu?htOS{JKct`P17*&86U_K=xvjSxNQ(b z|G%X@0Z>)dl%!(}nb-zsR{!%z6EHGCSRhCOg~Bno;0;VGaB*BW}h@Q9ZYdb`4@<_``=%) z|N4#BzHo1oz|gmc2D)rcJFC96IyorOa*DtqaaNi!Ei>>vPAxY?gtv^7eb@{p~49U<{J{5Z6st!?QT%lYA-)a+h;X<2}R1^ zLstlea&MCRjm4oD4^P=WTGhYEJfvoz+SGh=a23UkD!`J70zmx%jy6b&LCB&O zd>cZ>Y`4i+;_PFe&viCP#19lZxrAP0Ne;=c5bs)+z)6U~+U4T5kZc z$nGq80SP=X-Euv#b_8KlD*>ry-#>&_TC}8^@Qh+j>N5;=6CD8u?v{-_TyqCoa}UE{VFHlKb0GS zQI1z`KW?05oLff%PTzOZCPdri{^KUzkBt(sed+h_awA4MD$CV~wZT2C0Z4xwW6RmU zVsr!izh86e6-f!c+T(aLXKu1Pr4*QgJ%Ifb|Cb#Td9X={Jy2vz6@RANAg;hnf_O1! z3f5J=MnJH&kP(#S#}(|)wVN0tvqB#7MCjUz`U>UToco5Ozk>0%^q9Va;%}KVe?_OO zi4jlrK}!SpVU|*R;rv@0U#?olAKRzDvf_p3;L|+l2<~g!%}4aXeEAMEF<&nIN88;E z`YlbpF)!5|7SJ#C6o|ED$#!MFSmgRFKl9b2E+ATK>Cb+ z1xXRTvq5)uh`o7(tN*JmXmK01X}P4mJ5y|Lms-Q6wu-4O;%tA}J6tT^y@X2(d+5PX zqDhWHLP#UJ(^HJ;w0oUe>z%G)BGxE%&>R2CsfsI0!EgL_0+o07#K?|>1ODA8r+ z#vJ%l#$MU{ZuqB@I&yML-mF3>sob?Vi&$kvhdXxCP& z{q`*FO8e5GaxB4@nHW+)P|gvE$`JhG~0@Ga`>aZd1x0;v$TLC1MwI5>-UyvJ`lPrVKJy$#>y>5EUO2oIzIVubfq z5Fg^saNtZb!QzD?%5e}y+#6qR) zs9BQ_>iGPYOU_~oUCMmdMwqEXmRgCIQ7IZm%-qaHrRe<|6Rkryoqwym))1#Sk=4+W zQ3VAOC^SWCNlLF?7MeoIz@b}ir2^`#T&QGyksTx}{^A22h_XY*nJ<~oB}#?m=`1wG zq&;aLO$HJbKf?(gj2I(riznebzpKPJqDO7|=Rj0Z*2+P0kV&6cE-1N%3S~m_ow3U- z9YSHqpYNVKFhbFys1CA4aq%)@ydOBP0+23+defPxMx=$>i3A7hPNQV(k&Pp0t$8rZ zKQO}Nd&Re&>~#9czEe;3uK9r*hBm8`0nTvI=7)WvV!Y4zvH79w1q!ATG-cS_n*Q2b z!V@_!*)_jLT9=b7dJo0242mPXJUrwpCYnkbJ}_|6Cm+tx5pI`h%W-;Ilb8sSju8mZ z0F>E@GDK2tG3L~E`AY7|K8pi|=!qUX(BcI}qjrYhB+re?=ju>L>N3fQ{0z-ZEB4RJ zmD@^XY~q$-X#i9>QK*PDv=syC!GI$5iZyvlrMT-VE}Zf#9x*KI{V?U$9x(t2%OwYP?bt1FPJ4aoLW&>={ykA9MALv57Z`-EH}Q{owb zMXiRNDN?_-tz`rO&ac4)-v?*!3jz){jooDW@nP(m5}8VUmMMNCf)b+w+%c&k2M`G2 zU?=YZ`C1{yxV@olBxKDw$l&@XUmMMP8EBcGf4@02-DVqW>uARcEO$WyXWn}y**7ToQ6P}JQz-h@>mN^bOkFl%|g>$VRcRJqBqgeEZ zBF9>ro_Wvvd7V(Xo2aRApKqx7N_M?T(kFa_`4fCuL!`P59d$2JT*#dz+c>uk$he@TGF6o!@pKjv|}*!8e~k*$ayotSC^DA=?OHt`Ih>*QadGDNXg1r!qBDJ9RDK z`DMglt6UoFL9E$1KL&n&2@uhkFl?@~dQ$k__k6GB#d8qRm@sUvdQx~>UYsW$R__qe zm@sUvuDcZ8Zh7MT>Ff~Em@sUvuDcZ8?)uZW<-I>=5Qs-mSPHQae3wWfLJozlSnnJl z{ds%|@*&S^1;UR$5OI};QXge!2$C1BLe+T6-q`LShC-;w^?vCzqTk*GHVKC z8}atOBXWZUUNzj8^)yxxruqZibqMGTsU;Cd0G>eBOH<{D%_u(w$A|R0hTv(T*g$|b_iT7YcyeVO#BX(j7-2mUyd#n!`nhA zn#WL^n(Q)WXye7&c4o;feDjESlyzT;hdDPT9_2cL1O|~wVo`IG*%S^94=pbp-&t(f zOL(upUqC+O)cF;7(TMi3y)v^#dC-{P$^pPZ?TIiK3%Io~B~J8vS)3Fm}!;=PmJk|aqI*#`r2GADDi7T1$f zyI@XF&B7++U9zmU{U*XVg5wB|BRtQMo{5Nvh=>r?!vUp{(nx72k}UkDyv)vEb_dsR zXFw{QkeXX)en`Xsv7^~TT zkJu}A*(}?0!76VIiQ+|nq&jF*DxxacDJFgkh!quSB{5zfSvKruIfJ0c>R9; zJhwv=?v4>b$G@f&^oD8m3 zw3}>rWPtOO+fo9*?skKbHgZCpTga5N;Trs*+o@BpWoW>2A}*pCkZJ|g;SZU;ysK>s z4&Z1zs#W>cdTQFQ4nwHx-MZx2aRCw)j&;CqHbX?Om^#gGsUuf)N>ZR`EtMZ$q=)`! zR3$NB>W{)66oSF$2Jle@K-(+McNn?i>6A0#3jXHj;q6$420SO?g0>Q=nY(IUa2OiE zCGLHd{W$d)LBZwO;iAGpi#$R&W8t6${#4O2Wg)6;Gu2&GCnxUUs#Y!HW2YK(vcU&Gf3xcdb1r;1Ydb z)7i&z2%(^PcBo%CXd6BMR*u`yM1tQyzv;R4;h_KsMLz^?P9%o%DcY57EVlWOMd8#`oZv@-Z)LO9H)~YbCU!6@Z4gVB ztB8C!kxQp+zQqkLJ%QLzi<0{;xK36I-V!B=`vR_R>1X^PHx))O;&rRW6B}t9JkIZg z<8bl(x@f?oZ_fA+%Q%oTZBFqYmg0wq7pBcS{S(+J$AqEuLpHVTfxgVv9Q9kzG=uoe zDp~|AjIkEs_&OWVkPvtXy502@5{O%D}M4ebQ&T+-4uov^7cYZ)^dk8{?UvO%0CWXl<8WmNoBD0uB^EefGPA8}7BG)(nTCv!XG}@&(kg`&BPbqY zQ>8TZfh(9C5QWGOeY*kMhAhe)wHP9VBJG~&=3AI?5>v$2FyfeU-qSX03cW4d;)t+L z8&%0#n6G}!!P%Cq+&8>_naZcie{Him;kjSS_REeX*iEF=iT}Rbq(;(ag4BPc=l*zSGB~Kzd8#nhgZUg|~$^a(H zzBQ)ZbkmSKB)t|JdLHGJ__aOZp|zbJTehd5(h%%*dJ52wL32~8)%yXx5vv4&$dOlV z==f_VXaim~IwO-ey&L*XA)rM^c6w8Jz>kHi zJ8+z+ywgB1lQ5`o)5!h$XEKoYpShwiAQc5e*LgstD<#5yCJn;>+3Cv_S4;NDmE4nt*kk4roj{F)Cz6`4YG!&hQ|LD&few zu%p7vPy&M`7&1*<`D#~snX=A~hs`a~!HV}w?#x7)9JLom5DRSrzl2u zP}1z+2kwfM;AcX7)qTfHo5B~@j)~mU)j+&cE}H4F&+KCcg$N@jkf2~`+n^gkDRkTj zIuKxkbWVUU%?Rby2yBDn22mu*9Q*q<5axW_2Zew+DBwy2SKg0&eE#|vAMi-o8@`|t z{dv{!bdm@f@^}Ce-#-lEdjo0F0q)B%w%v5IiRoCAv2EMI!U$D|omR9O6jA8tl@~D( zZ@^8(cx1s;%!dJY59p8Q2&9ECn~x|6wXZgn)UP8;x_M``W!_$l@JCK~N8;B-voq zoMGw%kn+cT4JRRURP!wr1xj8O zD=rLPEKeVU=m;0LA7W|V){#1pqsxU`2EYcKM>orGj*FeNLRs< zJZTkNLTdMb!;d}*4QuO^i&tf^K_GkBpJ)<233`B0)R!cnfAodQF!EI9e^!s}Kxhdg{8bz%i>Q zrt1fCjQUDfw6Lu5M9}5pAadBPa_-3`Kj+jpW;du(6|VYnAP7-<3k?CsJzbtW3R57eGS9O9&%iWLQZ(44xY_r_H{>X<*9oRq9qvvd55^Ft~>-*+yh z6X4BB#~V+mBASwuplRiG^K`MlH{Pg*sOU1gY-?dBIxTKugx$}>>N>u9)_gTZ8wh$| ztWr$6nRlVw_<>eM$E(ecef955IEFFUTkO#-PXy}mN!a~I@QF~>p`%*p(zp?j^5XoE z>X0ABS909_8;&ckW@x`h12u7e3+%Y^>(kSjd`H4^P8uO^JCdJ%N-Er zIkbUZ&3E!^^N zFFB`6d?o%-kc#?osQ5Ve?a{*d;p*7r0p_y;HoB(wMbl%&c>Q#M<(vSRc|q?qAdG~X zE4~D0K}ZDwzgw?D-=~Q6582K>v6NNH@j_>ppVJqxnqCFO2O6v2JYAe0w7yxc zK$xXy15NLz`g_NsYaMHDoGXwfs@|DEHR^06@`*S7lpH3&cgs~6cu;$*i zrk9@6i{whlEADZnA*`|ZEz`vL!RuP(0)Sb9&9CWwHQ+)yUP~>hZ7u+sD0(LX)o`i& z=c8w4d?o9Gkh<+2K<_?kKP5R8E`Q)mxs_NF1hGP9mz~p_k?|GhFG1q_u+B6=rEr@> z+{5`1>lx(&`&oibuj&1ylC4l)V=XY9B*2*{dhfy9KKQVhky-@sZaJY|HRy!A7#Fl{ zctpN9KctfLBlT-Mui@VuP&<~2kFQhx)@b4U7<$SwhP5dv0htp#^%7ttLtIbW*Cnrt-X6NQVZ9~&iY>$Vs|?CTGl+bomR>m zIKSSr2Ed*cb9|{4V~gg~&Ra_go1<1G)bCJaYmOR8d5cbeUWsXUtXB{>w+TK)Z~Oh( z3QeWJT#x1ub$-otG&@ww%->GNs(SKilQLfIWT;ZC*QT7YIb=;FTkZUQf9+Ig8=DA@ zqO<)*ZRDZ4`9zcU@X`78He!xVAu@k6m7D5mr#(vew3(5zQm;EXU2D`ZiYwcESs$L? z$3F!kuc2)0eENwV_FJ+QcyimBX3PQT{MyRsw;>ef?`DEgJ-@UA8IX2TP$|~yL(bS7 zvKE4l#u)07TycB_tdm$6lJ|1Yz3snmM4Gz!L}&IO&iMs5Vvau{GJii8ed>9qUCIcw zlXEJqUXOCZ-jL-G{Im1h{Ix+LZLAW2iH`Q$vyWNI))URy!Z7C-TE`S?LSz1FCfn50 zP5Y7%XFJDaDY$Yfq02MsLNMRViR4RNUb^&3o0Ya@N}o`ooBf__hLYTPrXw}CJHQ&t znBhlA%wJ7~mwKXUKN7@jCY7wz`}UF3wMGr2xU$WQU!!T7T^-9Ebe)yYAkn{m8@6Ic zZadS2Ifk5HSsDEngu?vQTs)~~7w$jjRjxC?Q9J+7v1%M4JNN&?VnK{@T?lKnilHF1 z-&H4HZ?!5IUVQs{iZDxnLN(}$OLq^uH7cO;%F3^xeCUmK;a=DNcQo?1-1jX$Wfq_e zCDAUEXmb%=JlX?s%!a6&NcxkznnXA_Z4xd$e!cB}4gYqH`1agJmvYAC^>D<$m)YVh z3-353y;^;THM+z_7KA+A!5yVZLK24G=R5S=i_zb#EKzq8K`?fTiw!UgU3h9xiYqAyR!%S_R9L--dRm1BkwG7#0dryX;v^Zy+|oon1Kvvg|6}^Ey?LD{N_sVM7JTh>sI|OK3cej7 z_fbrJ*s-cN0C=q14rSiUL*0{{r28rT4KsgCRaJ+>W9(it?EQ!xd==f;ZV{@ruOuVT zPgX`sEVO6{^cpR+gsK?p=K_q8W;~QLV-#76sXU**W1Rv!ahXUqM!?X&!hPq99fITJ zeVE+Z50uX7=yGD$BKio%!&t`zWA>= z%n-WbBLktsR1#!b=0x^sQY#tL3^vnzVkFqQ7aQY(t>c<5cf8RQUiDv!)l`c|r zX472}JM(@Xb#nryH$>Pk`t!Zjb>Lq(i^LzFaF@$rK;~9bWX~c=c3(X6s5A0+1*TSx zJy3nOzO}YlJ>W1x>dCHOEeYS2X>_p7SY{%c3UbCHE+A1?J#VW((9&d$KM zTaV|5Tars;bb(z|Yh2^7m06DOwdvsRRQS!${N$4^$%_lc^^RJlwJHLRZB&1V<<~H7 z(j+sGZgHI`xl~b6??isX@cy2o6o5bh)F5ia;D@>Uybe^d9%xsMXShemUda9VniqQ%xz_a+qr zg!tMrxb~%eBOXC#0mdx+nv*L*)auyk%~U(ncUw$ig)pyj1;6BtuHQSz9rs&T4s#6& z77PUOdXRWl&SylEH0Bql)k_Nry z`--99_%t`Y;t{-j4MizKso`+8a-8=boD{kj${-nMi^xh$>U)q+*i0CG7*PE1plD7s z>9h%~Xm21Gst5mL3HJv$| zvCf|?{D8VcAJz%r%!r@m&9g$xeEz6zTaY%)XVT$%5r7p2(uQ>V5z;s}|KOXtGN#sS z_JGUP5xeTguoqne-xp zL6q|8lj*0VtSM8|D8|Z^W`n~xy-{$z|J>>NuNRhx^kBmDw^F~v|8HnpV-{1cD=uGeODD$+re^b zcqMV-WT#;CPk~qIylvM=3hfg6RC$2Mf`=T)fhp*KMj2W;jeXr;v12PxE+f-N)Vc>C zMUNO)kB97Px)0dGj<+0dd@$4m8Aicsu-dIoDJpg6isYhHU^{ll85Btm6gFP?Pv6gL z|5{EQf49!0ehJ5>t?(cUeZMp#2b!~gkofsZBf~G9bNv0T5ghfexAScW&Oso=A^ciN z&%Y|$2?hnmbB1#b43|$*U_chtHeBq@c4DNEc5c8ZokZD_lSTNF;@mV&!92Y3)Sq=&u9O}n zo`m>ntgy#}JyG|y%>2y|loNezBp3Omy}ZmUw*rGmcu{qL=v}%)EfQ+NFlREEGy}Rn z+8ul2b$jzStE-lc*!&%R#)48{T{3ZSdd9zLb?}PEyO;fpZWWv_bTkZ|ae~uR0R41R z!|Z*S%cYhUF&GP1PICfAJW$K!q+U85zz!N#YVA#u_z>JS- zNGdW>T*g&@1B*P+8e)yHRlRxZ7WiLVVho94&hjuw^ZbdH@o`oZ1a<&juh3C+YQ-ok zm77-6DGF_mvRJebr9F-@tWoZkuKJ`eqDPBEPPOQW+|?>q#UPUMAc(zN@coE^qTdUe zE8_g65HgobkMOg4zyP1a++3O0%ieGh)j-nKsMolnXP20{#>qQhnWpdlnn|g(7s~Db zdg|zK-p_^A@FA&grD&@Y~mq+GZzjhv@0O;dCnFIPhYOn)R;GU%HV}JulVB zp|Kbh|Ez8vC%&rAvh-HwCvVlL0>_bqGp+g%Kr1n2MHwE(9xMW~8HLQ!*VxY;GY}H;rgjL0(cugL?0~k)cI%v z=1j~UH$~}D4(fl&;(}B8lnL+R&r90%`QC*&;bl>_9!tspnGm=L=aMC_y7bTxUcToh z8Xn1|;_Z*0697OUB39b1f&dAI^Tg$n19h~AC*QV#TgP>xtzPKD+K56U^43*=>nm1d z(X6gb$9=N4zAi)}TxDQjvkVs9%6WZ5sB71BkXcKf*7=JWFp#t-j4T&fmRv~K=&H4g zV!S?5VU`k)rR=8J!iNyce{MJ1xv{1DS#`;3lVn>}4S*zi2t z$Pb9ygH5eZSU$pVwKmlJTFN56r%G~r zI^|g|ZFOF@tD|*_pp7AQh+a=m`Qt;!_@Sft%y!}!aWhH6>Dn|_hWX}_mss|)1U}}% za0+~Pbq`?FlCnVKOmz-eb7)<&Ykv{}z=d9Ue0-i>I44sP#r3>k0Dz?jUD3Pg#ATe< zqCxvBLzDu6twb(yVk7F#b#rsA4romO+(ioi)f6lIMA?1Tpi}aH8wz)WPm`t!_ z_L*Sr?6ZtL|9iH1I2bZ#HrbHrIc1s+nVc14R+YR_IcSstPX=mjNYEF`WVRKXAc?ZW zEL{(N0NwOb@qu0}N|r>yhT zb2*rX-b$HErrNW^@i?F8;BT?=3WD`7qbuf*s;xYGEe*UoGRfoJO z-(}-%IW?(HS&dFez!6vDOYv`{!S~FtLH6S-S$svrwfKS4A{VuP#{`-)njI|Ai#^#^ z$Gfl_N~@AR>ToEor8jkfDpM6Nj9)D2u~2vA!Ex3Qqog`M80IdMb8QiBArOiDh=?`k z(2{YePI>OV;IYTbRV&BJ#y)Rz;UE`&h2v`8zlXBayPB_6?$P-{kzpaOF2jYMR&>j2 z5~(KZ^jM`P>KJPsPHJ}$pXOl8K3%r1MivczNu7OdOjfs3%K&O{VyVGHszE9*oJMWv z;V`6XxFmpDH)F+Ax9hiZ|Ml+&Rp-^W=wp1&hKW5cUTh>qLE87e0!*+X~U_k0c3c6)+xNAXw5k=Z)yVPQqpov4ED?XED1mRIk4k zDU8VH`#bd_qHO*}&Wk-td1RV&4zkf;jy>0P_T zK))vOgu%A&7uqt2v|I9{Sw&gNqS+9`$MVlhoZxkZK_M@C`bF1gMxYB$W4hFxCNUP; zGwq2@dqM+rz6yiCzBKo&i!&Q4G6G~$wC>r3!hrX*1K>P> z=biazmdE>FoN71HQ_p7Ozj@QP4NHhY7??SP{5~5`|CYbTr++iYYVd$OQU{B<2jtvt}zw?pI;wuRqa^j(n@E`q4P z6&-wC5zG%bt`av_mc+t4=Qc(&XSq8zO^!!Rb}Vp;q6v$dG`v+iCy_XWBU;Tj;#gCQ^r68!Wq2dPc85A zi2ru>i43>1p<;pX5*NU*EZW)HDWQM)`bvEtwfY#}{;P;sZ3JyaRw{|%5Z7Uq3yRP@ zpKk({d)qK+Uhcaq%&I$fw6UX1`aB{c#FLp(!1+IZ3RgYRBA8KPs_=s@_^rPVEnzTuc#H9F$TmI?XpHkVq`Rxnq$7F&(ay|@xI4eJVYAk-~ z4sg;FD-6pS!_+RjG=H9p9D`9bFPA$F6rnC8#@yOf4KBSHxP4Za1Kk3ji z)T#XH5-Y*n7jd!vhwbp9t(^sd;HL9#cLmaJ;H~e-7xux5t-7XPa^`qV_Ujc!+6{lc zz+ol+l-~7!SI3-Z+vp@j-<<>N>lprTjXF;~DE^-P)JHh@gzDBp*dK7(Tslwm=b+L& z_NP5se_!krX@V6SKVkXRT2DHFw$_mY0vMCYqcBSCk=2gMz+g2n>6a8)^YYnfeyqnC zT_s2WFceZ1ai;Cs`7OCp=koU z_oQCmMz21pY)r=Yerr|^ z%>o*Z4gi1&2^^hAq0=1JSBbYPJ@KQT!fgzOMPEhU*T6yTxVi1<_QtUm40O8Uc%|mdt$aYxl!YtWBr<6YMY7JeqSoGpAa}s zD_&!>OA6$)n)b63#Zm>iGvTFI)jom~MBn)v6eK2UeMG*}>$SGH_ub!*p^AUJaz+zL zq~vyvay*`zb`T2Ppjx`b_HLuLAN4P_kL{X>@RuiDMip(c$IkXW(6LhiT7)l_QDSfK zD?v*7#f2Z661te=Fz?aq@AFK@YL(XkOfw$K$VU_2Ux$}2IjFbOb4!U+EZ{N`39Y3S zpxLLsA(dVQWn$ zZYFMrTNgndc-tm_3TcW%anqDfIZ62es2{B#s{JXMW>doU^#iy+`S+uaU>`(Dq-XwQkgm+2=-NDn;AHYr?ZF|_R z)3=)me@EJMew<=j!RYv^J3qP1y(+G7;o`Yyn7VFj<0KBXXMl4yw}muJebZXgR5?ki z-$lax@^Q_R;g}|P#b~?5`*ZC%Z{9aJ^`8(V7mjoB_y~UgvOZrf!3FQKxEdt!M>dD`XERFwmZ;Xrh`jv zSV&_(&|34ANsT)&*q8Ht0yHVWb_co(qHu8&2WRdNT4&CgP`|f=Lpk3UK#~A#cc8oQ z3>T5nC}Tg+8gtHM`W+OU$@xA2iUeT01HI*axKxkEn7hB$mva!A^-QoY=es@#l7Q_S zphzz63sG;P(tG7#UDsm@g1NF{$j?NLv5vtTi?m4{R0J%3Q$G;^QuXBVMD<;6Z_EvD z+FM;D*-PNp0V4(wM&DV+#{Y=cw|c+TY16$*zU$KBtSb(-UTAl z8$RGfKr!Hova?eC{%)%tX|mIr#l`#V6IPPNOUg8O%D3-Q!FznW7q|dcFukzf(7}pTmdhgi@N~2 zpQZ!D54$9G4rN(y78Vfw%aWkXLWS9yUok`n{8c ze+w3pA1R*DZ|6$pU@G2uS(n?L*>9!1)Ue2inkjF;;wzr@PXBE#ju*i@9M`4#_puIj zSho1bo#_1%r$A|yD}RfXOMuAU!E%w)&Wj-Z2<+z52I!+;5Un|A2SCOahcxXuBQEMQ zl~3`ls%J+zZb9P8i)28^Ri%)Fa5P4pIy9TWlFm9PG(TiNUqiLasBTl0i2g}I(Rh+X3SKcH(6+)!zc zPI@*$-Q=MoZFxr3F)O!mfrvhZZS6eW@}~1(=O~);1>0uIqj6@*{`t{IdQme~<`W(w zMeOJ}pG!tU>2*i2-vknRd@NsHd#~WNQlCmtJ`zhJAEh3Y1^7kn*x}S}XG#0|Xgdm1 zOJ6<0QvUS}T`G~Q3ItAfPvLQlK6boQhZh|w4Glx!xk?cZ%EdM=eA5gZ&hT-ZU|;C( z`TUt!eQN##ag);R*>df6ft$CG<<7}*;H16 zMf`c)Zu#E)Q7S;Yd19vJ4D5L<6ll-&gUiwxzn#)5s8Zb8?9#$jG^z0-B%!|a$JADUQ!1HY% z{ya?J&GHk~JE-RzDlsXws`nHhyicFL@l6Z^DUgO#NJTBt(iX0$W+|QP_NSK;d&jOD z)BKcuU1Q$7R3ID=pJI1A!p%=J1L9)Z7Xg4(ENJcCH@GC+6KPK^So{Fmr8Zp7gD?BX zA`81K7zBojgsNyI*4x=klEiPvc##bNLn4#l7@ci@zH?H(W;T=U@8(GS*Cr{k7LaSnva8Wl24 zfb}=tLJZt|`o$-ZB-yAPEF{IQs-GeUhtuc99g+98zW@8b>-ah{ky11A2y?iFPR1Q_ zc&gY-esnWY{=>bKFMyA7|LTGW9i<#uPIpPcaBe)2< z&$o#$oQivaA))wUCBSC^h!6@(!hIKkbhE>dOPfzLSvv_D5Qn_r zjG>`$ic48pGh}n-k~KEm!Q_o0Id%c56(HB{pn7aDWD@4n9oE)|1~frlOpKwSaEeQu zSTp3Z#y1(&hX+X+^KG?jr&riCCD+|5VrU&ibCD}H8 z%wlh~iTxuR`;vXS+-B{QXGfpgFj(9P`W5h4+!6W?P)S%LoX@RG~)$EN6gyb^Xm1%v7%;(n!x;M zY5PxI17Cb}n+TY=*6ZwcPm12AwK0d>SQUBYI*pgbR>RF0uiXOhsC-ya8a;cy$!CeP z#vSNZH9WSexNIV$=pTv)rk=hYAX!+fkM17Kf$hLO;W!%t`hUvsi#x}2SDs>$?u$dOVKNy}{3 zsH8oQ7}F(*NRzU%3?&Jp-SuV6vfCNfm@b7~s@isz0w+^#nX0CK1wy~VC#vnH>F*io z5V#lo^|$5cgXceeG5gf^anb1@qvC#$!VVNLr zJj{x}M%$%#uR~Z4YAOVFHQuSAm2T;>#D9AQ&1eY9EHSF;5_eI4<zhuS<8jZRRkF<8sq z{WdgGu%BuW`>|#TU7gY8Xk|#;oT4Lq65zL=CzX;d)e^b47Ud2=aM}UWJ}kk(`3_DfT;|}gq)wv2K|&`5 z?IY&U|6C0;{`!IU60Wu6+oD-{$pRn{$RYR+fz=LhI3UDq3%rsNE%{@#wbAx}ZEooe z4>D%WnIVLRtiiPAtReR`V76q9n5~rttdaIrvo>V)SWgeNd6+c1q2jVOhDQ9s7`lc3 z2Am^8UCz;1P0rz1BhF!2JNcCi4VxjqHKUQBDQgtgj5W+iW7bftIRnVqzulWTF&fn4 z6p7X07>YG!AClGQ7?8DvU(wK7EvU~LfHY=}1I<`tuqLcQMjEmPVvRU|rV^fFqPi|! zussw{^6Ba6BJLM)1?dg$wcom0b9X_A0QxcSp7Hkj22~Vff z0{bGaAl$Hv^ovvLy{%j)k0<07;tE5l<@v1DF5;HrpcHHm#UXIgq)8*dc#61!G!6G@ z!fqiB#p3Z;igukmmFt3rlCqNY- z|4^>oI%&AK<1dCH50e zT1TFQEiOW7ftU+w%jEU!-}SKBFLW2pLEBZQoT0B2<#(M~wl5rI*jK1hY};LLqM=8c z>$m;6D53T9BD2R_CK(xA}DCc_o_0=eL z+hlcjhi%2|t)$p6t1@$eFXG}qjzKH3xbvkLakQ<6Rw^?2o1C#hhSrvOYp7@4t?^cC zR&D$jm`BS&eSqp%eZ2n57+Tb3?g%WpL^`a|E+DiuBdM~nSA8*$+B&9V94}MIZC&;6 zWx=x;v#xq-^>|hYKHCek<~qGu?CfwvN^^Sl)mOW<0ek<;4tmvBKH!JI@Rd*YA#i(& z4NiGJVZ+foy0tl;whQ)2caj3HN$VzFlaP2#^2}>G^~8U0k<8zG)Q(t8JGor>O`cqW ze4OMW8x31b=WhYV`68rij6@N9X*Y_`O=F3X@QB@c3sEa@0++X}f z(#Dg)nYMO69clS3Uk6TOZ3*hY<^A_BstOSkpmNB3QI>>KKtd@9LQzbImASc>To6C#inuc~te^1*ehZJt(CCaydr!=6{C%7jv2LMa$RQB;eV z4QrXKoY4|Fqa}7m711IjM$3pUOZOWUidErQifR!PBal|(uAy<)@VFJxA|yqA3i7Xi z@BH?>_T#nRyp|6??!`RkH6L4jgBUTle}7LUO63q%Du)<_;v)+=JKjQBc}Nc<59wj- z8TCJx2oB3f7IHQ$SgVpBMI}Fq%k85IDG@?!cUO&RP>7qGmu`|g z4^?5Z;cs2dFzUk>TjdFfIMdty_s{13r+R|BZGC7tQ%i1w*V#l<}IHq|PLPUgLrWCZXuWRAnL5qo&XClNzc<|PvZ^NT+V@985 zA%vt6Li_UK`FHW^k7`d}`|WG_ME%gjacwUj^_)E7j$O;|RL>3RVzeP$oN~#t5n^&U z%Vq63?Z%$dZpLGpXCj2e_+?B%cJ_xoIPao|2`|q^$cgcI2kY|p;_~-0rOz`FLSj6) zPge-%531k|)o-Sfx){GSGS}By9JvWf4&dhe! zwQjIE<8`S{e9BLIThi@y=7;u&`das`-}{p@jtqJf$Je{5&ZJGfE$Q|;kuvSH zBirjVs&w}a-C8G7rd_Vv>olr#_YK`zCsCxizTa(iDs}pCOIGSk+SJ>UZm;v`(%x5e zbDc?>db@6~^XSsvS9Eiod;If4-P5%?_2|csYr0e?9{JdDNw(LiM?ZeNF4c)gK6YEu z?RDmZ{h-&nZ~fZmpYK2C$Uq(vjjwl8or!FuYfHMlPDC=Yl^xw)ry&)&_6^-yCn6cy z%5{64hE(L*H*{;AghXVT-_N!>73s*=wsfV=L^jg3CEZ@mfNx0CvZ8d*Sw)5VX+OFZIQN?cKj}5d3*4Rd`djiv=r6(Kr(~Cn zD!k}`zZ=lOMHve;Wkn0|UL-#YXtBSNRyP?;llCEi?f0O6HN!bAtLnuxGGd+agdeOB z<5NqHKr4_lg4i~XlIOX4m&Qy}I&uS{(iA-znWyBLXEXy*nr9S@oUy-sm@H3GQ1ldg zIBt&lPNGx3)7v+``Px5k`F^9X3PXvtsQ#4aa?=ABi*5gN)z^2Zk>h?{yHT8d)p>Pe z?DM2PH)x_q#p7zYGd2DfbD8Yx&K+4>yMWfPdgtePRMb4FU{*LSje=;cWebC=ZV*;M z_#bQ!>vAzrF$soa7b1 zDoN7J)jJLLk^_l(NlRWWU*|B?qcM*#eq)}SV1t%g7;8hdfz-59pUZpq5|=>>v+bdM zjkZScKp!UlCOpPa9=i5Ux`y`s%`9@;p^HZ^?zxSK>NujRX1`pi%J)<~WKsjR?! zR$o!SlRK;C-dDpnwW8D8E50Spvp{6o8M#(jfdT<%c3dlFUO#Q$VrC~`xqUFXEHI_) zTHSnbJ^E^7M_x%HJuZzSkTr&39O2q~h`Pt-82apyQwsDt%?`(CQP9S#n~DxCSb_1M zAR^a0o|>4aG-tl<9dhbvbo2M8fR4TbYdyKsCwYRIL{as8t*p=*i{~(2rEZ+95yd=V zJwzQjga`jXb-WO*d|;~Mhtb;MC_*26T!*Mbg$PR=kPZ+ch;VR<69^CZA!^Maf*2QG zqxwdH+LR7lWyHQS{1Nih9y@d6ux?Jt3~KWHfs_Dy1&4xcDxWow#%x{1Jj=N<1&(YY zFqKj2tH%9F7u(B!fex>n*neF`#Io~D^ABtyu;o(bj`b6q&n7#y8OXpEMxezVg7(Z7t`G+aYMQptup<~B%dK@&edOrlT^72c8X zc!n_2jxp#Aag~*DZ-$t|Doiz9Ppkq7vqdCUZ52beYjxjvIje)v=ts#Xn?Qgu zBQg)=4{7nSed7ksQ#)SJ^E-kOhY1()4mo32WR5ba=@D2+{lc7W<7X}dj9Jxz34XDP z3x|N^n&mZ(YIW1zo`21xtX=m-$tpi{2SDtLuFF4Fl{dqWCF$PDrE{@?%S<1YVbUfkmF(=tdzCbr9Lb?7H6qvNr#;4thZ}*{OLl-(UALB#mehb*e zQ%(J#_+JZ?|G7sheYuW*H|fJx|{pdsDjbZhZ)AUETO| zb9{G;OqUN-j=J`L?uD%7-jF6WGqe2^(+gT5XqcRB)UHgpS^li%oAN_3=ErM}P0xiC zX4|oXa1`IN`*Q-AWf<=1?~6*DKx4I92yI&2ml-8=+udVIy{xZW|BGSLQV5e$G_UmM zqDicdjLf!KghTp-k0r-Ide5AOukx&P?F_@PUoZ+z=qer%1-{n`f$PiY_quKG08|@2 z6Q>%p_X+o&b4>^9shdRfVwua)-9tuq3I%hKxFngdn#K@n(-N7m(k7Zor@Rh+=z>m9 z+TslzV=zIHH2r+wWmk1oR(f@Y9Dp{Z-xLtZ?Gxu9yn-|h0;@%bLbta_2gp@T+ZBVq z%XY|c{LrimL2h=lSeO8%siE|wCAW`v*@y7XQxWo&7^@c`q~;~;W(L7qS~I5?w0`R% zcK}$qI^=Kbnuft=yyCa)`ocz;qBmn__gae_qW2J!4hN!`75QVCiIFU)^y{VN60Y&o}n7e0!)-rmCOdk|gNAgMmOTtldfYpnvmh;0?8xJPe=F76|qsJEPzfDtnI3!^ta zx(PnJyVjQz7=9qByA<(B0Df-(ZN@-n&37+YKqlxyR{-M$EBdljfj#f;eh^N1`i$B9 z1Z3g>_LuCp0*7~p6KW!m-R5)CyGRGyzOrvUcce^VZWOBi&f~y6#M%;SP|Dqpu zgxs)&0)(DQxonFmUn1j1)V8Aep+8>ZC7*7>LumC%9MsvnAZmon!BixXR4$|i>o9)mPPwJs(t0b%unC2}MHx^UQa*@|}Qm@LZEW;dl zCp)X-FHkbzT-AB?f&{t$WSuD$(d=bbl9wTWf|)*#DRGN!YENHZ%`iW9N9{0 ztzbb3$zEoWQ^MZ0P3thFcR&_^@WljZS4)POGyEra-AVW9JEmzWZma-78xg zK{(l~lK;_;YS`_|$d;l1}2|WRid6lr3vB z(9P8cB+V>cginh*D3|V6*sRvChL4)%{L1E%z&oBTFQ*iUfW527B*>tDDe=KHbxhS= zC5N&Zi4BwCfcZBwtGWR$Y=hb~%|ECA@sU4YHYDg5hv=H%x{|>^r)PVE{=MDU%v9F} zZP+J~*xhOND<<#TQ_mLL8KJrv9u)6Bbj=CeRPr|I9Xhd@$@i7Oul&BBJK>#%djm_qk??LRGUg?+DH`Rz*#bx3BqA9Rx$FUQc_&p^tKwu>oIIp8Q&2qOAvmoC| zU&q4mDK%7X(dras3x&1k*)qH>yO@%vyMZOpT{Yp@BZ@?PvqtT?yv| zq033_*Bcj;y%nP5br7D*Y*Yua;Wn>BNguOpf{9s&5AG9k2RFv zS;;4#E7G{9eHEL6hYa)@hc-Pv>;m`Y^K0>E3VAoi-ir~Fwa0}s*Y^Roz1}u^4x95V z!qS$ume_(&(6%u zrWHofAH36#IX^5FvJ8a3m1Bhet3t+s4K;b<_A(WE zOUI^abP4qsCysWk4A&4{gPnXs;IM8xo~$qW`0{hmmP=T&;v+~eWO>Ll2{89GLP05iJ}#bYBBwiT~*@XlB8`g*s_EAtoJ$|`H7d$ za-J2a9-e7A@|r!~g^qyGcdge~8r})MQprWe286bDuy;Tw37f zGCc!}!lJH_&+-F#c_1C_5CCo_W&k9!CHPjQxE#v zk4F0VB(hth+~YXf9?VNQf0E=KL1e>yaYtQmO-h8kzC7feU*BVe>4Y5AlXhHE2h~7y#nQ#Jj<2O%%ZaGtelUhh4v@9YWIC@e zEy?}ZR%D~AT!51RkVLj*U5mAo$s;W4C)uu!TptX!=;3o^xwSI1;o&7vrmYI(dp4N& zTy?_`(AqV@0~=l|U&mLqdy9{1*FT81NDh*)7jU%$3?g72U-ZcysnZ!tUq(D(N&5oav6;Va00_to$;a ze0JEnbq1_)@S6v|hTV!}lQ-}F1VkGiMh-V8VhN||R#j)ohXIf!$;_RJCdy&<4Dx;e z+yubv!=@~Wy$2@O7fYSZ&q8Fwm&3-V?l+p9xSGLa z#hgI1lFz)UvlL)A9M|MROpEk`DjWh?Qgfm+TX1WCa zWghTy>U%!AgR{l!eL6b@rT5dhN>c@Nfsi04M<{L&QoD$h`Q`ic;All}rR>_Xar)UY zc*(5GvkbCXYl`o;Xo?|i7z`qpb?zX7e#U*9?;xR(I)Q~aKGp`*Hpfj3bz4|s!tAFh zaYobCY;H2-$n9^m5f`xpVn^+3(*$Y-X42V~ukV9WX!euE2Hpw>!014ySn?@SY!tQL z#e233Y%Aq5(UcG1nKkutDYl@Nkztqf#heVn{K-lO+@7*s7L`go`}x2~l+W|+^$Yec z7eC;qF3%v*0!qqQc%f)exM;MLgG+{G?mLZcOyNA+s*D?DVk?s|bhKoj?X6;@4!PA2p;@Xzb}NTu4m z%!xdrxqKj_lmyY8OSs|%5{Bj}Jg{qtk6uj4NYCcz;ydEw`3xRKXHPDn?x<;=JLt@o zLA;K1cFx4n%zW8V+a+}iiL%WOp}OUqk+I%yl9(=eyqkwEzFO6PUE_7Dj`egoW<8Hl z`|@KyBOJWuSo2^1m_PaD_Mf+Zy@I*187jNbBVsYiKdU?T<+m$>nB$Ej$}dOkBwl;Q zNL1&~LWJEZJ!XN3D+hkxtQA66pDwF3Dh&f|b}^md&%>AGW#KlZBhB^4KmYu5rO(Pb zt|eD5b2F%y$Zh?rE%X(t=Ywmj%JpJ`K^FQBCHdl`V17~1rvdL#YD-6*dA6kD=ZIJ%TkGzTys_MJ$G7}(4tt9OsqQn1HYK`t$ zY2NbJm^7+$I~;S`zrU@aq0zu=7SEfCETgJ_WzG#}Z)VLx-8VRp=xHK@I`~l|BA8e1 zfLH2shVQx?=#N)LlTXl8#pfv(KDSWE_a;+cKincejlh{v9uzTUJ)8O`$s*4n1*x7% zbBdj)hkzhLKEP9`k~-enB>=DJ%ZT#tnBUTc;#Znhz%Vw&D?TkGoOK#a~m~=cmX(Et2rmu2%xMREHqr)2&v$mi< z9>Ndx&D~x2H*vwgA-YHVlRlXya-H!sNs~M&lR9Z=f08G8k|$+S5~&3OK3=^n$R{4; z&EXCcOK4J)QgVq++T^_Sx`<1}sX;?T!MU6HOUL!TN5Bz8!1Te-CE@EBN1B_)WE9li zTAU^~l%X3|Iu%D;#$4)Yynhvvl$>E1Nrxu82?;<)z`r1BKb(P_RhB4{4F(v21$1x@ zJ8~!bwrP-L@w-_2m8MtV{cg~*j0;XE7EL=$fNW)`0-8ZH3eWtTve-NJf5hB5;X*{w zgJn*jLKXzk9X&5smccl{-+!8qZ&u~OshBW?%!_WFhRYj#rmpxpRrn#3FKM>=- zoVfH}-9zD@tfnAN{K_Pjd`9ETooHiR#Vu9x_yu-4xbU+yF#Bc`^w7XU2xU$#5}jEa_U++F4L0&>IU{AaRsPe9EX)IU9o< z8j?u|j&%sU)Lm55^L4BMS+Z>_DV@^N+dSZ^oVr1WZ$FAE)L=VJ$J|~Q(}dXw)RIOi z={py;O{(g?s$$(auK!1EN=Er=D^zNM>5)|ohaj7%S^|}N^|kKUiS$q4?~Q2HVA?v^^FN? z+V8yN)=kP3!DS>T0{lq|2H7)j)sb#);2`4%QGP%}v#?Wu#}`8q@C=ZUq_(;yOe7&X zl8h6j2b-(7fL1WpIdvil?(mUov@4JJ z%01e*JfI#$=e`l+3UX z2BH)JOzs1&AUQI1_uboT?Krx=c=v8$7w;_4wcnaD-ix9sCfE%c5tQszeqb+1{xU)~D6*^VGrD}#D zur=mx+NwVsPBkp}h*Qn$Z8MsIar<2xFKVCD?TEY+vOJZx8aJHVDO7Tz)viuH4)%vY z8R-2uk?2m$QJiw+>}=9n%+du7Nivs-y8shE+T-Y6J+G|f!QM4RE~jo=q_wuJ=P^$p z&yL7f7Luyowr(5?Tm@`Dz8wI`z1q!um2-=p=Ibf#5YW6sn@~1^8%Ai-I5gxP6tF-_ zEaTn%IS5E)iPLC_0OjNWs~FM^6DoB^B{E>#Q}J_PVzbsw$Yr^Lb((awBS7<-6rlL| zeq5T-u*$^VUYVYfhD4bS(9;Y0nlYu;XVZdH!?M0AApNB>?A0~cXs9MsW_D**OGvGO+6M=6aG>xb}65QU@C4y;A zV$v|UkiJ4^_UNVzSZYc_`s%GCe&E3xkpAppKz8TZcV_O)2#}IdUDd@`k%SEd7Fpm% z(=1t#aW!TZ7y%te3L9UmRo)6!Spp@H1DDbf7lLp?6EECQl+La?3}awS+8SvTZnFro z=wmp@BI0ilR8sFmmHSuoc~#M5?f?K-M_7tJV67BaEntuT(8Y5-K< zOTn5hJgN$nBnlO$|w%P#VChS zn?qqnwu%uV10t}6hq%Ue5TkSYv=`LIKoLu2Ir!izS4U!;t7o3LSl?M=TOkKG$`#05 zKpxVR7Zl2)5smVa7psQ-mvV40Y7&UkP?iYyvLsKi9$;+fTGSC$W^%OJw>mdvyP2$G zNkB9!Hj8x$)j6L^hJYxovPx@T(ogr>?(1f5S4{%Ml+~pI$r`c51gc6dS873KJ|W|Y z_xx6Y!8q3Cyql-lv`1}OvR9XxfiE*#azC!gAYu;D@xWvK>4$T2`K{AY-gFx1$VUYc z6Wn7DE2j;!9-(7EMI(3t*U@wE6M*sTt&SO(y$9RwOFosw2ZYRxz%^>Ofjm(10k_m~ zPptUtLAnxZ&Vg!izZ|ZaEFoQuqUIiIng}>%nJw~}ti8Y^n(Rf+K0gndKGO|%m zS}4{YKTc~EcS9B0B1yBr_83K2@jvN-?{%z&o^|qVd^wP69S^Bu9syNP(9ikjD&Fgl+M;7p{Ds}h95%9XQs0Xw zoE><1!FMl{Ya6VGYDtAz*nm!zdEJDcqbZRU-FW46a!HIcJ{i=@76jE#JMdyKn#7p& zM<|YMKzK~zdM#%u2%Xuu+Zd74DlQv$I5SUj>6-n)8+J+zT=m!)DW$R(5uR@!kdoxk zSa@ezA~)1Y4Q8RQC^zAx3#2(dxWH5ET8T{9?f^!VPRqeJ?N+H|w3|b*>LWye&8}LS z6-nJmyqR=$q%6;k2GAPxwHqYyr2`L>{1Zqk9RV^BYCyQu`S=$+1M+xBzj(Zk{iePY2ZU!UYP z@l&k;r0XCJP;ZeAD@T?{l*QqOLp?J9aL&0Q*D;85KG7leolpFeOVh`_?+?y>cTF9f za%2DV$sWIntJyM%=lsrda%CL1fJ}0lG_jjqbeZociKhOKQYGOffRuZsI5_v}8?L{; zpDzRhNx2j$^OtPqOg1`Y)q663GL9jQXF}6vPSSDar@Ny)KHhnrPBO^6xqlHuE!h%B4`AMfrP?wjlz@4MS~z3*}S-Uo!%2{yio7dYEIja|br zMHg!|Enc<+~!)Oo+TfKtvXWK`xK)Z|4c=JJ%1LR8wt&d(zT3n z8x;QXug_?Yu26OLcwK-12?RUnv_Q_{Y~&i57&tQ z>W5vBr$jTRg8@cj8EyIk7`SpFJ3&no&D5wqLfq(#V`FID)@Zcl;x$0I&9pgbvHgBWVPs3&p=yS_1nEd~&uOt{Pzhrr!(C zZC%UQgSw*@aK#O2%D4p31x;QNde?q74c@RWT|g%FhpOSEMSC#qzNmo}pcBaV1}*ea zq?A!vO-8_zTAv4yVVHKF*wK~0SSb%eYu(bT&{%sh*f^mVF`J6O7l$ zY`MvNKD*KlU{nUveirZy9G|^6JV=-El()fB@D9(_&u$U_c$DA<;GUSKgPJwAVR`rj z7w#2v>d_laS1k2rC6i~j`z<~n@;`l|UR&v+Gm_$Ho-BrUKJfQ19Fd1L{wVL(kmHvHQK@T+FeG3#@To( z<5Z4tq`EsTGFZ*2x{!X8_#lHa^Cw?$85ZMY4sVUPzT9-u2KS}>W(;-leXYc>Fa5Jg zR*;hzX%ds%PHb5=V*D+h?Qz`wdd`oTY(gT@wc~I0-2pRq3Hk~oogvY_rz>Of4jFzO zK@TZBVB>r|#7HsZSFaoxClk}@lRUL)m~JY^LiuW+Ni`4=rEv^S$6rWhzSgv1MFwk{<4 zdvQJ{rkszXJvWJiXLqRnB+flNe>Sdb;n?b(P4~c3eW5C z&B}HWfkOt~iKp+;N3bQ56ql8kCR@VpNSZqHEXcQ2(@zSLi8e_|>cP`!jH1Vh3$ zTo|uT!+GF_&>(LKHc=Sb;xVQGq0HdP!WQ&I-2joB>=$(F%`cVZ-YvtSKPQC7J3s~u0e1V|<`RMx&3}3I{E<%L9dgu&>r%YXfKy97GT~Yo^4@1gQYe^M^3+j zRhdEK%c*lY7pdQD2p7W|oK!1AC(_b|>};}XorCENW#`1R;M~rg;jIED{s7W210o{I zlpDab+dVP~D%mV(K?bj2F*K?fm=_`z-{LLLPTjEc&DG>s$dkBqCu(FLK9s70hBo9% zvw&)q;4BN6NSppd^sIrO#gz2~c=z@^mJQ+OtB8~IdDu-afY_B;>JjUyHC#|RWJ?+s z3miKW9L*}@V?4ty0wS??&vb)jCNV$`HhpX++!7rbArGbJSpYaa0$shK`j{4S2$UOu zw!6|`MFn@5Nwl25+{cMuA`T^Zyo(g09|_<8jz(LWcqS6FBH9K;Krj4!6k90i z_^J-uXo4iDMTM7+r;?=dwu}Iljmtuj3>TH_AvD0gN&<`2^XiZFw$0Im(d^@K8r+5l zPCZp4ap1dV7s-+(;w3>{Pg&(+X{y=8a=>@^+Kh`~wxbt@b)+(#^4?3TT|Aw1$lrdx z_?BfCWOAiAvgR0+O!LPECR$_5%#ZTB^a8+#CHA<*Ft;s&U9||5cP^oc#Waj{(@X&TMfwY3sHMUf4-4w5fCOvy^*LOYj4s8A-!O#~+!tRv(KN{c>f zfcY`wT8-K37 zjdUXb_5PYLxgbC*(8tlNqS4mIMGKBb2Z@)4vCt683)S`#=9R>r;IY_UT96Y@;k&Ov zaRd=S2x@@z($k?)TV={#VBuoi68wQ79YfBOhy#a_>?cZ#y4Yvcl9nhgwYkJV7{lP8 znlU@|$I`y00n(%WqkivSgF5yYAd#U*JaYEYF&lBwf~ai)7m{AHO_qc)Y)O>3SFE=2 zY%8xo=qSeVwP}g-&#@H+LPl$7w4olH)aJ|-OzkKTO7#^xJwFI-=y`)P27_+rwnN4K zmND=zoZq%Qn-Wyd=R!d+UVQfB4yyr4qqs=Rq);jYBp9uvUMI$WD#}GM9t@M^cK8|f1CmW>(0C{|E*9R{PloIOOc$)C=B1iDl`ra&9a|(AAz#uD~ zF~)ZrM6RZyo1RKDctE>%6(zaKcbOFW;S}IBA$jr(ym9!&`MmCQP!T>v!3*?2bV1#D zX3kklb0N%=zqFg~(1yHrSf7Rj7a+r5-~)@21FU)Z{~bJbWBb+fgA{N^gSjfC@ z%it~Wykv?Px|!OfR2X3E^gvgCr6|R+k2cDTB-c3TJdh7BCaT0j$t1`sDd(UT46wfu z%XD*aQzTdKq#Kd2g@^T*7Y~o;{Y9<7{F%eS>}inG0Li5Q!RK^oH{#4hf`|<~WrY43OGonaLdTq6TS@$5d_9Jdp4FB~O0S z$<-wP>n5xKs`(E>gj!*kBjh#cA4`y6q;k-SS(+~j4-11JdGTxj^2`n$l?;vf*IbA? z6e)-?x_B}Q1&|oO2yogF;p5;_L9kGZmZr$+-F7QW3w>pF09dq)-84jcZ8jYY1S=2_ zW1P9{vd+44>h|>pFm~)?5W{XrWN8Y0;A#g#$Ubwq&H(>=qZ{yyfmmU19jMmy_u-&e z>^!NH<|Rwf5=b&Z`eI*-rvtDGU{x;73UbqEenjMSc8Lps)hz;gZ_WQd4%h^FYeoa* zefe)F!Oq-|yG=nzzbS>_k&_{e+W82GbKg+2HJ)xnCmH0km zNf&@A1Y&fB;$U?2Aj_mkXk)P=%%qWjR*_;|*7kK&|*9bEb&lu}4x~ecn=ALV;2Jh_z=1mFh}>M*1Km&S6_Vw3{UdmGp*N z-j~7gkHDwoiCe6*xyWF=>EJmvby@T#MC9wL^QKpEs_7m+ zk^@}&q%!q8IPZMt>~KObd@Dl3VhpjdWv;VxxZw6IAxaz4+!Q;jrGpfhClkg{I5RC_ zW8|E=fcrRf@6x76i;v)RX430MjA`ls$ifx~U!P3?^L9s7HRVbwq1Rf8H&Czy{m3Qd z&{xda7-4`jCNse(lP4u@%)Rx(%cNqq>)h1F8nT${j=Z;ferctkq#7X5hyXA+dIShC zUILZqy42}L4Bsc=M1!jk>5*TlU z^eV^&dQ>Ne%!S=>BFhI2PBf$xmMEco<;!_h!fqszXNi$Cs+0I2>HC4*kTU307iv>*T zh;_w0C4KL=WY_r|qBq?|kQ0K|R!mQBVL^xl;H=YST$a@tYT!JjkRL>MyytrH5A z0s@rGIf*gd0cH*9osEGAA|h|#}9zc{{m+ICKE{j zmuJdpmPN?Pc%@e^#&Z|Xc`lo$0%#oo$Ocm>w56^Pf`~z{OPv6_qBB5f{i?|HFL*}( zeP_a}2-1sjqAz-xrmF{3NDXhZ6a8?XBsGKtk_3u->T0qTs^Uq$%rm1!~2B z9bdT^0bCO@BKl-Aj16H|jLLW6!rPIDFp8|K<+-@~MB8Cs9d^pjkp$5^p976iwsB}R zTJVsmkd}<%S1RkK6f~@UV)ILkP-6n?X(Yp_Ku|EhWs+F_S?oU55GKPs<9EUHZ-EF*V9DnXfRO z!fD5CMU zGoR`DrAM9s*?t@SfADpJ8$%G{MB+UiHV=n$n_T6&c7W}8-A3d5Z1uVbtQsa=fKn0| zb*2}sio7keod3BC;uwo9uL}TVnsmxc?2vX-Ly*i)Kv+dK zG5PPJP$Yq5VC7pIB&pDZTNDwL3dSzbn70P9nysVc_&Ds8iZ#0{EZf7-l+Lb{CL$nygXJt7assW@>M*gt&>9w969s+EDw(HRkF9)r5{g+!Nt@nqL%%=xrx|woqk8Ljk zgVFFPqrW0?ERhAODTdtQvXj~P7YWDNVmI`yO%mY(WB*?S)KV%2z|}BI1Re^&;Y^Rf zRRkJe0lkEjbW*rW-Hez>I>|uzzp0)sPrfNaW&%unsYu$TGU?QEaGK=!;lFi$L1lR@ zGq4j2_Z=850-(QYT*Y8*7uFdkt_VQQMILsWB3R1B0jG|&u{h__p;X!e03;|TFCqD~ zYSacRW|GXJ(sT|(ll78{NLt7Ei0JZ6t+f|R7P#9zxOpJm#aAN=9RQ$OD4VAG#Knfs zZhqTlUd1xXBeICzYnd)byde{{p$yY*rIU>ZH}pLlhCwLPz%YMF3ANLYPU+$R zqH=82$S1IrI1J;L=;oLZ6VmE-TQpO-Z|sQp)D}h>2nh|SOqq#Sn$ZSbgQ|Se_Q4UF zS4VzR471Y5ruJ5)2EZ~=xiF&0qp_ZpPWks-q1e}RZ#oMQfKz8VNDA^t7p2JYC+8z%GF%`?u)Z74sX=_J8O{pmO#@tn zI$DKD0+sBs1!4$BBqmBEFkLx=K?tHsVWNyHWqv-gD!-bHug`g*e?-i9ZDGwD3hv~Sa+agb>(U}7m!KJ51lw`2T zEhPjMKbJdOFKmg{pgOv&7i@*Pfyg$xcRoP&1MDeTNT*(Mfbi;L0`PGrqnO*toSWxx zW?K4gCH#yvWif5X0otwXBf0w6RXi0e zwf}0pxs#_Oj#Jf#5#hX&{oJ;#JXdUPcf9m>#`>fHEr8ZD9zu`>Sg2ZVU>Oi~gc%tn zjm874hGw5`Spoj_5Y9WoIp)cRL;)^~C-?K5D`S769SQT$B=T#_q~Gs6(8dpc&;;E|# z5cu|7n|j_j`porx_OboG{DeN~e(~?(xu)yy$0zxu_FHM@KOcv;TceJN#HaoJ z1$j3&&Cc}J`|tPKe{ZD%-<{XwSDoIDcNev(2vmX}XEzh7KA#x1T@wROuH9qmD;$}m zRvuR-UC|F)4^MW={BI*70iC`c0`?=R2oHAc>A`0yySi=%A}wQX8}e@h6TVHKf<(7p z*9+~GLQ5T;-x%Ks9Fa<{cROPd-F8JL+%tylEynPS+XnhjUe?3I;k zt~ejQ4-UyiZn@o%P~l_rvKy_DN7p@Ft~(F-o>xe3R|_-WXk;6-a5wy0+aXwcaJFBj ze<03356|s=-%PjOwJ+|>8cC{P8kYe*JeQu;5fNgYnfIwt0W#pXCW%`|P~|OX?%g|3 zoxS$nJyE~~692ZG678Rg?Gv}?r#GrkE;Lhw^h`u~+R>q|Ipd%k`A5fpFGzAlaO z+q!c8qdMoz2H;qzR86a@)#LTOe_YBejq0t`UtZy&T6oX)vUcHKa3;`i{aVL?>!15D zyo)N+Zdi>g9mv0#3cR;$nQ2T)!JGcqH+dqT_yloJi~q8JSLKy5g5=G5KI8c@7ecuZ z05Vgkc=<9>>gJeXXLq)+ZF2k&f$o7@J0>!dIZd6_!6`e|*qaF;FT7v7q%S)1{2b%V zNSU!q9gA6F$yGn?=ealF#SetYrkteO;*0&dZ8;pHp1d(}wK-Tb!$V_u_m=zTDv&v} zQ7voUkYkUU(eDM|&fT02YamVKN>*|qL>RE(P7_yEOkTId4<%>-G;F)T2f-fRxw>p& zM}@2jc{dXyW5bQCRwf~Gr~g{51V!>EaMyc^aUGJIyWrL~qKB-#H}Tmj;H%p@55k&D zn|`+Ih*ZB?K1ezppKy2%@%9xL+^CM^xHCd&^>O!^v+LTH56z^ z@_3+>mo&FqVv7@wrL>#(p9gGvwy$@}(*v;|j%9W%IVb872Gz1(Or>b36|mdqbdlkM2-pKDj1_Xa~HAF-JedX|cS!id1?wterre<<{2D=^kM>Pa`Z=XD3F|jPh&>b)u`C`186Ey z?>c?O=+T?uX#9Nk>{{Dm;CHo4uw@1uOayFXe#RgRQ`&tNV+Ia9#axgSG!2Sg8_i=^ zG(Y0m3(l2H0kUS&%NeZq(!2`Lf!|h0zTXdb{627mJ=|O~ql~F?5$mtmX~t!SM?sX2 zArDsw_nb4nJ7rugKdd`G(1SbTqEw;$As6KCY6K@S@#Ew3P9Il>G-Nd&XFuA};xi8V z<7S@UQX)*TN;Qd?wwET*4coXk5Tuq32QEDukF#J3DJceGXRY$1oAU?yV;IzC3bCSEvh%^BC;9$L7Inzi|uacc{u! z>(ACGkeIq2w(`{rCx8(N_?=Vb$F<33K7r)>I~x(_HyoxoAZqOw$j64`(e2z|)p(aj zt(j$_uE&i~#UBA^GXv*#bExA3CW=NBGL!E0_~BZalv^vPx1nJ4oZI{Itdzt+P_#?6 zd!QmuHu-^e#1sunY}<4Ve+SY|9?X+BY3)5FxZZ>C3<}(XcZCj#h!9YR8$X|(nBvd) zcG2?Bj5>6DJ}Kp8R959!$tA+$Nz;m23(H2q;q;kjhJC#;MwiVFsD?z%`G$!QQN`=y z^zquwTZ&EKUb|)X6KL4-d@!}*Z)kQ)Em)5J5oQ|3=}>K;{+C!aR!JH$kGbA6F1mE? ztqijANC&0S>0{BW;g{e@AMLSYa2oElz_>B&oJ7r^EGCm$d|5qMl#pL#qScCD{1)lC zS-#`QchU&stV3UUrl5Y-ep#2bN`|Q?%_-J3ak43|9o(_j0P4BJaKV~2Tz)75t}Ja70*mRs`UObpmn(G$+A*Lpe3T51odooZt*7F(Kdyb|t%DOXn$5!5VkyhZUnld#EM z+JXVt;4C}CR*<-bjL)?RYmO5tZ)f9k^PhAF>^+Mj&HLQG0XP4$hig>RMbi@(az$x{?)brz>G`-3PKTgg71TMi?Xu;-`E_$dlV zmwO^c3Gr~&iI6k_@^`=5SUq`wXP0gtf@Eu6G~1y_@`Y4v3NWimLYt}^dS2a!wpP*L zMy0?OOk_ms4@elTq(-%s(s;hmC=ZqQQtqJ7Uc=t zj~FXBK)(8ei$pkWvBHy}a0gp=S%s|9k*z9vur3B*W9scGV{y-h&7u{Ke}08ysv17U z42+WSIDGBO{I)TLRz$!usG=2Y6p5U)PmqKsas8CxEH1&55@;1CF$H5KIs*kO@jZ&~ zz;SqAtXuVBCm89HzA6)1t6jUr4^ITfSD1lH52P4r6#G-3^@$pBN~(lSSG zx|mIn9?`3j)pf$s2=dGVmdEIc26kMFZ@rZ6bzEIv2D45Y>oWLU?p`D4VS_io{fd-- zMKyPW7oa=5t2#;ajTm1)+2o2**J@+*d?35~e5dN;dtjhxt3^)pZc(UqO1YTF0cZJN zr3`{;gi2LV8!ch5A!)5fp7TGfP{sthzanNP0%z5*_EU9O&eFlSR=joi{6eV?`^6wz zgY=YOs{Ttw1%~k)UKFTq8PZJNCcQ$0;PzDhqERhc@eU)BT0oXWRj0_~P@X_hKN%B0 zu2mX+Jf_mOQtYDELP5v0{=#9;s<0@XSg-S8G}@1rh!v4G&OXDkh1_PCwBLltV^=qz zRXHgB90+bnw??3gUthf{K;Dh_cF=LQ8;5*IrRGcNQR8mTmCQ$9>SiJM^;5xBd+IP4 zN6|M9DzSNfSUpxOQ5&!rbjy00^xYLvNNTeM@td{9Ks&=>b~|OZWxZeB+qZXhi zRpHM$_e-v-OEUc6Pa}Gt_4>ZJiv*!hBZ{AnI=)$c)V#M?izh2+PV1w}g4@&;qa*}@ z@5Z%XtF;2~=dlCt2W4NJH3D*iX!x(N=MNXqTpov1gbcbWhw-sOpY`g#mn#GiPa}q( zjw-&mD+CmI&4S-khCac*VF=L#1~`D)c7)w-cteelgOcvfsYiy5wE$yY#+ zS3oM)3f6dUlVd!n?dCe`Kcz<*kMbFa;sX<0t5kDqC?663Fx^u#<4kRf)FQ-MLiw$E zb^nqj1IAchWe2y22e+c&1m(E+;keIyVkFMA_{Ox)Xwey` z?!0~Omkd7>1NQBG`Pt9TXV%erd3>3&HqUdkTv83cuI`?AiZ)~}%#J|kz zckRcs3uv(k#n5n+Q?7_i{WYm%p5m1v;HW0x;~FCRC@0|K8+yf)ip4dk02?EcYxyNt zC`Ff&mOL1hqaJ_*Z&_I<^_Cf4WyTqmY@|WFzJCIJs&JKy)-@7pi$R=3P!6P^up>Yc za|4QDg~^7U3A0a*&R(6O60%T3f`K5`Dt;VRWrj73q*x)J($~Fzgg!Br0_Vn~XHryb zjOi*zkW1fSZ)gD*Y#1oHGC3s-Uf2~zNZGi7naajk?CQS!dt!u71(+5lOltM8PYsw> zCQOR;QH+{VsG1IuWiNrSIf#ORr$?d;(c$9QJ`Pb*G;YaNdDf&n5_K9^1Y`Kfv`126 zyv0EbB#P3%l)?q6<`SjLoF9vky^9A0shJd{VT+MPiU%dBnUtiXijj?r2Surw6uHP* zmL%FL>Qs*^8CaHUxwK)o75v|rwN&c;*?NJ% z6ee}y7)62oyelJPZVNo8qZIw}b68MN4T2npM~=9b8;3{0V4`EKlLWwoK3KRMSzFv2 zP$WPLD7YP2<2=PFV!(~%o%byeUqpXieP<2^ll!(GxEy7#e*$DLPb}8s<#18%$K-Gm zAAStVlcF51E;{E{cp(jRDUYKw(>^CfOto&-^_RqYi;+_&ibSt&7N^o=UpPrI ztsL%UWE%>^AMESFKD{6w$GXwybWn(^ozqdFLQW1BwP7ecaNgBvKkqg>i?a*{odTXZI1vTHWpFG!klNUB z|JRnI)BZ1j)%Bp1Hl

*}m*gs{VXy;e`{!KQPXJ-=cmT4g7QAg)&?JIl@19<#hg% z`tVc4jD7y#hkxP%c;>^6h56UQjh+581^naTg_#s`Zu_U*kw0|prUyT`SGPa>#+f2N z?$z#ugKSQa>;1uaBX~JnDpSXO1O35l&ea763ixN@AFeJiw|xWo-fYgYqyLz(ewa)4 zf0%_g!%><52ZK-*ML((Y&2c#@_=!`%kI(&3D!Ken#?i^)Cbj$k2HzYG3hCDUTmx0s z4>-xsU8rD1qEMX1B%)AQDE+38+m6c!z$-St-#-;^PVC}r@3TDD7Y{zhuoY@<~n>X(I*}*eh$K?z}@)V7DI)*;t>TMG7 zh5iJ@KJCMwY5o_E{$If15RwB1Lk#Ng+kHu@NDPR7#MeW8IU#=>>oE58a4+fFFd+Vb zTn`D+jdXFAP5tcH&|dcQ(D(JS@@%mgY?+1BN04rS}epgzy~i_w&XzIyr^hvVKe=t)33XA-occ_HL;5o=|VY zG0247TF6cuiw|LJTt=c%>)1HQYq(WPgi1vme(niYa2zd$*gg?3mA#xn|AZ4GKjrsV z4RSEhZ@qcGpeUr>O3!^{6DG5kYQdS%&6F4v2y;y6lxYUZILmhe@@DAQF%BQMB`X0TTl7bqd1icHAGM_f6Z*! zW!tB(`bz>>!HH+E2RUKT_lTCm&a4*_-DNf4ths1c4zyZW2)~D#>F+j2ZJ**vN%sB< zNh`k>mWu@1U8*F&7yk@J&q7EV8tsMNg5VTo{wA8qo!AG+=FWB zJt=oJl^nREPbq#-G7BlGa*4@(M5{^{GGEU77^h3v1SU^FhyeW0}9He#}f7!E(6Yj z`$$h z5o%&2&oFAjS7?v*-mqtL1jf0e0;|JuOrK28VbGz)0=-VdOhq*f#5`GZRY1099i+kU z`D*abTnU2C{&SPWbkbP}AkriwhY8?0nweq_N_6|sN8H6hZbg#gOE+@_O~`hG3qxWM5Ro6gsZF#Tmb*^iV;1X4tVd=S4lSx<>a5Evmx6av(M1N!o|DtwXH z;@FT>N@7{ds%#aEtKFA~={0Jw;M!3f3JUT_V_VnEy2#q$r$>pUS{EsaCGA`g)&5mf z)vNBiq`XFejk;!j+GsY2i42(2MZ=0wS#5A($4p*T#m0X;tV>yNHfJY>+uNCUE!^j> zOglR|@p$_(GjTL+N8Qd?Q|9L@ilD(xdz35g>q@CtE-6(9=~$jm!UL#N?3K)|Jfu4{ z)26TgJwC(lvn5Y}9inXEekj1_V=(Mx^kdcHF-HZh8l;e~v9+=9<;ggd&%|lWjo-(n zl&9=ki2ojiZ>i?ooFC%{v~1BkRWb}%{I2Y#6C3N0P8oUN+?lUDe{SSFuVUxTMETT% z(++!G-6HfWV@|g&r>f%x(Dz&ohSKUtygMT56&GN+f)%;+dwS*jsQ~YA^inE|@v}+*Bh?zjyM}6-rn{wVmE`H8< zEYR#Ud3hKWeYoJ1+|uNfadk6L)D!HlC9{Z}@tqDQXx1!s>%s2y*#)J33QGkN-J|b* zRV@>0CpSo~q9vn**Qyw>TVzeujW3lcmz+Zcq`d5lLyO`-<8?zVcwb)PJR~cOz1RP` zw|yh(z?dIn3_uly1#No}ZEFw4ni?nM&wD;b?ivx(R`^>u{?vkG#jeOq(+X0!7%%rX zjbE&t1hDBcWC4vE4h^f~vE|5EH%CedisajG*X4ju6^}G46}0bn>U@;5<@|dOGPpa3 zUp$A5?Jtjq!3l_wh;K=nZ}EywMXlOD=TwuW&j86`JD*P&qv5%a?IzR?1*zOOfc&+Jig)19LUfj)EvlI z%ysxSs|s;^x$x-K8>65VzDMZ+_^P}HOcyYL-x9|w%in0*%*s3BhSVnzpnbg5&5n6x z$3_zM%kMG2xIn#&`E44JJ68Oh>og~?o#%8b2=yHp=NrOQtB_z&CtW3i`2SE|qJy@c zma9I00NLyd*XCa$zfgs9KXAsJVg~3+8Lv8!I}1&)K_1!02sd|3gU*ObmyW%_=TYL3U8=6W?$-9U ztNouXKzAE7?@VE_?_1HSbIhA4J{XJ`sWFNSVYP=%i-F1YVBPpWEq1XZbA@!)NcUbD>}*ckn< zr}jii!gC+TY6*Smb>FC%6%b}_W3xfBXxvqqXBjZvmu91YDnoEkMLTFB11?^3ZIx6oI5N643~qs5x>Mw~1NVuaD}u-j=GqRH8&qM$oa-JUHEEf?(<^d{`2o>&^NWRaKl zuadjI(Qd1+(v-g}57logieyFOi>=3~VC~w#uhvT^R(&_Qi}L=oI9UGffA5Hs2ITD6 zMTcB1-xh@h4N9b@{TlcDqf+pz@SMsTuuKhb227q#;J4T!l#ZWcfcu5=>n$*V@SDm1 z`!X%UrpkHic&0_oN(Y1!IVK(rG>EeUBYPb@XjPYz!r^z+kWwzmXu1&{(C-0@NH8TD zq!IT>u&x2rRiwbb2(0EuSOxTOOnV{*tl01r>jO+f8zfq8R)@t%_^GRrjbIHN7dCUL zD0LYhSS#+K6>rZPp-{(BtawPl^&;zDy~b!^=|;{nQEkZ)IkJQc=*-QvEy{*}Obj{& zw{H5c;xgE#oRIQ@lvZ(q;$^=VZ1?iNyC^OJ$8NHGV>m~A?a`7%B5Ri=6yQ@WW#-k< zU*wNeC*X$w`P*K&6cDAUy(Z}b%4j_54^ ze)sUJKWuXp*GLQ3a8*r~9g~Sqp`MkP-Tty$!r&ZnmI;fNZMBrEOtint^GTlm6k#N( z*|uvR;Cxu=O2iV35vjP^6{~p8A_9E#YM-?|N3@s}%M1IiJ6bM&OF4y;#AcfeV&~ZQP*e2O2iwr{O*vwRpi|`%=gO=I7yVh|4TE;GUGZKW&{oqXi>bR zwzgAzz^~`V>9@$_7M0px$tgfAr%XUq#)Qv_7&olM-ytf)UALsv0%*RPSt~B0 zWx_~G+QO-O407hwy;Y;gk!3CH1H*LTCOA-!Pmax&w1i&{KnFZwg_l7)+!doz)bPFh z_gv?Xg9|BwyriNNJV5)TB8>lYPSR4^_ckLBsG?Nj(IE6)*Yh^0F7rF_pFJRFG4Ns; zcPX@wNlW66^|U8Oa2+2O+gq9dos96w@SWs&&kQh>d^+e;W$WIU6Ge@BGh#|FvZ66|i){BspdbSKgyQT}uQ`Ma1r#w<|sd;ktRynLqo6T{xAal2CSho|8( zbz08ZmpNv(N#O`5kHCprR-I-8=fxZw3hawAqas(!kbXJ0q z=Q2@v=(e{*ywTP38fMVTm4fNDiycMoHzXGNSo_;;-oVR35)9T91rwR#1H^$TzD&^J zm$V2E))GnHD@D5KKbHs;2+SGtW8jhFsLK-Ht>++h-Hz_-qy{y~;XErr{aPAR0DSqi z(l!{_9Pku@vl#y>{yeBebJdp?MB6Sax@0Iv*G!=x7_+Dokugbli3&WCycedoM4iSe zgKPjE9gyoXjjVb(ALQ(>W~YJ(VelYX~&<0YGiKO=izU`VeX7} z67Hn8WXYvg4hBQ8UxF~PH}i7YK$cv&ik~PR`OP(RXWbK}vsNkSsw|fI9Fr5@OU=NR zZPQhSoJ4P&by-v{`Umqg-Pu^IIPF?r1$0*y>C-Em&)Q3=#_Edg@tY0S5m(m*W*Ys@ z32zdy?bRY#o@Q9+$_pYW+!Smqo5$YEgHFp_7RhA-oV?3;>s*$^%|F??Q1ua$rRJX$ z>hq&{EFYR@#q*xwJyV($CH_C1%D^1sDO7c?a^DJ>QoynVQHrt7hWLc9uxT3XqKk55 zXkW?kq57`;V>Yt(9jfHqd!z70hU-X4WcIbga*X@^ercmltZk#(hxxg0DMN&nv&^~o z>%K)GngY}ul6T!&L5>aqIfS$6V#}|k!b@zW$l{yu3^qVIxvi*#h2_GR`=FB}iwP+%K>p=zcy=TA{ggoa3@~5Ea@aL^|oJlbS!+k$V!|DJ1W9 znJP&)ZJCH>vM(3ayjYD*sKmZhb#YzPqd4n&%dVUBs&OB5&%E-!dY$WlqUy+ML>8yG zi4+xo2cfqrR%w3nmCf)C+jY*LSd<88}|6TBCDH*X19O8Y4(#*u4-baluW z8%LlxOVnHxPtJdV(=s&E2Fh(2J2@~B9dbdZtR&j*#f*bM>eyLGDUs!G)c^@mOA#w# zvgXMY$QA%(wk$Z86gfO$y94P%_-_w_=# zgv}x#2In<9(P)Kg({w<3(5L{9FMTDNTBN4VLOe1r`qSJy8w^t!iN2OILiDp(@0EZh zZEz@AEgRF1#ZM}axn51s55MY^ltOSO4gDoddYgj zhD92BM@o0x++{k-q|zz0uPJ+yFHjD486gb?;Rd$)VGQHJy8S08 z#hrqdz`dCyoOSCTXr^eI{kG{C;eH!WTUX?*xG0&Cx!A_ryI~yngP@JTCSu5h*X}74 zGbUBfP9}PFTui1&Ve7WUD-B^Z)9xcVf4rN~bvCe8?M{FZ%^BAz0U<(i>mp0v_0z~u=dwN*2vh?7Zwb-Iz&#x~2!Q)jT13Ms_% z!EjR3g2NMdb5xIVXF0s|X>*;;rc@+EEz~?Mx(8TD~i>Qa@yO1Ya7`?_?aZVYVg4k4r=Rzha zvVk=cKF^K~{E^0Nv$%?Eg7SU$|8IHbF;r{`nN(>%fV{Z}m-P*W$ zbY{}IRG!uy&kR-)t+#+YZ6R4G?wvy@LwSZuD`RLkIlR1LTXb>nhEEiXis6Q&%n6Aa z2IGm^*0aDK`Gfvyt109PCw5RaQnUbF+n*w^Tcl>B7d`j8Y+@R+7R3s+5KR3AlB~;t zzz72(I}%k@mulQZxI(%{&jq5~k`rQ3ifv-zow{r-u0}%9q!)4EZsiPeDGt}sD(=gX zh*W&OM(C!&WrT!TklLIr6aA*r<~s4-PH%L_;3ySX(vm$#I4=MeOLI`1o?+^A#oUE{ zmL#cy)uQcc1%0#dS3%yEEO;W{J3ma_t;5%;|)8qOCR2EBw>573AMjtlnx`H(FzgKv3Kj zNEFstSldGc~i>D=Z(sEl8`;vInFPE>Go|641B%OHm9Cg?QWQwX>&UNj=H1B zZS_%7;3{<;-?MG$M5ouOO6!ZbyHH<{2oq?GbjKCO7_@tA3XkG5UpWhdaaPXcetXh* zxVAZ0Zsv1$LYCa+=Ic&@=$wBk*5&Op!|rRXLH`+KwINbs!lQTP=y*0_R3JGeG z+|{`0Ul%P#sLdK@KRD6oaw`+R^l}2M7A0Z{#P~tQ1f+6ekfTn#s+`?UM3Crj6}7bW zKU>)DFIwuC9G|V*&Zo0D)PVpjPKWr;x2PPr{K7McOR#wvwY`8zuV)X>?*Pu$J+?m% z&0U(joK^GBUE5J!Hu13+SEW5(4VzaD7nPM88ynZQwH;#^>i#DlO^*z@s8wXa!-v27 z7Vjqj$UFSoxT73ab0c*3mwF83WsMH4HdBeLWVP2|d<8;9&Z6C&xULWb{OK=6*?Mk_ zmQU>>0(tXS(PuY(FttlJ-~+6ua^j!pZ+sq1!6v@S_xDAFSXLyGBe`O!L1xakW~=r1(1@!huf&{n7agZG1!kdLvPAc%tch57!WQte zf+=X1|Dpp8LHpp#r7gFoLFhCjk0~TIld~`yUfJx`$eM|`D*hEVf&cB^qXW_5wdz-P z!2Nc&g)8d!M8SMS;*dcW5Wh*aSlrj}=fFDHTnGJ-#v_A7pumt;^lgNT26Rvp%VKkm zI3DvwEg1JC<0A5AN19%!up?NFcUK-c0d_ohiNCeHcm?Up2Pv$V)?^VO7 z86jq}skKF?Y`r8l-ej8Hk_*+E%7j_fJrq~60PWmE_N)u0>iK+?5}1*p-$CM_;q9-D z9(0;Tb=$vB-F5Dr8)NNi(W&}DSKWL0IYF6*4~^D2-3qU2$$z^Uh5ao7g)^4!;6*x* zUnQFdlF$aeE!p#Q6wuQza3_PPh_UCJ=4jn`6^=w7dS<~(=TQcKuY`AL+cXVUu znq{oac$XQy*~3ck%RWUGdWfw!k;*K9wY!+>$g)Xj2~s2|fJ!=ab}*PJAZoBO`d7@k zX{AwPSbTiiQ!#kW;e@sh%EDU~1^!2Dyhqy4pet-CC}E#kPanW|lE&4)e_X#V#(?1N z)F1;cjWV;(p5r4q>X1xsGw1eK9{{j4FIQ9Ywjnryk8n|j2nRM1*(t6y_bdLYFc{;JAU}$KQD!5WzeWg6+h~LR@p$ZDT6f3p&%9 zF38iLbD0bE>d{kf%@--FXgnP^gD^SuSEQ=`C$Mp%{azAvb+$wnaX>iCaJWp4hPEiN zql&1#TXgfSXr)r#eB2x_ETbW(X6AR}oAhNT&$>8IwaPt{q0}i&@{)^hZ~?rrpyK<7 zK6~fucam=9Y|G1s344nVD7F}A5gs!W^YB4E{K;}Y<~!e946c00K0?F5z{9dO*n2d; zzmIMilAIUmNq_XdN1MDGdlEK{FKamVzs;lyTNEeO%$kZWeT}lbXol2}^5=_D*q7sy ze&%y2!=kZc*td(@5-B5ks`HASof1;|+6&Os7*3Nx7(xBRURCD7bN@GSL{6$>!Y$=S za3gAcb_Wc()_$`HYW1d!`3BN(f5}ZnjR`rR2ocw4MeFLN>h=9B`3_}$NWy$)=zusq zD!0W^jx3Cx#Ym9Z3{*$UU&rjz>Ehhg3PBSQgDbQGWD`*3VY8Ma^lieE=>Wf9q#H~L zt!Fynp%z_OSbxyG+3e*+d#z&nTR+fAk^Uk>Hru8Z?k*g{D(W?CI8J{_8p-x(moH#{4%td9 z;@8_NUOSRIKM=8!h6<<`nL(tH`8DQT;!#$_qo4*{d^D~%ivaSOP<)HcH9fxzSw)A@ zKsZuB=YUvFz#VhSrf-u2o3nAl8d_opRjph9d7lGpN#mdNhGZm6=edQ~%F`dJS!{c` zj2%QKX$F*8vWng^1pPXtRAE_3UK`=Ea5MpI(zp=*_gRp>{cY5pzQYjOu1nce&lu$_ z^(jNZu4;|UfP(0`&t*m3Ee{uEf$R`sqcX|sW84s&dSyS=DJy?@XWCV~gq~`~(6Q_n z6ZR%;Fx$d3p3fD6e|gO(mNUh!U3No?Q4fp&R&+FY2J!r89u1f{lx}=79t^ zb<)TQ4;o}xX9Tv%jQ@Ra7+g)tl^q?BK_W?qS zOkv_qZR~{tB~X*QNUf0+ZH_WP2U_vh-_h|Hu>TgWsRVb73Z)wY<5c)FtjmO;Lta-Y z@pp+0GFhx|@1=TwU1TipPF)c9FTsvqR*p?F#2|>ZqJQECK9!02Bf);pVq`X~vJRDy zQ)JQ>sfNulro)0ZO>1G=1Vd$7kxz>E8xVhuKx&yoKYArq`AvgcAdYVB%)hbe>Idqa zKb_8-YqHYW9V)5M?Cy7HV1W=rJk%4Pnr7j4#1M+=?`huZ^=$3`i~^m`OP2dh$kuBt zO8!;0ZNFlzLVCjE-r6qC#<>UgYpHksTXdzC7_5>^e_HQe-wHNU73DWf^JqR z)SF0SyZaN2oJMc#-ivmjDPo+!SKcem08c0xYnQ}zU``Sp+~mSttK zo=73%w*hnTE^ZgPa0w(;epm9UVDu0?_@j#I=fnj(10V^TEtlcZJ)gU z+Dx3$*q$9nG_SOgF*auHFyw|3m^{xu0XL&>JYWTY{Fl;>gaAH2rdl}`o8 zZR0fG03L^MGAnR9tpbVYm3a~bK=xldby!4W^8(2uXB1xX;o+1cud2F1_t1!^KfIF~ zFdLI#xpYF^7c~}tZ&_+Z>{C2gOzk@A4v7Cd6XggU%RIygP zYn)8xIBzsa8mT4%N#3g0jkLcGjA&XFI^H_c=&6TFKf2`(-D+B88k9*^<6Wl0N=Oni zbHwS*KGiq-LF3T(~)9CGa_}0H!5c-s&mP><@ z4f0{^Y}*cRyb%a%!~1CKr*MTcvu2@WC!I3XCSW~X+4uLZ(D|v_^L*uKFf}U%no!uP z+ILU6o-Zz*I>-D|SaQ->sOoRl@ctW7GnW0cjY5}=TMSUh zL63;C9AUl1qoYbhjS-8URb?OjmrKX;@|n>Fc{2w(DTrzgW#YBYV z{j$M?D983#mSd3%q`w!L{EKsa%Zq}0dtRf1KIcRGSfgp%_I)CejmFMq!%e}INEile znbVi>^p3(EaaR0a!K7OU6&E04otczH`C#*i^M-_GRi!D_MQXx4W4mKKPqCw7GreCjIiw}>V|4pQL z?7uTNEabMARWMEz&iGp93wN5SRArKz4&oBEQ%B}0nRTIc+0vm#f9giD_I3w*DJBRE zOU2{;pkP)LE&0)zAdKldGIv(HX$C>!p+*Ox8$Zb;6uo3KLkcuUJ|=3=a!T+$aP3Fs z+%zGc7t!Ck;6@EH15|cD^J~K_MC)fnrFYU@RT-dx4AS^omzezYd{;=`Gm$3?y%`h| zL^6zi`=Lwu7Lj5J^CBXW|%|w2hlm zzx2A9Cd`t$wJ$TUQ}lWhF>kpf8l9LWjz?e)i*2!{;UABq>DrKaa0wj`o3e?Dc+aN` zE=zs+MbIq21Lyjak_c?*QzjO^j@TaURfPqpN%+n7_TutVXRi?-gslult-+X)4VWC3 zlo!>QSn!v{qA3zq%Lk^^o=@mPjSWwzWKqI+Bco2MgU4l@1gWD9nsIc!?(^ zMuZZ?Obwn@TdM^#Qmohi0?SL#L*&YfD`l9ygY1<%*u~JaiN9SIg8(ie)e6Hzzsr3b zf8~}uN@ynzmY)wvbz;YC(0w5oF8Q!WwrZP;C*!v+27rY3m)|@7=J(ikXU4U%ivO#^ z%O5VGk~|zF;IlK3mQ;0u^Mb#U8%3fyj2bwJ|9lCFcQ5gy0Ayea;peGN1q&j1{Aoro zwrqyHwYMV-`?Ea!j3z=LACV!abA34e{+b*v{EP8(u7(Off4GcLkHi{l5p|FwRRI*; zZ*%gY!mla{w>pr}$-;Zf-{}8qe7WNxheni^GL@aQYLoQm60QG@(5)DEwS@ZTk2ye+4RD1D;IK|`E~J%!57o>Q|$a_dN^cW7KinJ&&u3xB>FmQ*}~>1 zBMyL(_uejkWR=Mz#Hw|ouE(l=3v*QjZ=89=g&A@T_n}`pHgUr!2%e7;8%1$nd4P<0 zg7}7Z=--8_s_NVd%8kPBBy2Db8GHq{pW!u%jcdGNBN~PO6HAhfk3&ZR{wIvw_bUPS z=*wc%w}?C6dtdnSDq3kb#GRg7o(yqhBnT5_x->g;pR>3oQ3!E;^@+XLwtzTKh}rkQ zu>@m@-M2h61ft!G5RQ0ZAys>5kf#S~2=J{;Gbmp5JBHlQ%!VhX6Ej7CHzZ`4WeAeD^!W&C*f_WNi zhna@&1A(%zk)0yElV~zFm>!@$-s%cqDFL=s-d&uJ&~ z9c%wWbcu8xsVVc5DhEr3wS4>hB8g(+=7dG(VOPCu&pf|-z znlKV}vPy^9%V=^NSyS+$d0%NU0d~YV8Owmgy{a~k%Mt~h5Yk;BlCCQgUqA^;>QbVH zg|Eba->p4T7WS3(G5hUXYiTfb8r0}n8SJ$cV~m6`qZA zcv)UA_fmt%gachTB~lPrCZwQdu?j65TjcRu7hIM^^T@UOuo8)EfKC4M&T>uWRwj~? z?Ubq|suA}r)@kZrH&kgaNxo=`&oxzCLYm*@$;Ab{6`5RO=Q#fVtWS~SXOH@%xsC$(fGZRBm+{Vj9UD$ZJ*LiIxXw5H;en-Ku? zDLTn1JD?ur*6h}(eC$Ef7qJanCePz=DBlu8UH8NU96Ww3pyHC9u!2b_ew{&IOAis$ z>>35=WNA>H8M43$6n$%9`$&Elvwp0t~h1Q)nt<3l9lDWmVR<*=tXu){W>SRrv_`e8%H zf#bsMk5F0|SS#-^slpz^lqi3WnRRvxYJ&h7SWfyT$J``b`n9h`Y}00;u%);xNhsbR zKEwle61z4-bh$oDXfy5$gGmh{NG?}aCsU*uJt8SoB#|WiCPxxX!k!PQ4RG)RnEoGU zUl|ow(6ouWCb$Q82{w3e2<{r(-Q5WgAPm9XJutWhcXxMpf-|`6AdKb*roU&fKc5HVW^NRQ?#5!0^}3T76sP1J+O+wQ}36Ozz_Vp|LMoR3*cE%oqA+ z=*X6s03%MtgeTy3hfK`S>vfjqd&U_U+w<0FDgCsA458_rJD7+K+JW2#BFvp3M40z} zfo%BV4WQn^ccVHraH8`jY~+Fdq)EPj?E~wr4U20+Se==t=lY2zrI}fz4y=9x91?-H z>c@^TpWzOV(<=Q3R`dRKFm69p$F@TYohxf_4p_{mml*i?orSqtR;PTL#yBAFC0rh5 z{yEzhwkq>3BqQe}V(020POU?V57)t;s=<|2KYLgakV3IR1%mzkaKUFbYc4-cOUzj) zuv5(p?YWN=yyD-G>N19FK|TY`nn2H!9c$kIotiJ%|BKOT`W4W@dr-6&Zm4;Vv^LQv zbTlGR6J{X98;n8k9V*wLX7e%3+A^VE6_1`F=OeS0U-HKov(%Q?)*v~j5t#88^-35~zC*ZDO?pf-N0?5af<>Co&x87#3Y`}84Q z2gx56wN|482Wpkn_^BI?>gXPb*wxlThPwZBnLg+nhpQFH;+xB}FE;+9rPH4*k{UA0e*T2(-4 zqvc!1=f~42>PA)O|7y)R+{yaWEfqY`TsPMitygQQvD8M0+gu#gg7Rdd_EL)jwYfC~ z#Bv78VeUbH;pr$Qks6owGaoH^^DD8=%xjo#Jy0b4@a)2Pl%eMh*QRrlz#?N2q^7>) zzx+On8xA!3);xg;ccwXOzkY;_=s};y8ROaH+?HJHj7sO;fI$==NeUkFK_{)v_L&c! z@;MfyS9Cv9bX!7w&}(Q7XF~p|lVSE;c^p0jLWWtUN8!&f6Qrkqg8BA+=VJ?>P2G^qOYMO+YpXDJ3bNkcx}j6vhPd#NRl$z z>Z2?`EU5r|X5~0UmH&;HO=r$g!l*fBzTF?09H(*^3{K_sFC&a20^0Wsv6=9Av-?c; z$!ARnOgB@Kr0FBIP{GuIH?#=$jIN#5<25M0;!mYiG?hcun-c3fQ~iWaxVZns_*rMY zu$7vVQGnn~D*K#3dj8J|)})|54Fkh1<(mD_clxnfu5-JK#=g0Fz1ZW&{*>*%=+AFI z6CImaH~OL#)}FQ>C0oHh;`~C;tq-3S9Zk|dgTRa%gL~rznMlp+EAfOfmc)m{nK(WY z&Q00XnHEY~8TZ5RUEzY>u1)CL```2l?jJ+&=+OdUCvjSeF z@j^+5HetNA1?RY=Khg*hzSo@=FG;GMnAW#>O;r0BP){;ls*A_6a_7APndW^N+!YTS zHl3Edx^ev%9d>&i*I$);y3-X1+{@DOb0aa{inUkFMsj zabs3INwQi8Jh`&*i{H_&fr%a5?*Dkk%~=C9dKCPNoAb#&AmfDoZPnsw?3`za@7z|e5(#C3{?eMBvu~y2huC=Gk&`Bq* zv5r+}D9vSRh9s!cd!V^cOWMl2q#RW$WHIU4`kWJ$!VGbKwH2sDY^GhP3Nh|B$UdEB z`TsgjSID-=R%@tJ{ff$cj8Wgl)Fih?Sw)j1P|FMTIWvs%S3#6SMB zBv2dBTwfep&fiU_uR+df1?ucS>zN|L-r73i z^Yn!z2uio5ob=}x&6gbOH3K}}qeNcAp_Fc$-#F65hreSlp<0Zf*q?f%vN843yWL8h znW$r6ueK60pzE-Hq{9jN!j^?tvTa1>%@*~Pcr4Hw^jek%##$%r?V_nC1oizM)h>-d zQK4SeAvT}MXcY+|;GV&;fT^@$Xc|)Bm`9NPtz*!8^gET6WyY31bA#XqUI}lHGh!aSvwNbYVCd#B-HndPttLXJ+||$%KKsAz57W*M!2XfZi)PtAF0zpN{Q$v7<40*q}n#IdiNUXRPG!4ZFO%XXK~@kH3bZD zEb9%n`GNHECA94-p{>(#*|WscIU?4}2A{d^JC`Ujj(ZB984n;XS=sk0 z)7M(sQ#F8XUY<<$+ZFy~wEicd+lXthtyQJdx3(jZEH^O`r{Q-U7lw85)VM?0@;4gg zlgvpF3dEBqG@=maxP35LCN^#DE(oogv`R~3q0Nxpvn zFw5ODW0*!cm<4sWKNuS~GK2G)yul``RE@ZuA@JBZ=zIVJK@5F3?4ljeudf zpkBwYAGGhYTEnc_bU!t88r9F@ILg0TMmn~Eb9kN02h2)JZ}Cg`{HMMKUwx`F*v>gO z>HBfV*+TtA;_5_qJ8hhwF=DP}=KQ=v$yap~#ZCN%w|YK{m}-G*%|g&(fX}6XIc=&i+3h*7T3&Ym}4c zU=vjhyz^wx55Yh_ijUFBDIQOtoxuwX{=Lm;VgC&!*z2ShUlp9^hfz8$c$lxqk8aM^ zIA@)>bTB)@YKp%W)L7e&rY~L-c{(L^x;A2G10r6Vt3#H?%<#^69v7_K!^#Tk|KNR7 zB(eHgJ-kE|FLyJ%v6b!9%^g^})&Xic($JeNG*AUh9TR30CQ4{9srj8&AvV2fzSe0u zzU&Fr)7is=&WGc2@Dmqf(}D}y3Yd@QGIURwevGC8w{wMj1PQ)5C)^?XuE<5qm6et; z3(l95?ff1T;vjtEpsO3BbSK$@s&Ly`*+QD=sZi8#IA_*pE0?Qn?)YJYn!FWe&}H^f z<{6bAEFIQuFxkURSdvPYw> z0$ozB-*l$Gs5|T}4k+p#dxnIS9AUh*=@N~H85AP;(iifZ7v{&A{|}eE6(DnjLK1y0 zNioWA5Xq09cp6yoXy+|;fn>4EXeVM{BHa-&iah2tUgK)jnNu`>#s4Z~h%X<*6CBQ+ zQ|0xJd~VNTPAtT?-(H64ODxB8%NO#r8!qht(WuGmJiyPxXP!Tu{BLi;Hqn}wRJZ4g zR}v-BwHV^Rp!NAV?T*>tWK>c>O}_w3SwpRr3&&x4`fOWAD z_Oq;BqM7;D2>cm^?q8}kTz3O&KX*(_+6dWulkZfG6qpi6gYkF1b^KDzW4`WL3)$H) zYJ;Z`Pr6$%P=MV#^~LXTZ~gUETh-rzwxfAbYcL>tOSbi!@~Gdo&pLb?rq-ULhN8D! zaci@?R>7;=MWMm{p(_cRff2Zsn-D7;ws~PF?(|=xiPEt0L6PxDWnw|3vmUw_r>R7iBDdPH~Q!V^rLNc@;N%x}}*=AGHLQh#-%h>HC3s1pUtp+`k&X!$*;$ z&)nMDO+XC-#V*7Ng)O+m%fF_j7h0xDB`48%|AihDRC5L7A&$j!%?G8~-a3h4BQ*+` zW|Mr+A{i3K@Ww~1ji5T2VvqhFETmc9|7CJCt`xQqT)am$||L z3bD-)>(o>C*@E0$sJZhsktL>dF*CV>VHe{YN<;gUa1_fwI;7}GW@*eRGigp^>()dm z&P8d=X)|f6n1Zw=rEU8e`9&c&;*cB51(Z+gNTi&^Hj*s>F($@b(}oZVtKYbAg=Lyf zzo_c-VT7cZkeoO{rH|gUAgsE6i7fFIWfqKMY#SA5(sDdFQMCpN3WfQQP?9`6+#?Pf z(V&bn$??gLb0K4s-amijnr#xDh(XWllTxhJ5UFfg{lGVKAdOT3hkTo~3YFD?RsfV+6ai>`;7R4~)zPhq+ll9>zrH&ZxbrPMOxCJp=W_5$p zxZK^B8wXB*@=1^M6kb^z$8^$^_}G_xZ(~L>s^OG*^$SKSm_Q$1Y(kd5@W+VjS4MmH z7uFmP;+)~#zs8QiTd&98CZU8r2Ys0FhqX$oPwJ|r4%fJsbbynfb*xa2JHQF=|gVlCa{&iiGhxdJ@g@-uphH;7VpmQ$C z(w9+C8P`7uQRn2kLv>>@iEV}lm0LY6lZ9OvCUl<4UXl5_3a{FWbs|5ARHY3lZ*^oV z5O2bpf}r#`11yp!EElCJOmgqSt3}Gd*3pq@(hEHsjL2Ll>~5ea1yqC#F06dAj8lWb zvvT$YLOHHy^y=jdwl04V?bjp9I46%2 zC&^|z!B|^{ty3ueUBpsa?-Q557pSffN)g){`iMdaffe~9R0j3%7Yz=)DLlf@+7+BQ zQwtr+jk?C3(3SfQEWcJP*H7>bBc-vc7b4?it10efTCFvBp2S?e%irsjpi=CPrb zr|_LGr3#;vcg|RmyHtH?csk*rL>K%1W)6K3hS?(ylA!B9C@u{WM)@&c`oPF!#X-c! z3}_q);=0szlAp>3w6X#ijs2`nI=ASzzf4a>enJW}*8dP(Kv!S_UE%3ssg6cDO6o_1 z8)h|3N=p2bsw=nEn-}*(mV-bmfPgma534T7sGGoU(F#7Ma8f~#3@xj46n%{>bN|Pl zU58RwDZ#i_*K3Wy7Zi3%_YC~PE#*CXk1!lB`5D?k8POn5>N>UWPB7Tv-JC9ZMP~Al zIrAh{enh=lT6&Mxp&~ix?N^}T_S3O1**Eq&X5>lnHs2g7lDh zK4|b+3TN=qk1FI$z5`ohjq_2;jqrV}16$NvcvA+i+qold=*iTNDr|q;pK9cU^Fit- zRmrmyz%=$MhW&u&K86d;;e@#C$uHiq@aUSMBTms}+>h$(%yb7fE7+m~oA!dXBTj1O zyd$oWiu)?Ytp_l``{C|{owhKV%AX3xE6P!Q&KF^`G=EnR(x>Nl$37k*(tYA2aMls= z^s8_Tq|MwK@6MMPKPnivOhD<+i6aFx3Gp$G<0hs*2@Ufxo(P4ys!uzU z9sbA_=;1Tb3ygIELiFnfJgQtAn81d%IVW+>m4aOGPw@SQj`al618?}G;a1Z!seU(G zx&V)o&p8F8;r1UhsdV55`J^dNW1WFG$-Iz;<&#?^9Kg(TlI@>D1AINHt808S?9FAa zg(o+%6LI;YB>-vuVQyC-y{xo=bn{#WpLA+l20)rfwpBoS1vuBoH-p@JLgKCy;_h@n zM6EB)n?EzNrR}5B=9SN6m;=QSy^9!emXSkW%QA-UP>3Ibw49|NAx`1tA}ROhbceeC zPZZH?M-(vk8-L|;rU!%9khA|a!48`S* zlrWNr42hvXu%-b*An5&Bk9rKA5=py=#hhB3FO$a&y&RYPHUOJtYJ3snl%q1mU-Q zH;_Ac1O{^tc3dFC-N$mwc@#Y&F@H^~vKRg_{n(sp-*8Y~3LhN&^@yNPF^eiOczLUAMmrLO9rnP* zbKCe4?YkhTdy7ohZVS2pQvP#OR@@K!!tMiKO8#U$awhEzk6ad+Ve@$)qdBWCxYh=V zEuzUxr{Q}FvGt{fLU754>3Da&++r$8tsv1Y4=ePYc~xfnywE2a-fEbw60ePM5QZ5; zNRX~WH5CzW=`WRAUcg6{dJWB{r(~nTsmk4H0ZL6z6KnsLKN<#NB-BXawSVT-)uI_@ z*BIy33zfK7g)2xYxl(W9iiYan)FWlqWimE9Ty}0PI z7}5PA%s-S?R>eO$$Ln9lPE3SS#+`w)=(vEW~}{Ju@pCEJ=$VqkD5Ig%q`w-WCxERVhH%0+*TuMi%A59QecYxuES z!5WwkBe(OQNf_MLXA&ePqN^+3*8348N}#g~-`4AQo$lx#S$hX*X&Iaci)$cD+2Rv2 zX<%S2XQ}Iph?(sp#gUp}^-xPwy%elX8#6p>SZb`bAQ`o;g8mQ*0&K?l7Y9$7&` zTN{dIMM_s&R;l>>C9bH&#-2)YAg0Vug?1z{mzw=cTK=J|@&|k?uYAkMVyROrNRzKD zy^;egw*6R!qd)^$eaulnp1D+2VR^*o-o;umwG8v2A=PhT0~}Pl77Z4mqHIqz*8V@S z5!#PZ62Z=z1h-;p1@3E*CPm4?RJ%NlCNfH+KvCH>C}U}*(VwESi%{lLN~0(W_Q~B; za_+c9(y-_`{xJ=+$8 zd&poto7vhhl+OuLd;PcFbB%$)yy?2oj%XFr>dgAXKv${jUI8Czzw!26?wu&l+m45H z-$C0s;)|no=Wj8%O1ETxDre%UbW8l!Qyz_HaL(zfo(ZJo(|ca`+{q6kW!1PE7W6r+ zql!%?@I#Abgngth3akDcwn?qs0ymTlT_?R`d`?K)%PY%kb|N?Q7BzHTBy3$ys|gN& zurg~hvn0Wd7{RN#<$9z0D2uwf0vv2AQtG4-vxv%Bn?rk7l5@1&WSdu-iei3D$J>FI zm{c3%q)MIA(=b`G#g||a$}?b8g31~!&h&qX6)uc$Cs0n18*XC?cWCHee*y`Q&|+0TyihNc$iO0(Si1|^H(*2Y;oArtEDpy50r z6K);fPq>&sc$l%Y5K4W|-uOsc45nxh%Czo?G#_|UaIKCqmilm;z%fzT(ZgDo4gS>a zpJ;3$bSm!iOq84k9)l27YSxTHh-L-|d4CZua@N>G$&wk_ou;Mo1kGVM6@%rOITsw$ zXEo3`<8yP?uz$%D2;N?a>f&IeER!OXlCyCF3@i|Fme`Ff)O^>Au{q_==1(KW$a*=R-W)D(F z)I}hAv@Gu7_pm6-!W!L5L*9+xkk`4YL@YbcYr9d%JQWS`C7O7o?MP#&M$6T)q3Z#J zSoCZeM_Oy@pNgkH0~W`K79*(d-TgRiGt*E`>C=lm#F%@nXn#@pKx0@|*UEK=;UTGKE=B@K06GjL90O*J0FWa&gYcN77vC-b~B?u#b*C}O}vbMcTL+0qSWjX+B9O$?yr^0}q0ng0* z^zy+A{-m%h{8q(%A7(&lRcjb!NO#LV`7Y1 zonW_<`+4j;0cCfl_vKL%1Bt$K)lZOSVmZ=n@OD%%)Uar19~Nb$*U^_~25tSC>0pv? zOG{^eC!?|lozY2V^EJxV0j667U1aRqu3Jl*bu>;3?s#fpK{2~syZZxK)cjF3nmd_@14KUY9VXDOWI<;3HO5rEJS(6CJi zKzr~i>>$qv=3rBR*AmPixHMtiIB1}Y14=lz>!7Qq!9i|oNw=NB2~8TMsmobt%FL6X zS$vBi7m!O2A=TuEh^wgz5f@+vfCrvJ)3x^Io&}o*Z3me+A(7~nIU$qiA=e-Pw;#5# z0F{H;e=$NE;DOLD&|#3iK{!jWgPN58>H8l#@4upDb|7f!y#InuN6t6iN)7&kxRu() zA>r~R4nlTT-wY}C0B}GC?Yb_GP^=+GGC(*0@^?I?t0wD138WzK-AWbXMkcAdhB;P% z9mMK|?l;0DSuKMIzKUD}85#Ni0FnNmfkkE)cU{iNPz(?xUK|OR3`Fz1x)3Gtx)31( z!}{cy($R*wo#dl6L8{w7gH54)yNt$zP4&i;yJ|o#YFnu|j(C7#s9y^Q|Iwr|M2V}V zPADX+NHvH+WaWY`4i?N|2ND1R5(WWGL|07=0_2%u&}<=(&xJ%XJM(KV96}n<)dhl( zzTQFV;N-Sazi^?D%wGT68i0^)1%3MWlve+khpG{P$nv2OQgm4d0sz7mBH9`epmE+2 zq6?X7INVcrSK z|2O8x5OMWnA>wZT+QtD?B4$E{t`TC%;jmHN5KAuVfmkw49}ysYH$r@?nasCV0Br#e zfN+V3vjOQ_6*3Nbk^kxYA3EZn+5BJ8RFVJCVgChfO|$_~1Og0ckSWX{)-bf>4i2Dk zb_Wm8n6QflC^j008AKDK=!DF^9Y8JsV$L34A?EC10vRckd1|Mz5!6CnbP{niM4V8_ z(T{S=Uaz#zhNm{2(FiBeDW&uvj7VU=9 z^0$?7yW%K2O^lfwE@(!W1QmQPcIC?-_!>1FqDT^U#wiCQaQf^ttRjXux}3V$nHtZg{r4rRLAX+ty@y{Rr63f$SQ1z`M6_V>y(P#mQb-Zb?ILePBmu-^__6jow{eIA zO2lYuVWdI?Ad>u7yYjp1ZiwTHQx_HhLe2G$-%J}qT`c;KdI*GK6HNkp z35(zmL$Z3(Bn`Bu)}|bEx~!H2o~l5mFH}sNDU{!r;PE(9+x6t3ng$=WJpv$(L)@-U z?(jLg6GZGU&R-Q#*q}m)*iJ)EQ6!775Caokr5c2SOv5cKzDCt;$U}cHi6QB| z>iy)RA1efTC)z^#et<=Bj3LousFntTB>vO)KeV{ge?!Oh{X>iW7xXPgefU3x7c?Nj zqzwJf;vxBO@qiS25Dh>UkD;qiVOP3v8=qXzoJo{PSmR6uXcQp@2SiU{HXrze3)wBA zzvxl@&jJ$rZvpx7Zvm0~w}AZrgNtlK&LEO8O4+KwH4gocxy1Z4msp6om;y;WM_Yq- zOA}@?cB^{5-92j#JS5h?#k1ZEep}24nhR~lTUtor2HY-4^*x)tH8-WLcER2xb)HE z@tV7n(Ew4JEr7YoPR&tc4jT7fGT-QL7=m5O#bVtrLz}1#?ctGm#~m((TKn3010Ce) z#gx;YJ6qN`3(2na7Ay(RI4&kwww3TN58SJFKR3`K+;Zw;0-$L1G41T(pm5mGni~38 zhUKTJ@(WfdH#yGM@L;@(8<7slP?B^>=J6gUtPdNpx;Pso^`lI!3ZF~95mRl7o~;q= zYx*<|BxWwH4LmZh4dj-bT|2dBeH@iQsx+`|ITjw3zXaPt_Hx#lNn5>^ib8ErrBKbP zY$dPT%1SjqWj{S}q_y~Dqf#GcLyc~xZp#r@hTMZRlz6SbLjg0PRN_bRiL3@j2%%Qb z&s9zKM-N+SqA`%*mHE`)-Gy^bzgl{WwIvAD_&IVRNh8V7cj>bo|C)1ma)|X(!Jh*sT29sssymuO!~ig#g!2`g0g@&oKMCl z=!Y8;(qcH3_-(OHKfLC0z_)+dzEH!AL}812QngJGllpnLuuhOlx%_+8!i3a!j< zjd+qy&42d>Gk#C#$<)f{P1G9T{ry;9CeV#r2@--`SEC&lDNWsATd{w{MUxPIl5Xv{ zG9}4&S$Rf)LWYKLrujPh{X1aV2t&+5RLg+L4+*Qbn+etR^W{P%PaBgy=WE<{BJmDt z8kVp6m{FJg-VE_s(jNTB8vwJ$ZnC>ujD9g^@iHfsd*+{ zYL20SkYS>QVLaFJx`yWr6~(YFs`{8i{YTi(sTFcPZvz(dfvp|c1AW6k9(maXqzY+W z`vVaD%5e>j~)COw!-o$iLegMe8^l=kGbBxQ~u68XhjzKAgs3pPNR6Xz6djU zF1Iwd(dX3(9`uJH;V?>fupkdub@af6sSFD6u!=)=`{4Wx{>6sPyd&m2 zL{LMs9x`_4$Rn#xxdA!lV5d3XETiaC+zcyq&*_ww^F|&i#csc=lvJ(moE(%CIFByJEs5%VCV&lr{xaGLoA+Dczw0YjyTI2XVzfUjo=Uxhp8)?pVa@0RFPJNrh z>ty5O87nkS&I$F1I*9~tvaBBM4owx)|MQOYe~S&MC5$IhPh@8JMJBZ*UOeaJU5t)7 z(#fsG$m&Y2jw6+lx3|PCF$x1)`n6Zvb92J4Zh1HWlTe+Bb6kei|FrQX7pybQ54L8& zkQfPbW!tHGIcR*6`7Q2MSrz758Dg5PqW8j>SDAf0olL9HB_B48*CFfmNCm5u+C+0z z=(G#TikU_ZRug(NA^WsblI^4SKx=#ui)L1L96W}8^4?fZ#;jb4! zk%y=ReuzE}`yrBf7N60~;-6Bzh}ke?&NfSo&f1@zda?H5S>ae&ATf^qGyYs1Me2Ql zu^EMY_91`LXY2?ZZXJ{-Qwq$9pb8p!Gui%IYK4PsFCqdNn2%I?&>uxj7((HEZwIMG zKS^vU56}z!$sOML-ag&;h2RJ25=yGf2RT9lZh}e5O?m)(S`$78suHthwe#x+Jpn=K zhfop>b9pxgc=YeyyGt2FNK8L-<5;!(B$D;d>C4kA>Ru~TDcySLS1OWnVc2B-_Atu4 zM%&CA=a!{%JWjj6JlFp4OpR7&{t*4^c;R>J@DRz|7erMVEgDVrQhvD^9P9d9Z5!@4 z%|cN%DXl+w+Xt#Ex(y18Cs0|Pl68Ka>5XFcpFStaE%aYIB3rmsP| z^2rD^6qWttQ7~u#+x???90bZep=ca82YvZ|R5z|wk!#eobkNmk^C^g1;N}HJU0q2D zuc#H#(=^VQpUk5)ESonD z$r>VT2VMOEI7^XU6h$TBDmK;Yw65XH`|JD*

5yGlJRiWghdC6=U<8-zii`XOn=l zLVb;h=xu*5vDW)Y=-D24Y{BT8Ewkj+THh*n1 zn!C_IHZg&p)AU4Jqifby)*-hmc&0}sbd!V&UnbS z$_kWXSNuE|(Y`e^#9sdsQ$im9%`&@?nLuW9y@VKVgw{3i<7^-YYXX8;IvF{zG1&D=8|Fe%|8K z{k|kw9gEqmIhicm4S><$70i=HmvzRvHvg)~6)VXxv$`lDN)q*Qq0zi?^9|2yIKS_G z!{H;1i~ggQ9bZuTOO5A6p6%doMpIGEyxPBaN~NchrGo`)=$;N9H{oL+-_;{|5GphZuNQ=^@o04PYL|`gLGu}xzq2%zpw{+Y`iOt zMgzgj53O8(n-ZF0JH7o+{a^b{ZhpMnpNwOUmWVJ9l?>i47I-R=wNnKO8%mJ-`af+= z$5w5$-DQi6G`%ig3OqsHt*zuQgRx{nd~KcWgq_dlh)uH}pQ( zH`2J0{N0qef^yIRKuY~*acotSO-<)TDF-h1s{?^f^E&sD;KFa6`m zs@GQ$x5u82h9ZGCTNfgJ@8MJTPtR<={)6%F< zd9TuFx5>5XCOJ?#VR(CYe!S^Q5V(VX^>&tk*e-edYH|>hZKtKwfhrtG#*7#IKF@sY z-Q-xy=Aosu1MloD?AQ5vz1kF;?e}JUrN=|EzsXwb_@vaH6975s>GddsEhU1Nck?`Z z!(OwlDQ9pp;N|3?dp5^lU2wevMM&h``prry_5JnQ-RZeE)UnvmKXrq}u+!)9`sVWH zaFdPv-Q%$HXTZt2@DoqltNq(w*~^{wdn^8jUqWv?SVB)W0*}IP&-7kzub88Bn{T(* zuXUbHO|z@yb>N8A+nd-;K@qgJR&vKq(y_LbE0e2z{OzZCM@QlJv!=mLf8Lg-C#O0j z;ebc0x9jQ4DtlydrI{2jIm}x{GX)_uCXDR$02UJ!ia#R+D!+XXFusVM~B$ zCy|q*e+6B31C#I@rO(SNrV_c3&sBeuQYFUd;LnrWyYaePs>jQnW6%0$A%8(kgGrGo z&sen!@M_V$IJ=Idq15Q|NrZGATekTu*z@`L1a$v$b8*L(bBkFe+%|E|v=Y-PzwvVU zbhTPCiXVCeZh}k)_lN8Km&>!&vxvVcj+Yhpf7fT5w(mvlniUUH{rJ)Ryh=~<@nu;->t7!S)NuIbUvRw?wpiw@LmYt(I$Xn?$1}XT3-iC z1Uf~$r*5ho$n-(aH*6d2UeD%@lTTHPkZdnM$oxoub_8~45A<$?UcIolwENzy-mO|a z9r<50#g0z-K8~+$&t4>~UKG4-JYPrTV0cbbZu-BzjN@Oli<1RT8w&c@H)jY1zV6oL zWc%IlH$T6%=4|xM0??i}A6Heb6|Nu0=keKIkG0r@-%kd7pZ1?)4LiJWgaYqQUQ=Q_ zA3i^`3%yjQ{q-zA_Kd}EKO61F7rot@KFtjjzzBG04w!#;Nbvw1J!u4wMGJnW6==gHs zvF%t;m7>&nwc)+lx&GRD-r*|bY^Qhm?vJ7~KL`n8AAtU9!M;V(y}ZAx6a=+Qp%ULU zU~FJYW@TWvup)}Q?GiD2AKH{{K;;TY0-TwE7<`XuQHwDPf4uGbqbO07It zzFQZF__t}VmI7nScdXX@Rx-%4Pni}196gjt$TBn2*5BOdZv5=C>Q_#Em*@3upPFkE zgjU!cwG3T}PtRon7aZ4wo{tW=nmlAN_7?(f@|UV}?w(&eo(5yh-`*okANyj>^Hv1~ zt++A-q`@h&r}bdB2Y$|Qf7^9-R)myTUai%E8<2&E6iDl^(Y-~e`ua3H$#=z8s5Ju7 z5`TO(E4iK1_jBX(!irsEg7;ZRNBX$RG=RP_dx3{`_S}bqQ0GTMP`8l>9TItnwz6XB`fdA`M%t{)m(u0+PP)D^De!s??T2m z^;0&Hn3#f)*)@g*BJ_fG4z`WkD(SFji!LqBvMyiqG;J%>w7sfW<7p$v$tTxPi)0@ zZVhs;^>JY*yY*<~FMn?0U2!)aB_St2{EgqxVBouH(PVDs%tyK^;{N0by+XQ5B z@noaUo~|||i8{D985}7rqQJLn1DZEdL4-a{sf3$r7_8Zfo|7ntdZ1+;+cS4xpAL;x zE23H0(_ANg-wu1+JA+1ySWFP;Owrh5#;SFEYA!Xf8$I4)9l~k)Ti0llF^;%E-(BfG#qdvV-vvURr z%og}FOHARSRo`}eTP z#!jsC?|?VX)76->-D?|C{*K!R6r_u+<+PvM;ph#YNPe1K&1wK*vXSLXR)rIvpH8G- z-TYqvJlm9n{k*jn@~R6Gr6v4F(*?AvN0Ves6dk%1PkWo5sxpEFOV63 zYtoaH6S2O#%SK3XIHfHoeOVjLZc^kt8%%%89Hm7pX`lC*VZFOEh-uld6?W|WTNj|% zw3zKdq)1mHFl^INbG`V(FqV*1f~dQtaf)!m_5L(_Q_H2$S$)Le(ovtE=h73g~cA>TT<|sKwVh=bJq!8yu7K9HD2+ zHg86zy<=M9!>ub)&ac~OPV4#_UFe=Iu(7^;-lEx1ci}LvJNf5HLg3Zgg2XeT&hDLK zv0wmxBPwX^iz2hpb?pmxE}d%Es)KFMKsuOj>1+owIpmynu`j#r~sxOEQb z+1R86vVJ?F_jM71Q9amceAIU(2O*G@A1^O}_b%H4oqT2m0l#fXPibw>8bD81+Y3I| z^@e(cBpW!53kru79t%gfTI87bpt{blAFjty0Ly~x`rS_7^QNa2q#;`|m~^91q$H<-u?$I_udM6f zj@zi4_-u7xK&o#x;(^;~xK;WfAA6+F8Kg4e&9gQ^!GqNIls{vYEVg;2{8=ulT9{9% z-~)UsrX*7|&l=%TR!Jk6($2@ez%kSwT}>PW!tC{j%U?(`eKMGH<{@3=&In#|_#=*a zmK{cj3>@#>5ezA-wQ4Qx^4O*}^ev2gRO0`oR;975}{7)i2Vr`akRBAu_Ss2k^x z6-W)5CW{lig%`K@?Flzk`HtW+4Ed?RMPSQ}o+p%~U2rTjw8cBDe_Hr0I^ua!qT0^eJElPs+~_%$@`e83lkKCdJYsR1;-OW7-U00EO(k+k zWLG@SA0{0_z9ZNd5Zg_r-E}r_<72d0ZZC3%ixWsRt%9YX!k|Ds4lyhrP5baEUaGID z#-_YTq=?#onRXRz)}lE=To z`Q!UzR9m(kt^XM^-A*-AIp?yl#EtIHjpKIy#X2~c5{2b7amksnZ<3d=t4YwfAWu~WU1kh##ilP z(l3ZZ=bmM;)P1#6Y^{0nX0~Rp?x*H0(iAS6ah|y@^&BP7r#?7|vFBs#u}-qC7hxMI zWSO|Uef7BAgXT+2xJagsM;wly&xKzns>INbk;G#8oA)%$fM=+GAsO1@@1vAqEB}0e zpP2QjxxdB+_69y39Hp-l-e!w%V5GP5db!(tMBoy~w*sCVYo+HNXd6%=OX6JYV-{8G zo+!whpfILIF?EX0=+ev9?D0D9P~6)SlWH;RS?js%*V2GSqGz5fWp>syy!GBdT<6e$cRk#$`aIMf>i0cq``)ab@Tp^M2%h-)D5(~*nq#0q-7Bl^3{EDu8$4=Y;+I|+u zJ<9u??s+SO4j5k0AMHrl%r%*BY|vS88mclIxwwcg3b*|5l_jkf)cSFi+J74^-M^D6 zn*mS=Lzr8XT~7`MMlaUe8jI$B)Gah2YVQ5y1}`&tbTrcvKQe3{hZiBGVe7rzr;IQ) zUI-h+$_6WwhtvF3szu(2Z)Tuy;<@mS!xC*V`GwvviANI{0Y5amWReETpxUT{kj1eglXV75$Zt6xzoL zS(iJ=%97s*^rQDNS{!ve??R9oe^K_KdEE_dKc4L2>sqR|A5HEP`luT;`r-H|_r@JsSiZevE^x`La)7RobVxNHFkRVUf5ykQ%)mr(G?|BKZ7E%5mwakxr`l9 zzt*zPtOw64L|-E+0uiK*7*JOO84f4E8c9{8`ZIT5VJZ;wnC%QhudxkRkah>j_A#i9 z9g(2d$SKey;8+bbSUMtz2nR9Ca9&)zAh(3UBIGI5 z{^`42^K_EY4370{FBR4=KQ4vWg15VVKtJ~AjJL^(w8%bE&1z9sF?Lr}a1C%{*UB+M z*M$UrJ&#}x^cxx>DQ#JgUp{)VEa$QxpJHraowWB5Sd zLppDqfY|B`5=X68vo%_Fke4=N)h5h>VVK5da`Xyqkf|1!?mo%iAu4bhK@@}d>$S%j z?75qYZ|B=))Lc(TB)+L2*a(-mm7b2Mk5|!8p6IRmcgbN|Q(}{=lJ=gXx!+zBM4{|G zg}3@NQ8z+kLUA5oyucI-L$kVRe;C%Y)0r#^SfR}JG%LW$MpwfnFi0vpSK z7TL+{Yy4E!$*f;sZ3vT(H*1&6G@Ya7b(KQk>O{GXf5^iB+weZHO0dk)xD2I&bKrct zaX%2TwMI6-$@ISoEH4cT*%q;Z@feVyA?z*i{1zDL0=*Go$2N|{_FuRVemfMZe&?!7|4PU~$bZB2yBH=6r_fLV;3VjNq?)h?r5|1S$cEiz;U9 z?6NX5MKW^)xriGQMx}0w6SZ_>ZX(XgqYsSBO6|xs^;(-Z%DbB6Gm5~(0NwJ4+dTT9f zFNlyIXT{06^i}5wjf=RM(tYPn^|XF^Cg5}rpirh>5TR9?PgSP2f`IlH-2@ZSxR^!D z_lTdgIfh*0LP7I#z`z7~7em==Ci0z@X;6+`#cYAXl0inkx;zBuvX}rRawmRMSQ)ns zG|v2qifNEB$A{i<*u3tyk7}HgkW+i&CUxA`GN{-SnYXCVwcx1=<`l&a%ajz`DcJ}K z%Eejna<)kH-yzfuPKJ~;%u`1o{T~z~L2(+~f~Y&g-Wq@gmYo>YIw{kZb+a&7suZN^ z;As`7VQTYNAvhgvuFHeTH;jpSjvNVdIUmy-=!`UIwa>Wu)J&vB&U6VO-SC3nqX|pG zqBx9&r8My^;LaZua1VCHdb*(*uAAG?`VaQ}l#RE5;WJc4g0XYFRVi5RGI!p5)qIQ_ zYO>VSTx8fShU#K7SKn&e{>F(rz#~fGT|Fiuvtp`bV=5~n*HD*04nujs7>w)l$f45L z>2@Zej9KNc;+Z5jat=vE{*`UUaoPO80(2pZ-oC$+M=}IXw;q!szv$T3N3b1Y`o;yC zM=i>(47;S|YBuprz98JYSk{M*{ua#eL{+dbdODpJ%aq29#Tijl!7KmM$in2vA}Tu| zyjyuk0>VLm8Iwy_ASF@GM>Gudma|~o4o(4mWTOxyy6aRC8Cd{I;yVV2{WQ%BZWy~_ zBmE^Rv=0@QD^$;_SR`M-;Eb?2I_#W=wr&s|pybdQLxO$|6Nr@P2kt6dG=Y~xA|NzA zCK0Ctbojb*i~d-ETOAU4Pa(PvdKMM##nUZzpjrCcU^bf)Zs#R+_Igf zsx3UG4a7@_KwRji4jeRBMTkmWS<1%O$$waxZsb2=x{_#zf8*&oXHp?4G0uoLQli|I$z7n^d1AK-;P7yqzfdSAzSi?| zC=x^x7=LKspMdxA;gg0J^imFK=MZ-xR76@2mt|7?7bKDRvZ7`iT8b>KiTu!sOrrcs zw2Ttd61lS}YQU*ON~v@rlj1&Uutk@O%zlOaLQ;vNB%MmW7GUx*rG0Rd!qEi=^?_{n z2XdN&-PEz00O@k1xq~!OcEHl(+0(lj)Q`H_@OOYy_9z>6nCH=v=#f10+c!x2oMO+w z1EL_)tdRS?jq3=Yk0p`W5YVGZNTdgnOQ)QP(%~3WS-Qx}IODF-iz$Xud#{j@cNQ11 zOcjBWf%PYC`OxvU{}_Owo)>`^8O1LFWbKp)T(tCm0IDxcng=*SMT+*WDD>3;=Yyj#52`eYHn8nuQk7vW|TF)dzQfp!ptO_uy!8_?U)FOFYjQ4<5@G9pm zY$Ns#(qEqtJIIN8TqkF^6eK_vQ63+Gp2%&{BvG3}fQmGd(*xjt(L;%T+JmW0qYFnv z;(54<3uP&C8kkZsn^lkj2(&CSoW_zqX*AFP5F#IBE1W5psyG0G*C}N(+So|<4RtP05v_p0G3V-3Ik(n6#22Wms@kNeuOGD6}Q(IvTq(iJ@Rjd%&ntoNV>K z0RhL2hp>k;G)kY^*2r*lz1VQ+ACw0x!R5a&Kc=xT5dqi!GcXiJzfV*xtUA4xsFlW@ zWp;)}=jnGf5yW$e`_Mh^b&FL40v$7r7NY-{6enK9n?5$Nz6DM&14b_7`bGm zwe(1{pZrM_0@H}O_&JmCQlgH&T$ZW*wuC0A`V^)V?F?Z1pnxS?;-4hkAV}ZEO*B)c|NoA{t`{2F*VcOgQNoj@m+pp;kXdj>isFa!Z2?|&8= zs5%D+68t_aS-2}JVrpU%J^+Qf3A(>M;5b-5U>VomOazwbDL}S}Vwp+&@mO$4k>GYq zJ;Qd~l+{b&ohvdNAu`q@Son{LlT5Nt;cPU*ESLwTU~xO&0E# z%XVDIfH^^A#{#~=?ILnK#jsSc7F-Z0dxVa}BO1dGE1)&JJU_G&jL41QJZY3&@2g~? z5X53y8{;%rKcxIbbnX4XIALdVA8B;>?bK zh5q3JznnHlI)ChpC-m{*4iWl2PamP2|B1h~$F^blRRS;OWJF*O6UXd$5v7a=onAksO}d7aYP%1P1)B=C5-ijMkqjsz^RM-fXCk1CQ^bTU25-yXNJk6< z&)1x(!?!3xt->?Kf&rN|01aD#K!G1FBt#`kycae3K$1Xk3PDSH0> zj%*a*6nwiS!Y5G43=!-5IleyL86cSsHwuOme(=YujgP62hCt`%@{;3cui&ZXPo0+u zNZT`D_J}uFXGXMDOMG(aFC8mQ`7^`u#B_8#ia$j#LuK+II7*4NN?z6yYuqAQvLe6TW79A&Jum45jza~zi1K`UW2SH|KYO)~)uiFYoVA}$A= ziH*1E12V}e3stxDnI8^GBMNZjoMADkxJ=S;CdiYV0&2#6PIhgGVz5=#Ni z7$+i3RT`>SuT0Kd=YNx?~&Ynz8P*>=Zzz=bb|6-?bD*Q?VZ|DT`cWO(n$3- zOxhVkk5WdGDkZ71^uv_zemFl`_ww)Z4^yJgzss4vEZ^ns;TRFi^U+=Y9%U<^b+>gc zmKa^}Imtq43?{LmIK)xEPz|kTd>OSeMsa#u&6eBWx#YFnP9|lMu#ZcsgDw~&sVx(C z99W%kQuXPoaITUNR6+EaUO$&&rGzLXU|srO1(VkL%2Y7L)s^86fQF?ZQv|qT#m_4W z9t$>B5}V&yh!rZi4veFZkQ2EFnrhnyDHbiT8GHr$lr{!5Durf~Sa8MSo_MYrX<6z5 z<%x>my86mwFj`(@-W!vB%r$)% z*YrI$?TJFEJ(uW7FupkHe~RhAj;SaHSl>_ZY)E$Pb>pdhh@vzwHvqXPd=D&4prkur zvVuEQ`J}b)pVY79;0i~P;>QPIJK*ulOOj3e8eweckX4pZ5)Duwg(JUNX`Rqz%(u!) z_ed_0o_;}a$>}NIJt;tGqAp=Z_-Vyc6+vBu1WDKM3PFuF#@#xuVdI3Zt(&0`z@wr*9VT|z9w{BV#T0Jq`%`fL!H zJ)qkB44;XhF6dOzy}0 zHvemog67LIvGG?36Qs;7I^MGuliT{FZyFH;vj>f&PTDMo+rP~20>$sqqT?=7^1f_W zBoxbg$l>|Uz6UZsS{HFIOkcQYI_ScLmBbSoaDub$AJoo?3zqS#@pNN`ZK#3*FzP<5 z#4rh;*wDu?16IIoBO;lMX9k#ACt?gVu0Vgl2TH*Z#dS1M8k&(bQgNucxb%^l;Z&(> zMia3vv)J`&vGtKxV{)KLt!^QVORsRE0YwThca~3*HbKqL3HMAJgHy+W_%yAVRtZ- z&l0z?L{q7ch13V9E_ktkwCW+Elnr=ZQ|8FIbMGsGXLQ9D1N!l1R6pLaMk83~SfV9l zgvu^XN(ZqU6T>sG>hmlMjUka`Onz_Jby8x|4RJ7Br%h8C3oWKZG&e#{jRb4}as@3m zfzfY61NfR0$pi4w8s48;QcZlvI5tdA(b4QK)#(v+tuSh*3gTw8M2dct4)qppdY})- zU$T5mCcbB&q50NOJ^^hh1el(o!*F%VagvcI*vON}7bju6@LU3 zDZ0V%TBisGwiS&`I+sJ^_IW#k(BJ~Gdh_N9hMycJ6ESsZ=|r-NV`Wny3Y$0!d=#PG z3cJ!75u2qzQ+NXCF&ItIifQxI2EN^zIJCtQv@aPIvBu2biEBK2MoZlcX>s#=h74pA zE$3tBfqaM+fMXNUL$5WuexJZAdd(_!8rE+(0RmJK-$l71b*TrG?K(tyBPJnH6h;$_ zHaFA-Vk==2M=E+k#qTIB@K3C$M&38cJFbJsB|$zxr9|eRMqLzq*$rypVd`ZCE?_a0 zdKZ(n%rVuwxIk7z`eM=})KVq`A{JyCNj?_@!PL&}5pp}lLq>N68QXyP_2PWnahA6-wpc?sNu_zEn zprJ9v6vu%iG*qUknrn@W4%D?Lki>cm$CMHYf~Ds3VGJ7!fQRxKh08NXb_&B=iknT{ zfoH+4e~dk*bLc)1`h1x$nbY# z+cgFFN4}p;+r&3Vo9e+^PKd?#-q`JlS)-%_mCN+Bp`*iyThNR*8aDi|0K<(wJa~{W zG2FiZ5l%4xR7Kg54-q@6Ujd0@@c!{0DNjTgNG$2UAlB40*Md4$##@MYyUN%v%u z8f7;)?UurL8Dbz8&B1?3+d&I=-U#>r#QRdjw@_JB&btNY{jhTKpP-O{b40!v3lnZ~__8Cqtw1%rU_@fGN&owc z;z=cLmAUSWF&92-a6Hc%1j2SmVGkVQ3NU9lC~^O861NR1SNKE8ESsk4@<2>a`piL* zF_CRAxI-ChaA&f~A+g+e7-HgMD2rL*ewF5_v>i{}%6mhu`=Prz=23MiH%uG-?ja;RX7`D31FNhs|6 zQUP*z&>5$&e2$%ND=sr1%KV0xHE}^>X(8dM<1y02!hRyTT zzI>|%RavghEx>$xFouB>WEUhhg9H`%!~!Sv5+Q;LT2CO3PLQ?|g226W5MAN!!{;PY zxB(M0f8@k_4M*qiRIVfXCG=l|kU|%5%1MN%zXTd>V5)Cq{b$;xlQ!QnOZO(FP>9Tg zneLAbi;DKfhUtU^>U0XQfIE*YSk?IBKVLaKf&98nq7^cRllAODbr@e4O%zKJlSSZ@ zVyzYl3lp_l)aDEq5s*-l-}5&9h$ILYAiIgJQ7vA?ERo4d`7AMq#V^Z&d{q6&)PSg} zlRx;!P>=pDZ zn4j)`-beC?TKbmBhMk!+wEE`@cYK04wI$ddbmt6;!e+G0Iwi_|#~I7kBEm%pxH|cF z_-o1E)vRCcJY>fQo6Yl%3R8$YXsYjc=~8X&hwo11$Au)`RBDW+Ahm-IJ6O5D>>oxE z=s0MZZb5CXH-_Io)F`@sE@;*cHS2o^BV$zMbVF!-`%=If#T|`@^CwGTVN_iCdeTB$f|!iU<&Lfk!ckd_U{&8dVvh%*alL3W z3eOA1r-`K`BfO1V5pfJT(GOgs{7;CLXMN@)3FpEMg^|LS$tUp-P4H%lBqmCt+e{AoXdmr8(=BKNNSyhVEd0B1>AF>HcV z4LjMob1}HWKDcOzOQc6723l}kqG1O7sGyW#z3dE=k(znzPfP@5kC zw}B`3BK5q&chCPE^2g7iYDxnBP>534Cq?pl7iVxTc;hTJq-(baV$;9}~17p~gJUzvn zteAYE0q*deA`%nGg)VqYpZSLS;;4v=IAKfXz3=7*@tc(3hl-^IjKreTVOnl%ak?Bh z>jB#8*;Ekuvsg+z*e9+86@sVR4h{VoUK1WMjc>y^Uo30{`&`t<7f?mOi$?9!$Sy&T z7>wZ?HY^L{G*5)sgHz|=h4!22?Yo6Ae>(8kib6yh%X^sA%pNgd`@&RwqiQO>OG5K; zw74iP4(}phbjT%;^Y)1@+B+pQVr2MlrsDTXM>Y~hPNVjVLG%-a6$%8R`}mStQrfrO z9qO8$qKww!_7=plndjWNGj*7A^TJofxIBM`Kz+ZlF-{LXyaXNC7>g0`gZ@*>$-HxU ziMvcycwypeh#t=ri=a}~Z?tVH{H_&6CH}hQcb;65{CoMAfc&ztphp~^73(S0vGuOu z{$gSMLe3C2#RU-6J=Czp-aT-I@`82P+Y5?%rGEhciOzs7Sbz-cdQSraQJU-LbATey z{~D;+^#m9k1GLHhi>F@)usY7VVIF{sj44rmP2pPtk|0PvqQQ05a) z)RLO>IXLtlpO_Nz9j@xhsA1KBmTFKtVM)|Px$LG%GzUP0ESD-Y;9WwY!Pd}fOLx(* zx5SxV$;0go1Ffc`{}xT8vRAtXOEqKAo;}38yOOAE4ed4Q%n@ws zt=S$>Ink(WG?;Ie$O+jOaEQHtBpzEdbSA%(mPEM}8@mlll}xyBJ~)_nggc<0%p<9J=<>F0%_M{{lSW!dy)J~A1S2u=V=KDr z#1~_O8WHc0%n!8F{4K-3jnlTRXGgam_%V0@A|o)exd~BhZX{@-Kb;0Yg?q(7Ga?e> zP_ol_8SWv)e9|NKg~^;;HdL{Y7gZHaUUIAWP%+SG40{zb`3$`}R#}>S$7ik?O5JOP4Xd(K=1-)whL97PZOl66{l+34to* z0)Y;OSkr&Cm4I~F_n2b(28?b+aANmCbLEI!S`h;PMD%r&aWB}59@~o+n`$T_VYZLO z*yriQxxkxV_|+Fv>f)Er;CE=s3nMIliqQy`2n6^eGtZd8GxGT_(_ho{?>{npPyfhd zl(S!2F^lrTu+0qOIKKAp2^LMsy#=9Kqvhkx734RDwR}W@!ua$Tp0xJV)VAaj-(azV$gKcH=Q|zjkx1&-rj*)65lbfp*Q6O>%#QZTE zYcZY`lOv{u`vo#hcCnn8jHr{pf;2-ljL@4FdK(7bLdt(?B<89ABerP?w*L|>LQW;< zNa*E}bkP`so1-OQD#@>5g;7?jGo!syeJe?bA>S}1%NE$|_K`9k{J z5Geny>f&Kxltd*G__Al~&OpFg*bW+l(GZnACYa*tOtKHuIP8d<2eL8bXBp*!d^7!< zdioIVEby_LfQe*OjSg7>CA!}dF_i>FIp2~O>UyprU&DV!(3|`BT*v?oyNO+2yW!hx zs_~&41Ec~E4@!vz3<0|+Ge%QJjX+T`?5lc*J; zGO%}s=heZ6>ZqgTWwe4svrBB4B)`8ejhNr0pIDZbI`8kDOV}T)_S@oz?i$Z!U$j%1CBo z6EYt}Icx*FFL}&fmUxsfR*yt5m{-{P4z;@#@z59<_$`pocdG;%Gd(R_nC!bcP=fk- z3&d6CSDz4JaMIYhCCRhp`UKKcE*93gzWjI+BKLSEpAY2rHuURFs(|)C{L2w&VG-la zXwlEMguVJgyDF@^R>JRaCR+@>hRp!1Shf1{vP+cuc~t5z#&;wf^2djAcUM?b@=EUh Q{$4KsKNptU>xr5J0IrZvl>h($ literal 0 HcmV?d00001 diff --git a/components/wifi-manager/webapp/webpack/dist/js/node-modules.abeafc.bundle.js b/components/wifi-manager/webapp/webpack/dist/js/node-modules.cf3fe8.bundle.js similarity index 100% rename from components/wifi-manager/webapp/webpack/dist/js/node-modules.abeafc.bundle.js rename to components/wifi-manager/webapp/webpack/dist/js/node-modules.cf3fe8.bundle.js diff --git a/components/wifi-manager/webapp/webpack/dist/js/node-modules.abeafc.bundle.js.br b/components/wifi-manager/webapp/webpack/dist/js/node-modules.cf3fe8.bundle.js.br similarity index 100% rename from components/wifi-manager/webapp/webpack/dist/js/node-modules.abeafc.bundle.js.br rename to components/wifi-manager/webapp/webpack/dist/js/node-modules.cf3fe8.bundle.js.br diff --git a/components/wifi-manager/webapp/webpack/dist/js/node-modules.abeafc.bundle.js.gz b/components/wifi-manager/webapp/webpack/dist/js/node-modules.cf3fe8.bundle.js.gz similarity index 98% rename from components/wifi-manager/webapp/webpack/dist/js/node-modules.abeafc.bundle.js.gz rename to components/wifi-manager/webapp/webpack/dist/js/node-modules.cf3fe8.bundle.js.gz index 2d052bbe36ed031dd327d081b77c4e5e8ff640c9..8a7eb0ec42d67e41bc45c6e971cfe49a85daa8fd 100644 GIT binary patch delta 24 dcmX?pl=b*gRxbH&4h9fl5^m($%Eh=h2>@E(23`OF delta 24 dcmX?pl=b*gRxbH&4h9fl;%emD%Eh=h2>@D`22}t6 diff --git a/components/wifi-manager/webapp/webpack/dist/js/runtime.abeafc.bundle.js b/components/wifi-manager/webapp/webpack/dist/js/runtime.cf3fe8.bundle.js similarity index 100% rename from components/wifi-manager/webapp/webpack/dist/js/runtime.abeafc.bundle.js rename to components/wifi-manager/webapp/webpack/dist/js/runtime.cf3fe8.bundle.js diff --git a/components/wifi-manager/webapp/webpack/dist/js/runtime.abeafc.bundle.js.br b/components/wifi-manager/webapp/webpack/dist/js/runtime.cf3fe8.bundle.js.br similarity index 100% rename from components/wifi-manager/webapp/webpack/dist/js/runtime.abeafc.bundle.js.br rename to components/wifi-manager/webapp/webpack/dist/js/runtime.cf3fe8.bundle.js.br diff --git a/components/wifi-manager/webapp/webpack/dist/js/runtime.abeafc.bundle.js.gz b/components/wifi-manager/webapp/webpack/dist/js/runtime.cf3fe8.bundle.js.gz similarity index 90% rename from components/wifi-manager/webapp/webpack/dist/js/runtime.abeafc.bundle.js.gz rename to components/wifi-manager/webapp/webpack/dist/js/runtime.cf3fe8.bundle.js.gz index 2954601a13c51d151c65986122b242de0fea6c64..0a8cc53645d6c2e6c10048e752692393b3790d2f 100644 GIT binary patch delta 19 Ycmcb_dWn@wzMF#q1ek<3a-CoT04&=C1poj5 delta 19 Ycmcb_dWn@wzMF#q1emxsa-CoT04%Np`~Uy| diff --git a/plugin/SqueezeESP32/FirmwareHelper.pm b/plugin/SqueezeESP32/FirmwareHelper.pm index 884468fb..b7b6bb07 100644 --- a/plugin/SqueezeESP32/FirmwareHelper.pm +++ b/plugin/SqueezeESP32/FirmwareHelper.pm @@ -13,7 +13,7 @@ use constant FIRMWARE_POLL_INTERVAL => 3600 * (5 + rand()); use constant GITHUB_RELEASES_URI => "https://api.github.com/repos/sle118/squeezelite-esp32/releases"; use constant GITHUB_ASSET_URI => GITHUB_RELEASES_URI . "/assets/"; use constant GITHUB_DOWNLOAD_URI => "https://github.com/sle118/squeezelite-esp32/releases/download/"; -use constant ESP32_STATUS_URI => "/status.json"; +use constant ESP32_STATUS_URI => "http://%s/status.json"; my $FW_DOWNLOAD_REGEX = qr|plugins/SqueezeESP32/firmware/([-a-z0-9-/.]+\.bin)$|i; my $FW_FILENAME_REGEX = qr/^squeezelite-esp32-.*\.bin(\.tmp)?$/; @@ -61,7 +61,7 @@ sub initFirmwareDownload { { timeout => 10 } - )->get('http://' . $client->ip . ESP32_STATUS_URI); + )->get(sprintf(ESP32_STATUS_URI, $client->ip)); Slim::Utils::Timers::setTimer($client, Time::HiRes::time() + FIRMWARE_POLL_INTERVAL, \&initFirmwareDownload); } @@ -128,6 +128,15 @@ sub handleFirmwareDownload { return $_errorDownloading->(undef, 'Invalid request', $request->uri, 400); } + # this is the magic number used on the client to figure out whether the plugin does support download proxying + if ($path eq '-check.bin' && $request->method eq 'HEAD') { + $response->code(204); + $response->header('Access-Control-Allow-Origin' => '*'); + + $httpClient->send_response($response); + return Slim::Web::HTTP::closeHTTPSocket($httpClient); + } + main::INFOLOG && $log->is_info && $log->info("Requesting firmware from: $path"); downloadFirmwareFile(sub { From 7ad39a02f53233f2391edded26ba6231bdaad83d Mon Sep 17 00:00:00 2001 From: Michael Herger Date: Sat, 17 Apr 2021 07:19:04 +0200 Subject: [PATCH 4/6] Extend firmware download handler to serve locally built custom firmware, too. Just save it as `squeezelite-esp32-custom.bin` in the firmware update folder (LMS Cache/updates) and paste http://yourlms:9000/plugins/SqueezeESP32/firmware/custom.bin in the firmware URL box. --- plugin/SqueezeESP32/FirmwareHelper.pm | 17 +++++++++++++++++ plugin/SqueezeESP32/Plugin.pm | 7 ++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/plugin/SqueezeESP32/FirmwareHelper.pm b/plugin/SqueezeESP32/FirmwareHelper.pm index b7b6bb07..271d9ba3 100644 --- a/plugin/SqueezeESP32/FirmwareHelper.pm +++ b/plugin/SqueezeESP32/FirmwareHelper.pm @@ -16,6 +16,7 @@ use constant GITHUB_DOWNLOAD_URI => "https://github.com/sle118/squeezelite-esp32 use constant ESP32_STATUS_URI => "http://%s/status.json"; my $FW_DOWNLOAD_REGEX = qr|plugins/SqueezeESP32/firmware/([-a-z0-9-/.]+\.bin)$|i; +my $FW_CUSTOM_REGEX = qr/^((?:squeezelite-esp32-)?custom\.bin)$/; my $FW_FILENAME_REGEX = qr/^squeezelite-esp32-.*\.bin(\.tmp)?$/; my $FW_TAG_REGEX = qr/\b(ESP32-A1S|SqueezeAmp|I2S-4MFlash)\.(16|32)\.(\d+)\.([-a-zA-Z0-9]+)\b/; @@ -137,6 +138,22 @@ sub handleFirmwareDownload { return Slim::Web::HTTP::closeHTTPSocket($httpClient); } + if ($path =~ $FW_CUSTOM_REGEX) { + my $firmwareFile = catfile(scalar Slim::Utils::OSDetect::dirsFor('updates'), 'squeezelite-esp32-custom.bin'); + + if (! -f $firmwareFile) { + main::INFOLOG && $log->is_info && $log->info("Failed to find custom firmware build: $firmwareFile"); + $response->code(404); + $httpClient->send_response($response); + return Slim::Web::HTTP::closeHTTPSocket($httpClient); + } + + main::INFOLOG && $log->is_info && $log->info("Getting custom firmware build"); + + $response->code(200); + return Slim::Web::HTTP::sendStreamingFile($httpClient, $response, 'application/octet-stream', $firmwareFile, undef, 1); + } + main::INFOLOG && $log->is_info && $log->info("Requesting firmware from: $path"); downloadFirmwareFile(sub { diff --git a/plugin/SqueezeESP32/Plugin.pm b/plugin/SqueezeESP32/Plugin.pm index 0f87410d..982c9fbc 100644 --- a/plugin/SqueezeESP32/Plugin.pm +++ b/plugin/SqueezeESP32/Plugin.pm @@ -37,12 +37,13 @@ $prefs->setChange(sub { sub initPlugin { my $class = shift; + # enable the following to test the firmware downloading code without a SqueezeliteESP32 player + # require Plugins::SqueezeESP32::FirmwareHelper; + # Plugins::SqueezeESP32::FirmwareHelper::init(); + if ( main::WEBUI ) { require Plugins::SqueezeESP32::PlayerSettings; Plugins::SqueezeESP32::PlayerSettings->new; - - # require Plugins::SqueezeESP32::Settings; - # Plugins::SqueezeESP32::Settings->new; } $class->SUPER::initPlugin(@_); From 1a4a8ba559bc1648cce26c348d23c78b1ea15243 Mon Sep 17 00:00:00 2001 From: Michael Herger Date: Sat, 17 Apr 2021 19:09:31 +0200 Subject: [PATCH 5/6] Allow firmware installation from LMS' player settings page --- plugin/SqueezeESP32/FirmwareHelper.pm | 55 ++++++++++++++----- .../plugins/SqueezeESP32/settings/player.html | 12 ++++ plugin/SqueezeESP32/PlayerSettings.pm | 49 +++++++++++++++-- plugin/SqueezeESP32/strings.txt | 8 +++ 4 files changed, 103 insertions(+), 21 deletions(-) diff --git a/plugin/SqueezeESP32/FirmwareHelper.pm b/plugin/SqueezeESP32/FirmwareHelper.pm index 271d9ba3..f6fdae6a 100644 --- a/plugin/SqueezeESP32/FirmwareHelper.pm +++ b/plugin/SqueezeESP32/FirmwareHelper.pm @@ -38,26 +38,33 @@ sub init { } sub initFirmwareDownload { - my ($client) = @_; + my ($client, $cb) = @_; Slim::Utils::Timers::killTimers($client, \&initFirmwareDownload); + return unless preferences('server')->get('checkVersion') || $cb; + Slim::Networking::SimpleAsyncHTTP->new( sub { my $http = shift; my $content = eval { from_json( $http->content ) }; if ($content && ref $content) { - my $releaseInfo = _getFirmwareTag($content->{version}); + my $releaseInfo = getFirmwareTag($content->{version}); if ($releaseInfo && ref $releaseInfo) { - prefetchFirmware($releaseInfo); + prefetchFirmware($releaseInfo, $cb); + } + else { + $cb->() if $cb; } } }, sub { my ($http, $error) = @_; $log->error("Failed to get releases from Github: $error"); + + $cb->() if $cb; }, { timeout => 10 @@ -68,7 +75,7 @@ sub initFirmwareDownload { } sub prefetchFirmware { - my ($releaseInfo) = @_; + my ($releaseInfo, $cb) = @_; return unless $releaseInfo; @@ -93,15 +100,21 @@ sub prefetchFirmware { } } - downloadFirmwareFile(sub { - main::INFOLOG && $log->is_info && $log->info("Pre-cached firmware file: " . $_[0]); - }, sub { - my ($http, $error, $url, $code) = @_; - $error ||= ($http && $http->error) || 'unknown error'; - $url ||= ($http && $http->url) || 'no URL'; + my $customFwUrl = sprintf('%s/plugins/SqueezeESP32/firmware/custom.bin', Slim::Utils::Network::serverURL()) if $cb && -f _customFirmwareFile(); - $log->error(sprintf("Failed to get firmware image from Github: %s (%s)", $error || $http->error, $url)); - }, $url) if $url && $url =~ /^https?/; + if ( ($url && $url =~ /^https?/) || $customFwUrl ) { + downloadFirmwareFile(sub { + main::INFOLOG && $log->is_info && $log->info("Pre-cached firmware file: " . $_[0]); + }, sub { + my ($http, $error, $url, $code) = @_; + $error ||= ($http && $http->error) || 'unknown error'; + $url ||= ($http && $http->url) || 'no URL'; + + $log->error(sprintf("Failed to get firmware image from Github: %s (%s)", $error || $http->error, $url)); + }, $url) if $url; + + $cb->($releaseInfo, _gh2lmsUrl($url), $customFwUrl) if $cb; + } }, sub { my ($http, $error) = @_; @@ -115,6 +128,18 @@ sub prefetchFirmware { )->get(GITHUB_RELEASES_URI); } +sub _gh2lmsUrl { + my ($url) = @_; + my $ghPrefix = GITHUB_DOWNLOAD_URI; + my $baseUrl = Slim::Utils::Network::serverURL(); + $url =~ s/$ghPrefix/$baseUrl\/plugins\/SqueezeESP32\/firmware\//; + return $url; +} + +sub _customFirmwareFile { + return catfile(scalar Slim::Utils::OSDetect::dirsFor('updates'), 'squeezelite-esp32-custom.bin'); +} + sub handleFirmwareDownload { my ($httpClient, $response) = @_; @@ -139,7 +164,7 @@ sub handleFirmwareDownload { } if ($path =~ $FW_CUSTOM_REGEX) { - my $firmwareFile = catfile(scalar Slim::Utils::OSDetect::dirsFor('updates'), 'squeezelite-esp32-custom.bin'); + my $firmwareFile = _customFirmwareFile(); if (! -f $firmwareFile) { main::INFOLOG && $log->is_info && $log->info("Failed to find custom firmware build: $firmwareFile"); @@ -167,7 +192,7 @@ sub downloadFirmwareFile { my ($cb, $ecb, $url, $name) = @_; # keep track of the last firmware we requested, to prefetch it in the future - my $releaseInfo = _getFirmwareTag($url); + my $releaseInfo = getFirmwareTag($url); $name ||= basename($url); @@ -207,7 +232,7 @@ sub downloadFirmwareFile { return; } -sub _getFirmwareTag { +sub getFirmwareTag { my ($info) = @_; if (my ($model, $resolution, $version, $branch) = $info =~ $FW_TAG_REGEX) { diff --git a/plugin/SqueezeESP32/HTML/EN/plugins/SqueezeESP32/settings/player.html b/plugin/SqueezeESP32/HTML/EN/plugins/SqueezeESP32/settings/player.html index a37121c5..85e9d6e8 100644 --- a/plugin/SqueezeESP32/HTML/EN/plugins/SqueezeESP32/settings/player.html +++ b/plugin/SqueezeESP32/HTML/EN/plugins/SqueezeESP32/settings/player.html @@ -2,6 +2,18 @@ [% WRAPPER setting title="PLUGIN_SQUEEZEESP32_FIRMWARE" desc="" %]

+ [% IF fwUpdateAvailable %] +
+ + [% fwUpdateAvailable %] +
+ [% END %] + [% IF fwCustomUpdateAvailable %] +
+ + [% fwCustomUpdateAvailable | string %] +
+ [% END %] [% END %] [% IF prefs.pref_width %] diff --git a/plugin/SqueezeESP32/PlayerSettings.pm b/plugin/SqueezeESP32/PlayerSettings.pm index b466c77b..83be9d07 100644 --- a/plugin/SqueezeESP32/PlayerSettings.pm +++ b/plugin/SqueezeESP32/PlayerSettings.pm @@ -2,6 +2,7 @@ package Plugins::SqueezeESP32::PlayerSettings; use strict; use base qw(Slim::Web::Settings); +use JSON::XS::VersionOneAndTwo; use List::Util qw(first); use Slim::Utils::Log; @@ -36,7 +37,7 @@ sub prefs { } sub handler { - my ($class, $client, $paramRef) = @_; + my ($class, $client, $paramRef, $callback, @args) = @_; my ($cprefs, @prefs) = $class->prefs($client); @@ -62,7 +63,7 @@ sub handler { x => $paramRef->{'pref_artwork_x'} || 0, y => $paramRef->{'pref_artwork_y'} || 0, }; - + $cprefs->set('artwork', $artwork); $client->display->modes($client->display->build_modes); # the display update will be done below, after all is completed @@ -76,14 +77,14 @@ sub handler { } - if ($client->depth == 16) { + if ($client->can('depth') && $client->depth == 16) { my $equalizer = $cprefs->get('equalizer'); for my $i (0 .. $#{$equalizer}) { $equalizer->[$i] = $paramRef->{"pref_equalizer.$i"} || 0; } $cprefs->set('equalizer', $equalizer); $client->update_tones($equalizer); - } + } } if ($client->displayWidth) { @@ -93,10 +94,46 @@ sub handler { $paramRef->{'pref_artwork'} = $cprefs->get('artwork'); } - $paramRef->{'pref_equalizer'} = $cprefs->get('equalizer') if $client->depth == 16; + $paramRef->{'pref_equalizer'} = $cprefs->get('equalizer') if $client->can('depth') && $client->depth == 16; $paramRef->{'player_ip'} = $client->ip; - return $class->SUPER::handler($client, $paramRef); + Plugins::SqueezeESP32::FirmwareHelper::initFirmwareDownload($client, sub { + my ($currentFWInfo, $newFWUrl, $customFwUrl) = @_; + + $currentFWInfo ||= {}; + my $newFWInfo = Plugins::SqueezeESP32::FirmwareHelper::getFirmwareTag($newFWUrl) || {}; + + if ($paramRef->{installUpdate} || $paramRef->{installCustomUpdate}) { + my $http = Slim::Networking::SimpleAsyncHTTP->new(sub { + main::INFOLOG && $log->is_info && $log->info("Firmware update triggered"); + }, sub { + main::INFOLOG && $log->is_info && $log->info("Failed to trigger firmware update"); + main::DEBUGLOG && $log->is_debug && $log->debug(Data::Dump::dump(@_)); + })->post(sprintf('http://%s/config.json', $client->ip), to_json({ + timestamp => int(Time::HiRes::time() * 1000) * 1, + config => { + fwurl => { + value => $paramRef->{installCustomUpdate} ? $customFwUrl : $newFWUrl, + type => 33 + } + } + })); + } + else { + if ($currentFWInfo->{version} && $newFWInfo->{version} && $currentFWInfo->{version} > $newFWInfo->{version}) { + main::INFOLOG && $log->is_info && $log->info("There's an update for your SqueezeESP32 player: $newFWUrl"); + $paramRef->{fwUpdateAvailable} = sprintf($client->string('PLUGIN_SQUEEZEESP32_FIRMWARE_AVAILABLE'), $newFWInfo->{version}, $currentFWInfo->{version}); + } + if ($customFwUrl) { + main::INFOLOG && $log->is_info && $log->info("There's a custom firmware for your SqueezeESP32 player: $customFwUrl"); + $paramRef->{fwCustomUpdateAvailable} = 'PLUGIN_SQUEEZEESP32_CUSTOM_FIRMWARE_AVAILABLE'; + } + } + + $callback->( $client, $paramRef, $class->SUPER::handler($client, $paramRef), @args ); + }); + + return; } 1; \ No newline at end of file diff --git a/plugin/SqueezeESP32/strings.txt b/plugin/SqueezeESP32/strings.txt index b3ca6087..0b70fa2d 100644 --- a/plugin/SqueezeESP32/strings.txt +++ b/plugin/SqueezeESP32/strings.txt @@ -24,6 +24,14 @@ PLUGIN_SQUEEZEESP32_PLAYERSETTINGS PLUGIN_SQUEEZEESP32_FIRMWARE EN Firmware +PLUGIN_SQUEEZEESP32_FIRMWARE_AVAILABLE + DE Es steht eine neue Firmware Version v%s zur Verfügung (aktuell installiert: v%s). + EN A new firmware version v%s is available (currently installed: v%s). + +PLUGIN_SQUEEZEESP32_CUSTOM_FIRMWARE_AVAILABLE + DE Es steht eine benutzerdefinierte Firmware Version zur Verfügung. + EN A custom firmware image is available for installation. + PLUGIN_SQUEEZEESP32_WIDTH DE Displaybreite EN Screen width From 190326726c629c493e0cc88417b73dfe041849de Mon Sep 17 00:00:00 2001 From: Michael Herger Date: Sun, 25 Apr 2021 01:26:10 +0200 Subject: [PATCH 6/6] Add firmware upload handler to SqueezeESP32 plugin * upload firmware image: `curl -vF 'data=@./someFirmwareImage.bin' http://localhost:9000/plugins/SqueezeESP32/firmware/upload` (or the JS equivalent, using multipart form data * receive response: `{"url":"http://192.168.0.63:9000/plugins/SqueezeESP32/firmware/squeezelite-esp32-upload-b0w7mn.bin", "size":2463375}` * install firmware from temporary URL returned * uploads are removed after 15 minutes or upon LMS restart --- plugin/SqueezeESP32/FirmwareHelper.pm | 149 +++++++++++++++++++++++++- 1 file changed, 144 insertions(+), 5 deletions(-) diff --git a/plugin/SqueezeESP32/FirmwareHelper.pm b/plugin/SqueezeESP32/FirmwareHelper.pm index f6fdae6a..6b2b7941 100644 --- a/plugin/SqueezeESP32/FirmwareHelper.pm +++ b/plugin/SqueezeESP32/FirmwareHelper.pm @@ -20,6 +20,8 @@ my $FW_CUSTOM_REGEX = qr/^((?:squeezelite-esp32-)?custom\.bin)$/; my $FW_FILENAME_REGEX = qr/^squeezelite-esp32-.*\.bin(\.tmp)?$/; my $FW_TAG_REGEX = qr/\b(ESP32-A1S|SqueezeAmp|I2S-4MFlash)\.(16|32)\.(\d+)\.([-a-zA-Z0-9]+)\b/; +use constant MAX_FW_IMAGE_SIZE => 10 * 1024 * 1024; + my $prefs = preferences('plugin.squeezeesp32'); my $log = logger('plugin.squeezeesp32'); @@ -31,6 +33,7 @@ sub init { if (!$initialized) { $initialized = 1; Slim::Web::Pages->addRawFunction($FW_DOWNLOAD_REGEX, \&handleFirmwareDownload); + Slim::Web::Pages->addRawFunction('plugins/SqueezeESP32/firmware/upload', \&handleFirmwareUpload); } # start checking for firmware updates @@ -100,7 +103,7 @@ sub prefetchFirmware { } } - my $customFwUrl = sprintf('%s/plugins/SqueezeESP32/firmware/custom.bin', Slim::Utils::Network::serverURL()) if $cb && -f _customFirmwareFile(); + my $customFwUrl = _urlFromPath('custom.bin') if $cb && -f _customFirmwareFile(); if ( ($url && $url =~ /^https?/) || $customFwUrl ) { downloadFirmwareFile(sub { @@ -136,6 +139,10 @@ sub _gh2lmsUrl { return $url; } +sub _urlFromPath { + return sprintf('%s/plugins/SqueezeESP32/firmware/%s', Slim::Utils::Network::serverURL(), basename(shift)); +} + sub _customFirmwareFile { return catfile(scalar Slim::Utils::OSDetect::dirsFor('updates'), 'squeezelite-esp32-custom.bin'); } @@ -200,11 +207,21 @@ sub downloadFirmwareFile { return $ecb->(undef, 'Unexpected firmware image name: ' . $name, $url, 400); } - my $updatesDir = Slim::Utils::OSDetect::dirsFor('updates'); + my $updatesDir = _getTempDir(); my $firmwareFile = catfile($updatesDir, $name); - my $fileMatchRegex = join('-', '', $releaseInfo->{branch}, $releaseInfo->{model}, $releaseInfo->{res}); - Slim::Utils::Misc::deleteFiles($updatesDir, $fileMatchRegex, $firmwareFile); + if (-f $firmwareFile) { + main::INFOLOG && $log->is_info && $log->info("Found uploaded firmware file $name"); + return $cb->($firmwareFile); + } + + $updatesDir = Slim::Utils::OSDetect::dirsFor('updates'); + $firmwareFile = catfile($updatesDir, $name); + + if ($releaseInfo) { + my $fileMatchRegex = join('-', '', $releaseInfo->{branch}, $releaseInfo->{model}, $releaseInfo->{res}); + Slim::Utils::Misc::deleteFiles($updatesDir, $fileMatchRegex, $firmwareFile); + } if (-f $firmwareFile) { main::INFOLOG && $log->is_info && $log->info("Found cached firmware file"); @@ -223,7 +240,11 @@ sub downloadFirmwareFile { return $cb->($firmwareFile); }, - $ecb, + sub { + my ($http, $error) = @_; + $http->code(404) if $error =~ /\b404\b/; + $ecb->(@_); + }, { saveAs => "$firmwareFile.tmp", } @@ -266,5 +287,123 @@ sub _errorDownloading { Slim::Web::HTTP::closeHTTPSocket($httpClient); }; +sub handleFirmwareUpload { + my ($httpClient, $response) = @_; + + my $request = $response->request; + my $result = {}; + + my $t = Time::HiRes::time(); + + main::INFOLOG && $log->is_info && $log->info("New firmware image to upload. Size: " . formatMB($request->content_length)); + + if ( $request->method !~ /HEAD|OPTIONS|POST/ ) { + $log->error("Invalid HTTP verb: " . $request->method); + $result = { + error => 'Invalid request.', + code => 400, + }; + } + elsif ( $request->content_length > MAX_FW_IMAGE_SIZE ) { + $log->error("Upload data is too large: " . $request->content_length); + $result = { + error => string('PLUGIN_DNDPLAY_FILE_TOO_LARGE', formatMB($request->content_length), formatMB(MAX_FW_IMAGE_SIZE)), + code => 413, + }; + } + else { + my $ct = $request->header('Content-Type'); + my ($boundary) = $ct =~ /boundary=(.*)/; + + my ($uploadedFwFh, $filename, $inUpload, $buf); + + # open a pseudo-filehandle to the uploaded data ref for further processing + open TEMP, '<', $request->content_ref; + + while () { + if ( Time::HiRes::time - $t > 0.2 ) { + main::idleStreams(); + $t = Time::HiRes::time(); + } + + # a new part starts - reset some variables + if ( /--\Q$boundary\E/i ) { + $filename = ''; + + if ($buf) { + $buf =~ s/\r\n$//; + print $uploadedFwFh $buf if $uploadedFwFh; + } + + close $uploadedFwFh if $uploadedFwFh; + $inUpload = undef; + } + + # write data to file handle + elsif ( $inUpload && $uploadedFwFh ) { + print $uploadedFwFh $buf if defined $buf; + $buf = $_; + } + + # we got an uploaded file name + elsif ( /filename="(.+?)"/i ) { + $filename = $1; + main::INFOLOG && $log->is_info && $log->info("New file to upload: $filename") + } + + # we got the separator after the upload file name: file data comes next. Open a file handle to write the data to. + elsif ( $filename && /^\s*$/ ) { + $inUpload = 1; + + $uploadedFwFh = File::Temp->new( + DIR => _getTempDir(), + SUFFIX => '.bin', + TEMPLATE => 'squeezelite-esp32-upload-XXXXXX', + UNLINK => 0, + ) or $log->warn("Failed to open file: $@"); + + binmode $uploadedFwFh; + + # remove file after a few minutes + Slim::Utils::Timers::setTimer($uploadedFwFh->filename, Time::HiRes::time() + 15 * 60, sub { unlink shift }); + } + } + + close TEMP; + close $uploadedFwFh if $uploadedFwFh; + + main::idleStreams(); + + if (!$result->{error}) { + $result->{url} = _urlFromPath($uploadedFwFh->filename); + $result->{size} = -s $uploadedFwFh->filename; + } + } + + $log->error($result->{error}) if $result->{error}; + + my $content = to_json($result); + $response->header( 'Content-Length' => length($content) ); + $response->code($result->{code} || 200); + $response->header('Connection' => 'close'); + $response->content_type('application/json'); + + Slim::Web::HTTP::addHTTPResponse( $httpClient, $response, \$content ); +} + +my $tempDir; +sub _getTempDir { + return $tempDir if $tempDir; + + eval { $tempDir = Slim::Utils::Misc::getTempDir() }; # LMS 8.2+ only + $tempDir ||= File::Temp::tempdir(CLEANUP => 1, DIR => preferences('server')->get('cachedir')); + + return $tempDir; +} + +sub formatMB { + return Slim::Utils::Misc::delimitThousands(int($_[0] / 1024 / 1024)) . 'MB'; +} + 1; \ No newline at end of file