matlab-proxy 0.22.0__py3-none-any.whl → 0.23.3__py3-none-any.whl

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.

Potentially problematic release.


This version of matlab-proxy might be problematic. Click here for more details.

Files changed (28) hide show
  1. matlab_proxy/app_state.py +42 -47
  2. matlab_proxy/default_configuration.py +39 -4
  3. matlab_proxy/gui/asset-manifest.json +6 -6
  4. matlab_proxy/gui/index.html +1 -1
  5. matlab_proxy/gui/static/css/{main.6cd0caba.css → main.efa05ff9.css} +2 -2
  6. matlab_proxy/gui/static/css/{main.6cd0caba.css.map → main.efa05ff9.css.map} +1 -1
  7. matlab_proxy/gui/static/js/{main.77e6cbaf.js → main.ce0f5505.js} +3 -3
  8. matlab_proxy/gui/static/js/main.ce0f5505.js.map +1 -0
  9. matlab_proxy/settings.py +1 -1
  10. matlab_proxy/util/__init__.py +1 -1
  11. matlab_proxy/util/mwi/validators.py +17 -16
  12. {matlab_proxy-0.22.0.dist-info → matlab_proxy-0.23.3.dist-info}/METADATA +2 -2
  13. {matlab_proxy-0.22.0.dist-info → matlab_proxy-0.23.3.dist-info}/RECORD +27 -27
  14. {matlab_proxy-0.22.0.dist-info → matlab_proxy-0.23.3.dist-info}/WHEEL +1 -1
  15. matlab_proxy_manager/lib/api.py +90 -49
  16. matlab_proxy_manager/storage/server.py +2 -2
  17. matlab_proxy_manager/utils/helpers.py +38 -21
  18. matlab_proxy_manager/web/app.py +92 -49
  19. matlab_proxy_manager/web/monitor.py +1 -2
  20. matlab_proxy_manager/web/watcher.py +11 -0
  21. tests/unit/test_app.py +1 -0
  22. tests/unit/test_app_state.py +79 -4
  23. tests/unit/util/mwi/test_validators.py +4 -5
  24. matlab_proxy/gui/static/js/main.77e6cbaf.js.map +0 -1
  25. /matlab_proxy/gui/static/js/{main.77e6cbaf.js.LICENSE.txt → main.ce0f5505.js.LICENSE.txt} +0 -0
  26. {matlab_proxy-0.22.0.dist-info → matlab_proxy-0.23.3.dist-info}/LICENSE.md +0 -0
  27. {matlab_proxy-0.22.0.dist-info → matlab_proxy-0.23.3.dist-info}/entry_points.txt +0 -0
  28. {matlab_proxy-0.22.0.dist-info → matlab_proxy-0.23.3.dist-info}/top_level.txt +0 -0
matlab_proxy/app_state.py CHANGED
@@ -58,13 +58,13 @@ class AppState:
58
58
  self.settings = settings
59
59
  self.processes = {"matlab": None, "xvfb": None}
60
60
 
61
- # Timeout for processes launched by matlab-proxy
61
+ # Timeout for processes started by matlab-proxy
62
62
  self.PROCESS_TIMEOUT = get_process_startup_timeout()
63
63
 
64
- # The port on which MATLAB(launched by this matlab-proxy process) starts on.
64
+ # The port on which MATLAB(started by this matlab-proxy process) starts on.
65
65
  self.matlab_port = None
66
66
 
67
- # The directory in which the instance of MATLAB (launched by this matlab-proxy process) will write logs to.
67
+ # The directory in which the instance of MATLAB (started by this matlab-proxy process) will write logs to.
68
68
  self.mwi_logs_dir = None
69
69
 
70
70
  # Dictionary of all files used to manage the MATLAB session.
@@ -99,7 +99,7 @@ class AppState:
99
99
  self.embedded_connector_start_time = None
100
100
 
101
101
  # Keep track of the state of the Embedded Connector.
102
- # If there is some problem with launching the Embedded Connector(say an issue with licensing),
102
+ # If there is some problem with starting the Embedded Connector(say an issue with licensing),
103
103
  # the state of MATLAB process in app_state will continue to be in a 'starting' indefinitely.
104
104
  # This variable can be either "up" or "down"
105
105
  self.embedded_connector_state = "down"
@@ -183,7 +183,7 @@ class AppState:
183
183
  async def __decrement_idle_timer(self):
184
184
  """Decrements the IDLE timer by 1 after acquiring a lock."""
185
185
  this_task = "decrement_idle_timer"
186
- logger.info(f"{this_task}: Starting task...")
186
+ logger.debug(f"{this_task}: Starting task...")
187
187
 
188
188
  while self.get_remaining_idle_timeout() > 0:
189
189
  # If MATLAB is either starting, stopping or busy, reset the IDLE timer.
@@ -222,7 +222,7 @@ class AppState:
222
222
  def __delete_cached_config_file(self):
223
223
  """Deletes the cached config file"""
224
224
  try:
225
- logger.info(f"Deleting any cached config files!")
225
+ logger.debug(f"Deleting any cached config files!")
226
226
  os.remove(self.__get_cached_config_file())
227
227
  except FileNotFoundError:
228
228
  # The file being absent is acceptable.
@@ -230,7 +230,7 @@ class AppState:
230
230
 
231
231
  def __reset_and_delete_cached_config(self):
232
232
  """Reset licensing variable of the class and removes the cached config file."""
233
- logger.info(f"Resetting cached config information...")
233
+ logger.debug(f"Resetting cached config information...")
234
234
  self.licensing = None
235
235
  self.__delete_cached_config_file()
236
236
 
@@ -259,14 +259,14 @@ class AppState:
259
259
  # Default value
260
260
  self.licensing = None
261
261
 
262
- # If MWI_USE_EXISTING_LICENSE is set in environment, try launching MATLAB directly
262
+ # If MWI_USE_EXISTING_LICENSE is set in environment, try starting MATLAB directly
263
263
  if self.settings["mwi_use_existing_license"]:
264
264
  self.licensing = {"type": "existing_license"}
265
265
  logger.debug(
266
266
  f"{mwi_env.get_env_name_mwi_use_existing_license()} variable set in environment"
267
267
  )
268
268
  logger.info(
269
- f"!!! Launching MATLAB without providing any additional licensing information. This requires MATLAB to have been activated on the machine from which its being launched !!!"
269
+ f"!!! Starting MATLAB without providing any additional licensing information. This requires MATLAB to have been activated on the machine from which its being started !!!"
270
270
  )
271
271
 
272
272
  # Delete old config info from cache to ensure its wiped out first before persisting new info.
@@ -276,7 +276,7 @@ class AppState:
276
276
  elif self.settings.get("nlm_conn_str", None) is not None:
277
277
  nlm_licensing_str = self.settings.get("nlm_conn_str")
278
278
  logger.debug(f"Found NLM:[{nlm_licensing_str}] set in environment")
279
- logger.debug(f"Using NLM string to connect ... ")
279
+ logger.info(f"Using NLM:{nlm_licensing_str} to connect...")
280
280
  self.licensing = {
281
281
  "type": "nlm",
282
282
  "conn_str": nlm_licensing_str,
@@ -307,7 +307,7 @@ class AppState:
307
307
  "type": "nlm",
308
308
  "conn_str": licensing["conn_str"],
309
309
  }
310
- logger.info("Using cached NLM licensing to launch MATLAB")
310
+ logger.debug("Using cached NLM licensing to start MATLAB")
311
311
 
312
312
  elif licensing["type"] == "mhlm":
313
313
  self.licensing = {
@@ -335,12 +335,12 @@ class AppState:
335
335
  )
336
336
  if successful_update:
337
337
  logger.debug(
338
- "Using cached Online Licensing to launch MATLAB."
338
+ "Using cached Online Licensing to start MATLAB."
339
339
  )
340
340
  else:
341
341
  self.__reset_and_delete_cached_config()
342
342
  elif licensing["type"] == "existing_license":
343
- logger.info("Using cached existing license to launch MATLAB")
343
+ logger.debug("Using cached existing license to start MATLAB")
344
344
  self.licensing = licensing
345
345
  else:
346
346
  # Somethings wrong, licensing is neither NLM or MHLM
@@ -456,7 +456,7 @@ class AppState:
456
456
  async def __update_matlab_state(self) -> None:
457
457
  """An indefinitely running asyncio task which determines the status of MATLAB to be down/starting/up."""
458
458
  this_task = "update_matlab_state"
459
- logger.info(f"{this_task}: Starting task...")
459
+ logger.debug(f"{this_task}: Starting task...")
460
460
 
461
461
  # Start with using the ping endpoint to update matlab and its 'busy' state.
462
462
  function_to_call = self.__update_matlab_state_using_ping_endpoint
@@ -920,14 +920,14 @@ class AppState:
920
920
  try:
921
921
  for session_file in self.mwi_server_session_files.items():
922
922
  if session_file[1] is not None:
923
- logger.info(f"Deleting:{session_file[1]}")
923
+ logger.debug(f"Deleting:{session_file[1]}")
924
924
  session_file[1].unlink()
925
925
  except FileNotFoundError:
926
926
  # Files may not exist if cleanup is called before they are created
927
927
  pass
928
928
 
929
929
  async def __setup_env_for_matlab(self) -> dict:
930
- """Configure the environment variables required for launching MATLAB by matlab-proxy.
930
+ """Configure the environment variables required for starting MATLAB by matlab-proxy.
931
931
 
932
932
  Returns:
933
933
  [dict]: Containing keys as the Env variable names and values are its corresponding values.
@@ -979,17 +979,17 @@ class AppState:
979
979
  if system.is_linux():
980
980
  if self.settings.get("matlab_display", None):
981
981
  matlab_env["DISPLAY"] = self.settings["matlab_display"]
982
- logger.info(
983
- f"Using the display number supplied by Xvfb process'{matlab_env['DISPLAY']}' for launching MATLAB"
982
+ logger.debug(
983
+ f"Using the display number supplied by Xvfb process'{matlab_env['DISPLAY']}' for starting MATLAB"
984
984
  )
985
985
  else:
986
986
  if "DISPLAY" in matlab_env:
987
- logger.info(
988
- f"Using the existing DISPLAY environment variable with value:{matlab_env['DISPLAY']} for launching MATLAB"
987
+ logger.debug(
988
+ f"Using the existing DISPLAY environment variable with value:{matlab_env['DISPLAY']} for starting MATLAB"
989
989
  )
990
990
  else:
991
- logger.info(
992
- "No DISPLAY environment variable found. Launching MATLAB without it."
991
+ logger.debug(
992
+ "No DISPLAY environment variable found. Starting MATLAB without it."
993
993
  )
994
994
 
995
995
  # The matlab ready file is written into this location(self.mwi_logs_dir) by MATLAB
@@ -1080,11 +1080,11 @@ class AppState:
1080
1080
 
1081
1081
  return xvfb
1082
1082
 
1083
- # If something went wrong ie. exception is raised in launching Xvfb process, capture error for logging
1083
+ # If something went wrong ie. exception is raised in starting Xvfb process, capture error for logging
1084
1084
  # and for showing the error on the frontend.
1085
1085
 
1086
1086
  # FileNotFoundError: is thrown if Xvfb is not found on System Path.
1087
- # XvfbError: is thrown if something went wrong when launching Xvfb process.
1087
+ # XvfbError: is thrown if something went wrong when starting Xvfb process.
1088
1088
  except (FileNotFoundError, XvfbError) as err:
1089
1089
  self.error = XvfbError(
1090
1090
  """Unable to start the Xvfb process. Ensure Xvfb is installed and is available on the System Path. See https://github.com/mathworks/matlab-proxy#requirements for information on Xvfb"""
@@ -1178,7 +1178,7 @@ class AppState:
1178
1178
  else:
1179
1179
  time_diff = time.time() - self.embedded_connector_start_time
1180
1180
  if time_diff > self.PROCESS_TIMEOUT:
1181
- # Since max allowed startup time has elapsed, it means that MATLAB is in a stuck state and cannot be launched.
1181
+ # Since max allowed startup time has elapsed, it means that MATLAB is stuck and is unable to start.
1182
1182
  # Set the error and stop matlab.
1183
1183
  user_visible_error = "Unable to start MATLAB.\nTry again by clicking Start MATLAB."
1184
1184
 
@@ -1187,32 +1187,27 @@ class AppState:
1187
1187
  # So, raise a generic error wherever appropriate
1188
1188
  generic_error = f"MATLAB did not start in {int(self.PROCESS_TIMEOUT)} seconds. Use Windows Remote Desktop to check for any errors."
1189
1189
  logger.error(f":{this_task}: {generic_error}")
1190
- if len(self.logs["matlab"]) == 0:
1191
- await self.__force_stop_matlab(
1192
- user_visible_error, this_task
1193
- )
1194
- # Breaking out of the loop to end this task as matlab-proxy was unable to launch MATLAB successfully
1195
- # even after waiting for self.PROCESS_TIMEOUT
1196
- break
1197
- else:
1198
- # Do not stop the MATLAB process or break from the loop (the error type is unknown)
1199
- self.error = MatlabError(generic_error)
1200
- await asyncio.sleep(5)
1201
- continue
1190
+
1191
+ # Stopping the MATLAB process would remove the UI window displaying the error too.
1192
+ # Do not stop the MATLAB or break from the loop (as the error is still unknown)
1193
+ self.error = MatlabError(generic_error)
1194
+ await asyncio.sleep(5)
1195
+ continue
1202
1196
 
1203
1197
  else:
1204
- # If there are no logs after the max startup time has elapsed, it means that MATLAB is in a stuck state and cannot be launched.
1198
+ # If there are no logs after the max startup time has elapsed, it means that MATLAB is stuck and is unable to start.
1205
1199
  # Set the error and stop matlab.
1206
1200
  logger.error(
1207
1201
  f":{this_task}: MATLAB did not start in {int(self.PROCESS_TIMEOUT)} seconds!"
1208
1202
  )
1209
- if len(self.logs["matlab"]) == 0:
1210
- await self.__force_stop_matlab(
1211
- user_visible_error, this_task
1212
- )
1213
- # Breaking out of the loop to end this task as matlab-proxy was unable to launch MATLAB successfully
1214
- # even after waiting for self.PROCESS_TIMEOUT
1215
- break
1203
+ # MATLAB can be stopped on posix systems because the stderr pipe of the MATLAB process is
1204
+ # read (by __matlab_stderr_reader_posix() task) and is logged by matlab-proxy appropriately.
1205
+ await self.__force_stop_matlab(
1206
+ user_visible_error, this_task
1207
+ )
1208
+ # Breaking out of the loop to end this task as matlab-proxy was unable to start MATLAB successfully
1209
+ # even after waiting for self.PROCESS_TIMEOUT
1210
+ break
1216
1211
 
1217
1212
  else:
1218
1213
  logger.debug(
@@ -1410,7 +1405,7 @@ class AppState:
1410
1405
  if session_file_path is not None:
1411
1406
  self.matlab_session_files[session_file_name] = None
1412
1407
  with contextlib.suppress(FileNotFoundError):
1413
- logger.info(f"Deleting:{session_file_path}")
1408
+ logger.debug(f"Deleting:{session_file_path}")
1414
1409
  session_file_path.unlink()
1415
1410
 
1416
1411
  # In posix systems, variable matlab is an instance of asyncio.subprocess.Process()
@@ -1496,7 +1491,7 @@ class AppState:
1496
1491
  if system.is_posix():
1497
1492
  xvfb = self.processes["xvfb"]
1498
1493
  if xvfb is not None and xvfb.returncode is None:
1499
- logger.info(f"Terminating Xvfb (PID={xvfb.pid})")
1494
+ logger.debug(f"Terminating Xvfb (PID={xvfb.pid})")
1500
1495
  xvfb.terminate()
1501
1496
  waiters.append(xvfb.wait())
1502
1497
 
@@ -1,18 +1,53 @@
1
- # Copyright (c) 2020-2022 The MathWorks, Inc.
1
+ # Copyright 2020-2024 The MathWorks, Inc.
2
+ from enum import Enum
3
+ from typing import List
4
+
2
5
  import matlab_proxy
3
6
 
7
+
8
+ class ConfigKeys(Enum):
9
+ """Enumeration for configuration keys used in the MATLAB proxy setup."""
10
+
11
+ DOC_URL = "doc_url"
12
+ EXT_NAME = "extension_name"
13
+ EXT_NAME_DESC = "extension_name_short_description"
14
+ SHOW_SHUTDOWN_BUTTON = "should_show_shutdown_button"
15
+
16
+
4
17
  # Configure matlab_proxy
5
18
  config = {
6
19
  # Link the documentation url here. This will show up on the website UI
7
20
  # where users can create issue's or make enhancement requests
8
- "doc_url": "https://github.com/mathworks/matlab-proxy/",
21
+ ConfigKeys.DOC_URL.value: "https://github.com/mathworks/matlab-proxy/",
9
22
  # Use a single word for extension_name
10
23
  # It will be used as a flag when launching the integration.
11
24
  # NOTE: This name must be used when setting the entrypoint for matlab_proxy in setup.py
12
25
  # Use '-' or '_' seperated values if more than 1 word is used.
13
26
  # Ex: Hello-World, Alice_Bob.
14
- "extension_name": matlab_proxy.get_default_config_name(),
27
+ ConfigKeys.EXT_NAME.value: matlab_proxy.get_default_config_name(),
15
28
  # This value will be used in various places on the website UI.
16
29
  # Ensure that this is not more than 3 words.
17
- "extension_name_short_description": "MATLAB Desktop",
30
+ ConfigKeys.EXT_NAME_DESC.value: "MATLAB Desktop",
31
+ # Show the shutdown button in the UI for matlab-proxy
32
+ ConfigKeys.SHOW_SHUTDOWN_BUTTON.value: True,
18
33
  }
34
+
35
+
36
+ def get_required_config() -> List[str]:
37
+ """Get the list of required configuration keys.
38
+
39
+ This function returns a list of keys that are required for
40
+ the MATLAB proxy configuration. These keys are used to
41
+ ensure that the configuration dictionary contains all the
42
+ necessary entries.
43
+
44
+ Returns:
45
+ list: A list of strings representing the required
46
+ configuration keys.
47
+ """
48
+ required_keys: List[str] = [
49
+ ConfigKeys.DOC_URL,
50
+ ConfigKeys.EXT_NAME,
51
+ ConfigKeys.EXT_NAME_DESC,
52
+ ]
53
+ return [key.value for key in required_keys]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "files": {
3
- "main.css": "./static/css/main.6cd0caba.css",
4
- "main.js": "./static/js/main.77e6cbaf.js",
3
+ "main.css": "./static/css/main.efa05ff9.css",
4
+ "main.js": "./static/js/main.ce0f5505.js",
5
5
  "static/media/mathworks-pictograms.svg?20181009": "./static/media/mathworks-pictograms.f6f087b008b5a9435f26.svg",
6
6
  "static/media/MATLAB-env-blur.png": "./static/media/MATLAB-env-blur.4fc94edbc82d3184e5cb.png",
7
7
  "static/media/mathworks.svg?20181004": "./static/media/mathworks.80a3218e1ba29f0573fb.svg",
@@ -34,11 +34,11 @@
34
34
  "index.html": "./index.html",
35
35
  "static/media/gripper.svg": "./static/media/gripper.9defbc5e76d0de8bb6e0.svg",
36
36
  "static/media/arrow.svg": "./static/media/arrow.0c2968b90bd9a64c8c3f.svg",
37
- "main.6cd0caba.css.map": "./static/css/main.6cd0caba.css.map",
38
- "main.77e6cbaf.js.map": "./static/js/main.77e6cbaf.js.map"
37
+ "main.efa05ff9.css.map": "./static/css/main.efa05ff9.css.map",
38
+ "main.ce0f5505.js.map": "./static/js/main.ce0f5505.js.map"
39
39
  },
40
40
  "entrypoints": [
41
- "static/css/main.6cd0caba.css",
42
- "static/js/main.77e6cbaf.js"
41
+ "static/css/main.efa05ff9.css",
42
+ "static/js/main.ce0f5505.js"
43
43
  ]
44
44
  }
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="MATLAB"/><meta name="internal_mw_identifier" content="MWI_MATLAB_PROXY_IDENTIFIER"/><link rel="manifest" href="./manifest.json"/><title>MATLAB</title><script defer="defer" src="./static/js/main.77e6cbaf.js"></script><link href="./static/css/main.6cd0caba.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="MATLAB"/><meta name="internal_mw_identifier" content="MWI_MATLAB_PROXY_IDENTIFIER"/><link rel="manifest" href="./manifest.json"/><title>MATLAB</title><script defer="defer" src="./static/js/main.ce0f5505.js"></script><link href="./static/css/main.efa05ff9.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
@@ -9,5 +9,5 @@
9
9
  * https://github.com/ashleydw/lightbox
10
10
  *
11
11
  * License: https://github.com/ashleydw/lightbox/blob/master/LICENSE
12
- */.ekko-lightbox-container{position:relative}.ekko-lightbox-container iframe{height:100%;overflow:hidden;width:100%!important}.ekko-lightbox-nav-overlay{height:100%;left:0;position:absolute;top:0;width:100%;z-index:100}.ekko-lightbox-nav-overlay a{color:#fff;display:block;font-size:30px;height:100%;opacity:0;padding-top:45%;text-shadow:2px 2px 4px #1a1a1a;transition:opacity .5s;width:49%;z-index:100}.ekko-lightbox-nav-overlay a:empty{width:49%}.ekko-lightbox a:hover{opacity:1;text-decoration:none}.ekko-lightbox .glyphicon-chevron-left{float:left;left:0;padding-left:15px;text-align:left}.ekko-lightbox .glyphicon-chevron-right{float:right;padding-right:15px;right:0;text-align:right}.ekko-lightbox .modal-body{overflow:hidden}.ekko-lightbox .modal-footer{text-align:left}#responsive_iframe .content_container,#responsive_iframe .content_container_no_conflict{padding:0}.section_downsize{font-size:86%}.section_downsize .h1,.section_downsize h1{font-size:28px}.section_downsize .h2,.section_downsize h2{font-size:25px}.section_downsize .h3,.section_downsize h3{font-size:20px}.section_downsize .h4,.section_downsize h4{font-size:17px}.section_downsize .h5,.section_downsize h5{font-size:16px}.section_downsize .h6,.section_downsize h6{font-size:13px}.section_downsize .panel-body .h1,.section_downsize .panel-body h1{margin-bottom:30px}.section_downsize .panel-body .h2,.section_downsize .panel-body h2{margin-bottom:13px}.section_downsize .panel-body .h3,.section_downsize .panel-body h3{margin-bottom:11px}.section_downsize .panel-body .h4,.section_downsize .panel-body h4{margin-bottom:10px}.section_downsize .panel-body .h5,.section_downsize .panel-body .h6,.section_downsize .panel-body h5,.section_downsize .panel-body h6{margin-bottom:9px}.section_downsize ol>li,.section_downsize ul>li{margin-bottom:6px}.section_downsize .alert h3,.section_downsize blockquote{font-size:15px}.section_downsize .caption,.section_downsize .thumbnail .caption,.section_downsize .video-caption{font-size:13px}.section_downsize pre{font-size:86%}@media only screen and (min-width:768px){.section_upsize{font-size:115%;line-height:1.6}.section_upsize .h1,.section_upsize h1{font-size:42px}.section_upsize .h2,.section_upsize h2{font-size:32px}.section_upsize .h3,.section_upsize h3{font-size:25px}.section_upsize .h4,.section_upsize h4{font-size:21px}.section_upsize .h5,.section_upsize h5{font-size:18px}.section_upsize .h6,.section_upsize h6{font-size:15px}.section_upsize h1+h2{font-size:32px}.section_upsize p{margin-bottom:22px}.section_upsize .table{font-size:16px}.section_upsize .panel-body .h1,.section_upsize .panel-body h1{margin-bottom:30px}.section_upsize .panel-body .h2,.section_upsize .panel-body h2{margin-bottom:13px}.section_upsize .panel-body .h3,.section_upsize .panel-body h3{margin-bottom:11px}.section_upsize .panel-body .h4,.section_upsize .panel-body h4{margin-bottom:10px}.section_upsize .panel-body .h5,.section_upsize .panel-body .h6,.section_upsize .panel-body h5,.section_upsize .panel-body h6,.section_upsize ol>li,.section_upsize ul>li{margin-bottom:9px}.section_upsize .alert h3{font-size:16px}.section_upsize blockquote{font-size:20px;font-weight:400;line-height:1.75}.section_upsize .caption,.section_upsize .thumbnail .caption,.section_upsize .video-caption{font-size:15px}.section_upsize pre{font-size:14px}h1.hero{font-size:40px}}.remove_gutters{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.add_overlapping_container{left:8%;position:absolute;width:100%;z-index:1}.remove_underline a{text-decoration:none}.section_header h1 a,.section_header p.h1 a{color:#fff;text-decoration:none}.dropdown>.btn>span[class*=icon-]{line-height:1}section.section_downsize .carousel-indicators li.active{margin-bottom:5px}.blog_post_hide_date .gf-relativePublishedDate,.gf-author,.gf-snippet,.gf-spacer,.gfc-resultsHeader{display:none!important}.panel .add_panel_image_left{background-position:0}.full_banner_container .carousel{margin-bottom:0;margin-top:0}.add_background_color_transparent{background-color:initial!important}.add_background_color_white{background-color:#fff!important}.add_background_color_gray,tr.add_background_color_gray td{background-color:#f5f5f5!important}.add_background_color_mediumgray,tr.add_background_color_mediumgray td{background-color:#6f6f6f!important}.add_background_color_blue,tr.add_background_color_blue td{background-color:#0076a8!important}.add_background_color_darkblue,tr.add_background_color_darkblue td{background-color:#005487!important}.add_background_color_green,tr.add_background_color_green td{background-color:#008013!important}.add_background_color_yellow,tr.add_background_color_yellow td{background-color:#f2a900!important}.add_background_color_darkorange,.add_background_color_orange,tr.add_background_color_darkorange td,tr.add_background_color_orange td{background-color:#c05708!important}.add_background_color_aqua,tr.add_background_color_aqua td{background-color:#00a9e0!important}.add_background_color_red,tr.add_background_color_red td{background-color:#b7312c!important}.add_background_color_purple,tr.add_background_color_purple td{background-color:#715091!important}.add_background_color_aqua:not(.add_revert_color),.add_background_color_aqua:not(.add_revert_color) *,.add_background_color_blue:not(.add_revert_color),.add_background_color_blue:not(.add_revert_color) *,.add_background_color_darkblue:not(.add_revert_color),.add_background_color_darkblue:not(.add_revert_color) *,.add_background_color_darkorange:not(.add_revert_color),.add_background_color_darkorange:not(.add_revert_color) *,.add_background_color_green:not(.add_revert_color),.add_background_color_green:not(.add_revert_color) *,.add_background_color_mediumgray:not(.add_revert_color),.add_background_color_mediumgray:not(.add_revert_color) *,.add_background_color_orange:not(.add_revert_color),.add_background_color_orange:not(.add_revert_color) *,.add_background_color_purple:not(.add_revert_color),.add_background_color_purple:not(.add_revert_color) *,.add_background_color_red:not(.add_revert_color),.add_background_color_red:not(.add_revert_color) *,.add_background_color_yellow:not(.add_revert_color),.add_background_color_yellow:not(.add_revert_color) *,.add_font_color_white,.add_font_color_white *{color:#fff!important}.add_font_color_black,.add_font_color_black *{color:#000!important}.add_font_color_gray,.add_font_color_gray *{color:#e6e6e6!important}.add_font_color_mediumgray,.add_font_color_mediumgray *{color:#6f6f6f!important}.add_font_color_darkgray,.add_font_color_darkgray *{color:#1a1a1a!important}.add_font_color_darkblue,.add_font_color_darkblue *{color:#005487!important}.add_font_color_green,.add_font_color_green *{color:#008013!important}.add_font_color_darkorange,.add_font_color_darkorange *,.add_font_color_orange,.add_font_color_orange *{color:#c05708!important}.add_background_position_right{background-position:100%!important}.add_background_position_center{background-position:50%!important}.add_background_position_left{background-position:0!important}.add_background_position_top{background-position:top!important}.add_background_position_bottom{background-position:bottom!important}[class*=add_gradient_background_]:before,[class*=add_transparent_background_]:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.add_transparent_background_black_20:before{background-color:#0003!important}.add_transparent_background_black_40:before{background-color:#0006!important}.add_transparent_background_black_60:before{background-color:#0009!important}.add_transparent_background_black_80:before{background-color:#000c!important}.add_transparent_background_white_20:before{background-color:#fff3!important}.add_transparent_background_white_40:before{background-color:#fff6!important}.add_transparent_background_white_60:before{background-color:#fff9!important}.add_transparent_background_white_80:before{background-color:#fffc!important}.add_gradient_background_from_top:before{background:linear-gradient(180deg,#000000d9 0,#00000080 40%,#0000 70%,#0000)}.add_gradient_background_from_bottom:before{background:linear-gradient(180deg,#0000 0,#0000 40%,#00000080 70%,#000000d9)}.panel[class*=add_gradient_background_],.panel[class*=add_transparent_background_],[class*=panel-][class*=add_gradient_background_],[class*=panel-][class*=add_transparent_background_]{z-index:2}.panel[class*=add_gradient_background_]:before,.panel[class*=add_transparent_background_]:before,[class*=panel-][class*=add_gradient_background_]:before,[class*=panel-][class*=add_transparent_background_]:before{z-index:-1}.panel .panel-footer[style^=background-],.panel .panel-heading[style^=background-]{min-height:41px}.add_border_color_gray{border-color:#e6e6e6!important}.add_border_color_mediumgray{border-color:#6f6f6f!important}.add_border_color_aqua{border-color:#00a9e0!important}.add_border_color_blue{border-color:#0076a8!important}.add_border_color_darkblue{border-color:#005487!important}.add_border_color_green{border-color:#008013!important}.add_border_color_orange{border-color:#c05708!important}.add_border_color_purple{border-color:#715091!important}.panel-body.panel_icon_16{padding-left:32px}.panel-body.panel_icon_24{padding-left:48px}.panel-body.panel_icon_32{padding-left:64px}.panel-body.panel_icon_48{padding-left:96px}.panel-body.panel_icon_56{padding-left:112px}.panel-body[class*=panel_icon_]>span[class*=icon-]:not(.glyphicon):first-child{float:left;line-height:1}.panel-body.panel_icon_16>span[class*=icon-]:not(.glyphicon):first-child{font-size:16px;margin-left:-24px;margin-top:3px}.panel-body.panel_icon_24>span[class*=icon-]:not(.glyphicon):first-child{font-size:24px;margin-left:-33px}.panel-body.panel_icon_32>span[class*=icon-]:not(.glyphicon):first-child{font-size:32px;margin-left:-49px}.panel-body.panel_icon_48>span[class*=icon-]:not(.glyphicon):first-child{font-size:48px;margin-left:-81px}.panel-body.panel_icon_56>span[class*=icon-]:not(.glyphicon):first-child{font-size:56px;margin-left:-97px}.section_downsize .panel-footer[style^=background-]{min-height:38px}.btn[class*=btn_color_]{color:#fff!important}.btn.btn_color_mediumgray,.btn.btn_color_mediumgray:visited{background:#6f6f6f}.btn.btn_color_blue,.btn.btn_color_blue:visited{background:#0076a8}.btn.btn_color_green,.btn.btn_color_green:visited{background:#008013}.btn.btn_color_orange,.btn.btn_color_orange:visited{background:#c05708}[class*=companion_btn]{background:#0000!important;border-style:solid;border-width:1px;padding:9px 13px 8px}.companion_btn.btn_color_mediumgray,.companion_btn.btn_color_mediumgray:visited{border-color:#6f6f6f;color:#6f6f6f!important}.companion_btn.btn_color_blue,.companion_btn.btn_color_blue:visited{border-color:#0076a8;color:#0076a8!important}.companion_btn.btn_color_green,.companion_btn.btn_color_green:visited{border-color:#008013;color:#008013!important}.companion_btn.btn_color_orange,.companion_btn.btn_color_orange:visited{border-color:#c05708;color:#c05708!important}[class*=companion_btn]:hover{opacity:.6}[class*=companion_btn].btn-xs{padding:4px 8px}[class*=companion_btn].btn-sm{padding:7px 11px}[class*=companion_btn].btn-lg{padding:11px 16px}.panel-group.accordion_variant_01 .panel{margin-bottom:10px}.panel-group.accordion_variant_01 .panel-default .panel-heading{border-bottom:none}.panel-group.accordion_variant_01 .panel-collapse.collapse{background:#0000;padding:0!important}.panel-group.accordion_variant_01 .panel-heading{padding-left:55px;position:relative}.panel-group.accordion_variant_01 .panel-heading:before{font-feature-settings:normal;speak:none;content:""!important;display:inline-block;font-family:mathworks;font-size:24px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;margin-left:-40px;opacity:.95;position:absolute;text-decoration:none!important;text-transform:none;top:calc(50% - 11px);width:40px}.panel-group.accordion_variant_01 .panel-heading.collapsed:before{content:""!important;top:calc(50% - 11px)}.panel-group.accordion_variant_01 .panel-body :last-child{margin-bottom:0}.panel-group.accordion_variant_03 .panel-heading{padding:0}.panel-group.accordion_variant_03 .panel-heading .btn{background:#0000!important;border-radius:4px;display:block;text-align:left;width:100%}.panel-group.accordion_variant_03 .panel-heading .btn,.panel-group.accordion_variant_03 .panel-heading .btn *{color:#1a1a1a!important;font:normal 700 13px/1.333 Arial,Helvetica,sans-serif!important}.panel-group.accordion_variant_03 .panel-heading .btn *{border:none!important;margin:0!important;padding:0!important}.panel-group.accordion_variant_03 .panel{margin-bottom:10px}.panel-group.accordion_variant_03 .panel-default .panel-heading{border-bottom:none}.panel-group.accordion_variant_03 .panel-collapse.collapse{background:#0000;padding:0!important}.panel-group.accordion_variant_03 .panel-heading .btn{padding-left:55px;position:relative}.panel-group.accordion_variant_03 .panel-heading .btn:before{font-feature-settings:normal;speak:none;content:""!important;display:inline-block;font-family:mathworks;font-size:24px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;margin-left:-40px;opacity:.95;position:absolute;text-decoration:none!important;text-transform:none;top:calc(50% - 11px);width:40px}.panel-group.accordion_variant_03 .panel-heading .btn.collapsed:before{content:""!important;top:calc(50% - 11px)}.panel-group.accordion_variant_03 .panel-body :last-child{margin-bottom:0}.add_icon_color_white:before,span.add_icon_color_white{color:#fff}.add_icon_color_gray:before,span.add_icon_color_gray{color:#e6e6e6}.add_icon_color_mediumgray:before,span.add_icon_color_mediumgray{color:#6f6f6f}.add_icon_color_darkblue:before,span.add_icon_color_darkblue{color:#005487}.add_icon_color_green:before,span.add_icon_color_green{color:#008013}.add_icon_color_yellow:before,span.add_icon_color_yellow{color:#f2a900}.add_icon_color_orange:before,span.add_icon_color_orange{color:#c05708}.show_more_toggle{overflow:hidden;position:relative}.show_more_toggle .read_more{background:linear-gradient(180deg,#fff0 0,#fff 40%);bottom:0;left:0;padding-top:20px;position:absolute;width:100%}.show_more_toggle.add_background_gradient_gray .read_more{background:linear-gradient(180deg,#f5f5f500 0,#f5f5f5 40%)}.show_more_toggle.add_background_gradient_mediumgray .read_more{background:linear-gradient(180deg,#6f6f6f00 0,#6f6f6f 40%)}.show_more_toggle.add_background_gradient_aqua .read_more{background:linear-gradient(180deg,#00a9e000 0,#00a9e0 40%)}.show_more_toggle.add_background_gradient_blue .read_more{background:linear-gradient(180deg,#0076a800 0,#0076a8 40%)}.show_more_toggle.add_background_gradient_darkblue .read_more{background:linear-gradient(180deg,#004b8700 0,#004b87 40%)}.show_more_toggle.add_background_gradient_purple .read_more{background:linear-gradient(180deg,#521f7700 0,#521f77 40%)}.show_more_toggle.add_background_gradient_green .read_more{background:linear-gradient(180deg,#48a23f00 0,#48a23f 40%)}.show_more_toggle.add_background_gradient_yellow .read_more{background:linear-gradient(180deg,#f2a90000 0,#f2a900 40%)}.show_more_toggle.add_background_gradient_orange .read_more{background:linear-gradient(180deg,#d7882500 0,#d78825 40%)}.show_more_toggle.add_background_gradient_darkorange .read_more{background:linear-gradient(180deg,#cb601500 0,#cb6015 40%)}.show_more_toggle.add_background_gradient_red .read_more{background:linear-gradient(180deg,#b7312c00 0,#b7312c 40%)}.show_more_toggle.show_more_toggle_expanded .read_more{padding-top:0}.show_more_toggle .read_more a:focus{text-decoration:none}.show_more_toggle .read_more a:hover{text-decoration:underline}.show_more_toggle_element{padding-bottom:40px;position:relative}.show_more_toggle_element .read_more_actuator{bottom:0;height:20px;left:0;margin-bottom:0;padding:0;position:absolute;width:100%}.show_more_toggle_content{overflow:hidden}.show_more_toggle_content :last-child{margin-bottom:0}.show_more_toggle_mask{-webkit-mask-image:linear-gradient(180deg,#000 0,#0000 95%);overflow:hidden;transition:height .3s ease-out}.show_more_toggle_mask.more_toggle_remove_mask,.show_more_toggle_mask.show_more_toggle_expanded{-webkit-mask-image:linear-gradient(180deg,#000 0,#000)}.tab-container.tab-container-vertical{background-color:#fff;border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;display:block;overflow:hidden;width:100%}ul.nav-tabs.tabs-vertical{background-color:#f5f5f5;border:1px solid #b1b1b1;border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-webkit-border-radius:4px 0 0 4px;display:block;float:left;padding:10px;position:relative;width:25%}.tab-container .tabs-vertical>li>a{border-bottom:1px solid #e6e6e6;border-radius:0;border-top:1px solid #fff;display:block;margin-right:0;padding-left:5px}.tab-container .tabs-vertical>li:first-of-type>a{border-top-color:#0000}.tab-container .tabs-vertical>li:last-of-type:after{border-top:1px solid #fff;content:"";display:block}.tab-container .tabs-vertical>li,.tab-container .tabs-vertical>li.active{background:#0000;margin:0;position:relative;width:100%}.tab-container .tabs-vertical>li.active>a,.tab-container .tabs-vertical>li.active>a:focus,.tab-container .tabs-vertical>li.active>a:hover{background:#0076a8;border-left:1px solid;border-color:#0076a8;color:#fff;margin-left:-10px;margin-right:-10px;padding-left:15px;padding-right:20px;z-index:1000}.tab-container .tabs-vertical>li.active>a:after,.tab-container .tabs-vertical>li.active>a:focus:after,.tab-container .tabs-vertical>li.active>a:hover:after{border-bottom:13px solid #0000;border-left:10px solid #0076a8;border-top:13px solid #0000;content:"";left:100%;margin-top:-13px;position:absolute;top:50%}.tab-container .tabs-vertical>li>a:hover{background-color:#f5f5f5;border-left-color:#f5f5f5;border-right-color:#f5f5f5}.tab-container.tab-container-vertical .tab-content{background-color:#fff;border:1px solid #b1b1b1;border-left:0;border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;display:block;float:left;height:100%;margin:0;overflow:hidden;padding:40px;position:relative;width:75%}.tab-container .tabs-vertical>li.active .label-description{color:#fff!important}a span[class*=pictogram-][class*=pictogram-]{color:inherit!important}.asset_description{color:#6f6f6f}form .form_captcha_input{margin-bottom:20px;width:140px!important}form .form_captcha_input input{width:150px!important}form .form_captcha_img{margin-bottom:20px}form .form_captcha_refresh{display:inline!important;float:none!important}.lSSlideOuter{-webkit-touch-callout:none;overflow:hidden;-webkit-user-select:none;user-select:none}.lightSlider:after,.lightSlider:before{content:" ";display:table}.lightSlider{margin:0;overflow:hidden}.lSSlideWrapper{max-width:100%;overflow:hidden;position:relative}.lSSlideWrapper>.lightSlider:after{clear:both}.lSSlideWrapper .lSSlide{transform:translate(0);-webkit-transition:all 1s;transition-duration:inherit!important;transition-property:transform,height;transition-timing-function:inherit!important}.lSSlideWrapper .lSFade{position:relative}.lSSlideWrapper .lSFade>*{left:0;margin-right:0;position:absolute!important;top:0;width:100%;z-index:9}.lSSlideWrapper.usingCss .lSFade>*{opacity:0;transition-delay:0s;transition-duration:inherit!important;transition-property:opacity;transition-timing-function:inherit!important}.lSSlideWrapper .lSFade>.active{z-index:10}.lSSlideWrapper.usingCss .lSFade>.active{opacity:1}.lSSlideOuter .lSPager.lSpg{margin:10px 0 0;padding:0;text-align:center}.lSSlideOuter ul.lSPager.lSpg>li{cursor:pointer;display:inline-block;padding:0 5px}.lSSlideOuter ul.lSPager.lSpg>li a{background-color:#1a1a1a;border-radius:30px;display:inline-block;height:8px;overflow:hidden;position:relative;text-indent:-999em;transition:all .5s linear 0s;width:8px;z-index:99}.lSSlideOuter .lSPager.lSpg>li.active a,.lSSlideOuter ul.lSPager.lSpg>li:hover a{background-color:#0076a8}.lSSlideOuter .media{opacity:.8}.lSSlideOuter .media.active{opacity:1}.lSSlideOuter .lSPager.lSGallery{-webkit-touch-callout:none;list-style:none outside none!important;margin:0;overflow:hidden;padding-left:0;transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-webkit-transform:translateZ(0);-o-transform:translateZ(0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-webkit-user-select:none;user-select:none}.lSSlideOuter ul.lSPager.lSGallery li{overflow:hidden!important;transition:border-radius .12s linear linear 0s .35s 0s!important}.lSSlideOuter .lSPager.lSGallery li:hover,.lSSlideOuter ul.lSPager.lSGallery li.active{border-radius:5px}.lSSlideOuter ul.lSPager.lSGallery img{display:block!important;height:auto!important;max-width:100%!important}.lSSlideOuter .lSPager.lSGallery:after,.lSSlideOuter ul.lSPager.lSGallery:before{content:" ";display:table}.lSSlideOuter ul.lSPager.lSGallery:after{clear:both}.lSAction>a{cursor:pointer;display:block;height:24px;line-height:1;position:absolute;top:50%;width:24px;z-index:99}.lSAction>a.lSNext{margin-right:-9px;text-decoration:none!important;top:25%!important}.lSAction>a.lSNext:before{content:""!important;font-family:mathworks;font-size:24px}.lSAction>a.lSPrev{margin-left:-9px;text-decoration:none!important;top:25%!important}.lSAction>a.lSPrev:before{content:""!important;font-family:mathworks;font-size:24px}@media (max-width:767px){.lSAction>a{background-color:#0076a8;color:#fff}}.lSAction>a:hover{opacity:1}.lSAction>.lSPrev{background-position:0 0;left:10px;top:calc(50% - 12px)!important}.lSAction>.lSNext{background-position:-32px 0;right:10px;top:calc(50% - 12px)!important}.lSAction>a.disabled{pointer-events:none}.cS-hidden{filter:alpha(opacity=0);height:1px;opacity:0;overflow:hidden}.lSSlideOuter.vertical{position:relative}.lSSlideOuter.vertical.noPager{padding-right:0!important}.lSSlideOuter.vertical .lSGallery{position:absolute!important;right:0;top:0}.lSSlideOuter.vertical .lightSlider>*{max-width:none!important;width:100%!important}.lSSlideOuter.vertical .lSAction>a{left:50%;margin-left:-14px;margin-top:0}.lSSlideOuter.vertical .lSAction>.lSNext{background-position:31px -31px;bottom:10px;top:auto}.lSSlideOuter.vertical .lSAction>.lSPrev{background-position:0 -31px;bottom:auto;top:10px}.lSSlideOuter.lSrtl{direction:rtl}.lSSlideOuter .lightSlider,.lSSlideOuter ul.lSPager{list-style:none outside none!important;padding-left:0}.lSSlideOuter.lSrtl .lSPager,.lSSlideOuter.lSrtl .lightSlider{padding-right:0}.lSSlideOuter .lSGallery li,.lSSlideOuter .lightSlider>*{float:left}.lSSlideOuter.lSrtl .lSGallery li,.lSSlideOuter.lSrtl .lightSlider>*{float:right!important}@keyframes rightEnd{0%{left:0}50%{left:-15px}to{left:0}}@keyframes topEnd{0%{top:0}50%{top:-15px}to{top:0}}@keyframes leftEnd{0%{left:0}50%{left:15px}to{left:0}}@keyframes bottomEnd{0%{bottom:0}50%{bottom:-15px}to{bottom:0}}.lSSlideOuter .rightEnd{animation:rightEnd .3s;position:relative}.lSSlideOuter .leftEnd{animation:leftEnd .3s;position:relative}.lSSlideOuter.vertical .rightEnd{animation:topEnd .3s;position:relative}.lSSlideOuter.vertical .leftEnd{animation:bottomEnd .3s;position:relative}.lSSlideOuter.lSrtl .rightEnd{animation:leftEnd .3s;position:relative}.lSSlideOuter.lSrtl .leftEnd{animation:rightEnd .3s;position:relative}.lightSlider.lsGrab>*{cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lightSlider.lsGrabbing>*{cursor:move;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.light_slider_container{padding:0 38px;position:relative}.light_slider_container:before{border-left:2px solid #fff;bottom:0;content:"";left:-2px;position:absolute;top:0;z-index:10}.light_slider_container:after{border-right:2px solid #fff;bottom:0;content:"";position:absolute;right:-2px;top:0;z-index:10}.light_slider_container ul{height:auto!important}.light_slider_container .lSSlideOuter{margin:0 -40px;padding:0 40px;position:relative}.light_slider_container .lSSlideOuter:before{left:0}.light_slider_container .lSSlideOuter:after,.light_slider_container .lSSlideOuter:before{background:#fff;bottom:0;content:"";display:block;position:absolute;top:0;width:40px;z-index:2}.light_slider_container .lSSlideOuter:after{right:0}.light_slider_container .lSSlideWrapper{overflow:visible}.light_slider_container .lSAction>a.lSPrev{margin-left:-49px;top:calc(50% - 16px)!important}.light_slider_container .lSAction>a.lSNext{margin-right:-49px;top:calc(50% - 16px)!important}.light_slider_container ul>li>:last-child{margin-bottom:0}.borderless_tab_controls{margin-bottom:20px}.borderless_tab_controls>li>a{text-decoration:none!important}.borderless_tab_controls>li.active>a{border-bottom:3px solid #00a9e0;color:grey;padding-bottom:5px}.borderless_tab_controls>li.active>a.has-icon{padding-bottom:12px!important}.band.add_background_color_gray .light_slider_container:after,.band.add_background_color_gray .light_slider_container:before{border-color:#f5f5f5}.band.add_background_color_gray .light_slider_container .lSSlideOuter:after,.band.add_background_color_gray .light_slider_container .lSSlideOuter:before{background:#f5f5f5}html body{overflow:hidden}.main{height:100%}.feedback{bottom:40px;left:30px;position:fixed}.feedback span{margin-right:8px}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#overlay{background-color:#00000080;bottom:0;height:100%;left:0;position:fixed;right:0;top:0;transition:opacity .5s ease-out,visibility .5s ease-out;visibility:visible;width:100%;z-index:2}label{font-size:18px;font-weight:400;margin-bottom:10px}.has-feedback label~.form-control-feedback{top:35px}.card{background:none;border:none;position:absolute;right:100%}.card.react-draggable-dragging .card-body{box-shadow:0 0 10px 0 #666}.card-body{align-items:center;background:#fff;border:1px solid #bfbfbf;border-radius:8px;box-shadow:0 0 12px 0 #00000026;cursor:move;display:flex;padding:0 4px;transition:box-shadow .15s linear}.card-body .trigger-btn{background:none;border:1px solid #0000;border-radius:2px;height:20px;margin:2px 4px;outline:none;padding:0 2px;position:relative}.card-body .trigger-btn:active,.card-body .trigger-btn:focus{background:#6d6d6d59;box-shadow:inset 0 1px 0 0 #00000026}.card-body .trigger-btn:hover{background:#6d6d6d33}.drag-handle{background:url(../../static/media/gripper.9defbc5e76d0de8bb6e0.svg) 50% no-repeat;background-size:9px;height:18px;width:10px}.icon-custom-trigger{background-repeat:no-repeat;height:19px;width:23px}.alert-success .icon-custom-trigger,.trigger-tutorial-icon{background-image:url(../../static/media/trigger-ok.7b9c238be42f685c4fa7.svg)}.trigger-tutorial .icon{display:inline-block;margin-bottom:-4px}.alert-danger .icon-custom-trigger{background-image:url(../../static/media/trigger-error.3f1c4ef23ab8f3e60b0e.svg)}.card-body:active,.card-body:focus,.card-body:hover{opacity:1}:root{--tutorial-width:340px;--tutorial-arrow-size:8px}.trigger-tutorial{color:#000;margin-top:8px;margin-top:var(--tutorial-arrow-size);padding:15px;position:absolute;right:-143px;-webkit-user-select:none;user-select:none;width:340px;width:var(--tutorial-width)}.trigger-tutorial p:last-of-type{margin-bottom:5px}.trigger-tutorial:before{background:url(../../static/media/arrow.0c2968b90bd9a64c8c3f.svg) no-repeat;content:"";display:block;height:16px;height:calc(var(--tutorial-arrow-size)*2);left:162px;left:calc(var(--tutorial-width)/2 - var(--tutorial-arrow-size));position:absolute;top:-16px;top:calc(var(--tutorial-arrow-size)*-2);width:16px;width:calc(var(--tutorial-arrow-size)*2)}div#MatlabJsd{height:100%}#MatlabJsd iframe{border:0;height:100%;width:100%}label{padding-left:5px}p#LicensingGathererNote{margin:15px 0 0}#controls{display:flex;justify-content:space-evenly;overflow:auto}#controls .btn{align-items:center;display:flex;min-width:110px;padding:10px 5px;width:120px}#controls .btn.btn_color_blue{border-width:2px}#controls.labels-on-top .btn{flex-direction:column}#controls .btn span[class*=icon-custom-]{--size:32px;background-repeat:no-repeat;height:var(--size);margin-right:4px;width:var(--size)}#controls.labels-on-top .btn span[class*=icon-custom-]{display:block;margin:0 -2px 4px 0}#controls .btn-label{font-size:13px}.icon-custom-restart{background-image:url(../../static/media/restart.7987508a01e84678361a.svg)}.icon-custom-start{background-image:url(../../static/media/start.50c4596fab2049b4a3a3.svg)}.icon-custom-stop{background-image:url(../../static/media/stop.30c9a9ab6d625032235a.svg)}.icon-custom-sign-out{background-image:url(../../static/media/sign-out.08356b675ec854afaa77.svg)}.icon-custom-terminate{background-image:url(../../static/media/terminate.7ea1363ee0fa72344ef6.svg)}.icon-custom-feedback{background-image:url(../../static/media/feedback.6e8d50eb812cf35e0e76.svg)}.icon-custom-help{background-image:url(../../static/media/help.15e5bfab03a2b9c7148e.svg)}#information .alert:not(.error-container,.warnings-container){background:#fff;margin-bottom:0;padding:0}#information .error-msg,.warnings-msg{font:10pt monospace;white-space:pre}#information .error-container.alert,.warnings-container.alert{border-radius:0;margin:5px 20px;padding:10px}#information .error-container.alert p,.warnings-container.alert p{margin:0}#information .error-container.alert .error-text,.warnings-container.alert .warnings-text{margin-left:30px}#information .error-logs-container .error-container.alert,.warnings-container .warnings-container.alert{padding:0}#information .error-msg,.warnings-msg{max-height:200px;overflow:auto;padding:10px}#information .error-logs-container .warnings-container .expand_trigger{font-size:15px;padding:10px 5px 5px 40px}#information .expand_target{max-height:200px;overflow:hidden;transition:max-height .2s ease-out,border-color .2s ease-in}#information .expand_target.collapsed{border-color:#fff;max-height:0}#spinner{--spinner-size:22px;animation:spin 2s linear infinite;border:4px solid #0000001a;border-radius:50%;border-top-color:#09f;float:left;height:var(--spinner-size);margin-right:4px;width:var(--spinner-size)}#icon-small{color:green;float:none;margin-left:3px}#token{margin-right:1rem;width:15ch}#token-form{margin-top:1rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.alert table td{padding:4px}.alert table td:first-child{padding-left:0;padding-right:20px;white-space:nowrap}.alert table td:nth-child(2){white-space:normal}@media (min-width:768px){.modal-dialog{width:700px}}.passive-link{color:#888;cursor:pointer;text-decoration:underline}.flex-item-1{flex-basis:30%}.flex-item-1,.flex-item-2{align-items:center;padding:.2rem}.flex-item-2{flex-basis:70%}.help p[class*=icon-]{background-position:left 4px;background-repeat:no-repeat;background-size:32px;margin-bottom:10px;min-height:36px;padding-left:40px}#error .alert{border-radius:10px;margin-bottom:0;padding:0}#error .modal-body pre{background-color:#fff0;border:none;font-family:inherit;font-size:15px;white-space:pre-wrap}#error .modal-header{padding-left:45px}#error .alert .alert_heading{font-size:18px;margin-bottom:0}#error .alert .error-msg{color:#b7312c;font:10pt monospace;white-space:pre}#information .alert:not(.error-container){background:#fff;margin-bottom:0;padding:0}#information .modal-header{padding-left:45px}.alert,.modal-content{border-radius:10px}#information .details{margin:0 30px}#information .alert .alert_heading{font-size:18px;margin-bottom:0}.flex-container{align-items:center;display:flex;margin-bottom:1rem}.token-btn{height:2em;max-width:10ch;padding-bottom:.3em;padding-top:5px}.btn{background-color:#3391ba}#resume-button{color:#fff}
13
- /*# sourceMappingURL=main.6cd0caba.css.map*/
12
+ */.ekko-lightbox-container{position:relative}.ekko-lightbox-container iframe{height:100%;overflow:hidden;width:100%!important}.ekko-lightbox-nav-overlay{height:100%;left:0;position:absolute;top:0;width:100%;z-index:100}.ekko-lightbox-nav-overlay a{color:#fff;display:block;font-size:30px;height:100%;opacity:0;padding-top:45%;text-shadow:2px 2px 4px #1a1a1a;transition:opacity .5s;width:49%;z-index:100}.ekko-lightbox-nav-overlay a:empty{width:49%}.ekko-lightbox a:hover{opacity:1;text-decoration:none}.ekko-lightbox .glyphicon-chevron-left{float:left;left:0;padding-left:15px;text-align:left}.ekko-lightbox .glyphicon-chevron-right{float:right;padding-right:15px;right:0;text-align:right}.ekko-lightbox .modal-body{overflow:hidden}.ekko-lightbox .modal-footer{text-align:left}#responsive_iframe .content_container,#responsive_iframe .content_container_no_conflict{padding:0}.section_downsize{font-size:86%}.section_downsize .h1,.section_downsize h1{font-size:28px}.section_downsize .h2,.section_downsize h2{font-size:25px}.section_downsize .h3,.section_downsize h3{font-size:20px}.section_downsize .h4,.section_downsize h4{font-size:17px}.section_downsize .h5,.section_downsize h5{font-size:16px}.section_downsize .h6,.section_downsize h6{font-size:13px}.section_downsize .panel-body .h1,.section_downsize .panel-body h1{margin-bottom:30px}.section_downsize .panel-body .h2,.section_downsize .panel-body h2{margin-bottom:13px}.section_downsize .panel-body .h3,.section_downsize .panel-body h3{margin-bottom:11px}.section_downsize .panel-body .h4,.section_downsize .panel-body h4{margin-bottom:10px}.section_downsize .panel-body .h5,.section_downsize .panel-body .h6,.section_downsize .panel-body h5,.section_downsize .panel-body h6{margin-bottom:9px}.section_downsize ol>li,.section_downsize ul>li{margin-bottom:6px}.section_downsize .alert h3,.section_downsize blockquote{font-size:15px}.section_downsize .caption,.section_downsize .thumbnail .caption,.section_downsize .video-caption{font-size:13px}.section_downsize pre{font-size:86%}@media only screen and (min-width:768px){.section_upsize{font-size:115%;line-height:1.6}.section_upsize .h1,.section_upsize h1{font-size:42px}.section_upsize .h2,.section_upsize h2{font-size:32px}.section_upsize .h3,.section_upsize h3{font-size:25px}.section_upsize .h4,.section_upsize h4{font-size:21px}.section_upsize .h5,.section_upsize h5{font-size:18px}.section_upsize .h6,.section_upsize h6{font-size:15px}.section_upsize h1+h2{font-size:32px}.section_upsize p{margin-bottom:22px}.section_upsize .table{font-size:16px}.section_upsize .panel-body .h1,.section_upsize .panel-body h1{margin-bottom:30px}.section_upsize .panel-body .h2,.section_upsize .panel-body h2{margin-bottom:13px}.section_upsize .panel-body .h3,.section_upsize .panel-body h3{margin-bottom:11px}.section_upsize .panel-body .h4,.section_upsize .panel-body h4{margin-bottom:10px}.section_upsize .panel-body .h5,.section_upsize .panel-body .h6,.section_upsize .panel-body h5,.section_upsize .panel-body h6,.section_upsize ol>li,.section_upsize ul>li{margin-bottom:9px}.section_upsize .alert h3{font-size:16px}.section_upsize blockquote{font-size:20px;font-weight:400;line-height:1.75}.section_upsize .caption,.section_upsize .thumbnail .caption,.section_upsize .video-caption{font-size:15px}.section_upsize pre{font-size:14px}h1.hero{font-size:40px}}.remove_gutters{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.add_overlapping_container{left:8%;position:absolute;width:100%;z-index:1}.remove_underline a{text-decoration:none}.section_header h1 a,.section_header p.h1 a{color:#fff;text-decoration:none}.dropdown>.btn>span[class*=icon-]{line-height:1}section.section_downsize .carousel-indicators li.active{margin-bottom:5px}.blog_post_hide_date .gf-relativePublishedDate,.gf-author,.gf-snippet,.gf-spacer,.gfc-resultsHeader{display:none!important}.panel .add_panel_image_left{background-position:0}.full_banner_container .carousel{margin-bottom:0;margin-top:0}.add_background_color_transparent{background-color:initial!important}.add_background_color_white{background-color:#fff!important}.add_background_color_gray,tr.add_background_color_gray td{background-color:#f5f5f5!important}.add_background_color_mediumgray,tr.add_background_color_mediumgray td{background-color:#6f6f6f!important}.add_background_color_blue,tr.add_background_color_blue td{background-color:#0076a8!important}.add_background_color_darkblue,tr.add_background_color_darkblue td{background-color:#005487!important}.add_background_color_green,tr.add_background_color_green td{background-color:#008013!important}.add_background_color_yellow,tr.add_background_color_yellow td{background-color:#f2a900!important}.add_background_color_darkorange,.add_background_color_orange,tr.add_background_color_darkorange td,tr.add_background_color_orange td{background-color:#c05708!important}.add_background_color_aqua,tr.add_background_color_aqua td{background-color:#00a9e0!important}.add_background_color_red,tr.add_background_color_red td{background-color:#b7312c!important}.add_background_color_purple,tr.add_background_color_purple td{background-color:#715091!important}.add_background_color_aqua:not(.add_revert_color),.add_background_color_aqua:not(.add_revert_color) *,.add_background_color_blue:not(.add_revert_color),.add_background_color_blue:not(.add_revert_color) *,.add_background_color_darkblue:not(.add_revert_color),.add_background_color_darkblue:not(.add_revert_color) *,.add_background_color_darkorange:not(.add_revert_color),.add_background_color_darkorange:not(.add_revert_color) *,.add_background_color_green:not(.add_revert_color),.add_background_color_green:not(.add_revert_color) *,.add_background_color_mediumgray:not(.add_revert_color),.add_background_color_mediumgray:not(.add_revert_color) *,.add_background_color_orange:not(.add_revert_color),.add_background_color_orange:not(.add_revert_color) *,.add_background_color_purple:not(.add_revert_color),.add_background_color_purple:not(.add_revert_color) *,.add_background_color_red:not(.add_revert_color),.add_background_color_red:not(.add_revert_color) *,.add_background_color_yellow:not(.add_revert_color),.add_background_color_yellow:not(.add_revert_color) *,.add_font_color_white,.add_font_color_white *{color:#fff!important}.add_font_color_black,.add_font_color_black *{color:#000!important}.add_font_color_gray,.add_font_color_gray *{color:#e6e6e6!important}.add_font_color_mediumgray,.add_font_color_mediumgray *{color:#6f6f6f!important}.add_font_color_darkgray,.add_font_color_darkgray *{color:#1a1a1a!important}.add_font_color_darkblue,.add_font_color_darkblue *{color:#005487!important}.add_font_color_green,.add_font_color_green *{color:#008013!important}.add_font_color_darkorange,.add_font_color_darkorange *,.add_font_color_orange,.add_font_color_orange *{color:#c05708!important}.add_background_position_right{background-position:100%!important}.add_background_position_center{background-position:50%!important}.add_background_position_left{background-position:0!important}.add_background_position_top{background-position:top!important}.add_background_position_bottom{background-position:bottom!important}[class*=add_gradient_background_]:before,[class*=add_transparent_background_]:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.add_transparent_background_black_20:before{background-color:#0003!important}.add_transparent_background_black_40:before{background-color:#0006!important}.add_transparent_background_black_60:before{background-color:#0009!important}.add_transparent_background_black_80:before{background-color:#000c!important}.add_transparent_background_white_20:before{background-color:#fff3!important}.add_transparent_background_white_40:before{background-color:#fff6!important}.add_transparent_background_white_60:before{background-color:#fff9!important}.add_transparent_background_white_80:before{background-color:#fffc!important}.add_gradient_background_from_top:before{background:linear-gradient(180deg,#000000d9 0,#00000080 40%,#0000 70%,#0000)}.add_gradient_background_from_bottom:before{background:linear-gradient(180deg,#0000 0,#0000 40%,#00000080 70%,#000000d9)}.panel[class*=add_gradient_background_],.panel[class*=add_transparent_background_],[class*=panel-][class*=add_gradient_background_],[class*=panel-][class*=add_transparent_background_]{z-index:2}.panel[class*=add_gradient_background_]:before,.panel[class*=add_transparent_background_]:before,[class*=panel-][class*=add_gradient_background_]:before,[class*=panel-][class*=add_transparent_background_]:before{z-index:-1}.panel .panel-footer[style^=background-],.panel .panel-heading[style^=background-]{min-height:41px}.add_border_color_gray{border-color:#e6e6e6!important}.add_border_color_mediumgray{border-color:#6f6f6f!important}.add_border_color_aqua{border-color:#00a9e0!important}.add_border_color_blue{border-color:#0076a8!important}.add_border_color_darkblue{border-color:#005487!important}.add_border_color_green{border-color:#008013!important}.add_border_color_orange{border-color:#c05708!important}.add_border_color_purple{border-color:#715091!important}.panel-body.panel_icon_16{padding-left:32px}.panel-body.panel_icon_24{padding-left:48px}.panel-body.panel_icon_32{padding-left:64px}.panel-body.panel_icon_48{padding-left:96px}.panel-body.panel_icon_56{padding-left:112px}.panel-body[class*=panel_icon_]>span[class*=icon-]:not(.glyphicon):first-child{float:left;line-height:1}.panel-body.panel_icon_16>span[class*=icon-]:not(.glyphicon):first-child{font-size:16px;margin-left:-24px;margin-top:3px}.panel-body.panel_icon_24>span[class*=icon-]:not(.glyphicon):first-child{font-size:24px;margin-left:-33px}.panel-body.panel_icon_32>span[class*=icon-]:not(.glyphicon):first-child{font-size:32px;margin-left:-49px}.panel-body.panel_icon_48>span[class*=icon-]:not(.glyphicon):first-child{font-size:48px;margin-left:-81px}.panel-body.panel_icon_56>span[class*=icon-]:not(.glyphicon):first-child{font-size:56px;margin-left:-97px}.section_downsize .panel-footer[style^=background-]{min-height:38px}.btn[class*=btn_color_]{color:#fff!important}.btn.btn_color_mediumgray,.btn.btn_color_mediumgray:visited{background:#6f6f6f}.btn.btn_color_blue,.btn.btn_color_blue:visited{background:#0076a8}.btn.btn_color_green,.btn.btn_color_green:visited{background:#008013}.btn.btn_color_orange,.btn.btn_color_orange:visited{background:#c05708}[class*=companion_btn]{background:#0000!important;border-style:solid;border-width:1px;padding:9px 13px 8px}.companion_btn.btn_color_mediumgray,.companion_btn.btn_color_mediumgray:visited{border-color:#6f6f6f;color:#6f6f6f!important}.companion_btn.btn_color_blue,.companion_btn.btn_color_blue:visited{border-color:#0076a8;color:#0076a8!important}.companion_btn.btn_color_green,.companion_btn.btn_color_green:visited{border-color:#008013;color:#008013!important}.companion_btn.btn_color_orange,.companion_btn.btn_color_orange:visited{border-color:#c05708;color:#c05708!important}[class*=companion_btn]:hover{opacity:.6}[class*=companion_btn].btn-xs{padding:4px 8px}[class*=companion_btn].btn-sm{padding:7px 11px}[class*=companion_btn].btn-lg{padding:11px 16px}.panel-group.accordion_variant_01 .panel{margin-bottom:10px}.panel-group.accordion_variant_01 .panel-default .panel-heading{border-bottom:none}.panel-group.accordion_variant_01 .panel-collapse.collapse{background:#0000;padding:0!important}.panel-group.accordion_variant_01 .panel-heading{padding-left:55px;position:relative}.panel-group.accordion_variant_01 .panel-heading:before{font-feature-settings:normal;speak:none;content:""!important;display:inline-block;font-family:mathworks;font-size:24px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;margin-left:-40px;opacity:.95;position:absolute;text-decoration:none!important;text-transform:none;top:calc(50% - 11px);width:40px}.panel-group.accordion_variant_01 .panel-heading.collapsed:before{content:""!important;top:calc(50% - 11px)}.panel-group.accordion_variant_01 .panel-body :last-child{margin-bottom:0}.panel-group.accordion_variant_03 .panel-heading{padding:0}.panel-group.accordion_variant_03 .panel-heading .btn{background:#0000!important;border-radius:4px;display:block;text-align:left;width:100%}.panel-group.accordion_variant_03 .panel-heading .btn,.panel-group.accordion_variant_03 .panel-heading .btn *{color:#1a1a1a!important;font:normal 700 13px/1.333 Arial,Helvetica,sans-serif!important}.panel-group.accordion_variant_03 .panel-heading .btn *{border:none!important;margin:0!important;padding:0!important}.panel-group.accordion_variant_03 .panel{margin-bottom:10px}.panel-group.accordion_variant_03 .panel-default .panel-heading{border-bottom:none}.panel-group.accordion_variant_03 .panel-collapse.collapse{background:#0000;padding:0!important}.panel-group.accordion_variant_03 .panel-heading .btn{padding-left:55px;position:relative}.panel-group.accordion_variant_03 .panel-heading .btn:before{font-feature-settings:normal;speak:none;content:""!important;display:inline-block;font-family:mathworks;font-size:24px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;margin-left:-40px;opacity:.95;position:absolute;text-decoration:none!important;text-transform:none;top:calc(50% - 11px);width:40px}.panel-group.accordion_variant_03 .panel-heading .btn.collapsed:before{content:""!important;top:calc(50% - 11px)}.panel-group.accordion_variant_03 .panel-body :last-child{margin-bottom:0}.add_icon_color_white:before,span.add_icon_color_white{color:#fff}.add_icon_color_gray:before,span.add_icon_color_gray{color:#e6e6e6}.add_icon_color_mediumgray:before,span.add_icon_color_mediumgray{color:#6f6f6f}.add_icon_color_darkblue:before,span.add_icon_color_darkblue{color:#005487}.add_icon_color_green:before,span.add_icon_color_green{color:#008013}.add_icon_color_yellow:before,span.add_icon_color_yellow{color:#f2a900}.add_icon_color_orange:before,span.add_icon_color_orange{color:#c05708}.show_more_toggle{overflow:hidden;position:relative}.show_more_toggle .read_more{background:linear-gradient(180deg,#fff0 0,#fff 40%);bottom:0;left:0;padding-top:20px;position:absolute;width:100%}.show_more_toggle.add_background_gradient_gray .read_more{background:linear-gradient(180deg,#f5f5f500 0,#f5f5f5 40%)}.show_more_toggle.add_background_gradient_mediumgray .read_more{background:linear-gradient(180deg,#6f6f6f00 0,#6f6f6f 40%)}.show_more_toggle.add_background_gradient_aqua .read_more{background:linear-gradient(180deg,#00a9e000 0,#00a9e0 40%)}.show_more_toggle.add_background_gradient_blue .read_more{background:linear-gradient(180deg,#0076a800 0,#0076a8 40%)}.show_more_toggle.add_background_gradient_darkblue .read_more{background:linear-gradient(180deg,#004b8700 0,#004b87 40%)}.show_more_toggle.add_background_gradient_purple .read_more{background:linear-gradient(180deg,#521f7700 0,#521f77 40%)}.show_more_toggle.add_background_gradient_green .read_more{background:linear-gradient(180deg,#48a23f00 0,#48a23f 40%)}.show_more_toggle.add_background_gradient_yellow .read_more{background:linear-gradient(180deg,#f2a90000 0,#f2a900 40%)}.show_more_toggle.add_background_gradient_orange .read_more{background:linear-gradient(180deg,#d7882500 0,#d78825 40%)}.show_more_toggle.add_background_gradient_darkorange .read_more{background:linear-gradient(180deg,#cb601500 0,#cb6015 40%)}.show_more_toggle.add_background_gradient_red .read_more{background:linear-gradient(180deg,#b7312c00 0,#b7312c 40%)}.show_more_toggle.show_more_toggle_expanded .read_more{padding-top:0}.show_more_toggle .read_more a:focus{text-decoration:none}.show_more_toggle .read_more a:hover{text-decoration:underline}.show_more_toggle_element{padding-bottom:40px;position:relative}.show_more_toggle_element .read_more_actuator{bottom:0;height:20px;left:0;margin-bottom:0;padding:0;position:absolute;width:100%}.show_more_toggle_content{overflow:hidden}.show_more_toggle_content :last-child{margin-bottom:0}.show_more_toggle_mask{-webkit-mask-image:linear-gradient(180deg,#000 0,#0000 95%);overflow:hidden;transition:height .3s ease-out}.show_more_toggle_mask.more_toggle_remove_mask,.show_more_toggle_mask.show_more_toggle_expanded{-webkit-mask-image:linear-gradient(180deg,#000 0,#000)}.tab-container.tab-container-vertical{background-color:#fff;border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;display:block;overflow:hidden;width:100%}ul.nav-tabs.tabs-vertical{background-color:#f5f5f5;border:1px solid #b1b1b1;border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-webkit-border-radius:4px 0 0 4px;display:block;float:left;padding:10px;position:relative;width:25%}.tab-container .tabs-vertical>li>a{border-bottom:1px solid #e6e6e6;border-radius:0;border-top:1px solid #fff;display:block;margin-right:0;padding-left:5px}.tab-container .tabs-vertical>li:first-of-type>a{border-top-color:#0000}.tab-container .tabs-vertical>li:last-of-type:after{border-top:1px solid #fff;content:"";display:block}.tab-container .tabs-vertical>li,.tab-container .tabs-vertical>li.active{background:#0000;margin:0;position:relative;width:100%}.tab-container .tabs-vertical>li.active>a,.tab-container .tabs-vertical>li.active>a:focus,.tab-container .tabs-vertical>li.active>a:hover{background:#0076a8;border-left:1px solid;border-color:#0076a8;color:#fff;margin-left:-10px;margin-right:-10px;padding-left:15px;padding-right:20px;z-index:1000}.tab-container .tabs-vertical>li.active>a:after,.tab-container .tabs-vertical>li.active>a:focus:after,.tab-container .tabs-vertical>li.active>a:hover:after{border-bottom:13px solid #0000;border-left:10px solid #0076a8;border-top:13px solid #0000;content:"";left:100%;margin-top:-13px;position:absolute;top:50%}.tab-container .tabs-vertical>li>a:hover{background-color:#f5f5f5;border-left-color:#f5f5f5;border-right-color:#f5f5f5}.tab-container.tab-container-vertical .tab-content{background-color:#fff;border:1px solid #b1b1b1;border-left:0;border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;display:block;float:left;height:100%;margin:0;overflow:hidden;padding:40px;position:relative;width:75%}.tab-container .tabs-vertical>li.active .label-description{color:#fff!important}a span[class*=pictogram-][class*=pictogram-]{color:inherit!important}.asset_description{color:#6f6f6f}form .form_captcha_input{margin-bottom:20px;width:140px!important}form .form_captcha_input input{width:150px!important}form .form_captcha_img{margin-bottom:20px}form .form_captcha_refresh{display:inline!important;float:none!important}.lSSlideOuter{-webkit-touch-callout:none;overflow:hidden;-webkit-user-select:none;user-select:none}.lightSlider:after,.lightSlider:before{content:" ";display:table}.lightSlider{margin:0;overflow:hidden}.lSSlideWrapper{max-width:100%;overflow:hidden;position:relative}.lSSlideWrapper>.lightSlider:after{clear:both}.lSSlideWrapper .lSSlide{transform:translate(0);-webkit-transition:all 1s;transition-duration:inherit!important;transition-property:transform,height;transition-timing-function:inherit!important}.lSSlideWrapper .lSFade{position:relative}.lSSlideWrapper .lSFade>*{left:0;margin-right:0;position:absolute!important;top:0;width:100%;z-index:9}.lSSlideWrapper.usingCss .lSFade>*{opacity:0;transition-delay:0s;transition-duration:inherit!important;transition-property:opacity;transition-timing-function:inherit!important}.lSSlideWrapper .lSFade>.active{z-index:10}.lSSlideWrapper.usingCss .lSFade>.active{opacity:1}.lSSlideOuter .lSPager.lSpg{margin:10px 0 0;padding:0;text-align:center}.lSSlideOuter ul.lSPager.lSpg>li{cursor:pointer;display:inline-block;padding:0 5px}.lSSlideOuter ul.lSPager.lSpg>li a{background-color:#1a1a1a;border-radius:30px;display:inline-block;height:8px;overflow:hidden;position:relative;text-indent:-999em;transition:all .5s linear 0s;width:8px;z-index:99}.lSSlideOuter .lSPager.lSpg>li.active a,.lSSlideOuter ul.lSPager.lSpg>li:hover a{background-color:#0076a8}.lSSlideOuter .media{opacity:.8}.lSSlideOuter .media.active{opacity:1}.lSSlideOuter .lSPager.lSGallery{-webkit-touch-callout:none;list-style:none outside none!important;margin:0;overflow:hidden;padding-left:0;transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-webkit-transform:translateZ(0);-o-transform:translateZ(0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-webkit-user-select:none;user-select:none}.lSSlideOuter ul.lSPager.lSGallery li{overflow:hidden!important;transition:border-radius .12s linear linear 0s .35s 0s!important}.lSSlideOuter .lSPager.lSGallery li:hover,.lSSlideOuter ul.lSPager.lSGallery li.active{border-radius:5px}.lSSlideOuter ul.lSPager.lSGallery img{display:block!important;height:auto!important;max-width:100%!important}.lSSlideOuter .lSPager.lSGallery:after,.lSSlideOuter ul.lSPager.lSGallery:before{content:" ";display:table}.lSSlideOuter ul.lSPager.lSGallery:after{clear:both}.lSAction>a{cursor:pointer;display:block;height:24px;line-height:1;position:absolute;top:50%;width:24px;z-index:99}.lSAction>a.lSNext{margin-right:-9px;text-decoration:none!important;top:25%!important}.lSAction>a.lSNext:before{content:""!important;font-family:mathworks;font-size:24px}.lSAction>a.lSPrev{margin-left:-9px;text-decoration:none!important;top:25%!important}.lSAction>a.lSPrev:before{content:""!important;font-family:mathworks;font-size:24px}@media (max-width:767px){.lSAction>a{background-color:#0076a8;color:#fff}}.lSAction>a:hover{opacity:1}.lSAction>.lSPrev{background-position:0 0;left:10px;top:calc(50% - 12px)!important}.lSAction>.lSNext{background-position:-32px 0;right:10px;top:calc(50% - 12px)!important}.lSAction>a.disabled{pointer-events:none}.cS-hidden{filter:alpha(opacity=0);height:1px;opacity:0;overflow:hidden}.lSSlideOuter.vertical{position:relative}.lSSlideOuter.vertical.noPager{padding-right:0!important}.lSSlideOuter.vertical .lSGallery{position:absolute!important;right:0;top:0}.lSSlideOuter.vertical .lightSlider>*{max-width:none!important;width:100%!important}.lSSlideOuter.vertical .lSAction>a{left:50%;margin-left:-14px;margin-top:0}.lSSlideOuter.vertical .lSAction>.lSNext{background-position:31px -31px;bottom:10px;top:auto}.lSSlideOuter.vertical .lSAction>.lSPrev{background-position:0 -31px;bottom:auto;top:10px}.lSSlideOuter.lSrtl{direction:rtl}.lSSlideOuter .lightSlider,.lSSlideOuter ul.lSPager{list-style:none outside none!important;padding-left:0}.lSSlideOuter.lSrtl .lSPager,.lSSlideOuter.lSrtl .lightSlider{padding-right:0}.lSSlideOuter .lSGallery li,.lSSlideOuter .lightSlider>*{float:left}.lSSlideOuter.lSrtl .lSGallery li,.lSSlideOuter.lSrtl .lightSlider>*{float:right!important}@keyframes rightEnd{0%{left:0}50%{left:-15px}to{left:0}}@keyframes topEnd{0%{top:0}50%{top:-15px}to{top:0}}@keyframes leftEnd{0%{left:0}50%{left:15px}to{left:0}}@keyframes bottomEnd{0%{bottom:0}50%{bottom:-15px}to{bottom:0}}.lSSlideOuter .rightEnd{animation:rightEnd .3s;position:relative}.lSSlideOuter .leftEnd{animation:leftEnd .3s;position:relative}.lSSlideOuter.vertical .rightEnd{animation:topEnd .3s;position:relative}.lSSlideOuter.vertical .leftEnd{animation:bottomEnd .3s;position:relative}.lSSlideOuter.lSrtl .rightEnd{animation:leftEnd .3s;position:relative}.lSSlideOuter.lSrtl .leftEnd{animation:rightEnd .3s;position:relative}.lightSlider.lsGrab>*{cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lightSlider.lsGrabbing>*{cursor:move;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.light_slider_container{padding:0 38px;position:relative}.light_slider_container:before{border-left:2px solid #fff;bottom:0;content:"";left:-2px;position:absolute;top:0;z-index:10}.light_slider_container:after{border-right:2px solid #fff;bottom:0;content:"";position:absolute;right:-2px;top:0;z-index:10}.light_slider_container ul{height:auto!important}.light_slider_container .lSSlideOuter{margin:0 -40px;padding:0 40px;position:relative}.light_slider_container .lSSlideOuter:before{left:0}.light_slider_container .lSSlideOuter:after,.light_slider_container .lSSlideOuter:before{background:#fff;bottom:0;content:"";display:block;position:absolute;top:0;width:40px;z-index:2}.light_slider_container .lSSlideOuter:after{right:0}.light_slider_container .lSSlideWrapper{overflow:visible}.light_slider_container .lSAction>a.lSPrev{margin-left:-49px;top:calc(50% - 16px)!important}.light_slider_container .lSAction>a.lSNext{margin-right:-49px;top:calc(50% - 16px)!important}.light_slider_container ul>li>:last-child{margin-bottom:0}.borderless_tab_controls{margin-bottom:20px}.borderless_tab_controls>li>a{text-decoration:none!important}.borderless_tab_controls>li.active>a{border-bottom:3px solid #00a9e0;color:grey;padding-bottom:5px}.borderless_tab_controls>li.active>a.has-icon{padding-bottom:12px!important}.band.add_background_color_gray .light_slider_container:after,.band.add_background_color_gray .light_slider_container:before{border-color:#f5f5f5}.band.add_background_color_gray .light_slider_container .lSSlideOuter:after,.band.add_background_color_gray .light_slider_container .lSSlideOuter:before{background:#f5f5f5}html body{overflow:hidden}.main{height:100%}.feedback{bottom:40px;left:30px;position:fixed}.feedback span{margin-right:8px}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#overlay{background-color:#00000080;bottom:0;height:100%;left:0;position:fixed;right:0;top:0;transition:opacity .5s ease-out,visibility .5s ease-out;visibility:visible;width:100%;z-index:2}label{font-size:18px;font-weight:400;margin-bottom:10px}.has-feedback label~.form-control-feedback{top:35px}.card{background:none;border:none;position:absolute;right:100%}.card.react-draggable-dragging .card-body{box-shadow:0 0 10px 0 #666}.card-body{align-items:center;background:#fff;border:1px solid #bfbfbf;border-radius:8px;box-shadow:0 0 12px 0 #00000026;cursor:move;display:flex;padding:0 4px;transition:box-shadow .15s linear}.card-body .trigger-btn{background:none;border:1px solid #0000;border-radius:2px;height:20px;margin:2px 4px;outline:none;padding:0 2px;position:relative}.card-body .trigger-btn:active,.card-body .trigger-btn:focus{background:#6d6d6d59;box-shadow:inset 0 1px 0 0 #00000026}.card-body .trigger-btn:hover{background:#6d6d6d33}.drag-handle{background:url(../../static/media/gripper.9defbc5e76d0de8bb6e0.svg) 50% no-repeat;background-size:9px;height:18px;width:10px}.icon-custom-trigger{background-repeat:no-repeat;height:19px;width:23px}.alert-success .icon-custom-trigger,.trigger-tutorial-icon{background-image:url(../../static/media/trigger-ok.7b9c238be42f685c4fa7.svg)}.trigger-tutorial .icon{display:inline-block;margin-bottom:-4px}.alert-danger .icon-custom-trigger{background-image:url(../../static/media/trigger-error.3f1c4ef23ab8f3e60b0e.svg)}.card-body:active,.card-body:focus,.card-body:hover{opacity:1}:root{--tutorial-width:340px;--tutorial-arrow-size:8px}.trigger-tutorial{color:#000;margin-top:8px;margin-top:var(--tutorial-arrow-size);padding:15px;position:absolute;right:-143px;-webkit-user-select:none;user-select:none;width:340px;width:var(--tutorial-width)}.trigger-tutorial p:last-of-type{margin-bottom:5px}.trigger-tutorial:before{background:url(../../static/media/arrow.0c2968b90bd9a64c8c3f.svg) no-repeat;content:"";display:block;height:16px;height:calc(var(--tutorial-arrow-size)*2);left:162px;left:calc(var(--tutorial-width)/2 - var(--tutorial-arrow-size));position:absolute;top:-16px;top:calc(var(--tutorial-arrow-size)*-2);width:16px;width:calc(var(--tutorial-arrow-size)*2)}div#MatlabJsd{height:100%}#MatlabJsd iframe{border:0;height:100%;width:100%}label{padding-left:5px}p#LicensingGathererNote{margin:15px 0 0}#controls{display:flex;justify-content:space-evenly;overflow:auto}#controls .btn{align-items:center;display:flex;min-width:100px;padding:10px 5px;width:120px}#controls .btn.btn_color_blue{border-width:2px}#controls.labels-on-top .btn{flex-direction:column}#controls .btn span[class*=icon-custom-]{--size:32px;background-repeat:no-repeat;height:var(--size);margin-right:4px;width:var(--size)}#controls.labels-on-top .btn span[class*=icon-custom-]{display:block;margin:0 -2px 4px 0}#controls .btn-label{font-size:13px}.icon-custom-restart{background-image:url(../../static/media/restart.7987508a01e84678361a.svg)}.icon-custom-start{background-image:url(../../static/media/start.50c4596fab2049b4a3a3.svg)}.icon-custom-stop{background-image:url(../../static/media/stop.30c9a9ab6d625032235a.svg)}.icon-custom-sign-out{background-image:url(../../static/media/sign-out.08356b675ec854afaa77.svg)}.icon-custom-shutdown{background-image:url(../../static/media/terminate.7ea1363ee0fa72344ef6.svg)}.icon-custom-feedback{background-image:url(../../static/media/feedback.6e8d50eb812cf35e0e76.svg)}.icon-custom-help{background-image:url(../../static/media/help.15e5bfab03a2b9c7148e.svg)}#information .alert:not(.error-container,.warnings-container){background:#fff;margin-bottom:0;padding:0}#information .error-msg,.warnings-msg{font:10pt monospace;white-space:pre}#information .error-container.alert,.warnings-container.alert{border-radius:0;margin:5px 20px;padding:10px}#information .error-container.alert p,.warnings-container.alert p{margin:0}#information .error-container.alert .error-text,.warnings-container.alert .warnings-text{margin-left:30px}#information .error-logs-container .error-container.alert,.warnings-container .warnings-container.alert{padding:0}#information .error-msg,.warnings-msg{max-height:200px;overflow:auto;padding:10px}#information .error-logs-container .warnings-container .expand_trigger{font-size:15px;padding:10px 5px 5px 40px}#information .expand_target{max-height:200px;overflow:hidden;transition:max-height .2s ease-out,border-color .2s ease-in}#information .expand_target.collapsed{border-color:#fff;max-height:0}#spinner{--spinner-size:22px;animation:spin 2s linear infinite;border:4px solid #0000001a;border-radius:50%;border-top-color:#09f;float:left;height:var(--spinner-size);margin-right:4px;width:var(--spinner-size)}#icon-small{color:green;float:none;margin-left:3px}#token{margin-right:1rem;width:15ch}#token-form{margin-top:1rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.alert table td{padding:4px}.alert table td:first-child{padding-left:0;padding-right:20px;white-space:nowrap}.alert table td:nth-child(2){white-space:normal}@media (min-width:768px){.modal-dialog{width:700px}}.passive-link{color:#888;cursor:pointer;text-decoration:underline}.flex-item-1{flex-basis:30%}.flex-item-1,.flex-item-2{align-items:center;padding:.2rem}.flex-item-2{flex-basis:70%}.help p[class*=icon-]{background-position:left 4px;background-repeat:no-repeat;background-size:32px;margin-bottom:10px;min-height:36px;padding-left:40px}#error .alert{border-radius:10px;margin-bottom:0;padding:0}#error .modal-body pre{background-color:#fff0;border:none;font-family:inherit;font-size:15px;white-space:pre-wrap}#error .modal-header{padding-left:45px}#error .alert .alert_heading{font-size:18px;margin-bottom:0}#error .alert .error-msg{color:#b7312c;font:10pt monospace;white-space:pre}#information .alert:not(.error-container){background:#fff;margin-bottom:0;padding:0}#information .modal-header{padding-left:45px}.alert,.modal-content{border-radius:10px}#information .details{margin:0 30px}#information .alert .alert_heading{font-size:18px;margin-bottom:0}.flex-container{align-items:center;display:flex;margin-bottom:1rem}.token-btn{height:2em;max-width:10ch;padding-bottom:.3em;padding-top:5px}.btn{background-color:#3391ba}#resume-button{color:#fff}
13
+ /*# sourceMappingURL=main.efa05ff9.css.map*/