Files
PINA/docs/source/tutorials/tutorial9/tutorial.html
2025-04-07 10:51:06 +02:00

8009 lines
511 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>tutorial</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script><script>
(function() {
function addWidgetsRenderer() {
var mimeElement = document.querySelector('script[type="application/vnd.jupyter.widget-view+json"]');
var scriptElement = document.createElement('script');
var widgetRendererSrc = 'https://unpkg.com/@jupyter-widgets/html-manager@*/dist/embed-amd.js';
var widgetState;
// Fallback for older version:
try {
widgetState = mimeElement && JSON.parse(mimeElement.innerHTML);
if (widgetState && (widgetState.version_major < 2 || !widgetState.version_major)) {
var widgetRendererSrc = 'https://unpkg.com/@jupyter-js-widgets@*/dist/embed.js';
}
} catch(e) {}
scriptElement.src = widgetRendererSrc;
document.body.appendChild(scriptElement);
}
document.addEventListener('DOMContentLoaded', addWidgetsRenderer);
}());
</script>
<style type="text/css">
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: var(--jp-cell-editor-active-background) }
.highlight { background: var(--jp-cell-editor-background); color: var(--jp-mirror-editor-variable-color) }
.highlight .c { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment */
.highlight .err { color: var(--jp-mirror-editor-error-color) } /* Error */
.highlight .k { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword */
.highlight .o { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator */
.highlight .p { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation */
.highlight .ch { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Multiline */
.highlight .cp { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Preproc */
.highlight .cpf { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Single */
.highlight .cs { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Special */
.highlight .kc { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Type */
.highlight .m { color: var(--jp-mirror-editor-number-color) } /* Literal.Number */
.highlight .s { color: var(--jp-mirror-editor-string-color) } /* Literal.String */
.highlight .ow { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator.Word */
.highlight .pm { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation.Marker */
.highlight .w { color: var(--jp-mirror-editor-variable-color) } /* Text.Whitespace */
.highlight .mb { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Bin */
.highlight .mf { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Float */
.highlight .mh { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Hex */
.highlight .mi { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer */
.highlight .mo { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Oct */
.highlight .sa { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Affix */
.highlight .sb { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Backtick */
.highlight .sc { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Char */
.highlight .dl { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Delimiter */
.highlight .sd { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Doc */
.highlight .s2 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Double */
.highlight .se { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Escape */
.highlight .sh { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Heredoc */
.highlight .si { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Interpol */
.highlight .sx { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Other */
.highlight .sr { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Regex */
.highlight .s1 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Single */
.highlight .ss { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Symbol */
.highlight .il { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer.Long */
</style>
<style type="text/css">
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*
* Mozilla scrollbar styling
*/
/* use standard opaque scrollbars for most nodes */
[data-jp-theme-scrollbars='true'] {
scrollbar-color: rgb(var(--jp-scrollbar-thumb-color))
var(--jp-scrollbar-background-color);
}
/* for code nodes, use a transparent style of scrollbar. These selectors
* will match lower in the tree, and so will override the above */
[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar,
[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar {
scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
}
/* tiny scrollbar */
.jp-scrollbar-tiny {
scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
scrollbar-width: thin;
}
/* tiny scrollbar */
.jp-scrollbar-tiny::-webkit-scrollbar,
.jp-scrollbar-tiny::-webkit-scrollbar-corner {
background-color: transparent;
height: 4px;
width: 4px;
}
.jp-scrollbar-tiny::-webkit-scrollbar-thumb {
background: rgba(var(--jp-scrollbar-thumb-color), 0.5);
}
.jp-scrollbar-tiny::-webkit-scrollbar-track:horizontal {
border-left: 0 solid transparent;
border-right: 0 solid transparent;
}
.jp-scrollbar-tiny::-webkit-scrollbar-track:vertical {
border-top: 0 solid transparent;
border-bottom: 0 solid transparent;
}
/*
* Lumino
*/
.lm-ScrollBar[data-orientation='horizontal'] {
min-height: 16px;
max-height: 16px;
min-width: 45px;
border-top: 1px solid #a0a0a0;
}
.lm-ScrollBar[data-orientation='vertical'] {
min-width: 16px;
max-width: 16px;
min-height: 45px;
border-left: 1px solid #a0a0a0;
}
.lm-ScrollBar-button {
background-color: #f0f0f0;
background-position: center center;
min-height: 15px;
max-height: 15px;
min-width: 15px;
max-width: 15px;
}
.lm-ScrollBar-button:hover {
background-color: #dadada;
}
.lm-ScrollBar-button.lm-mod-active {
background-color: #cdcdcd;
}
.lm-ScrollBar-track {
background: #f0f0f0;
}
.lm-ScrollBar-thumb {
background: #cdcdcd;
}
.lm-ScrollBar-thumb:hover {
background: #bababa;
}
.lm-ScrollBar-thumb.lm-mod-active {
background: #a0a0a0;
}
.lm-ScrollBar[data-orientation='horizontal'] .lm-ScrollBar-thumb {
height: 100%;
min-width: 15px;
border-left: 1px solid #a0a0a0;
border-right: 1px solid #a0a0a0;
}
.lm-ScrollBar[data-orientation='vertical'] .lm-ScrollBar-thumb {
width: 100%;
min-height: 15px;
border-top: 1px solid #a0a0a0;
border-bottom: 1px solid #a0a0a0;
}
.lm-ScrollBar[data-orientation='horizontal']
.lm-ScrollBar-button[data-action='decrement'] {
background-image: var(--jp-icon-caret-left);
background-size: 17px;
}
.lm-ScrollBar[data-orientation='horizontal']
.lm-ScrollBar-button[data-action='increment'] {
background-image: var(--jp-icon-caret-right);
background-size: 17px;
}
.lm-ScrollBar[data-orientation='vertical']
.lm-ScrollBar-button[data-action='decrement'] {
background-image: var(--jp-icon-caret-up);
background-size: 17px;
}
.lm-ScrollBar[data-orientation='vertical']
.lm-ScrollBar-button[data-action='increment'] {
background-image: var(--jp-icon-caret-down);
background-size: 17px;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-Widget {
box-sizing: border-box;
position: relative;
overflow: hidden;
}
.lm-Widget.lm-mod-hidden {
display: none !important;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.lm-AccordionPanel[data-orientation='horizontal'] > .lm-AccordionPanel-title {
/* Title is rotated for horizontal accordion panel using CSS */
display: block;
transform-origin: top left;
transform: rotate(-90deg) translate(-100%);
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-CommandPalette {
display: flex;
flex-direction: column;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lm-CommandPalette-search {
flex: 0 0 auto;
}
.lm-CommandPalette-content {
flex: 1 1 auto;
margin: 0;
padding: 0;
min-height: 0;
overflow: auto;
list-style-type: none;
}
.lm-CommandPalette-header {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.lm-CommandPalette-item {
display: flex;
flex-direction: row;
}
.lm-CommandPalette-itemIcon {
flex: 0 0 auto;
}
.lm-CommandPalette-itemContent {
flex: 1 1 auto;
overflow: hidden;
}
.lm-CommandPalette-itemShortcut {
flex: 0 0 auto;
}
.lm-CommandPalette-itemLabel {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.lm-close-icon {
border: 1px solid transparent;
background-color: transparent;
position: absolute;
z-index: 1;
right: 3%;
top: 0;
bottom: 0;
margin: auto;
padding: 7px 0;
display: none;
vertical-align: middle;
outline: 0;
cursor: pointer;
}
.lm-close-icon:after {
content: 'X';
display: block;
width: 15px;
height: 15px;
text-align: center;
color: #000;
font-weight: normal;
font-size: 12px;
cursor: pointer;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-DockPanel {
z-index: 0;
}
.lm-DockPanel-widget {
z-index: 0;
}
.lm-DockPanel-tabBar {
z-index: 1;
}
.lm-DockPanel-handle {
z-index: 2;
}
.lm-DockPanel-handle.lm-mod-hidden {
display: none !important;
}
.lm-DockPanel-handle:after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: '';
}
.lm-DockPanel-handle[data-orientation='horizontal'] {
cursor: ew-resize;
}
.lm-DockPanel-handle[data-orientation='vertical'] {
cursor: ns-resize;
}
.lm-DockPanel-handle[data-orientation='horizontal']:after {
left: 50%;
min-width: 8px;
transform: translateX(-50%);
}
.lm-DockPanel-handle[data-orientation='vertical']:after {
top: 50%;
min-height: 8px;
transform: translateY(-50%);
}
.lm-DockPanel-overlay {
z-index: 3;
box-sizing: border-box;
pointer-events: none;
}
.lm-DockPanel-overlay.lm-mod-hidden {
display: none !important;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-Menu {
z-index: 10000;
position: absolute;
white-space: nowrap;
overflow-x: hidden;
overflow-y: auto;
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lm-Menu-content {
margin: 0;
padding: 0;
display: table;
list-style-type: none;
}
.lm-Menu-item {
display: table-row;
}
.lm-Menu-item.lm-mod-hidden,
.lm-Menu-item.lm-mod-collapsed {
display: none !important;
}
.lm-Menu-itemIcon,
.lm-Menu-itemSubmenuIcon {
display: table-cell;
text-align: center;
}
.lm-Menu-itemLabel {
display: table-cell;
text-align: left;
}
.lm-Menu-itemShortcut {
display: table-cell;
text-align: right;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-MenuBar {
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lm-MenuBar-content {
margin: 0;
padding: 0;
display: flex;
flex-direction: row;
list-style-type: none;
}
.lm-MenuBar-item {
box-sizing: border-box;
}
.lm-MenuBar-itemIcon,
.lm-MenuBar-itemLabel {
display: inline-block;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-ScrollBar {
display: flex;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lm-ScrollBar[data-orientation='horizontal'] {
flex-direction: row;
}
.lm-ScrollBar[data-orientation='vertical'] {
flex-direction: column;
}
.lm-ScrollBar-button {
box-sizing: border-box;
flex: 0 0 auto;
}
.lm-ScrollBar-track {
box-sizing: border-box;
position: relative;
overflow: hidden;
flex: 1 1 auto;
}
.lm-ScrollBar-thumb {
box-sizing: border-box;
position: absolute;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-SplitPanel-child {
z-index: 0;
}
.lm-SplitPanel-handle {
z-index: 1;
}
.lm-SplitPanel-handle.lm-mod-hidden {
display: none !important;
}
.lm-SplitPanel-handle:after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: '';
}
.lm-SplitPanel[data-orientation='horizontal'] > .lm-SplitPanel-handle {
cursor: ew-resize;
}
.lm-SplitPanel[data-orientation='vertical'] > .lm-SplitPanel-handle {
cursor: ns-resize;
}
.lm-SplitPanel[data-orientation='horizontal'] > .lm-SplitPanel-handle:after {
left: 50%;
min-width: 8px;
transform: translateX(-50%);
}
.lm-SplitPanel[data-orientation='vertical'] > .lm-SplitPanel-handle:after {
top: 50%;
min-height: 8px;
transform: translateY(-50%);
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-TabBar {
display: flex;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lm-TabBar[data-orientation='horizontal'] {
flex-direction: row;
align-items: flex-end;
}
.lm-TabBar[data-orientation='vertical'] {
flex-direction: column;
align-items: flex-end;
}
.lm-TabBar-content {
margin: 0;
padding: 0;
display: flex;
flex: 1 1 auto;
list-style-type: none;
}
.lm-TabBar[data-orientation='horizontal'] > .lm-TabBar-content {
flex-direction: row;
}
.lm-TabBar[data-orientation='vertical'] > .lm-TabBar-content {
flex-direction: column;
}
.lm-TabBar-tab {
display: flex;
flex-direction: row;
box-sizing: border-box;
overflow: hidden;
touch-action: none; /* Disable native Drag/Drop */
}
.lm-TabBar-tabIcon,
.lm-TabBar-tabCloseIcon {
flex: 0 0 auto;
}
.lm-TabBar-tabLabel {
flex: 1 1 auto;
overflow: hidden;
white-space: nowrap;
}
.lm-TabBar-tabInput {
user-select: all;
width: 100%;
box-sizing: border-box;
}
.lm-TabBar-tab.lm-mod-hidden {
display: none !important;
}
.lm-TabBar-addButton.lm-mod-hidden {
display: none !important;
}
.lm-TabBar.lm-mod-dragging .lm-TabBar-tab {
position: relative;
}
.lm-TabBar.lm-mod-dragging[data-orientation='horizontal'] .lm-TabBar-tab {
left: 0;
transition: left 150ms ease;
}
.lm-TabBar.lm-mod-dragging[data-orientation='vertical'] .lm-TabBar-tab {
top: 0;
transition: top 150ms ease;
}
.lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging {
transition: none;
}
.lm-TabBar-tabLabel .lm-TabBar-tabInput {
user-select: all;
width: 100%;
box-sizing: border-box;
background: inherit;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-TabPanel-tabBar {
z-index: 1;
}
.lm-TabPanel-stackedPanel {
z-index: 0;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Collapse {
display: flex;
flex-direction: column;
align-items: stretch;
}
.jp-Collapse-header {
padding: 1px 12px;
background-color: var(--jp-layout-color1);
border-bottom: solid var(--jp-border-width) var(--jp-border-color2);
color: var(--jp-ui-font-color1);
cursor: pointer;
display: flex;
align-items: center;
font-size: var(--jp-ui-font-size0);
font-weight: 600;
text-transform: uppercase;
user-select: none;
}
.jp-Collapser-icon {
height: 16px;
}
.jp-Collapse-header-collapsed .jp-Collapser-icon {
transform: rotate(-90deg);
margin: auto 0;
}
.jp-Collapser-title {
line-height: 25px;
}
.jp-Collapse-contents {
padding: 0 12px;
background-color: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
overflow: auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/* This file was auto-generated by ensureUiComponents() in @jupyterlab/buildutils */
/**
* (DEPRECATED) Support for consuming icons as CSS background images
*/
/* Icons urls */
:root {
--jp-icon-add-above: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzN18xOTQ5MikiPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGQ9Ik00Ljc1IDQuOTMwNjZINi42MjVWNi44MDU2NkM2LjYyNSA3LjAxMTkxIDYuNzkzNzUgNy4xODA2NiA3IDcuMTgwNjZDNy4yMDYyNSA3LjE4MDY2IDcuMzc1IDcuMDExOTEgNy4zNzUgNi44MDU2NlY0LjkzMDY2SDkuMjVDOS40NTYyNSA0LjkzMDY2IDkuNjI1IDQuNzYxOTEgOS42MjUgNC41NTU2NkM5LjYyNSA0LjM0OTQxIDkuNDU2MjUgNC4xODA2NiA5LjI1IDQuMTgwNjZINy4zNzVWMi4zMDU2NkM3LjM3NSAyLjA5OTQxIDcuMjA2MjUgMS45MzA2NiA3IDEuOTMwNjZDNi43OTM3NSAxLjkzMDY2IDYuNjI1IDIuMDk5NDEgNi42MjUgMi4zMDU2NlY0LjE4MDY2SDQuNzVDNC41NDM3NSA0LjE4MDY2IDQuMzc1IDQuMzQ5NDEgNC4zNzUgNC41NTU2NkM0LjM3NSA0Ljc2MTkxIDQuNTQzNzUgNC45MzA2NiA0Ljc1IDQuOTMwNjZaIiBmaWxsPSIjNjE2MTYxIiBzdHJva2U9IiM2MTYxNjEiIHN0cm9rZS13aWR0aD0iMC43Ii8+CjwvZz4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjUgOS41VjExLjVMMi41IDExLjVWOS41TDExLjUgOS41Wk0xMiA4QzEyLjU1MjMgOCAxMyA4LjQ0NzcyIDEzIDlWMTJDMTMgMTIuNTUyMyAxMi41NTIzIDEzIDEyIDEzTDIgMTNDMS40NDc3MiAxMyAxIDEyLjU1MjMgMSAxMlY5QzEgOC40NDc3MiAxLjQ0NzcxIDggMiA4TDEyIDhaIiBmaWxsPSIjNjE2MTYxIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzN18xOTQ5MiI+CjxyZWN0IGNsYXNzPSJqcC1pY29uMyIgd2lkdGg9IjYiIGhlaWdodD0iNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDAgMCAxIDEwIDEuNTU1NjYpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==);
--jp-icon-add-below: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzN18xOTQ5OCkiPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGQ9Ik05LjI1IDEwLjA2OTNMNy4zNzUgMTAuMDY5M0w3LjM3NSA4LjE5NDM0QzcuMzc1IDcuOTg4MDkgNy4yMDYyNSA3LjgxOTM0IDcgNy44MTkzNEM2Ljc5Mzc1IDcuODE5MzQgNi42MjUgNy45ODgwOSA2LjYyNSA4LjE5NDM0TDYuNjI1IDEwLjA2OTNMNC43NSAxMC4wNjkzQzQuNTQzNzUgMTAuMDY5MyA0LjM3NSAxMC4yMzgxIDQuMzc1IDEwLjQ0NDNDNC4zNzUgMTAuNjUwNiA0LjU0Mzc1IDEwLjgxOTMgNC43NSAxMC44MTkzTDYuNjI1IDEwLjgxOTNMNi42MjUgMTIuNjk0M0M2LjYyNSAxMi45MDA2IDYuNzkzNzUgMTMuMDY5MyA3IDEzLjA2OTNDNy4yMDYyNSAxMy4wNjkzIDcuMzc1IDEyLjkwMDYgNy4zNzUgMTIuNjk0M0w3LjM3NSAxMC44MTkzTDkuMjUgMTAuODE5M0M5LjQ1NjI1IDEwLjgxOTMgOS42MjUgMTAuNjUwNiA5LjYyNSAxMC40NDQzQzkuNjI1IDEwLjIzODEgOS40NTYyNSAxMC4wNjkzIDkuMjUgMTAuMDY5M1oiIGZpbGw9IiM2MTYxNjEiIHN0cm9rZT0iIzYxNjE2MSIgc3Ryb2tlLXdpZHRoPSIwLjciLz4KPC9nPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDUuNUwyLjUgMy41TDExLjUgMy41TDExLjUgNS41TDIuNSA1LjVaTTIgN0MxLjQ0NzcyIDcgMSA2LjU1MjI4IDEgNkwxIDNDMSAyLjQ0NzcyIDEuNDQ3NzIgMiAyIDJMMTIgMkMxMi41NTIzIDIgMTMgMi40NDc3MiAxMyAzTDEzIDZDMTMgNi41NTIyOSAxMi41NTIzIDcgMTIgN0wyIDdaIiBmaWxsPSIjNjE2MTYxIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzN18xOTQ5OCI+CjxyZWN0IGNsYXNzPSJqcC1pY29uMyIgd2lkdGg9IjYiIGhlaWdodD0iNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0ibWF0cml4KDEgMS43NDg0NmUtMDcgMS43NDg0NmUtMDcgLTEgNCAxMy40NDQzKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=);
--jp-icon-add: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-bell: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiPgogICA8cGF0aCBjbGFzcz0ianAtaWNvbjIganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMzMzMzMzIgogICAgICBkPSJtOCAwLjI5Yy0xLjQgMC0yLjcgMC43My0zLjYgMS44LTEuMiAxLjUtMS40IDMuNC0xLjUgNS4yLTAuMTggMi4yLTAuNDQgNC0yLjMgNS4zbDAuMjggMS4zaDVjMC4wMjYgMC42NiAwLjMyIDEuMSAwLjcxIDEuNSAwLjg0IDAuNjEgMiAwLjYxIDIuOCAwIDAuNTItMC40IDAuNi0xIDAuNzEtMS41aDVsMC4yOC0xLjNjLTEuOS0wLjk3LTIuMi0zLjMtMi4zLTUuMy0wLjEzLTEuOC0wLjI2LTMuNy0xLjUtNS4yLTAuODUtMS0yLjItMS44LTMuNi0xLjh6bTAgMS40YzAuODggMCAxLjkgMC41NSAyLjUgMS4zIDAuODggMS4xIDEuMSAyLjcgMS4yIDQuNCAwLjEzIDEuNyAwLjIzIDMuNiAxLjMgNS4yaC0xMGMxLjEtMS42IDEuMi0zLjQgMS4zLTUuMiAwLjEzLTEuNyAwLjMtMy4zIDEuMi00LjQgMC41OS0wLjcyIDEuNi0xLjMgMi41LTEuM3ptLTAuNzQgMTJoMS41Yy0wLjAwMTUgMC4yOCAwLjAxNSAwLjc5LTAuNzQgMC43OS0wLjczIDAuMDAxNi0wLjcyLTAuNTMtMC43NC0wLjc5eiIgLz4KPC9zdmc+Cg==);
--jp-icon-bug-dot: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTcuMTkgOEgyMFYxMEgxNy45MUMxNy45NiAxMC4zMyAxOCAxMC42NiAxOCAxMVYxMkgyMFYxNEgxOC41SDE4VjE0LjAyNzVDMTUuNzUgMTQuMjc2MiAxNCAxNi4xODM3IDE0IDE4LjVDMTQgMTkuMjA4IDE0LjE2MzUgMTkuODc3OSAxNC40NTQ5IDIwLjQ3MzlDMTMuNzA2MyAyMC44MTE3IDEyLjg3NTcgMjEgMTIgMjFDOS43OCAyMSA3Ljg1IDE5Ljc5IDYuODEgMThINFYxNkg2LjA5QzYuMDQgMTUuNjcgNiAxNS4zNCA2IDE1VjE0SDRWMTJINlYxMUM2IDEwLjY2IDYuMDQgMTAuMzMgNi4wOSAxMEg0VjhINi44MUM3LjI2IDcuMjIgNy44OCA2LjU1IDguNjIgNi4wNEw3IDQuNDFMOC40MSAzTDEwLjU5IDUuMTdDMTEuMDQgNS4wNiAxMS41MSA1IDEyIDVDMTIuNDkgNSAxMi45NiA1LjA2IDEzLjQyIDUuMTdMMTUuNTkgM0wxNyA0LjQxTDE1LjM3IDYuMDRDMTYuMTIgNi41NSAxNi43NCA3LjIyIDE3LjE5IDhaTTEwIDE2SDE0VjE0SDEwVjE2Wk0xMCAxMkgxNFYxMEgxMFYxMloiIGZpbGw9IiM2MTYxNjEiLz4KICAgICAgICA8cGF0aCBkPSJNMjIgMTguNUMyMiAyMC40MzMgMjAuNDMzIDIyIDE4LjUgMjJDMTYuNTY3IDIyIDE1IDIwLjQzMyAxNSAxOC41QzE1IDE2LjU2NyAxNi41NjcgMTUgMTguNSAxNUMyMC40MzMgMTUgMjIgMTYuNTY3IDIyIDE4LjVaIiBmaWxsPSIjNjE2MTYxIi8+CiAgICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-bug: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0yMCA4aC0yLjgxYy0uNDUtLjc4LTEuMDctMS40NS0xLjgyLTEuOTZMMTcgNC40MSAxNS41OSAzbC0yLjE3IDIuMTdDMTIuOTYgNS4wNiAxMi40OSA1IDEyIDVjLS40OSAwLS45Ni4wNi0xLjQxLjE3TDguNDEgMyA3IDQuNDFsMS42MiAxLjYzQzcuODggNi41NSA3LjI2IDcuMjIgNi44MSA4SDR2MmgyLjA5Yy0uMDUuMzMtLjA5LjY2LS4wOSAxdjFINHYyaDJ2MWMwIC4zNC4wNC42Ny4wOSAxSDR2MmgyLjgxYzEuMDQgMS43OSAyLjk3IDMgNS4xOSAzczQuMTUtMS4yMSA1LjE5LTNIMjB2LTJoLTIuMDljLjA1LS4zMy4wOS0uNjYuMDktMXYtMWgydi0yaC0ydi0xYzAtLjM0LS4wNC0uNjctLjA5LTFIMjBWOHptLTYgOGgtNHYtMmg0djJ6bTAtNGgtNHYtMmg0djJ6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-build: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE0LjkgMTcuNDVDMTYuMjUgMTcuNDUgMTcuMzUgMTYuMzUgMTcuMzUgMTVDMTcuMzUgMTMuNjUgMTYuMjUgMTIuNTUgMTQuOSAxMi41NUMxMy41NCAxMi41NSAxMi40NSAxMy42NSAxMi40NSAxNUMxMi40NSAxNi4zNSAxMy41NCAxNy40NSAxNC45IDE3LjQ1Wk0yMC4xIDE1LjY4TDIxLjU4IDE2Ljg0QzIxLjcxIDE2Ljk1IDIxLjc1IDE3LjEzIDIxLjY2IDE3LjI5TDIwLjI2IDE5LjcxQzIwLjE3IDE5Ljg2IDIwIDE5LjkyIDE5LjgzIDE5Ljg2TDE4LjA5IDE5LjE2QzE3LjczIDE5LjQ0IDE3LjMzIDE5LjY3IDE2LjkxIDE5Ljg1TDE2LjY0IDIxLjdDMTYuNjIgMjEuODcgMTYuNDcgMjIgMTYuMyAyMkgxMy41QzEzLjMyIDIyIDEzLjE4IDIxLjg3IDEzLjE1IDIxLjdMMTIuODkgMTkuODVDMTIuNDYgMTkuNjcgMTIuMDcgMTkuNDQgMTEuNzEgMTkuMTZMOS45NjAwMiAxOS44NkM5LjgxMDAyIDE5LjkyIDkuNjIwMDIgMTkuODYgOS41NDAwMiAxOS43MUw4LjE0MDAyIDE3LjI5QzguMDUwMDIgMTcuMTMgOC4wOTAwMiAxNi45NSA4LjIyMDAyIDE2Ljg0TDkuNzAwMDIgMTUuNjhMOS42NTAwMSAxNUw5LjcwMDAyIDE0LjMxTDguMjIwMDIgMTMuMTZDOC4wOTAwMiAxMy4wNSA4LjA1MDAyIDEyLjg2IDguMTQwMDIgMTIuNzFMOS41NDAwMiAxMC4yOUM5LjYyMDAyIDEwLjEzIDkuODEwMDIgMTAuMDcgOS45NjAwMiAxMC4xM0wxMS43MSAxMC44NEMxMi4wNyAxMC41NiAxMi40NiAxMC4zMiAxMi44OSAxMC4xNUwxMy4xNSA4LjI4OTk4QzEzLjE4IDguMTI5OTggMTMuMzIgNy45OTk5OCAxMy41IDcuOTk5OThIMTYuM0MxNi40NyA3Ljk5OTk4IDE2LjYyIDguMTI5OTggMTYuNjQgOC4yODk5OEwxNi45MSAxMC4xNUMxNy4zMyAxMC4zMiAxNy43MyAxMC41NiAxOC4wOSAxMC44NEwxOS44MyAxMC4xM0MyMCAxMC4wNyAyMC4xNyAxMC4xMyAyMC4yNiAxMC4yOUwyMS42NiAxMi43MUMyMS43NSAxMi44NiAyMS43MSAxMy4wNSAyMS41OCAxMy4xNkwyMC4xIDE0LjMxTDIwLjE1IDE1TDIwLjEgMTUuNjhaIi8+CiAgICA8cGF0aCBkPSJNNy4zMjk2NiA3LjQ0NDU0QzguMDgzMSA3LjAwOTU0IDguMzM5MzIgNi4wNTMzMiA3LjkwNDMyIDUuMjk5ODhDNy40NjkzMiA0LjU0NjQzIDYuNTA4MSA0LjI4MTU2IDUuNzU0NjYgNC43MTY1NkM1LjM5MTc2IDQuOTI2MDggNS4xMjY5NSA1LjI3MTE4IDUuMDE4NDkgNS42NzU5NEM0LjkxMDA0IDYuMDgwNzEgNC45NjY4MiA2LjUxMTk4IDUuMTc2MzQgNi44NzQ4OEM1LjYxMTM0IDcuNjI4MzIgNi41NzYyMiA3Ljg3OTU0IDcuMzI5NjYgNy40NDQ1NFpNOS42NTcxOCA0Ljc5NTkzTDEwLjg2NzIgNC45NTE3OUMxMC45NjI4IDQuOTc3NDEgMTEuMDQwMiA1LjA3MTMzIDExLjAzODIgNS4xODc5M0wxMS4wMzg4IDYuOTg4OTNDMTEuMDQ1NSA3LjEwMDU0IDEwLjk2MTYgNy4xOTUxOCAxMC44NTUgNy4yMTA1NEw5LjY2MDAxIDcuMzgwODNMOS4yMzkxNSA4LjEzMTg4TDkuNjY5NjEgOS4yNTc0NUM5LjcwNzI5IDkuMzYyNzEgOS42NjkzNCA5LjQ3Njk5IDkuNTc0MDggOS41MzE5OUw4LjAxNTIzIDEwLjQzMkM3LjkxMTMxIDEwLjQ5MiA3Ljc5MzM3IDEwLjQ2NzcgNy43MjEwNSAxMC4zODI0TDYuOTg3NDggOS40MzE4OEw2LjEwOTMxIDkuNDMwODNMNS4zNDcwNCAxMC4zOTA1QzUuMjg5MDkgMTAuNDcwMiA1LjE3MzgzIDEwLjQ5MDUgNS4wNzE4NyAxMC40MzM5TDMuNTEyNDUgOS41MzI5M0MzLjQxMDQ5IDkuNDc2MzMgMy4zNzY0NyA5LjM1NzQxIDMuNDEwNzUgOS4yNTY3OUwzLjg2MzQ3IDguMTQwOTNMMy42MTc0OSA3Ljc3NDg4TDMuNDIzNDcgNy4zNzg4M0wyLjIzMDc1IDcuMjEyOTdDMi4xMjY0NyA3LjE5MjM1IDIuMDQwNDkgNy4xMDM0MiAyLjA0MjQ1IDYuOTg2ODJMMi4wNDE4NyA1LjE4NTgyQzIuMDQzODMgNS4wNjkyMiAyLjExOTA5IDQuOTc5NTggMi4yMTcwNCA0Ljk2OTIyTDMuNDIwNjUgNC43OTM5M0wzLjg2NzQ5IDQuMDI3ODhMMy40MTEwNSAyLjkxNzMxQzMuMzczMzcgMi44MTIwNCAzLjQxMTMxIDIuNjk3NzYgMy41MTUyMyAyLjYzNzc2TDUuMDc0MDggMS43Mzc3NkM1LjE2OTM0IDEuNjgyNzYgNS4yODcyOSAxLjcwNzA0IDUuMzU5NjEgMS43OTIzMUw2LjExOTE1IDIuNzI3ODhMNi45ODAwMSAyLjczODkzTDcuNzI0OTYgMS43ODkyMkM3Ljc5MTU2IDEuNzA0NTggNy45MTU0OCAxLjY3OTIyIDguMDA4NzkgMS43NDA4Mkw5LjU2ODIxIDIuNjQxODJDOS42NzAxNyAyLjY5ODQyIDkuNzEyODUgMi44MTIzNCA5LjY4NzIzIDIuOTA3OTdMOS4yMTcxOCA0LjAzMzgzTDkuNDYzMTYgNC4zOTk4OEw5LjY1NzE4IDQuNzk1OTNaIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-caret-down-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iOS45LDEzLjYgMy42LDcuNCA0LjQsNi42IDkuOSwxMi4yIDE1LjQsNi43IDE2LjEsNy40ICIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-caret-down-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNS45TDksOS43bDMuOC0zLjhsMS4yLDEuMmwtNC45LDVsLTQuOS01TDUuMiw1Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-caret-down: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNy41TDksMTEuMmwzLjgtMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-caret-left: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik0xMC44LDEyLjhMNy4xLDlsMy44LTMuOGwwLDcuNkgxMC44eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-caret-right: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik03LjIsNS4yTDEwLjksOWwtMy44LDMuOFY1LjJINy4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-caret-up-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iMTUuNCwxMy4zIDkuOSw3LjcgNC40LDEzLjIgMy42LDEyLjUgOS45LDYuMyAxNi4xLDEyLjYgIi8+Cgk8L2c+Cjwvc3ZnPgo=);
--jp-icon-caret-up: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik01LjIsMTAuNUw5LDYuOGwzLjgsMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-case-sensitive: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgogIDxnIGNsYXNzPSJqcC1pY29uLWFjY2VudDIiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTcuNiw4aDAuOWwzLjUsOGgtMS4xTDEwLDE0SDZsLTAuOSwySDRMNy42LDh6IE04LDkuMUw2LjQsMTNoMy4yTDgsOS4xeiIvPgogICAgPHBhdGggZD0iTTE2LjYsOS44Yy0wLjIsMC4xLTAuNCwwLjEtMC43LDAuMWMtMC4yLDAtMC40LTAuMS0wLjYtMC4yYy0wLjEtMC4xLTAuMi0wLjQtMC4yLTAuNyBjLTAuMywwLjMtMC42LDAuNS0wLjksMC43Yy0wLjMsMC4xLTAuNywwLjItMS4xLDAuMmMtMC4zLDAtMC41LDAtMC43LTAuMWMtMC4yLTAuMS0wLjQtMC4yLTAuNi0wLjNjLTAuMi0wLjEtMC4zLTAuMy0wLjQtMC41IGMtMC4xLTAuMi0wLjEtMC40LTAuMS0wLjdjMC0wLjMsMC4xLTAuNiwwLjItMC44YzAuMS0wLjIsMC4zLTAuNCwwLjQtMC41QzEyLDcsMTIuMiw2LjksMTIuNSw2LjhjMC4yLTAuMSwwLjUtMC4xLDAuNy0wLjIgYzAuMy0wLjEsMC41LTAuMSwwLjctMC4xYzAuMiwwLDAuNC0wLjEsMC42LTAuMWMwLjIsMCwwLjMtMC4xLDAuNC0wLjJjMC4xLTAuMSwwLjItMC4yLDAuMi0wLjRjMC0xLTEuMS0xLTEuMy0xIGMtMC40LDAtMS40LDAtMS40LDEuMmgtMC45YzAtMC40LDAuMS0wLjcsMC4yLTFjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjZjMC4yLTAuMiwwLjUtMC4zLDAuOC0wLjNDMTMuMyw0LDEzLjYsNCwxMy45LDQgYzAuMywwLDAuNSwwLDAuOCwwLjFjMC4zLDAsMC41LDAuMSwwLjcsMC4yYzAuMiwwLjEsMC40LDAuMywwLjUsMC41QzE2LDUsMTYsNS4yLDE2LDUuNnYyLjljMCwwLjIsMCwwLjQsMCwwLjUgYzAsMC4xLDAuMSwwLjIsMC4zLDAuMmMwLjEsMCwwLjIsMCwwLjMsMFY5Ljh6IE0xNS4yLDYuOWMtMS4yLDAuNi0zLjEsMC4yLTMuMSwxLjRjMCwxLjQsMy4xLDEsMy4xLTAuNVY2Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-check: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-circle-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-circle: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjgiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-clear: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8bWFzayBpZD0iZG9udXRIb2xlIj4KICAgIDxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiIC8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiBmaWxsPSJibGFjayIvPgogIDwvbWFzaz4KCiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxyZWN0IGhlaWdodD0iMTgiIHdpZHRoPSIyIiB4PSIxMSIgeT0iMyIgdHJhbnNmb3JtPSJyb3RhdGUoMzE1LCAxMiwgMTIpIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgbWFzaz0idXJsKCNkb251dEhvbGUpIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-close: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1ub25lIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIGpwLWljb24zLWhvdmVyIiBmaWxsPSJub25lIj4KICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjExIi8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIGpwLWljb24tYWNjZW50Mi1ob3ZlciIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiIvPgogIDwvZz4KCiAgPGcgY2xhc3M9ImpwLWljb24tbm9uZSBqcC1pY29uLWJ1c3kiIGZpbGw9Im5vbmUiPgogICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iNyIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-code-check: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICA8cGF0aCBkPSJNNi41OSwzLjQxTDIsOEw2LjU5LDEyLjZMOCwxMS4xOEw0LjgyLDhMOCw0LjgyTDYuNTksMy40MU0xMi40MSwzLjQxTDExLDQuODJMMTQuMTgsOEwxMSwxMS4xOEwxMi40MSwxMi42TDE3LDhMMTIuNDEsMy40MU0yMS41OSwxMS41OUwxMy41LDE5LjY4TDkuODMsMTZMOC40MiwxNy40MUwxMy41LDIyLjVMMjMsMTNMMjEuNTksMTEuNTlaIiAvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-code: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTExLjQgMTguNkw2LjggMTRMMTEuNCA5LjRMMTAgOEw0IDE0TDEwIDIwTDExLjQgMTguNlpNMTYuNiAxOC42TDIxLjIgMTRMMTYuNiA5LjRMMTggOEwyNCAxNEwxOCAyMEwxNi42IDE4LjZWMTguNloiLz4KCTwvZz4KPC9zdmc+Cg==);
--jp-icon-collapse-all: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTggMmMxIDAgMTEgMCAxMiAwczIgMSAyIDJjMCAxIDAgMTEgMCAxMnMwIDItMiAyQzIwIDE0IDIwIDQgMjAgNFMxMCA0IDYgNGMwLTIgMS0yIDItMnoiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTE4IDhjMC0xLTEtMi0yLTJTNSA2IDQgNnMtMiAxLTIgMmMwIDEgMCAxMSAwIDEyczEgMiAyIDJjMSAwIDExIDAgMTIgMHMyLTEgMi0yYzAtMSAwLTExIDAtMTJ6bS0yIDB2MTJINFY4eiIgLz4KICAgICAgICA8cGF0aCBkPSJNNiAxM3YyaDh2LTJ6IiAvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-console: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwMCAyMDAiPgogIDxnIGNsYXNzPSJqcC1jb25zb2xlLWljb24tYmFja2dyb3VuZC1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMjg4RDEiPgogICAgPHBhdGggZD0iTTIwIDE5LjhoMTYwdjE1OS45SDIweiIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtY29uc29sZS1pY29uLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIiBmaWxsPSIjZmZmIj4KICAgIDxwYXRoIGQ9Ik0xMDUgMTI3LjNoNDB2MTIuOGgtNDB6TTUxLjEgNzdMNzQgOTkuOWwtMjMuMyAyMy4zIDEwLjUgMTAuNSAyMy4zLTIzLjNMOTUgOTkuOSA4NC41IDg5LjQgNjEuNiA2Ni41eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-copy: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTExLjksMUgzLjJDMi40LDEsMS43LDEuNywxLjcsMi41djEwLjJoMS41VjIuNWg4LjdWMXogTTE0LjEsMy45aC04Yy0wLjgsMC0xLjUsMC43LTEuNSwxLjV2MTAuMmMwLDAuOCwwLjcsMS41LDEuNSwxLjVoOCBjMC44LDAsMS41LTAuNywxLjUtMS41VjUuNEMxNS41LDQuNiwxNC45LDMuOSwxNC4xLDMuOXogTTE0LjEsMTUuNWgtOFY1LjRoOFYxNS41eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-copyright: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCI+CiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0xMS44OCw5LjE0YzEuMjgsMC4wNiwxLjYxLDEuMTUsMS42MywxLjY2aDEuNzljLTAuMDgtMS45OC0xLjQ5LTMuMTktMy40NS0zLjE5QzkuNjQsNy42MSw4LDksOCwxMi4xNCBjMCwxLjk0LDAuOTMsNC4yNCwzLjg0LDQuMjRjMi4yMiwwLDMuNDEtMS42NSwzLjQ0LTIuOTVoLTEuNzljLTAuMDMsMC41OS0wLjQ1LDEuMzgtMS42MywxLjQ0QzEwLjU1LDE0LjgzLDEwLDEzLjgxLDEwLDEyLjE0IEMxMCw5LjI1LDExLjI4LDkuMTYsMTEuODgsOS4xNHogTTEyLDJDNi40OCwyLDIsNi40OCwyLDEyczQuNDgsMTAsMTAsMTBzMTAtNC40OCwxMC0xMFMxNy41MiwyLDEyLDJ6IE0xMiwyMGMtNC40MSwwLTgtMy41OS04LTggczMuNTktOCw4LThzOCwzLjU5LDgsOFMxNi40MSwyMCwxMiwyMHoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-cut: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkuNjQgNy42NGMuMjMtLjUuMzYtMS4wNS4zNi0xLjY0IDAtMi4yMS0xLjc5LTQtNC00UzIgMy43OSAyIDZzMS43OSA0IDQgNGMuNTkgMCAxLjE0LS4xMyAxLjY0LS4zNkwxMCAxMmwtMi4zNiAyLjM2QzcuMTQgMTQuMTMgNi41OSAxNCA2IDE0Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRjMC0uNTktLjEzLTEuMTQtLjM2LTEuNjRMMTIgMTRsNyA3aDN2LTFMOS42NCA3LjY0ek02IDhjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTAgMTJjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTYtNy41Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjUuNS4yMi41LjUtLjIyLjUtLjUuNXpNMTkgM2wtNiA2IDIgMiA3LTdWM3oiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-delete: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIiAvPgogICAgPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjI2MjYyIiBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIgLz4KPC9zdmc+Cg==);
--jp-icon-download: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-duplicate: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIuNzk5OTggMC44NzVIOC44OTU4MkM5LjIwMDYxIDAuODc1IDkuNDQ5OTggMS4xMzkxNCA5LjQ0OTk4IDEuNDYxOThDOS40NDk5OCAxLjc4NDgyIDkuMjAwNjEgMi4wNDg5NiA4Ljg5NTgyIDIuMDQ4OTZIMy4zNTQxNUMzLjA0OTM2IDIuMDQ4OTYgMi43OTk5OCAyLjMxMzEgMi43OTk5OCAyLjYzNTk0VjkuNjc5NjlDMi43OTk5OCAxMC4wMDI1IDIuNTUwNjEgMTAuMjY2NyAyLjI0NTgyIDEwLjI2NjdDMS45NDEwMyAxMC4yNjY3IDEuNjkxNjUgMTAuMDAyNSAxLjY5MTY1IDkuNjc5NjlWMi4wNDg5NkMxLjY5MTY1IDEuNDAzMjggMi4xOTA0IDAuODc1IDIuNzk5OTggMC44NzVaTTUuMzY2NjUgMTEuOVY0LjU1SDExLjA4MzNWMTEuOUg1LjM2NjY1Wk00LjE0MTY1IDQuMTQxNjdDNC4xNDE2NSAzLjY5MDYzIDQuNTA3MjggMy4zMjUgNC45NTgzMiAzLjMyNUgxMS40OTE3QzExLjk0MjcgMy4zMjUgMTIuMzA4MyAzLjY5MDYzIDEyLjMwODMgNC4xNDE2N1YxMi4zMDgzQzEyLjMwODMgMTIuNzU5NCAxMS45NDI3IDEzLjEyNSAxMS40OTE3IDEzLjEyNUg0Ljk1ODMyQzQuNTA3MjggMTMuMTI1IDQuMTQxNjUgMTIuNzU5NCA0LjE0MTY1IDEyLjMwODNWNC4xNDE2N1oiIGZpbGw9IiM2MTYxNjEiLz4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNOS40MzU3NCA4LjI2NTA3SDguMzY0MzFWOS4zMzY1QzguMzY0MzEgOS40NTQzNSA4LjI2Nzg4IDkuNTUwNzggOC4xNTAwMiA5LjU1MDc4QzguMDMyMTcgOS41NTA3OCA3LjkzNTc0IDkuNDU0MzUgNy45MzU3NCA5LjMzNjVWOC4yNjUwN0g2Ljg2NDMxQzYuNzQ2NDUgOC4yNjUwNyA2LjY1MDAyIDguMTY4NjQgNi42NTAwMiA4LjA1MDc4QzYuNjUwMDIgNy45MzI5MiA2Ljc0NjQ1IDcuODM2NSA2Ljg2NDMxIDcuODM2NUg3LjkzNTc0VjYuNzY1MDdDNy45MzU3NCA2LjY0NzIxIDguMDMyMTcgNi41NTA3OCA4LjE1MDAyIDYuNTUwNzhDOC4yNjc4OCA2LjU1MDc4IDguMzY0MzEgNi42NDcyMSA4LjM2NDMxIDYuNzY1MDdWNy44MzY1SDkuNDM1NzRDOS41NTM2IDcuODM2NSA5LjY1MDAyIDcuOTMyOTIgOS42NTAwMiA4LjA1MDc4QzkuNjUwMDIgOC4xNjg2NCA5LjU1MzYgOC4yNjUwNyA5LjQzNTc0IDguMjY1MDdaIiBmaWxsPSIjNjE2MTYxIiBzdHJva2U9IiM2MTYxNjEiIHN0cm9rZS13aWR0aD0iMC41Ii8+Cjwvc3ZnPgo=);
--jp-icon-edit: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGMuMzktLjM5LjM5LTEuMDIgMC0xLjQxbC0yLjM0LTIuMzRjLS4zOS0uMzktMS4wMi0uMzktMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3oiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-ellipses: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjEyIiByPSIyIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-error: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIyIi8+PHBhdGggZD0iTTEwIDNoNHYxMmgtNHoiLz48L2c+CjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiLz4KPC9zdmc+Cg==);
--jp-icon-expand-all: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTggMmMxIDAgMTEgMCAxMiAwczIgMSAyIDJjMCAxIDAgMTEgMCAxMnMwIDItMiAyQzIwIDE0IDIwIDQgMjAgNFMxMCA0IDYgNGMwLTIgMS0yIDItMnoiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTE4IDhjMC0xLTEtMi0yLTJTNSA2IDQgNnMtMiAxLTIgMmMwIDEgMCAxMSAwIDEyczEgMiAyIDJjMSAwIDExIDAgMTIgMHMyLTEgMi0yYzAtMSAwLTExIDAtMTJ6bS0yIDB2MTJINFY4eiIgLz4KICAgICAgICA8cGF0aCBkPSJNMTEgMTBIOXYzSDZ2MmgzdjNoMnYtM2gzdi0yaC0zeiIgLz4KICAgIDwvZz4KPC9zdmc+Cg==);
--jp-icon-extension: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwLjUgMTFIMTlWN2MwLTEuMS0uOS0yLTItMmgtNFYzLjVDMTMgMi4xMiAxMS44OCAxIDEwLjUgMVM4IDIuMTIgOCAzLjVWNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjMuOEgzLjVjMS40OSAwIDIuNyAxLjIxIDIuNyAyLjdzLTEuMjEgMi43LTIuNyAyLjdIMlYyMGMwIDEuMS45IDIgMiAyaDMuOHYtMS41YzAtMS40OSAxLjIxLTIuNyAyLjctMi43IDEuNDkgMCAyLjcgMS4yMSAyLjcgMi43VjIySDE3YzEuMSAwIDItLjkgMi0ydi00aDEuNWMxLjM4IDAgMi41LTEuMTIgMi41LTIuNVMyMS44OCAxMSAyMC41IDExeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-fast-forward: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTQgMThsOC41LTZMNCA2djEyem05LTEydjEybDguNS02TDEzIDZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-file-upload: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkgMTZoNnYtNmg0bC03LTctNyA3aDR6bS00IDJoMTR2Mkg1eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-file: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuMyA4LjJsLTUuNS01LjVjLS4zLS4zLS43LS41LTEuMi0uNUgzLjljLS44LjEtMS42LjktMS42IDEuOHYxNC4xYzAgLjkuNyAxLjYgMS42IDEuNmgxNC4yYy45IDAgMS42LS43IDEuNi0xLjZWOS40Yy4xLS41LS4xLS45LS40LTEuMnptLTUuOC0zLjNsMy40IDMuNmgtMy40VjQuOXptMy45IDEyLjdINC43Yy0uMSAwLS4yIDAtLjItLjJWNC43YzAtLjIuMS0uMy4yLS4zaDcuMnY0LjRzMCAuOC4zIDEuMWMuMy4zIDEuMS4zIDEuMS4zaDQuM3Y3LjJzLS4xLjItLjIuMnoiLz4KPC9zdmc+Cg==);
--jp-icon-filter-dot: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTE0LDEyVjE5Ljg4QzE0LjA0LDIwLjE4IDEzLjk0LDIwLjUgMTMuNzEsMjAuNzFDMTMuMzIsMjEuMSAxMi42OSwyMS4xIDEyLjMsMjAuNzFMMTAuMjksMTguN0MxMC4wNiwxOC40NyA5Ljk2LDE4LjE2IDEwLDE3Ljg3VjEySDkuOTdMNC4yMSw0LjYyQzMuODcsNC4xOSAzLjk1LDMuNTYgNC4zOCwzLjIyQzQuNTcsMy4wOCA0Ljc4LDMgNSwzVjNIMTlWM0MxOS4yMiwzIDE5LjQzLDMuMDggMTkuNjIsMy4yMkMyMC4wNSwzLjU2IDIwLjEzLDQuMTkgMTkuNzksNC42MkwxNC4wMywxMkgxNFoiIC8+CiAgPC9nPgogIDxnIGNsYXNzPSJqcC1pY29uLWRvdCIgZmlsbD0iI0ZGRiI+CiAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3IiByPSIzIj48L2NpcmNsZT4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-filter-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-filter: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTE0LDEyVjE5Ljg4QzE0LjA0LDIwLjE4IDEzLjk0LDIwLjUgMTMuNzEsMjAuNzFDMTMuMzIsMjEuMSAxMi42OSwyMS4xIDEyLjMsMjAuNzFMMTAuMjksMTguN0MxMC4wNiwxOC40NyA5Ljk2LDE4LjE2IDEwLDE3Ljg3VjEySDkuOTdMNC4yMSw0LjYyQzMuODcsNC4xOSAzLjk1LDMuNTYgNC4zOCwzLjIyQzQuNTcsMy4wOCA0Ljc4LDMgNSwzVjNIMTlWM0MxOS4yMiwzIDE5LjQzLDMuMDggMTkuNjIsMy4yMkMyMC4wNSwzLjU2IDIwLjEzLDQuMTkgMTkuNzksNC42MkwxNC4wMywxMkgxNFoiIC8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-folder-favorite: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+CiAgPHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggY2xhc3M9ImpwLWljb24zIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzYxNjE2MSIgZD0iTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS0yLjA2IDExTDE1IDE1LjI4IDEyLjA2IDE3bC43OC0zLjMzLTIuNTktMi4yNCAzLjQxLS4yOUwxNSA4bDEuMzQgMy4xNCAzLjQxLjI5LTIuNTkgMi4yNC43OCAzLjMzeiIvPgo8L3N2Zz4K);
--jp-icon-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yaC04bC0yLTJ6Ii8+Cjwvc3ZnPgo=);
--jp-icon-home: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+CiAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGNsYXNzPSJqcC1pY29uMyBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xMCAyMHYtNmg0djZoNXYtOGgzTDEyIDMgMiAxMmgzdjh6Ii8+Cjwvc3ZnPgo=);
--jp-icon-html5: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxwYXRoIGNsYXNzPSJqcC1pY29uMCBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMDAiIGQ9Ik0xMDguNCAwaDIzdjIyLjhoMjEuMlYwaDIzdjY5aC0yM1Y0NmgtMjF2MjNoLTIzLjJNMjA2IDIzaC0yMC4zVjBoNjMuN3YyM0gyMjl2NDZoLTIzbTUzLjUtNjloMjQuMWwxNC44IDI0LjNMMzEzLjIgMGgyNC4xdjY5aC0yM1YzNC44bC0xNi4xIDI0LjgtMTYuMS0yNC44VjY5aC0yMi42bTg5LjItNjloMjN2NDYuMmgzMi42VjY5aC01NS42Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI2U0NGQyNiIgZD0iTTEwNy42IDQ3MWwtMzMtMzcwLjRoMzYyLjhsLTMzIDM3MC4yTDI1NS43IDUxMiIvPgogIDxwYXRoIGNsYXNzPSJqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNmMTY1MjkiIGQ9Ik0yNTYgNDgwLjVWMTMxaDE0OC4zTDM3NiA0NDciLz4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNlYmViZWIiIGQ9Ik0xNDIgMTc2LjNoMTE0djQ1LjRoLTY0LjJsNC4yIDQ2LjVoNjB2NDUuM0gxNTQuNG0yIDIyLjhIMjAybDMuMiAzNi4zIDUwLjggMTMuNnY0Ny40bC05My4yLTI2Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIiBmaWxsPSIjZmZmIiBkPSJNMzY5LjYgMTc2LjNIMjU1Ljh2NDUuNGgxMDkuNm0tNC4xIDQ2LjVIMjU1Ljh2NDUuNGg1NmwtNS4zIDU5LTUwLjcgMTMuNnY0Ny4ybDkzLTI1LjgiLz4KPC9zdmc+Cg==);
--jp-icon-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1icmFuZDQganAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNGRkYiIGQ9Ik0yLjIgMi4yaDE3LjV2MTcuNUgyLjJ6Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzNGNTFCNSIgZD0iTTIuMiAyLjJ2MTcuNWgxNy41bC4xLTE3LjVIMi4yem0xMi4xIDIuMmMxLjIgMCAyLjIgMSAyLjIgMi4ycy0xIDIuMi0yLjIgMi4yLTIuMi0xLTIuMi0yLjIgMS0yLjIgMi4yLTIuMnpNNC40IDE3LjZsMy4zLTguOCAzLjMgNi42IDIuMi0zLjIgNC40IDUuNEg0LjR6Ii8+Cjwvc3ZnPgo=);
--jp-icon-info: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUwLjk3OCA1MC45NzgiPgoJPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KCQk8cGF0aCBkPSJNNDMuNTIsNy40NThDMzguNzExLDIuNjQ4LDMyLjMwNywwLDI1LjQ4OSwwQzE4LjY3LDAsMTIuMjY2LDIuNjQ4LDcuNDU4LDcuNDU4CgkJCWMtOS45NDMsOS45NDEtOS45NDMsMjYuMTE5LDAsMzYuMDYyYzQuODA5LDQuODA5LDExLjIxMiw3LjQ1NiwxOC4wMzEsNy40NThjMCwwLDAuMDAxLDAsMC4wMDIsMAoJCQljNi44MTYsMCwxMy4yMjEtMi42NDgsMTguMDI5LTcuNDU4YzQuODA5LTQuODA5LDcuNDU3LTExLjIxMiw3LjQ1Ny0xOC4wM0M1MC45NzcsMTguNjcsNDguMzI4LDEyLjI2Niw0My41Miw3LjQ1OHoKCQkJIE00Mi4xMDYsNDIuMTA1Yy00LjQzMiw0LjQzMS0xMC4zMzIsNi44NzItMTYuNjE1LDYuODcyaC0wLjAwMmMtNi4yODUtMC4wMDEtMTIuMTg3LTIuNDQxLTE2LjYxNy02Ljg3MgoJCQljLTkuMTYyLTkuMTYzLTkuMTYyLTI0LjA3MSwwLTMzLjIzM0MxMy4zMDMsNC40NCwxOS4yMDQsMiwyNS40ODksMmM2LjI4NCwwLDEyLjE4NiwyLjQ0LDE2LjYxNyw2Ljg3MgoJCQljNC40MzEsNC40MzEsNi44NzEsMTAuMzMyLDYuODcxLDE2LjYxN0M0OC45NzcsMzEuNzcyLDQ2LjUzNiwzNy42NzUsNDIuMTA2LDQyLjEwNXoiLz4KCQk8cGF0aCBkPSJNMjMuNTc4LDMyLjIxOGMtMC4wMjMtMS43MzQsMC4xNDMtMy4wNTksMC40OTYtMy45NzJjMC4zNTMtMC45MTMsMS4xMS0xLjk5NywyLjI3Mi0zLjI1MwoJCQljMC40NjgtMC41MzYsMC45MjMtMS4wNjIsMS4zNjctMS41NzVjMC42MjYtMC43NTMsMS4xMDQtMS40NzgsMS40MzYtMi4xNzVjMC4zMzEtMC43MDcsMC40OTUtMS41NDEsMC40OTUtMi41CgkJCWMwLTEuMDk2LTAuMjYtMi4wODgtMC43NzktMi45NzljLTAuNTY1LTAuODc5LTEuNTAxLTEuMzM2LTIuODA2LTEuMzY5Yy0xLjgwMiwwLjA1Ny0yLjk4NSwwLjY2Ny0zLjU1LDEuODMyCgkJCWMtMC4zMDEsMC41MzUtMC41MDMsMS4xNDEtMC42MDcsMS44MTRjLTAuMTM5LDAuNzA3LTAuMjA3LDEuNDMyLTAuMjA3LDIuMTc0aC0yLjkzN2MtMC4wOTEtMi4yMDgsMC40MDctNC4xMTQsMS40OTMtNS43MTkKCQkJYzEuMDYyLTEuNjQsMi44NTUtMi40ODEsNS4zNzgtMi41MjdjMi4xNiwwLjAyMywzLjg3NCwwLjYwOCw1LjE0MSwxLjc1OGMxLjI3OCwxLjE2LDEuOTI5LDIuNzY0LDEuOTUsNC44MTEKCQkJYzAsMS4xNDItMC4xMzcsMi4xMTEtMC40MSwyLjkxMWMtMC4zMDksMC44NDUtMC43MzEsMS41OTMtMS4yNjgsMi4yNDNjLTAuNDkyLDAuNjUtMS4wNjgsMS4zMTgtMS43MywyLjAwMgoJCQljLTAuNjUsMC42OTctMS4zMTMsMS40NzktMS45ODcsMi4zNDZjLTAuMjM5LDAuMzc3LTAuNDI5LDAuNzc3LTAuNTY1LDEuMTk5Yy0wLjE2LDAuOTU5LTAuMjE3LDEuOTUxLTAuMTcxLDIuOTc5CgkJCUMyNi41ODksMzIuMjE4LDIzLjU3OCwzMi4yMTgsMjMuNTc4LDMyLjIxOHogTTIzLjU3OCwzOC4yMnYtMy40ODRoMy4wNzZ2My40ODRIMjMuNTc4eiIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-inspector: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaW5zcGVjdG9yLWljb24tY29sb3IganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNSAxNEg0di00aDExdjR6bTAtNUg0VjloMTF2NHptNSA1aC00VjloNHY5eiIvPgo8L3N2Zz4K);
--jp-icon-json: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtanNvbi1pY29uLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI0Y5QTgyNSI+CiAgICA8cGF0aCBkPSJNMjAuMiAxMS44Yy0xLjYgMC0xLjcuNS0xLjcgMSAwIC40LjEuOS4xIDEuMy4xLjUuMS45LjEgMS4zIDAgMS43LTEuNCAyLjMtMy41IDIuM2gtLjl2LTEuOWguNWMxLjEgMCAxLjQgMCAxLjQtLjggMC0uMyAwLS42LS4xLTEgMC0uNC0uMS0uOC0uMS0xLjIgMC0xLjMgMC0xLjggMS4zLTItMS4zLS4yLTEuMy0uNy0xLjMtMiAwLS40LjEtLjguMS0xLjIuMS0uNC4xLS43LjEtMSAwLS44LS40LS43LTEuNC0uOGgtLjVWNC4xaC45YzIuMiAwIDMuNS43IDMuNSAyLjMgMCAuNC0uMS45LS4xIDEuMy0uMS41LS4xLjktLjEgMS4zIDAgLjUuMiAxIDEuNyAxdjEuOHpNMS44IDEwLjFjMS42IDAgMS43LS41IDEuNy0xIDAtLjQtLjEtLjktLjEtMS4zLS4xLS41LS4xLS45LS4xLTEuMyAwLTEuNiAxLjQtMi4zIDMuNS0yLjNoLjl2MS45aC0uNWMtMSAwLTEuNCAwLTEuNC44IDAgLjMgMCAuNi4xIDEgMCAuMi4xLjYuMSAxIDAgMS4zIDAgMS44LTEuMyAyQzYgMTEuMiA2IDExLjcgNiAxM2MwIC40LS4xLjgtLjEgMS4yLS4xLjMtLjEuNy0uMSAxIDAgLjguMy44IDEuNC44aC41djEuOWgtLjljLTIuMSAwLTMuNS0uNi0zLjUtMi4zIDAtLjQuMS0uOS4xLTEuMy4xLS41LjEtLjkuMS0xLjMgMC0uNS0uMi0xLTEuNy0xdi0xLjl6Ii8+CiAgICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjEzLjgiIHI9IjIuMSIvPgogICAgPGNpcmNsZSBjeD0iMTEiIGN5PSI4LjIiIHI9IjIuMSIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-julia: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDMyNSAzMDAiPgogIDxnIGNsYXNzPSJqcC1icmFuZDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjY2IzYzMzIj4KICAgIDxwYXRoIGQ9Ik0gMTUwLjg5ODQzOCAyMjUgQyAxNTAuODk4NDM4IDI2Ni40MjE4NzUgMTE3LjMyMDMxMiAzMDAgNzUuODk4NDM4IDMwMCBDIDM0LjQ3NjU2MiAzMDAgMC44OTg0MzggMjY2LjQyMTg3NSAwLjg5ODQzOCAyMjUgQyAwLjg5ODQzOCAxODMuNTc4MTI1IDM0LjQ3NjU2MiAxNTAgNzUuODk4NDM4IDE1MCBDIDExNy4zMjAzMTIgMTUwIDE1MC44OTg0MzggMTgzLjU3ODEyNSAxNTAuODk4NDM4IDIyNSIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzM4OTgyNiI+CiAgICA8cGF0aCBkPSJNIDIzNy41IDc1IEMgMjM3LjUgMTE2LjQyMTg3NSAyMDMuOTIxODc1IDE1MCAxNjIuNSAxNTAgQyAxMjEuMDc4MTI1IDE1MCA4Ny41IDExNi40MjE4NzUgODcuNSA3NSBDIDg3LjUgMzMuNTc4MTI1IDEyMS4wNzgxMjUgMCAxNjIuNSAwIEMgMjAzLjkyMTg3NSAwIDIzNy41IDMzLjU3ODEyNSAyMzcuNSA3NSIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzk1NThiMiI+CiAgICA8cGF0aCBkPSJNIDMyNC4xMDE1NjIgMjI1IEMgMzI0LjEwMTU2MiAyNjYuNDIxODc1IDI5MC41MjM0MzggMzAwIDI0OS4xMDE1NjIgMzAwIEMgMjA3LjY3OTY4OCAzMDAgMTc0LjEwMTU2MiAyNjYuNDIxODc1IDE3NC4xMDE1NjIgMjI1IEMgMTc0LjEwMTU2MiAxODMuNTc4MTI1IDIwNy42Nzk2ODggMTUwIDI0OS4xMDE1NjIgMTUwIEMgMjkwLjUyMzQzOCAxNTAgMzI0LjEwMTU2MiAxODMuNTc4MTI1IDMyNC4xMDE1NjIgMjI1Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-jupyter-favicon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUyIiBoZWlnaHQ9IjE2NSIgdmlld0JveD0iMCAwIDE1MiAxNjUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgPGcgY2xhc3M9ImpwLWp1cHl0ZXItaWNvbi1jb2xvciIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA3ODk0NywgMTEwLjU4MjkyNykiIGQ9Ik03NS45NDIyODQyLDI5LjU4MDQ1NjEgQzQzLjMwMjM5NDcsMjkuNTgwNDU2MSAxNC43OTY3ODMyLDE3LjY1MzQ2MzQgMCwwIEM1LjUxMDgzMjExLDE1Ljg0MDY4MjkgMTUuNzgxNTM4OSwyOS41NjY3NzMyIDI5LjM5MDQ5NDcsMzkuMjc4NDE3MSBDNDIuOTk5Nyw0OC45ODk4NTM3IDU5LjI3MzcsNTQuMjA2NzgwNSA3NS45NjA1Nzg5LDU0LjIwNjc4MDUgQzkyLjY0NzQ1NzksNTQuMjA2NzgwNSAxMDguOTIxNDU4LDQ4Ljk4OTg1MzcgMTIyLjUzMDY2MywzOS4yNzg0MTcxIEMxMzYuMTM5NDUzLDI5LjU2Njc3MzIgMTQ2LjQxMDI4NCwxNS44NDA2ODI5IDE1MS45MjExNTgsMCBDMTM3LjA4Nzg2OCwxNy42NTM0NjM0IDEwOC41ODI1ODksMjkuNTgwNDU2MSA3NS45NDIyODQyLDI5LjU4MDQ1NjEgTDc1Ljk0MjI4NDIsMjkuNTgwNDU2MSBaIiAvPgogICAgPHBhdGggdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMzczNjgsIDAuNzA0ODc4KSIgZD0iTTc1Ljk3ODQ1NzksMjQuNjI2NDA3MyBDMTA4LjYxODc2MywyNC42MjY0MDczIDEzNy4xMjQ0NTgsMzYuNTUzNDQxNSAxNTEuOTIxMTU4LDU0LjIwNjc4MDUgQzE0Ni40MTAyODQsMzguMzY2MjIyIDEzNi4xMzk0NTMsMjQuNjQwMTMxNyAxMjIuNTMwNjYzLDE0LjkyODQ4NzggQzEwOC45MjE0NTgsNS4yMTY4NDM5IDkyLjY0NzQ1NzksMCA3NS45NjA1Nzg5LDAgQzU5LjI3MzcsMCA0Mi45OTk3LDUuMjE2ODQzOSAyOS4zOTA0OTQ3LDE0LjkyODQ4NzggQzE1Ljc4MTUzODksMjQuNjQwMTMxNyA1LjUxMDgzMjExLDM4LjM2NjIyMiAwLDU0LjIwNjc4MDUgQzE0LjgzMzA4MTYsMzYuNTg5OTI5MyA0My4zMzg1Njg0LDI0LjYyNjQwNzMgNzUuOTc4NDU3OSwyNC42MjY0MDczIEw3NS45Nzg0NTc5LDI0LjYyNjQwNzMgWiIgLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-jupyter: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkiIGhlaWdodD0iNTEiIHZpZXdCb3g9IjAgMCAzOSA1MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYzOCAtMjI4MSkiPgogICAgIDxnIGNsYXNzPSJqcC1qdXB5dGVyLWljb24tY29sb3IiIGZpbGw9IiNGMzc3MjYiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5Ljc0IDIzMTEuOTgpIiBkPSJNIDE4LjI2NDYgNy4xMzQxMUMgMTAuNDE0NSA3LjEzNDExIDMuNTU4NzIgNC4yNTc2IDAgMEMgMS4zMjUzOSAzLjgyMDQgMy43OTU1NiA3LjEzMDgxIDcuMDY4NiA5LjQ3MzAzQyAxMC4zNDE3IDExLjgxNTIgMTQuMjU1NyAxMy4wNzM0IDE4LjI2OSAxMy4wNzM0QyAyMi4yODIzIDEzLjA3MzQgMjYuMTk2MyAxMS44MTUyIDI5LjQ2OTQgOS40NzMwM0MgMzIuNzQyNCA3LjEzMDgxIDM1LjIxMjYgMy44MjA0IDM2LjUzOCAwQyAzMi45NzA1IDQuMjU3NiAyNi4xMTQ4IDcuMTM0MTEgMTguMjY0NiA3LjEzNDExWiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5LjczIDIyODUuNDgpIiBkPSJNIDE4LjI3MzMgNS45MzkzMUMgMjYuMTIzNSA1LjkzOTMxIDMyLjk3OTMgOC44MTU4MyAzNi41MzggMTMuMDczNEMgMzUuMjEyNiA5LjI1MzAzIDMyLjc0MjQgNS45NDI2MiAyOS40Njk0IDMuNjAwNEMgMjYuMTk2MyAxLjI1ODE4IDIyLjI4MjMgMCAxOC4yNjkgMEMgMTQuMjU1NyAwIDEwLjM0MTcgMS4yNTgxOCA3LjA2ODYgMy42MDA0QyAzLjc5NTU2IDUuOTQyNjIgMS4zMjUzOSA5LjI1MzAzIDAgMTMuMDczNEMgMy41Njc0NSA4LjgyNDYzIDEwLjQyMzIgNS45MzkzMSAxOC4yNzMzIDUuOTM5MzFaIi8+CiAgICA8L2c+CiAgICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjY5LjMgMjI4MS4zMSkiIGQ9Ik0gNS44OTM1MyAyLjg0NEMgNS45MTg4OSAzLjQzMTY1IDUuNzcwODUgNC4wMTM2NyA1LjQ2ODE1IDQuNTE2NDVDIDUuMTY1NDUgNS4wMTkyMiA0LjcyMTY4IDUuNDIwMTUgNC4xOTI5OSA1LjY2ODUxQyAzLjY2NDMgNS45MTY4OCAzLjA3NDQ0IDYuMDAxNTEgMi40OTgwNSA1LjkxMTcxQyAxLjkyMTY2IDUuODIxOSAxLjM4NDYzIDUuNTYxNyAwLjk1NDg5OCA1LjE2NDAxQyAwLjUyNTE3IDQuNzY2MzMgMC4yMjIwNTYgNC4yNDkwMyAwLjA4MzkwMzcgMy42Nzc1N0MgLTAuMDU0MjQ4MyAzLjEwNjExIC0wLjAyMTIzIDIuNTA2MTcgMC4xNzg3ODEgMS45NTM2NEMgMC4zNzg3OTMgMS40MDExIDAuNzM2ODA5IDAuOTIwODE3IDEuMjA3NTQgMC41NzM1MzhDIDEuNjc4MjYgMC4yMjYyNTkgMi4yNDA1NSAwLjAyNzU5MTkgMi44MjMyNiAwLjAwMjY3MjI5QyAzLjYwMzg5IC0wLjAzMDcxMTUgNC4zNjU3MyAwLjI0OTc4OSA0Ljk0MTQyIDAuNzgyNTUxQyA1LjUxNzExIDEuMzE1MzEgNS44NTk1NiAyLjA1Njc2IDUuODkzNTMgMi44NDRaIi8+CiAgICAgIDxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MzkuOCAyMzIzLjgxKSIgZD0iTSA3LjQyNzg5IDMuNTgzMzhDIDcuNDYwMDggNC4zMjQzIDcuMjczNTUgNS4wNTgxOSA2Ljg5MTkzIDUuNjkyMTNDIDYuNTEwMzEgNi4zMjYwNyA1Ljk1MDc1IDYuODMxNTYgNS4yODQxMSA3LjE0NDZDIDQuNjE3NDcgNy40NTc2MyAzLjg3MzcxIDcuNTY0MTQgMy4xNDcwMiA3LjQ1MDYzQyAyLjQyMDMyIDcuMzM3MTIgMS43NDMzNiA3LjAwODcgMS4yMDE4NCA2LjUwNjk1QyAwLjY2MDMyOCA2LjAwNTIgMC4yNzg2MSA1LjM1MjY4IDAuMTA1MDE3IDQuNjMyMDJDIC0wLjA2ODU3NTcgMy45MTEzNSAtMC4wMjYyMzYxIDMuMTU0OTQgMC4yMjY2NzUgMi40NTg1NkMgMC40Nzk1ODcgMS43NjIxNyAwLjkzMTY5NyAxLjE1NzEzIDEuNTI1NzYgMC43MjAwMzNDIDIuMTE5ODMgMC4yODI5MzUgMi44MjkxNCAwLjAzMzQzOTUgMy41NjM4OSAwLjAwMzEzMzQ0QyA0LjU0NjY3IC0wLjAzNzQwMzMgNS41MDUyOSAwLjMxNjcwNiA2LjIyOTYxIDAuOTg3ODM1QyA2Ljk1MzkzIDEuNjU4OTYgNy4zODQ4NCAyLjU5MjM1IDcuNDI3ODkgMy41ODMzOEwgNy40Mjc4OSAzLjU4MzM4WiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM4LjM2IDIyODYuMDYpIiBkPSJNIDIuMjc0NzEgNC4zOTYyOUMgMS44NDM2MyA0LjQxNTA4IDEuNDE2NzEgNC4zMDQ0NSAxLjA0Nzk5IDQuMDc4NDNDIDAuNjc5MjY4IDMuODUyNCAwLjM4NTMyOCAzLjUyMTE0IDAuMjAzMzcxIDMuMTI2NTZDIDAuMDIxNDEzNiAyLjczMTk4IC0wLjA0MDM3OTggMi4yOTE4MyAwLjAyNTgxMTYgMS44NjE4MUMgMC4wOTIwMDMxIDEuNDMxOCAwLjI4MzIwNCAxLjAzMTI2IDAuNTc1MjEzIDAuNzEwODgzQyAwLjg2NzIyMiAwLjM5MDUxIDEuMjQ2OTEgMC4xNjQ3MDggMS42NjYyMiAwLjA2MjA1OTJDIDIuMDg1NTMgLTAuMDQwNTg5NyAyLjUyNTYxIC0wLjAxNTQ3MTQgMi45MzA3NiAwLjEzNDIzNUMgMy4zMzU5MSAwLjI4Mzk0MSAzLjY4NzkyIDAuNTUxNTA1IDMuOTQyMjIgMC45MDMwNkMgNC4xOTY1MiAxLjI1NDYyIDQuMzQxNjkgMS42NzQzNiA0LjM1OTM1IDIuMTA5MTZDIDQuMzgyOTkgMi42OTEwNyA0LjE3Njc4IDMuMjU4NjkgMy43ODU5NyAzLjY4NzQ2QyAzLjM5NTE2IDQuMTE2MjQgMi44NTE2NiA0LjM3MTE2IDIuMjc0NzEgNC4zOTYyOUwgMi4yNzQ3MSA0LjM5NjI5WiIvPgogICAgPC9nPgogIDwvZz4+Cjwvc3ZnPgo=);
--jp-icon-jupyterlab-wordmark: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIHZpZXdCb3g9IjAgMCAxODYwLjggNDc1Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0RTRFNEUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ4MC4xMzY0MDEsIDY0LjI3MTQ5MykiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDU4Ljg3NTU2NikiPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA4NzYwMywgMC4xNDAyOTQpIj4KICAgICAgICA8cGF0aCBkPSJNLTQyNi45LDE2OS44YzAsNDguNy0zLjcsNjQuNy0xMy42LDc2LjRjLTEwLjgsMTAtMjUsMTUuNS0zOS43LDE1LjVsMy43LDI5IGMyMi44LDAuMyw0NC44LTcuOSw2MS45LTIzLjFjMTcuOC0xOC41LDI0LTQ0LjEsMjQtODMuM1YwSC00Mjd2MTcwLjFMLTQyNi45LDE2OS44TC00MjYuOSwxNjkuOHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTU1LjA0NTI5NiwgNTYuODM3MTA0KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuNTYyNDUzLCAxLjc5OTg0MikiPgogICAgICAgIDxwYXRoIGQ9Ik0tMzEyLDE0OGMwLDIxLDAsMzkuNSwxLjcsNTUuNGgtMzEuOGwtMi4xLTMzLjNoLTAuOGMtNi43LDExLjYtMTYuNCwyMS4zLTI4LDI3LjkgYy0xMS42LDYuNi0yNC44LDEwLTM4LjIsOS44Yy0zMS40LDAtNjktMTcuNy02OS04OVYwaDM2LjR2MTEyLjdjMCwzOC43LDExLjYsNjQuNyw0NC42LDY0LjdjMTAuMy0wLjIsMjAuNC0zLjUsMjguOS05LjQgYzguNS01LjksMTUuMS0xNC4zLDE4LjktMjMuOWMyLjItNi4xLDMuMy0xMi41LDMuMy0xOC45VjAuMmgzNi40VjE0OEgtMzEyTC0zMTIsMTQ4eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTAuMDEzMzIyLCA1My40Nzk2MzgpIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS43MDY0NTgsIDAuMjMxNDI1KSI+CiAgICAgICAgPHBhdGggZD0iTS00NzguNiw3MS40YzAtMjYtMC44LTQ3LTEuNy02Ni43aDMyLjdsMS43LDM0LjhoMC44YzcuMS0xMi41LDE3LjUtMjIuOCwzMC4xLTI5LjcgYzEyLjUtNywyNi43LTEwLjMsNDEtOS44YzQ4LjMsMCw4NC43LDQxLjcsODQuNywxMDMuM2MwLDczLjEtNDMuNywxMDkuMi05MSwxMDkuMmMtMTIuMSwwLjUtMjQuMi0yLjItMzUtNy44IGMtMTAuOC01LjYtMTkuOS0xMy45LTI2LjYtMjQuMmgtMC44VjI5MWgtMzZ2LTIyMEwtNDc4LjYsNzEuNEwtNDc4LjYsNzEuNHogTS00NDIuNiwxMjUuNmMwLjEsNS4xLDAuNiwxMC4xLDEuNywxNS4xIGMzLDEyLjMsOS45LDIzLjMsMTkuOCwzMS4xYzkuOSw3LjgsMjIuMSwxMi4xLDM0LjcsMTIuMWMzOC41LDAsNjAuNy0zMS45LDYwLjctNzguNWMwLTQwLjctMjEuMS03NS42LTU5LjUtNzUuNiBjLTEyLjksMC40LTI1LjMsNS4xLTM1LjMsMTMuNGMtOS45LDguMy0xNi45LDE5LjctMTkuNiwzMi40Yy0xLjUsNC45LTIuMywxMC0yLjUsMTUuMVYxMjUuNkwtNDQyLjYsMTI1LjZMLTQ0Mi42LDEyNS42eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MDYuNzQwNzI2LCA1Ni44MzcxMDQpIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC43NTEyMjYsIDEuOTg5Mjk5KSI+CiAgICAgICAgPHBhdGggZD0iTS00NDAuOCwwbDQzLjcsMTIwLjFjNC41LDEzLjQsOS41LDI5LjQsMTIuOCw0MS43aDAuOGMzLjctMTIuMiw3LjktMjcuNywxMi44LTQyLjQgbDM5LjctMTE5LjJoMzguNUwtMzQ2LjksMTQ1Yy0yNiw2OS43LTQzLjcsMTA1LjQtNjguNiwxMjcuMmMtMTIuNSwxMS43LTI3LjksMjAtNDQuNiwyMy45bC05LjEtMzEuMSBjMTEuNy0zLjksMjIuNS0xMC4xLDMxLjgtMTguMWMxMy4yLTExLjEsMjMuNy0yNS4yLDMwLjYtNDEuMmMxLjUtMi44LDIuNS01LjcsMi45LTguOGMtMC4zLTMuMy0xLjItNi42LTIuNS05LjdMLTQ4MC4yLDAuMSBoMzkuN0wtNDQwLjgsMEwtNDQwLjgsMHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODIyLjc0ODEwNCwgMC4wMDAwMDApIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS40NjQwNTAsIDAuMzc4OTE0KSI+CiAgICAgICAgPHBhdGggZD0iTS00MTMuNywwdjU4LjNoNTJ2MjguMmgtNTJWMTk2YzAsMjUsNywzOS41LDI3LjMsMzkuNWM3LjEsMC4xLDE0LjItMC43LDIxLjEtMi41IGwxLjcsMjcuN2MtMTAuMywzLjctMjEuMyw1LjQtMzIuMiw1Yy03LjMsMC40LTE0LjYtMC43LTIxLjMtMy40Yy02LjgtMi43LTEyLjktNi44LTE3LjktMTIuMWMtMTAuMy0xMC45LTE0LjEtMjktMTQuMS01Mi45IFY4Ni41aC0zMVY1OC4zaDMxVjkuNkwtNDEzLjcsMEwtNDEzLjcsMHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTc0LjQzMzI4NiwgNTMuNDc5NjM4KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuOTkwMDM0LCAwLjYxMDMzOSkiPgogICAgICAgIDxwYXRoIGQ9Ik0tNDQ1LjgsMTEzYzAuOCw1MCwzMi4yLDcwLjYsNjguNiw3MC42YzE5LDAuNiwzNy45LTMsNTUuMy0xMC41bDYuMiwyNi40IGMtMjAuOSw4LjktNDMuNSwxMy4xLTY2LjIsMTIuNmMtNjEuNSwwLTk4LjMtNDEuMi05OC4zLTEwMi41Qy00ODAuMiw0OC4yLTQ0NC43LDAtMzg2LjUsMGM2NS4yLDAsODIuNyw1OC4zLDgyLjcsOTUuNyBjLTAuMSw1LjgtMC41LDExLjUtMS4yLDE3LjJoLTE0MC42SC00NDUuOEwtNDQ1LjgsMTEzeiBNLTMzOS4yLDg2LjZjMC40LTIzLjUtOS41LTYwLjEtNTAuNC02MC4xIGMtMzYuOCwwLTUyLjgsMzQuNC01NS43LDYwLjFILTMzOS4yTC0zMzkuMiw4Ni42TC0zMzkuMiw4Ni42eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAxLjk2MTA1OCwgNTMuNDc5NjM4KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuMTc5NjQwLCAwLjcwNTA2OCkiPgogICAgICAgIDxwYXRoIGQ9Ik0tNDc4LjYsNjhjMC0yMy45LTAuNC00NC41LTEuNy02My40aDMxLjhsMS4yLDM5LjloMS43YzkuMS0yNy4zLDMxLTQ0LjUsNTUuMy00NC41IGMzLjUtMC4xLDcsMC40LDEwLjMsMS4ydjM0LjhjLTQuMS0wLjktOC4yLTEuMy0xMi40LTEuMmMtMjUuNiwwLTQzLjcsMTkuNy00OC43LDQ3LjRjLTEsNS43LTEuNiwxMS41LTEuNywxNy4ydjEwOC4zaC0zNlY2OCBMLTQ3OC42LDY4eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMCIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCBkPSJNMTM1Mi4zLDMyNi4yaDM3VjI4aC0zN1YzMjYuMnogTTE2MDQuOCwzMjYuMmMtMi41LTEzLjktMy40LTMxLjEtMy40LTQ4Ljd2LTc2IGMwLTQwLjctMTUuMS04My4xLTc3LjMtODMuMWMtMjUuNiwwLTUwLDcuMS02Ni44LDE4LjFsOC40LDI0LjRjMTQuMy05LjIsMzQtMTUuMSw1My0xNS4xYzQxLjYsMCw0Ni4yLDMwLjIsNDYuMiw0N3Y0LjIgYy03OC42LTAuNC0xMjIuMywyNi41LTEyMi4zLDc1LjZjMCwyOS40LDIxLDU4LjQsNjIuMiw1OC40YzI5LDAsNTAuOS0xNC4zLDYyLjItMzAuMmgxLjNsMi45LDI1LjZIMTYwNC44eiBNMTU2NS43LDI1Ny43IGMwLDMuOC0wLjgsOC0yLjEsMTEuOGMtNS45LDE3LjItMjIuNywzNC00OS4yLDM0Yy0xOC45LDAtMzQuOS0xMS4zLTM0LjktMzUuM2MwLTM5LjUsNDUuOC00Ni42LDg2LjItNDUuOFYyNTcuN3ogTTE2OTguNSwzMjYuMiBsMS43LTMzLjZoMS4zYzE1LjEsMjYuOSwzOC43LDM4LjIsNjguMSwzOC4yYzQ1LjQsMCw5MS4yLTM2LjEsOTEuMi0xMDguOGMwLjQtNjEuNy0zNS4zLTEwMy43LTg1LjctMTAzLjcgYy0zMi44LDAtNTYuMywxNC43LTY5LjMsMzcuNGgtMC44VjI4aC0zNi42djI0NS43YzAsMTguMS0wLjgsMzguNi0xLjcsNTIuNUgxNjk4LjV6IE0xNzA0LjgsMjA4LjJjMC01LjksMS4zLTEwLjksMi4xLTE1LjEgYzcuNi0yOC4xLDMxLjEtNDUuNCw1Ni4zLTQ1LjRjMzkuNSwwLDYwLjUsMzQuOSw2MC41LDc1LjZjMCw0Ni42LTIzLjEsNzguMS02MS44LDc4LjFjLTI2LjksMC00OC4zLTE3LjYtNTUuNS00My4zIGMtMC44LTQuMi0xLjctOC44LTEuNy0xMy40VjIwOC4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-kernel: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgZmlsbD0iIzYxNjE2MSIgZD0iTTE1IDlIOXY2aDZWOXptLTIgNGgtMnYtMmgydjJ6bTgtMlY5aC0yVjdjMC0xLjEtLjktMi0yLTJoLTJWM2gtMnYyaC0yVjNIOXYySDdjLTEuMSAwLTIgLjktMiAydjJIM3YyaDJ2MkgzdjJoMnYyYzAgMS4xLjkgMiAyIDJoMnYyaDJ2LTJoMnYyaDJ2LTJoMmMxLjEgMCAyLS45IDItMnYtMmgydi0yaC0ydi0yaDJ6bS00IDZIN1Y3aDEwdjEweiIvPgo8L3N2Zz4K);
--jp-icon-keyboard: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMTdjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tOSAzaDJ2MmgtMlY4em0wIDNoMnYyaC0ydi0yek04IDhoMnYySDhWOHptMCAzaDJ2Mkg4di0yem0tMSAySDV2LTJoMnYyem0wLTNINVY4aDJ2MnptOSA3SDh2LTJoOHYyem0wLTRoLTJ2LTJoMnYyem0wLTNoLTJWOGgydjJ6bTMgM2gtMnYtMmgydjJ6bTAtM2gtMlY4aDJ2MnoiLz4KPC9zdmc+Cg==);
--jp-icon-launch: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHdpZHRoPSIzMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0yNiwyOEg2YTIuMDAyNywyLjAwMjcsMCwwLDEtMi0yVjZBMi4wMDI3LDIuMDAyNywwLDAsMSw2LDRIMTZWNkg2VjI2SDI2VjE2aDJWMjZBMi4wMDI3LDIuMDAyNywwLDAsMSwyNiwyOFoiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMjAgMiAyMCA0IDI2LjU4NiA0IDE4IDEyLjU4NiAxOS40MTQgMTQgMjggNS40MTQgMjggMTIgMzAgMTIgMzAgMiAyMCAyIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-launcher: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkgMTlINVY1aDdWM0g1YTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiLz4KPC9zdmc+Cg==);
--jp-icon-line-form: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGZpbGw9IndoaXRlIiBkPSJNNS44OCA0LjEyTDEzLjc2IDEybC03Ljg4IDcuODhMOCAyMmwxMC0xMEw4IDJ6Ii8+Cjwvc3ZnPgo=);
--jp-icon-link: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xOSA1djE0SDVWNWgxNG0xLjEtMkgzLjljLS41IDAtLjkuNC0uOS45djE2LjJjMCAuNC40LjkuOS45aDE2LjJjLjQgMCAuOS0uNS45LS45VjMuOWMwLS41LS41LS45LS45LS45ek0xMSA3aDZ2MmgtNlY3em0wIDRoNnYyaC02di0yem0wIDRoNnYyaC02ek03IDdoMnYySDd6bTAgNGgydjJIN3ptMCA0aDJ2Mkg3eiIvPgo8L3N2Zz4K);
--jp-icon-markdown: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjN0IxRkEyIiBkPSJNNSAxNC45aDEybC02LjEgNnptOS40LTYuOGMwLTEuMy0uMS0yLjktLjEtNC41LS40IDEuNC0uOSAyLjktMS4zIDQuM2wtMS4zIDQuM2gtMkw4LjUgNy45Yy0uNC0xLjMtLjctMi45LTEtNC4zLS4xIDEuNi0uMSAzLjItLjIgNC42TDcgMTIuNEg0LjhsLjctMTFoMy4zTDEwIDVjLjQgMS4yLjcgMi43IDEgMy45LjMtMS4yLjctMi42IDEtMy45bDEuMi0zLjdoMy4zbC42IDExaC0yLjRsLS4zLTQuMnoiLz4KPC9zdmc+Cg==);
--jp-icon-move-down: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNMTIuNDcxIDcuNTI4OTlDMTIuNzYzMiA3LjIzNjg0IDEyLjc2MzIgNi43NjMxNiAxMi40NzEgNi40NzEwMVY2LjQ3MTAxQzEyLjE3OSA2LjE3OTA1IDExLjcwNTcgNi4xNzg4NCAxMS40MTM1IDYuNDcwNTRMNy43NSAxMC4xMjc1VjEuNzVDNy43NSAxLjMzNTc5IDcuNDE0MjEgMSA3IDFWMUM2LjU4NTc5IDEgNi4yNSAxLjMzNTc5IDYuMjUgMS43NVYxMC4xMjc1TDIuNTk3MjYgNi40NjgyMkMyLjMwMzM4IDYuMTczODEgMS44MjY0MSA2LjE3MzU5IDEuNTMyMjYgNi40Njc3NFY2LjQ2Nzc0QzEuMjM4MyA2Ljc2MTcgMS4yMzgzIDcuMjM4MyAxLjUzMjI2IDcuNTMyMjZMNi4yOTI4OSAxMi4yOTI5QzYuNjgzNDIgMTIuNjgzNCA3LjMxNjU4IDEyLjY4MzQgNy43MDcxMSAxMi4yOTI5TDEyLjQ3MSA3LjUyODk5WiIgZmlsbD0iIzYxNjE2MSIvPgo8L3N2Zz4K);
--jp-icon-move-up: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNMS41Mjg5OSA2LjQ3MTAxQzEuMjM2ODQgNi43NjMxNiAxLjIzNjg0IDcuMjM2ODQgMS41Mjg5OSA3LjUyODk5VjcuNTI4OTlDMS44MjA5NSA3LjgyMDk1IDIuMjk0MjYgNy44MjExNiAyLjU4NjQ5IDcuNTI5NDZMNi4yNSAzLjg3MjVWMTIuMjVDNi4yNSAxMi42NjQyIDYuNTg1NzkgMTMgNyAxM1YxM0M3LjQxNDIxIDEzIDcuNzUgMTIuNjY0MiA3Ljc1IDEyLjI1VjMuODcyNUwxMS40MDI3IDcuNTMxNzhDMTEuNjk2NiA3LjgyNjE5IDEyLjE3MzYgNy44MjY0MSAxMi40Njc3IDcuNTMyMjZWNy41MzIyNkMxMi43NjE3IDcuMjM4MyAxMi43NjE3IDYuNzYxNyAxMi40Njc3IDYuNDY3NzRMNy43MDcxMSAxLjcwNzExQzcuMzE2NTggMS4zMTY1OCA2LjY4MzQyIDEuMzE2NTggNi4yOTI4OSAxLjcwNzExTDEuNTI4OTkgNi40NzEwMVoiIGZpbGw9IiM2MTYxNjEiLz4KPC9zdmc+Cg==);
--jp-icon-new-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwIDZoLThsLTItMkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS0xIDhoLTN2M2gtMnYtM2gtM3YtMmgzVjloMnYzaDN2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-not-trusted: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI1IDI1Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgMykiIGQ9Ik0xLjg2MDk0IDExLjQ0MDlDMC44MjY0NDggOC43NzAyNyAwLjg2Mzc3OSA2LjA1NzY0IDEuMjQ5MDcgNC4xOTkzMkMyLjQ4MjA2IDMuOTMzNDcgNC4wODA2OCAzLjQwMzQ3IDUuNjAxMDIgMi44NDQ5QzcuMjM1NDkgMi4yNDQ0IDguODU2NjYgMS41ODE1IDkuOTg3NiAxLjA5NTM5QzExLjA1OTcgMS41ODM0MSAxMi42MDk0IDIuMjQ0NCAxNC4yMTggMi44NDMzOUMxNS43NTAzIDMuNDEzOTQgMTcuMzk5NSAzLjk1MjU4IDE4Ljc1MzkgNC4yMTM4NUMxOS4xMzY0IDYuMDcxNzcgMTkuMTcwOSA4Ljc3NzIyIDE4LjEzOSAxMS40NDA5QzE3LjAzMDMgMTQuMzAzMiAxNC42NjY4IDE3LjE4NDQgOS45OTk5OSAxOC45MzU0QzUuMzMzMTkgMTcuMTg0NCAyLjk2OTY4IDE0LjMwMzIgMS44NjA5NCAxMS40NDA5WiIvPgogICAgPHBhdGggY2xhc3M9ImpwLWljb24yIiBzdHJva2U9IiMzMzMzMzMiIHN0cm9rZS13aWR0aD0iMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS4zMTU5MiA5LjMyMDMxKSIgZD0iTTcuMzY4NDIgMEwwIDcuMzY0NzkiLz4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMzE1OTIgMTYuNjgzNikgc2NhbGUoMSAtMSkiIGQ9Ik03LjM2ODQyIDBMMCA3LjM2NDc5Ii8+Cjwvc3ZnPgo=);
--jp-icon-notebook: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtbm90ZWJvb2staWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNFRjZDMDAiPgogICAgPHBhdGggZD0iTTE4LjcgMy4zdjE1LjRIMy4zVjMuM2gxNS40bTEuNS0xLjVIMS44djE4LjNoMTguM2wuMS0xOC4zeiIvPgogICAgPHBhdGggZD0iTTE2LjUgMTYuNWwtNS40LTQuMy01LjYgNC4zdi0xMWgxMXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-numbering: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTQgMTlINlYxOS41SDVWMjAuNUg2VjIxSDRWMjJIN1YxOEg0VjE5Wk01IDEwSDZWNkg0VjdINVYxMFpNNCAxM0g1LjhMNCAxNS4xVjE2SDdWMTVINS4yTDcgMTIuOVYxMkg0VjEzWk05IDdWOUgyM1Y3SDlaTTkgMjFIMjNWMTlIOVYyMVpNOSAxNUgyM1YxM0g5VjE1WiIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-offline-bolt: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDIuMDJjLTUuNTEgMC05Ljk4IDQuNDctOS45OCA5Ljk4czQuNDcgOS45OCA5Ljk4IDkuOTggOS45OC00LjQ3IDkuOTgtOS45OFMxNy41MSAyLjAyIDEyIDIuMDJ6TTExLjQ4IDIwdi02LjI2SDhMMTMgNHY2LjI2aDMuMzVMMTEuNDggMjB6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-palette: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE4IDEzVjIwSDRWNkg5LjAyQzkuMDcgNS4yOSA5LjI0IDQuNjIgOS41IDRINEMyLjkgNCAyIDQuOSAyIDZWMjBDMiAyMS4xIDIuOSAyMiA0IDIySDE4QzE5LjEgMjIgMjAgMjEuMSAyMCAyMFYxNUwxOCAxM1pNMTkuMyA4Ljg5QzE5Ljc0IDguMTkgMjAgNy4zOCAyMCA2LjVDMjAgNC4wMSAxNy45OSAyIDE1LjUgMkMxMy4wMSAyIDExIDQuMDEgMTEgNi41QzExIDguOTkgMTMuMDEgMTEgMTUuNDkgMTFDMTYuMzcgMTEgMTcuMTkgMTAuNzQgMTcuODggMTAuM0wyMSAxMy40MkwyMi40MiAxMkwxOS4zIDguODlaTTE1LjUgOUMxNC4xMiA5IDEzIDcuODggMTMgNi41QzEzIDUuMTIgMTQuMTIgNCAxNS41IDRDMTYuODggNCAxOCA1LjEyIDE4IDYuNUMxOCA3Ljg4IDE2Ljg4IDkgMTUuNSA5WiIvPgogICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDZIOS4wMTg5NEM5LjAwNjM5IDYuMTY1MDIgOSA2LjMzMTc2IDkgNi41QzkgOC44MTU3NyAxMC4yMTEgMTAuODQ4NyAxMi4wMzQzIDEySDlWMTRIMTZWMTIuOTgxMUMxNi41NzAzIDEyLjkzNzcgMTcuMTIgMTIuODIwNyAxNy42Mzk2IDEyLjYzOTZMMTggMTNWMjBINFY2Wk04IDhINlYxMEg4VjhaTTYgMTJIOFYxNEg2VjEyWk04IDE2SDZWMThIOFYxNlpNOSAxNkgxNlYxOEg5VjE2WiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-paste: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE5IDJoLTQuMThDMTQuNC44NCAxMy4zIDAgMTIgMGMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNyAxOEg1VjRoMnYzaDEwVjRoMnYxNnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==);
--jp-icon-pdf: url(data:image/svg+xml;base64,PHN2ZwogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMiAyMiIgd2lkdGg9IjE2Ij4KICAgIDxwYXRoIHRyYW5zZm9ybT0icm90YXRlKDQ1KSIgY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI0ZGMkEyQSIKICAgICAgIGQ9Im0gMjIuMzQ0MzY5LC0zLjAxNjM2NDIgaCA1LjYzODYwNCB2IDEuNTc5MjQzMyBoIC0zLjU0OTIyNyB2IDEuNTA4NjkyOTkgaCAzLjMzNzU3NiBWIDEuNjUwODE1NCBoIC0zLjMzNzU3NiB2IDMuNDM1MjYxMyBoIC0yLjA4OTM3NyB6IG0gLTcuMTM2NDQ0LDEuNTc5MjQzMyB2IDQuOTQzOTU0MyBoIDAuNzQ4OTIgcSAxLjI4MDc2MSwwIDEuOTUzNzAzLC0wLjYzNDk1MzUgMC42NzgzNjksLTAuNjM0OTUzNSAwLjY3ODM2OSwtMS44NDUxNjQxIDAsLTEuMjA0NzgzNTUgLTAuNjcyOTQyLC0xLjgzNDMxMDExIC0wLjY3Mjk0MiwtMC42Mjk1MjY1OSAtMS45NTkxMywtMC42Mjk1MjY1OSB6IG0gLTIuMDg5Mzc3LC0xLjU3OTI0MzMgaCAyLjIwMzM0MyBxIDEuODQ1MTY0LDAgMi43NDYwMzksMC4yNjU5MjA3IDAuOTA2MzAxLDAuMjYwNDkzNyAxLjU1MjEwOCwwLjg5MDAyMDMgMC41Njk4MywwLjU0ODEyMjMgMC44NDY2MDUsMS4yNjQ0ODAwNiAwLjI3Njc3NCwwLjcxNjM1NzgxIDAuMjc2Nzc0LDEuNjIyNjU4OTQgMCwwLjkxNzE1NTEgLTAuMjc2Nzc0LDEuNjM4OTM5OSAtMC4yNzY3NzUsMC43MTYzNTc4IC0wLjg0NjYwNSwxLjI2NDQ4IC0wLjY1MTIzNCwwLjYyOTUyNjYgLTEuNTYyOTYyLDAuODk1NDQ3MyAtMC45MTE3MjgsMC4yNjA0OTM3IC0yLjczNTE4NSwwLjI2MDQ5MzcgaCAtMi4yMDMzNDMgeiBtIC04LjE0NTg1NjUsMCBoIDMuNDY3ODIzIHEgMS41NDY2ODE2LDAgMi4zNzE1Nzg1LDAuNjg5MjIzIDAuODMwMzI0LDAuNjgzNzk2MSAwLjgzMDMyNCwxLjk1MzcwMzE0IDAsMS4yNzUzMzM5NyAtMC44MzAzMjQsMS45NjQ1NTcwNiBRIDkuOTg3MTk2MSwyLjI3NDkxNSA4LjQ0MDUxNDUsMi4yNzQ5MTUgSCA3LjA2MjA2ODQgViA1LjA4NjA3NjcgSCA0Ljk3MjY5MTUgWiBtIDIuMDg5Mzc2OSwxLjUxNDExOTkgdiAyLjI2MzAzOTQzIGggMS4xNTU5NDEgcSAwLjYwNzgxODgsMCAwLjkzODg2MjksLTAuMjkzMDU1NDcgMC4zMzEwNDQxLC0wLjI5ODQ4MjQxIDAuMzMxMDQ0MSwtMC44NDExNzc3MiAwLC0wLjU0MjY5NTMxIC0wLjMzMTA0NDEsLTAuODM1NzUwNzQgLTAuMzMxMDQ0MSwtMC4yOTMwNTU1IC0wLjkzODg2MjksLTAuMjkzMDU1NSB6IgovPgo8L3N2Zz4K);
--jp-icon-python: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iLTEwIC0xMCAxMzEuMTYxMzYxNjk0MzM1OTQgMTMyLjM4ODk5OTkzODk2NDg0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMzA2OTk4IiBkPSJNIDU0LjkxODc4NSw5LjE5Mjc0MjFlLTQgQyA1MC4zMzUxMzIsMC4wMjIyMTcyNyA0NS45NTc4NDYsMC40MTMxMzY5NyA0Mi4xMDYyODUsMS4wOTQ2NjkzIDMwLjc2MDA2OSwzLjA5OTE3MzEgMjguNzAwMDM2LDcuMjk0NzcxNCAyOC43MDAwMzUsMTUuMDMyMTY5IHYgMTAuMjE4NzUgaCAyNi44MTI1IHYgMy40MDYyNSBoIC0yNi44MTI1IC0xMC4wNjI1IGMgLTcuNzkyNDU5LDAgLTE0LjYxNTc1ODgsNC42ODM3MTcgLTE2Ljc0OTk5OTgsMTMuNTkzNzUgLTIuNDYxODE5OTgsMTAuMjEyOTY2IC0yLjU3MTAxNTA4LDE2LjU4NjAyMyAwLDI3LjI1IDEuOTA1OTI4Myw3LjkzNzg1MiA2LjQ1NzU0MzIsMTMuNTkzNzQ4IDE0LjI0OTk5OTgsMTMuNTkzNzUgaCA5LjIxODc1IHYgLTEyLjI1IGMgMCwtOC44NDk5MDIgNy42NTcxNDQsLTE2LjY1NjI0OCAxNi43NSwtMTYuNjU2MjUgaCAyNi43ODEyNSBjIDcuNDU0OTUxLDAgMTMuNDA2MjUzLC02LjEzODE2NCAxMy40MDYyNSwtMTMuNjI1IHYgLTI1LjUzMTI1IGMgMCwtNy4yNjYzMzg2IC02LjEyOTk4LC0xMi43MjQ3NzcxIC0xMy40MDYyNSwtMTMuOTM3NDk5NyBDIDY0LjI4MTU0OCwwLjMyNzk0Mzk3IDU5LjUwMjQzOCwtMC4wMjAzNzkwMyA1NC45MTg3ODUsOS4xOTI3NDIxZS00IFogbSAtMTQuNSw4LjIxODc1MDEyNTc5IGMgMi43Njk1NDcsMCA1LjAzMTI1LDIuMjk4NjQ1NiA1LjAzMTI1LDUuMTI0OTk5NiAtMmUtNiwyLjgxNjMzNiAtMi4yNjE3MDMsNS4wOTM3NSAtNS4wMzEyNSw1LjA5Mzc1IC0yLjc3OTQ3NiwtMWUtNiAtNS4wMzEyNSwtMi4yNzc0MTUgLTUuMDMxMjUsLTUuMDkzNzUgLTEwZS03LC0yLjgyNjM1MyAyLjI1MTc3NCwtNS4xMjQ5OTk2IDUuMDMxMjUsLTUuMTI0OTk5NiB6Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI2ZmZDQzYiIgZD0ibSA4NS42Mzc1MzUsMjguNjU3MTY5IHYgMTEuOTA2MjUgYyAwLDkuMjMwNzU1IC03LjgyNTg5NSwxNi45OTk5OTkgLTE2Ljc1LDE3IGggLTI2Ljc4MTI1IGMgLTcuMzM1ODMzLDAgLTEzLjQwNjI0OSw2LjI3ODQ4MyAtMTMuNDA2MjUsMTMuNjI1IHYgMjUuNTMxMjQ3IGMgMCw3LjI2NjM0NCA2LjMxODU4OCwxMS41NDAzMjQgMTMuNDA2MjUsMTMuNjI1MDA0IDguNDg3MzMxLDIuNDk1NjEgMTYuNjI2MjM3LDIuOTQ2NjMgMjYuNzgxMjUsMCA2Ljc1MDE1NSwtMS45NTQzOSAxMy40MDYyNTMsLTUuODg3NjEgMTMuNDA2MjUsLTEzLjYyNTAwNCBWIDg2LjUwMDkxOSBoIC0yNi43ODEyNSB2IC0zLjQwNjI1IGggMjYuNzgxMjUgMTMuNDA2MjU0IGMgNy43OTI0NjEsMCAxMC42OTYyNTEsLTUuNDM1NDA4IDEzLjQwNjI0MSwtMTMuNTkzNzUgMi43OTkzMywtOC4zOTg4ODYgMi42ODAyMiwtMTYuNDc1Nzc2IDAsLTI3LjI1IC0xLjkyNTc4LC03Ljc1NzQ0MSAtNS42MDM4NywtMTMuNTkzNzUgLTEzLjQwNjI0MSwtMTMuNTkzNzUgeiBtIC0xNS4wNjI1LDY0LjY1NjI1IGMgMi43Nzk0NzgsM2UtNiA1LjAzMTI1LDIuMjc3NDE3IDUuMDMxMjUsNS4wOTM3NDcgLTJlLTYsMi44MjYzNTQgLTIuMjUxNzc1LDUuMTI1MDA0IC01LjAzMTI1LDUuMTI1MDA0IC0yLjc2OTU1LDAgLTUuMDMxMjUsLTIuMjk4NjUgLTUuMDMxMjUsLTUuMTI1MDA0IDJlLTYsLTIuODE2MzMgMi4yNjE2OTcsLTUuMDkzNzQ3IDUuMDMxMjUsLTUuMDkzNzQ3IHoiLz4KPC9zdmc+Cg==);
--jp-icon-r-kernel: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMjE5NkYzIiBkPSJNNC40IDIuNWMxLjItLjEgMi45LS4zIDQuOS0uMyAyLjUgMCA0LjEuNCA1LjIgMS4zIDEgLjcgMS41IDEuOSAxLjUgMy41IDAgMi0xLjQgMy41LTIuOSA0LjEgMS4yLjQgMS43IDEuNiAyLjIgMyAuNiAxLjkgMSAzLjkgMS4zIDQuNmgtMy44Yy0uMy0uNC0uOC0xLjctMS4yLTMuN3MtMS4yLTIuNi0yLjYtMi42aC0uOXY2LjRINC40VjIuNXptMy43IDYuOWgxLjRjMS45IDAgMi45LS45IDIuOS0yLjNzLTEtMi4zLTIuOC0yLjNjLS43IDAtMS4zIDAtMS42LjJ2NC41aC4xdi0uMXoiLz4KPC9zdmc+Cg==);
--jp-icon-react: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMTUwIDE1MCA1NDEuOSAyOTUuMyI+CiAgPGcgY2xhc3M9ImpwLWljb24tYnJhbmQyIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzYxREFGQiI+CiAgICA8cGF0aCBkPSJNNjY2LjMgMjk2LjVjMC0zMi41LTQwLjctNjMuMy0xMDMuMS04Mi40IDE0LjQtNjMuNiA4LTExNC4yLTIwLjItMTMwLjQtNi41LTMuOC0xNC4xLTUuNi0yMi40LTUuNnYyMi4zYzQuNiAwIDguMy45IDExLjQgMi42IDEzLjYgNy44IDE5LjUgMzcuNSAxNC45IDc1LjctMS4xIDkuNC0yLjkgMTkuMy01LjEgMjkuNC0xOS42LTQuOC00MS04LjUtNjMuNS0xMC45LTEzLjUtMTguNS0yNy41LTM1LjMtNDEuNi01MCAzMi42LTMwLjMgNjMuMi00Ni45IDg0LTQ2LjlWNzhjLTI3LjUgMC02My41IDE5LjYtOTkuOSA1My42LTM2LjQtMzMuOC03Mi40LTUzLjItOTkuOS01My4ydjIyLjNjMjAuNyAwIDUxLjQgMTYuNSA4NCA0Ni42LTE0IDE0LjctMjggMzEuNC00MS4zIDQ5LjktMjIuNiAyLjQtNDQgNi4xLTYzLjYgMTEtMi4zLTEwLTQtMTkuNy01LjItMjktNC43LTM4LjIgMS4xLTY3LjkgMTQuNi03NS44IDMtMS44IDYuOS0yLjYgMTEuNS0yLjZWNzguNWMtOC40IDAtMTYgMS44LTIyLjYgNS42LTI4LjEgMTYuMi0zNC40IDY2LjctMTkuOSAxMzAuMS02Mi4yIDE5LjItMTAyLjcgNDkuOS0xMDIuNyA4Mi4zIDAgMzIuNSA0MC43IDYzLjMgMTAzLjEgODIuNC0xNC40IDYzLjYtOCAxMTQuMiAyMC4yIDEzMC40IDYuNSAzLjggMTQuMSA1LjYgMjIuNSA1LjYgMjcuNSAwIDYzLjUtMTkuNiA5OS45LTUzLjYgMzYuNCAzMy44IDcyLjQgNTMuMiA5OS45IDUzLjIgOC40IDAgMTYtMS44IDIyLjYtNS42IDI4LjEtMTYuMiAzNC40LTY2LjcgMTkuOS0xMzAuMSA2Mi0xOS4xIDEwMi41LTQ5LjkgMTAyLjUtODIuM3ptLTEzMC4yLTY2LjdjLTMuNyAxMi45LTguMyAyNi4yLTEzLjUgMzkuNS00LjEtOC04LjQtMTYtMTMuMS0yNC00LjYtOC05LjUtMTUuOC0xNC40LTIzLjQgMTQuMiAyLjEgMjcuOSA0LjcgNDEgNy45em0tNDUuOCAxMDYuNWMtNy44IDEzLjUtMTUuOCAyNi4zLTI0LjEgMzguMi0xNC45IDEuMy0zMCAyLTQ1LjIgMi0xNS4xIDAtMzAuMi0uNy00NS0xLjktOC4zLTExLjktMTYuNC0yNC42LTI0LjItMzgtNy42LTEzLjEtMTQuNS0yNi40LTIwLjgtMzkuOCA2LjItMTMuNCAxMy4yLTI2LjggMjAuNy0zOS45IDcuOC0xMy41IDE1LjgtMjYuMyAyNC4xLTM4LjIgMTQuOS0xLjMgMzAtMiA0NS4yLTIgMTUuMSAwIDMwLjIuNyA0NSAxLjkgOC4zIDExLjkgMTYuNCAyNC42IDI0LjIgMzggNy42IDEzLjEgMTQuNSAyNi40IDIwLjggMzkuOC02LjMgMTMuNC0xMy4yIDI2LjgtMjAuNyAzOS45em0zMi4zLTEzYzUuNCAxMy40IDEwIDI2LjggMTMuOCAzOS44LTEzLjEgMy4yLTI2LjkgNS45LTQxLjIgOCA0LjktNy43IDkuOC0xNS42IDE0LjQtMjMuNyA0LjYtOCA4LjktMTYuMSAxMy0yNC4xek00MjEuMiA0MzBjLTkuMy05LjYtMTguNi0yMC4zLTI3LjgtMzIgOSAuNCAxOC4yLjcgMjcuNS43IDkuNCAwIDE4LjctLjIgMjcuOC0uNy05IDExLjctMTguMyAyMi40LTI3LjUgMzJ6bS03NC40LTU4LjljLTE0LjItMi4xLTI3LjktNC43LTQxLTcuOSAzLjctMTIuOSA4LjMtMjYuMiAxMy41LTM5LjUgNC4xIDggOC40IDE2IDEzLjEgMjQgNC43IDggOS41IDE1LjggMTQuNCAyMy40ek00MjAuNyAxNjNjOS4zIDkuNiAxOC42IDIwLjMgMjcuOCAzMi05LS40LTE4LjItLjctMjcuNS0uNy05LjQgMC0xOC43LjItMjcuOC43IDktMTEuNyAxOC4zLTIyLjQgMjcuNS0zMnptLTc0IDU4LjljLTQuOSA3LjctOS44IDE1LjYtMTQuNCAyMy43LTQuNiA4LTguOSAxNi0xMyAyNC01LjQtMTMuNC0xMC0yNi44LTEzLjgtMzkuOCAxMy4xLTMuMSAyNi45LTUuOCA0MS4yLTcuOXptLTkwLjUgMTI1LjJjLTM1LjQtMTUuMS01OC4zLTM0LjktNTguMy01MC42IDAtMTUuNyAyMi45LTM1LjYgNTguMy01MC42IDguNi0zLjcgMTgtNyAyNy43LTEwLjEgNS43IDE5LjYgMTMuMiA0MCAyMi41IDYwLjktOS4yIDIwLjgtMTYuNiA0MS4xLTIyLjIgNjAuNi05LjktMy4xLTE5LjMtNi41LTI4LTEwLjJ6TTMxMCA0OTBjLTEzLjYtNy44LTE5LjUtMzcuNS0xNC45LTc1LjcgMS4xLTkuNCAyLjktMTkuMyA1LjEtMjkuNCAxOS42IDQuOCA0MSA4LjUgNjMuNSAxMC45IDEzLjUgMTguNSAyNy41IDM1LjMgNDEuNiA1MC0zMi42IDMwLjMtNjMuMiA0Ni45LTg0IDQ2LjktNC41LS4xLTguMy0xLTExLjMtMi43em0yMzcuMi03Ni4yYzQuNyAzOC4yLTEuMSA2Ny45LTE0LjYgNzUuOC0zIDEuOC02LjkgMi42LTExLjUgMi42LTIwLjcgMC01MS40LTE2LjUtODQtNDYuNiAxNC0xNC43IDI4LTMxLjQgNDEuMy00OS45IDIyLjYtMi40IDQ0LTYuMSA2My42LTExIDIuMyAxMC4xIDQuMSAxOS44IDUuMiAyOS4xem0zOC41LTY2LjdjLTguNiAzLjctMTggNy0yNy43IDEwLjEtNS43LTE5LjYtMTMuMi00MC0yMi41LTYwLjkgOS4yLTIwLjggMTYuNi00MS4xIDIyLjItNjAuNiA5LjkgMy4xIDE5LjMgNi41IDI4LjEgMTAuMiAzNS40IDE1LjEgNTguMyAzNC45IDU4LjMgNTAuNi0uMSAxNS43LTIzIDM1LjYtNTguNCA1MC42ek0zMjAuOCA3OC40eiIvPgogICAgPGNpcmNsZSBjeD0iNDIwLjkiIGN5PSIyOTYuNSIgcj0iNDUuNyIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-redo: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE4LjQgMTAuNkMxNi41NSA4Ljk5IDE0LjE1IDggMTEuNSA4Yy00LjY1IDAtOC41OCAzLjAzLTkuOTYgNy4yMkwzLjkgMTZjMS4wNS0zLjE5IDQuMDUtNS41IDcuNi01LjUgMS45NSAwIDMuNzMuNzIgNS4xMiAxLjg4TDEzIDE2aDlWN2wtMy42IDMuNnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-refresh: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTkgMTMuNWMtMi40OSAwLTQuNS0yLjAxLTQuNS00LjVTNi41MSA0LjUgOSA0LjVjMS4yNCAwIDIuMzYuNTIgMy4xNyAxLjMzTDEwIDhoNVYzbC0xLjc2IDEuNzZDMTIuMTUgMy42OCAxMC42NiAzIDkgMyA1LjY5IDMgMy4wMSA1LjY5IDMuMDEgOVM1LjY5IDE1IDkgMTVjMi45NyAwIDUuNDMtMi4xNiA1LjktNWgtMS41MmMtLjQ2IDItMi4yNCAzLjUtNC4zOCAzLjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-regex: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi1hY2NlbnQyIiBmaWxsPSIjRkZGIj4KICAgIDxjaXJjbGUgY2xhc3M9InN0MiIgY3g9IjUuNSIgY3k9IjE0LjUiIHI9IjEuNSIvPgogICAgPHJlY3QgeD0iMTIiIHk9IjQiIGNsYXNzPSJzdDIiIHdpZHRoPSIxIiBoZWlnaHQ9IjgiLz4KICAgIDxyZWN0IHg9IjguNSIgeT0iNy41IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg2NiAtMC41IDAuNSAwLjg2NiAtMi4zMjU1IDcuMzIxOSkiIGNsYXNzPSJzdDIiIHdpZHRoPSI4IiBoZWlnaHQ9IjEiLz4KICAgIDxyZWN0IHg9IjEyIiB5PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjUgLTAuODY2IDAuODY2IDAuNSAtMC42Nzc5IDE0LjgyNTIpIiBjbGFzcz0ic3QyIiB3aWR0aD0iMSIgaGVpZ2h0PSI4Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-run: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTggNXYxNGwxMS03eiIvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-running: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptOTYgMzI4YzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2MGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYweiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-save: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0eiIvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-search: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjEsMTAuOWgtMC43bC0wLjItMC4yYzAuOC0wLjksMS4zLTIuMiwxLjMtMy41YzAtMy0yLjQtNS40LTUuNC01LjRTMS44LDQuMiwxLjgsNy4xczIuNCw1LjQsNS40LDUuNCBjMS4zLDAsMi41LTAuNSwzLjUtMS4zbDAuMiwwLjJ2MC43bDQuMSw0LjFsMS4yLTEuMkwxMi4xLDEwLjl6IE03LjEsMTAuOWMtMi4xLDAtMy43LTEuNy0zLjctMy43czEuNy0zLjcsMy43LTMuN3MzLjcsMS43LDMuNywzLjcgUzkuMiwxMC45LDcuMSwxMC45eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-settings: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuNDMgMTIuOThjLjA0LS4zMi4wNy0uNjQuMDctLjk4cy0uMDMtLjY2LS4wNy0uOThsMi4xMS0xLjY1Yy4xOS0uMTUuMjQtLjQyLjEyLS42NGwtMi0zLjQ2Yy0uMTItLjIyLS4zOS0uMy0uNjEtLjIybC0yLjQ5IDFjLS41Mi0uNC0xLjA4LS43My0xLjY5LS45OGwtLjM4LTIuNjVBLjQ4OC40ODggMCAwMDE0IDJoLTRjLS4yNSAwLS40Ni4xOC0uNDkuNDJsLS4zOCAyLjY1Yy0uNjEuMjUtMS4xNy41OS0xLjY5Ljk4bC0yLjQ5LTFjLS4yMy0uMDktLjQ5IDAtLjYxLjIybC0yIDMuNDZjLS4xMy4yMi0uMDcuNDkuMTIuNjRsMi4xMSAxLjY1Yy0uMDQuMzItLjA3LjY1LS4wNy45OHMuMDMuNjYuMDcuOThsLTIuMTEgMS42NWMtLjE5LjE1LS4yNC40Mi0uMTIuNjRsMiAzLjQ2Yy4xMi4yMi4zOS4zLjYxLjIybDIuNDktMWMuNTIuNCAxLjA4LjczIDEuNjkuOThsLjM4IDIuNjVjLjAzLjI0LjI0LjQyLjQ5LjQyaDRjLjI1IDAgLjQ2LS4xOC40OS0uNDJsLjM4LTIuNjVjLjYxLS4yNSAxLjE3LS41OSAxLjY5LS45OGwyLjQ5IDFjLjIzLjA5LjQ5IDAgLjYxLS4yMmwyLTMuNDZjLjEyLS4yMi4wNy0uNDktLjEyLS42NGwtMi4xMS0xLjY1ek0xMiAxNS41Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXMxLjU3LTMuNSAzLjUtMy41IDMuNSAxLjU3IDMuNSAzLjUtMS41NyAzLjUtMy41IDMuNXoiLz4KPC9zdmc+Cg==);
--jp-icon-share: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTSAxOCAyIEMgMTYuMzU0OTkgMiAxNSAzLjM1NDk5MDQgMTUgNSBDIDE1IDUuMTkwOTUyOSAxNS4wMjE3OTEgNS4zNzcxMjI0IDE1LjA1NjY0MSA1LjU1ODU5MzggTCA3LjkyMTg3NSA5LjcyMDcwMzEgQyA3LjM5ODUzOTkgOS4yNzc4NTM5IDYuNzMyMDc3MSA5IDYgOSBDIDQuMzU0OTkwNCA5IDMgMTAuMzU0OTkgMyAxMiBDIDMgMTMuNjQ1MDEgNC4zNTQ5OTA0IDE1IDYgMTUgQyA2LjczMjA3NzEgMTUgNy4zOTg1Mzk5IDE0LjcyMjE0NiA3LjkyMTg3NSAxNC4yNzkyOTcgTCAxNS4wNTY2NDEgMTguNDM5NDUzIEMgMTUuMDIxNTU1IDE4LjYyMTUxNCAxNSAxOC44MDgzODYgMTUgMTkgQyAxNSAyMC42NDUwMSAxNi4zNTQ5OSAyMiAxOCAyMiBDIDE5LjY0NTAxIDIyIDIxIDIwLjY0NTAxIDIxIDE5IEMgMjEgMTcuMzU0OTkgMTkuNjQ1MDEgMTYgMTggMTYgQyAxNy4yNjc0OCAxNiAxNi42MDE1OTMgMTYuMjc5MzI4IDE2LjA3ODEyNSAxNi43MjI2NTYgTCA4Ljk0MzM1OTQgMTIuNTU4NTk0IEMgOC45NzgyMDk1IDEyLjM3NzEyMiA5IDEyLjE5MDk1MyA5IDEyIEMgOSAxMS44MDkwNDcgOC45NzgyMDk1IDExLjYyMjg3OCA4Ljk0MzM1OTQgMTEuNDQxNDA2IEwgMTYuMDc4MTI1IDcuMjc5Mjk2OSBDIDE2LjYwMTQ2IDcuNzIyMTQ2MSAxNy4yNjc5MjMgOCAxOCA4IEMgMTkuNjQ1MDEgOCAyMSA2LjY0NTAwOTYgMjEgNSBDIDIxIDMuMzU0OTkwNCAxOS42NDUwMSAyIDE4IDIgeiBNIDE4IDQgQyAxOC41NjQxMjkgNCAxOSA0LjQzNTg3MDYgMTkgNSBDIDE5IDUuNTY0MTI5NCAxOC41NjQxMjkgNiAxOCA2IEMgMTcuNDM1ODcxIDYgMTcgNS41NjQxMjk0IDE3IDUgQyAxNyA0LjQzNTg3MDYgMTcuNDM1ODcxIDQgMTggNCB6IE0gNiAxMSBDIDYuNTY0MTI5NCAxMSA3IDExLjQzNTg3MSA3IDEyIEMgNyAxMi41NjQxMjkgNi41NjQxMjk0IDEzIDYgMTMgQyA1LjQzNTg3MDYgMTMgNSAxMi41NjQxMjkgNSAxMiBDIDUgMTEuNDM1ODcxIDUuNDM1ODcwNiAxMSA2IDExIHogTSAxOCAxOCBDIDE4LjU2NDEyOSAxOCAxOSAxOC40MzU4NzEgMTkgMTkgQyAxOSAxOS41NjQxMjkgMTguNTY0MTI5IDIwIDE4IDIwIEMgMTcuNDM1ODcxIDIwIDE3IDE5LjU2NDEyOSAxNyAxOSBDIDE3IDE4LjQzNTg3MSAxNy40MzU4NzEgMTggMTggMTggeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-spreadsheet: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDEganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNENBRjUwIiBkPSJNMi4yIDIuMnYxNy42aDE3LjZWMi4ySDIuMnptMTUuNCA3LjdoLTUuNVY0LjRoNS41djUuNXpNOS45IDQuNHY1LjVINC40VjQuNGg1LjV6bS01LjUgNy43aDUuNXY1LjVINC40di01LjV6bTcuNyA1LjV2LTUuNWg1LjV2NS41aC01LjV6Ii8+Cjwvc3ZnPgo=);
--jp-icon-stop: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik02IDZoMTJ2MTJINnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==);
--jp-icon-tab: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxMHY0aDh2MTB6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-table-rows: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMSw4SDNWNGgxOFY4eiBNMjEsMTBIM3Y0aDE4VjEweiBNMjEsMTZIM3Y0aDE4VjE2eiIvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-tag: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCA0MyAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTI4LjgzMzIgMTIuMzM0TDMyLjk5OTggMTYuNTAwN0wzNy4xNjY1IDEyLjMzNEgyOC44MzMyWiIvPgoJCTxwYXRoIGQ9Ik0xNi4yMDk1IDIxLjYxMDRDMTUuNjg3MyAyMi4xMjk5IDE0Ljg0NDMgMjIuMTI5OSAxNC4zMjQ4IDIxLjYxMDRMNi45ODI5IDE0LjcyNDVDNi41NzI0IDE0LjMzOTQgNi4wODMxMyAxMy42MDk4IDYuMDQ3ODYgMTMuMDQ4MkM1Ljk1MzQ3IDExLjUyODggNi4wMjAwMiA4LjYxOTQ0IDYuMDY2MjEgNy4wNzY5NUM2LjA4MjgxIDYuNTE0NzcgNi41NTU0OCA2LjA0MzQ3IDcuMTE4MDQgNi4wMzA1NUM5LjA4ODYzIDUuOTg0NzMgMTMuMjYzOCA1LjkzNTc5IDEzLjY1MTggNi4zMjQyNUwyMS43MzY5IDEzLjYzOUMyMi4yNTYgMTQuMTU4NSAyMS43ODUxIDE1LjQ3MjQgMjEuMjYyIDE1Ljk5NDZMMTYuMjA5NSAyMS42MTA0Wk05Ljc3NTg1IDguMjY1QzkuMzM1NTEgNy44MjU2NiA4LjYyMzUxIDcuODI1NjYgOC4xODI4IDguMjY1QzcuNzQzNDYgOC43MDU3MSA3Ljc0MzQ2IDkuNDE3MzMgOC4xODI4IDkuODU2NjdDOC42MjM4MiAxMC4yOTY0IDkuMzM1ODIgMTAuMjk2NCA5Ljc3NTg1IDkuODU2NjdDMTAuMjE1NiA5LjQxNzMzIDEwLjIxNTYgOC43MDUzMyA5Ljc3NTg1IDguMjY1WiIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-terminal: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiA+CiAgICA8cmVjdCBjbGFzcz0ianAtdGVybWluYWwtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDIpIiBmaWxsPSIjMzMzMzMzIi8+CiAgICA8cGF0aCBjbGFzcz0ianAtdGVybWluYWwtaWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUtaW52ZXJzZSIgZD0iTTUuMDU2NjQgOC43NjE3MkM1LjA1NjY0IDguNTk3NjYgNS4wMzEyNSA4LjQ1MzEyIDQuOTgwNDcgOC4zMjgxMkM0LjkzMzU5IDguMTk5MjIgNC44NTU0NyA4LjA4MjAzIDQuNzQ2MDkgNy45NzY1NkM0LjY0MDYyIDcuODcxMDkgNC41IDcuNzc1MzkgNC4zMjQyMiA3LjY4OTQ1QzQuMTUyMzQgNy41OTk2MSAzLjk0MzM2IDcuNTExNzIgMy42OTcyNyA3LjQyNTc4QzMuMzAyNzMgNy4yODUxNiAyLjk0MzM2IDcuMTM2NzIgMi42MTkxNCA2Ljk4MDQ3QzIuMjk0OTIgNi44MjQyMiAyLjAxNzU4IDYuNjQyNTggMS43ODcxMSA2LjQzNTU1QzEuNTYwNTUgNi4yMjg1MiAxLjM4NDc3IDUuOTg4MjggMS4yNTk3NyA1LjcxNDg0QzEuMTM0NzcgNS40Mzc1IDEuMDcyMjcgNS4xMDkzOCAxLjA3MjI3IDQuNzMwNDdDMS4wNzIyNyA0LjM5ODQ0IDEuMTI4OTEgNC4wOTU3IDEuMjQyMTkgMy44MjIyN0MxLjM1NTQ3IDMuNTQ0OTIgMS41MTU2MiAzLjMwNDY5IDEuNzIyNjYgMy4xMDE1NkMxLjkyOTY5IDIuODk4NDQgMi4xNzk2OSAyLjczNDM3IDIuNDcyNjYgMi42MDkzOEMyLjc2NTYyIDIuNDg0MzggMy4wOTE4IDIuNDA0MyAzLjQ1MTE3IDIuMzY5MTRWMS4xMDkzOEg0LjM4ODY3VjIuMzgwODZDNC43NDAyMyAyLjQyNzczIDUuMDU2NjQgMi41MjM0NCA1LjMzNzg5IDIuNjY3OTdDNS42MTkxNCAyLjgxMjUgNS44NTc0MiAzLjAwMTk1IDYuMDUyNzMgMy4yMzYzM0M2LjI1MTk1IDMuNDY2OCA2LjQwNDMgMy43NDAyMyA2LjUwOTc3IDQuMDU2NjRDNi42MTkxNCA0LjM2OTE0IDYuNjczODMgNC43MjA3IDYuNjczODMgNS4xMTEzM0g1LjA0NDkyQzUuMDQ0OTIgNC42Mzg2NyA0LjkzNzUgNC4yODEyNSA0LjcyMjY2IDQuMDM5MDZDNC41MDc4MSAzLjc5Mjk3IDQuMjE2OCAzLjY2OTkyIDMuODQ5NjEgMy42Njk5MkMzLjY1MDM5IDMuNjY5OTIgMy40NzY1NiAzLjY5NzI3IDMuMzI4MTIgMy43NTE5NUMzLjE4MzU5IDMuODAyNzMgMy4wNjQ0NSAzLjg3Njk1IDIuOTcwNyAzLjk3NDYxQzIuODc2OTUgNC4wNjgzNiAyLjgwNjY0IDQuMTc5NjkgMi43NTk3NyA0LjMwODU5QzIuNzE2OCA0LjQzNzUgMi42OTUzMSA0LjU3ODEyIDIuNjk1MzEgNC43MzA0N0MyLjY5NTMxIDQuODgyODEgMi43MTY4IDUuMDE5NTMgMi43NTk3NyA1LjE0MDYyQzIuODA2NjQgNS4yNTc4MSAyLjg4MjgxIDUuMzY3MTkgMi45ODgyOCA1LjQ2ODc1QzMuMDk3NjYgNS41NzAzMSAzLjI0MDIzIDUuNjY3OTcgMy40MTYwMiA1Ljc2MTcyQzMuNTkxOCA1Ljg1MTU2IDMuODEwNTUgNS45NDMzNiA0LjA3MjI3IDYuMDM3MTFDNC40NjY4IDYuMTg1NTUgNC44MjQyMiA2LjMzOTg0IDUuMTQ0NTMgNi41QzUuNDY0ODQgNi42NTYyNSA1LjczODI4IDYuODM5ODQgNS45NjQ4NCA3LjA1MDc4QzYuMTk1MzEgNy4yNTc4MSA2LjM3MTA5IDcuNSA2LjQ5MjE5IDcuNzc3MzRDNi42MTcxOSA4LjA1MDc4IDYuNjc5NjkgOC4zNzUgNi42Nzk2OSA4Ljc1QzYuNjc5NjkgOS4wOTM3NSA2LjYyMzA1IDkuNDA0MyA2LjUwOTc3IDkuNjgxNjRDNi4zOTY0OCA5Ljk1NTA4IDYuMjM0MzggMTAuMTkxNCA2LjAyMzQ0IDEwLjM5MDZDNS44MTI1IDEwLjU4OTggNS41NTg1OSAxMC43NSA1LjI2MTcyIDEwLjg3MTFDNC45NjQ4NCAxMC45ODgzIDQuNjMyODEgMTEuMDY0NSA0LjI2NTYyIDExLjA5OTZWMTIuMjQ4SDMuMzMzOThWMTEuMDk5NkMzLjAwMTk1IDExLjA2ODQgMi42Nzk2OSAxMC45OTYxIDIuMzY3MTkgMTAuODgyOEMyLjA1NDY5IDEwLjc2NTYgMS43NzczNCAxMC41OTc3IDEuNTM1MTYgMTAuMzc4OUMxLjI5Njg4IDEwLjE2MDIgMS4xMDU0NyA5Ljg4NDc3IDAuOTYwOTM4IDkuNTUyNzNDMC44MTY0MDYgOS4yMTY4IDAuNzQ0MTQxIDguODE0NDUgMC43NDQxNDEgOC4zNDU3SDIuMzc4OTFDMi4zNzg5MSA4LjYyNjk1IDIuNDE5OTIgOC44NjMyOCAyLjUwMTk1IDkuMDU0NjlDMi41ODM5OCA5LjI0MjE5IDIuNjg5NDUgOS4zOTI1OCAyLjgxODM2IDkuNTA1ODZDMi45NTExNyA5LjYxNTIzIDMuMTAxNTYgOS42OTMzNiAzLjI2OTUzIDkuNzQwMjNDMy40Mzc1IDkuNzg3MTEgMy42MDkzOCA5LjgxMDU1IDMuNzg1MTYgOS44MTA1NUM0LjIwMzEyIDkuODEwNTUgNC41MTk1MyA5LjcxMjg5IDQuNzM0MzggOS41MTc1OEM0Ljk0OTIyIDkuMzIyMjcgNS4wNTY2NCA5LjA3MDMxIDUuMDU2NjQgOC43NjE3MlpNMTMuNDE4IDEyLjI3MTVIOC4wNzQyMlYxMUgxMy40MThWMTIuMjcxNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMuOTUyNjQgNikiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=);
--jp-icon-text-editor: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtdGV4dC1lZGl0b3ItaWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xNSAxNUgzdjJoMTJ2LTJ6bTAtOEgzdjJoMTJWN3pNMyAxM2gxOHYtMkgzdjJ6bTAgOGgxOHYtMkgzdjJ6TTMgM3YyaDE4VjNIM3oiLz4KPC9zdmc+Cg==);
--jp-icon-toc: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik03LDVIMjFWN0g3VjVNNywxM1YxMUgyMVYxM0g3TTQsNC41QTEuNSwxLjUgMCAwLDEgNS41LDZBMS41LDEuNSAwIDAsMSA0LDcuNUExLjUsMS41IDAgMCwxIDIuNSw2QTEuNSwxLjUgMCAwLDEgNCw0LjVNNCwxMC41QTEuNSwxLjUgMCAwLDEgNS41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMy41QTEuNSwxLjUgMCAwLDEgMi41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMC41TTcsMTlWMTdIMjFWMTlIN000LDE2LjVBMS41LDEuNSAwIDAsMSA1LjUsMThBMS41LDEuNSAwIDAsMSA0LDE5LjVBMS41LDEuNSAwIDAsMSAyLjUsMThBMS41LDEuNSAwIDAsMSA0LDE2LjVaIiAvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-tree-view: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMiAxMVYzaC03djNIOVYzSDJ2OGg3VjhoMnYxMGg0djNoN3YtOGgtN3YzaC0yVjhoMnYzeiIvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-trusted: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI1Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMykiIGQ9Ik0xLjg2MDk0IDExLjQ0MDlDMC44MjY0NDggOC43NzAyNyAwLjg2Mzc3OSA2LjA1NzY0IDEuMjQ5MDcgNC4xOTkzMkMyLjQ4MjA2IDMuOTMzNDcgNC4wODA2OCAzLjQwMzQ3IDUuNjAxMDIgMi44NDQ5QzcuMjM1NDkgMi4yNDQ0IDguODU2NjYgMS41ODE1IDkuOTg3NiAxLjA5NTM5QzExLjA1OTcgMS41ODM0MSAxMi42MDk0IDIuMjQ0NCAxNC4yMTggMi44NDMzOUMxNS43NTAzIDMuNDEzOTQgMTcuMzk5NSAzLjk1MjU4IDE4Ljc1MzkgNC4yMTM4NUMxOS4xMzY0IDYuMDcxNzcgMTkuMTcwOSA4Ljc3NzIyIDE4LjEzOSAxMS40NDA5QzE3LjAzMDMgMTQuMzAzMiAxNC42NjY4IDE3LjE4NDQgOS45OTk5OSAxOC45MzU0QzUuMzMzMiAxNy4xODQ0IDIuOTY5NjggMTQuMzAzMiAxLjg2MDk0IDExLjQ0MDlaIi8+CiAgICA8cGF0aCBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiMzMzMzMzMiIHN0cm9rZT0iIzMzMzMzMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA5Ljg2NzE5KSIgZD0iTTIuODYwMTUgNC44NjUzNUwwLjcyNjU0OSAyLjk5OTU5TDAgMy42MzA0NUwyLjg2MDE1IDYuMTMxNTdMOCAwLjYzMDg3Mkw3LjI3ODU3IDBMMi44NjAxNSA0Ljg2NTM1WiIvPgo8L3N2Zz4K);
--jp-icon-undo: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjUgOGMtMi42NSAwLTUuMDUuOTktNi45IDIuNkwyIDd2OWg5bC0zLjYyLTMuNjJjMS4zOS0xLjE2IDMuMTYtMS44OCA1LjEyLTEuODggMy41NCAwIDYuNTUgMi4zMSA3LjYgNS41bDIuMzctLjc4QzIxLjA4IDExLjAzIDE3LjE1IDggMTIuNSA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-user: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE2IDdhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAwek0xMiAxNGE3IDcgMCAwMC03IDdoMTRhNyA3IDAgMDAtNy03eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-users: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDM2IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPGcgY2xhc3M9ImpwLWljb24zIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjczMjcgMCAwIDEuNzMyNyAtMy42MjgyIC4wOTk1NzcpIiBmaWxsPSIjNjE2MTYxIj4KICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCgxLjUsMCwwLDEuNSwwLC02KSIgZD0ibTEyLjE4NiA3LjUwOThjLTEuMDUzNSAwLTEuOTc1NyAwLjU2NjUtMi40Nzg1IDEuNDEwMiAwLjc1MDYxIDAuMzEyNzcgMS4zOTc0IDAuODI2NDggMS44NzMgMS40NzI3aDMuNDg2M2MwLTEuNTkyLTEuMjg4OS0yLjg4MjgtMi44ODA5LTIuODgyOHoiLz4KICA8cGF0aCBkPSJtMjAuNDY1IDIuMzg5NWEyLjE4ODUgMi4xODg1IDAgMCAxLTIuMTg4NCAyLjE4ODUgMi4xODg1IDIuMTg4NSAwIDAgMS0yLjE4ODUtMi4xODg1IDIuMTg4NSAyLjE4ODUgMCAwIDEgMi4xODg1LTIuMTg4NSAyLjE4ODUgMi4xODg1IDAgMCAxIDIuMTg4NCAyLjE4ODV6Ii8+CiAgPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMS41LDAsMCwxLjUsMCwtNikiIGQ9Im0zLjU4OTggOC40MjE5Yy0xLjExMjYgMC0yLjAxMzcgMC45MDExMS0yLjAxMzcgMi4wMTM3aDIuODE0NWMwLjI2Nzk3LTAuMzczMDkgMC41OTA3LTAuNzA0MzUgMC45NTg5OC0wLjk3ODUyLTAuMzQ0MzMtMC42MTY4OC0xLjAwMzEtMS4wMzUyLTEuNzU5OC0xLjAzNTJ6Ii8+CiAgPHBhdGggZD0ibTYuOTE1NCA0LjYyM2ExLjUyOTQgMS41Mjk0IDAgMCAxLTEuNTI5NCAxLjUyOTQgMS41Mjk0IDEuNTI5NCAwIDAgMS0xLjUyOTQtMS41Mjk0IDEuNTI5NCAxLjUyOTQgMCAwIDEgMS41Mjk0LTEuNTI5NCAxLjUyOTQgMS41Mjk0IDAgMCAxIDEuNTI5NCAxLjUyOTR6Ii8+CiAgPHBhdGggZD0ibTYuMTM1IDEzLjUzNWMwLTMuMjM5MiAyLjYyNTktNS44NjUgNS44NjUtNS44NjUgMy4yMzkyIDAgNS44NjUgMi42MjU5IDUuODY1IDUuODY1eiIvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMy43Njg1IiByPSIyLjk2ODUiLz4KIDwvZz4KPC9zdmc+Cg==);
--jp-icon-vega: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbjEganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMjEyMTIxIj4KICAgIDxwYXRoIGQ9Ik0xMC42IDUuNGwyLjItMy4ySDIuMnY3LjNsNC02LjZ6Ii8+CiAgICA8cGF0aCBkPSJNMTUuOCAyLjJsLTQuNCA2LjZMNyA2LjNsLTQuOCA4djUuNWgxNy42VjIuMmgtNHptLTcgMTUuNEg1LjV2LTQuNGgzLjN2NC40em00LjQgMEg5LjhWOS44aDMuNHY3Ljh6bTQuNCAwaC0zLjRWNi41aDMuNHYxMS4xeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-word: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KIDxnIGNsYXNzPSJqcC1pY29uMiIgZmlsbD0iIzQxNDE0MSI+CiAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiA8L2c+CiA8ZyBjbGFzcz0ianAtaWNvbi1hY2NlbnQyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSguNDMgLjA0MDEpIiBmaWxsPSIjZmZmIj4KICA8cGF0aCBkPSJtNC4xNCA4Ljc2cTAuMDY4Mi0xLjg5IDIuNDItMS44OSAxLjE2IDAgMS42OCAwLjQyIDAuNTY3IDAuNDEgMC41NjcgMS4xNnYzLjQ3cTAgMC40NjIgMC41MTQgMC40NjIgMC4xMDMgMCAwLjItMC4wMjMxdjAuNzE0cS0wLjM5OSAwLjEwMy0wLjY1MSAwLjEwMy0wLjQ1MiAwLTAuNjkzLTAuMjItMC4yMzEtMC4yLTAuMjg0LTAuNjYyLTAuOTU2IDAuODcyLTIgMC44NzItMC45MDMgMC0xLjQ3LTAuNDcyLTAuNTI1LTAuNDcyLTAuNTI1LTEuMjYgMC0wLjI2MiAwLjA0NTItMC40NzIgMC4wNTY3LTAuMjIgMC4xMTYtMC4zNzggMC4wNjgyLTAuMTY4IDAuMjMxLTAuMzA0IDAuMTU4LTAuMTQ3IDAuMjYyLTAuMjQyIDAuMTE2LTAuMDkxNCAwLjM2OC0wLjE2OCAwLjI2Mi0wLjA5MTQgMC4zOTktMC4xMjYgMC4xMzYtMC4wNDUyIDAuNDcyLTAuMTAzIDAuMzM2LTAuMDU3OCAwLjUwNC0wLjA3OTggMC4xNTgtMC4wMjMxIDAuNTY3LTAuMDc5OCAwLjU1Ni0wLjA2ODIgMC43NzctMC4yMjEgMC4yMi0wLjE1MiAwLjIyLTAuNDQxdi0wLjI1MnEwLTAuNDMtMC4zNTctMC42NjItMC4zMzYtMC4yMzEtMC45NzYtMC4yMzEtMC42NjIgMC0wLjk5OCAwLjI2Mi0wLjMzNiAwLjI1Mi0wLjM5OSAwLjc5OHptMS44OSAzLjY4cTAuNzg4IDAgMS4yNi0wLjQxIDAuNTA0LTAuNDIgMC41MDQtMC45MDN2LTEuMDVxLTAuMjg0IDAuMTM2LTAuODYxIDAuMjMxLTAuNTY3IDAuMDkxNC0wLjk4NyAwLjE1OC0wLjQyIDAuMDY4Mi0wLjc2NiAwLjMyNi0wLjMzNiAwLjI1Mi0wLjMzNiAwLjcwNHQwLjMwNCAwLjcwNCAwLjg2MSAwLjI1MnoiIHN0cm9rZS13aWR0aD0iMS4wNSIvPgogIDxwYXRoIGQ9Im0xMCA0LjU2aDAuOTQ1djMuMTVxMC42NTEtMC45NzYgMS44OS0wLjk3NiAxLjE2IDAgMS44OSAwLjg0IDAuNjgyIDAuODQgMC42ODIgMi4zMSAwIDEuNDctMC43MDQgMi40Mi0wLjcwNCAwLjg4Mi0xLjg5IDAuODgyLTEuMjYgMC0xLjg5LTEuMDJ2MC43NjZoLTAuODV6bTIuNjIgMy4wNHEtMC43NDYgMC0xLjE2IDAuNjQtMC40NTIgMC42My0wLjQ1MiAxLjY4IDAgMS4wNSAwLjQ1MiAxLjY4dDEuMTYgMC42M3EwLjc3NyAwIDEuMjYtMC42MyAwLjQ5NC0wLjY0IDAuNDk0LTEuNjggMC0xLjA1LTAuNDcyLTEuNjgtMC40NjItMC42NC0xLjI2LTAuNjR6IiBzdHJva2Utd2lkdGg9IjEuMDUiLz4KICA8cGF0aCBkPSJtMi43MyAxNS44IDEzLjYgMC4wMDgxYzAuMDA2OSAwIDAtMi42IDAtMi42IDAtMC4wMDc4LTEuMTUgMC0xLjE1IDAtMC4wMDY5IDAtMC4wMDgzIDEuNS0wLjAwODMgMS41LTJlLTMgLTAuMDAxNC0xMS4zLTAuMDAxNC0xMS4zLTAuMDAxNGwtMC4wMDU5Mi0xLjVjMC0wLjAwNzgtMS4xNyAwLjAwMTMtMS4xNyAwLjAwMTN6IiBzdHJva2Utd2lkdGg9Ii45NzUiLz4KIDwvZz4KPC9zdmc+Cg==);
--jp-icon-yaml: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1jb250cmFzdDIganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjRDgxQjYwIj4KICAgIDxwYXRoIGQ9Ik03LjIgMTguNnYtNS40TDMgNS42aDMuM2wxLjQgMy4xYy4zLjkuNiAxLjYgMSAyLjUuMy0uOC42LTEuNiAxLTIuNWwxLjQtMy4xaDMuNGwtNC40IDcuNnY1LjVsLTIuOS0uMXoiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxNi41IiByPSIyLjEiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxMSIgcj0iMi4xIi8+CiAgPC9nPgo8L3N2Zz4K);
}
/* Icon CSS class declarations */
.jp-AddAboveIcon {
background-image: var(--jp-icon-add-above);
}
.jp-AddBelowIcon {
background-image: var(--jp-icon-add-below);
}
.jp-AddIcon {
background-image: var(--jp-icon-add);
}
.jp-BellIcon {
background-image: var(--jp-icon-bell);
}
.jp-BugDotIcon {
background-image: var(--jp-icon-bug-dot);
}
.jp-BugIcon {
background-image: var(--jp-icon-bug);
}
.jp-BuildIcon {
background-image: var(--jp-icon-build);
}
.jp-CaretDownEmptyIcon {
background-image: var(--jp-icon-caret-down-empty);
}
.jp-CaretDownEmptyThinIcon {
background-image: var(--jp-icon-caret-down-empty-thin);
}
.jp-CaretDownIcon {
background-image: var(--jp-icon-caret-down);
}
.jp-CaretLeftIcon {
background-image: var(--jp-icon-caret-left);
}
.jp-CaretRightIcon {
background-image: var(--jp-icon-caret-right);
}
.jp-CaretUpEmptyThinIcon {
background-image: var(--jp-icon-caret-up-empty-thin);
}
.jp-CaretUpIcon {
background-image: var(--jp-icon-caret-up);
}
.jp-CaseSensitiveIcon {
background-image: var(--jp-icon-case-sensitive);
}
.jp-CheckIcon {
background-image: var(--jp-icon-check);
}
.jp-CircleEmptyIcon {
background-image: var(--jp-icon-circle-empty);
}
.jp-CircleIcon {
background-image: var(--jp-icon-circle);
}
.jp-ClearIcon {
background-image: var(--jp-icon-clear);
}
.jp-CloseIcon {
background-image: var(--jp-icon-close);
}
.jp-CodeCheckIcon {
background-image: var(--jp-icon-code-check);
}
.jp-CodeIcon {
background-image: var(--jp-icon-code);
}
.jp-CollapseAllIcon {
background-image: var(--jp-icon-collapse-all);
}
.jp-ConsoleIcon {
background-image: var(--jp-icon-console);
}
.jp-CopyIcon {
background-image: var(--jp-icon-copy);
}
.jp-CopyrightIcon {
background-image: var(--jp-icon-copyright);
}
.jp-CutIcon {
background-image: var(--jp-icon-cut);
}
.jp-DeleteIcon {
background-image: var(--jp-icon-delete);
}
.jp-DownloadIcon {
background-image: var(--jp-icon-download);
}
.jp-DuplicateIcon {
background-image: var(--jp-icon-duplicate);
}
.jp-EditIcon {
background-image: var(--jp-icon-edit);
}
.jp-EllipsesIcon {
background-image: var(--jp-icon-ellipses);
}
.jp-ErrorIcon {
background-image: var(--jp-icon-error);
}
.jp-ExpandAllIcon {
background-image: var(--jp-icon-expand-all);
}
.jp-ExtensionIcon {
background-image: var(--jp-icon-extension);
}
.jp-FastForwardIcon {
background-image: var(--jp-icon-fast-forward);
}
.jp-FileIcon {
background-image: var(--jp-icon-file);
}
.jp-FileUploadIcon {
background-image: var(--jp-icon-file-upload);
}
.jp-FilterDotIcon {
background-image: var(--jp-icon-filter-dot);
}
.jp-FilterIcon {
background-image: var(--jp-icon-filter);
}
.jp-FilterListIcon {
background-image: var(--jp-icon-filter-list);
}
.jp-FolderFavoriteIcon {
background-image: var(--jp-icon-folder-favorite);
}
.jp-FolderIcon {
background-image: var(--jp-icon-folder);
}
.jp-HomeIcon {
background-image: var(--jp-icon-home);
}
.jp-Html5Icon {
background-image: var(--jp-icon-html5);
}
.jp-ImageIcon {
background-image: var(--jp-icon-image);
}
.jp-InfoIcon {
background-image: var(--jp-icon-info);
}
.jp-InspectorIcon {
background-image: var(--jp-icon-inspector);
}
.jp-JsonIcon {
background-image: var(--jp-icon-json);
}
.jp-JuliaIcon {
background-image: var(--jp-icon-julia);
}
.jp-JupyterFaviconIcon {
background-image: var(--jp-icon-jupyter-favicon);
}
.jp-JupyterIcon {
background-image: var(--jp-icon-jupyter);
}
.jp-JupyterlabWordmarkIcon {
background-image: var(--jp-icon-jupyterlab-wordmark);
}
.jp-KernelIcon {
background-image: var(--jp-icon-kernel);
}
.jp-KeyboardIcon {
background-image: var(--jp-icon-keyboard);
}
.jp-LaunchIcon {
background-image: var(--jp-icon-launch);
}
.jp-LauncherIcon {
background-image: var(--jp-icon-launcher);
}
.jp-LineFormIcon {
background-image: var(--jp-icon-line-form);
}
.jp-LinkIcon {
background-image: var(--jp-icon-link);
}
.jp-ListIcon {
background-image: var(--jp-icon-list);
}
.jp-MarkdownIcon {
background-image: var(--jp-icon-markdown);
}
.jp-MoveDownIcon {
background-image: var(--jp-icon-move-down);
}
.jp-MoveUpIcon {
background-image: var(--jp-icon-move-up);
}
.jp-NewFolderIcon {
background-image: var(--jp-icon-new-folder);
}
.jp-NotTrustedIcon {
background-image: var(--jp-icon-not-trusted);
}
.jp-NotebookIcon {
background-image: var(--jp-icon-notebook);
}
.jp-NumberingIcon {
background-image: var(--jp-icon-numbering);
}
.jp-OfflineBoltIcon {
background-image: var(--jp-icon-offline-bolt);
}
.jp-PaletteIcon {
background-image: var(--jp-icon-palette);
}
.jp-PasteIcon {
background-image: var(--jp-icon-paste);
}
.jp-PdfIcon {
background-image: var(--jp-icon-pdf);
}
.jp-PythonIcon {
background-image: var(--jp-icon-python);
}
.jp-RKernelIcon {
background-image: var(--jp-icon-r-kernel);
}
.jp-ReactIcon {
background-image: var(--jp-icon-react);
}
.jp-RedoIcon {
background-image: var(--jp-icon-redo);
}
.jp-RefreshIcon {
background-image: var(--jp-icon-refresh);
}
.jp-RegexIcon {
background-image: var(--jp-icon-regex);
}
.jp-RunIcon {
background-image: var(--jp-icon-run);
}
.jp-RunningIcon {
background-image: var(--jp-icon-running);
}
.jp-SaveIcon {
background-image: var(--jp-icon-save);
}
.jp-SearchIcon {
background-image: var(--jp-icon-search);
}
.jp-SettingsIcon {
background-image: var(--jp-icon-settings);
}
.jp-ShareIcon {
background-image: var(--jp-icon-share);
}
.jp-SpreadsheetIcon {
background-image: var(--jp-icon-spreadsheet);
}
.jp-StopIcon {
background-image: var(--jp-icon-stop);
}
.jp-TabIcon {
background-image: var(--jp-icon-tab);
}
.jp-TableRowsIcon {
background-image: var(--jp-icon-table-rows);
}
.jp-TagIcon {
background-image: var(--jp-icon-tag);
}
.jp-TerminalIcon {
background-image: var(--jp-icon-terminal);
}
.jp-TextEditorIcon {
background-image: var(--jp-icon-text-editor);
}
.jp-TocIcon {
background-image: var(--jp-icon-toc);
}
.jp-TreeViewIcon {
background-image: var(--jp-icon-tree-view);
}
.jp-TrustedIcon {
background-image: var(--jp-icon-trusted);
}
.jp-UndoIcon {
background-image: var(--jp-icon-undo);
}
.jp-UserIcon {
background-image: var(--jp-icon-user);
}
.jp-UsersIcon {
background-image: var(--jp-icon-users);
}
.jp-VegaIcon {
background-image: var(--jp-icon-vega);
}
.jp-WordIcon {
background-image: var(--jp-icon-word);
}
.jp-YamlIcon {
background-image: var(--jp-icon-yaml);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/**
* (DEPRECATED) Support for consuming icons as CSS background images
*/
.jp-Icon,
.jp-MaterialIcon {
background-position: center;
background-repeat: no-repeat;
background-size: 16px;
min-width: 16px;
min-height: 16px;
}
.jp-Icon-cover {
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
/**
* (DEPRECATED) Support for specific CSS icon sizes
*/
.jp-Icon-16 {
background-size: 16px;
min-width: 16px;
min-height: 16px;
}
.jp-Icon-18 {
background-size: 18px;
min-width: 18px;
min-height: 18px;
}
.jp-Icon-20 {
background-size: 20px;
min-width: 20px;
min-height: 20px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.lm-TabBar .lm-TabBar-addButton {
align-items: center;
display: flex;
padding: 4px;
padding-bottom: 5px;
margin-right: 1px;
background-color: var(--jp-layout-color2);
}
.lm-TabBar .lm-TabBar-addButton:hover {
background-color: var(--jp-layout-color1);
}
.lm-DockPanel-tabBar .lm-TabBar-tab {
width: var(--jp-private-horizontal-tab-width);
}
.lm-DockPanel-tabBar .lm-TabBar-content {
flex: unset;
}
.lm-DockPanel-tabBar[data-orientation='horizontal'] {
flex: 1 1 auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/**
* Support for icons as inline SVG HTMLElements
*/
/* recolor the primary elements of an icon */
.jp-icon0[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon1[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon2[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon3[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon4[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon0[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon1[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon2[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon3[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon4[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/* recolor the accent elements of an icon */
.jp-icon-accent0[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-accent1[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-accent2[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-accent3[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-accent4[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-accent0[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-accent1[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-accent2[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-accent3[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-accent4[stroke] {
stroke: var(--jp-layout-color4);
}
/* set the color of an icon to transparent */
.jp-icon-none[fill] {
fill: none;
}
.jp-icon-none[stroke] {
stroke: none;
}
/* brand icon colors. Same for light and dark */
.jp-icon-brand0[fill] {
fill: var(--jp-brand-color0);
}
.jp-icon-brand1[fill] {
fill: var(--jp-brand-color1);
}
.jp-icon-brand2[fill] {
fill: var(--jp-brand-color2);
}
.jp-icon-brand3[fill] {
fill: var(--jp-brand-color3);
}
.jp-icon-brand4[fill] {
fill: var(--jp-brand-color4);
}
.jp-icon-brand0[stroke] {
stroke: var(--jp-brand-color0);
}
.jp-icon-brand1[stroke] {
stroke: var(--jp-brand-color1);
}
.jp-icon-brand2[stroke] {
stroke: var(--jp-brand-color2);
}
.jp-icon-brand3[stroke] {
stroke: var(--jp-brand-color3);
}
.jp-icon-brand4[stroke] {
stroke: var(--jp-brand-color4);
}
/* warn icon colors. Same for light and dark */
.jp-icon-warn0[fill] {
fill: var(--jp-warn-color0);
}
.jp-icon-warn1[fill] {
fill: var(--jp-warn-color1);
}
.jp-icon-warn2[fill] {
fill: var(--jp-warn-color2);
}
.jp-icon-warn3[fill] {
fill: var(--jp-warn-color3);
}
.jp-icon-warn0[stroke] {
stroke: var(--jp-warn-color0);
}
.jp-icon-warn1[stroke] {
stroke: var(--jp-warn-color1);
}
.jp-icon-warn2[stroke] {
stroke: var(--jp-warn-color2);
}
.jp-icon-warn3[stroke] {
stroke: var(--jp-warn-color3);
}
/* icon colors that contrast well with each other and most backgrounds */
.jp-icon-contrast0[fill] {
fill: var(--jp-icon-contrast-color0);
}
.jp-icon-contrast1[fill] {
fill: var(--jp-icon-contrast-color1);
}
.jp-icon-contrast2[fill] {
fill: var(--jp-icon-contrast-color2);
}
.jp-icon-contrast3[fill] {
fill: var(--jp-icon-contrast-color3);
}
.jp-icon-contrast0[stroke] {
stroke: var(--jp-icon-contrast-color0);
}
.jp-icon-contrast1[stroke] {
stroke: var(--jp-icon-contrast-color1);
}
.jp-icon-contrast2[stroke] {
stroke: var(--jp-icon-contrast-color2);
}
.jp-icon-contrast3[stroke] {
stroke: var(--jp-icon-contrast-color3);
}
.jp-icon-dot[fill] {
fill: var(--jp-warn-color0);
}
.jp-jupyter-icon-color[fill] {
fill: var(--jp-jupyter-icon-color, var(--jp-warn-color0));
}
.jp-notebook-icon-color[fill] {
fill: var(--jp-notebook-icon-color, var(--jp-warn-color0));
}
.jp-json-icon-color[fill] {
fill: var(--jp-json-icon-color, var(--jp-warn-color1));
}
.jp-console-icon-color[fill] {
fill: var(--jp-console-icon-color, white);
}
.jp-console-icon-background-color[fill] {
fill: var(--jp-console-icon-background-color, var(--jp-brand-color1));
}
.jp-terminal-icon-color[fill] {
fill: var(--jp-terminal-icon-color, var(--jp-layout-color2));
}
.jp-terminal-icon-background-color[fill] {
fill: var(
--jp-terminal-icon-background-color,
var(--jp-inverse-layout-color2)
);
}
.jp-text-editor-icon-color[fill] {
fill: var(--jp-text-editor-icon-color, var(--jp-inverse-layout-color3));
}
.jp-inspector-icon-color[fill] {
fill: var(--jp-inspector-icon-color, var(--jp-inverse-layout-color3));
}
/* CSS for icons in selected filebrowser listing items */
.jp-DirListing-item.jp-mod-selected .jp-icon-selectable[fill] {
fill: #fff;
}
.jp-DirListing-item.jp-mod-selected .jp-icon-selectable-inverse[fill] {
fill: var(--jp-brand-color1);
}
/* stylelint-disable selector-max-class, selector-max-compound-selectors */
/**
* TODO: come up with non css-hack solution for showing the busy icon on top
* of the close icon
* CSS for complex behavior of close icon of tabs in the main area tabbar
*/
.lm-DockPanel-tabBar
.lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
> .lm-TabBar-tabCloseIcon
> :not(:hover)
> .jp-icon3[fill] {
fill: none;
}
.lm-DockPanel-tabBar
.lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
> .lm-TabBar-tabCloseIcon
> :not(:hover)
> .jp-icon-busy[fill] {
fill: var(--jp-inverse-layout-color3);
}
/* stylelint-enable selector-max-class, selector-max-compound-selectors */
/* CSS for icons in status bar */
#jp-main-statusbar .jp-mod-selected .jp-icon-selectable[fill] {
fill: #fff;
}
#jp-main-statusbar .jp-mod-selected .jp-icon-selectable-inverse[fill] {
fill: var(--jp-brand-color1);
}
/* special handling for splash icon CSS. While the theme CSS reloads during
splash, the splash icon can loose theming. To prevent that, we set a
default for its color variable */
:root {
--jp-warn-color0: var(--md-orange-700);
}
/* not sure what to do with this one, used in filebrowser listing */
.jp-DragIcon {
margin-right: 4px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/**
* Support for alt colors for icons as inline SVG HTMLElements
*/
/* alt recolor the primary elements of an icon */
.jp-icon-alt .jp-icon0[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-alt .jp-icon1[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-alt .jp-icon2[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-alt .jp-icon3[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-alt .jp-icon4[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-alt .jp-icon0[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-alt .jp-icon1[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-alt .jp-icon2[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-alt .jp-icon3[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-alt .jp-icon4[stroke] {
stroke: var(--jp-layout-color4);
}
/* alt recolor the accent elements of an icon */
.jp-icon-alt .jp-icon-accent0[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon-alt .jp-icon-accent1[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon-alt .jp-icon-accent2[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon-alt .jp-icon-accent3[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon-alt .jp-icon-accent4[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon-alt .jp-icon-accent0[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon-alt .jp-icon-accent1[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon-alt .jp-icon-accent2[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon-alt .jp-icon-accent3[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon-alt .jp-icon-accent4[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-icon-hoverShow:not(:hover) .jp-icon-hoverShow-content {
display: none !important;
}
/**
* Support for hover colors for icons as inline SVG HTMLElements
*/
/**
* regular colors
*/
/* recolor the primary elements of an icon */
.jp-icon-hover :hover .jp-icon0-hover[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon-hover :hover .jp-icon1-hover[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon-hover :hover .jp-icon2-hover[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon-hover :hover .jp-icon3-hover[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon-hover :hover .jp-icon4-hover[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon-hover :hover .jp-icon0-hover[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon-hover :hover .jp-icon1-hover[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon-hover :hover .jp-icon2-hover[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon-hover :hover .jp-icon3-hover[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon-hover :hover .jp-icon4-hover[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/* recolor the accent elements of an icon */
.jp-icon-hover :hover .jp-icon-accent0-hover[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-hover :hover .jp-icon-accent1-hover[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-hover :hover .jp-icon-accent2-hover[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-hover :hover .jp-icon-accent3-hover[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-hover :hover .jp-icon-accent4-hover[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-hover :hover .jp-icon-accent0-hover[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-hover :hover .jp-icon-accent1-hover[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-hover :hover .jp-icon-accent2-hover[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-hover :hover .jp-icon-accent3-hover[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-hover :hover .jp-icon-accent4-hover[stroke] {
stroke: var(--jp-layout-color4);
}
/* set the color of an icon to transparent */
.jp-icon-hover :hover .jp-icon-none-hover[fill] {
fill: none;
}
.jp-icon-hover :hover .jp-icon-none-hover[stroke] {
stroke: none;
}
/**
* inverse colors
*/
/* inverse recolor the primary elements of an icon */
.jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[stroke] {
stroke: var(--jp-layout-color4);
}
/* inverse recolor the accent elements of an icon */
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-IFrame {
width: 100%;
height: 100%;
}
.jp-IFrame > iframe {
border: none;
}
/*
When drag events occur, `lm-mod-override-cursor` is added to the body.
Because iframes steal all cursor events, the following two rules are necessary
to suppress pointer events while resize drags are occurring. There may be a
better solution to this problem.
*/
body.lm-mod-override-cursor .jp-IFrame {
position: relative;
}
body.lm-mod-override-cursor .jp-IFrame::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: transparent;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-HoverBox {
position: fixed;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-FormGroup-content fieldset {
border: none;
padding: 0;
min-width: 0;
width: 100%;
}
/* stylelint-disable selector-max-type */
.jp-FormGroup-content fieldset .jp-inputFieldWrapper input,
.jp-FormGroup-content fieldset .jp-inputFieldWrapper select,
.jp-FormGroup-content fieldset .jp-inputFieldWrapper textarea {
font-size: var(--jp-content-font-size2);
border-color: var(--jp-input-border-color);
border-style: solid;
border-radius: var(--jp-border-radius);
border-width: 1px;
padding: 6px 8px;
background: none;
color: var(--jp-ui-font-color0);
height: inherit;
}
.jp-FormGroup-content fieldset input[type='checkbox'] {
position: relative;
top: 2px;
margin-left: 0;
}
.jp-FormGroup-content button.jp-mod-styled {
cursor: pointer;
}
.jp-FormGroup-content .checkbox label {
cursor: pointer;
font-size: var(--jp-content-font-size1);
}
.jp-FormGroup-content .jp-root > fieldset > legend {
display: none;
}
.jp-FormGroup-content .jp-root > fieldset > p {
display: none;
}
/** copy of `input.jp-mod-styled:focus` style */
.jp-FormGroup-content fieldset input:focus,
.jp-FormGroup-content fieldset select:focus {
-moz-outline-radius: unset;
outline: var(--jp-border-width) solid var(--md-blue-500);
outline-offset: -1px;
box-shadow: inset 0 0 4px var(--md-blue-300);
}
.jp-FormGroup-content fieldset input:hover:not(:focus),
.jp-FormGroup-content fieldset select:hover:not(:focus) {
background-color: var(--jp-border-color2);
}
/* stylelint-enable selector-max-type */
.jp-FormGroup-content .checkbox .field-description {
/* Disable default description field for checkbox:
because other widgets do not have description fields,
we add descriptions to each widget on the field level.
*/
display: none;
}
.jp-FormGroup-content #root__description {
display: none;
}
.jp-FormGroup-content .jp-modifiedIndicator {
width: 5px;
background-color: var(--jp-brand-color2);
margin-top: 0;
margin-left: calc(var(--jp-private-settingeditor-modifier-indent) * -1);
flex-shrink: 0;
}
.jp-FormGroup-content .jp-modifiedIndicator.jp-errorIndicator {
background-color: var(--jp-error-color0);
margin-right: 0.5em;
}
/* RJSF ARRAY style */
.jp-arrayFieldWrapper legend {
font-size: var(--jp-content-font-size2);
color: var(--jp-ui-font-color0);
flex-basis: 100%;
padding: 4px 0;
font-weight: var(--jp-content-heading-font-weight);
border-bottom: 1px solid var(--jp-border-color2);
}
.jp-arrayFieldWrapper .field-description {
padding: 4px 0;
white-space: pre-wrap;
}
.jp-arrayFieldWrapper .array-item {
width: 100%;
border: 1px solid var(--jp-border-color2);
border-radius: 4px;
margin: 4px;
}
.jp-ArrayOperations {
display: flex;
margin-left: 8px;
}
.jp-ArrayOperationsButton {
margin: 2px;
}
.jp-ArrayOperationsButton .jp-icon3[fill] {
fill: var(--jp-ui-font-color0);
}
button.jp-ArrayOperationsButton.jp-mod-styled:disabled {
cursor: not-allowed;
opacity: 0.5;
}
/* RJSF form validation error */
.jp-FormGroup-content .validationErrors {
color: var(--jp-error-color0);
}
/* Hide panel level error as duplicated the field level error */
.jp-FormGroup-content .panel.errors {
display: none;
}
/* RJSF normal content (settings-editor) */
.jp-FormGroup-contentNormal {
display: flex;
align-items: center;
flex-wrap: wrap;
}
.jp-FormGroup-contentNormal .jp-FormGroup-contentItem {
margin-left: 7px;
color: var(--jp-ui-font-color0);
}
.jp-FormGroup-contentNormal .jp-FormGroup-description {
flex-basis: 100%;
padding: 4px 7px;
}
.jp-FormGroup-contentNormal .jp-FormGroup-default {
flex-basis: 100%;
padding: 4px 7px;
}
.jp-FormGroup-contentNormal .jp-FormGroup-fieldLabel {
font-size: var(--jp-content-font-size1);
font-weight: normal;
min-width: 120px;
}
.jp-FormGroup-contentNormal fieldset:not(:first-child) {
margin-left: 7px;
}
.jp-FormGroup-contentNormal .field-array-of-string .array-item {
/* Display `jp-ArrayOperations` buttons side-by-side with content except
for small screens where flex-wrap will place them one below the other.
*/
display: flex;
align-items: center;
flex-wrap: wrap;
}
.jp-FormGroup-contentNormal .jp-objectFieldWrapper .form-group {
padding: 2px 8px 2px var(--jp-private-settingeditor-modifier-indent);
margin-top: 2px;
}
/* RJSF compact content (metadata-form) */
.jp-FormGroup-content.jp-FormGroup-contentCompact {
width: 100%;
}
.jp-FormGroup-contentCompact .form-group {
display: flex;
padding: 0.5em 0.2em 0.5em 0;
}
.jp-FormGroup-contentCompact
.jp-FormGroup-compactTitle
.jp-FormGroup-description {
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color2);
}
.jp-FormGroup-contentCompact .jp-FormGroup-fieldLabel {
padding-bottom: 0.3em;
}
.jp-FormGroup-contentCompact .jp-inputFieldWrapper .form-control {
width: 100%;
box-sizing: border-box;
}
.jp-FormGroup-contentCompact .jp-arrayFieldWrapper .jp-FormGroup-compactTitle {
padding-bottom: 7px;
}
.jp-FormGroup-contentCompact
.jp-objectFieldWrapper
.jp-objectFieldWrapper
.form-group {
padding: 2px 8px 2px var(--jp-private-settingeditor-modifier-indent);
margin-top: 2px;
}
.jp-FormGroup-contentCompact ul.error-detail {
margin-block-start: 0.5em;
margin-block-end: 0.5em;
padding-inline-start: 1em;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.jp-SidePanel {
display: flex;
flex-direction: column;
min-width: var(--jp-sidebar-min-width);
overflow-y: auto;
color: var(--jp-ui-font-color1);
background: var(--jp-layout-color1);
font-size: var(--jp-ui-font-size1);
}
.jp-SidePanel-header {
flex: 0 0 auto;
display: flex;
border-bottom: var(--jp-border-width) solid var(--jp-border-color2);
font-size: var(--jp-ui-font-size0);
font-weight: 600;
letter-spacing: 1px;
margin: 0;
padding: 2px;
text-transform: uppercase;
}
.jp-SidePanel-toolbar {
flex: 0 0 auto;
}
.jp-SidePanel-content {
flex: 1 1 auto;
}
.jp-SidePanel-toolbar,
.jp-AccordionPanel-toolbar {
height: var(--jp-private-toolbar-height);
}
.jp-SidePanel-toolbar.jp-Toolbar-micro {
display: none;
}
.lm-AccordionPanel .jp-AccordionPanel-title {
box-sizing: border-box;
line-height: 25px;
margin: 0;
display: flex;
align-items: center;
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
box-shadow: var(--jp-toolbar-box-shadow);
font-size: var(--jp-ui-font-size0);
}
.jp-AccordionPanel-title {
cursor: pointer;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
text-transform: uppercase;
}
.lm-AccordionPanel[data-orientation='horizontal'] > .jp-AccordionPanel-title {
/* Title is rotated for horizontal accordion panel using CSS */
display: block;
transform-origin: top left;
transform: rotate(-90deg) translate(-100%);
}
.jp-AccordionPanel-title .lm-AccordionPanel-titleLabel {
user-select: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.jp-AccordionPanel-title .lm-AccordionPanel-titleCollapser {
transform: rotate(-90deg);
margin: auto 0;
height: 16px;
}
.jp-AccordionPanel-title.lm-mod-expanded .lm-AccordionPanel-titleCollapser {
transform: rotate(0deg);
}
.lm-AccordionPanel .jp-AccordionPanel-toolbar {
background: none;
box-shadow: none;
border: none;
margin-left: auto;
}
.lm-AccordionPanel .lm-SplitPanel-handle:hover {
background: var(--jp-layout-color3);
}
.jp-text-truncated {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Spinner {
position: absolute;
display: flex;
justify-content: center;
align-items: center;
z-index: 10;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: var(--jp-layout-color0);
outline: none;
}
.jp-SpinnerContent {
font-size: 10px;
margin: 50px auto;
text-indent: -9999em;
width: 3em;
height: 3em;
border-radius: 50%;
background: var(--jp-brand-color3);
background: linear-gradient(
to right,
#f37626 10%,
rgba(255, 255, 255, 0) 42%
);
position: relative;
animation: load3 1s infinite linear, fadeIn 1s;
}
.jp-SpinnerContent::before {
width: 50%;
height: 50%;
background: #f37626;
border-radius: 100% 0 0;
position: absolute;
top: 0;
left: 0;
content: '';
}
.jp-SpinnerContent::after {
background: var(--jp-layout-color0);
width: 75%;
height: 75%;
border-radius: 50%;
content: '';
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes load3 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
button.jp-mod-styled {
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color0);
border: none;
box-sizing: border-box;
text-align: center;
line-height: 32px;
height: 32px;
padding: 0 12px;
letter-spacing: 0.8px;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
input.jp-mod-styled {
background: var(--jp-input-background);
height: 28px;
box-sizing: border-box;
border: var(--jp-border-width) solid var(--jp-border-color1);
padding-left: 7px;
padding-right: 7px;
font-size: var(--jp-ui-font-size2);
color: var(--jp-ui-font-color0);
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
input[type='checkbox'].jp-mod-styled {
appearance: checkbox;
-webkit-appearance: checkbox;
-moz-appearance: checkbox;
height: auto;
}
input.jp-mod-styled:focus {
border: var(--jp-border-width) solid var(--md-blue-500);
box-shadow: inset 0 0 4px var(--md-blue-300);
}
.jp-select-wrapper {
display: flex;
position: relative;
flex-direction: column;
padding: 1px;
background-color: var(--jp-layout-color1);
box-sizing: border-box;
margin-bottom: 12px;
}
.jp-select-wrapper:not(.multiple) {
height: 28px;
}
.jp-select-wrapper.jp-mod-focused select.jp-mod-styled {
border: var(--jp-border-width) solid var(--jp-input-active-border-color);
box-shadow: var(--jp-input-box-shadow);
background-color: var(--jp-input-active-background);
}
select.jp-mod-styled:hover {
cursor: pointer;
color: var(--jp-ui-font-color0);
background-color: var(--jp-input-hover-background);
box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.5);
}
select.jp-mod-styled {
flex: 1 1 auto;
width: 100%;
font-size: var(--jp-ui-font-size2);
background: var(--jp-input-background);
color: var(--jp-ui-font-color0);
padding: 0 25px 0 8px;
border: var(--jp-border-width) solid var(--jp-input-border-color);
border-radius: 0;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
select.jp-mod-styled:not([multiple]) {
height: 32px;
}
select.jp-mod-styled[multiple] {
max-height: 200px;
overflow-y: auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-switch {
display: flex;
align-items: center;
padding-left: 4px;
padding-right: 4px;
font-size: var(--jp-ui-font-size1);
background-color: transparent;
color: var(--jp-ui-font-color1);
border: none;
height: 20px;
}
.jp-switch:hover {
background-color: var(--jp-layout-color2);
}
.jp-switch-label {
margin-right: 5px;
font-family: var(--jp-ui-font-family);
}
.jp-switch-track {
cursor: pointer;
background-color: var(--jp-switch-color, var(--jp-border-color1));
-webkit-transition: 0.4s;
transition: 0.4s;
border-radius: 34px;
height: 16px;
width: 35px;
position: relative;
}
.jp-switch-track::before {
content: '';
position: absolute;
height: 10px;
width: 10px;
margin: 3px;
left: 0;
background-color: var(--jp-ui-inverse-font-color1);
-webkit-transition: 0.4s;
transition: 0.4s;
border-radius: 50%;
}
.jp-switch[aria-checked='true'] .jp-switch-track {
background-color: var(--jp-switch-true-position-color, var(--jp-warn-color0));
}
.jp-switch[aria-checked='true'] .jp-switch-track::before {
/* track width (35) - margins (3 + 3) - thumb width (10) */
left: 19px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
:root {
--jp-private-toolbar-height: calc(
28px + var(--jp-border-width)
); /* leave 28px for content */
}
.jp-Toolbar {
color: var(--jp-ui-font-color1);
flex: 0 0 auto;
display: flex;
flex-direction: row;
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
box-shadow: var(--jp-toolbar-box-shadow);
background: var(--jp-toolbar-background);
min-height: var(--jp-toolbar-micro-height);
padding: 2px;
z-index: 8;
overflow-x: hidden;
}
/* Toolbar items */
.jp-Toolbar > .jp-Toolbar-item.jp-Toolbar-spacer {
flex-grow: 1;
flex-shrink: 1;
}
.jp-Toolbar-item.jp-Toolbar-kernelStatus {
display: inline-block;
width: 32px;
background-repeat: no-repeat;
background-position: center;
background-size: 16px;
}
.jp-Toolbar > .jp-Toolbar-item {
flex: 0 0 auto;
display: flex;
padding-left: 1px;
padding-right: 1px;
font-size: var(--jp-ui-font-size1);
line-height: var(--jp-private-toolbar-height);
height: 100%;
}
/* Toolbar buttons */
/* This is the div we use to wrap the react component into a Widget */
div.jp-ToolbarButton {
color: transparent;
border: none;
box-sizing: border-box;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
padding: 0;
margin: 0;
}
button.jp-ToolbarButtonComponent {
background: var(--jp-layout-color1);
border: none;
box-sizing: border-box;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
padding: 0 6px;
margin: 0;
height: 24px;
border-radius: var(--jp-border-radius);
display: flex;
align-items: center;
text-align: center;
font-size: 14px;
min-width: unset;
min-height: unset;
}
button.jp-ToolbarButtonComponent:disabled {
opacity: 0.4;
}
button.jp-ToolbarButtonComponent > span {
padding: 0;
flex: 0 0 auto;
}
button.jp-ToolbarButtonComponent .jp-ToolbarButtonComponent-label {
font-size: var(--jp-ui-font-size1);
line-height: 100%;
padding-left: 2px;
color: var(--jp-ui-font-color1);
font-family: var(--jp-ui-font-family);
}
#jp-main-dock-panel[data-mode='single-document']
.jp-MainAreaWidget
> .jp-Toolbar.jp-Toolbar-micro {
padding: 0;
min-height: 0;
}
#jp-main-dock-panel[data-mode='single-document']
.jp-MainAreaWidget
> .jp-Toolbar {
border: none;
box-shadow: none;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.jp-WindowedPanel-outer {
position: relative;
overflow-y: auto;
}
.jp-WindowedPanel-inner {
position: relative;
}
.jp-WindowedPanel-window {
position: absolute;
left: 0;
right: 0;
overflow: visible;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/* Sibling imports */
body {
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
}
/* Disable native link decoration styles everywhere outside of dialog boxes */
a {
text-decoration: unset;
color: unset;
}
a:hover {
text-decoration: unset;
color: unset;
}
/* Accessibility for links inside dialog box text */
.jp-Dialog-content a {
text-decoration: revert;
color: var(--jp-content-link-color);
}
.jp-Dialog-content a:hover {
text-decoration: revert;
}
/* Styles for ui-components */
.jp-Button {
color: var(--jp-ui-font-color2);
border-radius: var(--jp-border-radius);
padding: 0 12px;
font-size: var(--jp-ui-font-size1);
/* Copy from blueprint 3 */
display: inline-flex;
flex-direction: row;
border: none;
cursor: pointer;
align-items: center;
justify-content: center;
text-align: left;
vertical-align: middle;
min-height: 30px;
min-width: 30px;
}
.jp-Button:disabled {
cursor: not-allowed;
}
.jp-Button:empty {
padding: 0 !important;
}
.jp-Button.jp-mod-small {
min-height: 24px;
min-width: 24px;
font-size: 12px;
padding: 0 7px;
}
/* Use our own theme for hover styles */
.jp-Button.jp-mod-minimal:hover {
background-color: var(--jp-layout-color2);
}
.jp-Button.jp-mod-minimal {
background: none;
}
.jp-InputGroup {
display: block;
position: relative;
}
.jp-InputGroup input {
box-sizing: border-box;
border: none;
border-radius: 0;
background-color: transparent;
color: var(--jp-ui-font-color0);
box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
padding-bottom: 0;
padding-top: 0;
padding-left: 10px;
padding-right: 28px;
position: relative;
width: 100%;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-size: 14px;
font-weight: 400;
height: 30px;
line-height: 30px;
outline: none;
vertical-align: middle;
}
.jp-InputGroup input:focus {
box-shadow: inset 0 0 0 var(--jp-border-width)
var(--jp-input-active-box-shadow-color),
inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
}
.jp-InputGroup input:disabled {
cursor: not-allowed;
resize: block;
background-color: var(--jp-layout-color2);
color: var(--jp-ui-font-color2);
}
.jp-InputGroup input:disabled ~ span {
cursor: not-allowed;
color: var(--jp-ui-font-color2);
}
.jp-InputGroup input::placeholder,
input::placeholder {
color: var(--jp-ui-font-color2);
}
.jp-InputGroupAction {
position: absolute;
bottom: 1px;
right: 0;
padding: 6px;
}
.jp-HTMLSelect.jp-DefaultStyle select {
background-color: initial;
border: none;
border-radius: 0;
box-shadow: none;
color: var(--jp-ui-font-color0);
display: block;
font-size: var(--jp-ui-font-size1);
font-family: var(--jp-ui-font-family);
height: 24px;
line-height: 14px;
padding: 0 25px 0 10px;
text-align: left;
-moz-appearance: none;
-webkit-appearance: none;
}
.jp-HTMLSelect.jp-DefaultStyle select:disabled {
background-color: var(--jp-layout-color2);
color: var(--jp-ui-font-color2);
cursor: not-allowed;
resize: block;
}
.jp-HTMLSelect.jp-DefaultStyle select:disabled ~ span {
cursor: not-allowed;
}
/* Use our own theme for hover and option styles */
/* stylelint-disable-next-line selector-max-type */
.jp-HTMLSelect.jp-DefaultStyle select:hover,
.jp-HTMLSelect.jp-DefaultStyle select > option {
background-color: var(--jp-layout-color2);
color: var(--jp-ui-font-color0);
}
select {
box-sizing: border-box;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Styles
|----------------------------------------------------------------------------*/
.jp-StatusBar-Widget {
display: flex;
align-items: center;
background: var(--jp-layout-color2);
min-height: var(--jp-statusbar-height);
justify-content: space-between;
padding: 0 10px;
}
.jp-StatusBar-Left {
display: flex;
align-items: center;
flex-direction: row;
}
.jp-StatusBar-Middle {
display: flex;
align-items: center;
}
.jp-StatusBar-Right {
display: flex;
align-items: center;
flex-direction: row-reverse;
}
.jp-StatusBar-Item {
max-height: var(--jp-statusbar-height);
margin: 0 2px;
height: var(--jp-statusbar-height);
white-space: nowrap;
text-overflow: ellipsis;
color: var(--jp-ui-font-color1);
padding: 0 6px;
}
.jp-mod-highlighted:hover {
background-color: var(--jp-layout-color3);
}
.jp-mod-clicked {
background-color: var(--jp-brand-color1);
}
.jp-mod-clicked:hover {
background-color: var(--jp-brand-color0);
}
.jp-mod-clicked .jp-StatusBar-TextItem {
color: var(--jp-ui-inverse-font-color1);
}
.jp-StatusBar-HoverItem {
box-shadow: '0px 4px 4px rgba(0, 0, 0, 0.25)';
}
.jp-StatusBar-TextItem {
font-size: var(--jp-ui-font-size1);
font-family: var(--jp-ui-font-family);
line-height: 24px;
color: var(--jp-ui-font-color1);
}
.jp-StatusBar-GroupItem {
display: flex;
align-items: center;
flex-direction: row;
}
.jp-Statusbar-ProgressCircle svg {
display: block;
margin: 0 auto;
width: 16px;
height: 24px;
align-self: normal;
}
.jp-Statusbar-ProgressCircle path {
fill: var(--jp-inverse-layout-color3);
}
.jp-Statusbar-ProgressBar-progress-bar {
height: 10px;
width: 100px;
border: solid 0.25px var(--jp-brand-color2);
border-radius: 3px;
overflow: hidden;
align-self: center;
}
.jp-Statusbar-ProgressBar-progress-bar > div {
background-color: var(--jp-brand-color2);
background-image: linear-gradient(
-45deg,
rgba(255, 255, 255, 0.2) 25%,
transparent 25%,
transparent 50%,
rgba(255, 255, 255, 0.2) 50%,
rgba(255, 255, 255, 0.2) 75%,
transparent 75%,
transparent
);
background-size: 40px 40px;
float: left;
width: 0%;
height: 100%;
font-size: 12px;
line-height: 14px;
color: #fff;
text-align: center;
animation: jp-Statusbar-ExecutionTime-progress-bar 2s linear infinite;
}
.jp-Statusbar-ProgressBar-progress-bar p {
color: var(--jp-ui-font-color1);
font-family: var(--jp-ui-font-family);
font-size: var(--jp-ui-font-size1);
line-height: 10px;
width: 100px;
}
@keyframes jp-Statusbar-ExecutionTime-progress-bar {
0% {
background-position: 0 0;
}
100% {
background-position: 40px 40px;
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-commandpalette-search-height: 28px;
}
/*-----------------------------------------------------------------------------
| Overall styles
|----------------------------------------------------------------------------*/
.lm-CommandPalette {
padding-bottom: 0;
color: var(--jp-ui-font-color1);
background: var(--jp-layout-color1);
/* This is needed so that all font sizing of children done in ems is
* relative to this base size */
font-size: var(--jp-ui-font-size1);
}
/*-----------------------------------------------------------------------------
| Modal variant
|----------------------------------------------------------------------------*/
.jp-ModalCommandPalette {
position: absolute;
z-index: 10000;
top: 38px;
left: 30%;
margin: 0;
padding: 4px;
width: 40%;
box-shadow: var(--jp-elevation-z4);
border-radius: 4px;
background: var(--jp-layout-color0);
}
.jp-ModalCommandPalette .lm-CommandPalette {
max-height: 40vh;
}
.jp-ModalCommandPalette .lm-CommandPalette .lm-close-icon::after {
display: none;
}
.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-header {
display: none;
}
.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item {
margin-left: 4px;
margin-right: 4px;
}
.jp-ModalCommandPalette
.lm-CommandPalette
.lm-CommandPalette-item.lm-mod-disabled {
display: none;
}
/*-----------------------------------------------------------------------------
| Search
|----------------------------------------------------------------------------*/
.lm-CommandPalette-search {
padding: 4px;
background-color: var(--jp-layout-color1);
z-index: 2;
}
.lm-CommandPalette-wrapper {
overflow: overlay;
padding: 0 9px;
background-color: var(--jp-input-active-background);
height: 30px;
box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
}
.lm-CommandPalette.lm-mod-focused .lm-CommandPalette-wrapper {
box-shadow: inset 0 0 0 1px var(--jp-input-active-box-shadow-color),
inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
}
.jp-SearchIconGroup {
color: white;
background-color: var(--jp-brand-color1);
position: absolute;
top: 4px;
right: 4px;
padding: 5px 5px 1px;
}
.jp-SearchIconGroup svg {
height: 20px;
width: 20px;
}
.jp-SearchIconGroup .jp-icon3[fill] {
fill: var(--jp-layout-color0);
}
.lm-CommandPalette-input {
background: transparent;
width: calc(100% - 18px);
float: left;
border: none;
outline: none;
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color0);
line-height: var(--jp-private-commandpalette-search-height);
}
.lm-CommandPalette-input::-webkit-input-placeholder,
.lm-CommandPalette-input::-moz-placeholder,
.lm-CommandPalette-input:-ms-input-placeholder {
color: var(--jp-ui-font-color2);
font-size: var(--jp-ui-font-size1);
}
/*-----------------------------------------------------------------------------
| Results
|----------------------------------------------------------------------------*/
.lm-CommandPalette-header:first-child {
margin-top: 0;
}
.lm-CommandPalette-header {
border-bottom: solid var(--jp-border-width) var(--jp-border-color2);
color: var(--jp-ui-font-color1);
cursor: pointer;
display: flex;
font-size: var(--jp-ui-font-size0);
font-weight: 600;
letter-spacing: 1px;
margin-top: 8px;
padding: 8px 0 8px 12px;
text-transform: uppercase;
}
.lm-CommandPalette-header.lm-mod-active {
background: var(--jp-layout-color2);
}
.lm-CommandPalette-header > mark {
background-color: transparent;
font-weight: bold;
color: var(--jp-ui-font-color1);
}
.lm-CommandPalette-item {
padding: 4px 12px 4px 4px;
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
font-weight: 400;
display: flex;
}
.lm-CommandPalette-item.lm-mod-disabled {
color: var(--jp-ui-font-color2);
}
.lm-CommandPalette-item.lm-mod-active {
color: var(--jp-ui-inverse-font-color1);
background: var(--jp-brand-color1);
}
.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark {
color: var(--jp-ui-inverse-font-color0);
}
.lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill] {
fill: var(--jp-layout-color0);
}
.lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled) {
color: var(--jp-ui-inverse-font-color1);
background: var(--jp-brand-color1);
}
.lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled) {
background: var(--jp-layout-color2);
}
.lm-CommandPalette-itemContent {
overflow: hidden;
}
.lm-CommandPalette-itemLabel > mark {
color: var(--jp-ui-font-color0);
background-color: transparent;
font-weight: bold;
}
.lm-CommandPalette-item.lm-mod-disabled mark {
color: var(--jp-ui-font-color2);
}
.lm-CommandPalette-item .lm-CommandPalette-itemIcon {
margin: 0 4px 0 0;
position: relative;
width: 16px;
top: 2px;
flex: 0 0 auto;
}
.lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon {
opacity: 0.6;
}
.lm-CommandPalette-item .lm-CommandPalette-itemShortcut {
flex: 0 0 auto;
}
.lm-CommandPalette-itemCaption {
display: none;
}
.lm-CommandPalette-content {
background-color: var(--jp-layout-color1);
}
.lm-CommandPalette-content:empty::after {
content: 'No results';
margin: auto;
margin-top: 20px;
width: 100px;
display: block;
font-size: var(--jp-ui-font-size2);
font-family: var(--jp-ui-font-family);
font-weight: lighter;
}
.lm-CommandPalette-emptyMessage {
text-align: center;
margin-top: 24px;
line-height: 1.32;
padding: 0 8px;
color: var(--jp-content-font-color3);
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Dialog {
position: absolute;
z-index: 10000;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
top: 0;
left: 0;
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background: var(--jp-dialog-background);
}
.jp-Dialog-content {
display: flex;
flex-direction: column;
margin-left: auto;
margin-right: auto;
background: var(--jp-layout-color1);
padding: 24px 24px 12px;
min-width: 300px;
min-height: 150px;
max-width: 1000px;
max-height: 500px;
box-sizing: border-box;
box-shadow: var(--jp-elevation-z20);
word-wrap: break-word;
border-radius: var(--jp-border-radius);
/* This is needed so that all font sizing of children done in ems is
* relative to this base size */
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color1);
resize: both;
}
.jp-Dialog-content.jp-Dialog-content-small {
max-width: 500px;
}
.jp-Dialog-button {
overflow: visible;
}
button.jp-Dialog-button:focus {
outline: 1px solid var(--jp-brand-color1);
outline-offset: 4px;
-moz-outline-radius: 0;
}
button.jp-Dialog-button:focus::-moz-focus-inner {
border: 0;
}
button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus,
button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus,
button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {
outline-offset: 4px;
-moz-outline-radius: 0;
}
button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus {
outline: 1px solid var(--jp-accept-color-normal, var(--jp-brand-color1));
}
button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus {
outline: 1px solid var(--jp-warn-color-normal, var(--jp-error-color1));
}
button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {
outline: 1px solid var(--jp-reject-color-normal, var(--md-grey-600));
}
button.jp-Dialog-close-button {
padding: 0;
height: 100%;
min-width: unset;
min-height: unset;
}
.jp-Dialog-header {
display: flex;
justify-content: space-between;
flex: 0 0 auto;
padding-bottom: 12px;
font-size: var(--jp-ui-font-size3);
font-weight: 400;
color: var(--jp-ui-font-color1);
}
.jp-Dialog-body {
display: flex;
flex-direction: column;
flex: 1 1 auto;
font-size: var(--jp-ui-font-size1);
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
overflow: auto;
}
.jp-Dialog-footer {
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
flex: 0 0 auto;
margin-left: -12px;
margin-right: -12px;
padding: 12px;
}
.jp-Dialog-checkbox {
padding-right: 5px;
}
.jp-Dialog-checkbox > input:focus-visible {
outline: 1px solid var(--jp-input-active-border-color);
outline-offset: 1px;
}
.jp-Dialog-spacer {
flex: 1 1 auto;
}
.jp-Dialog-title {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.jp-Dialog-body > .jp-select-wrapper {
width: 100%;
}
.jp-Dialog-body > button {
padding: 0 16px;
}
.jp-Dialog-body > label {
line-height: 1.4;
color: var(--jp-ui-font-color0);
}
.jp-Dialog-button.jp-mod-styled:not(:last-child) {
margin-right: 12px;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.jp-Input-Boolean-Dialog {
flex-direction: row-reverse;
align-items: end;
width: 100%;
}
.jp-Input-Boolean-Dialog > label {
flex: 1 1 auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-MainAreaWidget > :focus {
outline: none;
}
.jp-MainAreaWidget .jp-MainAreaWidget-error {
padding: 6px;
}
.jp-MainAreaWidget .jp-MainAreaWidget-error > pre {
width: auto;
padding: 10px;
background: var(--jp-error-color3);
border: var(--jp-border-width) solid var(--jp-error-color1);
border-radius: var(--jp-border-radius);
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
white-space: pre-wrap;
word-wrap: break-word;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/**
* google-material-color v1.2.6
* https://github.com/danlevan/google-material-color
*/
:root {
--md-red-50: #ffebee;
--md-red-100: #ffcdd2;
--md-red-200: #ef9a9a;
--md-red-300: #e57373;
--md-red-400: #ef5350;
--md-red-500: #f44336;
--md-red-600: #e53935;
--md-red-700: #d32f2f;
--md-red-800: #c62828;
--md-red-900: #b71c1c;
--md-red-A100: #ff8a80;
--md-red-A200: #ff5252;
--md-red-A400: #ff1744;
--md-red-A700: #d50000;
--md-pink-50: #fce4ec;
--md-pink-100: #f8bbd0;
--md-pink-200: #f48fb1;
--md-pink-300: #f06292;
--md-pink-400: #ec407a;
--md-pink-500: #e91e63;
--md-pink-600: #d81b60;
--md-pink-700: #c2185b;
--md-pink-800: #ad1457;
--md-pink-900: #880e4f;
--md-pink-A100: #ff80ab;
--md-pink-A200: #ff4081;
--md-pink-A400: #f50057;
--md-pink-A700: #c51162;
--md-purple-50: #f3e5f5;
--md-purple-100: #e1bee7;
--md-purple-200: #ce93d8;
--md-purple-300: #ba68c8;
--md-purple-400: #ab47bc;
--md-purple-500: #9c27b0;
--md-purple-600: #8e24aa;
--md-purple-700: #7b1fa2;
--md-purple-800: #6a1b9a;
--md-purple-900: #4a148c;
--md-purple-A100: #ea80fc;
--md-purple-A200: #e040fb;
--md-purple-A400: #d500f9;
--md-purple-A700: #a0f;
--md-deep-purple-50: #ede7f6;
--md-deep-purple-100: #d1c4e9;
--md-deep-purple-200: #b39ddb;
--md-deep-purple-300: #9575cd;
--md-deep-purple-400: #7e57c2;
--md-deep-purple-500: #673ab7;
--md-deep-purple-600: #5e35b1;
--md-deep-purple-700: #512da8;
--md-deep-purple-800: #4527a0;
--md-deep-purple-900: #311b92;
--md-deep-purple-A100: #b388ff;
--md-deep-purple-A200: #7c4dff;
--md-deep-purple-A400: #651fff;
--md-deep-purple-A700: #6200ea;
--md-indigo-50: #e8eaf6;
--md-indigo-100: #c5cae9;
--md-indigo-200: #9fa8da;
--md-indigo-300: #7986cb;
--md-indigo-400: #5c6bc0;
--md-indigo-500: #3f51b5;
--md-indigo-600: #3949ab;
--md-indigo-700: #303f9f;
--md-indigo-800: #283593;
--md-indigo-900: #1a237e;
--md-indigo-A100: #8c9eff;
--md-indigo-A200: #536dfe;
--md-indigo-A400: #3d5afe;
--md-indigo-A700: #304ffe;
--md-blue-50: #e3f2fd;
--md-blue-100: #bbdefb;
--md-blue-200: #90caf9;
--md-blue-300: #64b5f6;
--md-blue-400: #42a5f5;
--md-blue-500: #2196f3;
--md-blue-600: #1e88e5;
--md-blue-700: #1976d2;
--md-blue-800: #1565c0;
--md-blue-900: #0d47a1;
--md-blue-A100: #82b1ff;
--md-blue-A200: #448aff;
--md-blue-A400: #2979ff;
--md-blue-A700: #2962ff;
--md-light-blue-50: #e1f5fe;
--md-light-blue-100: #b3e5fc;
--md-light-blue-200: #81d4fa;
--md-light-blue-300: #4fc3f7;
--md-light-blue-400: #29b6f6;
--md-light-blue-500: #03a9f4;
--md-light-blue-600: #039be5;
--md-light-blue-700: #0288d1;
--md-light-blue-800: #0277bd;
--md-light-blue-900: #01579b;
--md-light-blue-A100: #80d8ff;
--md-light-blue-A200: #40c4ff;
--md-light-blue-A400: #00b0ff;
--md-light-blue-A700: #0091ea;
--md-cyan-50: #e0f7fa;
--md-cyan-100: #b2ebf2;
--md-cyan-200: #80deea;
--md-cyan-300: #4dd0e1;
--md-cyan-400: #26c6da;
--md-cyan-500: #00bcd4;
--md-cyan-600: #00acc1;
--md-cyan-700: #0097a7;
--md-cyan-800: #00838f;
--md-cyan-900: #006064;
--md-cyan-A100: #84ffff;
--md-cyan-A200: #18ffff;
--md-cyan-A400: #00e5ff;
--md-cyan-A700: #00b8d4;
--md-teal-50: #e0f2f1;
--md-teal-100: #b2dfdb;
--md-teal-200: #80cbc4;
--md-teal-300: #4db6ac;
--md-teal-400: #26a69a;
--md-teal-500: #009688;
--md-teal-600: #00897b;
--md-teal-700: #00796b;
--md-teal-800: #00695c;
--md-teal-900: #004d40;
--md-teal-A100: #a7ffeb;
--md-teal-A200: #64ffda;
--md-teal-A400: #1de9b6;
--md-teal-A700: #00bfa5;
--md-green-50: #e8f5e9;
--md-green-100: #c8e6c9;
--md-green-200: #a5d6a7;
--md-green-300: #81c784;
--md-green-400: #66bb6a;
--md-green-500: #4caf50;
--md-green-600: #43a047;
--md-green-700: #388e3c;
--md-green-800: #2e7d32;
--md-green-900: #1b5e20;
--md-green-A100: #b9f6ca;
--md-green-A200: #69f0ae;
--md-green-A400: #00e676;
--md-green-A700: #00c853;
--md-light-green-50: #f1f8e9;
--md-light-green-100: #dcedc8;
--md-light-green-200: #c5e1a5;
--md-light-green-300: #aed581;
--md-light-green-400: #9ccc65;
--md-light-green-500: #8bc34a;
--md-light-green-600: #7cb342;
--md-light-green-700: #689f38;
--md-light-green-800: #558b2f;
--md-light-green-900: #33691e;
--md-light-green-A100: #ccff90;
--md-light-green-A200: #b2ff59;
--md-light-green-A400: #76ff03;
--md-light-green-A700: #64dd17;
--md-lime-50: #f9fbe7;
--md-lime-100: #f0f4c3;
--md-lime-200: #e6ee9c;
--md-lime-300: #dce775;
--md-lime-400: #d4e157;
--md-lime-500: #cddc39;
--md-lime-600: #c0ca33;
--md-lime-700: #afb42b;
--md-lime-800: #9e9d24;
--md-lime-900: #827717;
--md-lime-A100: #f4ff81;
--md-lime-A200: #eeff41;
--md-lime-A400: #c6ff00;
--md-lime-A700: #aeea00;
--md-yellow-50: #fffde7;
--md-yellow-100: #fff9c4;
--md-yellow-200: #fff59d;
--md-yellow-300: #fff176;
--md-yellow-400: #ffee58;
--md-yellow-500: #ffeb3b;
--md-yellow-600: #fdd835;
--md-yellow-700: #fbc02d;
--md-yellow-800: #f9a825;
--md-yellow-900: #f57f17;
--md-yellow-A100: #ffff8d;
--md-yellow-A200: #ff0;
--md-yellow-A400: #ffea00;
--md-yellow-A700: #ffd600;
--md-amber-50: #fff8e1;
--md-amber-100: #ffecb3;
--md-amber-200: #ffe082;
--md-amber-300: #ffd54f;
--md-amber-400: #ffca28;
--md-amber-500: #ffc107;
--md-amber-600: #ffb300;
--md-amber-700: #ffa000;
--md-amber-800: #ff8f00;
--md-amber-900: #ff6f00;
--md-amber-A100: #ffe57f;
--md-amber-A200: #ffd740;
--md-amber-A400: #ffc400;
--md-amber-A700: #ffab00;
--md-orange-50: #fff3e0;
--md-orange-100: #ffe0b2;
--md-orange-200: #ffcc80;
--md-orange-300: #ffb74d;
--md-orange-400: #ffa726;
--md-orange-500: #ff9800;
--md-orange-600: #fb8c00;
--md-orange-700: #f57c00;
--md-orange-800: #ef6c00;
--md-orange-900: #e65100;
--md-orange-A100: #ffd180;
--md-orange-A200: #ffab40;
--md-orange-A400: #ff9100;
--md-orange-A700: #ff6d00;
--md-deep-orange-50: #fbe9e7;
--md-deep-orange-100: #ffccbc;
--md-deep-orange-200: #ffab91;
--md-deep-orange-300: #ff8a65;
--md-deep-orange-400: #ff7043;
--md-deep-orange-500: #ff5722;
--md-deep-orange-600: #f4511e;
--md-deep-orange-700: #e64a19;
--md-deep-orange-800: #d84315;
--md-deep-orange-900: #bf360c;
--md-deep-orange-A100: #ff9e80;
--md-deep-orange-A200: #ff6e40;
--md-deep-orange-A400: #ff3d00;
--md-deep-orange-A700: #dd2c00;
--md-brown-50: #efebe9;
--md-brown-100: #d7ccc8;
--md-brown-200: #bcaaa4;
--md-brown-300: #a1887f;
--md-brown-400: #8d6e63;
--md-brown-500: #795548;
--md-brown-600: #6d4c41;
--md-brown-700: #5d4037;
--md-brown-800: #4e342e;
--md-brown-900: #3e2723;
--md-grey-50: #fafafa;
--md-grey-100: #f5f5f5;
--md-grey-200: #eee;
--md-grey-300: #e0e0e0;
--md-grey-400: #bdbdbd;
--md-grey-500: #9e9e9e;
--md-grey-600: #757575;
--md-grey-700: #616161;
--md-grey-800: #424242;
--md-grey-900: #212121;
--md-blue-grey-50: #eceff1;
--md-blue-grey-100: #cfd8dc;
--md-blue-grey-200: #b0bec5;
--md-blue-grey-300: #90a4ae;
--md-blue-grey-400: #78909c;
--md-blue-grey-500: #607d8b;
--md-blue-grey-600: #546e7a;
--md-blue-grey-700: #455a64;
--md-blue-grey-800: #37474f;
--md-blue-grey-900: #263238;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| RenderedText
|----------------------------------------------------------------------------*/
:root {
/* This is the padding value to fill the gaps between lines containing spans with background color. */
--jp-private-code-span-padding: calc(
(var(--jp-code-line-height) - 1) * var(--jp-code-font-size) / 2
);
}
.jp-RenderedText {
text-align: left;
padding-left: var(--jp-code-padding);
line-height: var(--jp-code-line-height);
font-family: var(--jp-code-font-family);
}
.jp-RenderedText pre,
.jp-RenderedJavaScript pre,
.jp-RenderedHTMLCommon pre {
color: var(--jp-content-font-color1);
font-size: var(--jp-code-font-size);
border: none;
margin: 0;
padding: 0;
}
.jp-RenderedText pre a:link {
text-decoration: none;
color: var(--jp-content-link-color);
}
.jp-RenderedText pre a:hover {
text-decoration: underline;
color: var(--jp-content-link-color);
}
.jp-RenderedText pre a:visited {
text-decoration: none;
color: var(--jp-content-link-color);
}
/* console foregrounds and backgrounds */
.jp-RenderedText pre .ansi-black-fg {
color: #3e424d;
}
.jp-RenderedText pre .ansi-red-fg {
color: #e75c58;
}
.jp-RenderedText pre .ansi-green-fg {
color: #00a250;
}
.jp-RenderedText pre .ansi-yellow-fg {
color: #ddb62b;
}
.jp-RenderedText pre .ansi-blue-fg {
color: #208ffb;
}
.jp-RenderedText pre .ansi-magenta-fg {
color: #d160c4;
}
.jp-RenderedText pre .ansi-cyan-fg {
color: #60c6c8;
}
.jp-RenderedText pre .ansi-white-fg {
color: #c5c1b4;
}
.jp-RenderedText pre .ansi-black-bg {
background-color: #3e424d;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-red-bg {
background-color: #e75c58;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-green-bg {
background-color: #00a250;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-yellow-bg {
background-color: #ddb62b;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-blue-bg {
background-color: #208ffb;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-magenta-bg {
background-color: #d160c4;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-cyan-bg {
background-color: #60c6c8;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-white-bg {
background-color: #c5c1b4;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-black-intense-fg {
color: #282c36;
}
.jp-RenderedText pre .ansi-red-intense-fg {
color: #b22b31;
}
.jp-RenderedText pre .ansi-green-intense-fg {
color: #007427;
}
.jp-RenderedText pre .ansi-yellow-intense-fg {
color: #b27d12;
}
.jp-RenderedText pre .ansi-blue-intense-fg {
color: #0065ca;
}
.jp-RenderedText pre .ansi-magenta-intense-fg {
color: #a03196;
}
.jp-RenderedText pre .ansi-cyan-intense-fg {
color: #258f8f;
}
.jp-RenderedText pre .ansi-white-intense-fg {
color: #a1a6b2;
}
.jp-RenderedText pre .ansi-black-intense-bg {
background-color: #282c36;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-red-intense-bg {
background-color: #b22b31;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-green-intense-bg {
background-color: #007427;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-yellow-intense-bg {
background-color: #b27d12;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-blue-intense-bg {
background-color: #0065ca;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-magenta-intense-bg {
background-color: #a03196;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-cyan-intense-bg {
background-color: #258f8f;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-white-intense-bg {
background-color: #a1a6b2;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-default-inverse-fg {
color: var(--jp-ui-inverse-font-color0);
}
.jp-RenderedText pre .ansi-default-inverse-bg {
background-color: var(--jp-inverse-layout-color0);
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-bold {
font-weight: bold;
}
.jp-RenderedText pre .ansi-underline {
text-decoration: underline;
}
.jp-RenderedText[data-mime-type='application/vnd.jupyter.stderr'] {
background: var(--jp-rendermime-error-background);
padding-top: var(--jp-code-padding);
}
/*-----------------------------------------------------------------------------
| RenderedLatex
|----------------------------------------------------------------------------*/
.jp-RenderedLatex {
color: var(--jp-content-font-color1);
font-size: var(--jp-content-font-size1);
line-height: var(--jp-content-line-height);
}
/* Left-justify outputs.*/
.jp-OutputArea-output.jp-RenderedLatex {
padding: var(--jp-code-padding);
text-align: left;
}
/*-----------------------------------------------------------------------------
| RenderedHTML
|----------------------------------------------------------------------------*/
.jp-RenderedHTMLCommon {
color: var(--jp-content-font-color1);
font-family: var(--jp-content-font-family);
font-size: var(--jp-content-font-size1);
line-height: var(--jp-content-line-height);
/* Give a bit more R padding on Markdown text to keep line lengths reasonable */
padding-right: 20px;
}
.jp-RenderedHTMLCommon em {
font-style: italic;
}
.jp-RenderedHTMLCommon strong {
font-weight: bold;
}
.jp-RenderedHTMLCommon u {
text-decoration: underline;
}
.jp-RenderedHTMLCommon a:link {
text-decoration: none;
color: var(--jp-content-link-color);
}
.jp-RenderedHTMLCommon a:hover {
text-decoration: underline;
color: var(--jp-content-link-color);
}
.jp-RenderedHTMLCommon a:visited {
text-decoration: none;
color: var(--jp-content-link-color);
}
/* Headings */
.jp-RenderedHTMLCommon h1,
.jp-RenderedHTMLCommon h2,
.jp-RenderedHTMLCommon h3,
.jp-RenderedHTMLCommon h4,
.jp-RenderedHTMLCommon h5,
.jp-RenderedHTMLCommon h6 {
line-height: var(--jp-content-heading-line-height);
font-weight: var(--jp-content-heading-font-weight);
font-style: normal;
margin: var(--jp-content-heading-margin-top) 0
var(--jp-content-heading-margin-bottom) 0;
}
.jp-RenderedHTMLCommon h1:first-child,
.jp-RenderedHTMLCommon h2:first-child,
.jp-RenderedHTMLCommon h3:first-child,
.jp-RenderedHTMLCommon h4:first-child,
.jp-RenderedHTMLCommon h5:first-child,
.jp-RenderedHTMLCommon h6:first-child {
margin-top: calc(0.5 * var(--jp-content-heading-margin-top));
}
.jp-RenderedHTMLCommon h1:last-child,
.jp-RenderedHTMLCommon h2:last-child,
.jp-RenderedHTMLCommon h3:last-child,
.jp-RenderedHTMLCommon h4:last-child,
.jp-RenderedHTMLCommon h5:last-child,
.jp-RenderedHTMLCommon h6:last-child {
margin-bottom: calc(0.5 * var(--jp-content-heading-margin-bottom));
}
.jp-RenderedHTMLCommon h1 {
font-size: var(--jp-content-font-size5);
}
.jp-RenderedHTMLCommon h2 {
font-size: var(--jp-content-font-size4);
}
.jp-RenderedHTMLCommon h3 {
font-size: var(--jp-content-font-size3);
}
.jp-RenderedHTMLCommon h4 {
font-size: var(--jp-content-font-size2);
}
.jp-RenderedHTMLCommon h5 {
font-size: var(--jp-content-font-size1);
}
.jp-RenderedHTMLCommon h6 {
font-size: var(--jp-content-font-size0);
}
/* Lists */
/* stylelint-disable selector-max-type, selector-max-compound-selectors */
.jp-RenderedHTMLCommon ul:not(.list-inline),
.jp-RenderedHTMLCommon ol:not(.list-inline) {
padding-left: 2em;
}
.jp-RenderedHTMLCommon ul {
list-style: disc;
}
.jp-RenderedHTMLCommon ul ul {
list-style: square;
}
.jp-RenderedHTMLCommon ul ul ul {
list-style: circle;
}
.jp-RenderedHTMLCommon ol {
list-style: decimal;
}
.jp-RenderedHTMLCommon ol ol {
list-style: upper-alpha;
}
.jp-RenderedHTMLCommon ol ol ol {
list-style: lower-alpha;
}
.jp-RenderedHTMLCommon ol ol ol ol {
list-style: lower-roman;
}
.jp-RenderedHTMLCommon ol ol ol ol ol {
list-style: decimal;
}
.jp-RenderedHTMLCommon ol,
.jp-RenderedHTMLCommon ul {
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon ul ul,
.jp-RenderedHTMLCommon ul ol,
.jp-RenderedHTMLCommon ol ul,
.jp-RenderedHTMLCommon ol ol {
margin-bottom: 0;
}
/* stylelint-enable selector-max-type, selector-max-compound-selectors */
.jp-RenderedHTMLCommon hr {
color: var(--jp-border-color2);
background-color: var(--jp-border-color1);
margin-top: 1em;
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon > pre {
margin: 1.5em 2em;
}
.jp-RenderedHTMLCommon pre,
.jp-RenderedHTMLCommon code {
border: 0;
background-color: var(--jp-layout-color0);
color: var(--jp-content-font-color1);
font-family: var(--jp-code-font-family);
font-size: inherit;
line-height: var(--jp-code-line-height);
padding: 0;
white-space: pre-wrap;
}
.jp-RenderedHTMLCommon :not(pre) > code {
background-color: var(--jp-layout-color2);
padding: 1px 5px;
}
/* Tables */
.jp-RenderedHTMLCommon table {
border-collapse: collapse;
border-spacing: 0;
border: none;
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
table-layout: fixed;
margin-left: auto;
margin-bottom: 1em;
margin-right: auto;
}
.jp-RenderedHTMLCommon thead {
border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
vertical-align: bottom;
}
.jp-RenderedHTMLCommon td,
.jp-RenderedHTMLCommon th,
.jp-RenderedHTMLCommon tr {
vertical-align: middle;
padding: 0.5em;
line-height: normal;
white-space: normal;
max-width: none;
border: none;
}
.jp-RenderedMarkdown.jp-RenderedHTMLCommon td,
.jp-RenderedMarkdown.jp-RenderedHTMLCommon th {
max-width: none;
}
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td,
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th,
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr {
text-align: right;
}
.jp-RenderedHTMLCommon th {
font-weight: bold;
}
.jp-RenderedHTMLCommon tbody tr:nth-child(odd) {
background: var(--jp-layout-color0);
}
.jp-RenderedHTMLCommon tbody tr:nth-child(even) {
background: var(--jp-rendermime-table-row-background);
}
.jp-RenderedHTMLCommon tbody tr:hover {
background: var(--jp-rendermime-table-row-hover-background);
}
.jp-RenderedHTMLCommon p {
text-align: left;
margin: 0;
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon img {
-moz-force-broken-image-icon: 1;
}
/* Restrict to direct children as other images could be nested in other content. */
.jp-RenderedHTMLCommon > img {
display: block;
margin-left: 0;
margin-right: 0;
margin-bottom: 1em;
}
/* Change color behind transparent images if they need it... */
[data-jp-theme-light='false'] .jp-RenderedImage img.jp-needs-light-background {
background-color: var(--jp-inverse-layout-color1);
}
[data-jp-theme-light='true'] .jp-RenderedImage img.jp-needs-dark-background {
background-color: var(--jp-inverse-layout-color1);
}
.jp-RenderedHTMLCommon img,
.jp-RenderedImage img,
.jp-RenderedHTMLCommon svg,
.jp-RenderedSVG svg {
max-width: 100%;
height: auto;
}
.jp-RenderedHTMLCommon img.jp-mod-unconfined,
.jp-RenderedImage img.jp-mod-unconfined,
.jp-RenderedHTMLCommon svg.jp-mod-unconfined,
.jp-RenderedSVG svg.jp-mod-unconfined {
max-width: none;
}
.jp-RenderedHTMLCommon .alert {
padding: var(--jp-notebook-padding);
border: var(--jp-border-width) solid transparent;
border-radius: var(--jp-border-radius);
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon .alert-info {
color: var(--jp-info-color0);
background-color: var(--jp-info-color3);
border-color: var(--jp-info-color2);
}
.jp-RenderedHTMLCommon .alert-info hr {
border-color: var(--jp-info-color3);
}
.jp-RenderedHTMLCommon .alert-info > p:last-child,
.jp-RenderedHTMLCommon .alert-info > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon .alert-warning {
color: var(--jp-warn-color0);
background-color: var(--jp-warn-color3);
border-color: var(--jp-warn-color2);
}
.jp-RenderedHTMLCommon .alert-warning hr {
border-color: var(--jp-warn-color3);
}
.jp-RenderedHTMLCommon .alert-warning > p:last-child,
.jp-RenderedHTMLCommon .alert-warning > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon .alert-success {
color: var(--jp-success-color0);
background-color: var(--jp-success-color3);
border-color: var(--jp-success-color2);
}
.jp-RenderedHTMLCommon .alert-success hr {
border-color: var(--jp-success-color3);
}
.jp-RenderedHTMLCommon .alert-success > p:last-child,
.jp-RenderedHTMLCommon .alert-success > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon .alert-danger {
color: var(--jp-error-color0);
background-color: var(--jp-error-color3);
border-color: var(--jp-error-color2);
}
.jp-RenderedHTMLCommon .alert-danger hr {
border-color: var(--jp-error-color3);
}
.jp-RenderedHTMLCommon .alert-danger > p:last-child,
.jp-RenderedHTMLCommon .alert-danger > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon blockquote {
margin: 1em 2em;
padding: 0 1em;
border-left: 5px solid var(--jp-border-color2);
}
a.jp-InternalAnchorLink {
visibility: hidden;
margin-left: 8px;
color: var(--md-blue-800);
}
h1:hover .jp-InternalAnchorLink,
h2:hover .jp-InternalAnchorLink,
h3:hover .jp-InternalAnchorLink,
h4:hover .jp-InternalAnchorLink,
h5:hover .jp-InternalAnchorLink,
h6:hover .jp-InternalAnchorLink {
visibility: visible;
}
.jp-RenderedHTMLCommon kbd {
background-color: var(--jp-rendermime-table-row-background);
border: 1px solid var(--jp-border-color0);
border-bottom-color: var(--jp-border-color2);
border-radius: 3px;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
display: inline-block;
font-size: var(--jp-ui-font-size0);
line-height: 1em;
padding: 0.2em 0.5em;
}
/* Most direct children of .jp-RenderedHTMLCommon have a margin-bottom of 1.0.
* At the bottom of cells this is a bit too much as there is also spacing
* between cells. Going all the way to 0 gets too tight between markdown and
* code cells.
*/
.jp-RenderedHTMLCommon > *:last-child {
margin-bottom: 0.5em;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-cursor-backdrop {
position: fixed;
width: 200px;
height: 200px;
margin-top: -100px;
margin-left: -100px;
will-change: transform;
z-index: 100;
}
.lm-mod-drag-image {
will-change: transform;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.jp-lineFormSearch {
padding: 4px 12px;
background-color: var(--jp-layout-color2);
box-shadow: var(--jp-toolbar-box-shadow);
z-index: 2;
font-size: var(--jp-ui-font-size1);
}
.jp-lineFormCaption {
font-size: var(--jp-ui-font-size0);
line-height: var(--jp-ui-font-size1);
margin-top: 4px;
color: var(--jp-ui-font-color0);
}
.jp-baseLineForm {
border: none;
border-radius: 0;
position: absolute;
background-size: 16px;
background-repeat: no-repeat;
background-position: center;
outline: none;
}
.jp-lineFormButtonContainer {
top: 4px;
right: 8px;
height: 24px;
padding: 0 12px;
width: 12px;
}
.jp-lineFormButtonIcon {
top: 0;
right: 0;
background-color: var(--jp-brand-color1);
height: 100%;
width: 100%;
box-sizing: border-box;
padding: 4px 6px;
}
.jp-lineFormButton {
top: 0;
right: 0;
background-color: transparent;
height: 100%;
width: 100%;
box-sizing: border-box;
}
.jp-lineFormWrapper {
overflow: hidden;
padding: 0 8px;
border: 1px solid var(--jp-border-color0);
background-color: var(--jp-input-active-background);
height: 22px;
}
.jp-lineFormWrapperFocusWithin {
border: var(--jp-border-width) solid var(--md-blue-500);
box-shadow: inset 0 0 4px var(--md-blue-300);
}
.jp-lineFormInput {
background: transparent;
width: 200px;
height: 100%;
border: none;
outline: none;
color: var(--jp-ui-font-color0);
line-height: 28px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-JSONEditor {
display: flex;
flex-direction: column;
width: 100%;
}
.jp-JSONEditor-host {
flex: 1 1 auto;
border: var(--jp-border-width) solid var(--jp-input-border-color);
border-radius: 0;
background: var(--jp-layout-color0);
min-height: 50px;
padding: 1px;
}
.jp-JSONEditor.jp-mod-error .jp-JSONEditor-host {
border-color: red;
outline-color: red;
}
.jp-JSONEditor-header {
display: flex;
flex: 1 0 auto;
padding: 0 0 0 12px;
}
.jp-JSONEditor-header label {
flex: 0 0 auto;
}
.jp-JSONEditor-commitButton {
height: 16px;
width: 16px;
background-size: 18px;
background-repeat: no-repeat;
background-position: center;
}
.jp-JSONEditor-host.jp-mod-focused {
background-color: var(--jp-input-active-background);
border: 1px solid var(--jp-input-active-border-color);
box-shadow: var(--jp-input-box-shadow);
}
.jp-Editor.jp-mod-dropTarget {
border: var(--jp-border-width) solid var(--jp-input-active-border-color);
box-shadow: var(--jp-input-box-shadow);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-DocumentSearch-input {
border: none;
outline: none;
color: var(--jp-ui-font-color0);
font-size: var(--jp-ui-font-size1);
background-color: var(--jp-layout-color0);
font-family: var(--jp-ui-font-family);
padding: 2px 1px;
resize: none;
}
.jp-DocumentSearch-overlay {
position: absolute;
background-color: var(--jp-toolbar-background);
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
border-left: var(--jp-border-width) solid var(--jp-toolbar-border-color);
top: 0;
right: 0;
z-index: 7;
min-width: 405px;
padding: 2px;
font-size: var(--jp-ui-font-size1);
--jp-private-document-search-button-height: 20px;
}
.jp-DocumentSearch-overlay button {
background-color: var(--jp-toolbar-background);
outline: 0;
}
.jp-DocumentSearch-overlay button:hover {
background-color: var(--jp-layout-color2);
}
.jp-DocumentSearch-overlay button:active {
background-color: var(--jp-layout-color3);
}
.jp-DocumentSearch-overlay-row {
display: flex;
align-items: center;
margin-bottom: 2px;
}
.jp-DocumentSearch-button-content {
display: inline-block;
cursor: pointer;
box-sizing: border-box;
width: 100%;
height: 100%;
}
.jp-DocumentSearch-button-content svg {
width: 100%;
height: 100%;
}
.jp-DocumentSearch-input-wrapper {
border: var(--jp-border-width) solid var(--jp-border-color0);
display: flex;
background-color: var(--jp-layout-color0);
margin: 2px;
}
.jp-DocumentSearch-input-wrapper:focus-within {
border-color: var(--jp-cell-editor-active-border-color);
}
.jp-DocumentSearch-toggle-wrapper,
.jp-DocumentSearch-button-wrapper {
all: initial;
overflow: hidden;
display: inline-block;
border: none;
box-sizing: border-box;
}
.jp-DocumentSearch-toggle-wrapper {
width: 14px;
height: 14px;
}
.jp-DocumentSearch-button-wrapper {
width: var(--jp-private-document-search-button-height);
height: var(--jp-private-document-search-button-height);
}
.jp-DocumentSearch-toggle-wrapper:focus,
.jp-DocumentSearch-button-wrapper:focus {
outline: var(--jp-border-width) solid
var(--jp-cell-editor-active-border-color);
outline-offset: -1px;
}
.jp-DocumentSearch-toggle-wrapper,
.jp-DocumentSearch-button-wrapper,
.jp-DocumentSearch-button-content:focus {
outline: none;
}
.jp-DocumentSearch-toggle-placeholder {
width: 5px;
}
.jp-DocumentSearch-input-button::before {
display: block;
padding-top: 100%;
}
.jp-DocumentSearch-input-button-off {
opacity: var(--jp-search-toggle-off-opacity);
}
.jp-DocumentSearch-input-button-off:hover {
opacity: var(--jp-search-toggle-hover-opacity);
}
.jp-DocumentSearch-input-button-on {
opacity: var(--jp-search-toggle-on-opacity);
}
.jp-DocumentSearch-index-counter {
padding-left: 10px;
padding-right: 10px;
user-select: none;
min-width: 35px;
display: inline-block;
}
.jp-DocumentSearch-up-down-wrapper {
display: inline-block;
padding-right: 2px;
margin-left: auto;
white-space: nowrap;
}
.jp-DocumentSearch-spacer {
margin-left: auto;
}
.jp-DocumentSearch-up-down-wrapper button {
outline: 0;
border: none;
width: var(--jp-private-document-search-button-height);
height: var(--jp-private-document-search-button-height);
vertical-align: middle;
margin: 1px 5px 2px;
}
.jp-DocumentSearch-up-down-button:hover {
background-color: var(--jp-layout-color2);
}
.jp-DocumentSearch-up-down-button:active {
background-color: var(--jp-layout-color3);
}
.jp-DocumentSearch-filter-button {
border-radius: var(--jp-border-radius);
}
.jp-DocumentSearch-filter-button:hover {
background-color: var(--jp-layout-color2);
}
.jp-DocumentSearch-filter-button-enabled {
background-color: var(--jp-layout-color2);
}
.jp-DocumentSearch-filter-button-enabled:hover {
background-color: var(--jp-layout-color3);
}
.jp-DocumentSearch-search-options {
padding: 0 8px;
margin-left: 3px;
width: 100%;
display: grid;
justify-content: start;
grid-template-columns: 1fr 1fr;
align-items: center;
justify-items: stretch;
}
.jp-DocumentSearch-search-filter-disabled {
color: var(--jp-ui-font-color2);
}
.jp-DocumentSearch-search-filter {
display: flex;
align-items: center;
user-select: none;
}
.jp-DocumentSearch-regex-error {
color: var(--jp-error-color0);
}
.jp-DocumentSearch-replace-button-wrapper {
overflow: hidden;
display: inline-block;
box-sizing: border-box;
border: var(--jp-border-width) solid var(--jp-border-color0);
margin: auto 2px;
padding: 1px 4px;
height: calc(var(--jp-private-document-search-button-height) + 2px);
}
.jp-DocumentSearch-replace-button-wrapper:focus {
border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
}
.jp-DocumentSearch-replace-button {
display: inline-block;
text-align: center;
cursor: pointer;
box-sizing: border-box;
color: var(--jp-ui-font-color1);
/* height - 2 * (padding of wrapper) */
line-height: calc(var(--jp-private-document-search-button-height) - 2px);
width: 100%;
height: 100%;
}
.jp-DocumentSearch-replace-button:focus {
outline: none;
}
.jp-DocumentSearch-replace-wrapper-class {
margin-left: 14px;
display: flex;
}
.jp-DocumentSearch-replace-toggle {
border: none;
background-color: var(--jp-toolbar-background);
border-radius: var(--jp-border-radius);
}
.jp-DocumentSearch-replace-toggle:hover {
background-color: var(--jp-layout-color2);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.cm-editor {
line-height: var(--jp-code-line-height);
font-size: var(--jp-code-font-size);
font-family: var(--jp-code-font-family);
border: 0;
border-radius: 0;
height: auto;
/* Changed to auto to autogrow */
}
.cm-editor pre {
padding: 0 var(--jp-code-padding);
}
.jp-CodeMirrorEditor[data-type='inline'] .cm-dialog {
background-color: var(--jp-layout-color0);
color: var(--jp-content-font-color1);
}
.jp-CodeMirrorEditor {
cursor: text;
}
/* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
border-left: var(--jp-code-cursor-width1) solid
var(--jp-editor-cursor-color);
}
}
/* When zoomed out less than 33% */
@media screen and (min-width: 4320px) {
.jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
border-left: var(--jp-code-cursor-width2) solid
var(--jp-editor-cursor-color);
}
}
.cm-editor.jp-mod-readOnly .cm-cursor {
display: none;
}
.jp-CollaboratorCursor {
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: none;
border-bottom: 3px solid;
background-clip: content-box;
margin-left: -5px;
margin-right: -5px;
}
.cm-searching,
.cm-searching span {
/* `.cm-searching span`: we need to override syntax highlighting */
background-color: var(--jp-search-unselected-match-background-color);
color: var(--jp-search-unselected-match-color);
}
.cm-searching::selection,
.cm-searching span::selection {
background-color: var(--jp-search-unselected-match-background-color);
color: var(--jp-search-unselected-match-color);
}
.jp-current-match > .cm-searching,
.jp-current-match > .cm-searching span,
.cm-searching > .jp-current-match,
.cm-searching > .jp-current-match span {
background-color: var(--jp-search-selected-match-background-color);
color: var(--jp-search-selected-match-color);
}
.jp-current-match > .cm-searching::selection,
.cm-searching > .jp-current-match::selection,
.jp-current-match > .cm-searching span::selection {
background-color: var(--jp-search-selected-match-background-color);
color: var(--jp-search-selected-match-color);
}
.cm-trailingspace {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII=);
background-position: center left;
background-repeat: repeat-x;
}
.jp-CollaboratorCursor-hover {
position: absolute;
z-index: 1;
transform: translateX(-50%);
color: white;
border-radius: 3px;
padding-left: 4px;
padding-right: 4px;
padding-top: 1px;
padding-bottom: 1px;
text-align: center;
font-size: var(--jp-ui-font-size1);
white-space: nowrap;
}
.jp-CodeMirror-ruler {
border-left: 1px dashed var(--jp-border-color2);
}
/* Styles for shared cursors (remote cursor locations and selected ranges) */
.jp-CodeMirrorEditor .cm-ySelectionCaret {
position: relative;
border-left: 1px solid black;
margin-left: -1px;
margin-right: -1px;
box-sizing: border-box;
}
.jp-CodeMirrorEditor .cm-ySelectionCaret > .cm-ySelectionInfo {
white-space: nowrap;
position: absolute;
top: -1.15em;
padding-bottom: 0.05em;
left: -1px;
font-size: 0.95em;
font-family: var(--jp-ui-font-family);
font-weight: bold;
line-height: normal;
user-select: none;
color: white;
padding-left: 2px;
padding-right: 2px;
z-index: 101;
transition: opacity 0.3s ease-in-out;
}
.jp-CodeMirrorEditor .cm-ySelectionInfo {
transition-delay: 0.7s;
opacity: 0;
}
.jp-CodeMirrorEditor .cm-ySelectionCaret:hover > .cm-ySelectionInfo {
opacity: 1;
transition-delay: 0s;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-MimeDocument {
outline: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-filebrowser-button-height: 28px;
--jp-private-filebrowser-button-width: 48px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-FileBrowser .jp-SidePanel-content {
display: flex;
flex-direction: column;
}
.jp-FileBrowser-toolbar.jp-Toolbar {
flex-wrap: wrap;
row-gap: 12px;
border-bottom: none;
height: auto;
margin: 8px 12px 0;
box-shadow: none;
padding: 0;
justify-content: flex-start;
}
.jp-FileBrowser-Panel {
flex: 1 1 auto;
display: flex;
flex-direction: column;
}
.jp-BreadCrumbs {
flex: 0 0 auto;
margin: 8px 12px;
}
.jp-BreadCrumbs-item {
margin: 0 2px;
padding: 0 2px;
border-radius: var(--jp-border-radius);
cursor: pointer;
}
.jp-BreadCrumbs-item:hover {
background-color: var(--jp-layout-color2);
}
.jp-BreadCrumbs-item:first-child {
margin-left: 0;
}
.jp-BreadCrumbs-item.jp-mod-dropTarget {
background-color: var(--jp-brand-color2);
opacity: 0.7;
}
/*-----------------------------------------------------------------------------
| Buttons
|----------------------------------------------------------------------------*/
.jp-FileBrowser-toolbar > .jp-Toolbar-item {
flex: 0 0 auto;
padding-left: 0;
padding-right: 2px;
align-items: center;
height: unset;
}
.jp-FileBrowser-toolbar > .jp-Toolbar-item .jp-ToolbarButtonComponent {
width: 40px;
}
/*-----------------------------------------------------------------------------
| Other styles
|----------------------------------------------------------------------------*/
.jp-FileDialog.jp-mod-conflict input {
color: var(--jp-error-color1);
}
.jp-FileDialog .jp-new-name-title {
margin-top: 12px;
}
.jp-LastModified-hidden {
display: none;
}
.jp-FileSize-hidden {
display: none;
}
.jp-FileBrowser .lm-AccordionPanel > h3:first-child {
display: none;
}
/*-----------------------------------------------------------------------------
| DirListing
|----------------------------------------------------------------------------*/
.jp-DirListing {
flex: 1 1 auto;
display: flex;
flex-direction: column;
outline: 0;
}
.jp-DirListing-header {
flex: 0 0 auto;
display: flex;
flex-direction: row;
align-items: center;
overflow: hidden;
border-top: var(--jp-border-width) solid var(--jp-border-color2);
border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
box-shadow: var(--jp-toolbar-box-shadow);
z-index: 2;
}
.jp-DirListing-headerItem {
padding: 4px 12px 2px;
font-weight: 500;
}
.jp-DirListing-headerItem:hover {
background: var(--jp-layout-color2);
}
.jp-DirListing-headerItem.jp-id-name {
flex: 1 0 84px;
}
.jp-DirListing-headerItem.jp-id-modified {
flex: 0 0 112px;
border-left: var(--jp-border-width) solid var(--jp-border-color2);
text-align: right;
}
.jp-DirListing-headerItem.jp-id-filesize {
flex: 0 0 75px;
border-left: var(--jp-border-width) solid var(--jp-border-color2);
text-align: right;
}
.jp-id-narrow {
display: none;
flex: 0 0 5px;
padding: 4px;
border-left: var(--jp-border-width) solid var(--jp-border-color2);
text-align: right;
color: var(--jp-border-color2);
}
.jp-DirListing-narrow .jp-id-narrow {
display: block;
}
.jp-DirListing-narrow .jp-id-modified,
.jp-DirListing-narrow .jp-DirListing-itemModified {
display: none;
}
.jp-DirListing-headerItem.jp-mod-selected {
font-weight: 600;
}
/* increase specificity to override bundled default */
.jp-DirListing-content {
flex: 1 1 auto;
margin: 0;
padding: 0;
list-style-type: none;
overflow: auto;
background-color: var(--jp-layout-color1);
}
.jp-DirListing-content mark {
color: var(--jp-ui-font-color0);
background-color: transparent;
font-weight: bold;
}
.jp-DirListing-content .jp-DirListing-item.jp-mod-selected mark {
color: var(--jp-ui-inverse-font-color0);
}
/* Style the directory listing content when a user drops a file to upload */
.jp-DirListing.jp-mod-native-drop .jp-DirListing-content {
outline: 5px dashed rgba(128, 128, 128, 0.5);
outline-offset: -10px;
cursor: copy;
}
.jp-DirListing-item {
display: flex;
flex-direction: row;
align-items: center;
padding: 4px 12px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.jp-DirListing-checkboxWrapper {
/* Increases hit area of checkbox. */
padding: 4px;
}
.jp-DirListing-header
.jp-DirListing-checkboxWrapper
+ .jp-DirListing-headerItem {
padding-left: 4px;
}
.jp-DirListing-content .jp-DirListing-checkboxWrapper {
position: relative;
left: -4px;
margin: -4px 0 -4px -8px;
}
.jp-DirListing-checkboxWrapper.jp-mod-visible {
visibility: visible;
}
/* For devices that support hovering, hide checkboxes until hovered, selected...
*/
@media (hover: hover) {
.jp-DirListing-checkboxWrapper {
visibility: hidden;
}
.jp-DirListing-item:hover .jp-DirListing-checkboxWrapper,
.jp-DirListing-item.jp-mod-selected .jp-DirListing-checkboxWrapper {
visibility: visible;
}
}
.jp-DirListing-item[data-is-dot] {
opacity: 75%;
}
.jp-DirListing-item.jp-mod-selected {
color: var(--jp-ui-inverse-font-color1);
background: var(--jp-brand-color1);
}
.jp-DirListing-item.jp-mod-dropTarget {
background: var(--jp-brand-color3);
}
.jp-DirListing-item:hover:not(.jp-mod-selected) {
background: var(--jp-layout-color2);
}
.jp-DirListing-itemIcon {
flex: 0 0 20px;
margin-right: 4px;
}
.jp-DirListing-itemText {
flex: 1 0 64px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
user-select: none;
}
.jp-DirListing-itemText:focus {
outline-width: 2px;
outline-color: var(--jp-inverse-layout-color1);
outline-style: solid;
outline-offset: 1px;
}
.jp-DirListing-item.jp-mod-selected .jp-DirListing-itemText:focus {
outline-color: var(--jp-layout-color1);
}
.jp-DirListing-itemModified {
flex: 0 0 125px;
text-align: right;
}
.jp-DirListing-itemFileSize {
flex: 0 0 90px;
text-align: right;
}
.jp-DirListing-editor {
flex: 1 0 64px;
outline: none;
border: none;
color: var(--jp-ui-font-color1);
background-color: var(--jp-layout-color1);
}
.jp-DirListing-item.jp-mod-running .jp-DirListing-itemIcon::before {
color: var(--jp-success-color1);
content: '\25CF';
font-size: 8px;
position: absolute;
left: -8px;
}
.jp-DirListing-item.jp-mod-running.jp-mod-selected
.jp-DirListing-itemIcon::before {
color: var(--jp-ui-inverse-font-color1);
}
.jp-DirListing-item.lm-mod-drag-image,
.jp-DirListing-item.jp-mod-selected.lm-mod-drag-image {
font-size: var(--jp-ui-font-size1);
padding-left: 4px;
margin-left: 4px;
width: 160px;
background-color: var(--jp-ui-inverse-font-color2);
box-shadow: var(--jp-elevation-z2);
border-radius: 0;
color: var(--jp-ui-font-color1);
transform: translateX(-40%) translateY(-58%);
}
.jp-Document {
min-width: 120px;
min-height: 120px;
outline: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Main OutputArea
| OutputArea has a list of Outputs
|----------------------------------------------------------------------------*/
.jp-OutputArea {
overflow-y: auto;
}
.jp-OutputArea-child {
display: table;
table-layout: fixed;
width: 100%;
overflow: hidden;
}
.jp-OutputPrompt {
width: var(--jp-cell-prompt-width);
color: var(--jp-cell-outprompt-font-color);
font-family: var(--jp-cell-prompt-font-family);
padding: var(--jp-code-padding);
letter-spacing: var(--jp-cell-prompt-letter-spacing);
line-height: var(--jp-code-line-height);
font-size: var(--jp-code-font-size);
border: var(--jp-border-width) solid transparent;
opacity: var(--jp-cell-prompt-opacity);
/* Right align prompt text, don't wrap to handle large prompt numbers */
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
/* Disable text selection */
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.jp-OutputArea-prompt {
display: table-cell;
vertical-align: top;
}
.jp-OutputArea-output {
display: table-cell;
width: 100%;
height: auto;
overflow: auto;
user-select: text;
-moz-user-select: text;
-webkit-user-select: text;
-ms-user-select: text;
}
.jp-OutputArea .jp-RenderedText {
padding-left: 1ch;
}
/**
* Prompt overlay.
*/
.jp-OutputArea-promptOverlay {
position: absolute;
top: 0;
width: var(--jp-cell-prompt-width);
height: 100%;
opacity: 0.5;
}
.jp-OutputArea-promptOverlay:hover {
background: var(--jp-layout-color2);
box-shadow: inset 0 0 1px var(--jp-inverse-layout-color0);
cursor: zoom-out;
}
.jp-mod-outputsScrolled .jp-OutputArea-promptOverlay:hover {
cursor: zoom-in;
}
/**
* Isolated output.
*/
.jp-OutputArea-output.jp-mod-isolated {
width: 100%;
display: block;
}
/*
When drag events occur, `lm-mod-override-cursor` is added to the body.
Because iframes steal all cursor events, the following two rules are necessary
to suppress pointer events while resize drags are occurring. There may be a
better solution to this problem.
*/
body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated {
position: relative;
}
body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: transparent;
}
/* pre */
.jp-OutputArea-output pre {
border: none;
margin: 0;
padding: 0;
overflow-x: auto;
overflow-y: auto;
word-break: break-all;
word-wrap: break-word;
white-space: pre-wrap;
}
/* tables */
.jp-OutputArea-output.jp-RenderedHTMLCommon table {
margin-left: 0;
margin-right: 0;
}
/* description lists */
.jp-OutputArea-output dl,
.jp-OutputArea-output dt,
.jp-OutputArea-output dd {
display: block;
}
.jp-OutputArea-output dl {
width: 100%;
overflow: hidden;
padding: 0;
margin: 0;
}
.jp-OutputArea-output dt {
font-weight: bold;
float: left;
width: 20%;
padding: 0;
margin: 0;
}
.jp-OutputArea-output dd {
float: left;
width: 80%;
padding: 0;
margin: 0;
}
.jp-TrimmedOutputs pre {
background: var(--jp-layout-color3);
font-size: calc(var(--jp-code-font-size) * 1.4);
text-align: center;
text-transform: uppercase;
}
/* Hide the gutter in case of
* - nested output areas (e.g. in the case of output widgets)
* - mirrored output areas
*/
.jp-OutputArea .jp-OutputArea .jp-OutputArea-prompt {
display: none;
}
/* Hide empty lines in the output area, for instance due to cleared widgets */
.jp-OutputArea-prompt:empty {
padding: 0;
border: 0;
}
/*-----------------------------------------------------------------------------
| executeResult is added to any Output-result for the display of the object
| returned by a cell
|----------------------------------------------------------------------------*/
.jp-OutputArea-output.jp-OutputArea-executeResult {
margin-left: 0;
width: 100%;
}
/* Text output with the Out[] prompt needs a top padding to match the
* alignment of the Out[] prompt itself.
*/
.jp-OutputArea-executeResult .jp-RenderedText.jp-OutputArea-output {
padding-top: var(--jp-code-padding);
border-top: var(--jp-border-width) solid transparent;
}
/*-----------------------------------------------------------------------------
| The Stdin output
|----------------------------------------------------------------------------*/
.jp-Stdin-prompt {
color: var(--jp-content-font-color0);
padding-right: var(--jp-code-padding);
vertical-align: baseline;
flex: 0 0 auto;
}
.jp-Stdin-input {
font-family: var(--jp-code-font-family);
font-size: inherit;
color: inherit;
background-color: inherit;
width: 42%;
min-width: 200px;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0 0.25em;
margin: 0 0.25em;
flex: 0 0 70%;
}
.jp-Stdin-input::placeholder {
opacity: 0;
}
.jp-Stdin-input:focus {
box-shadow: none;
}
.jp-Stdin-input:focus::placeholder {
opacity: 1;
}
/*-----------------------------------------------------------------------------
| Output Area View
|----------------------------------------------------------------------------*/
.jp-LinkedOutputView .jp-OutputArea {
height: 100%;
display: block;
}
.jp-LinkedOutputView .jp-OutputArea-output:only-child {
height: 100%;
}
/*-----------------------------------------------------------------------------
| Printing
|----------------------------------------------------------------------------*/
@media print {
.jp-OutputArea-child {
break-inside: avoid-page;
}
}
/*-----------------------------------------------------------------------------
| Mobile
|----------------------------------------------------------------------------*/
@media only screen and (max-width: 760px) {
.jp-OutputPrompt {
display: table-row;
text-align: left;
}
.jp-OutputArea-child .jp-OutputArea-output {
display: table-row;
margin-left: var(--jp-notebook-padding);
}
}
/* Trimmed outputs warning */
.jp-TrimmedOutputs > a {
margin: 10px;
text-decoration: none;
cursor: pointer;
}
.jp-TrimmedOutputs > a:hover {
text-decoration: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Table of Contents
|----------------------------------------------------------------------------*/
:root {
--jp-private-toc-active-width: 4px;
}
.jp-TableOfContents {
display: flex;
flex-direction: column;
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
height: 100%;
}
.jp-TableOfContents-placeholder {
text-align: center;
}
.jp-TableOfContents-placeholderContent {
color: var(--jp-content-font-color2);
padding: 8px;
}
.jp-TableOfContents-placeholderContent > h3 {
margin-bottom: var(--jp-content-heading-margin-bottom);
}
.jp-TableOfContents .jp-SidePanel-content {
overflow-y: auto;
}
.jp-TableOfContents-tree {
margin: 4px;
}
.jp-TableOfContents ol {
list-style-type: none;
}
/* stylelint-disable-next-line selector-max-type */
.jp-TableOfContents li > ol {
/* Align left border with triangle icon center */
padding-left: 11px;
}
.jp-TableOfContents-content {
/* left margin for the active heading indicator */
margin: 0 0 0 var(--jp-private-toc-active-width);
padding: 0;
background-color: var(--jp-layout-color1);
}
.jp-tocItem {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.jp-tocItem-heading {
display: flex;
cursor: pointer;
}
.jp-tocItem-heading:hover {
background-color: var(--jp-layout-color2);
}
.jp-tocItem-content {
display: block;
padding: 4px 0;
white-space: nowrap;
text-overflow: ellipsis;
overflow-x: hidden;
}
.jp-tocItem-collapser {
height: 20px;
margin: 2px 2px 0;
padding: 0;
background: none;
border: none;
cursor: pointer;
}
.jp-tocItem-collapser:hover {
background-color: var(--jp-layout-color3);
}
/* Active heading indicator */
.jp-tocItem-heading::before {
content: ' ';
background: transparent;
width: var(--jp-private-toc-active-width);
height: 24px;
position: absolute;
left: 0;
border-radius: var(--jp-border-radius);
}
.jp-tocItem-heading.jp-tocItem-active::before {
background-color: var(--jp-brand-color1);
}
.jp-tocItem-heading:hover.jp-tocItem-active::before {
background: var(--jp-brand-color0);
opacity: 1;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Collapser {
flex: 0 0 var(--jp-cell-collapser-width);
padding: 0;
margin: 0;
border: none;
outline: none;
background: transparent;
border-radius: var(--jp-border-radius);
opacity: 1;
}
.jp-Collapser-child {
display: block;
width: 100%;
box-sizing: border-box;
/* height: 100% doesn't work because the height of its parent is computed from content */
position: absolute;
top: 0;
bottom: 0;
}
/*-----------------------------------------------------------------------------
| Printing
|----------------------------------------------------------------------------*/
/*
Hiding collapsers in print mode.
Note: input and output wrappers have "display: block" propery in print mode.
*/
@media print {
.jp-Collapser {
display: none;
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Header/Footer
|----------------------------------------------------------------------------*/
/* Hidden by zero height by default */
.jp-CellHeader,
.jp-CellFooter {
height: 0;
width: 100%;
padding: 0;
margin: 0;
border: none;
outline: none;
background: transparent;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Input
|----------------------------------------------------------------------------*/
/* All input areas */
.jp-InputArea {
display: table;
table-layout: fixed;
width: 100%;
overflow: hidden;
}
.jp-InputArea-editor {
display: table-cell;
overflow: hidden;
vertical-align: top;
/* This is the non-active, default styling */
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
border-radius: 0;
background: var(--jp-cell-editor-background);
}
.jp-InputPrompt {
display: table-cell;
vertical-align: top;
width: var(--jp-cell-prompt-width);
color: var(--jp-cell-inprompt-font-color);
font-family: var(--jp-cell-prompt-font-family);
padding: var(--jp-code-padding);
letter-spacing: var(--jp-cell-prompt-letter-spacing);
opacity: var(--jp-cell-prompt-opacity);
line-height: var(--jp-code-line-height);
font-size: var(--jp-code-font-size);
border: var(--jp-border-width) solid transparent;
/* Right align prompt text, don't wrap to handle large prompt numbers */
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
/* Disable text selection */
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/*-----------------------------------------------------------------------------
| Mobile
|----------------------------------------------------------------------------*/
@media only screen and (max-width: 760px) {
.jp-InputArea-editor {
display: table-row;
margin-left: var(--jp-notebook-padding);
}
.jp-InputPrompt {
display: table-row;
text-align: left;
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Placeholder
|----------------------------------------------------------------------------*/
.jp-Placeholder {
display: table;
table-layout: fixed;
width: 100%;
}
.jp-Placeholder-prompt {
display: table-cell;
box-sizing: border-box;
}
.jp-Placeholder-content {
display: table-cell;
padding: 4px 6px;
border: 1px solid transparent;
border-radius: 0;
background: none;
box-sizing: border-box;
cursor: pointer;
}
.jp-Placeholder-contentContainer {
display: flex;
}
.jp-Placeholder-content:hover,
.jp-InputPlaceholder > .jp-Placeholder-content:hover {
border-color: var(--jp-layout-color3);
}
.jp-Placeholder-content .jp-MoreHorizIcon {
width: 32px;
height: 16px;
border: 1px solid transparent;
border-radius: var(--jp-border-radius);
}
.jp-Placeholder-content .jp-MoreHorizIcon:hover {
border: 1px solid var(--jp-border-color1);
box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.25);
background-color: var(--jp-layout-color0);
}
.jp-PlaceholderText {
white-space: nowrap;
overflow-x: hidden;
color: var(--jp-inverse-layout-color3);
font-family: var(--jp-code-font-family);
}
.jp-InputPlaceholder > .jp-Placeholder-content {
border-color: var(--jp-cell-editor-border-color);
background: var(--jp-cell-editor-background);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Private CSS variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-cell-scrolling-output-offset: 5px;
}
/*-----------------------------------------------------------------------------
| Cell
|----------------------------------------------------------------------------*/
.jp-Cell {
padding: var(--jp-cell-padding);
margin: 0;
border: none;
outline: none;
background: transparent;
}
/*-----------------------------------------------------------------------------
| Common input/output
|----------------------------------------------------------------------------*/
.jp-Cell-inputWrapper,
.jp-Cell-outputWrapper {
display: flex;
flex-direction: row;
padding: 0;
margin: 0;
/* Added to reveal the box-shadow on the input and output collapsers. */
overflow: visible;
}
/* Only input/output areas inside cells */
.jp-Cell-inputArea,
.jp-Cell-outputArea {
flex: 1 1 auto;
}
/*-----------------------------------------------------------------------------
| Collapser
|----------------------------------------------------------------------------*/
/* Make the output collapser disappear when there is not output, but do so
* in a manner that leaves it in the layout and preserves its width.
*/
.jp-Cell.jp-mod-noOutputs .jp-Cell-outputCollapser {
border: none !important;
background: transparent !important;
}
.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputCollapser {
min-height: var(--jp-cell-collapser-min-height);
}
/*-----------------------------------------------------------------------------
| Output
|----------------------------------------------------------------------------*/
/* Put a space between input and output when there IS output */
.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputWrapper {
margin-top: 5px;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea {
overflow-y: auto;
max-height: 24em;
margin-left: var(--jp-private-cell-scrolling-output-offset);
resize: vertical;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea[style*='height'] {
max-height: unset;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea::after {
content: ' ';
box-shadow: inset 0 0 6px 2px rgb(0 0 0 / 30%);
width: 100%;
height: 100%;
position: sticky;
bottom: 0;
top: 0;
margin-top: -50%;
float: left;
display: block;
pointer-events: none;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-child {
padding-top: 6px;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-prompt {
width: calc(
var(--jp-cell-prompt-width) - var(--jp-private-cell-scrolling-output-offset)
);
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-promptOverlay {
left: calc(-1 * var(--jp-private-cell-scrolling-output-offset));
}
/*-----------------------------------------------------------------------------
| CodeCell
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| MarkdownCell
|----------------------------------------------------------------------------*/
.jp-MarkdownOutput {
display: table-cell;
width: 100%;
margin-top: 0;
margin-bottom: 0;
padding-left: var(--jp-code-padding);
}
.jp-MarkdownOutput.jp-RenderedHTMLCommon {
overflow: auto;
}
/* collapseHeadingButton (show always if hiddenCellsButton is _not_ shown) */
.jp-collapseHeadingButton {
display: flex;
min-height: var(--jp-cell-collapser-min-height);
font-size: var(--jp-code-font-size);
position: absolute;
background-color: transparent;
background-size: 25px;
background-repeat: no-repeat;
background-position-x: center;
background-position-y: top;
background-image: var(--jp-icon-caret-down);
right: 0;
top: 0;
bottom: 0;
}
.jp-collapseHeadingButton.jp-mod-collapsed {
background-image: var(--jp-icon-caret-right);
}
/*
set the container font size to match that of content
so that the nested collapse buttons have the right size
*/
.jp-MarkdownCell .jp-InputPrompt {
font-size: var(--jp-content-font-size1);
}
/*
Align collapseHeadingButton with cell top header
The font sizes are identical to the ones in packages/rendermime/style/base.css
*/
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='1'] {
font-size: var(--jp-content-font-size5);
background-position-y: calc(0.3 * var(--jp-content-font-size5));
}
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='2'] {
font-size: var(--jp-content-font-size4);
background-position-y: calc(0.3 * var(--jp-content-font-size4));
}
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='3'] {
font-size: var(--jp-content-font-size3);
background-position-y: calc(0.3 * var(--jp-content-font-size3));
}
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='4'] {
font-size: var(--jp-content-font-size2);
background-position-y: calc(0.3 * var(--jp-content-font-size2));
}
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='5'] {
font-size: var(--jp-content-font-size1);
background-position-y: top;
}
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='6'] {
font-size: var(--jp-content-font-size0);
background-position-y: top;
}
/* collapseHeadingButton (show only on (hover,active) if hiddenCellsButton is shown) */
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-collapseHeadingButton {
display: none;
}
.jp-Notebook.jp-mod-showHiddenCellsButton
:is(.jp-MarkdownCell:hover, .jp-mod-active)
.jp-collapseHeadingButton {
display: flex;
}
/* showHiddenCellsButton (only show if jp-mod-showHiddenCellsButton is set, which
is a consequence of the showHiddenCellsButton option in Notebook Settings)*/
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton {
margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding));
margin-top: var(--jp-code-padding);
border: 1px solid var(--jp-border-color2);
background-color: var(--jp-border-color3) !important;
color: var(--jp-content-font-color0) !important;
display: flex;
}
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton:hover {
background-color: var(--jp-border-color2) !important;
}
.jp-showHiddenCellsButton {
display: none;
}
/*-----------------------------------------------------------------------------
| Printing
|----------------------------------------------------------------------------*/
/*
Using block instead of flex to allow the use of the break-inside CSS property for
cell outputs.
*/
@media print {
.jp-Cell-inputWrapper,
.jp-Cell-outputWrapper {
display: block;
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
--jp-notebook-toolbar-padding: 2px 5px 2px 2px;
}
/*-----------------------------------------------------------------------------
/*-----------------------------------------------------------------------------
| Styles
|----------------------------------------------------------------------------*/
.jp-NotebookPanel-toolbar {
padding: var(--jp-notebook-toolbar-padding);
/* disable paint containment from lumino 2.0 default strict CSS containment */
contain: style size !important;
}
.jp-Toolbar-item.jp-Notebook-toolbarCellType .jp-select-wrapper.jp-mod-focused {
border: none;
box-shadow: none;
}
.jp-Notebook-toolbarCellTypeDropdown select {
height: 24px;
font-size: var(--jp-ui-font-size1);
line-height: 14px;
border-radius: 0;
display: block;
}
.jp-Notebook-toolbarCellTypeDropdown span {
top: 5px !important;
}
.jp-Toolbar-responsive-popup {
position: absolute;
height: fit-content;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-end;
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
box-shadow: var(--jp-toolbar-box-shadow);
background: var(--jp-toolbar-background);
min-height: var(--jp-toolbar-micro-height);
padding: var(--jp-notebook-toolbar-padding);
z-index: 1;
right: 0;
top: 0;
}
.jp-Toolbar > .jp-Toolbar-responsive-opener {
margin-left: auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
/*-----------------------------------------------------------------------------
| Styles
|----------------------------------------------------------------------------*/
.jp-Notebook-ExecutionIndicator {
position: relative;
display: inline-block;
height: 100%;
z-index: 9997;
}
.jp-Notebook-ExecutionIndicator-tooltip {
visibility: hidden;
height: auto;
width: max-content;
width: -moz-max-content;
background-color: var(--jp-layout-color2);
color: var(--jp-ui-font-color1);
text-align: justify;
border-radius: 6px;
padding: 0 5px;
position: fixed;
display: table;
}
.jp-Notebook-ExecutionIndicator-tooltip.up {
transform: translateX(-50%) translateY(-100%) translateY(-32px);
}
.jp-Notebook-ExecutionIndicator-tooltip.down {
transform: translateX(calc(-100% + 16px)) translateY(5px);
}
.jp-Notebook-ExecutionIndicator-tooltip.hidden {
display: none;
}
.jp-Notebook-ExecutionIndicator:hover .jp-Notebook-ExecutionIndicator-tooltip {
visibility: visible;
}
.jp-Notebook-ExecutionIndicator span {
font-size: var(--jp-ui-font-size1);
font-family: var(--jp-ui-font-family);
color: var(--jp-ui-font-color1);
line-height: 24px;
display: block;
}
.jp-Notebook-ExecutionIndicator-progress-bar {
display: flex;
justify-content: center;
height: 100%;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*
* Execution indicator
*/
.jp-tocItem-content::after {
content: '';
/* Must be identical to form a circle */
width: 12px;
height: 12px;
background: none;
border: none;
position: absolute;
right: 0;
}
.jp-tocItem-content[data-running='0']::after {
border-radius: 50%;
border: var(--jp-border-width) solid var(--jp-inverse-layout-color3);
background: none;
}
.jp-tocItem-content[data-running='1']::after {
border-radius: 50%;
border: var(--jp-border-width) solid var(--jp-inverse-layout-color3);
background-color: var(--jp-inverse-layout-color3);
}
.jp-tocItem-content[data-running='0'],
.jp-tocItem-content[data-running='1'] {
margin-right: 12px;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.jp-Notebook-footer {
height: 27px;
margin-left: calc(
var(--jp-cell-prompt-width) + var(--jp-cell-collapser-width) +
var(--jp-cell-padding)
);
width: calc(
100% -
(
var(--jp-cell-prompt-width) + var(--jp-cell-collapser-width) +
var(--jp-cell-padding) + var(--jp-cell-padding)
)
);
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
color: var(--jp-ui-font-color3);
margin-top: 6px;
background: none;
cursor: pointer;
}
.jp-Notebook-footer:focus {
border-color: var(--jp-cell-editor-active-border-color);
}
/* For devices that support hovering, hide footer until hover */
@media (hover: hover) {
.jp-Notebook-footer {
opacity: 0;
}
.jp-Notebook-footer:focus,
.jp-Notebook-footer:hover {
opacity: 1;
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Imports
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| CSS variables
|----------------------------------------------------------------------------*/
:root {
--jp-side-by-side-output-size: 1fr;
--jp-side-by-side-resized-cell: var(--jp-side-by-side-output-size);
--jp-private-notebook-dragImage-width: 304px;
--jp-private-notebook-dragImage-height: 36px;
--jp-private-notebook-selected-color: var(--md-blue-400);
--jp-private-notebook-active-color: var(--md-green-400);
}
/*-----------------------------------------------------------------------------
| Notebook
|----------------------------------------------------------------------------*/
/* stylelint-disable selector-max-class */
.jp-NotebookPanel {
display: block;
height: 100%;
}
.jp-NotebookPanel.jp-Document {
min-width: 240px;
min-height: 120px;
}
.jp-Notebook {
padding: var(--jp-notebook-padding);
outline: none;
overflow: auto;
background: var(--jp-layout-color0);
}
.jp-Notebook.jp-mod-scrollPastEnd::after {
display: block;
content: '';
min-height: var(--jp-notebook-scroll-padding);
}
.jp-MainAreaWidget-ContainStrict .jp-Notebook * {
contain: strict;
}
.jp-Notebook .jp-Cell {
overflow: visible;
}
.jp-Notebook .jp-Cell .jp-InputPrompt {
cursor: move;
}
/*-----------------------------------------------------------------------------
| Notebook state related styling
|
| The notebook and cells each have states, here are the possibilities:
|
| - Notebook
| - Command
| - Edit
| - Cell
| - None
| - Active (only one can be active)
| - Selected (the cells actions are applied to)
| - Multiselected (when multiple selected, the cursor)
| - No outputs
|----------------------------------------------------------------------------*/
/* Command or edit modes */
.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-InputPrompt {
opacity: var(--jp-cell-prompt-not-active-opacity);
color: var(--jp-cell-prompt-not-active-font-color);
}
.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-OutputPrompt {
opacity: var(--jp-cell-prompt-not-active-opacity);
color: var(--jp-cell-prompt-not-active-font-color);
}
/* cell is active */
.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser {
background: var(--jp-brand-color1);
}
/* cell is dirty */
.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt {
color: var(--jp-warn-color1);
}
.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt::before {
color: var(--jp-warn-color1);
content: '•';
}
.jp-Notebook .jp-Cell.jp-mod-active.jp-mod-dirty .jp-Collapser {
background: var(--jp-warn-color1);
}
/* collapser is hovered */
.jp-Notebook .jp-Cell .jp-Collapser:hover {
box-shadow: var(--jp-elevation-z2);
background: var(--jp-brand-color1);
opacity: var(--jp-cell-collapser-not-active-hover-opacity);
}
/* cell is active and collapser is hovered */
.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser:hover {
background: var(--jp-brand-color0);
opacity: 1;
}
/* Command mode */
.jp-Notebook.jp-mod-commandMode .jp-Cell.jp-mod-selected {
background: var(--jp-notebook-multiselected-color);
}
.jp-Notebook.jp-mod-commandMode
.jp-Cell.jp-mod-active.jp-mod-selected:not(.jp-mod-multiSelected) {
background: transparent;
}
/* Edit mode */
.jp-Notebook.jp-mod-editMode .jp-Cell.jp-mod-active .jp-InputArea-editor {
border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
box-shadow: var(--jp-input-box-shadow);
background-color: var(--jp-cell-editor-active-background);
}
/*-----------------------------------------------------------------------------
| Notebook drag and drop
|----------------------------------------------------------------------------*/
.jp-Notebook-cell.jp-mod-dropSource {
opacity: 0.5;
}
.jp-Notebook-cell.jp-mod-dropTarget,
.jp-Notebook.jp-mod-commandMode
.jp-Notebook-cell.jp-mod-active.jp-mod-selected.jp-mod-dropTarget {
border-top-color: var(--jp-private-notebook-selected-color);
border-top-style: solid;
border-top-width: 2px;
}
.jp-dragImage {
display: block;
flex-direction: row;
width: var(--jp-private-notebook-dragImage-width);
height: var(--jp-private-notebook-dragImage-height);
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
background: var(--jp-cell-editor-background);
overflow: visible;
}
.jp-dragImage-singlePrompt {
box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12);
}
.jp-dragImage .jp-dragImage-content {
flex: 1 1 auto;
z-index: 2;
font-size: var(--jp-code-font-size);
font-family: var(--jp-code-font-family);
line-height: var(--jp-code-line-height);
padding: var(--jp-code-padding);
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
background: var(--jp-cell-editor-background-color);
color: var(--jp-content-font-color3);
text-align: left;
margin: 4px 4px 4px 0;
}
.jp-dragImage .jp-dragImage-prompt {
flex: 0 0 auto;
min-width: 36px;
color: var(--jp-cell-inprompt-font-color);
padding: var(--jp-code-padding);
padding-left: 12px;
font-family: var(--jp-cell-prompt-font-family);
letter-spacing: var(--jp-cell-prompt-letter-spacing);
line-height: 1.9;
font-size: var(--jp-code-font-size);
border: var(--jp-border-width) solid transparent;
}
.jp-dragImage-multipleBack {
z-index: -1;
position: absolute;
height: 32px;
width: 300px;
top: 8px;
left: 8px;
background: var(--jp-layout-color2);
border: var(--jp-border-width) solid var(--jp-input-border-color);
box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12);
}
/*-----------------------------------------------------------------------------
| Cell toolbar
|----------------------------------------------------------------------------*/
.jp-NotebookTools {
display: block;
min-width: var(--jp-sidebar-min-width);
color: var(--jp-ui-font-color1);
background: var(--jp-layout-color1);
/* This is needed so that all font sizing of children done in ems is
* relative to this base size */
font-size: var(--jp-ui-font-size1);
overflow: auto;
}
.jp-ActiveCellTool {
padding: 12px 0;
display: flex;
}
.jp-ActiveCellTool-Content {
flex: 1 1 auto;
}
.jp-ActiveCellTool .jp-ActiveCellTool-CellContent {
background: var(--jp-cell-editor-background);
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
border-radius: 0;
min-height: 29px;
}
.jp-ActiveCellTool .jp-InputPrompt {
min-width: calc(var(--jp-cell-prompt-width) * 0.75);
}
.jp-ActiveCellTool-CellContent > pre {
padding: 5px 4px;
margin: 0;
white-space: normal;
}
.jp-MetadataEditorTool {
flex-direction: column;
padding: 12px 0;
}
.jp-RankedPanel > :not(:first-child) {
margin-top: 12px;
}
.jp-KeySelector select.jp-mod-styled {
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color0);
border: var(--jp-border-width) solid var(--jp-border-color1);
}
.jp-KeySelector label,
.jp-MetadataEditorTool label,
.jp-NumberSetter label {
line-height: 1.4;
}
.jp-NotebookTools .jp-select-wrapper {
margin-top: 4px;
margin-bottom: 0;
}
.jp-NumberSetter input {
width: 100%;
margin-top: 4px;
}
.jp-NotebookTools .jp-Collapse {
margin-top: 16px;
}
/*-----------------------------------------------------------------------------
| Presentation Mode (.jp-mod-presentationMode)
|----------------------------------------------------------------------------*/
.jp-mod-presentationMode .jp-Notebook {
--jp-content-font-size1: var(--jp-content-presentation-font-size1);
--jp-code-font-size: var(--jp-code-presentation-font-size);
}
.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-InputPrompt,
.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-OutputPrompt {
flex: 0 0 110px;
}
/*-----------------------------------------------------------------------------
| Side-by-side Mode (.jp-mod-sideBySide)
|----------------------------------------------------------------------------*/
.jp-mod-sideBySide.jp-Notebook .jp-Notebook-cell {
margin-top: 3em;
margin-bottom: 3em;
margin-left: 5%;
margin-right: 5%;
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell {
display: grid;
grid-template-columns: minmax(0, 1fr) min-content minmax(
0,
var(--jp-side-by-side-output-size)
);
grid-template-rows: auto minmax(0, 1fr) auto;
grid-template-areas:
'header header header'
'input handle output'
'footer footer footer';
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell.jp-mod-resizedCell {
grid-template-columns: minmax(0, 1fr) min-content minmax(
0,
var(--jp-side-by-side-resized-cell)
);
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellHeader {
grid-area: header;
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-inputWrapper {
grid-area: input;
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-outputWrapper {
/* overwrite the default margin (no vertical separation needed in side by side move */
margin-top: 0;
grid-area: output;
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellFooter {
grid-area: footer;
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle {
grid-area: handle;
user-select: none;
display: block;
height: 100%;
cursor: ew-resize;
padding: 0 var(--jp-cell-padding);
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle::after {
content: '';
display: block;
background: var(--jp-border-color2);
height: 100%;
width: 5px;
}
.jp-mod-sideBySide.jp-Notebook
.jp-CodeCell.jp-mod-resizedCell
.jp-CellResizeHandle::after {
background: var(--jp-border-color0);
}
.jp-CellResizeHandle {
display: none;
}
/*-----------------------------------------------------------------------------
| Placeholder
|----------------------------------------------------------------------------*/
.jp-Cell-Placeholder {
padding-left: 55px;
}
.jp-Cell-Placeholder-wrapper {
background: #fff;
border: 1px solid;
border-color: #e5e6e9 #dfe0e4 #d0d1d5;
border-radius: 4px;
-webkit-border-radius: 4px;
margin: 10px 15px;
}
.jp-Cell-Placeholder-wrapper-inner {
padding: 15px;
position: relative;
}
.jp-Cell-Placeholder-wrapper-body {
background-repeat: repeat;
background-size: 50% auto;
}
.jp-Cell-Placeholder-wrapper-body div {
background: #f6f7f8;
background-image: -webkit-linear-gradient(
left,
#f6f7f8 0%,
#edeef1 20%,
#f6f7f8 40%,
#f6f7f8 100%
);
background-repeat: no-repeat;
background-size: 800px 104px;
height: 104px;
position: absolute;
right: 15px;
left: 15px;
top: 15px;
}
div.jp-Cell-Placeholder-h1 {
top: 20px;
height: 20px;
left: 15px;
width: 150px;
}
div.jp-Cell-Placeholder-h2 {
left: 15px;
top: 50px;
height: 10px;
width: 100px;
}
div.jp-Cell-Placeholder-content-1,
div.jp-Cell-Placeholder-content-2,
div.jp-Cell-Placeholder-content-3 {
left: 15px;
right: 15px;
height: 10px;
}
div.jp-Cell-Placeholder-content-1 {
top: 100px;
}
div.jp-Cell-Placeholder-content-2 {
top: 120px;
}
div.jp-Cell-Placeholder-content-3 {
top: 140px;
}
</style>
<style type="text/css">
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*
The following CSS variables define the main, public API for styling JupyterLab.
These variables should be used by all plugins wherever possible. In other
words, plugins should not define custom colors, sizes, etc unless absolutely
necessary. This enables users to change the visual theme of JupyterLab
by changing these variables.
Many variables appear in an ordered sequence (0,1,2,3). These sequences
are designed to work well together, so for example, `--jp-border-color1` should
be used with `--jp-layout-color1`. The numbers have the following meanings:
* 0: super-primary, reserved for special emphasis
* 1: primary, most important under normal situations
* 2: secondary, next most important under normal situations
* 3: tertiary, next most important under normal situations
Throughout JupyterLab, we are mostly following principles from Google's
Material Design when selecting colors. We are not, however, following
all of MD as it is not optimized for dense, information rich UIs.
*/
:root {
/* Elevation
*
* We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:
*
* https://github.com/material-components/material-components-web
* https://material-components-web.appspot.com/elevation.html
*/
--jp-shadow-base-lightness: 0;
--jp-shadow-umbra-color: rgba(
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
0.2
);
--jp-shadow-penumbra-color: rgba(
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
0.14
);
--jp-shadow-ambient-color: rgba(
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
0.12
);
--jp-elevation-z0: none;
--jp-elevation-z1: 0 2px 1px -1px var(--jp-shadow-umbra-color),
0 1px 1px 0 var(--jp-shadow-penumbra-color),
0 1px 3px 0 var(--jp-shadow-ambient-color);
--jp-elevation-z2: 0 3px 1px -2px var(--jp-shadow-umbra-color),
0 2px 2px 0 var(--jp-shadow-penumbra-color),
0 1px 5px 0 var(--jp-shadow-ambient-color);
--jp-elevation-z4: 0 2px 4px -1px var(--jp-shadow-umbra-color),
0 4px 5px 0 var(--jp-shadow-penumbra-color),
0 1px 10px 0 var(--jp-shadow-ambient-color);
--jp-elevation-z6: 0 3px 5px -1px var(--jp-shadow-umbra-color),
0 6px 10px 0 var(--jp-shadow-penumbra-color),
0 1px 18px 0 var(--jp-shadow-ambient-color);
--jp-elevation-z8: 0 5px 5px -3px var(--jp-shadow-umbra-color),
0 8px 10px 1px var(--jp-shadow-penumbra-color),
0 3px 14px 2px var(--jp-shadow-ambient-color);
--jp-elevation-z12: 0 7px 8px -4px var(--jp-shadow-umbra-color),
0 12px 17px 2px var(--jp-shadow-penumbra-color),
0 5px 22px 4px var(--jp-shadow-ambient-color);
--jp-elevation-z16: 0 8px 10px -5px var(--jp-shadow-umbra-color),
0 16px 24px 2px var(--jp-shadow-penumbra-color),
0 6px 30px 5px var(--jp-shadow-ambient-color);
--jp-elevation-z20: 0 10px 13px -6px var(--jp-shadow-umbra-color),
0 20px 31px 3px var(--jp-shadow-penumbra-color),
0 8px 38px 7px var(--jp-shadow-ambient-color);
--jp-elevation-z24: 0 11px 15px -7px var(--jp-shadow-umbra-color),
0 24px 38px 3px var(--jp-shadow-penumbra-color),
0 9px 46px 8px var(--jp-shadow-ambient-color);
/* Borders
*
* The following variables, specify the visual styling of borders in JupyterLab.
*/
--jp-border-width: 1px;
--jp-border-color0: var(--md-grey-400);
--jp-border-color1: var(--md-grey-400);
--jp-border-color2: var(--md-grey-300);
--jp-border-color3: var(--md-grey-200);
--jp-inverse-border-color: var(--md-grey-600);
--jp-border-radius: 2px;
/* UI Fonts
*
* The UI font CSS variables are used for the typography all of the JupyterLab
* user interface elements that are not directly user generated content.
*
* The font sizing here is done assuming that the body font size of --jp-ui-font-size1
* is applied to a parent element. When children elements, such as headings, are sized
* in em all things will be computed relative to that body size.
*/
--jp-ui-font-scale-factor: 1.2;
--jp-ui-font-size0: 0.83333em;
--jp-ui-font-size1: 13px; /* Base font size */
--jp-ui-font-size2: 1.2em;
--jp-ui-font-size3: 1.44em;
--jp-ui-font-family: system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI',
helvetica, arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
'Segoe UI Symbol';
/*
* Use these font colors against the corresponding main layout colors.
* In a light theme, these go from dark to light.
*/
/* Defaults use Material Design specification */
--jp-ui-font-color0: rgba(0, 0, 0, 1);
--jp-ui-font-color1: rgba(0, 0, 0, 0.87);
--jp-ui-font-color2: rgba(0, 0, 0, 0.54);
--jp-ui-font-color3: rgba(0, 0, 0, 0.38);
/*
* Use these against the brand/accent/warn/error colors.
* These will typically go from light to darker, in both a dark and light theme.
*/
--jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);
--jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);
--jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);
--jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);
/* Content Fonts
*
* Content font variables are used for typography of user generated content.
*
* The font sizing here is done assuming that the body font size of --jp-content-font-size1
* is applied to a parent element. When children elements, such as headings, are sized
* in em all things will be computed relative to that body size.
*/
--jp-content-line-height: 1.6;
--jp-content-font-scale-factor: 1.2;
--jp-content-font-size0: 0.83333em;
--jp-content-font-size1: 14px; /* Base font size */
--jp-content-font-size2: 1.2em;
--jp-content-font-size3: 1.44em;
--jp-content-font-size4: 1.728em;
--jp-content-font-size5: 2.0736em;
/* This gives a magnification of about 125% in presentation mode over normal. */
--jp-content-presentation-font-size1: 17px;
--jp-content-heading-line-height: 1;
--jp-content-heading-margin-top: 1.2em;
--jp-content-heading-margin-bottom: 0.8em;
--jp-content-heading-font-weight: 500;
/* Defaults use Material Design specification */
--jp-content-font-color0: rgba(0, 0, 0, 1);
--jp-content-font-color1: rgba(0, 0, 0, 0.87);
--jp-content-font-color2: rgba(0, 0, 0, 0.54);
--jp-content-font-color3: rgba(0, 0, 0, 0.38);
--jp-content-link-color: var(--md-blue-900);
--jp-content-font-family: system-ui, -apple-system, blinkmacsystemfont,
'Segoe UI', helvetica, arial, sans-serif, 'Apple Color Emoji',
'Segoe UI Emoji', 'Segoe UI Symbol';
/*
* Code Fonts
*
* Code font variables are used for typography of code and other monospaces content.
*/
--jp-code-font-size: 13px;
--jp-code-line-height: 1.3077; /* 17px for 13px base */
--jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */
--jp-code-font-family-default: menlo, consolas, 'DejaVu Sans Mono', monospace;
--jp-code-font-family: var(--jp-code-font-family-default);
/* This gives a magnification of about 125% in presentation mode over normal. */
--jp-code-presentation-font-size: 16px;
/* may need to tweak cursor width if you change font size */
--jp-code-cursor-width0: 1.4px;
--jp-code-cursor-width1: 2px;
--jp-code-cursor-width2: 4px;
/* Layout
*
* The following are the main layout colors use in JupyterLab. In a light
* theme these would go from light to dark.
*/
--jp-layout-color0: white;
--jp-layout-color1: white;
--jp-layout-color2: var(--md-grey-200);
--jp-layout-color3: var(--md-grey-400);
--jp-layout-color4: var(--md-grey-600);
/* Inverse Layout
*
* The following are the inverse layout colors use in JupyterLab. In a light
* theme these would go from dark to light.
*/
--jp-inverse-layout-color0: #111;
--jp-inverse-layout-color1: var(--md-grey-900);
--jp-inverse-layout-color2: var(--md-grey-800);
--jp-inverse-layout-color3: var(--md-grey-700);
--jp-inverse-layout-color4: var(--md-grey-600);
/* Brand/accent */
--jp-brand-color0: var(--md-blue-900);
--jp-brand-color1: var(--md-blue-700);
--jp-brand-color2: var(--md-blue-300);
--jp-brand-color3: var(--md-blue-100);
--jp-brand-color4: var(--md-blue-50);
--jp-accent-color0: var(--md-green-900);
--jp-accent-color1: var(--md-green-700);
--jp-accent-color2: var(--md-green-300);
--jp-accent-color3: var(--md-green-100);
/* State colors (warn, error, success, info) */
--jp-warn-color0: var(--md-orange-900);
--jp-warn-color1: var(--md-orange-700);
--jp-warn-color2: var(--md-orange-300);
--jp-warn-color3: var(--md-orange-100);
--jp-error-color0: var(--md-red-900);
--jp-error-color1: var(--md-red-700);
--jp-error-color2: var(--md-red-300);
--jp-error-color3: var(--md-red-100);
--jp-success-color0: var(--md-green-900);
--jp-success-color1: var(--md-green-700);
--jp-success-color2: var(--md-green-300);
--jp-success-color3: var(--md-green-100);
--jp-info-color0: var(--md-cyan-900);
--jp-info-color1: var(--md-cyan-700);
--jp-info-color2: var(--md-cyan-300);
--jp-info-color3: var(--md-cyan-100);
/* Cell specific styles */
--jp-cell-padding: 5px;
--jp-cell-collapser-width: 8px;
--jp-cell-collapser-min-height: 20px;
--jp-cell-collapser-not-active-hover-opacity: 0.6;
--jp-cell-editor-background: var(--md-grey-100);
--jp-cell-editor-border-color: var(--md-grey-300);
--jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);
--jp-cell-editor-active-background: var(--jp-layout-color0);
--jp-cell-editor-active-border-color: var(--jp-brand-color1);
--jp-cell-prompt-width: 64px;
--jp-cell-prompt-font-family: var(--jp-code-font-family-default);
--jp-cell-prompt-letter-spacing: 0;
--jp-cell-prompt-opacity: 1;
--jp-cell-prompt-not-active-opacity: 0.5;
--jp-cell-prompt-not-active-font-color: var(--md-grey-700);
/* A custom blend of MD grey and blue 600
* See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */
--jp-cell-inprompt-font-color: #307fc1;
/* A custom blend of MD grey and orange 600
* https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */
--jp-cell-outprompt-font-color: #bf5b3d;
/* Notebook specific styles */
--jp-notebook-padding: 10px;
--jp-notebook-select-background: var(--jp-layout-color1);
--jp-notebook-multiselected-color: var(--md-blue-50);
/* The scroll padding is calculated to fill enough space at the bottom of the
notebook to show one single-line cell (with appropriate padding) at the top
when the notebook is scrolled all the way to the bottom. We also subtract one
pixel so that no scrollbar appears if we have just one single-line cell in the
notebook. This padding is to enable a 'scroll past end' feature in a notebook.
*/
--jp-notebook-scroll-padding: calc(
100% - var(--jp-code-font-size) * var(--jp-code-line-height) -
var(--jp-code-padding) - var(--jp-cell-padding) - 1px
);
/* Rendermime styles */
--jp-rendermime-error-background: #fdd;
--jp-rendermime-table-row-background: var(--md-grey-100);
--jp-rendermime-table-row-hover-background: var(--md-light-blue-50);
/* Dialog specific styles */
--jp-dialog-background: rgba(0, 0, 0, 0.25);
/* Console specific styles */
--jp-console-padding: 10px;
/* Toolbar specific styles */
--jp-toolbar-border-color: var(--jp-border-color1);
--jp-toolbar-micro-height: 8px;
--jp-toolbar-background: var(--jp-layout-color1);
--jp-toolbar-box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.24);
--jp-toolbar-header-margin: 4px 4px 0 4px;
--jp-toolbar-active-background: var(--md-grey-300);
/* Statusbar specific styles */
--jp-statusbar-height: 24px;
/* Input field styles */
--jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);
--jp-input-active-background: var(--jp-layout-color1);
--jp-input-hover-background: var(--jp-layout-color1);
--jp-input-background: var(--md-grey-100);
--jp-input-border-color: var(--jp-inverse-border-color);
--jp-input-active-border-color: var(--jp-brand-color1);
--jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);
/* General editor styles */
--jp-editor-selected-background: #d9d9d9;
--jp-editor-selected-focused-background: #d7d4f0;
--jp-editor-cursor-color: var(--jp-ui-font-color0);
/* Code mirror specific styles */
--jp-mirror-editor-keyword-color: #008000;
--jp-mirror-editor-atom-color: #88f;
--jp-mirror-editor-number-color: #080;
--jp-mirror-editor-def-color: #00f;
--jp-mirror-editor-variable-color: var(--md-grey-900);
--jp-mirror-editor-variable-2-color: rgb(0, 54, 109);
--jp-mirror-editor-variable-3-color: #085;
--jp-mirror-editor-punctuation-color: #05a;
--jp-mirror-editor-property-color: #05a;
--jp-mirror-editor-operator-color: #a2f;
--jp-mirror-editor-comment-color: #408080;
--jp-mirror-editor-string-color: #ba2121;
--jp-mirror-editor-string-2-color: #708;
--jp-mirror-editor-meta-color: #a2f;
--jp-mirror-editor-qualifier-color: #555;
--jp-mirror-editor-builtin-color: #008000;
--jp-mirror-editor-bracket-color: #997;
--jp-mirror-editor-tag-color: #170;
--jp-mirror-editor-attribute-color: #00c;
--jp-mirror-editor-header-color: blue;
--jp-mirror-editor-quote-color: #090;
--jp-mirror-editor-link-color: #00c;
--jp-mirror-editor-error-color: #f00;
--jp-mirror-editor-hr-color: #999;
/*
RTC user specific colors.
These colors are used for the cursor, username in the editor,
and the icon of the user.
*/
--jp-collaborator-color1: #ffad8e;
--jp-collaborator-color2: #dac83d;
--jp-collaborator-color3: #72dd76;
--jp-collaborator-color4: #00e4d0;
--jp-collaborator-color5: #45d4ff;
--jp-collaborator-color6: #e2b1ff;
--jp-collaborator-color7: #ff9de6;
/* Vega extension styles */
--jp-vega-background: white;
/* Sidebar-related styles */
--jp-sidebar-min-width: 250px;
/* Search-related styles */
--jp-search-toggle-off-opacity: 0.5;
--jp-search-toggle-hover-opacity: 0.8;
--jp-search-toggle-on-opacity: 1;
--jp-search-selected-match-background-color: rgb(245, 200, 0);
--jp-search-selected-match-color: black;
--jp-search-unselected-match-background-color: var(
--jp-inverse-layout-color0
);
--jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);
/* Icon colors that work well with light or dark backgrounds */
--jp-icon-contrast-color0: var(--md-purple-600);
--jp-icon-contrast-color1: var(--md-green-600);
--jp-icon-contrast-color2: var(--md-pink-600);
--jp-icon-contrast-color3: var(--md-blue-600);
/* Button colors */
--jp-accept-color-normal: var(--md-blue-700);
--jp-accept-color-hover: var(--md-blue-800);
--jp-accept-color-active: var(--md-blue-900);
--jp-warn-color-normal: var(--md-red-700);
--jp-warn-color-hover: var(--md-red-800);
--jp-warn-color-active: var(--md-red-900);
--jp-reject-color-normal: var(--md-grey-600);
--jp-reject-color-hover: var(--md-grey-700);
--jp-reject-color-active: var(--md-grey-800);
/* File or activity icons and switch semantic variables */
--jp-jupyter-icon-color: #f37626;
--jp-notebook-icon-color: #f37626;
--jp-json-icon-color: var(--md-orange-700);
--jp-console-icon-background-color: var(--md-blue-700);
--jp-console-icon-color: white;
--jp-terminal-icon-background-color: var(--md-grey-800);
--jp-terminal-icon-color: var(--md-grey-200);
--jp-text-editor-icon-color: var(--md-grey-700);
--jp-inspector-icon-color: var(--md-grey-700);
--jp-switch-color: var(--md-grey-400);
--jp-switch-true-position-color: var(--md-orange-900);
}
</style>
<style type="text/css">
/* Force rendering true colors when outputing to pdf */
* {
-webkit-print-color-adjust: exact;
}
/* Misc */
a.anchor-link {
display: none;
}
/* Input area styling */
.jp-InputArea {
overflow: hidden;
}
.jp-InputArea-editor {
overflow: hidden;
}
.cm-editor.cm-s-jupyter .highlight pre {
/* weird, but --jp-code-padding defined to be 5px but 4px horizontal padding is hardcoded for pre.cm-line */
padding: var(--jp-code-padding) 4px;
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
color: inherit;
}
.jp-OutputArea-output pre {
line-height: inherit;
font-family: inherit;
}
.jp-RenderedText pre {
color: var(--jp-content-font-color1);
font-size: var(--jp-code-font-size);
}
/* Hiding the collapser by default */
.jp-Collapser {
display: none;
}
@page {
margin: 0.5in; /* Margin for each printed piece of paper */
}
@media print {
.jp-Cell-inputWrapper,
.jp-Cell-outputWrapper {
display: block;
}
}
</style>
<!-- Load mathjax -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS_CHTML-full,Safe"> </script>
<!-- MathJax configuration -->
<script type="text/x-mathjax-config">
init_mathjax = function() {
if (window.MathJax) {
// MathJax loaded
MathJax.Hub.Config({
TeX: {
equationNumbers: {
autoNumber: "AMS",
useLabelIds: true
}
},
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true,
processEnvironments: true
},
displayAlign: 'center',
messageStyle: 'none',
CommonHTML: {
linebreaks: {
automatic: true
}
}
});
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
}
}
init_mathjax();
</script>
<!-- End of mathjax configuration --><script type="module">
document.addEventListener("DOMContentLoaded", async () => {
const diagrams = document.querySelectorAll(".jp-Mermaid > pre.mermaid");
// do not load mermaidjs if not needed
if (!diagrams.length) {
return;
}
const mermaid = (await import("https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.7.0/mermaid.esm.min.mjs")).default;
const parser = new DOMParser();
mermaid.initialize({
maxTextSize: 100000,
maxEdges: 100000,
startOnLoad: false,
fontFamily: window
.getComputedStyle(document.body)
.getPropertyValue("--jp-ui-font-family"),
theme: document.querySelector("body[data-jp-theme-light='true']")
? "default"
: "dark",
});
let _nextMermaidId = 0;
function makeMermaidImage(svg) {
const img = document.createElement("img");
const doc = parser.parseFromString(svg, "image/svg+xml");
const svgEl = doc.querySelector("svg");
const { maxWidth } = svgEl?.style || {};
const firstTitle = doc.querySelector("title");
const firstDesc = doc.querySelector("desc");
img.setAttribute("src", `data:image/svg+xml,${encodeURIComponent(svg)}`);
if (maxWidth) {
img.width = parseInt(maxWidth);
}
if (firstTitle) {
img.setAttribute("alt", firstTitle.textContent);
}
if (firstDesc) {
const caption = document.createElement("figcaption");
caption.className = "sr-only";
caption.textContent = firstDesc.textContent;
return [img, caption];
}
return [img];
}
async function makeMermaidError(text) {
let errorMessage = "";
try {
await mermaid.parse(text);
} catch (err) {
errorMessage = `${err}`;
}
const result = document.createElement("details");
result.className = 'jp-RenderedMermaid-Details';
const summary = document.createElement("summary");
summary.className = 'jp-RenderedMermaid-Summary';
const pre = document.createElement("pre");
const code = document.createElement("code");
code.innerText = text;
pre.appendChild(code);
summary.appendChild(pre);
result.appendChild(summary);
const warning = document.createElement("pre");
warning.innerText = errorMessage;
result.appendChild(warning);
return [result];
}
async function renderOneMarmaid(src) {
const id = `jp-mermaid-${_nextMermaidId++}`;
const parent = src.parentNode;
let raw = src.textContent.trim();
const el = document.createElement("div");
el.style.visibility = "hidden";
document.body.appendChild(el);
let results = null;
let output = null;
try {
let { svg } = await mermaid.render(id, raw, el);
svg = cleanMermaidSvg(svg);
results = makeMermaidImage(svg);
output = document.createElement("figure");
results.map(output.appendChild, output);
} catch (err) {
parent.classList.add("jp-mod-warning");
results = await makeMermaidError(raw);
output = results[0];
} finally {
el.remove();
}
parent.classList.add("jp-RenderedMermaid");
parent.appendChild(output);
}
/**
* Post-process to ensure mermaid diagrams contain only valid SVG and XHTML.
*/
function cleanMermaidSvg(svg) {
return svg.replace(RE_VOID_ELEMENT, replaceVoidElement);
}
/**
* A regular expression for all void elements, which may include attributes and
* a slash.
*
* @see https://developer.mozilla.org/en-US/docs/Glossary/Void_element
*
* Of these, only `<br>` is generated by Mermaid in place of `\n`,
* but _any_ "malformed" tag will break the SVG rendering entirely.
*/
const RE_VOID_ELEMENT =
/<\s*(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\s*([^>]*?)\s*>/gi;
/**
* Ensure a void element is closed with a slash, preserving any attributes.
*/
function replaceVoidElement(match, tag, rest) {
rest = rest.trim();
if (!rest.endsWith('/')) {
rest = `${rest} /`;
}
return `<${tag} ${rest}>`;
}
void Promise.all([...diagrams].map(renderOneMarmaid));
});
</script>
<style>
.jp-Mermaid:not(.jp-RenderedMermaid) {
display: none;
}
.jp-RenderedMermaid {
overflow: auto;
display: flex;
}
.jp-RenderedMermaid.jp-mod-warning {
width: auto;
padding: 0.5em;
margin-top: 0.5em;
border: var(--jp-border-width) solid var(--jp-warn-color2);
border-radius: var(--jp-border-radius);
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
white-space: pre-wrap;
word-wrap: break-word;
}
.jp-RenderedMermaid figure {
margin: 0;
overflow: auto;
max-width: 100%;
}
.jp-RenderedMermaid img {
max-width: 100%;
}
.jp-RenderedMermaid-Details > pre {
margin-top: 1em;
}
.jp-RenderedMermaid-Summary {
color: var(--jp-warn-color2);
}
.jp-RenderedMermaid:not(.jp-mod-warning) pre {
display: none;
}
.jp-RenderedMermaid-Summary > pre {
display: inline-block;
white-space: normal;
}
</style>
<!-- End of mermaid configuration --></head>
<body class="jp-Notebook" data-jp-theme-light="true" data-jp-theme-name="JupyterLab Light">
<main>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h1 id="Tutorial:-One-dimensional-Helmholtz-equation-using-Periodic-Boundary-Conditions">Tutorial: One dimensional Helmholtz equation using Periodic Boundary Conditions<a class="anchor-link" href="#Tutorial:-One-dimensional-Helmholtz-equation-using-Periodic-Boundary-Conditions"></a></h1><p><a href="https://colab.research.google.com/github/mathLab/PINA/blob/master/tutorials/tutorial9/tutorial.ipynb"><img alt="Open In Colab" src="https://colab.research.google.com/assets/colab-badge.svg"/></a></p>
<p>This tutorial presents how to solve with Physics-Informed Neural Networks (PINNs)
a one dimensional Helmholtz equation with periodic boundary conditions (PBC).
We will train with standard PINN's training by augmenting the input with
periodic expansion as presented in <a href="https://arxiv.org/abs/2308.08468"><em>An experts guide to training
physics-informed neural networks</em></a>.</p>
<p>First of all, some useful imports.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [1]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="c1">## routine needed to run the notebook on Google Colab</span>
<span class="k">try</span><span class="p">:</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">google.colab</span>
<span class="n">IN_COLAB</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">except</span><span class="p">:</span>
<span class="n">IN_COLAB</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">if</span> <span class="n">IN_COLAB</span><span class="p">:</span>
<span class="o">!</span>pip<span class="w"> </span>install<span class="w"> </span><span class="s2">"pina-mathlab"</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">torch</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">pina</span><span class="w"> </span><span class="kn">import</span> <span class="n">Condition</span><span class="p">,</span> <span class="n">Trainer</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.problem</span><span class="w"> </span><span class="kn">import</span> <span class="n">SpatialProblem</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.operator</span><span class="w"> </span><span class="kn">import</span> <span class="n">laplacian</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.model</span><span class="w"> </span><span class="kn">import</span> <span class="n">FeedForward</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.model.block</span><span class="w"> </span><span class="kn">import</span> <span class="n">PeriodicBoundaryEmbedding</span> <span class="c1"># The PBC module</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.solver</span><span class="w"> </span><span class="kn">import</span> <span class="n">PINN</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.domain</span><span class="w"> </span><span class="kn">import</span> <span class="n">CartesianDomain</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.equation</span><span class="w"> </span><span class="kn">import</span> <span class="n">Equation</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.callback</span><span class="w"> </span><span class="kn">import</span> <span class="n">MetricTracker</span>
<span class="n">warnings</span><span class="o">.</span><span class="n">filterwarnings</span><span class="p">(</span><span class="s2">"ignore"</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h2 id="The-problem-definition">The problem definition<a class="anchor-link" href="#The-problem-definition"></a></h2><p>The one-dimensional Helmholtz problem is mathematically written as:
$$
\begin{cases}
\frac{d^2}{dx^2}u(x) - \lambda u(x) -f(x) &amp;= 0 \quad x\in(0,2)\\
u^{(m)}(x=0) - u^{(m)}(x=2) &amp;= 0 \quad m\in[0, 1, \cdots]\\
\end{cases}
$$
In this case we are asking the solution to be $C^{\infty}$ periodic with
period $2$, on the infinite domain $x\in(-\infty, \infty)$. Notice that the
classical PINN would need infinite conditions to evaluate the PBC loss function,
one for each derivative, which is of course infeasible...
A possible solution, diverging from the original PINN formulation,
is to use <em>coordinates augmentation</em>. In coordinates augmentation you seek for
a coordinates transformation $v$ such that $x\rightarrow v(x)$ such that
the periodicity condition $ u^{(m)}(x=0) - u^{(m)}(x=2) = 0 \quad m\in[0, 1, \cdots] $ is
satisfied.</p>
<p>For demonstration purposes, the problem specifics are $\lambda=-10\pi^2$,
and $f(x)=-6\pi^2\sin(3\pi x)\cos(\pi x)$ which give a solution that can be
computed analytically $u(x) = \sin(\pi x)\cos(3\pi x)$.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [2]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">helmholtz_equation</span><span class="p">(</span><span class="n">input_</span><span class="p">,</span> <span class="n">output_</span><span class="p">):</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">input_</span><span class="o">.</span><span class="n">extract</span><span class="p">(</span><span class="s2">"x"</span><span class="p">)</span>
<span class="n">u_xx</span> <span class="o">=</span> <span class="n">laplacian</span><span class="p">(</span><span class="n">output_</span><span class="p">,</span> <span class="n">input_</span><span class="p">,</span> <span class="n">components</span><span class="o">=</span><span class="p">[</span><span class="s2">"u"</span><span class="p">],</span> <span class="n">d</span><span class="o">=</span><span class="p">[</span><span class="s2">"x"</span><span class="p">])</span>
<span class="n">f</span> <span class="o">=</span> <span class="p">(</span>
<span class="o">-</span><span class="mf">6.0</span>
<span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">pi</span><span class="o">**</span><span class="mi">2</span>
<span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="mi">3</span> <span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">x</span><span class="p">)</span>
<span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">x</span><span class="p">)</span>
<span class="p">)</span>
<span class="n">lambda_</span> <span class="o">=</span> <span class="o">-</span><span class="mf">10.0</span> <span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">pi</span><span class="o">**</span><span class="mi">2</span>
<span class="k">return</span> <span class="n">u_xx</span> <span class="o">-</span> <span class="n">lambda_</span> <span class="o">*</span> <span class="n">output_</span> <span class="o">-</span> <span class="n">f</span>
<span class="k">class</span><span class="w"> </span><span class="nc">Helmholtz</span><span class="p">(</span><span class="n">SpatialProblem</span><span class="p">):</span>
<span class="n">output_variables</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"u"</span><span class="p">]</span>
<span class="n">spatial_domain</span> <span class="o">=</span> <span class="n">CartesianDomain</span><span class="p">({</span><span class="s2">"x"</span><span class="p">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">]})</span>
<span class="c1"># here we write the problem conditions</span>
<span class="n">conditions</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"phys_cond"</span><span class="p">:</span> <span class="n">Condition</span><span class="p">(</span>
<span class="n">domain</span><span class="o">=</span><span class="n">spatial_domain</span><span class="p">,</span> <span class="n">equation</span><span class="o">=</span><span class="n">Equation</span><span class="p">(</span><span class="n">helmholtz_equation</span><span class="p">)</span>
<span class="p">),</span>
<span class="p">}</span>
<span class="k">def</span><span class="w"> </span><span class="nf">solution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pts</span><span class="p">):</span>
<span class="k">return</span> <span class="n">torch</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">pts</span><span class="p">)</span> <span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="mf">3.0</span> <span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">pts</span><span class="p">)</span>
<span class="n">problem</span> <span class="o">=</span> <span class="n">Helmholtz</span><span class="p">()</span>
<span class="c1"># let's discretise the domain</span>
<span class="n">problem</span><span class="o">.</span><span class="n">discretise_domain</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span> <span class="s2">"grid"</span><span class="p">,</span> <span class="n">domains</span><span class="o">=</span><span class="p">[</span><span class="s2">"phys_cond"</span><span class="p">])</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p>As usual, the Helmholtz problem is written in <strong>PINA</strong> code as a class.
The equations are written as <code>conditions</code> that should be satisfied in the
corresponding domains. The <code>solution</code>
is the exact solution which will be compared with the predicted one. We used
Latin Hypercube Sampling for choosing the collocation points.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h2 id="Solving-the-problem-with-a-Periodic-Network">Solving the problem with a Periodic Network<a class="anchor-link" href="#Solving-the-problem-with-a-Periodic-Network"></a></h2>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p>Any $\mathcal{C}^{\infty}$ periodic function
$u : \mathbb{R} \rightarrow \mathbb{R}$ with period
$L\in\mathbb{N}$ can be constructed by composition of an
arbitrary smooth function $f : \mathbb{R}^n \rightarrow \mathbb{R}$ and a
given smooth periodic function $v : \mathbb{R} \rightarrow \mathbb{R}^n$ with
period $L$, that is $u(x) = f(v(x))$. The formulation is generalizable for
arbitrary dimension, see <a href="https://arxiv.org/pdf/2007.07442"><em>A method for representing periodic functions and
enforcing exactly periodic boundary conditions with
deep neural networks</em></a>.</p>
<p>In our case, we rewrite
$v(x) = \left[1, \cos\left(\frac{2\pi}{L} x\right),
\sin\left(\frac{2\pi}{L} x\right)\right]$, i.e
the coordinates augmentation, and $f(\cdot) = NN_{\theta}(\cdot)$ i.e. a neural
network. The resulting neural network obtained by composing $f$ with $v$ gives
the PINN approximate solution, that is
$u(x) \approx u_{\theta}(x)=NN_{\theta}(v(x))$.</p>
<p>In <strong>PINA</strong> this translates in using the <code>PeriodicBoundaryEmbedding</code> layer for $v$, and any
<code>pina.model</code> for $NN_{\theta}$. Let's see it in action!</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [3]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># we encapsulate all modules in a torch.nn.Sequential container</span>
<span class="n">model</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">Sequential</span><span class="p">(</span>
<span class="n">PeriodicBoundaryEmbedding</span><span class="p">(</span><span class="n">input_dimension</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">periods</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span>
<span class="n">FeedForward</span><span class="p">(</span>
<span class="n">input_dimensions</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="c1"># output of PeriodicBoundaryEmbedding = 3 * input_dimension</span>
<span class="n">output_dimensions</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">layers</span><span class="o">=</span><span class="p">[</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">],</span>
<span class="p">),</span>
<span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p>As simple as that! Notice that in higher dimension you can specify different periods
for all dimensions using a dictionary, e.g. <code>periods={'x':2, 'y':3, ...}</code>
would indicate a periodicity of $2$ in $x$, $3$ in $y$, and so on...</p>
<p>We will now solve the problem as usually with the <code>PINN</code> and <code>Trainer</code> class, then we will look at the losses using the <code>MetricTracker</code> callback from <code>pina.callback</code>.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [4]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">pinn</span> <span class="o">=</span> <span class="n">PINN</span><span class="p">(</span>
<span class="n">problem</span><span class="o">=</span><span class="n">problem</span><span class="p">,</span>
<span class="n">model</span><span class="o">=</span><span class="n">model</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">trainer</span> <span class="o">=</span> <span class="n">Trainer</span><span class="p">(</span>
<span class="n">pinn</span><span class="p">,</span>
<span class="n">max_epochs</span><span class="o">=</span><span class="mi">5000</span><span class="p">,</span>
<span class="n">accelerator</span><span class="o">=</span><span class="s2">"cpu"</span><span class="p">,</span>
<span class="n">enable_model_summary</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
<span class="n">callbacks</span><span class="o">=</span><span class="p">[</span><span class="n">MetricTracker</span><span class="p">()],</span>
<span class="n">train_size</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span>
<span class="n">val_size</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
<span class="n">test_size</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">trainer</span><span class="o">.</span><span class="n">train</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr" tabindex="0">
<pre>GPU available: False, used: False
</pre>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr" tabindex="0">
<pre>TPU available: False, using: 0 TPU cores
</pre>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr" tabindex="0">
<pre>HPU available: False, using: 0 HPUs
</pre>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr" tabindex="0">
<pre>Missing logger folder: /home/runner/work/PINA/PINA/tutorials/tutorial9/lightning_logs
</pre>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jupyter-widgets jp-OutputArea-output" id="3988602e-0323-4238-8a9e-74b84890409f" tabindex="0">
<script type="text/javascript">
var element = document.getElementById('3988602e-0323-4238-8a9e-74b84890409f');
</script>
<script type="application/vnd.jupyter.widget-view+json">
{"version_major": 2, "version_minor": 0, "model_id": "bca2f526b1664dad81e4b8212f010384"}
</script>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr" tabindex="0">
<pre>`Trainer.fit` stopped: `max_epochs=5000` reached.
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [5]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># plot loss</span>
<span class="n">trainer_metrics</span> <span class="o">=</span> <span class="n">trainer</span><span class="o">.</span><span class="n">callbacks</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">metrics</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span>
<span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">trainer_metrics</span><span class="p">[</span><span class="s2">"train_loss"</span><span class="p">])),</span> <span class="n">trainer_metrics</span><span class="p">[</span><span class="s2">"train_loss"</span><span class="p">]</span>
<span class="p">)</span>
<span class="c1"># plotting</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"epoch"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"loss"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">yscale</span><span class="p">(</span><span class="s2">"log"</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkIAAAGwCAYAAABFFQqPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbAklEQVR4nO3deVxU9f4/8NeZgRlANhEFERC3SFwgFQiX0sRMzco228y09FZWFt5K65Z164a/uvU1c8qyRVtuWpZ2b6aZmGsoiuIGLigIKqvIDPsyc35/oONsbMPAmWFez8eDx0POnDnnzSGbl59VEEVRBBEREZETkkldABEREZFUGISIiIjIaTEIERERkdNiECIiIiKnxSBERERETotBiIiIiJwWgxARERE5LRepC7BnOp0OFy9ehJeXFwRBkLocIiIiagFRFFFWVoagoCDIZE23+TAINeHixYsICQmRugwiIiKyQm5uLoKDg5s8h0HIApVKBZVKhfr6egAND9Lb21viqoiIiKglNBoNQkJC4OXl1ey5ArfYaJxGo4GPjw/UajWDEBERkYNozec3B0sTERGR02IQIiIiIqfFIEREREROi0GIiIiInBaDEBERETktBiEiIiJyWgxCRERE5LQYhIiIiMhpMQgRERGR02IQIiIiIqfFIEREREROi0GIiIiInFanD0KlpaUYMWIEoqKiMHjwYKxcuVLqkgAA5TX1SD13WeoyiIiInJqL1AW0Ny8vL+zcuRMeHh6oqKjA4MGDcffdd6Nbt26S1XS6oAx3LN8DhYsM+14ZDzdXuWS1EBERObNO3yIkl8vh4eEBAKipqYEoihBFUdKa+nb3RFcPV6ir6rD9ZKGktRARETkzuw9CO3fuxNSpUxEUFARBELBhwwazc1QqFcLCwuDm5obY2FikpKQYvV5aWorIyEgEBwfjxRdfhL+/fwdVb5lcJuDm8B4AgGMXNJLWQkRE5MzsPghVVFQgMjISKpXK4utr165FQkICFi9ejIMHDyIyMhITJ05EYeG1lhZfX18cPnwYWVlZ+M9//oOCggKL16qpqYFGozH6ai/9uncBAJwpKm+3exAREVHT7D4ITZo0CW+//TamTZtm8fUPPvgAc+bMwaxZsxAREYEVK1bAw8MDX375pdm5AQEBiIyMxK5duyxeKzExET4+PvqvkJAQm/4shvr18AQAnC2q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3NzccOONN+LYsWNG1/jpp58waNAgKJVKhIWF4f333zd6vaamBi+//DJCQkKgVCrRv39/fPHFF0bnpKamYsSIEfDw8MDIkSNx8uTJ9v3BiahdMAgRkUNJTEzE119/jRUrVuD48eN44YUX8Mgjj2DHjh36c1588UW8//772L9/P7p3746pU6eirq4OQEOAuf/++/HAAw/g6NGjeOONN/Daa69h1apV+vc/+uij+P7777Fs2TJkZGTg008/haenp1Edr776Kt5//30cOHAALi4umD17dof8/ERkW9x9nogcRk1NDfz8/LB161bExcXpjz/xxBOorKzE3LlzMW7cOKxZswbTp08HAJSUlCA4OBirVq3C/fffj4cffhhFRUXYsmWL/v0vvfQSNm7ciOPHj+PUqVMIDw/HH3/8gfj4eLMatm/fjnHjxmHr1q0YP348AOC3337DlClTUFVVBTc3t3Z+CkRkS2wRIiKHkZmZicrKSkyYMAGenp76r6+//hpnzpzRn2cYkvz8/BAeHo6MjAwAQEZGBkaNGmV03VGjRuH06dPQarVIS0uDXC7HzTff3GQtQ4cO1f+5Z8+eAIDCwsI2/4xE1LFcpC6AiKilysvLAQAbN25Er169jF5TKpVGYcha7u7uLTrP1dVV/2dBEAA0jF8iIsfCFiEichgRERFQKpXIyclB//79jb5CQkL05+3du1f/58uXL+PUqVMYOHAgAGDgwIHYs2eP0XX37NmD6667DnK5HEOGDIFOpzMac0REnRdbhIjIYXh5eeHvf/87XnjhBeh0OowePRpqtRp79uyBt7c3evfuDQD45z//iW7duiEgIACvvvoq/P39cddddwEAFixYgOjoaLz11luYPn06kpOTsXz5cnz88ccAgLCwMMycOROzZ8/GsmXLEBkZiXPnzqGwsBD333+/VD86EbUTBiEicihvvfUWunfvjsTERJw9exa+vr4YNmwYXnnlFX3X1JIlSzB//nycPn0aUVFR+N///geFQgEAGDZsGH744Qe8/vrreOutt9CzZ0/885//xGOPPaa/xyeffIJXXnkFTz/9NC5duoTQ0FC88sorUvy4RNTOOGuMiDqNqzO6Ll++DF9fX6nLISIHwDFCRERE5LQYhIiIiMhpsWuMiIiInBZbhIiIiMhpMQgRERGR02IQIiIiIqfFIEREREROi0GIiIiInBaDEBERETktBiEiIiJyWgxCRERE5LT+Px6cGgnAA/P3AAAAAElFTkSuQmCC"/>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p>We are going to plot the solution now!</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [6]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">pts</span> <span class="o">=</span> <span class="n">pinn</span><span class="o">.</span><span class="n">problem</span><span class="o">.</span><span class="n">spatial_domain</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="mi">256</span><span class="p">,</span> <span class="s2">"grid"</span><span class="p">,</span> <span class="n">variables</span><span class="o">=</span><span class="s2">"x"</span><span class="p">)</span>
<span class="n">predicted_output</span> <span class="o">=</span> <span class="n">pinn</span><span class="o">.</span><span class="n">forward</span><span class="p">(</span><span class="n">pts</span><span class="p">)</span><span class="o">.</span><span class="n">extract</span><span class="p">(</span><span class="s2">"u"</span><span class="p">)</span><span class="o">.</span><span class="n">tensor</span><span class="o">.</span><span class="n">detach</span><span class="p">()</span>
<span class="n">true_output</span> <span class="o">=</span> <span class="n">pinn</span><span class="o">.</span><span class="n">problem</span><span class="o">.</span><span class="n">solution</span><span class="p">(</span><span class="n">pts</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">pts</span><span class="o">.</span><span class="n">extract</span><span class="p">([</span><span class="s2">"x"</span><span class="p">]),</span> <span class="n">predicted_output</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"Neural Network solution"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">pts</span><span class="o">.</span><span class="n">extract</span><span class="p">([</span><span class="s2">"x"</span><span class="p">]),</span> <span class="n">true_output</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"True solution"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child jp-OutputArea-executeResult">
<div class="jp-OutputPrompt jp-OutputArea-prompt">Out[6]:</div>
<div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain" tabindex="0">
<pre>&lt;matplotlib.legend.Legend at 0x7fae1957d850&gt;</pre>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjcAAAGdCAYAAADuR1K7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACQYklEQVR4nOzdd3gc5bX48e9s0a7aqvcuV8lNxi2mGjDYQBJ8AwESwBcCTgIxhBCa702AAAk1uYSEQELnB6EECAQCBmOwacYG9yLLlq0urXpvu9qd3x8jKRZuKrs7q93zeZ59QLuzM2essmfmfd9zFFVVVYQQQgghAoRB7wCEEEIIITxJkhshhBBCBBRJboQQQggRUCS5EUIIIURAkeRGCCGEEAFFkhshhBBCBBRJboQQQggRUCS5EUIIIURAMekdgB7cbjfV1dVERkaiKIre4QghhBBiGFRVpb29ndTUVAyGo9+fCcrkprq6moyMDL3DEEIIIcQoVFRUkJ6eftTXgzK5iYyMBLR/HJvNpnM0QgghhBiOtrY2MjIyBj/HjyYok5uBoSibzSbJjRBCCDHOHG9KiUwoFkIIIURAkeRGCCGEEAFFkhshhBBCBJSgnHMjhBBjoaoqfX19uFwuvUMRIqAYjUZMJtOYy7RIciOEECPgcDioqamhq6tL71CECEhhYWGkpKQQEhIy6n1IciOEEMPkdrspKSnBaDSSmppKSEiIFAIVwkNUVcXhcFBfX09JSQmTJk06ZqG+Y5HkRgghhsnhcOB2u8nIyCAsLEzvcIQIOKGhoZjNZsrKynA4HFit1lHtRyYUCyHECI32alIIcXye+P2S31AhhBBCBBRJboQQQggRUCS5EUII4TcWLVrEDTfcoHcYXnfnnXdSUFDgs+M9++yzREdHj3k/69atQ1EUWlpaxrwvb5LkRgghgsAVV1yBoijcd999Q55/8803x9WKr2effRZFUVi6dOmQ51taWlAUhXXr1g17X1dccQXLli3zbIAB5EiJ5oknnkhNTQ1RUVH6BDVMktwI4U9UlfaDX1Gy9kkOrP4LfR1NekckAojVauX++++nubnZ58d2Op0e25fJZOLDDz/k448/9tg+D+Xs66OtqZa2Rjsd7a243W6P7XugAOR4FRISQnJyst8nxJLcCOEnHO2N7Hv420Q+v5icT3/JhC9X4Xgojz3/75fglkq4/kpVVbocfbo8VFUdUayLFy8mOTmZe++995jbffbZZ5xyyimEhoaSkZHB9ddfT2dn5+DriqLw5ptvDnlPdHQ0zz77LAClpaUoisIrr7zCaaedhtVq5cUXX6SxsZEf/OAHpKWlERYWxowZM3jppZdGdA4A4eHh/OhHP+K222475nYVFRVcdNFFREdHExsby/nnn09paSmgDQs999xzvPXWWyiKgqIofPzxx5z/nfP4+dWXYeupxtZbw69+cQ1Go5Ht27cBWjmA8PBwPvzwQwB6e3u5/vrrSUxMxGq1cvLJJ/PVV18NxjAwjPPee+8xZ84cLBYLn3322WGxHjhwgNzcXFauXHnE76uqqtx5551kZmZisVhITU3l+uuvH3y9ubmZ5cuXExMTQ1hYGOeccw779+8/6r/Nke5a3XDDDSxatGjw9fXr1/PHP/5x8N+ntLT0iMNSr7/+OtOmTcNisZCdnc3vf//7IfvNzs7md7/7HT/60Y+IjIwkMzOTv/3tb0eNzROkzo0QfqCttpTuv57NZHctvaqZXYYp2NRWJlFB/oEn2f23Bqb9+BmQJch+p9vpIv/293U59p67lhAWMvw/40ajkd/97nf88Ic/5Prrryc9Pf2wbQ4cOMDSpUu55557ePrpp6mvr2flypWsXLmSZ555ZkTx3Xbbbfz+979n9uzZWK1Wenp6mDNnDrfeeis2m41///vfXH755UyYMIH58+ePaN933nknEydO5LXXXuPCCy887HWn08mSJUtYuHAhn376KSaTiXvuuYelS5eyY8cObrrpJgoLC2lra+OZZ55BVVXM7m4WL5jOX194HSdmXAYz67/cQnxsNJ+99xqTJuSydftOnE4nJ554IgC33HILr7/+Os899xxZWVk88MADLFmyhOLiYmJjY4f8Wzz00EPk5uYSExMzZPhsx44dLFmyhKuuuop77rnniOf7+uuv83//93+8/PLLTJs2Dbvdzvbt2wdfv+KKK9i/fz//+te/sNls3HrrrZx77rns2bMHs9k8on9bgD/+8Y/s27eP6dOnc9dddwGQkJAwmBwO2Lx5MxdddBF33nknF198MV988QXXXnstcXFxXHHFFYPb/f73v+fuu+/mf/7nf3jttde45pprOO2005gyZcqIYxsO+UsphM5Ul5PaZy4jyV1LBUlsPfsfzLnjc9JXbeP9SXfgUhWm2d9k53M/1ztUEQD+67/+i4KCAu64444jvn7vvfdy6aWXcsMNNzBp0iROPPFEHnnkEZ5//nl6enpGdKwbbriB733ve+Tk5JCSkkJaWho33XQTBQUF5Obmct1117F06VJeffXVEZ9HamoqP//5z/nf//3fIw7zvPLKK7jdbp588klmzJhBXl4ezzzzDOXl5axbt46IiAhCQ0OxWCwkJycTYTEQr7SyaOEc9uw7SLMpkW5LInv2l/Czq5fz6YavMLWVsXbtWubNm0dYWBidnZ089thjPPjgg5xzzjnk5+fzxBNPEBoaylNPPTUknrvuuouzzjqLCRMmDEl6vvjiCxYtWsRNN9101MQGoLy8nOTkZBYvXkxmZibz589nxYoVAINJzZNPPskpp5zCrFmzePHFF6mqqjrsDttwRUVFERISQlhYGMnJySQnJ2M0Gg/b7g9/+ANnnnkmv/71r5k8eTJXXHEFK1eu5MEHHxyy3bnnnsu1117LxIkTufXWW4mPj/fasCLInRshdLfr5duZ0bOTDjWUjote41vTZgIQajGx5NIbWfN3hbP23cmMsuep2P49MmadrnPE4lChZiN77lqi27FH4/777+eMM87gpptuOuy17du3s2PHDl588cXB51RVHWw9kZeXN+zjzJ07d8jXLpeL3/3ud7z66qtUVVXhcDjo7e0ddbXnW2+9lb/+9a88/fTTXHTRRYedR3FxMZGRkUOe7+np4cCBA0Oec/T2EtZtBwVyZ36L2NhYPvnkE0JCQpg9ezbfvehy/nruOYTQx/q1H3DaaacB2l0up9PJSSedNLgvs9nM/PnzKSwsPOa/BWgJy1lnncVvf/vb464Q+/73v8/DDz9Mbm4uS5cu5dxzz+U73/kOJpOJwsJCTCYTCxYsGNw+Li6OKVOmHBaHpxUWFnL++ecPee6kk07i4YcfxuVyDSZEM2fOHHxdURSSk5Opq6vzWlyS3Aiho8ayPeTtexwU2Djt15w5beZh25z1w1/w2UNfcnLHatS3b8Cd/xUG8+gbygnPUhRlREND/uDUU09lyZIlrFq1asjQAUBHRwc/+clPhsznGJCZmQlo5/zNeSFHmjAcHh4+5OsHH3yQP/7xjzz88MPMmDGD8PBwbrjhBhwOx6jOIzo6mlWrVvGb3/yGb3/724edx5w5c4YkaQMSEhKGfO1oriRCcdOjWAiLz+DUU09l3bp1WCwWFi1aRMHsE+h1uthReICNX2/h+p8f/m9zPN/8txiIIzU1lZdeeokf/ehH2Gy2o74/IyODoqIiPvzwQ9asWcO1117Lgw8+yPr160ccC2hVgIfzPfSUbw6NKYri0Yna3yTDUkLoqPKtuzApbr4OmcfpF1571O0mXPp7mtVIMvtK2fHG/T6MUASq++67j7fffpsNGzYMef6EE05gz549TJw48bDHQJfmhIQEampqBt+zf//+YXVJ//zzzzn//PO57LLLmDVrFrm5uezbt29M53HddddhMBj44x//eNh57N+/n8TExMPOY2AZc0hICI7eHiLcbQAoURkoisJpp53GunXrWLduHYsWLcJgMHDqqady/99eptfh5JSZ2bjdbiZMmEBISAiff/754HGdTidfffUV+fn5x409NDSUd955B6vVypIlS2hvbz/u9t/5znd45JFHWLduHRs2bGDnzp3k5eXR19fHxo0bB7dtbGykqKjoqHF883sIsG3btiFfh4SE4HIdezFDXl7ekPMH7fs8efLkIw5j+YokN0LopLFsD9MbVwNgPON/MBiOvrQyJSWdHXm/ACCz8An6ejqPuq0QwzFjxgwuvfRSHnnkkSHP33rrrXzxxResXLmSbdu2sX//ft566y1Wrlw5uM0ZZ5zBn//8Z7Zu3crXX3/NT3/602FNWp00aRJr1qzhiy++oLCwkJ/85CfU1taO6TysViu/+c1vDjuPSy+9lPj4eM4//3w+/fRTSkpKWLduHddffz2VlZWAtopn186dFBWXUt7iwmDWmjQuWrSIPXv2sHv3bk4++eTB5155/U3mzMwnNsxMZ0sd4eHhXHPNNdx8882sXr2aPXv2sGLFCrq6urjqqquGFX94eDj//ve/MZlMnHPOOXR0dBxxu2effZannnqKXbt2cfDgQV544QVCQ0PJyspi0qRJnH/++axYsYLPPvuM7du3c9lll5GWlnbYkNGAM844g6+//prnn3+e/fv3c8cdd7Br164h22RnZ7Nx40ZKS0tpaGg44p2WX/7yl6xdu5a7776bffv28dxzz/HnP//5iEOeviTJjRA6qXjrLoyKylchCyhYcPx5NPPP/xk1xBNLK7vfe9wHEYpAd9dddx32gTVz5kzWr1/Pvn37OOWUU5g9eza33347qampg9v8/ve/JyMjg1NOOYUf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"/>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p>Great, they overlap perfectly! This seems a good result, considering the simple neural network used to some this (complex) problem. We will now test the neural network on the domain $[-4, 4]$ without retraining. In principle the periodicity should be present since the $v$ function ensures the periodicity in $(-\infty, \infty)$.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [7]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># plotting solution</span>
<span class="k">with</span> <span class="n">torch</span><span class="o">.</span><span class="n">no_grad</span><span class="p">():</span>
<span class="c1"># Notice here we put [-4, 4]!!!</span>
<span class="n">new_domain</span> <span class="o">=</span> <span class="n">CartesianDomain</span><span class="p">({</span><span class="s2">"x"</span><span class="p">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">4</span><span class="p">]})</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">new_domain</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s2">"grid"</span><span class="p">)</span>
<span class="n">fig</span><span class="p">,</span> <span class="n">axes</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
<span class="c1"># Plot 1</span>
<span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">problem</span><span class="o">.</span><span class="n">solution</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">"$u(x)$"</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">"blue"</span><span class="p">)</span>
<span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="sa">r</span><span class="s2">"True solution $u(x)$"</span><span class="p">)</span>
<span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">"upper right"</span><span class="p">)</span>
<span class="c1"># Plot 2</span>
<span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">pinn</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">"$u_{\theta}(x)$"</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">"green"</span><span class="p">)</span>
<span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="sa">r</span><span class="s2">"PINN solution $u_{\theta}(x)$"</span><span class="p">)</span>
<span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">"upper right"</span><span class="p">)</span>
<span class="c1"># Plot 3</span>
<span class="n">diff</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">problem</span><span class="o">.</span><span class="n">solution</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">-</span> <span class="n">pinn</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
<span class="n">axes</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">diff</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">"$|u(x) - u_{\theta}(x)|$"</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">"red"</span><span class="p">)</span>
<span class="n">axes</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="sa">r</span><span class="s2">"Absolute difference $|u(x) - u_{\theta}(x)|$"</span><span class="p">)</span>
<span class="n">axes</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">"upper right"</span><span class="p">)</span>
<span class="c1"># Adjust layout</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
<span class="c1"># Show the plots</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,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hg0bhvPOOw9Tp05Fv3798NZbb+GTTz7Bb37zGwDAL37xC7z55puYPXs2rrvuOmRkZOAPf/gDOjs7cd999wn7HjNmzAAA/OxnP8NFF12EzMxMnH322TH/r5N9MktmZiamTJmCxx57LJJ3tmLFiohjw9jwjR49GpMnT8Zbb72Fq6++OvL+unXrcOmll+LSSy/Fz372MwDALbfcgiVLlsTsIV63bh3q6upw7rnnCvkOBEEQhLv87Gc/w5/+9Cds27YNkyZNEv4ZarfjY7bdfvvtt9Hd3R3luGxvb48MhQZit+vUphME0Rd4+eWX0dzcjHPOOSfm37/2ta9h4MCBWL58OS688MLI+5WVlTjnnHMwb948rF69Gn/+859xySWXYOrUqWhoaEja9gDutD/x2p78/HxHz8U///nPsXLlSpxyyim47rrrEAwG8fDDD2PSpElRwr4InOynyP/Rk1/+8pd444038M1vfhOLFi3ChAkTcOjQIaxYsQIffPABiouLhW/XyjM30HfaZyvfK9l9CWkNfRyNIAhLXH/99Vq8qnPHHXdoALQjR470+tsbb7yhTZ48WcvKytKOPfZY7c9//nNk/Z5UV1dr119/vTZ8+HAtMzNTGzJkiHbaaadpS5cuTbhvnZ2d2s0336xNnTpVKygo0PLz87WpU6dq//d//xe13vr167W5c+dq/fr10/Ly8rRvfetb2kcffRS1zh//+EcNgFZZWWn7e9x9993a0KFDNb/fH/lf8f6vmX2KV77x/mdP1q9fr82YMUPLycnRJk2apC1dulR78sknNQDanj17otZ98MEHtX79+mltbW2apmnavn37tLKyMu3rX/+61tHREbXutddeq2VmZmq7du2Kev/HP/6xNmLECC0cDifcL4IgCEIMvD345JNPLK2X6HNXXHGFBkCbNGmS6W3F+0xPqN2O/p89MdNu33///dpll10W9bmRI0dqGzdujHrP2K5Tm04QRF/h7LPP1nJycrTW1ta461x55ZVaZmamVlNTE7nufvnll9p5552nFRQUaCUlJdrixYu19vZ2TdPMtz2a5k77E6vt4dh9LtY0TXvvvfe0GTNmaFlZWdro0aO1JUuWxNx+rP1/9913NQDaihUrEr5ndT8T6QVO/0es77Fnzx7t8ssv1wYOHKhlZ2dro0eP1q6//nqts7PT8nbjMXLkSO2OO+6I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"/>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p>It is pretty clear that the network is periodic, with also the error following a periodic pattern. Obviously a longer training and a more expressive neural network could improve the results!</p>
<h2 id="What's-next?">What's next?<a class="anchor-link" href="#What's-next?"></a></h2><p>Congratulations on completing the one dimensional Helmholtz tutorial of <strong>PINA</strong>! There are multiple directions you can go now:</p>
<ol>
<li><p>Train the network for longer or with different layer sizes and assert the finaly accuracy</p>
</li>
<li><p>Apply the <code>PeriodicBoundaryEmbedding</code> layer for a time-dependent problem (see reference in the documentation)</p>
</li>
<li><p>Exploit extrafeature training ?</p>
</li>
<li><p>Many more...</p>
</li>
</ol>
</div>
</div>
</div>
</div>
</main>
</body>
<script type="application/vnd.jupyter.widget-state+json">
{"state": {"3a71febf94c64784a005d11dfd7852c3": {"model_name": "LayoutModel", "model_module": "@jupyter-widgets\/base", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": "2", "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null}}, "7aca755d1dd14610882081144ccfcad1": {"model_name": "ProgressStyleModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": ""}}, "d856a981876d4647ac41f8799f6ec5c7": {"model_name": "FloatProgressModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_dom_classes": [], "_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets\/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_3a71febf94c64784a005d11dfd7852c3", "max": 1.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_7aca755d1dd14610882081144ccfcad1", "tabbable": null, "tooltip": null, "value": 1.0}}, "6639372751604b44b54db9598a376d46": {"model_name": "LayoutModel", "model_module": "@jupyter-widgets\/base", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null}}, "41aec1a223aa4940be76e7a0fb1a3173": {"model_name": "HTMLStyleModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null}}, "bcbd6934df9040f88d670ab7bcb6fa26": {"model_name": "HTMLModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_dom_classes": [], "_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets\/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_6639372751604b44b54db9598a376d46", "placeholder": "\u200b", "style": "IPY_MODEL_41aec1a223aa4940be76e7a0fb1a3173", "tabbable": null, "tooltip": null, "value": "Epoch\u20074999:\u2007100%"}}, "66da3bbcd2534512a6025ad62a51a22e": {"model_name": "LayoutModel", "model_module": "@jupyter-widgets\/base", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null}}, "d8f2ba9c1d5c4e21925e81cb68bae05e": {"model_name": "HTMLStyleModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null}}, "77d1da41c03e4092a9db05af29765fc6": {"model_name": "HTMLModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_dom_classes": [], "_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets\/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_66da3bbcd2534512a6025ad62a51a22e", "placeholder": "\u200b", "style": "IPY_MODEL_d8f2ba9c1d5c4e21925e81cb68bae05e", "tabbable": null, "tooltip": null, "value": "\u20071\/1\u2007[00:00&lt;00:00,\u200783.70it\/s,\u2007v_num=0,\u2007phys_cond_loss=0.00947,\u2007train_loss=0.00947]"}}, "25aec470eaa64551b4688d815d2025a3": {"model_name": "LayoutModel", "model_module": "@jupyter-widgets\/base", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": "inline-flex", "flex": null, "flex_flow": "row wrap", "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": "100%"}}, "bca2f526b1664dad81e4b8212f010384": {"model_name": "HBoxModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_dom_classes": [], "_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets\/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": ["IPY_MODEL_bcbd6934df9040f88d670ab7bcb6fa26", "IPY_MODEL_d856a981876d4647ac41f8799f6ec5c7", "IPY_MODEL_77d1da41c03e4092a9db05af29765fc6"], "layout": "IPY_MODEL_25aec470eaa64551b4688d815d2025a3", "tabbable": null, "tooltip": null}}}, "version_major": 2, "version_minor": 0}
</script>
</html>