diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 0000000..57fd149 --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 5557e34da5a0800c4c9ad5fb2c151b83 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/_modules/index.html b/_modules/index.html new file mode 100644 index 0000000..3ea3df6 --- /dev/null +++ b/_modules/index.html @@ -0,0 +1,264 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+import datetime
+import logging
+import os
+import subprocess
+from typing import List, Optional
+
+import fire
+import yaml
+from kubernetes import client, config
+from rich import print
+from rich.logging import RichHandler
+
+logger = logging.getLogger(__name__)
+logger.setLevel(logging.INFO)
+handler = RichHandler(markup=True)
+handler.setFormatter(logging.Formatter("%(message)s"))
+logger.addHandler(handler)
+
+MAX_CPU = 192
+MAX_RAM = 890
+MAX_GPU = 8
+
+# A summary of the GPU setup is:
+
+# * 32 full Nvidia A100 80 GB GPUs
+# * 88 full Nvidia A100 40 GB GPUs
+# * 14 MIG Nvidia A100 40 GB GPUs equating to 28 Nvidia A100 3G.20GB GPUs
+# * 20 MIG Nvidia A100 40 GB GPU equating to 140 A100 1G.5GB GPUs
+
+import grp
+import os
+import pwd
+
+
+
+[docs]
+def fetch_user_info():
+ user_info = {}
+
+ # Get the current user name
+ user_info["username"] = os.getlogin()
+
+ # Get user entry from /etc/passwd
+ pw_entry = pwd.getpwnam(os.getlogin())
+
+ # Extracting home directory and shell from the password entry
+ user_info["home"] = pw_entry.pw_dir
+ user_info["shell"] = pw_entry.pw_shell
+
+ # Get group IDs
+ group_ids = os.getgrouplist(os.getlogin(), pw_entry.pw_gid)
+
+ # Get group names from group IDs
+ user_info["groups"] = " ".join(
+ [grp.getgrgid(gid).gr_name for gid in group_ids]
+ )
+
+ return user_info
+
+
+
+
+[docs]
+class GPU_PRODUCT:
+ NVIDIA_A100_SXM4_80GB = "NVIDIA-A100-SXM4-80GB"
+ NVIDIA_A100_SXM4_40GB = "NVIDIA-A100-SXM4-40GB"
+ NVIDIA_A100_SXM4_40GB_MIG_3G_20GB = "NVIDIA-A100-SXM4-40GB-MIG-3g.20gb"
+ NVIDIA_A100_SXM4_40GB_MIG_1G_5GB = "NVIDIA-A100-SXM4-40GB-MIG-1g.5gb"
+
+
+
+
+[docs]
+class KubernetesJob:
+ """
+ A class for generating Kubernetes Job YAML configurations.
+
+ Attributes:
+ name (str): Name of the job and associated resources.
+ image (str): Container image to use for the job.
+ command (List[str], optional): Command to execute in the container. Defaults to None.
+ args (List[str], optional): Arguments for the command. Defaults to None.
+ cpu_request (str, optional): Amount of CPU to request. For example, "500m" for half a CPU. Defaults to None. Max is 192 CPUs
+ ram_request (str, optional): Amount of RAM to request. For example, "1Gi" for 1 gibibyte. Defaults to None. Max is 890 GB
+ storage_request (str, optional): Amount of storage to request. For example, "10Gi" for 10 gibibytes. Defaults to None.
+ gpu_type (str, optional): Type of GPU resource, e.g. "nvidia.com/gpu". Defaults to None.
+ gpu_product (str, optional): GPU product, e.g. "NVIDIA-A100-SXM4-80GB". Defaults to None.
+ Possible choices: NVIDIA-A100-SXM4-80GB – a full non-MIG 80GB GPU, total available 32
+ NVIDIA-A100-SXM4-40GB – a full non-MIG 40GB GPU, total available 88
+ NVIDIA-A100-SXM4-40GB-MIG-3g.20gb – just under half-GPU
+ NVIDIA-A100-SXM4-40GB-MIG-1g.5gb – a seventh of a GPU
+ gpu_limit (int, optional): Number of GPU resources to allocate. Defaults to None.
+ backoff_limit (int, optional): Maximum number of retries before marking job as failed. Defaults to 4.
+ restart_policy (str, optional): Restart policy for the job, default is "Never".
+ shm_size (str, optional): Size of shared memory, e.g. "2Gi". If not set, defaults to None.
+ secret_env_vars (dict, optional): Dictionary of secret environment variables. Defaults to None.
+ env_vars (dict, optional): Dictionary of normal (non-secret) environment variables. Defaults to None.
+ volume_mounts (dict, optional): Dictionary of volume mounts. Defaults to None.
+
+ Methods:
+ generate_yaml() -> dict: Generate the Kubernetes Job YAML configuration.
+ """
+
+ def __init__(
+ self,
+ name: str,
+ image: str,
+ command: List[str] = None,
+ args: Optional[List[str]] = None,
+ cpu_request: Optional[str] = None,
+ ram_request: Optional[str] = None,
+ storage_request: Optional[str] = None,
+ gpu_type: Optional[str] = None,
+ gpu_product: Optional[str] = None,
+ gpu_limit: Optional[int] = None,
+ backoff_limit: int = 4,
+ restart_policy: str = "Never",
+ shm_size: Optional[str] = None,
+ secret_env_vars: Optional[dict] = None,
+ env_vars: Optional[dict] = None,
+ volume_mounts: Optional[dict] = None,
+ job_deadlineseconds: Optional[int] = None,
+ privileged_security_context: bool = False,
+ ):
+ self.name = name
+ self.metadata = fetch_user_info()
+ self.image = image
+ self.command = command
+ self.args = args
+ self.cpu_request = (
+ cpu_request
+ if cpu_request
+ else MAX_CPU // (MAX_GPU - gpu_limit + 1)
+ )
+ self.ram_request = (
+ ram_request
+ if ram_request
+ else f"{MAX_RAM // (MAX_GPU - gpu_limit + 1)}G"
+ )
+ self.storage_request = storage_request
+ self.gpu_type = gpu_type
+ self.gpu_product = gpu_product
+ assert (
+ gpu_limit is not None
+ ), f"gpu_limit must be set to a value between 1 and {MAX_GPU}, not {gpu_limit}"
+ assert (
+ gpu_limit > 0
+ ), f"gpu_limit must be set to a value between 1 and {MAX_GPU}, not {gpu_limit}"
+ self.gpu_limit = gpu_limit
+ self.backoff_limit = backoff_limit
+ self.restart_policy = restart_policy
+ self.shm_size = (
+ ram_request
+ if ram_request
+ else f"{MAX_RAM // (MAX_GPU - gpu_limit + 1)}G"
+ )
+ self.secret_env_vars = secret_env_vars
+ self.env_vars = env_vars
+ self.volume_mounts = volume_mounts
+ self.job_deadlineseconds = job_deadlineseconds
+ self.privileged_security_context = privileged_security_context
+
+ def _add_shm_size(self, container: dict):
+ """Adds shared memory volume if shm_size is set."""
+ if self.shm_size:
+ # container["resources"]["limits"]["memory"] = self.shm_size
+ # container["resources"]["requests"] = {"memory": self.shm_size}
+ container["volumeMounts"].append(
+ {"name": "dshm", "mountPath": "/dev/shm"}
+ )
+ return container
+
+ def _add_env_vars(self, container: dict):
+ """Adds secret and normal environment variables to the
+ container."""
+ if self.secret_env_vars or self.env_vars:
+ container["env"] = []
+ if self.secret_env_vars:
+ for key, value in self.secret_env_vars.items():
+ container["env"].append(
+ {
+ "name": key,
+ "valueFrom": {
+ "secretKeyRef": {
+ "name": value["secret_name"],
+ "key": value["key"],
+ }
+ },
+ }
+ )
+
+ if self.env_vars:
+ for key, value in self.env_vars.items():
+ container["env"].append({"name": key, "value": value})
+
+ return container
+
+ def _add_volume_mounts(self, container: dict):
+ """Adds volume mounts to the container."""
+ if self.volume_mounts:
+ for mount_name, mount_data in self.volume_mounts.items():
+ container["volumeMounts"].append(
+ {
+ "name": mount_name,
+ "mountPath": mount_data["mountPath"],
+ }
+ )
+
+ return container
+
+ def _add_privileged_security_context(self, container: dict):
+ """Adds privileged security context to the container."""
+ if self.privileged_security_context:
+ container["securityContext"] = {
+ "privileged": True,
+ }
+
+ return container
+
+
+[docs]
+ def generate_yaml(self):
+ container = {
+ "name": self.name,
+ "image": self.image,
+ "imagePullPolicy": "Always",
+ "volumeMounts": [],
+ "resources": {
+ "requests": {},
+ "limits": {},
+ },
+ }
+
+ if self.command is not None:
+ container["command"] = self.command
+
+ if self.args is not None:
+ container["args"] = self.args
+
+ if not (
+ self.gpu_type is None
+ or self.gpu_limit is None
+ or self.gpu_product is None
+ ):
+ container["resources"] = {
+ "limits": {f"{self.gpu_type}": self.gpu_limit}
+ }
+
+ container = self._add_shm_size(container)
+ container = self._add_env_vars(container)
+ container = self._add_volume_mounts(container)
+ container = self._add_privileged_security_context(container)
+
+ if (
+ self.cpu_request is not None
+ or self.ram_request is not None
+ or self.storage_request is not None
+ ):
+ if "resources" not in container:
+ container["resources"] = {"requests": {}}
+
+ if "requests" not in container["resources"]:
+ container["resources"]["requests"] = {}
+
+ if self.cpu_request is not None:
+ container["resources"]["requests"]["cpu"] = self.cpu_request
+ container["resources"]["limits"]["cpu"] = self.cpu_request
+
+ if self.ram_request is not None:
+ container["resources"]["requests"]["memory"] = self.ram_request
+ container["resources"]["limits"]["memory"] = self.ram_request
+
+ if self.storage_request is not None:
+ container["resources"]["requests"][
+ "storage"
+ ] = self.storage_request
+
+ if self.gpu_type is not None and self.gpu_limit is not None:
+ container["resources"]["limits"][
+ f"{self.gpu_type}"
+ ] = self.gpu_limit
+
+ job = {
+ "apiVersion": "batch/v1",
+ "kind": "Job",
+ "metadata": {
+ "name": self.name,
+ "annotations": self.metadata, # Add metadata here
+ },
+ "spec": {
+ "template": {
+ "metadata": {
+ "annotations": self.metadata # Add metadata to Pod template as well
+ },
+ "spec": {
+ "containers": [container],
+ "restartPolicy": self.restart_policy,
+ "volumes": [],
+ },
+ },
+ "backoffLimit": self.backoff_limit,
+ },
+ }
+
+ if self.job_deadlineseconds:
+ job["spec"]["activeDeadlineSeconds"] = self.job_deadlineseconds
+
+ if not (
+ self.gpu_type is None
+ or self.gpu_limit is None
+ or self.gpu_product is None
+ ):
+ job["spec"]["template"]["spec"]["nodeSelector"] = {
+ f"{self.gpu_type}.product": self.gpu_product
+ }
+ # Add shared memory volume if shm_size is set
+ if self.shm_size:
+ job["spec"]["template"]["spec"]["volumes"].append(
+ {
+ "name": "dshm",
+ "emptyDir": {
+ "medium": "Memory",
+ "sizeLimit": self.shm_size,
+ },
+ }
+ )
+
+ # Add volumes for the volume mounts
+ if self.volume_mounts:
+ for mount_name, mount_data in self.volume_mounts.items():
+ volume = {"name": mount_name}
+
+ if "pvc" in mount_data:
+ volume["persistentVolumeClaim"] = {
+ "claimName": mount_data["pvc"]
+ }
+ elif "emptyDir" in mount_data:
+ volume["emptyDir"] = {}
+ # Add more volume types here if needed
+
+ job["spec"]["template"]["spec"]["volumes"].append(volume)
+
+ return yaml.dump(job)
+
+
+
+[docs]
+ def run(self):
+ config.load_kube_config()
+
+ job_yaml = self.generate_yaml()
+
+ # Save the generated YAML to a temporary file
+ with open("temp_job.yaml", "w") as temp_file:
+ temp_file.write(job_yaml)
+
+ # Run the kubectl command with --validate=False
+ cmd = ["kubectl", "apply", "-f", "temp_job.yaml", "--validate=False"]
+ result = 1
+ try:
+ result = subprocess.run(
+ cmd,
+ check=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ text=True,
+ )
+ # Remove the temporary file
+ os.remove("temp_job.yaml")
+ return result.returncode
+ except Exception as e:
+ logger.info(f"Command failed with return code {e}")
+ # Remove the temporary file
+ os.remove("temp_job.yaml")
+ return result
+
+
+
+[docs]
+ @classmethod
+ def from_command_line(cls):
+ """Create a KubernetesJob instance from command-line arguments
+ and run the job."""
+ fire.Fire(cls)
+
+
+
+
+
+[docs]
+def create_jobs_for_experiments(commands: List[str], *args, **kwargs):
+ """
+ Creates and runs a Kubernetes Job for each command in the given list of commands.
+
+ :param commands: A list of strings, where each string represents a command to be executed.
+ :param args: Positional arguments to be passed to the KubernetesJob constructor.
+ :param kwargs: Keyword arguments to be passed to the KubernetesJob constructor.
+
+ :Example:
+
+ .. code-block:: python
+
+ from kubejobs import KubernetesJob
+
+ commands = [
+ "python experiment.py --param1 value1",
+ "python experiment.py --param1 value2",
+ "python experiment.py --param1 value3"
+ ]
+
+ create_jobs_for_experiments(
+ commands,
+ image="nvcr.io/nvidia/cuda:12.0.0-cudnn8-devel-ubuntu22.04",
+ gpu_type="nvidia.com/gpu",
+ gpu_limit=1,
+ backoff_limit=4
+ )
+ """
+ jobs = []
+ for idx, command in enumerate(commands):
+ job_name = f"{kwargs.get('name', 'experiment')}-{idx}"
+ kubernetes_job = KubernetesJob(
+ name=job_name,
+ command=["/bin/bash"],
+ args=["-c", command],
+ *args,
+ **kwargs,
+ )
+ kubernetes_job.run()
+ jobs.append(kubernetes_job)
+
+ return jobs
+
+
+
+import json
+import subprocess
+
+
+
+[docs]
+def create_pvc(
+ pvc_name: str,
+ storage: str,
+ access_modes: list = None,
+):
+ if access_modes is None:
+ access_modes = ["ReadWriteOnce"]
+
+ if isinstance(access_modes, str):
+ access_modes = [access_modes]
+
+ pvc = {
+ "apiVersion": "v1",
+ "kind": "PersistentVolumeClaim",
+ "metadata": {"name": pvc_name},
+ "spec": {
+ "accessModes": access_modes,
+ "resources": {"requests": {"storage": storage}},
+ },
+ }
+
+ # Convert the PVC dictionary to a JSON string
+ pvc_json = json.dumps(pvc)
+
+ # Write the JSON to a temporary file
+ with open("pvc.json", "w") as f:
+ f.write(pvc_json)
+
+ # Use kubectl to create the PVC from the JSON file
+ subprocess.run(["kubectl", "apply", "-f", "pvc.json"], check=True)
+
+ # Clean up the temporary file
+ subprocess.run(["rm", "pvc.json"], check=True)
+
+ return pvc_name
+
+
+
+
+[docs]
+def create_pv(
+ pv_name: str,
+ storage: str,
+ storage_class_name: str,
+ access_modes: list,
+ pv_type: str,
+ namespace: str = "default",
+ claim_name: str = None,
+ local_path: str = None,
+ fs_type: str = "ext4",
+):
+ """
+ Create a PersistentVolume in the specified namespace with the specified type.
+
+ :param pv_name: The name of the PersistentVolume.
+ :param storage: The amount of storage for the PersistentVolume (e.g., "1500Gi").
+ :param storage_class_name: The storage class name for the PersistentVolume.
+ :param access_modes: A list of access modes for the PersistentVolume.
+ :param pv_type: The type of PersistentVolume, either 'local' or 'gcePersistentDisk'.
+ :param namespace: The namespace in which to create the PersistentVolume. Defaults to "default".
+ :param claim_name: The name of the PersistentVolumeClaim to bind to the PersistentVolume.
+ :param local_path: The path on the host for a local PersistentVolume. Required if pv_type is 'local'.
+ :param fs_type: The filesystem type for the PersistentVolume. Defaults to "ext4".
+
+ Example usage:
+
+ .. code-block:: python
+
+ create_pv("pv-instafluencer-data", "1500Gi", "sc-instafluencer-data", ["ReadOnlyMany"], "local",
+ claim_name="pvc-instafluencer-data", local_path="/mnt/data")
+ # This will create a local PersistentVolume named "pv-instafluencer-data" with 1500Gi of storage,
+ # "sc-instafluencer-data" storage class, ReadOnlyMany access mode, and a local path "/mnt/data".
+ """
+
+ if pv_type not in ["local", "node"]:
+ raise ValueError(
+ "pv_type must be either 'local' or 'gcePersistentDisk'"
+ )
+
+ if pv_type == "local" and not local_path:
+ raise ValueError("local_path must be provided when pv_type is 'local'")
+
+ pv = {
+ "apiVersion": "v1",
+ "kind": "PersistentVolume",
+ "metadata": {"name": pv_name},
+ "spec": {
+ "storageClassName": storage_class_name,
+ "capacity": {"storage": storage},
+ "accessModes": access_modes,
+ "csi": {"driver": "pd.csi.storage.gke.io", "fsType": fs_type},
+ },
+ }
+
+ if claim_name:
+ pv["spec"]["claimRef"] = {"namespace": namespace, "name": claim_name}
+
+ if pv_type == "local":
+ pv["spec"]["hostPath"] = {"path": local_path}
+
+ print(pv)
+ config.load_kube_config()
+ core_api = client.CoreV1Api()
+ core_api.create_persistent_volume(body=pv)
+
+
+
+if __name__ == "__main__":
+ KubernetesJob.from_command_line()
+
' + + '' + + _("Hide Search Matches") + + "
" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/_static/stylesheets/application-fixes.css b/_static/stylesheets/application-fixes.css new file mode 100644 index 0000000..a65d194 --- /dev/null +++ b/_static/stylesheets/application-fixes.css @@ -0,0 +1,423 @@ +.md-nav--primary ul, .md-nav--primary ul li ul, .md-nav--secondary ul, .md-nav--secondary ul li ul { + margin: 0; + padding: 0; + list-style: none +} + +.md-nav--primary ul li, .md-nav--primary ul li ul li, .md-nav--secondary ul li, .md-nav--secondary ul li ul li { + padding: 0 .6rem; +} + +.md-nav--primary a.reference, .md-nav--secondary a.reference { + display: block; + margin-top: .625em; + transition: color .125s; + text-overflow: ellipsis; + cursor: pointer; + overflow: hidden +} + +.md-typeset td p, .md-typeset th p { + margin: 0 +} + +.md-typeset .admonition, .md-typeset details { + font-size: 0.8rem +} + +.classifier:before { + font-style: normal; + margin: 0.5em; + content: ":"; +} + +dl.footnote > dt, dl.citation > dt { + float: left; +} + +code.xref { + background-color: transparent; + font-weight: bold; +} + +table.docutils { + width: 100%; +} + +.longtable tr td:first-child { + width: 50%; + white-space: nowrap; +} + +dt:target { + margin-top: -3.55rem; + padding-top: 3.45rem; +} + +.md-typeset code { + margin: 0 +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +span.highlighted { + background-color: #fbe54e; +} + +p.rubric { + margin-top: 1rem; + font-weight: bold; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +table.longtable { + border-collapse: collapse; +} + +.longtable tr { + border: solid; + border-width: 1px 0; +} + +.longtable tr:first-child { + border-top: none; +} + +.md-tabs code, kbd, pre, .md-footer-nav code, kbd, pre { + color: rgb(255, 255, 255); +} + +.toctree-wrapper.compound li { + list-style: none; + padding: 0; + margin: 0 0 0.1rem 0.2rem; +} + +table.indextable.genindextable li { + margin: 0 0.5rem; +} + +table.indextable.genindextable li ul li { + list-style: none; +} + +p.highlight-link { + margin: 0.625rem 0 0 0; +} + +table.longtable.docutils.align-default { + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media only screen and (max-width: 40em) { + table.longtable.docutils.align-default { + display: block; + } + + .longtable.docutils.align-default td { + padding-right: 1rem; + } +} + +.md-nav__extra_link:after { + font-family: Material Icons; + font-style: normal; + font-variant: normal; + font-weight: 400; + line-height: 1; + text-transform: none; + white-space: nowrap; + speak: none; + word-wrap: normal; + direction: ltr +} + +.md-nav__extra_link { + display: block; + margin-top: .625em; + transition: color .125s; + text-overflow: ellipsis; + cursor: pointer; + overflow: hidden +} + +.md-nav__extra_link:active { + color: #3f51b5 +} + +.md-nav__extra_link:focus, .md-nav__extra_link:hover { + color: #536dfe +} + +@media only screen and (max-width: 76.1875em) { + .md-nav--primary .md-nav--secondary .md-nav__extra_link { + position: static + } + + .md-nav--primary .md-nav--secondary .md-nav .md-nav__extra_link { + padding-left: 1.4rem + } + + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__extra_link { + padding-left: 2.6rem + } +} + +[data-md-color-primary=red] .md-nav__extra_link:active { + color: #ef5350 +} + +[data-md-color-primary=red] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=pink] .md-nav__extra_link:active { + color: #e91e63 +} + +[data-md-color-primary=pink] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=purple] .md-nav__extra_link:active { + color: #ab47bc +} + +[data-md-color-primary=purple] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=deep-purple] .md-nav__extra_link:active { + color: #7e57c2 +} + +[data-md-color-primary=deep-purple] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=indigo] .md-nav__extra_link:active { + color: #3f51b5 +} + +[data-md-color-primary=indigo] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=blue] .md-nav__extra_link:active { + color: #2196f3 +} + +[data-md-color-primary=blue] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=light-blue] .md-nav__extra_link:active { + color: #03a9f4 +} + +[data-md-color-primary=light-blue] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=cyan] .md-nav__extra_link:active { + color: #00bcd4 +} + +[data-md-color-primary=cyan] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=teal] .md-nav__extra_link:active { + color: #009688 +} + +[data-md-color-primary=teal] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=green] .md-nav__extra_link:active { + color: #4caf50 +} + +[data-md-color-primary=green] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=light-green] .md-nav__extra_link:active { + color: #7cb342 +} + +[data-md-color-primary=light-green] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=lime] .md-nav__extra_link:active { + color: #c0ca33 +} + +[data-md-color-primary=lime] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=yellow] .md-nav__extra_link:active { + color: #f9a825 +} + +[data-md-color-primary=yellow] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=amber] .md-nav__extra_link:active { + color: #ffa000 +} + +[data-md-color-primary=amber] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=orange] .md-nav__extra_link:active { + color: #fb8c00 +} + +[data-md-color-primary=orange] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=deep-orange] .md-nav__extra_link:active { + color: #ff7043 +} + +[data-md-color-primary=deep-orange] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=brown] .md-nav__extra_link:active { + color: #795548 +} + +[data-md-color-primary=brown] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=grey] .md-nav__extra_link:active { + color: #757575 +} + +[data-md-color-primary=grey] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-primary=blue-grey] .md-nav__extra_link:active { + color: #546e7a +} + +[data-md-color-primary=blue-grey] .md-nav__item--nested > .md-nav__extra_link { + color: inherit +} + +[data-md-color-accent=red] .md-nav__extra_link:focus, [data-md-color-accent=red] .md-nav__extra_link:hover { + color: #ff1744 +} + +[data-md-color-accent=pink] .md-nav__extra_link:focus, [data-md-color-accent=pink] .md-nav__extra_link:hover { + color: #f50057 +} + +[data-md-color-accent=purple] .md-nav__extra_link:focus, [data-md-color-accent=purple] .md-nav__extra_link:hover { + color: #e040fb +} + +[data-md-color-accent=deep-purple] .md-nav__extra_link:focus, [data-md-color-accent=deep-purple] .md-nav__extra_link:hover { + color: #7c4dff +} + +[data-md-color-accent=indigo] .md-nav__extra_link:focus, [data-md-color-accent=indigo] .md-nav__extra_link:hover { + color: #536dfe +} + +[data-md-color-accent=blue] .md-nav__extra_link:focus, [data-md-color-accent=blue] .md-nav__extra_link:hover { + color: #448aff +} + +[data-md-color-accent=light-blue] .md-nav__extra_link:focus, [data-md-color-accent=light-blue] .md-nav__extra_link:hover { + color: #0091ea +} + +[data-md-color-accent=cyan] .md-nav__extra_link:focus, [data-md-color-accent=cyan] .md-nav__extra_link:hover { + color: #00b8d4 +} + +[data-md-color-accent=teal] .md-nav__extra_link:focus, [data-md-color-accent=teal] .md-nav__extra_link:hover { + color: #00bfa5 +} + +[data-md-color-accent=green] .md-nav__extra_link:focus, [data-md-color-accent=green] .md-nav__extra_link:hover { + color: #00c853 +} + +[data-md-color-accent=light-green] .md-nav__extra_link:focus, [data-md-color-accent=light-green] .md-nav__extra_link:hover { + color: #64dd17 +} + +[data-md-color-accent=lime] .md-nav__extra_link:focus, [data-md-color-accent=lime] .md-nav__extra_link:hover { + color: #aeea00 +} + +[data-md-color-accent=yellow] .md-nav__extra_link:focus, [data-md-color-accent=yellow] .md-nav__extra_link:hover { + color: #ffd600 +} + +[data-md-color-accent=amber] .md-nav__extra_link:focus, [data-md-color-accent=amber] .md-nav__extra_link:hover { + color: #ffab00 +} + +[data-md-color-accent=orange] .md-nav__extra_link:focus, [data-md-color-accent=orange] .md-nav__extra_link:hover { + color: #ff9100 +} + +[data-md-color-accent=deep-orange] .md-nav__extra_link:focus, [data-md-color-accent=deep-orange] .md-nav__extra_link:hover { + color: #ff6e40 +} + +div.rendered_html table { + font-size: 0.8rem !important; +} + +/* TODO: This is hacky; should have own class and not derive from link */ +.md-nav span.caption { + font-weight: 700; + pointer-events: none; +} + +.md-nav span.caption:hover, .md-nav span.caption:active { + color: #000; +} + +.md-typeset img.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +.md-typeset img.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +/* GH 93 */ +dl.citation dt span.brackets { + margin-right: 0.3rem; +} diff --git a/_static/stylesheets/application-palette.css b/_static/stylesheets/application-palette.css new file mode 100644 index 0000000..5eadc1c --- /dev/null +++ b/_static/stylesheets/application-palette.css @@ -0,0 +1,1352 @@ +button[data-md-color-accent], +button[data-md-color-primary] { + width: 6.5rem; + margin-bottom: .2rem; + padding: 1.2rem .4rem .2rem; + transition: background-color .25s, opacity .25s; + border-radius: .1rem; + color: #fff; + font-size: .64rem; + text-align: left; + cursor: pointer +} + +button[data-md-color-accent]:hover, +button[data-md-color-primary]:hover { + opacity: .75 +} + +button[data-md-color-primary=red] { + background-color: #ef5350 +} + +[data-md-color-primary=red] .md-typeset a { + color: #ef5350 +} + +[data-md-color-primary=red] .md-header, +[data-md-color-primary=red] .md-hero { + background-color: #ef5350 +} + +[data-md-color-primary=red] .md-nav__link--active, +[data-md-color-primary=red] .md-nav__link:active { + color: #ef5350 +} + +[data-md-color-primary=red] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=pink] { + background-color: #e91e63 +} + +[data-md-color-primary=pink] .md-typeset a { + color: #e91e63 +} + +[data-md-color-primary=pink] .md-header, +[data-md-color-primary=pink] .md-hero { + background-color: #e91e63 +} + +[data-md-color-primary=pink] .md-nav__link--active, +[data-md-color-primary=pink] .md-nav__link:active { + color: #e91e63 +} + +[data-md-color-primary=pink] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=purple] { + background-color: #ab47bc +} + +[data-md-color-primary=purple] .md-typeset a { + color: #ab47bc +} + +[data-md-color-primary=purple] .md-header, +[data-md-color-primary=purple] .md-hero { + background-color: #ab47bc +} + +[data-md-color-primary=purple] .md-nav__link--active, +[data-md-color-primary=purple] .md-nav__link:active { + color: #ab47bc +} + +[data-md-color-primary=purple] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=deep-purple] { + background-color: #7e57c2 +} + +[data-md-color-primary=deep-purple] .md-typeset a { + color: #7e57c2 +} + +[data-md-color-primary=deep-purple] .md-header, +[data-md-color-primary=deep-purple] .md-hero { + background-color: #7e57c2 +} + +[data-md-color-primary=deep-purple] .md-nav__link--active, +[data-md-color-primary=deep-purple] .md-nav__link:active { + color: #7e57c2 +} + +[data-md-color-primary=deep-purple] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=indigo] { + background-color: #3f51b5 +} + +[data-md-color-primary=indigo] .md-typeset a { + color: #3f51b5 +} + +[data-md-color-primary=indigo] .md-header, +[data-md-color-primary=indigo] .md-hero { + background-color: #3f51b5 +} + +[data-md-color-primary=indigo] .md-nav__link--active, +[data-md-color-primary=indigo] .md-nav__link:active { + color: #3f51b5 +} + +[data-md-color-primary=indigo] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=blue] { + background-color: #2196f3 +} + +[data-md-color-primary=blue] .md-typeset a { + color: #2196f3 +} + +[data-md-color-primary=blue] .md-header, +[data-md-color-primary=blue] .md-hero { + background-color: #2196f3 +} + +[data-md-color-primary=blue] .md-nav__link--active, +[data-md-color-primary=blue] .md-nav__link:active { + color: #2196f3 +} + +[data-md-color-primary=blue] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=light-blue] { + background-color: #03a9f4 +} + +[data-md-color-primary=light-blue] .md-typeset a { + color: #03a9f4 +} + +[data-md-color-primary=light-blue] .md-header, +[data-md-color-primary=light-blue] .md-hero { + background-color: #03a9f4 +} + +[data-md-color-primary=light-blue] .md-nav__link--active, +[data-md-color-primary=light-blue] .md-nav__link:active { + color: #03a9f4 +} + +[data-md-color-primary=light-blue] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=cyan] { + background-color: #00bcd4 +} + +[data-md-color-primary=cyan] .md-typeset a { + color: #00bcd4 +} + +[data-md-color-primary=cyan] .md-header, +[data-md-color-primary=cyan] .md-hero { + background-color: #00bcd4 +} + +[data-md-color-primary=cyan] .md-nav__link--active, +[data-md-color-primary=cyan] .md-nav__link:active { + color: #00bcd4 +} + +[data-md-color-primary=cyan] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=teal] { + background-color: #009688 +} + +[data-md-color-primary=teal] .md-typeset a { + color: #009688 +} + +[data-md-color-primary=teal] .md-header, +[data-md-color-primary=teal] .md-hero { + background-color: #009688 +} + +[data-md-color-primary=teal] .md-nav__link--active, +[data-md-color-primary=teal] .md-nav__link:active { + color: #009688 +} + +[data-md-color-primary=teal] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=green] { + background-color: #4caf50 +} + +[data-md-color-primary=green] .md-typeset a { + color: #4caf50 +} + +[data-md-color-primary=green] .md-header, +[data-md-color-primary=green] .md-hero { + background-color: #4caf50 +} + +[data-md-color-primary=green] .md-nav__link--active, +[data-md-color-primary=green] .md-nav__link:active { + color: #4caf50 +} + +[data-md-color-primary=green] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=light-green] { + background-color: #7cb342 +} + +[data-md-color-primary=light-green] .md-typeset a { + color: #7cb342 +} + +[data-md-color-primary=light-green] .md-header, +[data-md-color-primary=light-green] .md-hero { + background-color: #7cb342 +} + +[data-md-color-primary=light-green] .md-nav__link--active, +[data-md-color-primary=light-green] .md-nav__link:active { + color: #7cb342 +} + +[data-md-color-primary=light-green] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=lime] { + background-color: #c0ca33 +} + +[data-md-color-primary=lime] .md-typeset a { + color: #c0ca33 +} + +[data-md-color-primary=lime] .md-header, +[data-md-color-primary=lime] .md-hero { + background-color: #c0ca33 +} + +[data-md-color-primary=lime] .md-nav__link--active, +[data-md-color-primary=lime] .md-nav__link:active { + color: #c0ca33 +} + +[data-md-color-primary=lime] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=yellow] { + background-color: #f9a825 +} + +[data-md-color-primary=yellow] .md-typeset a { + color: #f9a825 +} + +[data-md-color-primary=yellow] .md-header, +[data-md-color-primary=yellow] .md-hero { + background-color: #f9a825 +} + +[data-md-color-primary=yellow] .md-nav__link--active, +[data-md-color-primary=yellow] .md-nav__link:active { + color: #f9a825 +} + +[data-md-color-primary=yellow] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=amber] { + background-color: #ffa000 +} + +[data-md-color-primary=amber] .md-typeset a { + color: #ffa000 +} + +[data-md-color-primary=amber] .md-header, +[data-md-color-primary=amber] .md-hero { + background-color: #ffa000 +} + +[data-md-color-primary=amber] .md-nav__link--active, +[data-md-color-primary=amber] .md-nav__link:active { + color: #ffa000 +} + +[data-md-color-primary=amber] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=orange] { + background-color: #fb8c00 +} + +[data-md-color-primary=orange] .md-typeset a { + color: #fb8c00 +} + +[data-md-color-primary=orange] .md-header, +[data-md-color-primary=orange] .md-hero { + background-color: #fb8c00 +} + +[data-md-color-primary=orange] .md-nav__link--active, +[data-md-color-primary=orange] .md-nav__link:active { + color: #fb8c00 +} + +[data-md-color-primary=orange] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=deep-orange] { + background-color: #ff7043 +} + +[data-md-color-primary=deep-orange] .md-typeset a { + color: #ff7043 +} + +[data-md-color-primary=deep-orange] .md-header, +[data-md-color-primary=deep-orange] .md-hero { + background-color: #ff7043 +} + +[data-md-color-primary=deep-orange] .md-nav__link--active, +[data-md-color-primary=deep-orange] .md-nav__link:active { + color: #ff7043 +} + +[data-md-color-primary=deep-orange] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=brown] { + background-color: #795548 +} + +[data-md-color-primary=brown] .md-typeset a { + color: #795548 +} + +[data-md-color-primary=brown] .md-header, +[data-md-color-primary=brown] .md-hero { + background-color: #795548 +} + +[data-md-color-primary=brown] .md-nav__link--active, +[data-md-color-primary=brown] .md-nav__link:active { + color: #795548 +} + +[data-md-color-primary=brown] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=grey] { + background-color: #757575 +} + +[data-md-color-primary=grey] .md-typeset a { + color: #757575 +} + +[data-md-color-primary=grey] .md-header, +[data-md-color-primary=grey] .md-hero { + background-color: #757575 +} + +[data-md-color-primary=grey] .md-nav__link--active, +[data-md-color-primary=grey] .md-nav__link:active { + color: #757575 +} + +[data-md-color-primary=grey] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=blue-grey] { + background-color: #546e7a +} + +[data-md-color-primary=blue-grey] .md-typeset a { + color: #546e7a +} + +[data-md-color-primary=blue-grey] .md-header, +[data-md-color-primary=blue-grey] .md-hero { + background-color: #546e7a +} + +[data-md-color-primary=blue-grey] .md-nav__link--active, +[data-md-color-primary=blue-grey] .md-nav__link:active { + color: #546e7a +} + +[data-md-color-primary=blue-grey] .md-nav__item--nested>.md-nav__link { + color: inherit +} + +button[data-md-color-primary=white] { + box-shadow: inset 0 0 .05rem rgba(0, 0, 0, .54) +} + +[data-md-color-primary=white] .md-header, +[data-md-color-primary=white] .md-hero, +button[data-md-color-primary=white] { + background-color: #fff; + color: rgba(0, 0, 0, .87) +} + +[data-md-color-primary=white] .md-hero--expand { + border-bottom: .05rem solid rgba(0, 0, 0, .07) +} + +button[data-md-color-accent=red] { + background-color: #ff1744 +} + +[data-md-color-accent=red] .md-typeset a:active, +[data-md-color-accent=red] .md-typeset a:hover { + color: #ff1744 +} + +[data-md-color-accent=red] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=red] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #ff1744 +} + +[data-md-color-accent=red] .md-nav__link:focus, +[data-md-color-accent=red] .md-nav__link:hover, +[data-md-color-accent=red] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=red] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=red] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=red] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=red] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=red] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=red] .md-typeset [id]:target .headerlink { + color: #ff1744 +} + +[data-md-color-accent=red] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #ff1744 +} + +[data-md-color-accent=red] .md-search-result__link:hover, +[data-md-color-accent=red] .md-search-result__link[data-md-state=active] { + background-color: rgba(255, 23, 68, .1) +} + +[data-md-color-accent=red] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #ff1744 +} + +[data-md-color-accent=red] .md-source-file:hover:before { + background-color: #ff1744 +} + +button[data-md-color-accent=pink] { + background-color: #f50057 +} + +[data-md-color-accent=pink] .md-typeset a:active, +[data-md-color-accent=pink] .md-typeset a:hover { + color: #f50057 +} + +[data-md-color-accent=pink] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=pink] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #f50057 +} + +[data-md-color-accent=pink] .md-nav__link:focus, +[data-md-color-accent=pink] .md-nav__link:hover, +[data-md-color-accent=pink] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=pink] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=pink] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=pink] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=pink] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=pink] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=pink] .md-typeset [id]:target .headerlink { + color: #f50057 +} + +[data-md-color-accent=pink] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #f50057 +} + +[data-md-color-accent=pink] .md-search-result__link:hover, +[data-md-color-accent=pink] .md-search-result__link[data-md-state=active] { + background-color: rgba(245, 0, 87, .1) +} + +[data-md-color-accent=pink] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #f50057 +} + +[data-md-color-accent=pink] .md-source-file:hover:before { + background-color: #f50057 +} + +button[data-md-color-accent=purple] { + background-color: #e040fb +} + +[data-md-color-accent=purple] .md-typeset a:active, +[data-md-color-accent=purple] .md-typeset a:hover { + color: #e040fb +} + +[data-md-color-accent=purple] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=purple] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #e040fb +} + +[data-md-color-accent=purple] .md-nav__link:focus, +[data-md-color-accent=purple] .md-nav__link:hover, +[data-md-color-accent=purple] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=purple] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=purple] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=purple] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=purple] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=purple] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=purple] .md-typeset [id]:target .headerlink { + color: #e040fb +} + +[data-md-color-accent=purple] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #e040fb +} + +[data-md-color-accent=purple] .md-search-result__link:hover, +[data-md-color-accent=purple] .md-search-result__link[data-md-state=active] { + background-color: rgba(224, 64, 251, .1) +} + +[data-md-color-accent=purple] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #e040fb +} + +[data-md-color-accent=purple] .md-source-file:hover:before { + background-color: #e040fb +} + +button[data-md-color-accent=deep-purple] { + background-color: #7c4dff +} + +[data-md-color-accent=deep-purple] .md-typeset a:active, +[data-md-color-accent=deep-purple] .md-typeset a:hover { + color: #7c4dff +} + +[data-md-color-accent=deep-purple] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=deep-purple] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #7c4dff +} + +[data-md-color-accent=deep-purple] .md-nav__link:focus, +[data-md-color-accent=deep-purple] .md-nav__link:hover, +[data-md-color-accent=deep-purple] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=deep-purple] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=deep-purple] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=deep-purple] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=deep-purple] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=deep-purple] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=deep-purple] .md-typeset [id]:target .headerlink { + color: #7c4dff +} + +[data-md-color-accent=deep-purple] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #7c4dff +} + +[data-md-color-accent=deep-purple] .md-search-result__link:hover, +[data-md-color-accent=deep-purple] .md-search-result__link[data-md-state=active] { + background-color: rgba(124, 77, 255, .1) +} + +[data-md-color-accent=deep-purple] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #7c4dff +} + +[data-md-color-accent=deep-purple] .md-source-file:hover:before { + background-color: #7c4dff +} + +button[data-md-color-accent=indigo] { + background-color: #536dfe +} + +[data-md-color-accent=indigo] .md-typeset a:active, +[data-md-color-accent=indigo] .md-typeset a:hover { + color: #536dfe +} + +[data-md-color-accent=indigo] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=indigo] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #536dfe +} + +[data-md-color-accent=indigo] .md-nav__link:focus, +[data-md-color-accent=indigo] .md-nav__link:hover, +[data-md-color-accent=indigo] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=indigo] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=indigo] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=indigo] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=indigo] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=indigo] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=indigo] .md-typeset [id]:target .headerlink { + color: #536dfe +} + +[data-md-color-accent=indigo] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #536dfe +} + +[data-md-color-accent=indigo] .md-search-result__link:hover, +[data-md-color-accent=indigo] .md-search-result__link[data-md-state=active] { + background-color: rgba(83, 109, 254, .1) +} + +[data-md-color-accent=indigo] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #536dfe +} + +[data-md-color-accent=indigo] .md-source-file:hover:before { + background-color: #536dfe +} + +button[data-md-color-accent=blue] { + background-color: #448aff +} + +[data-md-color-accent=blue] .md-typeset a:active, +[data-md-color-accent=blue] .md-typeset a:hover { + color: #448aff +} + +[data-md-color-accent=blue] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=blue] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #448aff +} + +[data-md-color-accent=blue] .md-nav__link:focus, +[data-md-color-accent=blue] .md-nav__link:hover, +[data-md-color-accent=blue] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=blue] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=blue] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=blue] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=blue] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=blue] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=blue] .md-typeset [id]:target .headerlink { + color: #448aff +} + +[data-md-color-accent=blue] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #448aff +} + +[data-md-color-accent=blue] .md-search-result__link:hover, +[data-md-color-accent=blue] .md-search-result__link[data-md-state=active] { + background-color: rgba(68, 138, 255, .1) +} + +[data-md-color-accent=blue] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #448aff +} + +[data-md-color-accent=blue] .md-source-file:hover:before { + background-color: #448aff +} + +button[data-md-color-accent=light-blue] { + background-color: #0091ea +} + +[data-md-color-accent=light-blue] .md-typeset a:active, +[data-md-color-accent=light-blue] .md-typeset a:hover { + color: #0091ea +} + +[data-md-color-accent=light-blue] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=light-blue] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #0091ea +} + +[data-md-color-accent=light-blue] .md-nav__link:focus, +[data-md-color-accent=light-blue] .md-nav__link:hover, +[data-md-color-accent=light-blue] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=light-blue] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=light-blue] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=light-blue] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=light-blue] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=light-blue] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=light-blue] .md-typeset [id]:target .headerlink { + color: #0091ea +} + +[data-md-color-accent=light-blue] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #0091ea +} + +[data-md-color-accent=light-blue] .md-search-result__link:hover, +[data-md-color-accent=light-blue] .md-search-result__link[data-md-state=active] { + background-color: rgba(0, 145, 234, .1) +} + +[data-md-color-accent=light-blue] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #0091ea +} + +[data-md-color-accent=light-blue] .md-source-file:hover:before { + background-color: #0091ea +} + +button[data-md-color-accent=cyan] { + background-color: #00b8d4 +} + +[data-md-color-accent=cyan] .md-typeset a:active, +[data-md-color-accent=cyan] .md-typeset a:hover { + color: #00b8d4 +} + +[data-md-color-accent=cyan] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=cyan] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #00b8d4 +} + +[data-md-color-accent=cyan] .md-nav__link:focus, +[data-md-color-accent=cyan] .md-nav__link:hover, +[data-md-color-accent=cyan] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=cyan] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=cyan] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=cyan] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=cyan] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=cyan] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=cyan] .md-typeset [id]:target .headerlink { + color: #00b8d4 +} + +[data-md-color-accent=cyan] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #00b8d4 +} + +[data-md-color-accent=cyan] .md-search-result__link:hover, +[data-md-color-accent=cyan] .md-search-result__link[data-md-state=active] { + background-color: rgba(0, 184, 212, .1) +} + +[data-md-color-accent=cyan] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #00b8d4 +} + +[data-md-color-accent=cyan] .md-source-file:hover:before { + background-color: #00b8d4 +} + +button[data-md-color-accent=teal] { + background-color: #00bfa5 +} + +[data-md-color-accent=teal] .md-typeset a:active, +[data-md-color-accent=teal] .md-typeset a:hover { + color: #00bfa5 +} + +[data-md-color-accent=teal] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=teal] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #00bfa5 +} + +[data-md-color-accent=teal] .md-nav__link:focus, +[data-md-color-accent=teal] .md-nav__link:hover, +[data-md-color-accent=teal] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=teal] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=teal] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=teal] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=teal] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=teal] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=teal] .md-typeset [id]:target .headerlink { + color: #00bfa5 +} + +[data-md-color-accent=teal] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #00bfa5 +} + +[data-md-color-accent=teal] .md-search-result__link:hover, +[data-md-color-accent=teal] .md-search-result__link[data-md-state=active] { + background-color: rgba(0, 191, 165, .1) +} + +[data-md-color-accent=teal] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #00bfa5 +} + +[data-md-color-accent=teal] .md-source-file:hover:before { + background-color: #00bfa5 +} + +button[data-md-color-accent=green] { + background-color: #00c853 +} + +[data-md-color-accent=green] .md-typeset a:active, +[data-md-color-accent=green] .md-typeset a:hover { + color: #00c853 +} + +[data-md-color-accent=green] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=green] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #00c853 +} + +[data-md-color-accent=green] .md-nav__link:focus, +[data-md-color-accent=green] .md-nav__link:hover, +[data-md-color-accent=green] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=green] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=green] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=green] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=green] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=green] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=green] .md-typeset [id]:target .headerlink { + color: #00c853 +} + +[data-md-color-accent=green] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #00c853 +} + +[data-md-color-accent=green] .md-search-result__link:hover, +[data-md-color-accent=green] .md-search-result__link[data-md-state=active] { + background-color: rgba(0, 200, 83, .1) +} + +[data-md-color-accent=green] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #00c853 +} + +[data-md-color-accent=green] .md-source-file:hover:before { + background-color: #00c853 +} + +button[data-md-color-accent=light-green] { + background-color: #64dd17 +} + +[data-md-color-accent=light-green] .md-typeset a:active, +[data-md-color-accent=light-green] .md-typeset a:hover { + color: #64dd17 +} + +[data-md-color-accent=light-green] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=light-green] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #64dd17 +} + +[data-md-color-accent=light-green] .md-nav__link:focus, +[data-md-color-accent=light-green] .md-nav__link:hover, +[data-md-color-accent=light-green] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=light-green] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=light-green] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=light-green] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=light-green] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=light-green] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=light-green] .md-typeset [id]:target .headerlink { + color: #64dd17 +} + +[data-md-color-accent=light-green] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #64dd17 +} + +[data-md-color-accent=light-green] .md-search-result__link:hover, +[data-md-color-accent=light-green] .md-search-result__link[data-md-state=active] { + background-color: rgba(100, 221, 23, .1) +} + +[data-md-color-accent=light-green] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #64dd17 +} + +[data-md-color-accent=light-green] .md-source-file:hover:before { + background-color: #64dd17 +} + +button[data-md-color-accent=lime] { + background-color: #aeea00 +} + +[data-md-color-accent=lime] .md-typeset a:active, +[data-md-color-accent=lime] .md-typeset a:hover { + color: #aeea00 +} + +[data-md-color-accent=lime] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=lime] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #aeea00 +} + +[data-md-color-accent=lime] .md-nav__link:focus, +[data-md-color-accent=lime] .md-nav__link:hover, +[data-md-color-accent=lime] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=lime] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=lime] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=lime] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=lime] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=lime] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=lime] .md-typeset [id]:target .headerlink { + color: #aeea00 +} + +[data-md-color-accent=lime] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #aeea00 +} + +[data-md-color-accent=lime] .md-search-result__link:hover, +[data-md-color-accent=lime] .md-search-result__link[data-md-state=active] { + background-color: rgba(174, 234, 0, .1) +} + +[data-md-color-accent=lime] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #aeea00 +} + +[data-md-color-accent=lime] .md-source-file:hover:before { + background-color: #aeea00 +} + +button[data-md-color-accent=yellow] { + background-color: #ffd600 +} + +[data-md-color-accent=yellow] .md-typeset a:active, +[data-md-color-accent=yellow] .md-typeset a:hover { + color: #ffd600 +} + +[data-md-color-accent=yellow] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=yellow] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #ffd600 +} + +[data-md-color-accent=yellow] .md-nav__link:focus, +[data-md-color-accent=yellow] .md-nav__link:hover, +[data-md-color-accent=yellow] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=yellow] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=yellow] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=yellow] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=yellow] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=yellow] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=yellow] .md-typeset [id]:target .headerlink { + color: #ffd600 +} + +[data-md-color-accent=yellow] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #ffd600 +} + +[data-md-color-accent=yellow] .md-search-result__link:hover, +[data-md-color-accent=yellow] .md-search-result__link[data-md-state=active] { + background-color: rgba(255, 214, 0, .1) +} + +[data-md-color-accent=yellow] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #ffd600 +} + +[data-md-color-accent=yellow] .md-source-file:hover:before { + background-color: #ffd600 +} + +button[data-md-color-accent=amber] { + background-color: #ffab00 +} + +[data-md-color-accent=amber] .md-typeset a:active, +[data-md-color-accent=amber] .md-typeset a:hover { + color: #ffab00 +} + +[data-md-color-accent=amber] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=amber] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #ffab00 +} + +[data-md-color-accent=amber] .md-nav__link:focus, +[data-md-color-accent=amber] .md-nav__link:hover, +[data-md-color-accent=amber] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=amber] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=amber] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=amber] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=amber] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=amber] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=amber] .md-typeset [id]:target .headerlink { + color: #ffab00 +} + +[data-md-color-accent=amber] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #ffab00 +} + +[data-md-color-accent=amber] .md-search-result__link:hover, +[data-md-color-accent=amber] .md-search-result__link[data-md-state=active] { + background-color: rgba(255, 171, 0, .1) +} + +[data-md-color-accent=amber] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #ffab00 +} + +[data-md-color-accent=amber] .md-source-file:hover:before { + background-color: #ffab00 +} + +button[data-md-color-accent=orange] { + background-color: #ff9100 +} + +[data-md-color-accent=orange] .md-typeset a:active, +[data-md-color-accent=orange] .md-typeset a:hover { + color: #ff9100 +} + +[data-md-color-accent=orange] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=orange] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #ff9100 +} + +[data-md-color-accent=orange] .md-nav__link:focus, +[data-md-color-accent=orange] .md-nav__link:hover, +[data-md-color-accent=orange] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=orange] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=orange] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=orange] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=orange] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=orange] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=orange] .md-typeset [id]:target .headerlink { + color: #ff9100 +} + +[data-md-color-accent=orange] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #ff9100 +} + +[data-md-color-accent=orange] .md-search-result__link:hover, +[data-md-color-accent=orange] .md-search-result__link[data-md-state=active] { + background-color: rgba(255, 145, 0, .1) +} + +[data-md-color-accent=orange] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #ff9100 +} + +[data-md-color-accent=orange] .md-source-file:hover:before { + background-color: #ff9100 +} + +button[data-md-color-accent=deep-orange] { + background-color: #ff6e40 +} + +[data-md-color-accent=deep-orange] .md-typeset a:active, +[data-md-color-accent=deep-orange] .md-typeset a:hover { + color: #ff6e40 +} + +[data-md-color-accent=deep-orange] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, +[data-md-color-accent=deep-orange] .md-typeset pre code::-webkit-scrollbar-thumb:hover { + background-color: #ff6e40 +} + +[data-md-color-accent=deep-orange] .md-nav__link:focus, +[data-md-color-accent=deep-orange] .md-nav__link:hover, +[data-md-color-accent=deep-orange] .md-typeset .footnote li:hover .footnote-backref:hover, +[data-md-color-accent=deep-orange] .md-typeset .footnote li:target .footnote-backref, +[data-md-color-accent=deep-orange] .md-typeset .md-clipboard:active:before, +[data-md-color-accent=deep-orange] .md-typeset .md-clipboard:hover:before, +[data-md-color-accent=deep-orange] .md-typeset [id] .headerlink:focus, +[data-md-color-accent=deep-orange] .md-typeset [id]:hover .headerlink:hover, +[data-md-color-accent=deep-orange] .md-typeset [id]:target .headerlink { + color: #ff6e40 +} + +[data-md-color-accent=deep-orange] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #ff6e40 +} + +[data-md-color-accent=deep-orange] .md-search-result__link:hover, +[data-md-color-accent=deep-orange] .md-search-result__link[data-md-state=active] { + background-color: rgba(255, 110, 64, .1) +} + +[data-md-color-accent=deep-orange] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: #ff6e40 +} + +[data-md-color-accent=deep-orange] .md-source-file:hover:before { + background-color: #ff6e40 +} + +@media only screen and (max-width:59.9375em) { + [data-md-color-primary=red] .md-nav__source { + background-color: rgba(190, 66, 64, .9675) + } + [data-md-color-primary=pink] .md-nav__source { + background-color: rgba(185, 24, 79, .9675) + } + [data-md-color-primary=purple] .md-nav__source { + background-color: rgba(136, 57, 150, .9675) + } + [data-md-color-primary=deep-purple] .md-nav__source { + background-color: rgba(100, 69, 154, .9675) + } + [data-md-color-primary=indigo] .md-nav__source { + background-color: rgba(50, 64, 144, .9675) + } + [data-md-color-primary=blue] .md-nav__source { + background-color: rgba(26, 119, 193, .9675) + } + [data-md-color-primary=light-blue] .md-nav__source { + background-color: rgba(2, 134, 194, .9675) + } + [data-md-color-primary=cyan] .md-nav__source { + background-color: rgba(0, 150, 169, .9675) + } + [data-md-color-primary=teal] .md-nav__source { + background-color: rgba(0, 119, 108, .9675) + } + [data-md-color-primary=green] .md-nav__source { + background-color: rgba(60, 139, 64, .9675) + } + [data-md-color-primary=light-green] .md-nav__source { + background-color: rgba(99, 142, 53, .9675) + } + [data-md-color-primary=lime] .md-nav__source { + background-color: rgba(153, 161, 41, .9675) + } + [data-md-color-primary=yellow] .md-nav__source { + background-color: rgba(198, 134, 29, .9675) + } + [data-md-color-primary=amber] .md-nav__source { + background-color: rgba(203, 127, 0, .9675) + } + [data-md-color-primary=orange] .md-nav__source { + background-color: rgba(200, 111, 0, .9675) + } + [data-md-color-primary=deep-orange] .md-nav__source { + background-color: rgba(203, 89, 53, .9675) + } + [data-md-color-primary=brown] .md-nav__source { + background-color: rgba(96, 68, 57, .9675) + } + [data-md-color-primary=grey] .md-nav__source { + background-color: rgba(93, 93, 93, .9675) + } + [data-md-color-primary=blue-grey] .md-nav__source { + background-color: rgba(67, 88, 97, .9675) + } + [data-md-color-primary=white] .md-nav__source { + background-color: rgba(0, 0, 0, .07); + color: rgba(0, 0, 0, .87) + } +} + +@media only screen and (max-width:76.1875em) { + html [data-md-color-primary=red] .md-nav--primary .md-nav__title--site { + background-color: #ef5350 + } + html [data-md-color-primary=pink] .md-nav--primary .md-nav__title--site { + background-color: #e91e63 + } + html [data-md-color-primary=purple] .md-nav--primary .md-nav__title--site { + background-color: #ab47bc + } + html [data-md-color-primary=deep-purple] .md-nav--primary .md-nav__title--site { + background-color: #7e57c2 + } + html [data-md-color-primary=indigo] .md-nav--primary .md-nav__title--site { + background-color: #3f51b5 + } + html [data-md-color-primary=blue] .md-nav--primary .md-nav__title--site { + background-color: #2196f3 + } + html [data-md-color-primary=light-blue] .md-nav--primary .md-nav__title--site { + background-color: #03a9f4 + } + html [data-md-color-primary=cyan] .md-nav--primary .md-nav__title--site { + background-color: #00bcd4 + } + html [data-md-color-primary=teal] .md-nav--primary .md-nav__title--site { + background-color: #009688 + } + html [data-md-color-primary=green] .md-nav--primary .md-nav__title--site { + background-color: #4caf50 + } + html [data-md-color-primary=light-green] .md-nav--primary .md-nav__title--site { + background-color: #7cb342 + } + html [data-md-color-primary=lime] .md-nav--primary .md-nav__title--site { + background-color: #c0ca33 + } + html [data-md-color-primary=yellow] .md-nav--primary .md-nav__title--site { + background-color: #f9a825 + } + html [data-md-color-primary=amber] .md-nav--primary .md-nav__title--site { + background-color: #ffa000 + } + html [data-md-color-primary=orange] .md-nav--primary .md-nav__title--site { + background-color: #fb8c00 + } + html [data-md-color-primary=deep-orange] .md-nav--primary .md-nav__title--site { + background-color: #ff7043 + } + html [data-md-color-primary=brown] .md-nav--primary .md-nav__title--site { + background-color: #795548 + } + html [data-md-color-primary=grey] .md-nav--primary .md-nav__title--site { + background-color: #757575 + } + html [data-md-color-primary=blue-grey] .md-nav--primary .md-nav__title--site { + background-color: #546e7a + } + html [data-md-color-primary=white] .md-nav--primary .md-nav__title--site { + background-color: #fff; + color: rgba(0, 0, 0, .87) + } + [data-md-color-primary=white] .md-hero { + border-bottom: .05rem solid rgba(0, 0, 0, .07) + } +} + +@media only screen and (min-width:76.25em) { + [data-md-color-primary=red] .md-tabs { + background-color: #ef5350 + } + [data-md-color-primary=pink] .md-tabs { + background-color: #e91e63 + } + [data-md-color-primary=purple] .md-tabs { + background-color: #ab47bc + } + [data-md-color-primary=deep-purple] .md-tabs { + background-color: #7e57c2 + } + [data-md-color-primary=indigo] .md-tabs { + background-color: #3f51b5 + } + [data-md-color-primary=blue] .md-tabs { + background-color: #2196f3 + } + [data-md-color-primary=light-blue] .md-tabs { + background-color: #03a9f4 + } + [data-md-color-primary=cyan] .md-tabs { + background-color: #00bcd4 + } + [data-md-color-primary=teal] .md-tabs { + background-color: #009688 + } + [data-md-color-primary=green] .md-tabs { + background-color: #4caf50 + } + [data-md-color-primary=light-green] .md-tabs { + background-color: #7cb342 + } + [data-md-color-primary=lime] .md-tabs { + background-color: #c0ca33 + } + [data-md-color-primary=yellow] .md-tabs { + background-color: #f9a825 + } + [data-md-color-primary=amber] .md-tabs { + background-color: #ffa000 + } + [data-md-color-primary=orange] .md-tabs { + background-color: #fb8c00 + } + [data-md-color-primary=deep-orange] .md-tabs { + background-color: #ff7043 + } + [data-md-color-primary=brown] .md-tabs { + background-color: #795548 + } + [data-md-color-primary=grey] .md-tabs { + background-color: #757575 + } + [data-md-color-primary=blue-grey] .md-tabs { + background-color: #546e7a + } + [data-md-color-primary=white] .md-tabs { + border-bottom: .05rem solid rgba(0, 0, 0, .07); + background-color: #fff; + color: rgba(0, 0, 0, .87) + } +} + +@media only screen and (min-width:60em) { + [data-md-color-primary=white] .md-search__input { + background-color: rgba(0, 0, 0, .07) + } + [data-md-color-primary=white] .md-search__input::-webkit-input-placeholder { + color: rgba(0, 0, 0, .54) + } + [data-md-color-primary=white] .md-search__input:-ms-input-placeholder { + color: rgba(0, 0, 0, .54) + } + [data-md-color-primary=white] .md-search__input::-ms-input-placeholder { + color: rgba(0, 0, 0, .54) + } + [data-md-color-primary=white] .md-search__input::placeholder { + color: rgba(0, 0, 0, .54) + } +} diff --git a/_static/stylesheets/application.css b/_static/stylesheets/application.css new file mode 100644 index 0000000..4abdd66 --- /dev/null +++ b/_static/stylesheets/application.css @@ -0,0 +1,2871 @@ +@charset "UTF-8"; +html{ + box-sizing:border-box +} +*,:after,:before{ + box-sizing:inherit +} +html{ + -webkit-text-size-adjust:none; + -moz-text-size-adjust:none; + -ms-text-size-adjust:none; + text-size-adjust:none +} +body{ + margin:0 +} +hr{ + overflow:visible; + box-sizing:content-box +} +a{ + -webkit-text-decoration-skip:objects +} +a,button,input,label{ + -webkit-tap-highlight-color:transparent +} +a{ + color:inherit; + text-decoration:none +} +small,sub,sup{ + font-size:80% +} +sub,sup{ + position:relative; + line-height:0; + vertical-align:baseline +} +sub{ + bottom:-.25em +} +sup{ + top:-.5em +} +img{ + border-style:none +} +table{ + border-collapse:separate; + border-spacing:0 +} +td,th{ + font-weight:400; + vertical-align:top +} +button{ + margin:0; + padding:0; + border:0; + outline-style:none; + background:transparent; + font-size:inherit +} +input{ + border:0; + outline:0 +} +.md-clipboard:before,.md-icon,.md-nav__button,.md-nav__link:after,.md-nav__title:before,.md-search-result__article--document:before,.md-source-file:before,.md-typeset .admonition>.admonition-title:before,.md-typeset .admonition>summary:before,.md-typeset .critic.comment:before,.md-typeset .footnote-backref,.md-typeset .task-list-control .task-list-indicator:before,.md-typeset details>.admonition-title:before,.md-typeset details>summary:before,.md-typeset summary:after{ + font-family:Material Icons; + font-style:normal; + font-variant:normal; + font-weight:400; + line-height:1; + text-transform:none; + white-space:nowrap; + speak:none; + word-wrap:normal; + direction:ltr +} +.md-content__icon,.md-footer-nav__button,.md-header-nav__button,.md-nav__button,.md-nav__title:before,.md-search-result__article--document:before{ + display:inline-block; + margin:.2rem; + padding:.4rem; + font-size:1.2rem; + cursor:pointer +} +.md-icon--arrow-back:before{ + content:"" +} +.md-icon--arrow-forward:before{ + content:"" +} +.md-icon--menu:before{ + content:"" +} +.md-icon--search:before{ + content:"" +} +[dir=rtl] .md-icon--arrow-back:before{ + content:"" +} +[dir=rtl] .md-icon--arrow-forward:before{ + content:"" +} +body{ + -webkit-font-smoothing:antialiased; + -moz-osx-font-smoothing:grayscale +} +body,input{ + color:rgba(0,0,0,.87); + -webkit-font-feature-settings:"kern","liga"; + font-feature-settings:"kern","liga"; + font-family:"Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif; +} +code,kbd,pre{ + color:rgba(0,0,0,.87); + -webkit-font-feature-settings:"kern"; + font-feature-settings:"kern"; + font-family:"Roboto Mono", "Courier New", Courier, monospace; +} +.md-typeset{ + font-size:.8rem; + line-height:1.6; + -webkit-print-color-adjust:exact +} +.md-typeset blockquote,.md-typeset ol,.md-typeset p,.md-typeset ul{ + margin:1em 0 +} +.md-typeset h1{ + margin:0 0 2rem; + color:rgba(0,0,0,.54); + font-size:1.5625rem; + line-height:1.3 +} +.md-typeset h1,.md-typeset h2{ + font-weight:300; + letter-spacing:-.01em +} +.md-typeset h2{ + margin:2rem 0 .8rem; + font-size:1.25rem; + line-height:1.4 +} +.md-typeset h3{ + margin:1.6rem 0 .8rem; + font-size:1rem; + font-weight:400; + letter-spacing:-.01em; + line-height:1.5 +} +.md-typeset h2+h3{ + margin-top:.8rem +} +.md-typeset h4{ + font-size:.8rem +} +.md-typeset h4,.md-typeset h5,.md-typeset h6{ + margin:.8rem 0; + font-weight:700; + letter-spacing:-.01em +} +.md-typeset h5,.md-typeset h6{ + color:rgba(0,0,0,.54); + font-size:.64rem +} +.md-typeset h5{ + text-transform:uppercase +} +.md-typeset hr{ + margin:1.5em 0; + border-bottom:.05rem dotted rgba(0,0,0,.26) +} +.md-typeset a{ + color:#3f51b5; + word-break:break-word +} +.md-typeset a,.md-typeset a:before{ + transition:color .125s +} +.md-typeset a:active,.md-typeset a:hover{ + color:#536dfe +} +.md-typeset code,.md-typeset pre{ + background-color:hsla(0,0%,92.5%,.5); + color:#37474f; + font-size:85%; + direction:ltr +} +.md-typeset code{ + margin:0 .29412em; + padding:.07353em 0; + border-radius:.1rem; + word-break:break-word; + -webkit-box-decoration-break:clone; + box-decoration-break:clone +} +/* TODO: Reverted from #35, needs a different fix +.md-typeset code::before { + content: "\00a0"; +} +.md-typeset code::after { + content: "\00a0"; +} +*/ +.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{ + margin:0; + background-color:transparent; + box-shadow:none +} +.md-typeset a>code{ + margin:inherit; + padding:inherit; + border-radius:initial; + background-color:inherit; + color:inherit; + box-shadow:none +} +.md-typeset pre{ + position:relative; + margin:1em 0; + border-radius:.1rem; + line-height:1.4; + -webkit-overflow-scrolling:touch +} +.md-typeset pre>code{ + /* + See GH #32 + display:block; + */ + margin:0; + padding:.525rem .6rem; + background-color:transparent; + font-size:inherit; + box-shadow:none; + -webkit-box-decoration-break:slice; + box-decoration-break:slice; + overflow:auto +} +.md-typeset pre>code::-webkit-scrollbar{ + width:.2rem; + height:.2rem +} +.md-typeset pre>code::-webkit-scrollbar-thumb{ + background-color:rgba(0,0,0,.26) +} +.md-typeset pre>code::-webkit-scrollbar-thumb:hover{ + background-color:#536dfe +} +.md-typeset kbd{ + padding:0 .29412em; + border-radius:.15rem; + border:.05rem solid #c9c9c9; + border-bottom-color:#bcbcbc; + background-color:#fcfcfc; + color:#555; + font-size:85%; + box-shadow:0 .05rem 0 #b0b0b0; + word-break:break-word +} +.md-typeset mark{ + margin:0 .25em; + padding:.0625em 0; + border-radius:.1rem; + background-color:rgba(255,235,59,.5); + box-shadow:.25em 0 0 rgba(255,235,59,.5),-.25em 0 0 rgba(255,235,59,.5); + word-break:break-word; + -webkit-box-decoration-break:clone; + box-decoration-break:clone +} +.md-typeset abbr{ + border-bottom:.05rem dotted rgba(0,0,0,.54); + text-decoration:none; + cursor:help +} +.md-typeset small{ + opacity:.75 +} +.md-typeset sub,.md-typeset sup{ + margin-left:.07812em +} +[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{ + margin-right:.07812em; + margin-left:0 +} +.md-typeset blockquote{ + padding-left:.6rem; + border-left:.2rem solid rgba(0,0,0,.26); + color:rgba(0,0,0,.54) +} +[dir=rtl] .md-typeset blockquote{ + padding-right:.6rem; + padding-left:0; + border-right:.2rem solid rgba(0,0,0,.26); + border-left:initial +} +.md-typeset ul{ + list-style-type:disc +} +.md-typeset ol,.md-typeset ul{ + margin-left:.625em; + padding:0 +} +[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{ + margin-right:.625em; + margin-left:0 +} +.md-typeset ol ol,.md-typeset ul ol{ + list-style-type:lower-alpha +} +.md-typeset ol ol ol,.md-typeset ul ol ol{ + list-style-type:lower-roman +} +.md-typeset ol li,.md-typeset ul li{ + margin-bottom:.5em; + margin-left:1.25em +} +[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{ + margin-right:1.25em; + margin-left:0 +} +.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{ + margin:.5em 0 +} +.md-typeset ol li:last-child,.md-typeset ul li:last-child{ + margin-bottom:0 +} +.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{ + margin:.5em 0 .5em .625em +} +[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{ + margin-right:.625em; + margin-left:0 +} +.md-typeset dd{ + margin:1em 0 1em 1.875em +} +[dir=rtl] .md-typeset dd{ + margin-right:1.875em; + margin-left:0 +} +.md-typeset iframe,.md-typeset img,.md-typeset svg{ + max-width:100% +} +.md-typeset table:not([class]){ + box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2); + display:inline-block; + max-width:100%; + border-radius:.1rem; + font-size:.64rem; + overflow:auto; + -webkit-overflow-scrolling:touch +} +.md-typeset table:not([class])+*{ + margin-top:1.5em +} +.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){ + text-align:left +} +[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){ + text-align:right +} +.md-typeset table:not([class]) th{ + min-width:5rem; + padding:.6rem .8rem; + background-color:rgba(0,0,0,.54); + color:#fff; + vertical-align:top +} +.md-typeset table:not([class]) td{ + padding:.6rem .8rem; + border-top:.05rem solid rgba(0,0,0,.07); + vertical-align:top +} +.md-typeset table:not([class]) tr{ + transition:background-color .125s +} +.md-typeset table:not([class]) tr:hover{ + background-color:rgba(0,0,0,.035); + box-shadow:inset 0 .05rem 0 #fff +} +.md-typeset table:not([class]) tr:first-child td{ + border-top:0 +} +.md-typeset table:not([class]) a{ + word-break:normal +} +.md-typeset__scrollwrap{ + margin:1em -.8rem; + overflow-x:auto; + -webkit-overflow-scrolling:touch +} +.md-typeset .md-typeset__table{ + display:inline-block; + margin-bottom:.5em; + padding:0 .8rem +} +.md-typeset .md-typeset__table table{ + display:table; + width:100%; + margin:0; + overflow:hidden +} +html{ + font-size:125%; + overflow-x:hidden +} +body,html{ + height:100% +} +body{ + position:relative; + font-size:.5rem +} +hr{ + display:block; + height:.05rem; + padding:0; + border:0 +} +.md-svg{ + display:none +} +.md-grid{ + max-width:73rem; + margin-right:auto; + margin-left:auto +} +.md-container,.md-main{ + overflow:auto +} +.md-container{ + display:table; + width:100%; + height:100%; + padding-top:2.4rem; + table-layout:fixed +} +.md-main{ + display:table-row; + height:100% +} +.md-main__inner{ + height:100%; + padding-top:1.5rem; + padding-bottom:.05rem +} +.md-toggle{ + display:none +} +.md-overlay{ + position:fixed; + top:0; + width:0; + height:0; + transition:width 0s .25s,height 0s .25s,opacity .25s; + background-color:rgba(0,0,0,.54); + opacity:0; + z-index:3 +} +.md-flex{ + display:table +} +.md-flex__cell{ + display:table-cell; + position:relative; + vertical-align:top +} +.md-flex__cell--shrink{ + width:0 +} +.md-flex__cell--stretch{ + display:table; + width:100%; + table-layout:fixed +} +.md-flex__ellipsis{ + display:table-cell; + text-overflow:ellipsis; + white-space:nowrap; + overflow:hidden +} +.md-skip{ + position:fixed; + width:.05rem; + height:.05rem; + margin:.5rem; + padding:.3rem .5rem; + -webkit-transform:translateY(.4rem); + transform:translateY(.4rem); + border-radius:.1rem; + background-color:rgba(0,0,0,.87); + color:#fff; + font-size:.64rem; + opacity:0; + overflow:hidden +} +.md-skip:focus{ + width:auto; + height:auto; + clip:auto; + -webkit-transform:translateX(0); + transform:translateX(0); + transition:opacity .175s 75ms,-webkit-transform .25s cubic-bezier(.4,0,.2,1); + transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s 75ms; + transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s 75ms,-webkit-transform .25s cubic-bezier(.4,0,.2,1); + opacity:1; + z-index:10 +} +@page{ + margin:25mm +} +.md-clipboard{ + position:absolute; + top:.3rem; + right:.3rem; + width:1.4rem; + height:1.4rem; + border-radius:.1rem; + font-size:.8rem; + cursor:pointer; + z-index:1; + -webkit-backface-visibility:hidden; + backface-visibility:hidden +} +.md-clipboard:before{ + transition:color .25s,opacity .25s; + color:rgba(0,0,0,.07); + content:"\E14D" +} +.codehilite:hover .md-clipboard:before,.md-typeset .highlight:hover .md-clipboard:before,pre:hover .md-clipboard:before{ + color:rgba(0,0,0,.54) +} +.md-clipboard:focus:before,.md-clipboard:hover:before{ + color:#536dfe +} +.md-clipboard__message{ + display:block; + position:absolute; + top:0; + right:1.7rem; + padding:.3rem .5rem; + -webkit-transform:translateX(.4rem); + transform:translateX(.4rem); + transition:opacity .175s,-webkit-transform .25s cubic-bezier(.9,.1,.9,0); + transition:transform .25s cubic-bezier(.9,.1,.9,0),opacity .175s; + transition:transform .25s cubic-bezier(.9,.1,.9,0),opacity .175s,-webkit-transform .25s cubic-bezier(.9,.1,.9,0); + border-radius:.1rem; + background-color:rgba(0,0,0,.54); + color:#fff; + font-size:.64rem; + white-space:nowrap; + opacity:0; + pointer-events:none +} +.md-clipboard__message--active{ + -webkit-transform:translateX(0); + transform:translateX(0); + transition:opacity .175s 75ms,-webkit-transform .25s cubic-bezier(.4,0,.2,1); + transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s 75ms; + transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s 75ms,-webkit-transform .25s cubic-bezier(.4,0,.2,1); + opacity:1; + pointer-events:auto +} +.md-clipboard__message:before{ + content:attr(aria-label) +} +.md-clipboard__message:after{ + display:block; + position:absolute; + top:50%; + right:-.2rem; + width:0; + margin-top:-.2rem; + border-color:transparent rgba(0,0,0,.54); + border-style:solid; + border-width:.2rem 0 .2rem .2rem; + content:"" +} +.md-content__inner{ + margin:0 .8rem 1.2rem; + padding-top:.6rem +} +.md-content__inner:before{ + display:block; + height:.4rem; + content:"" +} +.md-content__inner>:last-child{ + margin-bottom:0 +} +.md-content__icon{ + position:relative; + margin:.4rem 0; + padding:0; + float:right +} +.md-typeset .md-content__icon{ + color:rgba(0,0,0,.26) +} +.md-header{ + position:fixed; + top:0; + right:0; + left:0; + height:2.4rem; + transition:background-color .25s,color .25s; + background-color:#3f51b5; + color:#fff; + box-shadow:none; + z-index:2; + -webkit-backface-visibility:hidden; + backface-visibility:hidden +} +.no-js .md-header{ + transition:none; + box-shadow:none +} +.md-header[data-md-state=shadow]{ + transition:background-color .25s,color .25s,box-shadow .25s; + box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2) +} +.md-header-nav{ + padding:0 .2rem +} +.md-header-nav__button{ + position:relative; + transition:opacity .25s; + z-index:1 +} +.md-header-nav__button:hover{ + opacity:.7 +} +.md-header-nav__button.md-logo *{ + display:block +} +.no-js .md-header-nav__button.md-icon--search{ + display:none +} +.md-header-nav__topic{ + display:block; + position:absolute; + transition:opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1); + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s; + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1); + text-overflow:ellipsis; + white-space:nowrap; + overflow:hidden +} +.md-header-nav__topic+.md-header-nav__topic{ + -webkit-transform:translateX(1.25rem); + transform:translateX(1.25rem); + transition:opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1); + transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s; + transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1); + opacity:0; + z-index:-1; + pointer-events:none +} +[dir=rtl] .md-header-nav__topic+.md-header-nav__topic{ + -webkit-transform:translateX(-1.25rem); + transform:translateX(-1.25rem) +} +.no-js .md-header-nav__topic{ + position:static +} +.no-js .md-header-nav__topic+.md-header-nav__topic{ + display:none +} +.md-header-nav__title{ + padding:0 1rem; + font-size:.9rem; + line-height:2.4rem +} +.md-header-nav__title[data-md-state=active] .md-header-nav__topic{ + -webkit-transform:translateX(-1.25rem); + transform:translateX(-1.25rem); + transition:opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1); + transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s; + transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1); + opacity:0; + z-index:-1; + pointer-events:none +} +[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic{ + -webkit-transform:translateX(1.25rem); + transform:translateX(1.25rem) +} +.md-header-nav__title[data-md-state=active] .md-header-nav__topic+.md-header-nav__topic{ + -webkit-transform:translateX(0); + transform:translateX(0); + transition:opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1); + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s; + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1); + opacity:1; + z-index:0; + pointer-events:auto +} +.md-header-nav__source{ + display:none +} +.md-hero{ + transition:background .25s; + background-color:#3f51b5; + color:#fff; + font-size:1rem; + overflow:hidden +} +.md-hero__inner{ + margin-top:1rem; + padding:.8rem .8rem .4rem; + transition:opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1); + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s; + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1); + transition-delay:.1s +} +[data-md-state=hidden] .md-hero__inner{ + pointer-events:none; + -webkit-transform:translateY(.625rem); + transform:translateY(.625rem); + transition:opacity .1s 0s,-webkit-transform 0s .4s; + transition:transform 0s .4s,opacity .1s 0s; + transition:transform 0s .4s,opacity .1s 0s,-webkit-transform 0s .4s; + opacity:0 +} +.md-hero--expand .md-hero__inner{ + margin-bottom:1.2rem +} +.md-footer-nav{ + background-color:rgba(0,0,0,.87); + color:#fff +} +.md-footer-nav__inner{ + padding:.2rem; + overflow:auto +} +.md-footer-nav__link{ + padding-top:1.4rem; + padding-bottom:.4rem; + transition:opacity .25s +} +.md-footer-nav__link:hover{ + opacity:.7 +} +.md-footer-nav__link--prev{ + width:25%; + float:left +} +[dir=rtl] .md-footer-nav__link--prev{ + float:right +} +.md-footer-nav__link--next{ + width:75%; + float:right; + text-align:right +} +[dir=rtl] .md-footer-nav__link--next{ + float:left; + text-align:left +} +.md-footer-nav__button{ + transition:background .25s +} +.md-footer-nav__title{ + position:relative; + padding:0 1rem; + font-size:.9rem; + line-height:2.4rem +} +.md-footer-nav__direction{ + position:absolute; + right:0; + left:0; + margin-top:-1rem; + padding:0 1rem; + color:hsla(0,0%,100%,.7); + font-size:.75rem +} +.md-footer-meta{ + background-color:rgba(0,0,0,.895) +} +.md-footer-meta__inner{ + padding:.2rem; + overflow:auto +} +html .md-footer-meta.md-typeset a{ + color:hsla(0,0%,100%,.7) +} +html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{ + color:#fff +} +.md-footer-copyright{ + margin:0 .6rem; + padding:.4rem 0; + color:hsla(0,0%,100%,.3); + font-size:.64rem +} +.md-footer-copyright__highlight{ + color:hsla(0,0%,100%,.7) +} +.md-footer-social{ + margin:0 .4rem; + padding:.2rem 0 .6rem +} +.md-footer-social__link{ + display:inline-block; + width:1.6rem; + height:1.6rem; + font-size:.8rem; + text-align:center +} +.md-footer-social__link:before{ + line-height:1.9 +} +.md-nav{ + font-size:.7rem; + line-height:1.3 +} +.md-nav__title{ + display:block; + padding:0 .6rem; + font-weight:700; + text-overflow:ellipsis; + overflow:hidden +} +.md-nav__title:before{ + display:none; + content:"\E5C4" +} +[dir=rtl] .md-nav__title:before{ + content:"\E5C8" +} +.md-nav__title .md-nav__button{ + display:none +} +.md-nav__list{ + margin:0; + padding:0; + list-style:none +} +.md-nav__item{ + padding:0 .6rem +} +.md-nav__item:last-child{ + padding-bottom:.6rem +} +.md-nav__item .md-nav__item{ + padding-right:0 +} +[dir=rtl] .md-nav__item .md-nav__item{ + padding-right:.6rem; + padding-left:0 +} +.md-nav__item .md-nav__item:last-child{ + padding-bottom:0 +} +.md-nav__button img{ + width:100%; + height:auto +} +.md-nav__link{ + display:block; + margin-top:.625em; + transition:color .125s; + text-overflow:ellipsis; + cursor:pointer; + overflow:hidden +} +.md-nav__item--nested>.md-nav__link:after{ + content:"\E313" +} +html .md-nav__link[for=__toc],html .md-nav__link[for=__toc]+.md-nav__link:after,html .md-nav__link[for=__toc]~.md-nav{ + display:none +} +.md-nav__link[data-md-state=blur]{ + color:rgba(0,0,0,.54) +} +.md-nav__link--active,.md-nav__link:active{ + color:#3f51b5 +} +.md-nav__item--nested>.md-nav__link{ + color:inherit +} +.md-nav__link:focus,.md-nav__link:hover{ + color:#536dfe +} +.md-nav__source,.no-js .md-search{ + display:none +} +.md-search__overlay{ + opacity:0; + z-index:1 +} +.md-search__form{ + position:relative +} +.md-search__input{ + position:relative; + padding:0 2.2rem 0 3.6rem; + text-overflow:ellipsis; + z-index:2 +} +[dir=rtl] .md-search__input{ + padding:0 3.6rem 0 2.2rem +} +.md-search__input::-webkit-input-placeholder{ + transition:color .25s cubic-bezier(.1,.7,.1,1) +} +.md-search__input:-ms-input-placeholder{ + transition:color .25s cubic-bezier(.1,.7,.1,1) +} +.md-search__input::-ms-input-placeholder{ + transition:color .25s cubic-bezier(.1,.7,.1,1) +} +.md-search__input::placeholder{ + transition:color .25s cubic-bezier(.1,.7,.1,1) +} +.md-search__input::-webkit-input-placeholder,.md-search__input~.md-search__icon{ + color:rgba(0,0,0,.54) +} +.md-search__input:-ms-input-placeholder,.md-search__input~.md-search__icon{ + color:rgba(0,0,0,.54) +} +.md-search__input::-ms-input-placeholder,.md-search__input~.md-search__icon{ + color:rgba(0,0,0,.54) +} +.md-search__input::placeholder,.md-search__input~.md-search__icon{ + color:rgba(0,0,0,.54) +} +.md-search__input::-ms-clear{ + display:none +} +.md-search__icon{ + position:absolute; + transition:color .25s cubic-bezier(.1,.7,.1,1),opacity .25s; + font-size:1.2rem; + cursor:pointer; + z-index:2 +} +.md-search__icon:hover{ + opacity:.7 +} +.md-search__icon[for=__search]{ + top:.3rem; + left:.5rem +} +[dir=rtl] .md-search__icon[for=__search]{ + right:.5rem; + left:auto +} +.md-search__icon[for=__search]:before{ + content:"\E8B6" +} +.md-search__icon[type=reset]{ + top:.3rem; + right:.5rem; + -webkit-transform:scale(.125); + transform:scale(.125); + transition:opacity .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1); + transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s; + transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1); + opacity:0 +} +[dir=rtl] .md-search__icon[type=reset]{ + right:auto; + left:.5rem +} +[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__icon[type=reset]{ + -webkit-transform:scale(1); + transform:scale(1); + opacity:1 +} +[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__icon[type=reset]:hover{ + opacity:.7 +} +.md-search__output{ + position:absolute; + width:100%; + border-radius:0 0 .1rem .1rem; + overflow:hidden; + z-index:1 +} +.md-search__scrollwrap{ + height:100%; + background-color:#fff; + box-shadow:inset 0 .05rem 0 rgba(0,0,0,.07); + overflow-y:auto; + -webkit-overflow-scrolling:touch +} +.md-search-result{ + color:rgba(0,0,0,.87); + word-break:break-word +} +.md-search-result__meta{ + padding:0 .8rem; + background-color:rgba(0,0,0,.07); + color:rgba(0,0,0,.54); + font-size:.64rem; + line-height:1.8rem +} +.md-search-result__list{ + margin:0; + padding:0; + border-top:.05rem solid rgba(0,0,0,.07); + list-style:none +} +.md-search-result__item{ + box-shadow:0 -.05rem 0 rgba(0,0,0,.07) +} +.md-search-result__link{ + display:block; + transition:background .25s; + outline:0; + overflow:hidden +} +.md-search-result__link:hover,.md-search-result__link[data-md-state=active]{ + background-color:rgba(83,109,254,.1) +} +.md-search-result__link:hover .md-search-result__article:before,.md-search-result__link[data-md-state=active] .md-search-result__article:before{ + opacity:.7 +} +.md-search-result__link:last-child .md-search-result__teaser{ + margin-bottom:.6rem +} +.md-search-result__article{ + position:relative; + padding:0 .8rem; + overflow:auto +} +.md-search-result__article--document:before{ + position:absolute; + left:0; + margin:.1rem; + transition:opacity .25s; + color:rgba(0,0,0,.54); + content:"\E880" +} +[dir=rtl] .md-search-result__article--document:before{ + right:0; + left:auto +} +.md-search-result__article--document .md-search-result__title{ + margin:.55rem 0; + font-size:.8rem; + font-weight:400; + line-height:1.4 +} +.md-search-result__title{ + margin:.5em 0; + font-size:.64rem; + font-weight:700; + line-height:1.4 +} +.md-search-result__teaser{ + display:-webkit-box; + max-height:1.65rem; + margin:.5em 0; + color:rgba(0,0,0,.54); + font-size:.64rem; + line-height:1.4; + text-overflow:ellipsis; + overflow:hidden; + -webkit-line-clamp:2 +} +.md-search-result em{ + font-style:normal; + font-weight:700; + text-decoration:underline +} +.md-sidebar{ + position:absolute; + width:12.1rem; + padding:1.2rem 0; + overflow:hidden +} +.md-sidebar[data-md-state=lock]{ + position:fixed; + top:2.4rem +} +.md-sidebar--secondary{ + display:none +} +.md-sidebar__scrollwrap{ + max-height:100%; + margin:0 .2rem; + overflow-y:auto; + -webkit-backface-visibility:hidden; + backface-visibility:hidden +} +.md-sidebar__scrollwrap::-webkit-scrollbar{ + width:.2rem; + height:.2rem +} +.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{ + background-color:rgba(0,0,0,.26) +} +.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{ + background-color:#536dfe +} + +.rst-versions { + /* Read the Docs' versions menu */ + font-size: .85rem; +} + +@-webkit-keyframes md-source__facts--done{ + 0%{ + height:0 + } + to{ + height:.65rem + } +} +@keyframes md-source__facts--done{ + 0%{ + height:0 + } + to{ + height:.65rem + } +} +@-webkit-keyframes md-source__fact--done{ + 0%{ + -webkit-transform:translateY(100%); + transform:translateY(100%); + opacity:0 + } + 50%{ + opacity:0 + } + to{ + -webkit-transform:translateY(0); + transform:translateY(0); + opacity:1 + } +} +@keyframes md-source__fact--done{ + 0%{ + -webkit-transform:translateY(100%); + transform:translateY(100%); + opacity:0 + } + 50%{ + opacity:0 + } + to{ + -webkit-transform:translateY(0); + transform:translateY(0); + opacity:1 + } +} +.md-source{ + display:block; + padding-right:.6rem; + transition:opacity .25s; + font-size:.65rem; + line-height:1.2; + white-space:nowrap +} +[dir=rtl] .md-source{ + padding-right:0; + padding-left:.6rem +} +.md-source:hover{ + opacity:.7 +} +.md-source:after,.md-source__icon{ + display:inline-block; + height:2.4rem; + content:""; + vertical-align:middle +} +.md-source__icon{ + width:2.4rem +} +.md-source__icon svg{ + width:1.2rem; + height:1.2rem; + margin-top:.6rem; + margin-left:.6rem +} +[dir=rtl] .md-source__icon svg{ + margin-right:.6rem; + margin-left:0 +} +.md-source__icon+.md-source__repository{ + margin-left:-2rem; + padding-left:2rem +} +[dir=rtl] .md-source__icon+.md-source__repository{ + margin-right:-2rem; + margin-left:0; + padding-right:2rem; + padding-left:0 +} +.md-source__repository{ + display:inline-block; + max-width:100%; + margin-left:.6rem; + font-weight:700; + text-overflow:ellipsis; + overflow:hidden; + vertical-align:middle +} +.md-source__facts{ + margin:0; + padding:0; + font-size:.55rem; + font-weight:700; + list-style-type:none; + opacity:.75; + overflow:hidden +} +[data-md-state=done] .md-source__facts{ + -webkit-animation:md-source__facts--done .25s ease-in; + animation:md-source__facts--done .25s ease-in +} +.md-source__fact{ + float:left +} +[dir=rtl] .md-source__fact{ + float:right +} +[data-md-state=done] .md-source__fact{ + -webkit-animation:md-source__fact--done .4s ease-out; + animation:md-source__fact--done .4s ease-out +} +.md-source__fact:before{ + margin:0 .1rem; + content:"\00B7" +} +.md-source__fact:first-child:before{ + display:none +} +.md-source-file{ + display:inline-block; + margin:1em .5em 1em 0; + padding-right:.25rem; + border-radius:.1rem; + background-color:rgba(0,0,0,.07); + font-size:.64rem; + list-style-type:none; + cursor:pointer; + overflow:hidden +} +.md-source-file:before{ + display:inline-block; + margin-right:.25rem; + padding:.25rem; + background-color:rgba(0,0,0,.26); + color:#fff; + font-size:.8rem; + content:"\E86F"; + vertical-align:middle +} +html .md-source-file{ + transition:background .4s,color .4s,box-shadow .4s cubic-bezier(.4,0,.2,1) +} +html .md-source-file:before{ + transition:inherit +} +html body .md-typeset .md-source-file{ + color:rgba(0,0,0,.54) +} +.md-source-file:hover{ + box-shadow:0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36) +} +.md-source-file:hover:before{ + background-color:#536dfe +} +.md-tabs{ + width:100%; + transition:background .25s; + background-color:#3f51b5; + color:#fff; + overflow:auto +} +.md-tabs__list{ + margin:0 0 0 .2rem; + padding:0; + list-style:none; + white-space:nowrap +} +.md-tabs__item{ + display:inline-block; + height:2.4rem; + padding-right:.6rem; + padding-left:.6rem +} +.md-tabs__link{ + display:block; + margin-top:.8rem; + transition:opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1); + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s; + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1); + font-size:.7rem; + opacity:.7 +} +.md-tabs__link--active,.md-tabs__link:hover{ + color:inherit; + opacity:1 +} +.md-tabs__item:nth-child(2) .md-tabs__link{ + transition-delay:.02s +} +.md-tabs__item:nth-child(3) .md-tabs__link{ + transition-delay:.04s +} +.md-tabs__item:nth-child(4) .md-tabs__link{ + transition-delay:.06s +} +.md-tabs__item:nth-child(5) .md-tabs__link{ + transition-delay:.08s +} +.md-tabs__item:nth-child(6) .md-tabs__link{ + transition-delay:.1s +} +.md-tabs__item:nth-child(7) .md-tabs__link{ + transition-delay:.12s +} +.md-tabs__item:nth-child(8) .md-tabs__link{ + transition-delay:.14s +} +.md-tabs__item:nth-child(9) .md-tabs__link{ + transition-delay:.16s +} +.md-tabs__item:nth-child(10) .md-tabs__link{ + transition-delay:.18s +} +.md-tabs__item:nth-child(11) .md-tabs__link{ + transition-delay:.2s +} +.md-tabs__item:nth-child(12) .md-tabs__link{ + transition-delay:.22s +} +.md-tabs__item:nth-child(13) .md-tabs__link{ + transition-delay:.24s +} +.md-tabs__item:nth-child(14) .md-tabs__link{ + transition-delay:.26s +} +.md-tabs__item:nth-child(15) .md-tabs__link{ + transition-delay:.28s +} +.md-tabs__item:nth-child(16) .md-tabs__link{ + transition-delay:.3s +} +.md-tabs[data-md-state=hidden]{ + pointer-events:none +} +.md-tabs[data-md-state=hidden] .md-tabs__link{ + -webkit-transform:translateY(50%); + transform:translateY(50%); + transition:color .25s,opacity .1s,-webkit-transform 0s .4s; + transition:color .25s,transform 0s .4s,opacity .1s; + transition:color .25s,transform 0s .4s,opacity .1s,-webkit-transform 0s .4s; + opacity:0 +} +.md-typeset .admonition,.md-typeset details{ + box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2); + position:relative; + margin:1.5625em 0; + padding:0 .6rem; + border-left:.2rem solid #448aff; + border-radius:.1rem; + font-size:.64rem; + overflow:auto +} +[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{ + border-right:.2rem solid #448aff; + border-left:none +} +html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{ + margin-bottom:.6rem +} +.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{ + margin:1em 0 +} +.md-typeset .admonition>.admonition-title,.md-typeset .admonition>summary,.md-typeset details>.admonition-title,.md-typeset details>summary{ + margin:0 -.6rem; + padding:.4rem .6rem .4rem 2rem; + border-bottom:.05rem solid rgba(68,138,255,.1); + background-color:rgba(68,138,255,.1); + font-weight:700 +} +[dir=rtl] .md-typeset .admonition>.admonition-title,[dir=rtl] .md-typeset .admonition>summary,[dir=rtl] .md-typeset details>.admonition-title,[dir=rtl] .md-typeset details>summary{ + padding:.4rem 2rem .4rem .6rem +} +.md-typeset .admonition>.admonition-title:last-child,.md-typeset .admonition>summary:last-child,.md-typeset details>.admonition-title:last-child,.md-typeset details>summary:last-child{ + margin-bottom:0 +} +.md-typeset .admonition>.admonition-title:before,.md-typeset .admonition>summary:before,.md-typeset details>.admonition-title:before,.md-typeset details>summary:before{ + position:absolute; + left:.6rem; + color:#448aff; + font-size:1rem; + content:"\E3C9" +} +[dir=rtl] .md-typeset .admonition>.admonition-title:before,[dir=rtl] .md-typeset .admonition>summary:before,[dir=rtl] .md-typeset details>.admonition-title:before,[dir=rtl] .md-typeset details>summary:before{ + right:.6rem; + left:auto +} +.md-typeset .admonition.abstract,.md-typeset .admonition.summary,.md-typeset .admonition.tldr,.md-typeset details.abstract,.md-typeset details.summary,.md-typeset details.tldr{ + border-left-color:#00b0ff +} +[dir=rtl] .md-typeset .admonition.abstract,[dir=rtl] .md-typeset .admonition.summary,[dir=rtl] .md-typeset .admonition.tldr,[dir=rtl] .md-typeset details.abstract,[dir=rtl] .md-typeset details.summary,[dir=rtl] .md-typeset details.tldr{ + border-right-color:#00b0ff +} +.md-typeset .admonition.abstract>.admonition-title,.md-typeset .admonition.abstract>summary,.md-typeset .admonition.summary>.admonition-title,.md-typeset .admonition.summary>summary,.md-typeset .admonition.tldr>.admonition-title,.md-typeset .admonition.tldr>summary,.md-typeset details.abstract>.admonition-title,.md-typeset details.abstract>summary,.md-typeset details.summary>.admonition-title,.md-typeset details.summary>summary,.md-typeset details.tldr>.admonition-title,.md-typeset details.tldr>summary{ + border-bottom-color:rgba(0,176,255,.1); + background-color:rgba(0,176,255,.1) +} +.md-typeset .admonition.abstract>.admonition-title:before,.md-typeset .admonition.abstract>summary:before,.md-typeset .admonition.summary>.admonition-title:before,.md-typeset .admonition.summary>summary:before,.md-typeset .admonition.tldr>.admonition-title:before,.md-typeset .admonition.tldr>summary:before,.md-typeset details.abstract>.admonition-title:before,.md-typeset details.abstract>summary:before,.md-typeset details.summary>.admonition-title:before,.md-typeset details.summary>summary:before,.md-typeset details.tldr>.admonition-title:before,.md-typeset details.tldr>summary:before{ + color:#00b0ff; + content:"" +} +.md-typeset .admonition.info,.md-typeset .admonition.todo,.md-typeset details.info,.md-typeset details.todo{ + border-left-color:#00b8d4 +} +[dir=rtl] .md-typeset .admonition.info,[dir=rtl] .md-typeset .admonition.todo,[dir=rtl] .md-typeset details.info,[dir=rtl] .md-typeset details.todo{ + border-right-color:#00b8d4 +} +.md-typeset .admonition.info>.admonition-title,.md-typeset .admonition.info>summary,.md-typeset .admonition.todo>.admonition-title,.md-typeset .admonition.todo>summary,.md-typeset details.info>.admonition-title,.md-typeset details.info>summary,.md-typeset details.todo>.admonition-title,.md-typeset details.todo>summary{ + border-bottom-color:rgba(0,184,212,.1); + background-color:rgba(0,184,212,.1) +} +.md-typeset .admonition.info>.admonition-title:before,.md-typeset .admonition.info>summary:before,.md-typeset .admonition.todo>.admonition-title:before,.md-typeset .admonition.todo>summary:before,.md-typeset details.info>.admonition-title:before,.md-typeset details.info>summary:before,.md-typeset details.todo>.admonition-title:before,.md-typeset details.todo>summary:before{ + color:#00b8d4; + content:"" +} +.md-typeset .admonition.hint,.md-typeset .admonition.important,.md-typeset .admonition.tip,.md-typeset details.hint,.md-typeset details.important,.md-typeset details.tip{ + border-left-color:#00bfa5 +} +[dir=rtl] .md-typeset .admonition.hint,[dir=rtl] .md-typeset .admonition.important,[dir=rtl] .md-typeset .admonition.tip,[dir=rtl] .md-typeset details.hint,[dir=rtl] .md-typeset details.important,[dir=rtl] .md-typeset details.tip{ + border-right-color:#00bfa5 +} +.md-typeset .admonition.hint>.admonition-title,.md-typeset .admonition.hint>summary,.md-typeset .admonition.important>.admonition-title,.md-typeset .admonition.important>summary,.md-typeset .admonition.tip>.admonition-title,.md-typeset .admonition.tip>summary,.md-typeset details.hint>.admonition-title,.md-typeset details.hint>summary,.md-typeset details.important>.admonition-title,.md-typeset details.important>summary,.md-typeset details.tip>.admonition-title,.md-typeset details.tip>summary{ + border-bottom-color:rgba(0,191,165,.1); + background-color:rgba(0,191,165,.1) +} +.md-typeset .admonition.hint>.admonition-title:before,.md-typeset .admonition.hint>summary:before,.md-typeset .admonition.important>.admonition-title:before,.md-typeset .admonition.important>summary:before,.md-typeset .admonition.tip>.admonition-title:before,.md-typeset .admonition.tip>summary:before,.md-typeset details.hint>.admonition-title:before,.md-typeset details.hint>summary:before,.md-typeset details.important>.admonition-title:before,.md-typeset details.important>summary:before,.md-typeset details.tip>.admonition-title:before,.md-typeset details.tip>summary:before{ + color:#00bfa5; + content:"" +} +.md-typeset .admonition.check,.md-typeset .admonition.done,.md-typeset .admonition.success,.md-typeset details.check,.md-typeset details.done,.md-typeset details.success{ + border-left-color:#00c853 +} +[dir=rtl] .md-typeset .admonition.check,[dir=rtl] .md-typeset .admonition.done,[dir=rtl] .md-typeset .admonition.success,[dir=rtl] .md-typeset details.check,[dir=rtl] .md-typeset details.done,[dir=rtl] .md-typeset details.success{ + border-right-color:#00c853 +} +.md-typeset .admonition.check>.admonition-title,.md-typeset .admonition.check>summary,.md-typeset .admonition.done>.admonition-title,.md-typeset .admonition.done>summary,.md-typeset .admonition.success>.admonition-title,.md-typeset .admonition.success>summary,.md-typeset details.check>.admonition-title,.md-typeset details.check>summary,.md-typeset details.done>.admonition-title,.md-typeset details.done>summary,.md-typeset details.success>.admonition-title,.md-typeset details.success>summary{ + border-bottom-color:rgba(0,200,83,.1); + background-color:rgba(0,200,83,.1) +} +.md-typeset .admonition.check>.admonition-title:before,.md-typeset .admonition.check>summary:before,.md-typeset .admonition.done>.admonition-title:before,.md-typeset .admonition.done>summary:before,.md-typeset .admonition.success>.admonition-title:before,.md-typeset .admonition.success>summary:before,.md-typeset details.check>.admonition-title:before,.md-typeset details.check>summary:before,.md-typeset details.done>.admonition-title:before,.md-typeset details.done>summary:before,.md-typeset details.success>.admonition-title:before,.md-typeset details.success>summary:before{ + color:#00c853; + content:"" +} +.md-typeset .admonition.faq,.md-typeset .admonition.help,.md-typeset .admonition.question,.md-typeset details.faq,.md-typeset details.help,.md-typeset details.question{ + border-left-color:#64dd17 +} +[dir=rtl] .md-typeset .admonition.faq,[dir=rtl] .md-typeset .admonition.help,[dir=rtl] .md-typeset .admonition.question,[dir=rtl] .md-typeset details.faq,[dir=rtl] .md-typeset details.help,[dir=rtl] .md-typeset details.question{ + border-right-color:#64dd17 +} +.md-typeset .admonition.faq>.admonition-title,.md-typeset .admonition.faq>summary,.md-typeset .admonition.help>.admonition-title,.md-typeset .admonition.help>summary,.md-typeset .admonition.question>.admonition-title,.md-typeset .admonition.question>summary,.md-typeset details.faq>.admonition-title,.md-typeset details.faq>summary,.md-typeset details.help>.admonition-title,.md-typeset details.help>summary,.md-typeset details.question>.admonition-title,.md-typeset details.question>summary{ + border-bottom-color:rgba(100,221,23,.1); + background-color:rgba(100,221,23,.1) +} +.md-typeset .admonition.faq>.admonition-title:before,.md-typeset .admonition.faq>summary:before,.md-typeset .admonition.help>.admonition-title:before,.md-typeset .admonition.help>summary:before,.md-typeset .admonition.question>.admonition-title:before,.md-typeset .admonition.question>summary:before,.md-typeset details.faq>.admonition-title:before,.md-typeset details.faq>summary:before,.md-typeset details.help>.admonition-title:before,.md-typeset details.help>summary:before,.md-typeset details.question>.admonition-title:before,.md-typeset details.question>summary:before{ + color:#64dd17; + content:"" +} +.md-typeset .admonition.attention,.md-typeset .admonition.caution,.md-typeset .admonition.warning,.md-typeset details.attention,.md-typeset details.caution,.md-typeset details.warning{ + border-left-color:#ff9100 +} +[dir=rtl] .md-typeset .admonition.attention,[dir=rtl] .md-typeset .admonition.caution,[dir=rtl] .md-typeset .admonition.warning,[dir=rtl] .md-typeset details.attention,[dir=rtl] .md-typeset details.caution,[dir=rtl] .md-typeset details.warning{ + border-right-color:#ff9100 +} +.md-typeset .admonition.attention>.admonition-title,.md-typeset .admonition.attention>summary,.md-typeset .admonition.caution>.admonition-title,.md-typeset .admonition.caution>summary,.md-typeset .admonition.warning>.admonition-title,.md-typeset .admonition.warning>summary,.md-typeset details.attention>.admonition-title,.md-typeset details.attention>summary,.md-typeset details.caution>.admonition-title,.md-typeset details.caution>summary,.md-typeset details.warning>.admonition-title,.md-typeset details.warning>summary{ + border-bottom-color:rgba(255,145,0,.1); + background-color:rgba(255,145,0,.1) +} +.md-typeset .admonition.attention>.admonition-title:before,.md-typeset .admonition.attention>summary:before,.md-typeset .admonition.caution>.admonition-title:before,.md-typeset .admonition.caution>summary:before,.md-typeset .admonition.warning>.admonition-title:before,.md-typeset .admonition.warning>summary:before,.md-typeset details.attention>.admonition-title:before,.md-typeset details.attention>summary:before,.md-typeset details.caution>.admonition-title:before,.md-typeset details.caution>summary:before,.md-typeset details.warning>.admonition-title:before,.md-typeset details.warning>summary:before{ + color:#ff9100; + content:"" +} +.md-typeset .admonition.fail,.md-typeset .admonition.failure,.md-typeset .admonition.missing,.md-typeset details.fail,.md-typeset details.failure,.md-typeset details.missing{ + border-left-color:#ff5252 +} +[dir=rtl] .md-typeset .admonition.fail,[dir=rtl] .md-typeset .admonition.failure,[dir=rtl] .md-typeset .admonition.missing,[dir=rtl] .md-typeset details.fail,[dir=rtl] .md-typeset details.failure,[dir=rtl] .md-typeset details.missing{ + border-right-color:#ff5252 +} +.md-typeset .admonition.fail>.admonition-title,.md-typeset .admonition.fail>summary,.md-typeset .admonition.failure>.admonition-title,.md-typeset .admonition.failure>summary,.md-typeset .admonition.missing>.admonition-title,.md-typeset .admonition.missing>summary,.md-typeset details.fail>.admonition-title,.md-typeset details.fail>summary,.md-typeset details.failure>.admonition-title,.md-typeset details.failure>summary,.md-typeset details.missing>.admonition-title,.md-typeset details.missing>summary{ + border-bottom-color:rgba(255,82,82,.1); + background-color:rgba(255,82,82,.1) +} +.md-typeset .admonition.fail>.admonition-title:before,.md-typeset .admonition.fail>summary:before,.md-typeset .admonition.failure>.admonition-title:before,.md-typeset .admonition.failure>summary:before,.md-typeset .admonition.missing>.admonition-title:before,.md-typeset .admonition.missing>summary:before,.md-typeset details.fail>.admonition-title:before,.md-typeset details.fail>summary:before,.md-typeset details.failure>.admonition-title:before,.md-typeset details.failure>summary:before,.md-typeset details.missing>.admonition-title:before,.md-typeset details.missing>summary:before{ + color:#ff5252; + content:"" +} +.md-typeset .admonition.danger,.md-typeset .admonition.error,.md-typeset details.danger,.md-typeset details.error{ + border-left-color:#ff1744 +} +[dir=rtl] .md-typeset .admonition.danger,[dir=rtl] .md-typeset .admonition.error,[dir=rtl] .md-typeset details.danger,[dir=rtl] .md-typeset details.error{ + border-right-color:#ff1744 +} +.md-typeset .admonition.danger>.admonition-title,.md-typeset .admonition.danger>summary,.md-typeset .admonition.error>.admonition-title,.md-typeset .admonition.error>summary,.md-typeset details.danger>.admonition-title,.md-typeset details.danger>summary,.md-typeset details.error>.admonition-title,.md-typeset details.error>summary{ + border-bottom-color:rgba(255,23,68,.1); + background-color:rgba(255,23,68,.1) +} +.md-typeset .admonition.danger>.admonition-title:before,.md-typeset .admonition.danger>summary:before,.md-typeset .admonition.error>.admonition-title:before,.md-typeset .admonition.error>summary:before,.md-typeset details.danger>.admonition-title:before,.md-typeset details.danger>summary:before,.md-typeset details.error>.admonition-title:before,.md-typeset details.error>summary:before{ + color:#ff1744; + content:"" +} +.md-typeset .admonition.bug,.md-typeset details.bug{ + border-left-color:#f50057 +} +[dir=rtl] .md-typeset .admonition.bug,[dir=rtl] .md-typeset details.bug{ + border-right-color:#f50057 +} +.md-typeset .admonition.bug>.admonition-title,.md-typeset .admonition.bug>summary,.md-typeset details.bug>.admonition-title,.md-typeset details.bug>summary{ + border-bottom-color:rgba(245,0,87,.1); + background-color:rgba(245,0,87,.1) +} +.md-typeset .admonition.bug>.admonition-title:before,.md-typeset .admonition.bug>summary:before,.md-typeset details.bug>.admonition-title:before,.md-typeset details.bug>summary:before{ + color:#f50057; + content:"" +} +.md-typeset .admonition.example,.md-typeset details.example{ + border-left-color:#651fff +} +[dir=rtl] .md-typeset .admonition.example,[dir=rtl] .md-typeset details.example{ + border-right-color:#651fff +} +.md-typeset .admonition.example>.admonition-title,.md-typeset .admonition.example>summary,.md-typeset details.example>.admonition-title,.md-typeset details.example>summary{ + border-bottom-color:rgba(101,31,255,.1); + background-color:rgba(101,31,255,.1) +} +.md-typeset .admonition.example>.admonition-title:before,.md-typeset .admonition.example>summary:before,.md-typeset details.example>.admonition-title:before,.md-typeset details.example>summary:before{ + color:#651fff; + content:"" +} +.md-typeset .admonition.cite,.md-typeset .admonition.quote,.md-typeset details.cite,.md-typeset details.quote{ + border-left-color:#9e9e9e +} +[dir=rtl] .md-typeset .admonition.cite,[dir=rtl] .md-typeset .admonition.quote,[dir=rtl] .md-typeset details.cite,[dir=rtl] .md-typeset details.quote{ + border-right-color:#9e9e9e +} +.md-typeset .admonition.cite>.admonition-title,.md-typeset .admonition.cite>summary,.md-typeset .admonition.quote>.admonition-title,.md-typeset .admonition.quote>summary,.md-typeset details.cite>.admonition-title,.md-typeset details.cite>summary,.md-typeset details.quote>.admonition-title,.md-typeset details.quote>summary{ + border-bottom-color:hsla(0,0%,62%,.1); + background-color:hsla(0,0%,62%,.1) +} +.md-typeset .admonition.cite>.admonition-title:before,.md-typeset .admonition.cite>summary:before,.md-typeset .admonition.quote>.admonition-title:before,.md-typeset .admonition.quote>summary:before,.md-typeset details.cite>.admonition-title:before,.md-typeset details.cite>summary:before,.md-typeset details.quote>.admonition-title:before,.md-typeset details.quote>summary:before{ + color:#9e9e9e; + content:"" +} +.codehilite .o,.codehilite .ow,.highlight .o,.highlight .ow{ + color:inherit +} +.codehilite .ge,.highlight .ge{ + color:#000 +} +.codehilite .gr,.highlight .gr{ + color:#a00 +} +.codehilite .gh,.highlight .gh{ + color:#999 +} +.codehilite .go,.highlight .go{ + color:#888 +} +.codehilite .gp,.highlight .gp{ + color:#555 +} +.codehilite .gs,.highlight .gs{ + color:inherit +} +.codehilite .gu,.highlight .gu{ + color:#aaa +} +.codehilite .gt,.highlight .gt{ + color:#a00 +} +.codehilite .gd,.highlight .gd{ + background-color:#fdd +} +.codehilite .gi,.highlight .gi{ + background-color:#dfd +} +.codehilite .k,.highlight .k{ + color:#3b78e7 +} +.codehilite .kc,.highlight .kc{ + color:#a71d5d +} +.codehilite .kd,.codehilite .kn,.highlight .kd,.highlight .kn{ + color:#3b78e7 +} +.codehilite .kp,.highlight .kp{ + color:#a71d5d +} +.codehilite .kr,.codehilite .kt,.highlight .kr,.highlight .kt{ + color:#3e61a2 +} +.codehilite .c,.codehilite .cm,.highlight .c,.highlight .cm{ + color:#999 +} +.codehilite .cp,.highlight .cp{ + color:#666 +} +.codehilite .c1,.codehilite .ch,.codehilite .cs,.highlight .c1,.highlight .ch,.highlight .cs{ + color:#999 +} +.codehilite .na,.codehilite .nb,.highlight .na,.highlight .nb{ + color:#c2185b +} +.codehilite .bp,.highlight .bp{ + color:#3e61a2 +} +.codehilite .nc,.highlight .nc{ + color:#c2185b +} +.codehilite .no,.highlight .no{ + color:#3e61a2 +} +.codehilite .nd,.codehilite .ni,.highlight .nd,.highlight .ni{ + color:#666 +} +.codehilite .ne,.codehilite .nf,.highlight .ne,.highlight .nf{ + color:#c2185b +} +.codehilite .nl,.highlight .nl{ + color:#3b5179 +} +.codehilite .nn,.highlight .nn{ + color:#ec407a +} +.codehilite .nt,.highlight .nt{ + color:#3b78e7 +} +.codehilite .nv,.codehilite .vc,.codehilite .vg,.codehilite .vi,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{ + color:#3e61a2 +} +.codehilite .nx,.highlight .nx{ + color:#ec407a +} +.codehilite .il,.codehilite .m,.codehilite .mf,.codehilite .mh,.codehilite .mi,.codehilite .mo,.highlight .il,.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{ + color:#e74c3c +} +.codehilite .s,.codehilite .sb,.codehilite .sc,.highlight .s,.highlight .sb,.highlight .sc{ + color:#0d904f +} +.codehilite .sd,.highlight .sd{ + color:#999 +} +.codehilite .s2,.highlight .s2{ + color:#0d904f +} +.codehilite .se,.codehilite .sh,.codehilite .si,.codehilite .sx,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx{ + color:#183691 +} +.codehilite .sr,.highlight .sr{ + color:#009926 +} +.codehilite .s1,.codehilite .ss,.highlight .s1,.highlight .ss{ + color:#0d904f +} +.codehilite .err,.highlight .err{ + color:#a61717 +} +.codehilite .w,.highlight .w{ + color:transparent +} +.codehilite .hll, .highlight .hll{ + display:block; + margin:0 -.6rem; + padding:0 .6rem; + background-color:rgba(255,235,59,.5) +} +.md-typeset .codehilite,.highlight{ + position:relative; + margin:1em 0; + padding:0; + border-radius:.1rem; + background-color:hsla(0,0%,92.5%,.5); + color:#37474f; + line-height:1.4; + -webkit-overflow-scrolling:touch +} +.md-typeset .codehilite code,.md-typeset .codehilite pre,.highlight code,.highlight pre{ + display:block; + margin:0; + padding:.525rem .6rem; + background-color:transparent; + overflow:auto; + vertical-align:top +} +.md-typeset .codehilite code::-webkit-scrollbar,.md-typeset .codehilite pre::-webkit-scrollbar,.highlight code::-webkit-scrollbar,.highlight pre::-webkit-scrollbar{ + width:.2rem; + height:.2rem +} +.md-typeset .codehilite code::-webkit-scrollbar-thumb,.md-typeset .codehilite pre::-webkit-scrollbar-thumb,.highlight code::-webkit-scrollbar-thumb,.highlight pre::-webkit-scrollbar-thumb{ + background-color:rgba(0,0,0,.26) +} +.md-typeset .codehilite code::-webkit-scrollbar-thumb:hover,.md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,.highlight code::-webkit-scrollbar-thumb:hover, .highlight pre::-webkit-scrollbar-thumb:hover{ + background-color:#536dfe +} +.md-typeset pre.codehilite,.md-typeset pre.highlight{ + overflow:visible +} +.md-typeset pre.codehilite code,.md-typeset pre.highlight code{ + display:block; + padding:.525rem .6rem; + overflow:auto +} +.md-typeset .codehilitetable,.md-typeset .highlighttable{ + display:block; + margin:1em 0; + border-radius:.2em; + font-size:.8rem; + overflow:hidden +} +.md-typeset .codehilitetable tbody,.md-typeset .codehilitetable td,.md-typeset .highlighttable tbody,.md-typeset .highlighttable td{ + display:block; + padding:0 +} +.md-typeset .codehilitetable tr,.md-typeset .highlighttable tr{ + display:flex +} +.md-typeset .codehilitetable .codehilite,.md-typeset .codehilitetable .highlight,.md-typeset .codehilitetable .linenodiv,.md-typeset .highlighttable .codehilite,.md-typeset .highlighttable .highlight,.md-typeset .highlighttable .linenodiv{ + margin:0; + border-radius:0 +} +.md-typeset .codehilitetable .linenodiv,.md-typeset .highlighttable .linenodiv{ + padding:.525rem .6rem +} +.md-typeset .codehilitetable .linenos,.md-typeset .highlighttable .linenos{ + background-color:rgba(0,0,0,.07); + color:rgba(0,0,0,.26); + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none +} +.md-typeset .codehilitetable .linenos pre,.md-typeset .highlighttable .linenos pre{ + margin:0; + padding:0; + background-color:transparent; + color:inherit; + text-align:right +} +.md-typeset .codehilitetable .code,.md-typeset .highlighttable .code{ + flex:1; + overflow:hidden +} +.md-typeset>.codehilitetable,.md-typeset>.highlighttable{ + box-shadow:none +} +.md-typeset [id^="fnref:"]{ + display:inline-block +} +.md-typeset [id^="fnref:"]:target{ + margin-top:-3.8rem; + padding-top:3.8rem; + pointer-events:none +} +.md-typeset [id^="fn:"]:before{ + display:none; + height:0; + content:"" +} +.md-typeset [id^="fn:"]:target:before{ + display:block; + margin-top:-3.5rem; + padding-top:3.5rem; + pointer-events:none +} +.md-typeset .footnote{ + color:rgba(0,0,0,.54); + font-size:.64rem +} +.md-typeset .footnote ol{ + margin-left:0 +} +.md-typeset .footnote li{ + transition:color .25s +} +.md-typeset .footnote li:target{ + color:rgba(0,0,0,.87) +} +.md-typeset .footnote li :first-child{ + margin-top:0 +} +.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{ + -webkit-transform:translateX(0); + transform:translateX(0); + opacity:1 +} +.md-typeset .footnote li:hover .footnote-backref:hover,.md-typeset .footnote li:target .footnote-backref{ + color:#536dfe +} +.md-typeset .footnote-ref{ + display:inline-block; + pointer-events:auto +} +.md-typeset .footnote-ref:before{ + display:inline; + margin:0 .2em; + border-left:.05rem solid rgba(0,0,0,.26); + font-size:1.25em; + content:""; + vertical-align:-.25rem +} +.md-typeset .footnote-backref{ + display:inline-block; + -webkit-transform:translateX(.25rem); + transform:translateX(.25rem); + transition:color .25s,opacity .125s .125s,-webkit-transform .25s .125s; + transition:transform .25s .125s,color .25s,opacity .125s .125s; + transition:transform .25s .125s,color .25s,opacity .125s .125s,-webkit-transform .25s .125s; + color:rgba(0,0,0,.26); + font-size:0; + opacity:0; + vertical-align:text-bottom +} +[dir=rtl] .md-typeset .footnote-backref{ + -webkit-transform:translateX(-.25rem); + transform:translateX(-.25rem) +} +.md-typeset .footnote-backref:before{ + display:inline-block; + font-size:.8rem; + content:"\E31B" +} +[dir=rtl] .md-typeset .footnote-backref:before{ + -webkit-transform:scaleX(-1); + transform:scaleX(-1) +} +.md-typeset .headerlink{ + display:inline-block; + margin-left:.5rem; + -webkit-transform:translateY(.25rem); + transform:translateY(.25rem); + transition:color .25s,opacity .125s .25s,-webkit-transform .25s .25s; + transition:transform .25s .25s,color .25s,opacity .125s .25s; + transition:transform .25s .25s,color .25s,opacity .125s .25s,-webkit-transform .25s .25s; + opacity:0 +} +[dir=rtl] .md-typeset .headerlink{ + margin-right:.5rem; + margin-left:0 +} +html body .md-typeset .headerlink{ + color:rgba(0,0,0,.26) +} +.md-typeset h1[id]:before{ + display:block; + margin-top:-9px; + padding-top:9px; + content:"" +} +.md-typeset h1[id]:target:before{ + margin-top:-3.45rem; + padding-top:3.45rem +} +.md-typeset h1[id] .headerlink:focus,.md-typeset h1[id]:hover .headerlink,.md-typeset h1[id]:target .headerlink{ + -webkit-transform:translate(0); + transform:translate(0); + opacity:1 +} +.md-typeset h1[id] .headerlink:focus,.md-typeset h1[id]:hover .headerlink:hover,.md-typeset h1[id]:target .headerlink{ + color:#536dfe +} +.md-typeset h2[id]:before{ + display:block; + margin-top:-8px; + padding-top:8px; + content:"" +} +.md-typeset h2[id]:target:before{ + margin-top:-3.4rem; + padding-top:3.4rem +} +.md-typeset h2[id] .headerlink:focus,.md-typeset h2[id]:hover .headerlink,.md-typeset h2[id]:target .headerlink{ + -webkit-transform:translate(0); + transform:translate(0); + opacity:1 +} +.md-typeset h2[id] .headerlink:focus,.md-typeset h2[id]:hover .headerlink:hover,.md-typeset h2[id]:target .headerlink{ + color:#536dfe +} +.md-typeset h3[id]:before{ + display:block; + margin-top:-9px; + padding-top:9px; + content:"" +} +.md-typeset h3[id]:target:before{ + margin-top:-3.45rem; + padding-top:3.45rem +} +.md-typeset h3[id] .headerlink:focus,.md-typeset h3[id]:hover .headerlink,.md-typeset h3[id]:target .headerlink{ + -webkit-transform:translate(0); + transform:translate(0); + opacity:1 +} +.md-typeset h3[id] .headerlink:focus,.md-typeset h3[id]:hover .headerlink:hover,.md-typeset h3[id]:target .headerlink{ + color:#536dfe +} +.md-typeset h4[id]:before{ + display:block; + margin-top:-9px; + padding-top:9px; + content:"" +} +.md-typeset h4[id]:target:before{ + margin-top:-3.45rem; + padding-top:3.45rem +} +.md-typeset h4[id] .headerlink:focus,.md-typeset h4[id]:hover .headerlink,.md-typeset h4[id]:target .headerlink{ + -webkit-transform:translate(0); + transform:translate(0); + opacity:1 +} +.md-typeset h4[id] .headerlink:focus,.md-typeset h4[id]:hover .headerlink:hover,.md-typeset h4[id]:target .headerlink{ + color:#536dfe +} +.md-typeset h5[id]:before{ + display:block; + margin-top:-11px; + padding-top:11px; + content:"" +} +.md-typeset h5[id]:target:before{ + margin-top:-3.55rem; + padding-top:3.55rem +} +.md-typeset h5[id] .headerlink:focus,.md-typeset h5[id]:hover .headerlink,.md-typeset h5[id]:target .headerlink{ + -webkit-transform:translate(0); + transform:translate(0); + opacity:1 +} +.md-typeset h5[id] .headerlink:focus,.md-typeset h5[id]:hover .headerlink:hover,.md-typeset h5[id]:target .headerlink{ + color:#536dfe +} +.md-typeset h6[id]:before{ + display:block; + margin-top:-11px; + padding-top:11px; + content:"" +} +.md-typeset h6[id]:target:before{ + margin-top:-3.55rem; + padding-top:3.55rem +} +.md-typeset h6[id] .headerlink:focus,.md-typeset h6[id]:hover .headerlink,.md-typeset h6[id]:target .headerlink{ + -webkit-transform:translate(0); + transform:translate(0); + opacity:1 +} +.md-typeset h6[id] .headerlink:focus,.md-typeset h6[id]:hover .headerlink:hover,.md-typeset h6[id]:target .headerlink{ + color:#536dfe +} +.md-typeset .MJXc-display{ + margin:.75em 0; + padding:.75em 0; + overflow:auto; + -webkit-overflow-scrolling:touch +} +.md-typeset .MathJax_CHTML{ + outline:0 +} +.md-typeset .critic.comment,.md-typeset del.critic,.md-typeset ins.critic{ + margin:0 .25em; + padding:.0625em 0; + border-radius:.1rem; + -webkit-box-decoration-break:clone; + box-decoration-break:clone +} +.md-typeset del.critic{ + background-color:#fdd; + box-shadow:.25em 0 0 #fdd,-.25em 0 0 #fdd +} +.md-typeset ins.critic{ + background-color:#dfd; + box-shadow:.25em 0 0 #dfd,-.25em 0 0 #dfd +} +.md-typeset .critic.comment{ + background-color:hsla(0,0%,92.5%,.5); + color:#37474f; + box-shadow:.25em 0 0 hsla(0,0%,92.5%,.5),-.25em 0 0 hsla(0,0%,92.5%,.5) +} +.md-typeset .critic.comment:before{ + padding-right:.125em; + color:rgba(0,0,0,.26); + content:"\E0B7"; + vertical-align:-.125em +} +.md-typeset .critic.block{ + display:block; + margin:1em 0; + padding-right:.8rem; + padding-left:.8rem; + box-shadow:none +} +.md-typeset .critic.block :first-child{ + margin-top:.5em +} +.md-typeset .critic.block :last-child{ + margin-bottom:.5em +} +.md-typeset details{ + display:block; + padding-top:0 +} +.md-typeset details[open]>summary:after{ + -webkit-transform:rotate(180deg); + transform:rotate(180deg) +} +.md-typeset details:not([open]){ + padding-bottom:0 +} +.md-typeset details:not([open])>summary{ + border-bottom:none +} +.md-typeset details summary{ + padding-right:2rem +} +[dir=rtl] .md-typeset details summary{ + padding-left:2rem +} +.no-details .md-typeset details:not([open])>*{ + display:none +} +.no-details .md-typeset details:not([open]) summary{ + display:block +} +.md-typeset summary{ + display:block; + outline:none; + cursor:pointer +} +.md-typeset summary::-webkit-details-marker{ + display:none +} +.md-typeset summary:after{ + position:absolute; + top:.4rem; + right:.6rem; + color:rgba(0,0,0,.26); + font-size:1rem; + content:"\E313" +} +[dir=rtl] .md-typeset summary:after{ + right:auto; + left:.6rem +} +.md-typeset .emojione{ + width:1rem; + vertical-align:text-top +} +.md-typeset code.codehilite,.md-typeset code.highlight{ + margin:0 .29412em; + padding:.07353em 0 +} +.md-typeset .superfences-content{ + display:none; + order:99; + width:100%; + background-color:#fff +} +.md-typeset .superfences-content>*{ + margin:0; + border-radius:0 +} +.md-typeset .superfences-tabs{ + display:flex; + position:relative; + flex-wrap:wrap; + margin:1em 0; + border:.05rem solid rgba(0,0,0,.07); + border-radius:.2em +} +.md-typeset .superfences-tabs>input{ + display:none +} +.md-typeset .superfences-tabs>input:checked+label{ + font-weight:700 +} +.md-typeset .superfences-tabs>input:checked+label+.superfences-content{ + display:block +} +.md-typeset .superfences-tabs>label{ + width:auto; + padding:.6rem; + transition:color .125s; + font-size:.64rem; + cursor:pointer +} +html .md-typeset .superfences-tabs>label:hover{ + color:#536dfe +} +.md-typeset .task-list-item{ + position:relative; + list-style-type:none +} +.md-typeset .task-list-item [type=checkbox]{ + position:absolute; + top:.45em; + left:-2em +} +[dir=rtl] .md-typeset .task-list-item [type=checkbox]{ + right:-2em; + left:auto +} +.md-typeset .task-list-control .task-list-indicator:before{ + position:absolute; + top:.15em; + left:-1.25em; + color:rgba(0,0,0,.26); + font-size:1.25em; + content:"\E835"; + vertical-align:-.25em +} +[dir=rtl] .md-typeset .task-list-control .task-list-indicator:before{ + right:-1.25em; + left:auto +} +.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator:before{ + content:"\E834" +} +.md-typeset .task-list-control [type=checkbox]{ + opacity:0; + z-index:-1 +} +@media print{ + .md-typeset a:after{ + color:rgba(0,0,0,.54); + content:" [" attr(href) "]" + } + .md-typeset code,.md-typeset pre{ + white-space:pre-wrap + } + .md-typeset code{ + box-shadow:none; + -webkit-box-decoration-break:initial; + box-decoration-break:slice + } + .md-clipboard,.md-content__icon,.md-footer,.md-header,.md-sidebar,.md-tabs,.md-typeset .headerlink{ + display:none + } +} +@media only screen and (max-width:44.9375em){ + .md-typeset pre{ + margin:1em -.8rem; + border-radius:0 + } + .md-typeset pre>code{ + padding:.525rem .8rem + } + .md-footer-nav__link--prev .md-footer-nav__title{ + display:none + } + .md-search-result__teaser{ + max-height:2.5rem; + -webkit-line-clamp:3 + } + .codehilite .hll,.md-typeset .highlight .hll{ + margin:0 -.8rem; + padding:0 .8rem + } + .md-typeset>.codehilite,.md-typeset>.highlight{ + margin:1em -.8rem; + border-radius:0 + } + .md-typeset>.codehilite code,.md-typeset>.codehilite pre,.md-typeset>.highlight code,.md-typeset>.highlight pre{ + padding:.525rem .8rem + } + .md-typeset>.codehilitetable,.md-typeset>.highlighttable{ + margin:1em -.8rem; + border-radius:0 + } + .md-typeset>.codehilitetable .codehilite>code,.md-typeset>.codehilitetable .codehilite>pre,.md-typeset>.codehilitetable .highlight>code,.md-typeset>.codehilitetable .highlight>pre,.md-typeset>.codehilitetable .linenodiv,.md-typeset>.highlighttable .codehilite>code,.md-typeset>.highlighttable .codehilite>pre,.md-typeset>.highlighttable .highlight>code,.md-typeset>.highlighttable .highlight>pre,.md-typeset>.highlighttable .linenodiv{ + padding:.5rem .8rem + } + .md-typeset>p>.MJXc-display{ + margin:.75em -.8rem; + padding:.25em .8rem + } + .md-typeset>.superfences-tabs{ + margin:1em -.8rem; + border:0; + border-top:.05rem solid rgba(0,0,0,.07); + border-radius:0 + } + .md-typeset>.superfences-tabs code,.md-typeset>.superfences-tabs pre{ + padding:.525rem .8rem + } +} +@media only screen and (min-width:100em){ + html{ + font-size:137.5% + } +} +@media only screen and (min-width:125em){ + html{ + font-size:150% + } +} +@media only screen and (max-width:59.9375em){ + body[data-md-state=lock]{ + overflow:hidden + } + .ios body[data-md-state=lock] .md-container{ + display:none + } + html .md-nav__link[for=__toc]{ + display:block; + padding-right:2.4rem + } + html .md-nav__link[for=__toc]:after{ + color:inherit; + content:"\E8DE" + } + html .md-nav__link[for=__toc]+.md-nav__link{ + display:none + } + html .md-nav__link[for=__toc]~.md-nav{ + display:flex + } + html [dir=rtl] .md-nav__link{ + padding-right:.8rem; + padding-left:2.4rem + } + .md-nav__source{ + display:block; + padding:0 .2rem; + background-color:rgba(50,64,144,.9675); + color:#fff + } + .md-search__overlay{ + position:absolute; + top:.2rem; + left:.2rem; + width:1.8rem; + height:1.8rem; + -webkit-transform-origin:center; + transform-origin:center; + transition:opacity .2s .2s,-webkit-transform .3s .1s; + transition:transform .3s .1s,opacity .2s .2s; + transition:transform .3s .1s,opacity .2s .2s,-webkit-transform .3s .1s; + border-radius:1rem; + background-color:#fff; + overflow:hidden; + pointer-events:none + } + [dir=rtl] .md-search__overlay{ + right:.2rem; + left:auto + } + [data-md-toggle=search]:checked~.md-header .md-search__overlay{ + transition:opacity .1s,-webkit-transform .4s; + transition:transform .4s,opacity .1s; + transition:transform .4s,opacity .1s,-webkit-transform .4s; + opacity:1 + } + .md-search__inner{ + position:fixed; + top:0; + left:100%; + width:100%; + height:100%; + -webkit-transform:translateX(5%); + transform:translateX(5%); + transition:right 0s .3s,left 0s .3s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.4,0,.2,1) .15s; + transition:right 0s .3s,left 0s .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s; + transition:right 0s .3s,left 0s .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.4,0,.2,1) .15s; + opacity:0; + z-index:2 + } + [data-md-toggle=search]:checked~.md-header .md-search__inner{ + left:0; + -webkit-transform:translateX(0); + transform:translateX(0); + transition:right 0s 0s,left 0s 0s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1) .15s; + transition:right 0s 0s,left 0s 0s,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s; + transition:right 0s 0s,left 0s 0s,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1) .15s; + opacity:1 + } + [dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{ + right:0; + left:auto + } + html [dir=rtl] .md-search__inner{ + right:100%; + left:auto; + -webkit-transform:translateX(-5%); + transform:translateX(-5%) + } + .md-search__input{ + width:100%; + height:2.4rem; + font-size:.9rem + } + .md-search__icon[for=__search]{ + top:.6rem; + left:.8rem + } + .md-search__icon[for=__search][for=__search]:before{ + content:"\E5C4" + } + [dir=rtl] .md-search__icon[for=__search][for=__search]:before{ + content:"\E5C8" + } + .md-search__icon[type=reset]{ + top:.6rem; + right:.8rem + } + .md-search__output{ + top:2.4rem; + bottom:0 + } + .md-search-result__article--document:before{ + display:none + } +} +@media only screen and (max-width:76.1875em){ + [data-md-toggle=drawer]:checked~.md-overlay{ + width:100%; + height:100%; + transition:width 0s,height 0s,opacity .25s; + opacity:1 + } + .md-header-nav__button.md-icon--home,.md-header-nav__button.md-logo{ + display:none + } + .md-hero__inner{ + margin-top:2.4rem; + margin-bottom:1.2rem + } + .md-nav{ + background-color:#fff + } + .md-nav--primary,.md-nav--primary .md-nav{ + display:flex; + position:absolute; + top:0; + right:0; + left:0; + flex-direction:column; + height:100%; + z-index:1 + } + .md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{ + font-size:.8rem; + line-height:1.5 + } + html .md-nav--primary .md-nav__title{ + position:relative; + height:5.6rem; + padding:3rem .8rem .2rem; + background-color:rgba(0,0,0,.07); + color:rgba(0,0,0,.54); + font-weight:400; + line-height:2.4rem; + white-space:nowrap; + cursor:pointer + } + html .md-nav--primary .md-nav__title:before{ + display:block; + position:absolute; + top:.2rem; + left:.2rem; + width:2rem; + height:2rem; + color:rgba(0,0,0,.54) + } + html .md-nav--primary .md-nav__title~.md-nav__list{ + background-color:#fff; + box-shadow:inset 0 .05rem 0 rgba(0,0,0,.07) + } + html .md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{ + border-top:0 + } + html .md-nav--primary .md-nav__title--site{ + position:relative; + background-color:#3f51b5; + color:#fff + } + html .md-nav--primary .md-nav__title--site .md-nav__button{ + display:block; + position:absolute; + top:.2rem; + left:.2rem; + width:3.2rem; + height:3.2rem; + font-size:2.4rem + } + html .md-nav--primary .md-nav__title--site:before{ + display:none + } + html [dir=rtl] .md-nav--primary .md-nav__title--site .md-nav__button,html [dir=rtl] .md-nav--primary .md-nav__title:before{ + right:.2rem; + left:auto + } + .md-nav--primary .md-nav__list{ + /* TODO: Consider changing, but need more fix + See GH#48 + */ + flex:1; + overflow-y:auto + } + .md-nav--primary .md-nav__item{ + padding:0; + border-top:.05rem solid rgba(0,0,0,.07) + } + [dir=rtl] .md-nav--primary .md-nav__item{ + padding:0 + } + .md-nav--primary .md-nav__item--nested>.md-nav__link{ + padding-right:2.4rem + } + [dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{ + padding-right:.8rem; + padding-left:2.4rem + } + .md-nav--primary .md-nav__item--nested>.md-nav__link:after{ + content:"\E315" + } + [dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link:after{ + content:"\E314" + } + .md-nav--primary .md-nav__link{ + position:relative; + margin-top:0; + padding:.6rem .8rem + } + .md-nav--primary .md-nav__link:after{ + position:absolute; + top:50%; + right:.6rem; + margin-top:-.6rem; + color:inherit; + font-size:1.2rem + } + [dir=rtl] .md-nav--primary .md-nav__link:after{ + right:auto; + left:.6rem + } + .md-nav--primary .md-nav--secondary .md-nav__link{ + position:static + } + .md-nav--primary .md-nav--secondary .md-nav{ + position:static; + background-color:transparent + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{ + padding-left:1.4rem + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{ + padding-right:1.4rem; + padding-left:0 + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{ + padding-left:2rem + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{ + padding-right:2rem; + padding-left:0 + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{ + padding-left:2.6rem + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{ + padding-right:2.6rem; + padding-left:0 + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{ + padding-left:3.2rem + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{ + padding-right:3.2rem; + padding-left:0 + } + .md-nav__toggle~.md-nav{ + display:flex; + -webkit-transform:translateX(100%); + transform:translateX(100%); + transition:opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1); + transition:transform .25s cubic-bezier(.8,0,.6,1),opacity .125s .05s; + transition:transform .25s cubic-bezier(.8,0,.6,1),opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1); + opacity:0 + } + [dir=rtl] .md-nav__toggle~.md-nav{ + -webkit-transform:translateX(-100%); + transform:translateX(-100%) + } + .no-csstransforms3d .md-nav__toggle~.md-nav{ + display:none + } + .md-nav__toggle:checked~.md-nav{ + -webkit-transform:translateX(0); + transform:translateX(0); + transition:opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1); + transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .125s .125s; + transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1); + opacity:1 + } + .no-csstransforms3d .md-nav__toggle:checked~.md-nav{ + display:flex + } + .md-sidebar--primary{ + position:fixed; + top:0; + left:-12.1rem; + width:12.1rem; + height:100%; + -webkit-transform:translateX(0); + transform:translateX(0); + transition:box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1); + transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s; + transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1); + background-color:#fff; + z-index:3 + } + [dir=rtl] .md-sidebar--primary{ + right:-12.1rem; + left:auto + } + .no-csstransforms3d .md-sidebar--primary{ + display:none + } + [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{ + box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4); + -webkit-transform:translateX(12.1rem); + transform:translateX(12.1rem) + } + [dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{ + -webkit-transform:translateX(-12.1rem); + transform:translateX(-12.1rem) + } + .no-csstransforms3d [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{ + display:block + } + .md-sidebar--primary .md-sidebar__scrollwrap{ + overflow:hidden; + position:absolute; + top:0; + right:0; + bottom:0; + left:0; + margin:0 + } + .md-tabs{ + display:none + } +} +@media only screen and (min-width:60em){ + .md-content{ + margin-right:12.1rem + } + [dir=rtl] .md-content{ + margin-right:0; + margin-left:12.1rem + } + .md-header-nav__button.md-icon--search{ + display:none + } + .md-header-nav__source{ + display:block; + width:11.7rem; + max-width:11.7rem; + padding-right:.6rem + } + [dir=rtl] .md-header-nav__source{ + padding-right:0; + padding-left:.6rem + } + .md-search{ + padding:.2rem + } + .md-search__overlay{ + position:fixed; + top:0; + left:0; + width:0; + height:0; + transition:width 0s .25s,height 0s .25s,opacity .25s; + background-color:rgba(0,0,0,.54); + cursor:pointer + } + [dir=rtl] .md-search__overlay{ + right:0; + left:auto + } + [data-md-toggle=search]:checked~.md-header .md-search__overlay{ + width:100%; + height:100%; + transition:width 0s,height 0s,opacity .25s; + opacity:1 + } + .md-search__inner{ + position:relative; + width:11.5rem; + margin-right:.8rem; + padding:.1rem 0; + float:right; + transition:width .25s cubic-bezier(.1,.7,.1,1) + } + [dir=rtl] .md-search__inner{ + margin-right:0; + margin-left:.8rem; + float:left + } + .md-search__form,.md-search__input{ + border-radius:.1rem + } + .md-search__input{ + width:100%; + height:1.8rem; + padding-left:2.2rem; + transition:background-color .25s cubic-bezier(.1,.7,.1,1),color .25s cubic-bezier(.1,.7,.1,1); + background-color:rgba(0,0,0,.26); + color:inherit; + font-size:.8rem + } + [dir=rtl] .md-search__input{ + padding-right:2.2rem + } + .md-search__input+.md-search__icon{ + color:inherit + } + .md-search__input::-webkit-input-placeholder{ + color:hsla(0,0%,100%,.7) + } + .md-search__input:-ms-input-placeholder{ + color:hsla(0,0%,100%,.7) + } + .md-search__input::-ms-input-placeholder{ + color:hsla(0,0%,100%,.7) + } + .md-search__input::placeholder{ + color:hsla(0,0%,100%,.7) + } + .md-search__input:hover{ + background-color:hsla(0,0%,100%,.12) + } + [data-md-toggle=search]:checked~.md-header .md-search__input{ + border-radius:.1rem .1rem 0 0; + background-color:#fff; + color:rgba(0,0,0,.87); + text-overflow:clip + } + [data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::-webkit-input-placeholder{ + color:rgba(0,0,0,.54) + } + [data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input:-ms-input-placeholder{ + color:rgba(0,0,0,.54) + } + [data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{ + color:rgba(0,0,0,.54) + } + [data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{ + color:rgba(0,0,0,.54) + } + .md-search__output{ + top:1.9rem; + transition:opacity .4s; + opacity:0 + } + [data-md-toggle=search]:checked~.md-header .md-search__output{ + box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4); + opacity:1 + } + .md-search__scrollwrap{ + max-height:0 + } + [data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{ + max-height:75vh + } + .md-search__scrollwrap::-webkit-scrollbar{ + width:.2rem; + height:.2rem + } + .md-search__scrollwrap::-webkit-scrollbar-thumb{ + background-color:rgba(0,0,0,.26) + } + .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{ + background-color:#536dfe + } + .md-search-result__meta{ + padding-left:2.2rem + } + [dir=rtl] .md-search-result__meta{ + padding-right:2.2rem; + padding-left:0 + } + .md-search-result__article{ + padding-left:2.2rem + } + [dir=rtl] .md-search-result__article{ + padding-right:2.2rem; + padding-left:.8rem + } + .md-sidebar--secondary{ + display:block; + margin-left:100%; + -webkit-transform:translate(-100%); + transform:translate(-100%) + } + [dir=rtl] .md-sidebar--secondary{ + margin-right:100%; + margin-left:0; + -webkit-transform:translate(100%); + transform:translate(100%) + } +} +@media only screen and (min-width:88.25em) { + .md-sidebar--secondary { + margin-left: 73rem + } + [dir=rtl] .md-sidebar--secondary { + margin-right: 73rem; + margin-left: 0 + } +} +@media only screen and (min-width:76.25em){ + .md-content{ + margin-left:12.1rem + } + [dir=rtl] .md-content{ + margin-right:12.1rem + } + .md-content__inner{ + margin-right:1.2rem; + margin-left:1.2rem + } + .md-header-nav__button.md-icon--menu{ + display:none + } + .md-nav[data-md-state=animate]{ + transition:max-height .25s cubic-bezier(.86,0,.07,1) + } + .md-nav__toggle~.md-nav{ + max-height:0; + overflow:hidden + } + .no-js .md-nav__toggle~.md-nav{ + display:none + } + .md-nav[data-md-state=expand],.md-nav__toggle:checked~.md-nav{ + max-height:100% + } + .no-js .md-nav[data-md-state=expand],.no-js .md-nav__toggle:checked~.md-nav{ + display:block + } + .md-nav__item--nested>.md-nav>.md-nav__title{ + display:none + } + .md-nav__item--nested>.md-nav__link:after{ + display:inline-block; + -webkit-transform-origin:.45em .45em; + transform-origin:.45em .45em; + -webkit-transform-style:preserve-3d; + transform-style:preserve-3d; + vertical-align:-.125em + } + .js .md-nav__item--nested>.md-nav__link:after{ + transition:-webkit-transform .4s; + transition:transform .4s; + transition:transform .4s,-webkit-transform .4s + } + .md-nav__item--nested .md-nav__toggle:checked~.md-nav__link:after{ + -webkit-transform:rotateX(180deg); + transform:rotateX(180deg) + } + .md-search__inner{ + margin-right:1.2rem + } + [dir=rtl] .md-search__inner{ + margin-left:1.2rem + } + .md-search__scrollwrap,[data-md-toggle=search]:checked~.md-header .md-search__inner{ + width:34.4rem + } + .md-tabs~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{ + font-size:0; + visibility:hidden + } + .md-tabs--active~.md-main .md-nav--primary .md-nav__title{ + display:block; + padding:0 + } + .md-tabs--active~.md-main .md-nav--primary .md-nav__title--site{ + display:none + } + .no-js .md-tabs--active~.md-main .md-nav--primary .md-nav{ + display:block + } + .md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item{ + font-size:0; + visibility:hidden + } + .md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{ + display:none; + font-size:.7rem; + overflow:auto; + visibility:visible + } + .md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested>.md-nav__link{ + display:none + } + .md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active{ + display:block + } + .md-tabs--active~.md-main .md-nav[data-md-level="1"]{ + max-height:none; + overflow:visible + } + .md-tabs--active~.md-main .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{ + padding-left:0 + } + .md-tabs--active~.md-main .md-nav[data-md-level="1"] .md-nav .md-nav__title{ + display:none + } +} +@media only screen and (min-width:45em){ + .md-footer-nav__link{ + width:50% + } + .md-footer-copyright{ + max-width:75%; + float:left + } + [dir=rtl] .md-footer-copyright{ + float:right + } + .md-footer-social{ + padding:.6rem 0; + float:right + } + [dir=rtl] .md-footer-social{ + float:left + } +} +@media only screen and (max-width:29.9375em){ + [data-md-toggle=search]:checked~.md-header .md-search__overlay{ + -webkit-transform:scale(45); + transform:scale(45) + } +} +@media only screen and (min-width:30em) and (max-width:44.9375em){ + [data-md-toggle=search]:checked~.md-header .md-search__overlay{ + -webkit-transform:scale(60); + transform:scale(60) + } +} +@media only screen and (min-width:45em) and (max-width:59.9375em){ + [data-md-toggle=search]:checked~.md-header .md-search__overlay{ + -webkit-transform:scale(75); + transform:scale(75) + } +} +@media only screen and (min-width:60em) and (max-width:76.1875em){ + .md-search__scrollwrap,[data-md-toggle=search]:checked~.md-header .md-search__inner{ + width:23.4rem + } + .md-search-result__teaser{ + max-height:2.5rem; + -webkit-line-clamp:3 + } +} diff --git a/genindex.html b/genindex.html new file mode 100644 index 0000000..7676d75 --- /dev/null +++ b/genindex.html @@ -0,0 +1,454 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++ |
+ |
+ | + |
+ |
+ | + |
+ | + |
+ |
|
+
|
+
|
+
+ | + |
+ | + |
+ | + |
+ |
Bases: object
Bases: object
A class for generating Kubernetes Job YAML configurations.
+Name of the job and associated resources.
+str
+Container image to use for the job.
+str
+Command to execute in the container. Defaults to None.
+List[str], optional
+Arguments for the command. Defaults to None.
+List[str], optional
+Amount of CPU to request. For example, “500m” for half a CPU. Defaults to None. Max is 192 CPUs
+str, optional
+Amount of RAM to request. For example, “1Gi” for 1 gibibyte. Defaults to None. Max is 890 GB
+str, optional
+Amount of storage to request. For example, “10Gi” for 10 gibibytes. Defaults to None.
+str, optional
+Type of GPU resource, e.g. “nvidia.com/gpu”. Defaults to None.
+str, optional
+GPU product, e.g. “NVIDIA-A100-SXM4-80GB”. Defaults to None. +Possible choices: NVIDIA-A100-SXM4-80GB – a full non-MIG 80GB GPU, total available 32
+++NVIDIA-A100-SXM4-40GB – a full non-MIG 40GB GPU, total available 88 +NVIDIA-A100-SXM4-40GB-MIG-3g.20gb – just under half-GPU +NVIDIA-A100-SXM4-40GB-MIG-1g.5gb – a seventh of a GPU
+
str, optional
+Number of GPU resources to allocate. Defaults to None.
+int, optional
+Maximum number of retries before marking job as failed. Defaults to 4.
+int, optional
+Restart policy for the job, default is “Never”.
+str, optional
+Size of shared memory, e.g. “2Gi”. If not set, defaults to None.
+str, optional
+Dictionary of secret environment variables. Defaults to None.
+dict, optional
+Dictionary of normal (non-secret) environment variables. Defaults to None.
+dict, optional
+Dictionary of volume mounts. Defaults to None.
+dict, optional
+Creates and runs a Kubernetes Job for each command in the given list of commands.
+commands – A list of strings, where each string represents a command to be executed.
args – Positional arguments to be passed to the KubernetesJob constructor.
kwargs – Keyword arguments to be passed to the KubernetesJob constructor.
from kubejobs import KubernetesJob
+
+commands = [
+ "python experiment.py --param1 value1",
+ "python experiment.py --param1 value2",
+ "python experiment.py --param1 value3"
+]
+
+create_jobs_for_experiments(
+ commands,
+ image="nvcr.io/nvidia/cuda:12.0.0-cudnn8-devel-ubuntu22.04",
+ gpu_type="nvidia.com/gpu",
+ gpu_limit=1,
+ backoff_limit=4
+)
+
Create a PersistentVolume in the specified namespace with the specified type.
+pv_name – The name of the PersistentVolume.
storage – The amount of storage for the PersistentVolume (e.g., “1500Gi”).
storage_class_name – The storage class name for the PersistentVolume.
access_modes – A list of access modes for the PersistentVolume.
pv_type – The type of PersistentVolume, either ‘local’ or ‘gcePersistentDisk’.
namespace – The namespace in which to create the PersistentVolume. Defaults to “default”.
claim_name – The name of the PersistentVolumeClaim to bind to the PersistentVolume.
local_path – The path on the host for a local PersistentVolume. Required if pv_type is ‘local’.
fs_type – The filesystem type for the PersistentVolume. Defaults to “ext4”.
Example usage:
+create_pv("pv-instafluencer-data", "1500Gi", "sc-instafluencer-data", ["ReadOnlyMany"], "local",
+ claim_name="pvc-instafluencer-data", local_path="/mnt/data")
+# This will create a local PersistentVolume named "pv-instafluencer-data" with 1500Gi of storage,
+# "sc-instafluencer-data" storage class, ReadOnlyMany access mode, and a local path "/mnt/data".
+
GPU_PRODUCT
+KubernetesJob
KubernetesJob.name
KubernetesJob.image
KubernetesJob.command
KubernetesJob.args
KubernetesJob.cpu_request
KubernetesJob.ram_request
KubernetesJob.storage_request
KubernetesJob.gpu_type
KubernetesJob.gpu_product
KubernetesJob.gpu_limit
KubernetesJob.backoff_limit
KubernetesJob.restart_policy
KubernetesJob.shm_size
KubernetesJob.secret_env_vars
KubernetesJob.env_vars
KubernetesJob.volume_mounts
KubernetesJob.generate_yaml()
KubernetesJob.from_command_line()
KubernetesJob.generate_yaml()
KubernetesJob.run()
create_jobs_for_experiments()
create_pv()
create_pvc()
fetch_user_info()
+ k | ||
+ |
+ kubejobs | + |
+ |
+ kubejobs.jobs | + |
+ Please activate JavaScript to enable the search + functionality. +
+