matterbridge 3.2.7 → 3.2.8-dev-20250915-e9a5660
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -2
- package/dist/cli.js +2 -91
- package/dist/cliEmitter.js +0 -30
- package/dist/clusters/export.js +0 -2
- package/dist/defaultConfigSchema.js +0 -24
- package/dist/deviceManager.js +1 -94
- package/dist/devices/airConditioner.js +0 -57
- package/dist/devices/batteryStorage.js +1 -48
- package/dist/devices/cooktop.js +0 -55
- package/dist/devices/dishwasher.js +0 -57
- package/dist/devices/evse.js +10 -74
- package/dist/devices/export.js +0 -5
- package/dist/devices/extractorHood.js +0 -42
- package/dist/devices/heatPump.js +2 -50
- package/dist/devices/laundryDryer.js +3 -62
- package/dist/devices/laundryWasher.js +4 -70
- package/dist/devices/microwaveOven.js +5 -88
- package/dist/devices/oven.js +0 -85
- package/dist/devices/refrigerator.js +0 -102
- package/dist/devices/roboticVacuumCleaner.js +9 -100
- package/dist/devices/solarPower.js +0 -38
- package/dist/devices/speaker.js +0 -84
- package/dist/devices/temperatureControl.js +3 -25
- package/dist/devices/waterHeater.js +2 -82
- package/dist/dgram/coap.js +13 -126
- package/dist/dgram/dgram.js +2 -114
- package/dist/dgram/mb_coap.js +3 -41
- package/dist/dgram/mb_mdns.js +15 -80
- package/dist/dgram/mdns.js +137 -299
- package/dist/dgram/multicast.js +1 -62
- package/dist/dgram/unicast.js +0 -54
- package/dist/frontend.js +33 -458
- package/dist/globalMatterbridge.js +0 -47
- package/dist/helpers.js +0 -53
- package/dist/index.js +1 -30
- package/dist/logger/export.js +0 -1
- package/dist/matter/behaviors.js +0 -2
- package/dist/matter/clusters.js +0 -2
- package/dist/matter/devices.js +0 -2
- package/dist/matter/endpoints.js +0 -2
- package/dist/matter/export.js +0 -3
- package/dist/matter/types.js +0 -3
- package/dist/matterbridge.js +53 -789
- package/dist/matterbridgeAccessoryPlatform.js +0 -36
- package/dist/matterbridgeBehaviors.js +5 -65
- package/dist/matterbridgeDeviceTypes.js +17 -630
- package/dist/matterbridgeDynamicPlatform.js +0 -36
- package/dist/matterbridgeEndpoint.js +55 -1373
- package/dist/matterbridgeEndpointHelpers.js +12 -345
- package/dist/matterbridgePlatform.js +0 -304
- package/dist/matterbridgeTypes.js +0 -25
- package/dist/pluginManager.js +3 -249
- package/dist/shelly.js +7 -168
- package/dist/storage/export.js +0 -1
- package/dist/update.js +0 -69
- package/dist/utils/colorUtils.js +2 -97
- package/dist/utils/commandLine.js +0 -54
- package/dist/utils/copyDirectory.js +1 -38
- package/dist/utils/createDirectory.js +0 -33
- package/dist/utils/createZip.js +2 -47
- package/dist/utils/deepCopy.js +0 -39
- package/dist/utils/deepEqual.js +1 -72
- package/dist/utils/error.js +0 -41
- package/dist/utils/export.js +0 -1
- package/dist/utils/hex.js +0 -124
- package/dist/utils/isvalid.js +0 -101
- package/dist/utils/jestHelpers.js +3 -153
- package/dist/utils/network.js +5 -91
- package/dist/utils/spawn.js +0 -40
- package/dist/utils/wait.js +8 -60
- package/frontend/build/asset-manifest.json +6 -6
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/css/{main.a2f4846a.css → main.56c16a87.css} +2 -2
- package/frontend/build/static/css/main.56c16a87.css.map +1 -0
- package/frontend/build/static/js/{main.ee68a4ae.js → main.25c57952.js} +3 -3
- package/frontend/build/static/js/{main.ee68a4ae.js.map → main.25c57952.js.map} +1 -1
- package/frontend/package.json +1 -1
- package/npm-shrinkwrap.json +5 -5
- package/package.json +1 -2
- package/dist/cli.d.ts +0 -26
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/cliEmitter.d.ts +0 -34
- package/dist/cliEmitter.d.ts.map +0 -1
- package/dist/cliEmitter.js.map +0 -1
- package/dist/clusters/export.d.ts +0 -2
- package/dist/clusters/export.d.ts.map +0 -1
- package/dist/clusters/export.js.map +0 -1
- package/dist/defaultConfigSchema.d.ts +0 -28
- package/dist/defaultConfigSchema.d.ts.map +0 -1
- package/dist/defaultConfigSchema.js.map +0 -1
- package/dist/deviceManager.d.ts +0 -112
- package/dist/deviceManager.d.ts.map +0 -1
- package/dist/deviceManager.js.map +0 -1
- package/dist/devices/airConditioner.d.ts +0 -98
- package/dist/devices/airConditioner.d.ts.map +0 -1
- package/dist/devices/airConditioner.js.map +0 -1
- package/dist/devices/batteryStorage.d.ts +0 -48
- package/dist/devices/batteryStorage.d.ts.map +0 -1
- package/dist/devices/batteryStorage.js.map +0 -1
- package/dist/devices/cooktop.d.ts +0 -60
- package/dist/devices/cooktop.d.ts.map +0 -1
- package/dist/devices/cooktop.js.map +0 -1
- package/dist/devices/dishwasher.d.ts +0 -71
- package/dist/devices/dishwasher.d.ts.map +0 -1
- package/dist/devices/dishwasher.js.map +0 -1
- package/dist/devices/evse.d.ts +0 -75
- package/dist/devices/evse.d.ts.map +0 -1
- package/dist/devices/evse.js.map +0 -1
- package/dist/devices/export.d.ts +0 -17
- package/dist/devices/export.d.ts.map +0 -1
- package/dist/devices/export.js.map +0 -1
- package/dist/devices/extractorHood.d.ts +0 -46
- package/dist/devices/extractorHood.d.ts.map +0 -1
- package/dist/devices/extractorHood.js.map +0 -1
- package/dist/devices/heatPump.d.ts +0 -47
- package/dist/devices/heatPump.d.ts.map +0 -1
- package/dist/devices/heatPump.js.map +0 -1
- package/dist/devices/laundryDryer.d.ts +0 -67
- package/dist/devices/laundryDryer.d.ts.map +0 -1
- package/dist/devices/laundryDryer.js.map +0 -1
- package/dist/devices/laundryWasher.d.ts +0 -81
- package/dist/devices/laundryWasher.d.ts.map +0 -1
- package/dist/devices/laundryWasher.js.map +0 -1
- package/dist/devices/microwaveOven.d.ts +0 -168
- package/dist/devices/microwaveOven.d.ts.map +0 -1
- package/dist/devices/microwaveOven.js.map +0 -1
- package/dist/devices/oven.d.ts +0 -105
- package/dist/devices/oven.d.ts.map +0 -1
- package/dist/devices/oven.js.map +0 -1
- package/dist/devices/refrigerator.d.ts +0 -118
- package/dist/devices/refrigerator.d.ts.map +0 -1
- package/dist/devices/refrigerator.js.map +0 -1
- package/dist/devices/roboticVacuumCleaner.d.ts +0 -112
- package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
- package/dist/devices/roboticVacuumCleaner.js.map +0 -1
- package/dist/devices/solarPower.d.ts +0 -40
- package/dist/devices/solarPower.d.ts.map +0 -1
- package/dist/devices/solarPower.js.map +0 -1
- package/dist/devices/speaker.d.ts +0 -87
- package/dist/devices/speaker.d.ts.map +0 -1
- package/dist/devices/speaker.js.map +0 -1
- package/dist/devices/temperatureControl.d.ts +0 -166
- package/dist/devices/temperatureControl.d.ts.map +0 -1
- package/dist/devices/temperatureControl.js.map +0 -1
- package/dist/devices/waterHeater.d.ts +0 -111
- package/dist/devices/waterHeater.d.ts.map +0 -1
- package/dist/devices/waterHeater.js.map +0 -1
- package/dist/dgram/coap.d.ts +0 -205
- package/dist/dgram/coap.d.ts.map +0 -1
- package/dist/dgram/coap.js.map +0 -1
- package/dist/dgram/dgram.d.ts +0 -141
- package/dist/dgram/dgram.d.ts.map +0 -1
- package/dist/dgram/dgram.js.map +0 -1
- package/dist/dgram/mb_coap.d.ts +0 -24
- package/dist/dgram/mb_coap.d.ts.map +0 -1
- package/dist/dgram/mb_coap.js.map +0 -1
- package/dist/dgram/mb_mdns.d.ts +0 -24
- package/dist/dgram/mb_mdns.d.ts.map +0 -1
- package/dist/dgram/mb_mdns.js.map +0 -1
- package/dist/dgram/mdns.d.ts +0 -290
- package/dist/dgram/mdns.d.ts.map +0 -1
- package/dist/dgram/mdns.js.map +0 -1
- package/dist/dgram/multicast.d.ts +0 -67
- package/dist/dgram/multicast.d.ts.map +0 -1
- package/dist/dgram/multicast.js.map +0 -1
- package/dist/dgram/unicast.d.ts +0 -56
- package/dist/dgram/unicast.d.ts.map +0 -1
- package/dist/dgram/unicast.js.map +0 -1
- package/dist/frontend.d.ts +0 -315
- package/dist/frontend.d.ts.map +0 -1
- package/dist/frontend.js.map +0 -1
- package/dist/globalMatterbridge.d.ts +0 -59
- package/dist/globalMatterbridge.d.ts.map +0 -1
- package/dist/globalMatterbridge.js.map +0 -1
- package/dist/helpers.d.ts +0 -48
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js.map +0 -1
- package/dist/index.d.ts +0 -33
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger/export.d.ts +0 -2
- package/dist/logger/export.d.ts.map +0 -1
- package/dist/logger/export.js.map +0 -1
- package/dist/matter/behaviors.d.ts +0 -2
- package/dist/matter/behaviors.d.ts.map +0 -1
- package/dist/matter/behaviors.js.map +0 -1
- package/dist/matter/clusters.d.ts +0 -2
- package/dist/matter/clusters.d.ts.map +0 -1
- package/dist/matter/clusters.js.map +0 -1
- package/dist/matter/devices.d.ts +0 -2
- package/dist/matter/devices.d.ts.map +0 -1
- package/dist/matter/devices.js.map +0 -1
- package/dist/matter/endpoints.d.ts +0 -2
- package/dist/matter/endpoints.d.ts.map +0 -1
- package/dist/matter/endpoints.js.map +0 -1
- package/dist/matter/export.d.ts +0 -5
- package/dist/matter/export.d.ts.map +0 -1
- package/dist/matter/export.js.map +0 -1
- package/dist/matter/types.d.ts +0 -3
- package/dist/matter/types.d.ts.map +0 -1
- package/dist/matter/types.js.map +0 -1
- package/dist/matterbridge.d.ts +0 -465
- package/dist/matterbridge.d.ts.map +0 -1
- package/dist/matterbridge.js.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -42
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
- package/dist/matterbridgeBehaviors.d.ts +0 -1747
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts +0 -761
- package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
- package/dist/matterbridgeDeviceTypes.js.map +0 -1
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -42
- package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
- package/dist/matterbridgeDynamicPlatform.js.map +0 -1
- package/dist/matterbridgeEndpoint.d.ts +0 -1515
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgeEndpointHelpers.d.ts +0 -407
- package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
- package/dist/matterbridgeEndpointHelpers.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts +0 -380
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/matterbridgeTypes.d.ts +0 -204
- package/dist/matterbridgeTypes.d.ts.map +0 -1
- package/dist/matterbridgeTypes.js.map +0 -1
- package/dist/pluginManager.d.ts +0 -270
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/shelly.d.ts +0 -174
- package/dist/shelly.d.ts.map +0 -1
- package/dist/shelly.js.map +0 -1
- package/dist/storage/export.d.ts +0 -2
- package/dist/storage/export.d.ts.map +0 -1
- package/dist/storage/export.js.map +0 -1
- package/dist/update.d.ts +0 -75
- package/dist/update.d.ts.map +0 -1
- package/dist/update.js.map +0 -1
- package/dist/utils/colorUtils.d.ts +0 -99
- package/dist/utils/colorUtils.d.ts.map +0 -1
- package/dist/utils/colorUtils.js.map +0 -1
- package/dist/utils/commandLine.d.ts +0 -59
- package/dist/utils/commandLine.d.ts.map +0 -1
- package/dist/utils/commandLine.js.map +0 -1
- package/dist/utils/copyDirectory.d.ts +0 -33
- package/dist/utils/copyDirectory.d.ts.map +0 -1
- package/dist/utils/copyDirectory.js.map +0 -1
- package/dist/utils/createDirectory.d.ts +0 -34
- package/dist/utils/createDirectory.d.ts.map +0 -1
- package/dist/utils/createDirectory.js.map +0 -1
- package/dist/utils/createZip.d.ts +0 -39
- package/dist/utils/createZip.d.ts.map +0 -1
- package/dist/utils/createZip.js.map +0 -1
- package/dist/utils/deepCopy.d.ts +0 -32
- package/dist/utils/deepCopy.d.ts.map +0 -1
- package/dist/utils/deepCopy.js.map +0 -1
- package/dist/utils/deepEqual.d.ts +0 -54
- package/dist/utils/deepEqual.d.ts.map +0 -1
- package/dist/utils/deepEqual.js.map +0 -1
- package/dist/utils/error.d.ts +0 -44
- package/dist/utils/error.d.ts.map +0 -1
- package/dist/utils/error.js.map +0 -1
- package/dist/utils/export.d.ts +0 -13
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/utils/hex.d.ts +0 -89
- package/dist/utils/hex.d.ts.map +0 -1
- package/dist/utils/hex.js.map +0 -1
- package/dist/utils/isvalid.d.ts +0 -103
- package/dist/utils/isvalid.d.ts.map +0 -1
- package/dist/utils/isvalid.js.map +0 -1
- package/dist/utils/jestHelpers.d.ts +0 -137
- package/dist/utils/jestHelpers.d.ts.map +0 -1
- package/dist/utils/jestHelpers.js.map +0 -1
- package/dist/utils/network.d.ts +0 -84
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/network.js.map +0 -1
- package/dist/utils/spawn.d.ts +0 -33
- package/dist/utils/spawn.d.ts.map +0 -1
- package/dist/utils/spawn.js.map +0 -1
- package/dist/utils/wait.d.ts +0 -54
- package/dist/utils/wait.d.ts.map +0 -1
- package/dist/utils/wait.js.map +0 -1
- package/frontend/build/static/css/main.a2f4846a.css.map +0 -1
- /package/frontend/build/static/js/{main.ee68a4ae.js.LICENSE.txt → main.25c57952.js.LICENSE.txt} +0 -0
package/dist/utils/network.js
CHANGED
|
@@ -1,38 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description This file contains the network functions.
|
|
3
|
-
* @file network.ts
|
|
4
|
-
* @author Luca Liguori
|
|
5
|
-
* @created 2024-02-17
|
|
6
|
-
* @version 1.0.1
|
|
7
|
-
* @license Apache-2.0
|
|
8
|
-
*
|
|
9
|
-
* Copyright 2024, 2025, 2026 Luca Liguori.
|
|
10
|
-
*
|
|
11
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
-
* you may not use this file except in compliance with the License.
|
|
13
|
-
* You may obtain a copy of the License at
|
|
14
|
-
*
|
|
15
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
-
*
|
|
17
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
-
* See the License for the specific language governing permissions and
|
|
21
|
-
* limitations under the License.
|
|
22
|
-
*/
|
|
23
|
-
// Node.js modules
|
|
24
1
|
import os from 'node:os';
|
|
25
|
-
// AnsiLogger module
|
|
26
2
|
import { AnsiLogger, BLUE, CYAN, nf } from 'node-ansi-logger';
|
|
27
|
-
/**
|
|
28
|
-
* Retrieves the IPv4 address of the first non-internal network interface.
|
|
29
|
-
*
|
|
30
|
-
* @returns {string | undefined} The IPv4 address of the selected network interface, or undefined if not found.
|
|
31
|
-
*/
|
|
32
3
|
export function getIpv4InterfaceAddress() {
|
|
33
4
|
let ipv4Address;
|
|
34
5
|
const networkInterfaces = os.networkInterfaces();
|
|
35
|
-
// console.log('Available Network Interfaces:', networkInterfaces);
|
|
36
6
|
for (const interfaceDetails of Object.values(networkInterfaces)) {
|
|
37
7
|
if (!interfaceDetails) {
|
|
38
8
|
break;
|
|
@@ -46,18 +16,11 @@ export function getIpv4InterfaceAddress() {
|
|
|
46
16
|
break;
|
|
47
17
|
}
|
|
48
18
|
}
|
|
49
|
-
// console.log('Selected Network Interfaces:', ipv4Address);
|
|
50
19
|
return ipv4Address;
|
|
51
20
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Retrieves the IPv6 address of the first non-internal network interface.
|
|
54
|
-
*
|
|
55
|
-
* @returns {string | undefined} The IPv4 address of the selected network interface, or undefined if not found.
|
|
56
|
-
*/
|
|
57
21
|
export function getIpv6InterfaceAddress() {
|
|
58
22
|
let ipv6Address;
|
|
59
23
|
const networkInterfaces = os.networkInterfaces();
|
|
60
|
-
// console.log('Available Network Interfaces:', networkInterfaces);
|
|
61
24
|
for (const interfaceDetails of Object.values(networkInterfaces)) {
|
|
62
25
|
if (!interfaceDetails) {
|
|
63
26
|
break;
|
|
@@ -71,18 +34,11 @@ export function getIpv6InterfaceAddress() {
|
|
|
71
34
|
break;
|
|
72
35
|
}
|
|
73
36
|
}
|
|
74
|
-
// console.log('Selected Network Interfaces:', ipv6Address);
|
|
75
37
|
return ipv6Address;
|
|
76
38
|
}
|
|
77
|
-
/**
|
|
78
|
-
* Retrieves the mac address of the first non-internal network interface.
|
|
79
|
-
*
|
|
80
|
-
* @returns {string | undefined} The mac address, or undefined if not found.
|
|
81
|
-
*/
|
|
82
39
|
export function getMacAddress() {
|
|
83
40
|
let macAddress;
|
|
84
41
|
const networkInterfaces = os.networkInterfaces();
|
|
85
|
-
// console.log('Available Network Interfaces:', networkInterfaces);
|
|
86
42
|
for (const interfaceDetails of Object.values(networkInterfaces)) {
|
|
87
43
|
if (!interfaceDetails) {
|
|
88
44
|
break;
|
|
@@ -98,14 +54,9 @@ export function getMacAddress() {
|
|
|
98
54
|
}
|
|
99
55
|
return macAddress;
|
|
100
56
|
}
|
|
101
|
-
/**
|
|
102
|
-
* Logs the available network interfaces and their details.
|
|
103
|
-
*
|
|
104
|
-
* @returns {void}
|
|
105
|
-
*/
|
|
106
57
|
export function logInterfaces() {
|
|
107
|
-
const log = new AnsiLogger({ logName: 'MatterbridgeUtils', logTimestampFormat: 4
|
|
108
|
-
log.logLevel = "info"
|
|
58
|
+
const log = new AnsiLogger({ logName: 'MatterbridgeUtils', logTimestampFormat: 4, logLevel: "info" });
|
|
59
|
+
log.logLevel = "info";
|
|
109
60
|
log.logName = 'LogInterfaces';
|
|
110
61
|
log.info('Available Network Interfaces:');
|
|
111
62
|
const availableAddresses = Object.entries(os.networkInterfaces());
|
|
@@ -119,36 +70,16 @@ export function logInterfaces() {
|
|
|
119
70
|
}
|
|
120
71
|
}
|
|
121
72
|
}
|
|
122
|
-
/**
|
|
123
|
-
* Resolves the given hostname to an IP address.
|
|
124
|
-
*
|
|
125
|
-
* @param {string} hostname - The hostname to resolve.
|
|
126
|
-
* @param {0 | 4 | 6} [family] - The address family to use (0 for any, 4 for IPv4, 6 for IPv6). Default is 4.
|
|
127
|
-
* @returns {Promise<string | null>} - A promise that resolves to the IP address or null if not found.
|
|
128
|
-
*
|
|
129
|
-
* @remarks
|
|
130
|
-
* This function uses DNS lookup to resolve the hostname, which can take some time to complete.
|
|
131
|
-
*/
|
|
132
73
|
export async function resolveHostname(hostname, family = 4) {
|
|
133
74
|
const dns = await import('node:dns');
|
|
134
75
|
try {
|
|
135
|
-
const addresses = await dns.promises.lookup(hostname.toLowerCase()
|
|
76
|
+
const addresses = await dns.promises.lookup(hostname.toLowerCase(), { family });
|
|
136
77
|
return addresses.address;
|
|
137
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
138
78
|
}
|
|
139
79
|
catch (error) {
|
|
140
80
|
return null;
|
|
141
81
|
}
|
|
142
82
|
}
|
|
143
|
-
/**
|
|
144
|
-
* Retrieves the version of an npm package from the npm registry.
|
|
145
|
-
*
|
|
146
|
-
* @param {string} packageName - The name of the npm package.
|
|
147
|
-
* @param {string} [tag] - The tag of the package version to retrieve (default is 'latest').
|
|
148
|
-
* @param {number} [timeout] - The timeout duration in milliseconds (default is 10000ms).
|
|
149
|
-
* @returns {Promise<string>} A promise that resolves to the version string of the package.
|
|
150
|
-
* @throws {Error} If the request fails or the tag is not found.
|
|
151
|
-
*/
|
|
152
83
|
export async function getNpmPackageVersion(packageName, tag = 'latest', timeout = 10000) {
|
|
153
84
|
const https = await import('node:https');
|
|
154
85
|
return new Promise((resolve, reject) => {
|
|
@@ -162,7 +93,7 @@ export async function getNpmPackageVersion(packageName, tag = 'latest', timeout
|
|
|
162
93
|
let data = '';
|
|
163
94
|
if (res.statusCode !== 200) {
|
|
164
95
|
clearTimeout(timeoutId);
|
|
165
|
-
res.resume();
|
|
96
|
+
res.resume();
|
|
166
97
|
reject(new Error(`Failed to fetch data. Status code: ${res.statusCode}`));
|
|
167
98
|
return;
|
|
168
99
|
}
|
|
@@ -173,7 +104,6 @@ export async function getNpmPackageVersion(packageName, tag = 'latest', timeout
|
|
|
173
104
|
clearTimeout(timeoutId);
|
|
174
105
|
try {
|
|
175
106
|
const jsonData = JSON.parse(data);
|
|
176
|
-
// console.log(`Package ${packageName} tag ${tag}`, jsonData);
|
|
177
107
|
const version = jsonData['dist-tags']?.[tag];
|
|
178
108
|
if (version) {
|
|
179
109
|
resolve(version);
|
|
@@ -193,15 +123,6 @@ export async function getNpmPackageVersion(packageName, tag = 'latest', timeout
|
|
|
193
123
|
});
|
|
194
124
|
});
|
|
195
125
|
}
|
|
196
|
-
/**
|
|
197
|
-
* Retrieves a file from the public directory of the Matterbridge GitHub repository.
|
|
198
|
-
*
|
|
199
|
-
* @param {string} branch - The branch from which to fetch the file.
|
|
200
|
-
* @param {string} file - The file path to fetch.
|
|
201
|
-
* @param {number} [timeout] - The timeout duration in milliseconds (default is 10000ms).
|
|
202
|
-
* @returns {Promise<Record<string, boolean | string | number>>} A promise that resolves to the parsed JSON object from the file.
|
|
203
|
-
* @throws {Error} If the request fails or the JSON parsing fails.
|
|
204
|
-
*/
|
|
205
126
|
export async function getGitHubUpdate(branch, file, timeout = 10000) {
|
|
206
127
|
const https = await import('node:https');
|
|
207
128
|
return new Promise((resolve, reject) => {
|
|
@@ -215,7 +136,7 @@ export async function getGitHubUpdate(branch, file, timeout = 10000) {
|
|
|
215
136
|
let data = '';
|
|
216
137
|
if (res.statusCode !== 200) {
|
|
217
138
|
clearTimeout(timeoutId);
|
|
218
|
-
res.resume();
|
|
139
|
+
res.resume();
|
|
219
140
|
reject(new Error(`Failed to fetch data. Status code: ${res.statusCode}`));
|
|
220
141
|
return;
|
|
221
142
|
}
|
|
@@ -233,18 +154,12 @@ export async function getGitHubUpdate(branch, file, timeout = 10000) {
|
|
|
233
154
|
}
|
|
234
155
|
});
|
|
235
156
|
});
|
|
236
|
-
// istanbul ignore next
|
|
237
157
|
req.on('error', (error) => {
|
|
238
158
|
clearTimeout(timeoutId);
|
|
239
159
|
reject(new Error(`Request failed: ${error instanceof Error ? error.message : error}`));
|
|
240
160
|
});
|
|
241
161
|
});
|
|
242
162
|
}
|
|
243
|
-
/**
|
|
244
|
-
* Retrieves the path to the global Node.js modules directory.
|
|
245
|
-
*
|
|
246
|
-
* @returns {Promise<string>} A promise that resolves to the path of the global Node.js modules directory.
|
|
247
|
-
*/
|
|
248
163
|
export async function getGlobalNodeModules() {
|
|
249
164
|
const { exec } = await import('node:child_process');
|
|
250
165
|
return new Promise((resolve, reject) => {
|
|
@@ -258,4 +173,3 @@ export async function getGlobalNodeModules() {
|
|
|
258
173
|
});
|
|
259
174
|
});
|
|
260
175
|
}
|
|
261
|
-
//# sourceMappingURL=network.js.map
|
package/dist/utils/spawn.js
CHANGED
|
@@ -1,51 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description This file contains the spawn functions.
|
|
3
|
-
* @file spawn.ts
|
|
4
|
-
* @author Luca Liguori
|
|
5
|
-
* @created 2025-02-16
|
|
6
|
-
* @version 1.1.0
|
|
7
|
-
* @license Apache-2.0
|
|
8
|
-
*
|
|
9
|
-
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
10
|
-
*
|
|
11
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
-
* you may not use this file except in compliance with the License.
|
|
13
|
-
* You may obtain a copy of the License at
|
|
14
|
-
*
|
|
15
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
-
*
|
|
17
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
-
* See the License for the specific language governing permissions and
|
|
21
|
-
* limitations under the License.
|
|
22
|
-
*/
|
|
23
1
|
import { hasParameter } from './commandLine.js';
|
|
24
|
-
/**
|
|
25
|
-
* Spawns a child process with the given command and arguments.
|
|
26
|
-
*
|
|
27
|
-
* @param {Matterbridge} matterbridge - The Matterbridge instance to use for logging and sending messages.
|
|
28
|
-
* @param {string} command - The command to execute.
|
|
29
|
-
* @param {string[]} args - The arguments to pass to the command (default: []).
|
|
30
|
-
* @returns {Promise<boolean>} A promise that resolves when the child process exits successfully, or rejects if there is an error.
|
|
31
|
-
*/
|
|
32
2
|
export async function spawnCommand(matterbridge, command, args) {
|
|
33
3
|
const { spawn } = await import('node:child_process');
|
|
34
|
-
/*
|
|
35
|
-
npm > npm.cmd on windows
|
|
36
|
-
cmd.exe ['dir'] on windows
|
|
37
|
-
await this.spawnCommand('npm', ['install', '-g', 'matterbridge']);
|
|
38
|
-
*/
|
|
39
4
|
const cmdLine = command + ' ' + args.join(' ');
|
|
40
5
|
if (process.platform === 'win32' && command === 'npm') {
|
|
41
|
-
// Must be spawn('cmd.exe', ['/c', 'npm -g install <package>']);
|
|
42
6
|
const argstring = 'npm ' + args.join(' ');
|
|
43
7
|
args.splice(0, args.length, '/c', argstring);
|
|
44
8
|
command = 'cmd.exe';
|
|
45
9
|
}
|
|
46
|
-
// Decide when using sudo on linux and macOS
|
|
47
|
-
// When you need sudo: Spawn stderr: npm error Error: EACCES: permission denied
|
|
48
|
-
// When you don't need sudo: Failed to start child process "npm install -g matterbridge-eve-door": spawn sudo ENOENT
|
|
49
10
|
if (hasParameter('sudo') || (process.platform !== 'win32' && command === 'npm' && !hasParameter('docker') && !hasParameter('nosudo'))) {
|
|
50
11
|
args.unshift(command);
|
|
51
12
|
command = 'sudo';
|
|
@@ -103,4 +64,3 @@ export async function spawnCommand(matterbridge, command, args) {
|
|
|
103
64
|
}
|
|
104
65
|
});
|
|
105
66
|
}
|
|
106
|
-
//# sourceMappingURL=spawn.js.map
|
package/dist/utils/wait.js
CHANGED
|
@@ -1,41 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the wait, waiter and withTimeout functions.
|
|
3
|
-
*
|
|
4
|
-
* @file wait.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-02-16
|
|
7
|
-
* @version 1.0.2
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
|
-
// AnsiLogger module
|
|
25
1
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
26
|
-
/**
|
|
27
|
-
* Asynchronous waiter function that resolves when the provided condition is met or rejects on timeout.
|
|
28
|
-
*
|
|
29
|
-
* @param {string} name - The name of the waiter.
|
|
30
|
-
* @param {() => boolean} check - A function that checks the condition. Should return a boolean.
|
|
31
|
-
* @param {boolean} [exitWithReject] - Optional. If true, the promise will be rejected on timeout. Default is false.
|
|
32
|
-
* @param {number} [resolveTimeout] - Optional. The timeout duration in milliseconds. Default is 5000ms.
|
|
33
|
-
* @param {number} [resolveInterval] - Optional. The interval duration in milliseconds between condition checks. Default is 500ms.
|
|
34
|
-
* @param {boolean} [debug] - Optional. If true, debug messages will be logged to the console. Default is false.
|
|
35
|
-
* @returns {Promise<boolean>} A promise that resolves to true when the condition is met, or false if the timeout occurs.
|
|
36
|
-
*/
|
|
37
2
|
export async function waiter(name, check, exitWithReject = false, resolveTimeout = 5000, resolveInterval = 500, debug = false) {
|
|
38
|
-
const log = new AnsiLogger({ logName: 'Waiter', logTimestampFormat: 4
|
|
3
|
+
const log = new AnsiLogger({ logName: 'Waiter', logTimestampFormat: 4, logLevel: "debug" });
|
|
39
4
|
if (check()) {
|
|
40
5
|
if (debug)
|
|
41
6
|
log.debug(`Waiter "${name}" already true`);
|
|
@@ -66,16 +31,8 @@ export async function waiter(name, check, exitWithReject = false, resolveTimeout
|
|
|
66
31
|
}, resolveInterval).unref();
|
|
67
32
|
});
|
|
68
33
|
}
|
|
69
|
-
/**
|
|
70
|
-
* Asynchronously waits for a specified amount of time.
|
|
71
|
-
*
|
|
72
|
-
* @param {number} timeout - The duration to wait in milliseconds. Default is 1000ms.
|
|
73
|
-
* @param {string} name - The name of the wait operation. Default is undefined.
|
|
74
|
-
* @param {boolean} debug - Whether to enable debug logging. Default is false.
|
|
75
|
-
* @returns {Promise<void>} A Promise that resolves after the specified timeout.
|
|
76
|
-
*/
|
|
77
34
|
export async function wait(timeout = 1000, name, debug = false) {
|
|
78
|
-
const log = new AnsiLogger({ logName: 'Wait', logTimestampFormat: 4
|
|
35
|
+
const log = new AnsiLogger({ logName: 'Wait', logTimestampFormat: 4, logLevel: "debug" });
|
|
79
36
|
if (debug)
|
|
80
37
|
log.debug(`Wait "${name}" started...`);
|
|
81
38
|
return new Promise((resolve) => {
|
|
@@ -87,14 +44,6 @@ export async function wait(timeout = 1000, name, debug = false) {
|
|
|
87
44
|
}, timeout).unref();
|
|
88
45
|
});
|
|
89
46
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Wraps a promise with a timeout. If the promise does not resolve or reject within the specified time, it will be rejected.
|
|
92
|
-
*
|
|
93
|
-
* @param {Promise<T>} promise - The promise to wrap.
|
|
94
|
-
* @param {number} [timeoutMillisecs] - The timeout duration in milliseconds. Default is 10000ms.
|
|
95
|
-
* @param {boolean} [reThrow] - Optional. If true, the promise will rethrow the original promise and will reject on timeout. Default is true.
|
|
96
|
-
* @returns {Promise<T>} A new promise that resolves or rejects based on the original promise and the timeout.
|
|
97
|
-
*/
|
|
98
47
|
export function withTimeout(promise, timeoutMillisecs = 10000, reThrow = true) {
|
|
99
48
|
return new Promise((resolve, reject) => {
|
|
100
49
|
const timer = setTimeout(() => {
|
|
@@ -102,24 +51,23 @@ export function withTimeout(promise, timeoutMillisecs = 10000, reThrow = true) {
|
|
|
102
51
|
reject(new Error('Operation timed out'));
|
|
103
52
|
}
|
|
104
53
|
else {
|
|
105
|
-
resolve(undefined);
|
|
54
|
+
resolve(undefined);
|
|
106
55
|
}
|
|
107
|
-
}, timeoutMillisecs).unref();
|
|
56
|
+
}, timeoutMillisecs).unref();
|
|
108
57
|
promise
|
|
109
58
|
.then((result) => {
|
|
110
|
-
clearTimeout(timer);
|
|
59
|
+
clearTimeout(timer);
|
|
111
60
|
resolve(result);
|
|
112
61
|
return result;
|
|
113
62
|
})
|
|
114
63
|
.catch((error) => {
|
|
115
|
-
clearTimeout(timer);
|
|
64
|
+
clearTimeout(timer);
|
|
116
65
|
if (reThrow) {
|
|
117
|
-
reject(error);
|
|
66
|
+
reject(error);
|
|
118
67
|
}
|
|
119
68
|
else {
|
|
120
|
-
resolve(undefined);
|
|
69
|
+
resolve(undefined);
|
|
121
70
|
}
|
|
122
71
|
});
|
|
123
72
|
});
|
|
124
73
|
}
|
|
125
|
-
//# sourceMappingURL=wait.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
|
-
"main.css": "./static/css/main.
|
|
4
|
-
"main.js": "./static/js/main.
|
|
3
|
+
"main.css": "./static/css/main.56c16a87.css",
|
|
4
|
+
"main.js": "./static/js/main.25c57952.js",
|
|
5
5
|
"static/js/453.d855a71b.chunk.js": "./static/js/453.d855a71b.chunk.js",
|
|
6
6
|
"static/media/roboto-latin-700-normal.woff2": "./static/media/roboto-latin-700-normal.c4d6cab43bec89049809.woff2",
|
|
7
7
|
"static/media/roboto-latin-500-normal.woff2": "./static/media/roboto-latin-500-normal.599f66a60bdf974e578e.woff2",
|
|
@@ -76,12 +76,12 @@
|
|
|
76
76
|
"static/media/roboto-greek-ext-500-normal.woff": "./static/media/roboto-greek-ext-500-normal.1964239c2800b6bd7e39.woff",
|
|
77
77
|
"static/media/roboto-greek-ext-300-normal.woff": "./static/media/roboto-greek-ext-300-normal.60729cafbded24073dfb.woff",
|
|
78
78
|
"index.html": "./index.html",
|
|
79
|
-
"main.
|
|
80
|
-
"main.
|
|
79
|
+
"main.56c16a87.css.map": "./static/css/main.56c16a87.css.map",
|
|
80
|
+
"main.25c57952.js.map": "./static/js/main.25c57952.js.map",
|
|
81
81
|
"453.d855a71b.chunk.js.map": "./static/js/453.d855a71b.chunk.js.map"
|
|
82
82
|
},
|
|
83
83
|
"entrypoints": [
|
|
84
|
-
"static/css/main.
|
|
85
|
-
"static/js/main.
|
|
84
|
+
"static/css/main.56c16a87.css",
|
|
85
|
+
"static/js/main.25c57952.js"
|
|
86
86
|
]
|
|
87
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="./"><link rel="icon" href="./matterbridge 32x32.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>Matterbridge</title><link rel="manifest" href="./manifest.json"/><script defer="defer" src="./static/js/main.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="./"><link rel="icon" href="./matterbridge 32x32.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>Matterbridge</title><link rel="manifest" href="./manifest.json"/><script defer="defer" src="./static/js/main.25c57952.js"></script><link href="./static/css/main.56c16a87.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-cyrillic-ext-300-normal.b9d87b04a9119d8d2fdf.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-ext-300-normal.a80c0d0719b1acb8f731.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-cyrillic-300-normal.89d0351bce4bc857dba6.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-300-normal.44340549d94d10899346.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-greek-ext-300-normal.a88b77bb10633a8045e3.woff2) format("woff2"),url(../../static/media/roboto-greek-ext-300-normal.60729cafbded24073dfb.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-greek-300-normal.fdd1f928a606aa116a44.woff2) format("woff2"),url(../../static/media/roboto-greek-300-normal.8300b541aa89b8301a6f.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-math-300-normal.acc9c7c1d1fe3a1c7d44.woff2) format("woff2"),url(../../static/media/roboto-math-300-normal.90364ecfad5101ceb1a0.woff) format("woff");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-symbols-300-normal.616638ec44336b3da884.woff2) format("woff2"),url(../../static/media/roboto-symbols-300-normal.52cdf8344b378f0c4580.woff) format("woff");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-vietnamese-300-normal.6f0bf63e956c09377ef8.woff2) format("woff2"),url(../../static/media/roboto-vietnamese-300-normal.53f399e4522b647bafa7.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-latin-ext-300-normal.948c05192b1e64d931b1.woff2) format("woff2"),url(../../static/media/roboto-latin-ext-300-normal.6ddd1cfdbc5e74bcdab8.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-latin-300-normal.db56943a88e4852343ae.woff2) format("woff2"),url(../../static/media/roboto-latin-300-normal.cb14f8e80cc69ddbac34.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-cyrillic-ext-400-normal.31476620b88eec076438.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-ext-400-normal.5e3f232f89080810567d.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-cyrillic-400-normal.86d5c52f4588f9f221d7.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-400-normal.d67ac585bb6a05dbf71c.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-greek-ext-400-normal.2d5875b032a1cca91eb2.woff2) format("woff2"),url(../../static/media/roboto-greek-ext-400-normal.a0baf7d6726d8f751a27.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-greek-400-normal.98a717d5a38e77c0f657.woff2) format("woff2"),url(../../static/media/roboto-greek-400-normal.ecd8572d631f20ff5bd5.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-math-400-normal.b60d9fba1e21da7497e6.woff2) format("woff2"),url(../../static/media/roboto-math-400-normal.3d3a272e5233c5fb1969.woff) format("woff");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-symbols-400-normal.bb5b5d1459beb07bd3d5.woff2) format("woff2"),url(../../static/media/roboto-symbols-400-normal.f4f7e3bd8264f1a640cb.woff) format("woff");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-vietnamese-400-normal.b1b8baa94fbcaa57d098.woff2) format("woff2"),url(../../static/media/roboto-vietnamese-400-normal.1cffe58e71a9109191a2.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-latin-ext-400-normal.0f86a30ca7e981fcfc99.woff2) format("woff2"),url(../../static/media/roboto-latin-ext-400-normal.2bfbba2d51a85c8702dd.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-latin-400-normal.df1be0be92f6f19b8115.woff2) format("woff2"),url(../../static/media/roboto-latin-400-normal.50a0a61e29c19a2f05cb.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-cyrillic-ext-500-normal.634ee2238bf30f362d52.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-ext-500-normal.d6c661248da2fde17768.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-cyrillic-500-normal.1fb2c6d685bfb888cfa3.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-500-normal.36f79cc7e73a69da4438.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-greek-ext-500-normal.bef9c15c7164d6435aad.woff2) format("woff2"),url(../../static/media/roboto-greek-ext-500-normal.1964239c2800b6bd7e39.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-greek-500-normal.5c8100481d4e784afbf2.woff2) format("woff2"),url(../../static/media/roboto-greek-500-normal.4fe733bc436afc295c24.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-math-500-normal.41db483cb764343fca71.woff2) format("woff2"),url(../../static/media/roboto-math-500-normal.c3014a611cd9d8fa6252.woff) format("woff");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-symbols-500-normal.a5457b0ec984fd4cc8da.woff2) format("woff2"),url(../../static/media/roboto-symbols-500-normal.09b674875029289fd9a7.woff) format("woff");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-vietnamese-500-normal.148734d63bd96c6e964f.woff2) format("woff2"),url(../../static/media/roboto-vietnamese-500-normal.72dbf2a25dd55b80b137.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-latin-ext-500-normal.8f02573e78730021ef49.woff2) format("woff2"),url(../../static/media/roboto-latin-ext-500-normal.aecaab4c4da2bf91377a.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-latin-500-normal.599f66a60bdf974e578e.woff2) format("woff2"),url(../../static/media/roboto-latin-500-normal.c320def131b39bceabd8.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-cyrillic-ext-700-normal.361cdfd3a3f9c4bb09ca.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-ext-700-normal.6b08bc756cd72f5af9e8.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-cyrillic-700-normal.fd3dfdd6cb1a9175b63d.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-700-normal.e00802373a2c2db6b30d.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-greek-ext-700-normal.eb28a447335ba6d54fcb.woff2) format("woff2"),url(../../static/media/roboto-greek-ext-700-normal.1aff9f4cd71608489b9a.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-greek-700-normal.d7dfd0b02cd8311e2a97.woff2) format("woff2"),url(../../static/media/roboto-greek-700-normal.d23e03cf87ba44e5af6f.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-math-700-normal.f6f4b54add6ab9d60a0f.woff2) format("woff2"),url(../../static/media/roboto-math-700-normal.a6fde3ddcb1629fd58b7.woff) format("woff");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-symbols-700-normal.634070e045ac99822c21.woff2) format("woff2"),url(../../static/media/roboto-symbols-700-normal.017e476ef02f62144169.woff) format("woff");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-vietnamese-700-normal.44a103f706f3ffe6a041.woff2) format("woff2"),url(../../static/media/roboto-vietnamese-700-normal.fa58a041a3336692af1e.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-latin-ext-700-normal.8e656eff240311c6050a.woff2) format("woff2"),url(../../static/media/roboto-latin-ext-700-normal.2d3c3ba6fe2d9c1026a5.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-latin-700-normal.c4d6cab43bec89049809.woff2) format("woff2"),url(../../static/media/roboto-latin-700-normal.bcfbe8accc968a375a8e.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}[frontend-theme=classic]{--main-bg-color:#c4c2c2;--main-text-color:#000;--main-grey-color:#616161;--main-light-color:#959595;--main-icon-color:#4d4d4d;--main-log-color:var(--main-text-color);--main-button-color:#fff;--main-button-bg-color:var(--primary-color);--main-menu-color:#26292d;--main-menu-bg-color:#e2e2e2;--main-menu-hover-color:#959595;--main-label-color:var(--main-grey-color);--primary-color:#009a00;--secondary-color:#92771f;--header-bg-color:var(--primary-color);--header-text-color:#fff;--footer-bg-color:var(--div-bg-color);--footer-text-color:var(--div-text-color);--ttip-bg-color:#555;--ttip-text-color:#fff;--table-border-color:#ddd;--table-text-color:#000;--table-even-bg-color:#bdbdbd;--table-odd-bg-color:var(--div-bg-color);--table-hover-bg-color:#5f8c9e;--table-selected-bg-color:#5f8c9e;--div-bg-color:#adadad;--div-text-color:#000;--div-shadow-color:#888;--div-border-color:#8b8b8b;--div-border-radius:0px;--div-title-bg-color:var(--div-bg-color);--div-title-text-color:#000;background-color:var(--main-bg-color);color:var(--main-text-color);font-family:Roboto,Helvetica,Arial,sans-serif}[frontend-theme=dark]{--main-bg-color:#26292d;--main-text-color:#fff;--main-grey-color:#616161;--main-light-color:#959595;--main-icon-color:var(--main-light-color);--main-log-color:var(--main-light-color);--main-button-color:#fff;--main-button-bg-color:var(--primary-color);--main-menu-color:var(--main-light-color);--main-menu-bg-color:var(--main-bg-color);--main-menu-hover-color:var(--div-bg-color);--main-label-color:var(--main-grey-color);--primary-color:#1976d2;--secondary-color:#a58827;--header-bg-color:var(--div-bg-color);--header-text-color:var(--primary-color);--footer-bg-color:var(--div-bg-color);--footer-text-color:var(--div-text-color);--ttip-bg-color:#555;--ttip-text-color:#fff;--table-border-color:var(--div-bg-color);--table-text-color:var(--main-light-color);--table-even-bg-color:var(--div-bg-color);--table-odd-bg-color:var(--div-bg-color);--table-hover-bg-color:var(--main-bg-color);--table-selected-bg-color:var(--main-bg-color);--div-bg-color:#1b1d21;--div-text-color:var(--main-light-color);--div-shadow-color:#34373d;--div-border-color:#1b1d21;--div-border-radius:5px;--div-title-bg-color:#1b1d21;--div-title-text-color:var(--primary-color)}[frontend-theme=dark],[frontend-theme=light]{background-color:var(--main-bg-color);color:var(--main-text-color);font-family:Roboto,Helvetica,Arial,sans-serif}[frontend-theme=light]{--main-bg-color:#f0f0f0;--main-text-color:#212121;--main-grey-color:#616161;--main-light-color:#363636;--main-icon-color:#7a7a7a;--main-log-color:var(--main-light-color);--main-button-color:#fff;--main-button-bg-color:var(--primary-color);--main-menu-color:var(--main-text-color);--main-menu-bg-color:var(--div-bg-color);--main-menu-hover-color:#85c0d8;--main-label-color:var(--main-grey-color);--primary-color:#2196f3;--secondary-color:#a58827;--header-bg-color:var(--div-bg-color);--header-text-color:var(--div-text-color);--footer-bg-color:var(--div-bg-color);--footer-text-color:var(--div-text-color);--ttip-bg-color:#555;--ttip-text-color:#fff;--table-border-color:var(--div-bg-color);--table-text-color:var(--main-light-color);--table-even-bg-color:var(--div-bg-color);--table-odd-bg-color:var(--div-bg-color);--table-hover-bg-color:#85c0d8;--table-selected-bg-color:#85c0d8;--div-bg-color:#fff;--div-text-color:#212121;--div-shadow-color:#bfbfbf;--div-border-color:var(--div-bg-color);--div-border-radius:5px;--div-title-bg-color:var(--div-bg-color);--div-title-text-color:var(--div-text-color)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:var(--primary-color);border-radius:5px}::-webkit-scrollbar-track{background:"inherit"}html{scrollbar-color:var(--primary-color) var(--div-bg-color);scrollbar-width:thin}.tooltip-container{display:inline-block;position:relative;z-index:10}.tooltip-text{background-color:var(--ttip-bg-color);border-radius:6px;bottom:calc(100% + 10px);color:var(--ttip-text-color);font-size:12px;left:50%;margin-left:-60px;opacity:0;padding:5px;position:absolute;text-align:center;transition:opacity .3s;visibility:hidden;z-index:10}.tooltip-container:hover{cursor:pointer;z-index:10}.tooltip-container:hover .tooltip-text{opacity:1;visibility:visible;z-index:10}.status-enabled{background-color:green}.status-disabled,.status-enabled{border-radius:.25rem;box-shadow:2px 2px 2px #0003;color:#fff;cursor:pointer;font-size:12px;padding:.2rem;text-align:center}.status-disabled{background-color:red}.status-information{background-color:#9e9e9e;color:#fff}.status-information,.status-warning{border-radius:.25rem;box-shadow:2px 2px 2px #0003;cursor:pointer;font-size:12px;padding:2px 10px;text-align:center}.status-warning{background-color:#e9db18;color:#000}.status-sponsor{background-color:#b6409c;padding:2px 10px}.status-blue,.status-sponsor{border-radius:.25rem;box-shadow:2px 2px 2px #0003;color:#fff;cursor:pointer;font-size:12px;text-align:center}.status-blue{background-color:#5f8c9e;padding:.2rem}.header{flex-direction:row;justify-content:space-between}.header,.sub-header{align-items:center;display:flex;gap:20px;height:40px;margin:0;padding:0}.sub-header{flex:0 0 auto;flex-direction:row}nav{align-items:center;display:flex}.nav-link{color:var(--main-icon-color);font-size:20px;margin:0 10px;text-decoration:none;transition:color .3s ease}.nav-link:hover{color:var(--primary-color)}table{border-collapse:collapse;table-layout:auto;width:100%}thead{border:1px solid var(--table-border-color);position:-webkit-sticky;position:sticky;top:0;z-index:10}thead th{background:var(--header-bg-color);color:var(--header-text-color);z-index:10}tbody td,thead th{border:1px solid var(--table-border-color);padding:5px 10px;text-align:left}tbody td{font-size:14px;margin:0}tbody tr:hover{background-color:var(--table-hover-bg-color);color:var(--table-text-color)}.table-content-even{background-color:var(--table-even-bg-color);color:var(--table-text-color)}.table-content-odd{background-color:var(--table-odd-bg-color);color:var(--table-text-color)}.table-content-selected{background-color:var(--table-selected-bg-color);color:var(--table-text-color)}h3{margin:0}.MbfScreen{background-color:var(--main-bg-color);height:calc(100vh - 40px);padding:20px;width:calc(100vw - 40px)}.MbfPageDiv,.MbfScreen{display:flex;flex-direction:column;gap:20px;margin:0}.MbfPageDiv{height:calc(100% - 60px);padding:0;width:100%}.MbfWindowDiv{background-color:var(--div-bg-color);border:1px solid var(--table-border-color);border-radius:var(--div-border-radius);box-shadow:5px 5px 10px var(--div-shadow-color);box-sizing:border-box}.MbfWindowDiv,.MbfWindowDivTable{display:flex;flex-direction:column}.MbfWindowDivTable{display:block;flex:1 1 auto;gap:0;margin:-1px;overflow:auto;padding:0}.MbfWindowHeader{align-items:center;background-color:var(--header-bg-color);border-bottom:1px solid var(--table-border-color);box-sizing:border-box;display:"flex";padding:0;width:100%}.MbfWindowHeader,.MbfWindowHeaderText{color:var(--header-text-color);margin:0}.MbfWindowHeaderText{font-weight:700;padding:5px 10px}.MbfWindowFooter{align-items:center;display:"flex";justify-content:center;padding:0 10px 10px}.MbfWindowFooter,.MbfWindowFooterText{background-color:var(--footer-bg-color);color:var(--footer-text-color);margin:0}.MbfWindowFooterText{font-weight:700;padding:5px;text-align:center}.MbfWindowBody{display:flex;flex:1 1 auto;gap:10px;margin:0;padding:10px}.MbfWindowBodyColumn{flex:1 1 auto;flex-direction:column;padding:10px 0;width:100%}.MbfWindowBodyColumn,.MbfWindowBodyRow{display:flex;gap:0;margin:0;overflow:auto}.MbfWindowBodyRow{flex:1 1 auto;flex-direction:row;height:100%;padding:0 10px}.configSubmitButton{display:flex;flex-direction:row;justify-content:center;margin:20px;width:auto}.configSubmitButton button{width:auto}@media (max-width:1300px){.MbfScreen{height:1024px;width:1300px}.xxxheader{flex-direction:column}.xxxheader,.xxxsub-header{align-items:start;justify-content:start}}
|
|
2
|
-
/*# sourceMappingURL=main.
|
|
1
|
+
@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-cyrillic-ext-300-normal.b9d87b04a9119d8d2fdf.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-ext-300-normal.a80c0d0719b1acb8f731.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-cyrillic-300-normal.89d0351bce4bc857dba6.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-300-normal.44340549d94d10899346.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-greek-ext-300-normal.a88b77bb10633a8045e3.woff2) format("woff2"),url(../../static/media/roboto-greek-ext-300-normal.60729cafbded24073dfb.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-greek-300-normal.fdd1f928a606aa116a44.woff2) format("woff2"),url(../../static/media/roboto-greek-300-normal.8300b541aa89b8301a6f.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-math-300-normal.acc9c7c1d1fe3a1c7d44.woff2) format("woff2"),url(../../static/media/roboto-math-300-normal.90364ecfad5101ceb1a0.woff) format("woff");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-symbols-300-normal.616638ec44336b3da884.woff2) format("woff2"),url(../../static/media/roboto-symbols-300-normal.52cdf8344b378f0c4580.woff) format("woff");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-vietnamese-300-normal.6f0bf63e956c09377ef8.woff2) format("woff2"),url(../../static/media/roboto-vietnamese-300-normal.53f399e4522b647bafa7.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-latin-ext-300-normal.948c05192b1e64d931b1.woff2) format("woff2"),url(../../static/media/roboto-latin-ext-300-normal.6ddd1cfdbc5e74bcdab8.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(../../static/media/roboto-latin-300-normal.db56943a88e4852343ae.woff2) format("woff2"),url(../../static/media/roboto-latin-300-normal.cb14f8e80cc69ddbac34.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-cyrillic-ext-400-normal.31476620b88eec076438.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-ext-400-normal.5e3f232f89080810567d.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-cyrillic-400-normal.86d5c52f4588f9f221d7.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-400-normal.d67ac585bb6a05dbf71c.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-greek-ext-400-normal.2d5875b032a1cca91eb2.woff2) format("woff2"),url(../../static/media/roboto-greek-ext-400-normal.a0baf7d6726d8f751a27.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-greek-400-normal.98a717d5a38e77c0f657.woff2) format("woff2"),url(../../static/media/roboto-greek-400-normal.ecd8572d631f20ff5bd5.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-math-400-normal.b60d9fba1e21da7497e6.woff2) format("woff2"),url(../../static/media/roboto-math-400-normal.3d3a272e5233c5fb1969.woff) format("woff");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-symbols-400-normal.bb5b5d1459beb07bd3d5.woff2) format("woff2"),url(../../static/media/roboto-symbols-400-normal.f4f7e3bd8264f1a640cb.woff) format("woff");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-vietnamese-400-normal.b1b8baa94fbcaa57d098.woff2) format("woff2"),url(../../static/media/roboto-vietnamese-400-normal.1cffe58e71a9109191a2.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-latin-ext-400-normal.0f86a30ca7e981fcfc99.woff2) format("woff2"),url(../../static/media/roboto-latin-ext-400-normal.2bfbba2d51a85c8702dd.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../../static/media/roboto-latin-400-normal.df1be0be92f6f19b8115.woff2) format("woff2"),url(../../static/media/roboto-latin-400-normal.50a0a61e29c19a2f05cb.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-cyrillic-ext-500-normal.634ee2238bf30f362d52.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-ext-500-normal.d6c661248da2fde17768.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-cyrillic-500-normal.1fb2c6d685bfb888cfa3.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-500-normal.36f79cc7e73a69da4438.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-greek-ext-500-normal.bef9c15c7164d6435aad.woff2) format("woff2"),url(../../static/media/roboto-greek-ext-500-normal.1964239c2800b6bd7e39.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-greek-500-normal.5c8100481d4e784afbf2.woff2) format("woff2"),url(../../static/media/roboto-greek-500-normal.4fe733bc436afc295c24.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-math-500-normal.41db483cb764343fca71.woff2) format("woff2"),url(../../static/media/roboto-math-500-normal.c3014a611cd9d8fa6252.woff) format("woff");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-symbols-500-normal.a5457b0ec984fd4cc8da.woff2) format("woff2"),url(../../static/media/roboto-symbols-500-normal.09b674875029289fd9a7.woff) format("woff");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-vietnamese-500-normal.148734d63bd96c6e964f.woff2) format("woff2"),url(../../static/media/roboto-vietnamese-500-normal.72dbf2a25dd55b80b137.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-latin-ext-500-normal.8f02573e78730021ef49.woff2) format("woff2"),url(../../static/media/roboto-latin-ext-500-normal.aecaab4c4da2bf91377a.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(../../static/media/roboto-latin-500-normal.599f66a60bdf974e578e.woff2) format("woff2"),url(../../static/media/roboto-latin-500-normal.c320def131b39bceabd8.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-cyrillic-ext-700-normal.361cdfd3a3f9c4bb09ca.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-ext-700-normal.6b08bc756cd72f5af9e8.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-cyrillic-700-normal.fd3dfdd6cb1a9175b63d.woff2) format("woff2"),url(../../static/media/roboto-cyrillic-700-normal.e00802373a2c2db6b30d.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-greek-ext-700-normal.eb28a447335ba6d54fcb.woff2) format("woff2"),url(../../static/media/roboto-greek-ext-700-normal.1aff9f4cd71608489b9a.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-greek-700-normal.d7dfd0b02cd8311e2a97.woff2) format("woff2"),url(../../static/media/roboto-greek-700-normal.d23e03cf87ba44e5af6f.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-math-700-normal.f6f4b54add6ab9d60a0f.woff2) format("woff2"),url(../../static/media/roboto-math-700-normal.a6fde3ddcb1629fd58b7.woff) format("woff");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-symbols-700-normal.634070e045ac99822c21.woff2) format("woff2"),url(../../static/media/roboto-symbols-700-normal.017e476ef02f62144169.woff) format("woff");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-vietnamese-700-normal.44a103f706f3ffe6a041.woff2) format("woff2"),url(../../static/media/roboto-vietnamese-700-normal.fa58a041a3336692af1e.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-latin-ext-700-normal.8e656eff240311c6050a.woff2) format("woff2"),url(../../static/media/roboto-latin-ext-700-normal.2d3c3ba6fe2d9c1026a5.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(../../static/media/roboto-latin-700-normal.c4d6cab43bec89049809.woff2) format("woff2"),url(../../static/media/roboto-latin-700-normal.bcfbe8accc968a375a8e.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}[frontend-theme=classic]{--main-bg-color:#c4c2c2;--main-text-color:#000;--main-grey-color:#616161;--main-light-color:#959595;--main-icon-color:#4d4d4d;--main-log-color:var(--main-text-color);--main-button-color:#fff;--main-button-bg-color:var(--primary-color);--main-menu-color:#26292d;--main-menu-bg-color:#e2e2e2;--main-menu-hover-color:#959595;--main-label-color:var(--main-grey-color);--primary-color:#009a00;--secondary-color:#92771f;--header-bg-color:var(--primary-color);--header-text-color:#fff;--footer-bg-color:var(--div-bg-color);--footer-text-color:var(--div-text-color);--ttip-bg-color:#555;--ttip-text-color:#fff;--table-border-color:#ddd;--table-text-color:#000;--table-even-bg-color:#bdbdbd;--table-odd-bg-color:var(--div-bg-color);--table-hover-bg-color:#5f8c9e;--table-selected-bg-color:#5f8c9e;--div-bg-color:#adadad;--div-text-color:#000;--div-shadow-color:#888;--div-border-color:#8b8b8b;--div-border-radius:0px;--div-title-bg-color:var(--div-bg-color);--div-title-text-color:#000;background-color:var(--main-bg-color);color:var(--main-text-color);font-family:Roboto,Helvetica,Arial,sans-serif}[frontend-theme=dark]{--main-bg-color:#26292d;--main-text-color:#fff;--main-grey-color:#616161;--main-light-color:#959595;--main-icon-color:var(--main-light-color);--main-log-color:var(--main-light-color);--main-button-color:#fff;--main-button-bg-color:var(--primary-color);--main-menu-color:var(--main-light-color);--main-menu-bg-color:var(--main-bg-color);--main-menu-hover-color:var(--div-bg-color);--main-label-color:var(--main-grey-color);--primary-color:#1976d2;--secondary-color:#a58827;--header-bg-color:var(--div-bg-color);--header-text-color:var(--primary-color);--footer-bg-color:var(--div-bg-color);--footer-text-color:var(--div-text-color);--ttip-bg-color:#555;--ttip-text-color:#fff;--table-border-color:var(--div-bg-color);--table-text-color:var(--main-light-color);--table-even-bg-color:var(--div-bg-color);--table-odd-bg-color:var(--div-bg-color);--table-hover-bg-color:var(--main-bg-color);--table-selected-bg-color:var(--main-bg-color);--div-bg-color:#1b1d21;--div-text-color:var(--main-light-color);--div-shadow-color:#34373d;--div-border-color:#1b1d21;--div-border-radius:5px;--div-title-bg-color:#1b1d21;--div-title-text-color:var(--primary-color)}[frontend-theme=dark],[frontend-theme=light]{background-color:var(--main-bg-color);color:var(--main-text-color);font-family:Roboto,Helvetica,Arial,sans-serif}[frontend-theme=light]{--main-bg-color:#f0f0f0;--main-text-color:#212121;--main-grey-color:#616161;--main-light-color:#363636;--main-icon-color:#7a7a7a;--main-log-color:var(--main-light-color);--main-button-color:#fff;--main-button-bg-color:var(--primary-color);--main-menu-color:var(--main-text-color);--main-menu-bg-color:var(--div-bg-color);--main-menu-hover-color:#85c0d8;--main-label-color:var(--main-grey-color);--primary-color:#2196f3;--secondary-color:#a58827;--header-bg-color:var(--div-bg-color);--header-text-color:var(--div-text-color);--footer-bg-color:var(--div-bg-color);--footer-text-color:var(--div-text-color);--ttip-bg-color:#555;--ttip-text-color:#fff;--table-border-color:var(--div-bg-color);--table-text-color:var(--main-light-color);--table-even-bg-color:var(--div-bg-color);--table-odd-bg-color:var(--div-bg-color);--table-hover-bg-color:#85c0d8;--table-selected-bg-color:#85c0d8;--div-bg-color:#fff;--div-text-color:#212121;--div-shadow-color:#bfbfbf;--div-border-color:var(--div-bg-color);--div-border-radius:5px;--div-title-bg-color:var(--div-bg-color);--div-title-text-color:var(--div-text-color)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:var(--primary-color);border-radius:5px}::-webkit-scrollbar-track{background:"inherit"}.thin-scroll,html{scrollbar-color:var(--primary-color) var(--div-bg-color);scrollbar-width:thin}.thin-scroll::-webkit-scrollbar{height:5px;width:5px}.thin-scroll::-webkit-scrollbar-thumb{background:var(--primary-color);border-radius:5px}.tooltip-container{display:inline-block;position:relative;z-index:10}.tooltip-text{background-color:var(--ttip-bg-color);border-radius:6px;bottom:calc(100% + 10px);color:var(--ttip-text-color);font-size:12px;left:50%;margin-left:-60px;opacity:0;padding:5px;position:absolute;text-align:center;transition:opacity .3s;visibility:hidden;z-index:10}.tooltip-container:hover{cursor:pointer;z-index:10}.tooltip-container:hover .tooltip-text{opacity:1;visibility:visible;z-index:10}.status-enabled{background-color:green}.status-disabled,.status-enabled{border-radius:.25rem;box-shadow:2px 2px 2px #0003;color:#fff;cursor:pointer;font-size:12px;padding:.2rem;text-align:center}.status-disabled{background-color:red}.status-information{background-color:#9e9e9e;color:#fff}.status-information,.status-warning{border-radius:.25rem;box-shadow:2px 2px 2px #0003;cursor:pointer;font-size:12px;padding:2px 10px;text-align:center}.status-warning{background-color:#e9db18;color:#000}.status-sponsor{background-color:#b6409c;padding:2px 10px}.status-blue,.status-sponsor{border-radius:.25rem;box-shadow:2px 2px 2px #0003;color:#fff;cursor:pointer;font-size:12px;text-align:center}.status-blue{background-color:#5f8c9e;padding:.2rem}.header{flex-direction:row;justify-content:space-between}.header,.sub-header{align-items:center;display:flex;gap:20px;height:40px;margin:0;padding:0}.sub-header{flex:0 0 auto;flex-direction:row}nav{align-items:center;display:flex}.nav-link{color:var(--main-icon-color);font-size:20px;margin:0 10px;text-decoration:none;transition:color .3s ease}.nav-link:hover{color:var(--primary-color)}table{border-collapse:collapse;table-layout:auto;width:100%}thead{border:1px solid var(--table-border-color);position:-webkit-sticky;position:sticky;top:0;z-index:10}thead th{background:var(--header-bg-color);color:var(--header-text-color);z-index:10}tbody td,thead th{border:1px solid var(--table-border-color);padding:5px 10px;text-align:left}tbody td{font-size:14px;margin:0}tbody tr:hover{background-color:var(--table-hover-bg-color);color:var(--table-text-color)}.table-content-even{background-color:var(--table-even-bg-color);color:var(--table-text-color)}.table-content-odd{background-color:var(--table-odd-bg-color);color:var(--table-text-color)}.table-content-selected{background-color:var(--table-selected-bg-color);color:var(--table-text-color)}h3{margin:0}.MbfScreen{background-color:var(--main-bg-color);height:calc(100vh - 40px);padding:20px;width:calc(100vw - 40px)}.MbfPageDiv,.MbfScreen{display:flex;flex-direction:column;gap:20px;margin:0}.MbfPageDiv{height:calc(100% - 60px);padding:0;width:100%}.MbfWindowDiv{background-color:var(--div-bg-color);border:1px solid var(--table-border-color);border-radius:var(--div-border-radius);box-shadow:5px 5px 10px var(--div-shadow-color);box-sizing:border-box}.MbfWindowDiv,.MbfWindowDivTable{display:flex;flex-direction:column}.MbfWindowDivTable{display:block;flex:1 1 auto;gap:0;margin:-1px;overflow:auto;padding:0}.MbfWindowHeaderFooterIcons{display:flex;flex-direction:row;gap:10px;margin:0;padding:0 10px}.MbfWindowHeader{align-items:center;background-color:var(--header-bg-color);border-bottom:1px solid var(--table-border-color);box-sizing:border-box;display:flex;flex-direction:row;padding:0;width:100%}.MbfWindowHeader,.MbfWindowHeaderText{color:var(--header-text-color);margin:0}.MbfWindowHeaderText{font-weight:700;padding:5px 10px}.MbfWindowFooter{align-items:center;display:flex;flex-direction:row;justify-content:center;padding:0}.MbfWindowFooter,.MbfWindowFooterText{background-color:var(--footer-bg-color);color:var(--footer-text-color);margin:0}.MbfWindowFooterText{font-weight:700;padding:5px 10px;text-align:center}.MbfWindowBody{display:flex;flex:1 1 auto;gap:10px;margin:0;padding:10px}.MbfWindowBodyColumn{flex:1 1 auto;flex-direction:column;padding:10px 0;width:100%}.MbfWindowBodyColumn,.MbfWindowBodyRow{display:flex;gap:0;margin:0;overflow:auto}.MbfWindowBodyRow{flex:1 1 auto;flex-direction:row;height:100%;padding:0 10px}.configSubmitButton{display:flex;flex-direction:row;justify-content:center;margin:20px;width:auto}.configSubmitButton button{width:auto}@media (max-width:1300px){.MbfScreen{height:1024px;width:1300px}.xxxheader{flex-direction:column}.xxxheader,.xxxsub-header{align-items:start;justify-content:start}}
|
|
2
|
+
/*# sourceMappingURL=main.56c16a87.css.map*/
|