@ -1,5 +1,5 @@
<!DOCTYPE HTML>
<!DOCTYPE HTML>
<html lang=" {{ language }} " class=" {{ default_theme }} " dir="{{ text_direction }} ">
<html lang=" {{ language }} " class=" {{ default_theme }} sidebar-visible " dir="{{ text_direction }} ">
<head>
<head>
<!-- Book generated using mdBook -->
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<meta charset="UTF-8">
@ -52,15 +52,17 @@
<!-- MathJax -->
<!-- MathJax -->
<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
{{ / if }}
{{ / if }}
</head>
<body class="sidebar-visible no-js">
<div id="body-container">
<!-- Provide site root to javascript -->
<!-- Provide site root to javascript -->
<script>
<script>
var path_to_root = " {{ path_to_root }} ";
var path_to_root = " {{ path_to_root }} ";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? " {{ preferred_dark_theme }} " : " {{ default_theme }} ";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? " {{ preferred_dark_theme }} " : " {{ default_theme }} ";
</script>
</script>
<!-- Start loading toc.js asap -->
<script src=" {{ path_to_root }} toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
<script>
try {
try {
@ -82,19 +84,16 @@
var theme;
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html') ;
const html = document.documentElement ;
html.classList.remove(' {{ default_theme }} ')
html.classList.remove(' {{ default_theme }} ')
html.classList.add(theme);
html.classList.add(theme);
var body = document.querySelector('body');
html.classList.add("js");
body.classList.remove('no-js')
body.classList.add('js');
</script>
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<!-- Hide / unhide sidebar before it is displayed -->
<script>
<script>
var body = document.querySelector('body');
var sidebar = null;
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
if (document.body.clientWidth >= 1080) {
@ -104,39 +103,21 @@
sidebar = 'hidden';
sidebar = 'hidden';
}
}
sidebar_toggle.checked = sidebar === 'visible';
sidebar_toggle.checked = sidebar === 'visible';
body .classList.remove('sidebar-visible');
html .classList.remove('sidebar-visible');
body .classList.add("sidebar-" + sidebar);
html .classList.add("sidebar-" + sidebar);
</script>
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<div class="sidebar-scrollbox">
<!-- populated by js -->
{{ # toc }} {{ / toc }}
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src=" {{ path_to_root }} toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</div>
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
</nav>
</nav>
<!-- Track and set sidebar scroll position -->
<script>
var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');
sidebarScrollbox.addEventListener('click', function(e) {
if (e.target.tagName === 'A') {
sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);
}
}, { passive: true });
var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');
sessionStorage.removeItem('sidebar-scroll');
if (sidebarScrollTop) {
// preserve sidebar scroll position when navigating via links within sidebar
sidebarScrollbox.scrollTop = sidebarScrollTop;
} else {
// scroll sidebar to current active section when navigating via "next/previous chapter" buttons
var activeSection = document.querySelector('#sidebar .active');
if (activeSection) {
activeSection.scrollIntoView( { block: 'center' });
}
}
</script>
<div id="page-wrapper" class="page-wrapper">
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div class="page">