From cdd31050009a0d1a5ea382417239bd83d5d74c6b Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Tue, 10 Oct 2023 10:29:39 +0000 Subject: [PATCH] build based on f7d40e3 --- stable | 2 +- v0.13 | 2 +- v0.13.1/assets/documenter.js | 331 ++ v0.13.1/assets/example_SST.png | Bin 0 -> 91930 bytes v0.13.1/assets/example_SST_CMEMS.png | Bin 0 -> 75686 bytes v0.13.1/assets/logo.svg | 3283 ++++++++++++++++++++ v0.13.1/assets/search.js | 267 ++ v0.13.1/assets/themes/documenter-dark.css | 7 + v0.13.1/assets/themes/documenter-light.css | 9 + v0.13.1/assets/themeswap.js | 66 + v0.13.1/assets/warner.js | 49 + v0.13.1/attributes/index.html | 32 + v0.13.1/dataset/index.html | 102 + v0.13.1/dimensions/index.html | 32 + v0.13.1/experimental/index.html | 146 + v0.13.1/index.html | 134 + v0.13.1/issues/index.html | 39 + v0.13.1/performance/index.html | 31 + v0.13.1/search/index.html | 2 + v0.13.1/search_index.js | 3 + v0.13.1/siteinfo.js | 1 + v0.13.1/tutorials/index.html | 141 + v0.13.1/variables/index.html | 73 + versions.js | 2 +- 24 files changed, 4751 insertions(+), 3 deletions(-) create mode 100644 v0.13.1/assets/documenter.js create mode 100644 v0.13.1/assets/example_SST.png create mode 100644 v0.13.1/assets/example_SST_CMEMS.png create mode 100644 v0.13.1/assets/logo.svg create mode 100644 v0.13.1/assets/search.js create mode 100644 v0.13.1/assets/themes/documenter-dark.css create mode 100644 v0.13.1/assets/themes/documenter-light.css create mode 100644 v0.13.1/assets/themeswap.js create mode 100644 v0.13.1/assets/warner.js create mode 100644 v0.13.1/attributes/index.html create mode 100644 v0.13.1/dataset/index.html create mode 100644 v0.13.1/dimensions/index.html create mode 100644 v0.13.1/experimental/index.html create mode 100644 v0.13.1/index.html create mode 100644 v0.13.1/issues/index.html create mode 100644 v0.13.1/performance/index.html create mode 100644 v0.13.1/search/index.html create mode 100644 v0.13.1/search_index.js create mode 100644 v0.13.1/siteinfo.js create mode 100644 v0.13.1/tutorials/index.html create mode 100644 v0.13.1/variables/index.html diff --git a/stable b/stable index 6ddc0617..d609fec1 120000 --- a/stable +++ b/stable @@ -1 +1 @@ -v0.13.0 \ No newline at end of file +v0.13.1 \ No newline at end of file diff --git a/v0.13 b/v0.13 index 6ddc0617..d609fec1 120000 --- a/v0.13 +++ b/v0.13 @@ -1 +1 @@ -v0.13.0 \ No newline at end of file +v0.13.1 \ No newline at end of file diff --git a/v0.13.1/assets/documenter.js b/v0.13.1/assets/documenter.js new file mode 100644 index 00000000..6adfbbbf --- /dev/null +++ b/v0.13.1/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/v0.13.1/assets/example_SST.png b/v0.13.1/assets/example_SST.png new file mode 100644 index 0000000000000000000000000000000000000000..f61fce8524f3717f6ee66b8967f831bc2a58e647 GIT binary patch literal 91930 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�C#_;FXRU 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 literal 0 HcmV?d00001 diff --git a/v0.13.1/assets/example_SST_CMEMS.png b/v0.13.1/assets/example_SST_CMEMS.png new file mode 100644 index 0000000000000000000000000000000000000000..3bdc4e6caa20b9d1b513c485bd2709241f70549f GIT binary patch literal 75686 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 ?2nE2O8a`a$k_= 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 l&ro{<1pvseO^fH2JChqGs+>Hb-)hu^x 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 XOtZ898pE6?1YWnb^kAjet)Kl1O+N&b literal 0 HcmV?d00001 diff --git a/v0.13.1/assets/logo.svg b/v0.13.1/assets/logo.svg new file mode 100644 index 00000000..6f4e365e --- /dev/null +++ b/v0.13.1/assets/logo.svg @@ -0,0 +1,3283 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/v0.13.1/assets/search.js b/v0.13.1/assets/search.js new file mode 100644 index 00000000..c133f741 --- /dev/null +++ b/v0.13.1/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/v0.13.1/assets/themes/documenter-dark.css b/v0.13.1/assets/themes/documenter-dark.css new file mode 100644 index 00000000..c94a294d --- /dev/null +++ b/v0.13.1/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/v0.13.1/assets/themes/documenter-light.css b/v0.13.1/assets/themes/documenter-light.css new file mode 100644 index 00000000..9b9a14b0 --- /dev/null +++ b/v0.13.1/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/v0.13.1/assets/themeswap.js b/v0.13.1/assets/themeswap.js new file mode 100644 index 00000000..c58e993e --- /dev/null +++ b/v0.13.1/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/v0.13.1/assets/warner.js b/v0.13.1/assets/warner.js new file mode 100644 index 00000000..5531c885 --- /dev/null +++ b/v0.13.1/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/v0.13.1/attributes/index.html b/v0.13.1/attributes/index.html new file mode 100644 index 00000000..b8a73283 --- /dev/null +++ b/v0.13.1/attributes/index.html @@ -0,0 +1,32 @@ + +Attributes · NCDatasets.jl

    Attributes

    The NetCDF dataset (as returned by NCDataset or NetCDF groups) and the NetCDF variables (as returned by getindex, variable or defVar) have the field attrib which has the type NCDatasets.Attributes and behaves like a julia dictionary.

    Base.getindexMethod
    getindex(a::Attributes,name::SymbolOrString)

    Return the value of the attribute called name from the attribute list a. Generally the attributes are loaded by indexing, for example:

    ds = NCDataset("file.nc")
    +title = ds.attrib["title"]
    source
    Base.setindex!Method
    Base.setindex!(a::Attributes,data,name::SymbolOrString)

    Set the attribute called name to the value data in the attribute list a. data can be a vector or a scalar. A scalar is handeld as a vector with one element in the NetCDF data model.

    Generally the attributes are defined by indexing, for example:

    ds = NCDataset("file.nc","c")
    +ds.attrib["title"] = "my title"
    +close(ds)

    If data is a string, then attribute is saved as a list of NetCDF characters (NC_CHAR) with the appropriate length. To save the attribute as a string (NC_STRING) you can use the following:

    ds = NCDataset("file.nc","c")
    +ds.attrib["title"] = ["my title"]
    +close(ds)
    source
    Base.keysMethod
    Base.keys(a::Attributes)

    Return a list of the names of all attributes.

    source
    Base.delete!Method
    Base.delete!(a::Attributes, name)

    Delete the attribute name from the attribute list a.

    source

    Loading all attributes as a Dict can be achieved by passing ds.attrib (where ds is the NCDataset) as argument to Dict.

    using NCDatasets
    +ncfile = download("https://www.unidata.ucar.edu/software/netcdf/examples/sresa1b_ncar_ccsm3-example.nc");
    +ds = NCDataset(ncfile);
    +attributes_as_dictionary = Dict(ds.attrib)
    +typeof(attributes_as_dictionary)
    +# returns Dict{String,Any}

    Possible type promotion in Julia

    There is a subtle problem with the following code:

    ncv1 = defVar(ds,"v1", UInt8, ("longitude", "latitude", "time"), attrib = [
    +    "add_offset"                => -1.0,
    +    "scale_factor"              => 5.0,
    +    "_FillValue"                => UInt8(255),
    +])

    Julia effectively promotes the _FillValue to Float64 which leads to a "NetCDF: Not a valid data type or _FillValue type mismatch" as the fillvalue has to have exactly the same type as the NetCDF data type. Other parameters could be equally promoted.

    [
    +           "add_offset"                => -1.0,
    +           "scale_factor"              => 5.0,
    +           "_FillValue"                => UInt8(255),
    +]
    +# returns
    +# 3-element Array{Pair{String,Float64},1}:
    +#   "add_offset" => -1.0
    +# "scale_factor" => 5.0
    +#   "_FillValue" => 255.0

    Note the type of the second element of the Pair.

    Using a Julia Dict does not show this behaviour:

    ncv1 = defVar(ds,"v1", UInt8, ("longitude", "latitude", "time"), attrib = Dict(
    +    "add_offset"                => -1.0,
    +    "scale_factor"              => 5.0,
    +    "_FillValue"                => UInt8(255),
    +))

    Note that Dict does not perserve the order of the attributes. Therefore an OrderedDict from the package DataStructures is preferable.

    Or one could use simply the fillvalue parameter of defVar.

    ncv1 = defVar(ds,"v1", UInt8, ("longitude", "latitude", "time"), fillvalue = UInt8(255), attrib = [
    +    "add_offset"                => -1.0,
    +    "scale_factor"              => 5.0,
    +])
    diff --git a/v0.13.1/dataset/index.html b/v0.13.1/dataset/index.html new file mode 100644 index 00000000..660215ad --- /dev/null +++ b/v0.13.1/dataset/index.html @@ -0,0 +1,102 @@ + +Datasets · NCDatasets.jl

    Datasets

    This page is about loading/writing, examining and operating directly on entire NetCDF datasets. For functions regarding the variables stored in them, see the Variables page.

    Both variables and datasets share the functionality of the Attributes section.

    NCDatasets.NCDatasetType
    NCDataset(filename::AbstractString, mode = "r";
    +          format::Symbol = :netcdf4,
    +          share::Bool = false,
    +          diskless::Bool = false,
    +          persist::Bool = false,
    +          memory::Union{Vector{UInt8},Nothing} = nothing,
    +          attrib = [])

    Load, create, or even overwrite a NetCDF file at filename, depending on mode

    • "r" (default) : open an existing netCDF file or OPeNDAP URL in read-only mode.
    • "c" : create a new NetCDF file at filename (an existing file with the same name will be overwritten).
    • "a" : open filename into append mode (i.e. existing data in the netCDF file is not overwritten and a variable can be added).

    If share is true, the NC_SHARE flag is set allowing to have multiple processes to read the file and one writer process. Likewise setting diskless or persist to true will enable the flags NC_DISKLESS or NC_PERSIST flag. More information is available in the NetCDF C-API.

    Notice that this does not close the dataset, use close on the result (or see below the do-block).

    The optional parameter attrib is an iterable of attribute name and attribute value pairs, for example a Dict, DataStructures.OrderedDict or simply a vector of pairs (see example below).

    Supported format values:

    • :netcdf4 (default): HDF5-based NetCDF format.
    • :netcdf4_classic: Only netCDF 3 compatible API features will be used.
    • :netcdf3_classic: classic netCDF format supporting only files smaller than 2GB.
    • :netcdf3_64bit_offset: improved netCDF format supporting files larger than 2GB.
    • :netcdf5_64bit_data: improved netCDF format supporting 64-bit integer data types.

    Files can also be open and automatically closed with a do block.

    NCDataset("file.nc") do ds
    +    data = ds["temperature"][:,:]
    +end

    Here is an attribute example:

    using DataStructures
    +NCDataset("file.nc", "c", attrib = OrderedDict("title" => "my first netCDF file")) do ds
    +   defVar(ds,"temp",[10.,20.,30.],("time",))
    +end;

    The NetCDF dataset can also be a memory as a vector of bytes. A non-empty string a filename is still required, for example:

    using NCDataset, HTTP
    +resp = HTTP.get("https://www.unidata.ucar.edu/software/netcdf/examples/ECMWF_ERA-40_subset.nc")
    +ds = NCDataset("some_string","r",memory = resp.body)
    +total_precipitation = ds["tp"][:,:,:]
    +close(ds)

    Dataset is an alias of NCDataset.

    source
    mfds = NCDataset(fnames, mode = "r"; aggdim = nothing, deferopen = true,
    +              isnewdim = false,
    +              constvars = [])

    Opens a multi-file dataset in read-only "r" or append mode "a". fnames is a vector of file names.

    Variables are aggregated over the first unlimited dimension or over the dimension aggdim if specified. Variables without the dimensions aggdim are not aggregated. All variables containing the dimension aggdim are aggregated. The variable who do not contain the dimension aggdim are assumed constant.

    If variables should be aggregated over a new dimension (not present in the NetCDF file), one should set isnewdim to true. All NetCDF files should have the same variables, attributes and groupes. Per default, all variables will have an additional dimension unless they are marked as constant using the constvars parameter.

    The append mode is only implemented when deferopen is false. If deferopen is false, all files are opened at the same time. However the operating system might limit the number of open files. In Linux, the limit can be controled with the command ulimit.

    All metadata (attributes and dimension length are assumed to be the same for all NetCDF files. Otherwise reading the attribute of a multi-file dataset would be ambiguous. An exception to this rule is the length of the dimension over which the data is aggregated. This aggregation dimension can varify from file to file.

    Setting the experimental flag _aggdimconstant to true means that the length of the aggregation dimension is constant. This speeds up the creating of a multi-file dataset as only the metadata of the first file has to be loaded.

    Examples:

    You can use Glob.jl to make fnames from a file pattern, e.g.

    using NCDatasets, Glob
    +ds = NCDataset(glob("ERA5_monthly3D_reanalysis_*.nc"))

    Aggregation over a new dimension:

    using NCDatasets
    +for i = 1:3
    +  NCDataset("foo$i.nc","c") do ds
    +    defVar(ds,"data",[10., 11., 12., 13.], ("lon",))
    +  end
    +end
    +
    +ds = NCDataset(["foo$i.nc" for i = 1:3],aggdim = "sample", isnewdim = true)
    +size(ds["data"])
    +# output
    +# (4, 3)
    source

    Useful functions that operate on datasets are:

    Base.keysMethod
    keys(ds::NCDataset)

    Return a list of all variables names in NCDataset ds.

    source
    Base.haskeyFunction
    haskey(ds::NCDataset,name)
    +haskey(d::Dimensions,name)
    +haskey(ds::Attributes,name)

    Return true if the NCDataset ds (or dimension/attribute list) has a variable (dimension/attribute) with the name name. For example:

    ds = NCDataset("/tmp/test.nc","r")
    +if haskey(ds,"temperature")
    +    println("The file has a variable 'temperature'")
    +end
    +
    +if haskey(ds.dim,"lon")
    +    println("The file has a dimension 'lon'")
    +end

    This example checks if the file /tmp/test.nc has a variable with the name temperature and a dimension with the name lon.

    source
    Base.haskey(a::Attributes,name)

    Check if name is an attribute

    source
    Base.getindexMethod
    v = getindex(ds::NCDataset,varname::AbstractString)

    Return the NetCDF variable varname in the dataset ds as a NCDataset.CFVariable. The following CF convention are honored when the variable is indexed:

    • _FillValue or missing_value (which can be a list) will be returned as missing. NCDatasets does not use implicitely the default NetCDF fill values when reading data.
    • scale_factor and add_offset are applied (output = scale_factor * data_in_file + add_offset)
    • time variables (recognized by the units attribute and possibly the calendar attribute) are returned usually as DateTime object. Note that DateTimeAllLeap, DateTimeNoLeap and DateTime360Day cannot be converted to the proleptic gregorian calendar used in julia and are returned as such. If a calendar is defined but not among the

    ones specified in the CF convention, then the data in the NetCDF file is not converted into a date structure.

    A call getindex(ds,varname) is usually written as ds[varname].

    If variable represents a cell boundary, the attributes calendar and units of the related NetCDF variables are used, if they are not specified. For example:

    dimensions:
    +  time = UNLIMITED; // (5 currently)
    +  nv = 2;
    +variables:
    +  double time(time);
    +    time:long_name = "time";
    +    time:units = "hours since 1998-04-019 06:00:00";
    +    time:bounds = "time_bnds";
    +  double time_bnds(time,nv);

    In this case, the variable time_bnds uses the units and calendar of time because both variables are related thought the bounds attribute following the CF conventions.

    See also cfvariable

    source
    CommonDataModel.variableFunction
    v = variable(ds::NCDataset,varname::String)

    Return the NetCDF variable varname in the dataset ds as a NCDataset.Variable. No scaling or other transformations are applied when the variable v is indexed.

    source
    CommonDataModel.variable(ds::AbstractDataset,variablename::SymbolOrString)

    Return the variable with the name variablename from the data set ds.

    CommonDataModel.cfvariableFunction
    v = cfvariable(ds::NCDataset,varname::SymbolOrString; <attrib> = <value>)

    Return the variable varname in the dataset ds as a NCDataset.CFVariable. The keyword argument <attrib> are the attributes (fillvalue, missing_value, scale_factor, add_offset, units and calendar) relevant to the CF conventions. By specifing the value of these attributes, the one can override the value specified in the data set. If the attribute is set to nothing, then the attribute is not loaded and the corresponding transformation is ignored. This function is similar to ds[varname] with the additional flexibility that some variable attributes can be overridden.

    Example:

    NCDataset("foo.nc","c") do ds
    +  defVar(ds,"data",[10., 11., 12., 13.], ("time",), attrib = Dict(
    +      "add_offset" => 10.,
    +      "scale_factor" => 0.2))
    +end
    +
    +# The stored (packed) valued are [0., 5., 10., 15.]
    +# since 0.2 .* [0., 5., 10., 15.] .+ 10 is [10., 11., 12., 13.]
    +
    +ds = NCDataset("foo.nc");
    +
    +@show ds["data"].var[:]
    +# returns [0., 5., 10., 15.]
    +
    +@show cfvariable(ds,"data")[:]
    +# returns [10., 11., 12., 13.]
    +
    +# neither add_offset nor scale_factor are applied
    +@show cfvariable(ds,"data", add_offset = nothing, scale_factor = nothing)[:]
    +# returns [0, 5, 10, 15]
    +
    +# add_offset is applied but not scale_factor
    +@show cfvariable(ds,"data", scale_factor = nothing)[:]
    +# returns [10, 15, 20, 25]
    +
    +# 0 is declared as the fill value (add_offset and scale_factor are applied as usual)
    +@show cfvariable(ds,"data", fillvalue = 0)[:]
    +# return [missing, 11., 12., 13.]
    +
    +# Use the time units: days since 2000-01-01
    +@show cfvariable(ds,"data", units = "days since 2000-01-01")[:]
    +# returns [DateTime(2000,1,11), DateTime(2000,1,12), DateTime(2000,1,13), DateTime(2000,1,14)]
    +
    +close(ds)
    Base.closeFunction
    close(ds::NCDataset)

    Close the NCDataset ds. All pending changes will be written to the disk.

    source
    CommonDataModel.pathFunction
    path(ds::NCDataset)

    Return the file path (or the opendap URL) of the NCDataset ds

    source
    CommonDatamodel.path(ds::AbstractDataset)

    File path of the data set ds.

    NCDatasets.ncgenFunction
    ncgen(fname; ...)
    +ncgen(fname,jlname; ...)

    Generate the Julia code that would produce a NetCDF file with the same metadata as the NetCDF file fname. The code is placed in the file jlname or printed to the standard output. By default the new NetCDF file is called filename.nc. This can be changed with the optional parameter newfname.

    source
    NCDatasets.varbyattribFunction
    varbyattrib(ds, attname = attval)

    Returns a list of variable(s) which has the attribute attname matching the value attval in the dataset ds. The list is empty if the none of the variables has the match. The output is a list of CFVariables.

    Examples

    Load all the data of the first variable with standard name "longitude" from the NetCDF file results.nc.

    julia> ds = NCDataset("results.nc", "r");
    +julia> data = varbyattrib(ds, standard_name = "longitude")[1][:]
    source
    Base.writeFunction
    write(dest_filename::AbstractString, src::AbstractNCDataset; include = keys(src), exclude = [], idimensions = Dict())
    +write(dest::NCDataset, src::AbstractNCDataset; include = keys(src), exclude = [], idimensions = Dict())

    Write the variables of src dataset into an empty dest dataset (which must be opened in mode "a" or "c"). The keywords include and exclude configure which variable of src should be included (by default all), or which should be excluded (by default none).

    If the first argument is a file name, then the dataset is open in create mode ("c").

    This function is useful when you want to save the dataset from a multi-file dataset.

    To save a subset, one can use the view function view to virtually slice a dataset:

    Example

    NCDataset(fname_src) do ds
    +    write(fname_slice,view(ds, lon = 2:3))
    +    # deprecated
    +    # write(fname_slice,ds,idimensions = Dict("lon" => 2:3))
    +end

    All variables in the source file fname_src with a dimension lon will be sliced along the indices 2:3 for the lon dimension. All attributes (and variables without a dimension lon) will be copied over unmodified.

    source

    Notice that DateTime-structures from CFTime are used to represent time for non-standard calendars. Otherwise, we attempt to use standard structures from the Julia standard library Dates.

    Groups

    CommonDataModel.defGroupFunction
    defGroup(ds::NCDataset,groupname; attrib = []))

    Create the group with the name groupname in the dataset ds. attrib is a list of attribute name and attribute value pairs (see NCDataset).

    source
    group = CommonDatamodel.defGroup(ds::AbstractDataset,name::SymbolOrString)

    Create an empty sub-group with the name name in the data set ds. The group is a sub-type of AbstractDataset.

    Base.getindexMethod
    group = getindex(g::NCDatasets.Groups,groupname::AbstractString)

    Return the NetCDF group with the name groupname. For example:

    julia> ds = NCDataset("results.nc", "r");
    +julia> forecast_group = ds.group["forecast"]
    +julia> forecast_temp = forecast_group["temperature"]
    source
    Base.keysMethod
    Base.keys(g::NCDatasets.Groups)

    Return the names of all subgroubs of the group g.

    source

    Common methods

    One can iterate over a dataset, attribute list, dimensions and NetCDF groups.

    for (varname,var) in ds
    +    # all variables
    +    @show (varname,size(var))
    +end
    +
    +for (attribname,attrib) in ds.attrib
    +    # all attributes
    +    @show (attribname,attrib)
    +end
    +
    +for (groupname,group) in ds.groups
    +    # all groups
    +    @show (groupname,group)
    +end
    diff --git a/v0.13.1/dimensions/index.html b/v0.13.1/dimensions/index.html new file mode 100644 index 00000000..d9d21a0b --- /dev/null +++ b/v0.13.1/dimensions/index.html @@ -0,0 +1,32 @@ + +Dimensions · NCDatasets.jl

    Dimensions

    In the NetCDF data model, dimensions have names and a length (but possibly an unlimited length) and are defined for a NetCDF dataset (or group). For a given Variable or CFVariable,the names of the corresponding dimensions are obtained with using dimnames.

    Base.keysMethod
    keys(d::Dimensions)

    Return a list of all dimension names in NCDataset ds.

    Examples

    julia> ds = NCDataset("results.nc", "r");
    +julia> dimnames = keys(ds.dim)
    source
    Base.haskeyMethod
    haskey(ds::NCDataset,name)
    +haskey(d::Dimensions,name)
    +haskey(ds::Attributes,name)

    Return true if the NCDataset ds (or dimension/attribute list) has a variable (dimension/attribute) with the name name. For example:

    ds = NCDataset("/tmp/test.nc","r")
    +if haskey(ds,"temperature")
    +    println("The file has a variable 'temperature'")
    +end
    +
    +if haskey(ds.dim,"lon")
    +    println("The file has a dimension 'lon'")
    +end

    This example checks if the file /tmp/test.nc has a variable with the name temperature and a dimension with the name lon.

    source
    CommonDataModel.defDimFunction
    defDim(ds::NCDataset,name,len)

    Define a dimension in the data set ds with the given name and length len. If len is the special value Inf, then the dimension is considered as unlimited, i.e. it will grow as data is added to the NetCDF file.

    For example:

    using NCDatasets
    +ds = NCDataset("/tmp/test.nc","c")
    +defDim(ds,"lon",100)
    +# [...]
    +close(ds)

    This defines the dimension lon with the size 100.

    To create a variable with an unlimited dimensions use for example:

    using NCDatasets
    +ds = NCDataset("/tmp/test2.nc","c")
    +defDim(ds,"lon",10)
    +defDim(ds,"lat",10)
    +defDim(ds,"time",Inf)
    +defVar(ds,"unlimited_variable",Float64,("lon","lat","time"))
    +@show ds.dim["time"]
    +# returns 0 as no data is added
    +ds["unlimited_variable"][:,:,:] = randn(10,10,4)
    +@show ds.dim["time"]
    +# returns now 4 as 4 time slice have been added
    +close(ds)
    source
    CommonDatamodel.defDim(ds::AbstractDataset,name::SymbolOrString,len)

    Create dimension with the name name in the data set ds with the length len. len can be Inf for unlimited dimensions.

    Base.setindex!Method
    Base.setindex!(d::Dimensions,len,name::AbstractString)

    Defines the dimension called name to the length len. Generally dimension are defined by indexing, for example:

    ds = NCDataset("file.nc","c")
    +ds.dim["longitude"] = 100

    If len is the special value Inf, then the dimension is considered as unlimited, i.e. it will grow as data is added to the NetCDF file.

    source

    One can iterate over a list of dimensions as follows:

    for (dimname,dim) in ds.dim
    +    # all dimensions
    +    @show (dimname,dim)
    +end
    diff --git a/v0.13.1/experimental/index.html b/v0.13.1/experimental/index.html new file mode 100644 index 00000000..9eb5266e --- /dev/null +++ b/v0.13.1/experimental/index.html @@ -0,0 +1,146 @@ + +Experimental features · NCDatasets.jl

    Experimental features

    Multi-file support

    Multiple files can also be aggregated over a given dimension (or the record dimension). In this example, 3 sea surface temperature fields from the 1992-01-01 to 1992-01-03 are aggregated using the OPeNDAP service from PODAAC.

    using NCDatasets, Printf, Dates
    +
    +function url(dt)
    +  doy = @sprintf("%03d",Dates.dayofyear(dt))
    +  y = @sprintf("%04d",Dates.year(dt))
    +  yyyymmdd = Dates.format(dt,"yyyymmdd")
    +  return "https://podaac-opendap.jpl.nasa.gov:443/opendap/allData/ghrsst/data/GDS2/L4/GLOB/CMC/CMC0.2deg/v2/$y/$doy/$(yyyymmdd)120000-CMC-L4_GHRSST-SSTfnd-CMC0.2deg-GLOB-v02.0-fv02.0.nc"
    +end
    +
    +ds = NCDataset(url.(DateTime(1992,1,1):Dates.Day(1):DateTime(1992,1,3)),aggdim = "time");
    +SST2 = ds["analysed_sst"][:,:,:];
    +close(ds)

    If there is a network or server issue, you will see an error message like NetCDF: I/O failure.

    CF Standard Names

    The CF Conventions do not define how the different NetCDF variables are named, but the meaning of a variable is defined by the standard_name attribute.

    using NCDatasets, DataStructures
    +ds = NCDataset(tempname(),"c")
    +
    +nclon = defVar(ds,"lon", 1:10, ("lon",),attrib = OrderedDict(
    +    "standard_name"             => "longitude",
    +))
    +nclat = defVar(ds,"lat", 1:11, ("lat",),attrib = OrderedDict(
    +    "standard_name"             => "latitude",
    +))
    +ncvar = defVar(ds,"bat", zeros(10,11), ("lon", "lat"), attrib = OrderedDict(
    +    "standard_name"             => "height",
    +))
    +
    +ncbat = ds[CF"height"]
    +# the same as
    +# ncbat = varbyattrib(ds,standard_name = "height")[1]
    +
    +name(ncbat)
    +# output
    +"bat"

    If there are multiple variables with the standard_name equal to height, an error is returned because it is ambiguous which variable should be accessed.

    All variables whose dimensions are also dimensions of ncbat are considered as related and can also be accessed by sub-setting ncbat with their variable names of CF Standard name:

    nclon_of_bat = ncbat[CF"longitude"]
    +# same as
    +# nclon_of_bat = ncbat["lon"]
    +name(nclon_of_bat)
    +# output
    +"lon"

    The previous call to ncbat[CF"longitude"] would also worked if there are multiple variables with a standard name longitude defined in a dataset as long as they have different dimension names (which is commonly the case for model output on staggered grid such as Regional Ocean Modeling System).

    Views

    In Julia, a view of an array is a subset of an array but whose elements still point to the original parent array. If one modifies an element of a view, the corresponding element in the parent array is modified too:

    A = zeros(4,4)
    +subset = @view A[2:3,2:4]
    +# or
    +# subset = view(A,2:3,2:4)
    +
    +subset[1,1] = 2
    +A[2,2]
    +# output
    +2.0

    Views do not use copy of the array. The parent array and the indices of the view are obtained via the function parent and parentindices.

    parent(subset) == A
    +# true, as both arrays are the same
    +
    +parentindices(subset)
    +# output
    +(2:3, 2:4)

    In NCDatasets, variables can also be sliced as a view:

    using NCDatasets, DataStructures
    +ds = NCDataset(tempname(),"c")
    +
    +nclon = defVar(ds,"lon", 1:10, ("lon",))
    +nclat = defVar(ds,"lat", 1:11, ("lat",))
    +ncvar = defVar(ds,"bat", zeros(10,11), ("lon", "lat"), attrib = OrderedDict(
    +    "standard_name"             => "height",
    +))
    +
    +ncvar_subset = @view ncvar[2:4,2:3]
    +# or
    +# ncvar_subset = view(ncvar,2:4,2:3)
    +
    +ncvar_subset[1,1] = 2
    +# ncvar[2,2] is now 2
    +
    +ncvar_subset.attrib["standard_name"]
    +
    +# output
    +"height"

    This is useful for example when even the sliced array is too large to be loaded in RAM or when all attributes need to be preserved for the sliced array.

    The variables lon and lat are related to bat because all dimensions of the variables lon and lat are also dimensions of bat (which is commonly the case for coordinate variables). Such related variables can be retrieved by indexing the NetCDF variables with the name of the corresponding variable:

    lon_subset = ncvar_subset["lon"]
    +lon_subset[:] == [2, 3, 4]
    +# output
    +true

    A view of a NetCDF variable also implements the function parent and parentindices with the same meaning as for julia Arrays.

    A whole dataset can also be sliced using a view(ds, dim1=range1, dim2=range2...). For example:

    ds_subset = view(ds, lon = 2:3, lat = 2:4)
    +# or
    +# ds_subset = @view ds[lon = 2:3, lat = 2:4]
    +ds_subset.dim["lon"]
    +
    +# output
    +2

    Such sliced datasets can for example be saved into a new NetCDF file using write:

    write("slice.nc",ds_subset)

    Any dimension not mentioned in the @view call is not sliced. While @view produces a slice based on indices, the NCDatasets.@select macro produces a slice (of an NetCDF variable or dataset) based on the values of other related variables (typically coordinates).

    Data selection based on values

    NCDatasets.@selectMacro
    vsubset = NCDatasets.@select(v,expression)
    +dssubset = NCDatasets.@select(ds,expression)

    Return a subset of the variable v (or dataset ds) satisfying the condition expression as a view. The condition has the following form:

    condition₁ && condition₂ && condition₃ ... conditionₙ

    Every condition should involve a single 1D NetCDF variable (typically a coordinate variable, referred as coord below). If v is a variable, the related 1D NetCDF variable should have a shared dimension with the variable v. All local variables need to have a $ prefix (see examples below). This macro is experimental and subjected to change.

    Every condition can either perform:

    • a nearest match: coord ≈ target_coord (for type \approx followed by the TAB-key). Only the data corresponding to the index closest to target_coord is loaded.

    • a nearest match with tolerance: coord ≈ target_coord ± tolerance. As before, but if the difference between the closest value in coord and target_coord is larger (in absolute value) than tolerance, an empty array is returned.

    • a condition operating on scalar values. For example, a condition equal to 10 <= lon <= 20 loads all data with the longitude between 10 and 20 or abs(lat) > 60 loads all variables with a latitude north of 60° N and south of 60° S (assuming that the NetCDF has the 1D variables lon and lat for longitude and latitude).

    Only the data which satisfies all conditions is loaded. All conditions must be chained with an && (logical and). They should not contain additional parenthesis or other logical operators such as || (logical or).

    To convert the view into a regular array one can use collect, Array or regular indexing. As in julia, views of scalars are wrapped into a zero dimensional arrays which can be dereferenced by using []. Modifying a view will modify the underlying NetCDF file (if the file is opened as writable, otherwise an error is issued).

    As for any view, one can use parentindices(vsubset) to get the indices matching a select query.

    Examples

    Create a sample file with random data:

    using NCDatasets, Dates
    +fname = "sample_file.nc"
    +lon = -180:180
    +lat = -90:90
    +time = DateTime(2000,1,1):Day(1):DateTime(2000,1,3)
    +SST = randn(length(lon),length(lat),length(time))
    +
    +ds = NCDataset(fname,"c")
    +defVar(ds,"lon",lon,("lon",));
    +defVar(ds,"lat",lat,("lat",));
    +defVar(ds,"time",time,("time",));
    +defVar(ds,"SST",SST,("lon","lat","time"));
    +
    +
    +# load by bounding box
    +v = NCDatasets.@select(ds["SST"],30 <= lon <= 60 && 40 <= lat <= 90)
    +
    +# substitute a local variable in condition using $
    +lonr = (30,60) # longitude range
    +latr = (40,90) # latitude range
    +
    +v = NCDatasets.@select(ds["SST"],$lonr[1] <= lon <= $lonr[2] && $latr[1] <= lat <= $latr[2])
    +
    +# You can also select based on `ClosedInterval`s from `IntervalSets.jl`.
    +# Both 30..60 and 65 ± 25 construct `ClosedInterval`s, see their documentation for details.
    +
    +lon_interval = 30..60
    +lat_interval = 65 ± 25
    +v = NCDatasets.@select(ds["SST"], lon ∈ $lon_interval && lat ∈ $lat_interval)
    +
    +# get the indices matching the select query
    +(lon_indices,lat_indices,time_indices) = parentindices(v)
    +
    +# get longitude matchting the select query
    +v_lon = v["lon"]
    +
    +# find the nearest time instance
    +v = NCDatasets.@select(ds["SST"],time ≈ DateTime(2000,1,4))
    +
    +# find the nearest time instance but not earlier or later than 2 hours
    +# an empty array is returned if no time instance is present
    +
    +v = NCDatasets.@select(ds["SST"],time ≈ DateTime(2000,1,3,1) ± Hour(2))
    +
    +close(ds)

    Any 1D variable with the same dimension name can be used in @select. For example, if we have a time series of temperature and salinity, the temperature values can also be selected based on salinity:

    # create a sample time series
    +using NCDatasets, Dates
    +fname = "sample_series.nc"
    +time = DateTime(2000,1,1):Day(1):DateTime(2009,12,31)
    +salinity = randn(length(time)) .+ 35
    +temperature = randn(length(time))
    +
    +NCDataset(fname,"c") do ds
    +    defVar(ds,"time",time,("time",));
    +    defVar(ds,"salinity",salinity,("time",));
    +    defVar(ds,"temperature",temperature,("time",));
    +end
    +
    +ds = NCDataset(fname)
    +
    +# load all temperature data from January where the salinity is larger than 35.
    +v = NCDatasets.@select(ds["temperature"],Dates.month(time) == 1 && salinity >= 35)
    +
    +# this is equivalent to
    +v2 = ds["temperature"][findall(Dates.month.(time) .== 1 .&& salinity .>= 35)]
    +
    +@test v == v2
    +close(ds)
    Note

    For optimal performance, one should try to load contiguous data ranges, in particular when the data is loaded over HTTP/OPeNDAP.

    source

    Experimental functions

    NCDatasets.ancillaryvariablesFunction
    ncvar = NCDatasets.ancillaryvariables(ncv::NCDatasets.CFVariable,modifier)

    Return the first ancillary variables from the NetCDF variable ncv with the standard name modifier modifier. It can be used for example to access related variable like status flags.

    source
    Base.filterFunction
    data = NCDatasets.filter(ncv, indices...; accepted_status_flags = nothing)

    Load and filter observations by replacing all variables without an acepted status flag to missing. It is used the attribute ancillary_variables to identify the status flag.

    # da["data"] is 2D matrix
    +good_data = NCDatasets.filter(ds["data"],:,:, accepted_status_flags = ["good_data","probably_good_data"])
    source
    diff --git a/v0.13.1/index.html b/v0.13.1/index.html new file mode 100644 index 00000000..25d9e727 --- /dev/null +++ b/v0.13.1/index.html @@ -0,0 +1,134 @@ + +Introduction · NCDatasets.jl

    NCDatasets.jl

    Documentation for NCDatasets.jl, a Julia package for loading and writing NetCDF (Network Common Data Form) files.

    Installation

    Inside the Julia shell, you can download and install using the following commands:

    using Pkg
    +Pkg.add("NCDatasets")

    Latest development version

    If you want to try the latest development version, again go into package manager mode and simply type

    using Pkg
    +Pkg.add(PackageSpec(name="NCDatasets", rev="master"))

    Contents

    To get started quickly see the Quickstart section. Otherwise see the following pages for details:

    Quickstart

    This is a quickstart guide that outlines basic loading, reading, etc. usage. For more details please see the individual pages of the documentation.

    Explore the content of a netCDF file

    Before reading the data from a netCDF file, it is often useful to explore the list of variables and attributes defined in it.

    For interactive use, the following commands (without ending semicolon) display the content of the file similarly to ncdump -h file.nc:

    using NCDatasets
    +ds = NCDataset("file.nc")

    which produces a listing like:

    NCDataset: file.nc
    +Group: /
    +
    +Dimensions
    +   time = 115
    +
    +Variables
    +  time   (115)
    +    Datatype:    Float64
    +    Dimensions:  time
    +    Attributes:
    +     calendar             = gregorian
    +     standard_name        = time
    +     units                = days since 1950-01-01 00:00:00
    +[...]

    This creates the central structure of NCDatasets.jl, NCDataset, which represents the contents of the netCDF file (without immediately loading everything in memory).

    The following displays the information just for the variable varname:

    ds["varname"]

    To get a list of global attributes, you can use:

    ds.attrib

    Load a netCDF file

    Loading a variable with known structure can be achieved by accessing the variables and attributes directly by their name.

    # The mode "r" stands for read-only. The mode "r" is the default mode and the parameter can be omitted.
    +ds = NCDataset("/tmp/test.nc","r")
    +v = ds["temperature"]
    +
    +# load a subset
    +subdata = v[10:30,30:5:end]
    +
    +# load all data
    +data = v[:,:]
    +
    +# load all data ignoring attributes like scale_factor, add_offset, _FillValue and time units
    +data2 = v.var[:,:]
    +
    +
    +# load an attribute
    +unit = v.attrib["units"]
    +close(ds)

    In the example above, the subset can also be loaded with:

    subdata = NCDataset("/tmp/test.nc")["temperature"][10:30,30:5:end]

    This might be useful in an interactive session. However, the file test.nc is not closed, which can be a problem if you open many files. On Linux the number of opened files is often limited to 1024 (soft limit). If you write to a file, you should also always close the file to make sure that the data is properly written to the disk. (open files will get closed eventually when the dataset variable is finalized by julia's garbage collector).

    An alternative way to ensure the file has been closed is to use a do block: the file will be closed automatically when leaving the block.

    data = NCDataset(filename,"r") do ds
    +    ds["temperature"][:,:]
    +end # ds is closed

    Create a netCDF file

    The following gives an example of how to create a netCDF file by defining dimensions, variables and attributes.

    using NCDatasets
    +# This creates a new NetCDF file /tmp/test.nc.
    +# The mode "c" stands for creating a new file (clobber)
    +ds = NCDataset("/tmp/test.nc","c")
    +
    +# Define the dimension "lon" and "lat" with the size 100 and 110 resp.
    +defDim(ds,"lon",100)
    +defDim(ds,"lat",110)
    +
    +# Define a global attribute
    +ds.attrib["title"] = "this is a test file"
    +
    +# Define the variables temperature
    +v = defVar(ds,"temperature",Float32,("lon","lat"))
    +
    +# Generate some example data
    +data = [Float32(i+j) for i = 1:100, j = 1:110]
    +
    +# write a single column
    +v[:,1] = data[:,1]
    +
    +# write a the complete data set
    +v[:,:] = data
    +
    +# write attributes
    +v.attrib["units"] = "degree Celsius"
    +v.attrib["comments"] = "this is a string attribute with Unicode Ω ∈ ∑ ∫ f(x) dx"
    +
    +close(ds)

    An equivalent way to create the previous netCDF would be the following code:

    using NCDatasets
    +using DataStructures
    +data = [Float32(i+j) for i = 1:100, j = 1:110]
    +
    +Dataset("/tmp/test2.nc","c",attrib = OrderedDict("title" => "this is a test file")) do ds
    +    # Define the variable temperature. The dimension "lon" and "lat" with the
    +    # size 100 and 110 resp are implicetly created
    +    defVar(ds,"temperature",data,("lon","lat"), attrib = OrderedDict(
    +           "units" => "degree Celsius",
    +           "comments" => "this is a string attribute with Unicode Ω ∈ ∑ ∫ f(x) dx"
    +    ))
    +end

    Edit an existing netCDF file

    When you need to modify the variables or the attributes of a netCDF, you have to open it with the "a" option. Here, for instance, we add a global attribute creator to the file created in the previous step.

    ds = NCDataset("/tmp/test.nc","a")
    +ds.attrib["creator"] = "your name"
    +close(ds);

    Create a netCDF file using the metadata of an existing netCDF file as template

    The utility function ncgen generates the Julia code that would produce a netCDF file with the same metadata as a template netCDF file. It is thus similar to the command line tool ncgen.

    # download example file
    +ncfile = download("https://www.unidata.ucar.edu/software/netcdf/examples/sresa1b_ncar_ccsm3-example.nc")
    +# generate Julia code
    +ncgen(ncfile)

    The produces the Julia code (only the beginning of the code is shown):

    ds = NCDataset("filename.nc","c")
    +# Dimensions
    +
    +ds.dim["lat"] = 128;
    +ds.dim["lon"] = 256;
    +ds.dim["bnds"] = 2;
    +ds.dim["plev"] = 17;
    +ds.dim["time"] = 1;
    +
    +# Declare variables
    +
    +ncarea = defVar(ds,"area", Float32, ("lon", "lat"))
    +ncarea.attrib["long_name"] = "Surface area";
    +ncarea.attrib["units"] = "meter2";
    +# ...

    Get one or several variables by specifying the value of an attribute

    The variable names are not always standardized. For example, for the longitude we can find: lon, LON, longitude, ...

    The solution implemented in the function varbyattrib consists in searching for the variables that have specified value for a given attribute.

    nclon = varbyattrib(ds, standard_name = "longitude");

    will return the list of variables of the dataset ds that have "longitude" as standard name. To directly load the data of the first variable with the attribute standard_name equal to "longitude" one can do the following:

    data = varbyattrib(ds, standard_name = "longitude")[1][:]

    Load a file with unknown structure

    If the structure of the netCDF file is not known before-hand, the program must check if a variable or attribute exists (with the haskey function) before loading it or alternatively place the loading in a try-catch block. It is also possible to iterate over all variables or attributes (global attributes or variable attributes) in the same syntax as iterating over a dictionary. However, unlike Julia dictionaries, the order of the attributes and variables is preserved and presented as they are stored in the netCDF file.

    # Open a file as read-only
    +ds = NCDataset("/tmp/test.nc","r")
    +
    +# check if a file has a variable with a given name
    +if haskey(ds,"temperature")
    +    println("The file has a variable 'temperature'")
    +end
    +
    +# get a list of all variable names
    +@show keys(ds)
    +
    +# iterate over all variables
    +for (varname,var) in ds
    +    @show (varname,size(var))
    +end
    +
    +# query size of a variable (without loading it)
    +v = ds["temperature"]
    +@show size(v)
    +
    +# similar for global and variable attributes
    +
    +if haskey(ds.attrib,"title")
    +    println("The file has the global attribute 'title'")
    +end
    +
    +# get an list of all attribute names
    +@show keys(ds.attrib)
    +
    +# iterate over all attributes
    +for (attname,attval) in ds.attrib
    +    @show (attname,attval)
    +end
    +
    +# get the attribute "units" of the variable v
    +# but return the default value (here "adimensional")
    +# if the attribute does not exists
    +
    +units = get(v,"units","adimensional")
    +close(ds)
    diff --git a/v0.13.1/issues/index.html b/v0.13.1/issues/index.html new file mode 100644 index 00000000..5b4d95af --- /dev/null +++ b/v0.13.1/issues/index.html @@ -0,0 +1,39 @@ + +Known issues · NCDatasets.jl

    Known issues

    NetCDF: Not a valid data type or _FillValue type mismatch

    Trying to define the _FillValue, produces the following error:

    ERROR: LoadError: NCDatasets.NetCDFError(-45, "NetCDF: Not a valid data type or _FillValue type mismatch")

    The error could be generated by a code like this:

    using NCDatasets, DataStructures
    +# ...
    +tempvar = defVar(ds,"temp",Float32,("lonc","latc","time"), attrib = OrderedDict(
    +    "_FillValue" => -9999.))

    or

    using NCDatasets
    +# ...
    +tempvar = defVar(ds,"temp",Float32,("lonc","latc","time"), fillvalue = -9999.)

    In fact, _FillValue must have the same data type as the corresponding variable. In the case above, tempvar is a 32-bit float and the number -9999. is a 64-bit float (aka double, which is the default floating point type in Julia). It is sufficient to convert the value -9999. to a 32-bit float -9999.f0 (or Float32(-9999.)).

    Defining the attributes _FillValue, add_offset, scale_factor, units and calendar

    An error like Cannotconvertan object of type Missing (or similar) is generated by code like this:

    v = defVar(ds,"var_with_all_missing_data",Float32,("lon",))
    +v.attrib["_FillValue"] = fv
    +v[1] = missing

    This produces the following error:

    ERROR: LoadError: MethodError: Cannot `convert` an object of type Missing to an object of type Float32
    +Closest candidates are:
    +  convert(::Type{T}, ::T) where T<:Number at number.jl:6
    +  convert(::Type{T}, ::Number) where T<:Number at number.jl:7
    +  convert(::Type{T}, ::Base.TwicePrecision) where T<:Number at twiceprecision.jl:250
    +  ...
    +Stacktrace:
    + [1] fill!(::SubArray{Float32,1,NCDatasets.CFVariable{Float32,1,NCDatasets.Variable{Float32,1},NCDatasets.Attributes},Tuple{UnitRange{Int64}},false}, ::Missing) at ./multidimensional.jl:865
    + [2] copyto! at ./broadcast.jl:871 [inlined]
    + [3] materialize!(::SubArray{Float32,1,NCDatasets.CFVariable{Float32,1,NCDatasets.Variable{Float32,1},NCDatasets.Attributes},Tuple{UnitRange{Int64}},false}, ::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{0},Nothing,typeof(identity),Tuple{Base.RefValue{Missing}}}) at ./broadcast.jl:822

    One should use define the _FillValue (and similar attributes like add_offset, scale_factor, units and calendar affecting the type of the data) in the call of defVar:

    using DataStructures
    +v = defVar(ds,"var_with_all_missing_data",Int32,("lon",), fillvalue = fv, attrib = OrderedDict(
    +    "scale_factor" => 0.1,
    +    "add_offset" => 0.1
    +    ))

    This change was introduced in NCDatasets version 0.10

    Multiple versions of HDF5 or NetCDF libraries

    Having outdated versions of HDF5 or NetCDF libraries installed can be an issue on Windows if they are included in the system PATH environment variable. It is advised to adapt the system PATH to remove the locations containing these libraries.

    Using a custom NetCDF library

    The NetCDF library libnetcdf.so is installed as an artifact via the package NetCDF_jll. You can override which libnetcdf.so gets loaded through the Preferences package, as follows:

    # install these packages if necessary
    +using Preferences, NetCDF_jll
    +
    +set_preferences!(NetCDF_jll, "libnetcdf_path" => "/path/to/libnetcdf.so.xyz")

    where /path/to/libnetcdf.so.xyz is the full path to the NetCDF library. This will create a LocalPreferences.toml file in your top-level project with the following content:

    [NetCDF_jll]
    +libnetcdf_path = "/path/to/libnetcdf.so.xyz"

    However, the dependencies of the library version libnetcdf.so.xyz (in particular libcurl.so and libmbedtls.so) should be compatible with the dependencies of julia (in the folder .../julia-x.y.z/lib/julia). On Linux, you can list the library dependencies with the shell command ldd, for example:

    ldd /path/to/libnetcdf.so.xyz

    OPeNDAP on Windows fails with Assertion failed: ocpanic

    On windows, NetCDF 4.7.4 can fail with this error:

    Assertion failed: ocpanic(("state->auth.curlflags.cookiejar != NULL")), file ocinternal.c, line 566

    when accessing OPeNDAP URLs, like these:

    using NCDatasets
    +ds = NCDataset("https://thredds.jpl.nasa.gov/thredds/dodsC/ncml_aggregation/OceanTemperature/modis/terra/11um/4km/aggregate__MODIS_TERRA_L3_SST_THERMAL_DAILY_4KM_DAYTIME_V2019.0.ncml#fillmismatch")

    See also the issue report: https://github.com/Unidata/netcdf-c/issues/2380. The work-around is to create a .dodsrc in the current working directory with the content:

    HTTP.COOKIEJAR=C:\Users\USERNAME\AppData\Local\Temp\

    where USERNAME is your username. The directory should exist and be writable by the user. You can run pwd() to determine the current working directory. Note that the initial current working directory can be different depending you how you start julia (from the command line or from jupyter notebook for example). Julia need to be restarted after this file is placed in the your working directory.

    Using non-official julia builds

    Julia and NetCDF_jll have several common dependencies (curl, MbedTLS, zlib). Non-official julia builds will work only if they use exactly the same library version as those used to compile NetCDF. This is unlikely to be the case in general and outside of our control. Therefore non-official julia builds are not supported. Official julia builds are available at https://julialang.org/downloads/.

    Using for example the julia package from on Arch Linux, leads to this error:

    julia> using NCDatasets
    +ERROR: LoadError: InitError: could not load library "/root/.julia/artifacts/461703969206dd426cc6b4d99f69f6ffab2a9779/lib/libnetcdf.so"
    +/usr/lib/julia/libcurl.so: version `CURL_4' not found (required by /root/.julia/artifacts/461703969206dd426cc6b4d99f69f6ffab2a9779/lib/libnetcdf.so)
    +Stacktrace:
    + [1] macro expansion
    +   @ ~/.julia/packages/JLLWrappers/QpMQW/src/products/library_generators.jl:54 [inlined]
    + [2] __init__()
    +   @ NetCDF_jll ~/.julia/packages/NetCDF_jll/BYHmI/src/wrappers/x86_64-linux-gnu.jl:12
    + [3] top-level scope
    +   @ stdin:1
    +during initialization of module NetCDF_jll

    You will likely have similar issues with julia installed from other package managers (like Debian/Ubuntu apt, Homebrew...). The only supported solution is to install the offical julia builds.

    version `CURL_4' not found

    If you see the following error:

    ERROR: LoadError: InitError: could not load library "/home/user/.julia/artifacts/461703969206dd426cc6b4d99f69f6ffab2a9779/lib/libnetcdf.so"
    +/usr/lib/x86_64-linux-gnu/libcurl.so: version `CURL_4' not found (required by /home/user/.julia/artifacts/461703969206dd426cc6b4d99f69f6ffab2a9779/lib/libnetcdf.so)

    make sure that you are using the offical julia builds (see above) and that your LD_LIBRARY_PATH and LD_PRELOAD are empty. You can verify this by running the following commands in a terminal:

    echo $LD_PRELOAD
    +echo $LD_LIBRARY_PATH

    Corner cases

    • An attribute representing a vector with a single value (e.g. [1]) will be read back as a scalar (1) (same behavior in python netCDF4 1.3.1).

    • NetCDF and Julia distinguishes between a vector of chars and a string, but both are returned as string for ease of use, in particular an attribute representing a vector of chars ['u','n','i','t','s'] will be read back as the string "units".

    • While reading a NetCDF time variable, the dates are converted using the Julia's DateTime (based on the proleptic Gregorian calendar following the ISO 8601 standard) when possible. When data is written to a NetCDF file (without specifying the calendar), the dates are saved using the default calendar of the NetCDF CF convention (the mixed Julian/Gregorian calendar, called "standard") when possible. It is recommended that the time origin specified by the units is after 15 October 1582 in which case the mixed Julian/Gregorian calendar is identical to the proleptic Gregorian calendar.

    diff --git a/v0.13.1/performance/index.html b/v0.13.1/performance/index.html new file mode 100644 index 00000000..70f2aa65 --- /dev/null +++ b/v0.13.1/performance/index.html @@ -0,0 +1,31 @@ + +Performance tips · NCDatasets.jl

    Performance tips

    • Reading data from a file is not type-stable, because the type of the output of the read operation is dependent on the type defined in the NetCDF files and the value of various attribute (like scale_factor, add_offset and units for time conversion). All this information cannot be inferred from a static analysis of the source code. It is therefore recommended to use type annotation if the resulting type of a read operation in known:
    ds = NCDataset("file.nc")
    +nctemp = ds["temp"]
    +temp = nctemp[:,:] :: Array{Float32,2}
    +
    +# heavy computation using temp
    +# ...

    Alternatively, one can also use so-called function barriers since the function heavy_computation will be specialized based on the type its input parameters.

    function heavy_computation(temp)
    +# heavy computation using temp
    +# ...
    +end
    +
    +ds = NCDataset("file.nc")
    +nctemp = ds["temp"]
    +temp = nctemp[:,:]
    +output = heavy_computation(temp)

    Calling the barrier function with nctemp would also be type-stable. Using the in-place NCDatasets.load! function (which is unexported, so it has to be prefixed with the module name) does also lead to type-stable code and allows to reuse a memory buffer:

    ds = NCDataset("file.nc")
    +
    +temp = zeros(Float32,10,20)
    +NCDatasets.load!(variable(ds,"temp"),temp,:,:)
    • Most julia functions (like mean, sum,... from the module Statistics) access an array element-wise. It is generally much faster to load the data in memory (if possible) to make the computation.
    using NCDatasets, BenchmarkTools, Statistics
    +ds = NCDataset("file.nc","c")
    +data = randn(100,100);
    +defVar(ds,"myvar",data,("lon","lat"))
    +close(ds)
    +
    +ds = NCDataset("file.nc")
    +@btime mean(ds["myvar"]) # takes 107.357 ms
    +@btime mean(ds["myvar"][:,:]) # takes 106.873 μs, 1000 times faster
    +close(ds)
    • Avoid, when possible, indexing with arrays and CartesianIndex as they also result in loading the data element-wise.
    ds = NCDataset("dataset.nc");
    +v = ds["v1"][:,1:3,:]; # fast
    +v = ds["v1"][:,:,CartesianIndex(1)] # slow
    +v = ds["v1"][:,:,1] # fast
    +close(ds)
    diff --git a/v0.13.1/search/index.html b/v0.13.1/search/index.html new file mode 100644 index 00000000..1f156925 --- /dev/null +++ b/v0.13.1/search/index.html @@ -0,0 +1,2 @@ + +Search · NCDatasets.jl

    Loading search...

      diff --git a/v0.13.1/search_index.js b/v0.13.1/search_index.js new file mode 100644 index 00000000..1836fa08 --- /dev/null +++ b/v0.13.1/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"dataset/#Datasets","page":"Datasets","title":"Datasets","text":"","category":"section"},{"location":"dataset/","page":"Datasets","title":"Datasets","text":"This page is about loading/writing, examining and operating directly on entire NetCDF datasets. For functions regarding the variables stored in them, see the Variables page.","category":"page"},{"location":"dataset/","page":"Datasets","title":"Datasets","text":"Both variables and datasets share the functionality of the Attributes section.","category":"page"},{"location":"dataset/","page":"Datasets","title":"Datasets","text":"NCDataset","category":"page"},{"location":"dataset/#NCDatasets.NCDataset","page":"Datasets","title":"NCDatasets.NCDataset","text":"NCDataset(filename::AbstractString, mode = \"r\";\n format::Symbol = :netcdf4,\n share::Bool = false,\n diskless::Bool = false,\n persist::Bool = false,\n memory::Union{Vector{UInt8},Nothing} = nothing,\n attrib = [])\n\nLoad, create, or even overwrite a NetCDF file at filename, depending on mode\n\n\"r\" (default) : open an existing netCDF file or OPeNDAP URL in read-only mode.\n\"c\" : create a new NetCDF file at filename (an existing file with the same name will be overwritten).\n\"a\" : open filename into append mode (i.e. existing data in the netCDF file is not overwritten and a variable can be added).\n\nIf share is true, the NC_SHARE flag is set allowing to have multiple processes to read the file and one writer process. Likewise setting diskless or persist to true will enable the flags NC_DISKLESS or NC_PERSIST flag. More information is available in the NetCDF C-API.\n\nNotice that this does not close the dataset, use close on the result (or see below the do-block).\n\nThe optional parameter attrib is an iterable of attribute name and attribute value pairs, for example a Dict, DataStructures.OrderedDict or simply a vector of pairs (see example below).\n\nSupported format values:\n\n:netcdf4 (default): HDF5-based NetCDF format.\n:netcdf4_classic: Only netCDF 3 compatible API features will be used.\n:netcdf3_classic: classic netCDF format supporting only files smaller than 2GB.\n:netcdf3_64bit_offset: improved netCDF format supporting files larger than 2GB.\n:netcdf5_64bit_data: improved netCDF format supporting 64-bit integer data types.\n\nFiles can also be open and automatically closed with a do block.\n\nNCDataset(\"file.nc\") do ds\n data = ds[\"temperature\"][:,:]\nend\n\nHere is an attribute example:\n\nusing DataStructures\nNCDataset(\"file.nc\", \"c\", attrib = OrderedDict(\"title\" => \"my first netCDF file\")) do ds\n defVar(ds,\"temp\",[10.,20.,30.],(\"time\",))\nend;\n\nThe NetCDF dataset can also be a memory as a vector of bytes. A non-empty string a filename is still required, for example:\n\nusing NCDataset, HTTP\nresp = HTTP.get(\"https://www.unidata.ucar.edu/software/netcdf/examples/ECMWF_ERA-40_subset.nc\")\nds = NCDataset(\"some_string\",\"r\",memory = resp.body)\ntotal_precipitation = ds[\"tp\"][:,:,:]\nclose(ds)\n\nDataset is an alias of NCDataset.\n\n\n\n\n\nmfds = NCDataset(fnames, mode = \"r\"; aggdim = nothing, deferopen = true,\n isnewdim = false,\n constvars = [])\n\nOpens a multi-file dataset in read-only \"r\" or append mode \"a\". fnames is a vector of file names.\n\nVariables are aggregated over the first unlimited dimension or over the dimension aggdim if specified. Variables without the dimensions aggdim are not aggregated. All variables containing the dimension aggdim are aggregated. The variable who do not contain the dimension aggdim are assumed constant.\n\nIf variables should be aggregated over a new dimension (not present in the NetCDF file), one should set isnewdim to true. All NetCDF files should have the same variables, attributes and groupes. Per default, all variables will have an additional dimension unless they are marked as constant using the constvars parameter.\n\nThe append mode is only implemented when deferopen is false. If deferopen is false, all files are opened at the same time. However the operating system might limit the number of open files. In Linux, the limit can be controled with the command ulimit.\n\nAll metadata (attributes and dimension length are assumed to be the same for all NetCDF files. Otherwise reading the attribute of a multi-file dataset would be ambiguous. An exception to this rule is the length of the dimension over which the data is aggregated. This aggregation dimension can varify from file to file.\n\nSetting the experimental flag _aggdimconstant to true means that the length of the aggregation dimension is constant. This speeds up the creating of a multi-file dataset as only the metadata of the first file has to be loaded.\n\nExamples:\n\nYou can use Glob.jl to make fnames from a file pattern, e.g.\n\nusing NCDatasets, Glob\nds = NCDataset(glob(\"ERA5_monthly3D_reanalysis_*.nc\"))\n\nAggregation over a new dimension:\n\nusing NCDatasets\nfor i = 1:3\n NCDataset(\"foo$i.nc\",\"c\") do ds\n defVar(ds,\"data\",[10., 11., 12., 13.], (\"lon\",))\n end\nend\n\nds = NCDataset([\"foo$i.nc\" for i = 1:3],aggdim = \"sample\", isnewdim = true)\nsize(ds[\"data\"])\n# output\n# (4, 3)\n\n\n\n\n\n","category":"type"},{"location":"dataset/","page":"Datasets","title":"Datasets","text":"Useful functions that operate on datasets are:","category":"page"},{"location":"dataset/","page":"Datasets","title":"Datasets","text":"keys(ds::NCDataset)\nhaskey\ngetindex(ds::NCDataset,varname::AbstractString)\nvariable\ncfvariable\nsync\nclose\nNCDatasets.path\nncgen\nvarbyattrib\nwrite","category":"page"},{"location":"dataset/#Base.keys-Tuple{NCDataset}","page":"Datasets","title":"Base.keys","text":"keys(ds::NCDataset)\n\nReturn a list of all variables names in NCDataset ds.\n\n\n\n\n\n","category":"method"},{"location":"dataset/#Base.haskey","page":"Datasets","title":"Base.haskey","text":"haskey(ds::NCDataset,name)\nhaskey(d::Dimensions,name)\nhaskey(ds::Attributes,name)\n\nReturn true if the NCDataset ds (or dimension/attribute list) has a variable (dimension/attribute) with the name name. For example:\n\nds = NCDataset(\"/tmp/test.nc\",\"r\")\nif haskey(ds,\"temperature\")\n println(\"The file has a variable 'temperature'\")\nend\n\nif haskey(ds.dim,\"lon\")\n println(\"The file has a dimension 'lon'\")\nend\n\nThis example checks if the file /tmp/test.nc has a variable with the name temperature and a dimension with the name lon.\n\n\n\n\n\nBase.haskey(a::Attributes,name)\n\nCheck if name is an attribute\n\n\n\n\n\n","category":"function"},{"location":"dataset/#Base.getindex-Tuple{NCDataset, AbstractString}","page":"Datasets","title":"Base.getindex","text":"v = getindex(ds::NCDataset,varname::AbstractString)\n\nReturn the NetCDF variable varname in the dataset ds as a NCDataset.CFVariable. The following CF convention are honored when the variable is indexed:\n\n_FillValue or missing_value (which can be a list) will be returned as missing. NCDatasets does not use implicitely the default NetCDF fill values when reading data.\nscale_factor and add_offset are applied (output = scale_factor * data_in_file + add_offset)\ntime variables (recognized by the units attribute and possibly the calendar attribute) are returned usually as DateTime object. Note that DateTimeAllLeap, DateTimeNoLeap and DateTime360Day cannot be converted to the proleptic gregorian calendar used in julia and are returned as such. If a calendar is defined but not among the\n\nones specified in the CF convention, then the data in the NetCDF file is not converted into a date structure.\n\nA call getindex(ds,varname) is usually written as ds[varname].\n\nIf variable represents a cell boundary, the attributes calendar and units of the related NetCDF variables are used, if they are not specified. For example:\n\ndimensions:\n time = UNLIMITED; // (5 currently)\n nv = 2;\nvariables:\n double time(time);\n time:long_name = \"time\";\n time:units = \"hours since 1998-04-019 06:00:00\";\n time:bounds = \"time_bnds\";\n double time_bnds(time,nv);\n\nIn this case, the variable time_bnds uses the units and calendar of time because both variables are related thought the bounds attribute following the CF conventions.\n\nSee also cfvariable\n\n\n\n\n\n","category":"method"},{"location":"dataset/#CommonDataModel.variable","page":"Datasets","title":"CommonDataModel.variable","text":"v = variable(ds::NCDataset,varname::String)\n\nReturn the NetCDF variable varname in the dataset ds as a NCDataset.Variable. No scaling or other transformations are applied when the variable v is indexed.\n\n\n\n\n\nCommonDataModel.variable(ds::AbstractDataset,variablename::SymbolOrString)\n\nReturn the variable with the name variablename from the data set ds.\n\n\n\n\n\n","category":"function"},{"location":"dataset/#CommonDataModel.cfvariable","page":"Datasets","title":"CommonDataModel.cfvariable","text":"v = cfvariable(ds::NCDataset,varname::SymbolOrString; = )\n\nReturn the variable varname in the dataset ds as a NCDataset.CFVariable. The keyword argument are the attributes (fillvalue, missing_value, scale_factor, add_offset, units and calendar) relevant to the CF conventions. By specifing the value of these attributes, the one can override the value specified in the data set. If the attribute is set to nothing, then the attribute is not loaded and the corresponding transformation is ignored. This function is similar to ds[varname] with the additional flexibility that some variable attributes can be overridden.\n\nExample:\n\nNCDataset(\"foo.nc\",\"c\") do ds\n defVar(ds,\"data\",[10., 11., 12., 13.], (\"time\",), attrib = Dict(\n \"add_offset\" => 10.,\n \"scale_factor\" => 0.2))\nend\n\n# The stored (packed) valued are [0., 5., 10., 15.]\n# since 0.2 .* [0., 5., 10., 15.] .+ 10 is [10., 11., 12., 13.]\n\nds = NCDataset(\"foo.nc\");\n\n@show ds[\"data\"].var[:]\n# returns [0., 5., 10., 15.]\n\n@show cfvariable(ds,\"data\")[:]\n# returns [10., 11., 12., 13.]\n\n# neither add_offset nor scale_factor are applied\n@show cfvariable(ds,\"data\", add_offset = nothing, scale_factor = nothing)[:]\n# returns [0, 5, 10, 15]\n\n# add_offset is applied but not scale_factor\n@show cfvariable(ds,\"data\", scale_factor = nothing)[:]\n# returns [10, 15, 20, 25]\n\n# 0 is declared as the fill value (add_offset and scale_factor are applied as usual)\n@show cfvariable(ds,\"data\", fillvalue = 0)[:]\n# return [missing, 11., 12., 13.]\n\n# Use the time units: days since 2000-01-01\n@show cfvariable(ds,\"data\", units = \"days since 2000-01-01\")[:]\n# returns [DateTime(2000,1,11), DateTime(2000,1,12), DateTime(2000,1,13), DateTime(2000,1,14)]\n\nclose(ds)\n\n\n\n\n\n","category":"function"},{"location":"dataset/#NCDatasets.sync","page":"Datasets","title":"NCDatasets.sync","text":"sync(ds::NCDataset)\n\nWrite all changes in NCDataset ds to the disk.\n\n\n\n\n\n","category":"function"},{"location":"dataset/#Base.close","page":"Datasets","title":"Base.close","text":"close(ds::NCDataset)\n\nClose the NCDataset ds. All pending changes will be written to the disk.\n\n\n\n\n\n","category":"function"},{"location":"dataset/#CommonDataModel.path","page":"Datasets","title":"CommonDataModel.path","text":"path(ds::NCDataset)\n\nReturn the file path (or the opendap URL) of the NCDataset ds\n\n\n\n\n\nCommonDatamodel.path(ds::AbstractDataset)\n\nFile path of the data set ds.\n\n\n\n\n\n","category":"function"},{"location":"dataset/#NCDatasets.ncgen","page":"Datasets","title":"NCDatasets.ncgen","text":"ncgen(fname; ...)\nncgen(fname,jlname; ...)\n\nGenerate the Julia code that would produce a NetCDF file with the same metadata as the NetCDF file fname. The code is placed in the file jlname or printed to the standard output. By default the new NetCDF file is called filename.nc. This can be changed with the optional parameter newfname.\n\n\n\n\n\n","category":"function"},{"location":"dataset/#NCDatasets.varbyattrib","page":"Datasets","title":"NCDatasets.varbyattrib","text":"varbyattrib(ds, attname = attval)\n\nReturns a list of variable(s) which has the attribute attname matching the value attval in the dataset ds. The list is empty if the none of the variables has the match. The output is a list of CFVariables.\n\nExamples\n\nLoad all the data of the first variable with standard name \"longitude\" from the NetCDF file results.nc.\n\njulia> ds = NCDataset(\"results.nc\", \"r\");\njulia> data = varbyattrib(ds, standard_name = \"longitude\")[1][:]\n\n\n\n\n\n","category":"function"},{"location":"dataset/#Base.write","page":"Datasets","title":"Base.write","text":"write(dest_filename::AbstractString, src::AbstractNCDataset; include = keys(src), exclude = [], idimensions = Dict())\nwrite(dest::NCDataset, src::AbstractNCDataset; include = keys(src), exclude = [], idimensions = Dict())\n\nWrite the variables of src dataset into an empty dest dataset (which must be opened in mode \"a\" or \"c\"). The keywords include and exclude configure which variable of src should be included (by default all), or which should be excluded (by default none).\n\nIf the first argument is a file name, then the dataset is open in create mode (\"c\").\n\nThis function is useful when you want to save the dataset from a multi-file dataset.\n\nTo save a subset, one can use the view function view to virtually slice a dataset:\n\nExample\n\nNCDataset(fname_src) do ds\n write(fname_slice,view(ds, lon = 2:3))\n # deprecated\n # write(fname_slice,ds,idimensions = Dict(\"lon\" => 2:3))\nend\n\nAll variables in the source file fname_src with a dimension lon will be sliced along the indices 2:3 for the lon dimension. All attributes (and variables without a dimension lon) will be copied over unmodified.\n\n\n\n\n\n","category":"function"},{"location":"dataset/","page":"Datasets","title":"Datasets","text":"Notice that DateTime-structures from CFTime are used to represent time for non-standard calendars. Otherwise, we attempt to use standard structures from the Julia standard library Dates.","category":"page"},{"location":"dataset/#Groups","page":"Datasets","title":"Groups","text":"","category":"section"},{"location":"dataset/","page":"Datasets","title":"Datasets","text":"defGroup\ngetindex(g::NCDatasets.Groups,groupname::AbstractString)\nBase.keys(g::NCDatasets.Groups)","category":"page"},{"location":"dataset/#CommonDataModel.defGroup","page":"Datasets","title":"CommonDataModel.defGroup","text":"defGroup(ds::NCDataset,groupname; attrib = []))\n\nCreate the group with the name groupname in the dataset ds. attrib is a list of attribute name and attribute value pairs (see NCDataset).\n\n\n\n\n\ngroup = CommonDatamodel.defGroup(ds::AbstractDataset,name::SymbolOrString)\n\nCreate an empty sub-group with the name name in the data set ds. The group is a sub-type of AbstractDataset.\n\n\n\n\n\n","category":"function"},{"location":"dataset/#Base.getindex-Tuple{NCDatasets.Groups, AbstractString}","page":"Datasets","title":"Base.getindex","text":"group = getindex(g::NCDatasets.Groups,groupname::AbstractString)\n\nReturn the NetCDF group with the name groupname. For example:\n\njulia> ds = NCDataset(\"results.nc\", \"r\");\njulia> forecast_group = ds.group[\"forecast\"]\njulia> forecast_temp = forecast_group[\"temperature\"]\n\n\n\n\n\n","category":"method"},{"location":"dataset/#Base.keys-Tuple{NCDatasets.Groups}","page":"Datasets","title":"Base.keys","text":"Base.keys(g::NCDatasets.Groups)\n\nReturn the names of all subgroubs of the group g.\n\n\n\n\n\n","category":"method"},{"location":"dataset/#Common-methods","page":"Datasets","title":"Common methods","text":"","category":"section"},{"location":"dataset/","page":"Datasets","title":"Datasets","text":"One can iterate over a dataset, attribute list, dimensions and NetCDF groups.","category":"page"},{"location":"dataset/","page":"Datasets","title":"Datasets","text":"for (varname,var) in ds\n # all variables\n @show (varname,size(var))\nend\n\nfor (attribname,attrib) in ds.attrib\n # all attributes\n @show (attribname,attrib)\nend\n\nfor (groupname,group) in ds.groups\n # all groups\n @show (groupname,group)\nend","category":"page"},{"location":"performance/#performance_tips","page":"Performance tips","title":"Performance tips","text":"","category":"section"},{"location":"performance/","page":"Performance tips","title":"Performance tips","text":"Reading data from a file is not type-stable, because the type of the output of the read operation is dependent on the type defined in the NetCDF files and the value of various attribute (like scale_factor, add_offset and units for time conversion). All this information cannot be inferred from a static analysis of the source code. It is therefore recommended to use type annotation if the resulting type of a read operation in known:","category":"page"},{"location":"performance/","page":"Performance tips","title":"Performance tips","text":"ds = NCDataset(\"file.nc\")\nnctemp = ds[\"temp\"]\ntemp = nctemp[:,:] :: Array{Float32,2}\n\n# heavy computation using temp\n# ...","category":"page"},{"location":"performance/","page":"Performance tips","title":"Performance tips","text":"Alternatively, one can also use so-called function barriers since the function heavy_computation will be specialized based on the type its input parameters.","category":"page"},{"location":"performance/","page":"Performance tips","title":"Performance tips","text":"function heavy_computation(temp)\n# heavy computation using temp\n# ...\nend\n\nds = NCDataset(\"file.nc\")\nnctemp = ds[\"temp\"]\ntemp = nctemp[:,:]\noutput = heavy_computation(temp)","category":"page"},{"location":"performance/","page":"Performance tips","title":"Performance tips","text":"Calling the barrier function with nctemp would also be type-stable. Using the in-place NCDatasets.load! function (which is unexported, so it has to be prefixed with the module name) does also lead to type-stable code and allows to reuse a memory buffer:","category":"page"},{"location":"performance/","page":"Performance tips","title":"Performance tips","text":"ds = NCDataset(\"file.nc\")\n\ntemp = zeros(Float32,10,20)\nNCDatasets.load!(variable(ds,\"temp\"),temp,:,:)","category":"page"},{"location":"performance/","page":"Performance tips","title":"Performance tips","text":"Most julia functions (like mean, sum,... from the module Statistics) access an array element-wise. It is generally much faster to load the data in memory (if possible) to make the computation.","category":"page"},{"location":"performance/","page":"Performance tips","title":"Performance tips","text":"using NCDatasets, BenchmarkTools, Statistics\nds = NCDataset(\"file.nc\",\"c\")\ndata = randn(100,100);\ndefVar(ds,\"myvar\",data,(\"lon\",\"lat\"))\nclose(ds)\n\nds = NCDataset(\"file.nc\")\n@btime mean(ds[\"myvar\"]) # takes 107.357 ms\n@btime mean(ds[\"myvar\"][:,:]) # takes 106.873 μs, 1000 times faster\nclose(ds)","category":"page"},{"location":"performance/","page":"Performance tips","title":"Performance tips","text":"Avoid, when possible, indexing with arrays and CartesianIndex as they also result in loading the data element-wise.","category":"page"},{"location":"performance/","page":"Performance tips","title":"Performance tips","text":"ds = NCDataset(\"dataset.nc\");\nv = ds[\"v1\"][:,1:3,:]; # fast\nv = ds[\"v1\"][:,:,CartesianIndex(1)] # slow\nv = ds[\"v1\"][:,:,1] # fast\nclose(ds)","category":"page"},{"location":"experimental/#Experimental-features","page":"Experimental features","title":"Experimental features","text":"","category":"section"},{"location":"experimental/#Multi-file-support","page":"Experimental features","title":"Multi-file support","text":"","category":"section"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"Multiple files can also be aggregated over a given dimension (or the record dimension). In this example, 3 sea surface temperature fields from the 1992-01-01 to 1992-01-03 are aggregated using the OPeNDAP service from PODAAC.","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"using NCDatasets, Printf, Dates\n\nfunction url(dt)\n doy = @sprintf(\"%03d\",Dates.dayofyear(dt))\n y = @sprintf(\"%04d\",Dates.year(dt))\n yyyymmdd = Dates.format(dt,\"yyyymmdd\")\n return \"https://podaac-opendap.jpl.nasa.gov:443/opendap/allData/ghrsst/data/GDS2/L4/GLOB/CMC/CMC0.2deg/v2/$y/$doy/$(yyyymmdd)120000-CMC-L4_GHRSST-SSTfnd-CMC0.2deg-GLOB-v02.0-fv02.0.nc\"\nend\n\nds = NCDataset(url.(DateTime(1992,1,1):Dates.Day(1):DateTime(1992,1,3)),aggdim = \"time\");\nSST2 = ds[\"analysed_sst\"][:,:,:];\nclose(ds)","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"If there is a network or server issue, you will see an error message like NetCDF: I/O failure.","category":"page"},{"location":"experimental/#CF-Standard-Names","page":"Experimental features","title":"CF Standard Names","text":"","category":"section"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"The CF Conventions do not define how the different NetCDF variables are named, but the meaning of a variable is defined by the standard_name attribute.","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"using NCDatasets, DataStructures\nds = NCDataset(tempname(),\"c\")\n\nnclon = defVar(ds,\"lon\", 1:10, (\"lon\",),attrib = OrderedDict(\n \"standard_name\" => \"longitude\",\n))\nnclat = defVar(ds,\"lat\", 1:11, (\"lat\",),attrib = OrderedDict(\n \"standard_name\" => \"latitude\",\n))\nncvar = defVar(ds,\"bat\", zeros(10,11), (\"lon\", \"lat\"), attrib = OrderedDict(\n \"standard_name\" => \"height\",\n))\n\nncbat = ds[CF\"height\"]\n# the same as\n# ncbat = varbyattrib(ds,standard_name = \"height\")[1]\n\nname(ncbat)\n# output\n\"bat\"","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"If there are multiple variables with the standard_name equal to height, an error is returned because it is ambiguous which variable should be accessed.","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"All variables whose dimensions are also dimensions of ncbat are considered as related and can also be accessed by sub-setting ncbat with their variable names of CF Standard name:","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"nclon_of_bat = ncbat[CF\"longitude\"]\n# same as\n# nclon_of_bat = ncbat[\"lon\"]\nname(nclon_of_bat)\n# output\n\"lon\"","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"The previous call to ncbat[CF\"longitude\"] would also worked if there are multiple variables with a standard name longitude defined in a dataset as long as they have different dimension names (which is commonly the case for model output on staggered grid such as Regional Ocean Modeling System).","category":"page"},{"location":"experimental/#Views","page":"Experimental features","title":"Views","text":"","category":"section"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"In Julia, a view of an array is a subset of an array but whose elements still point to the original parent array. If one modifies an element of a view, the corresponding element in the parent array is modified too:","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"A = zeros(4,4)\nsubset = @view A[2:3,2:4]\n# or\n# subset = view(A,2:3,2:4)\n\nsubset[1,1] = 2\nA[2,2]\n# output\n2.0","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"Views do not use copy of the array. The parent array and the indices of the view are obtained via the function parent and parentindices.","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"parent(subset) == A\n# true, as both arrays are the same\n\nparentindices(subset)\n# output\n(2:3, 2:4)","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"In NCDatasets, variables can also be sliced as a view:","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"using NCDatasets, DataStructures\nds = NCDataset(tempname(),\"c\")\n\nnclon = defVar(ds,\"lon\", 1:10, (\"lon\",))\nnclat = defVar(ds,\"lat\", 1:11, (\"lat\",))\nncvar = defVar(ds,\"bat\", zeros(10,11), (\"lon\", \"lat\"), attrib = OrderedDict(\n \"standard_name\" => \"height\",\n))\n\nncvar_subset = @view ncvar[2:4,2:3]\n# or\n# ncvar_subset = view(ncvar,2:4,2:3)\n\nncvar_subset[1,1] = 2\n# ncvar[2,2] is now 2\n\nncvar_subset.attrib[\"standard_name\"]\n\n# output\n\"height\"","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"This is useful for example when even the sliced array is too large to be loaded in RAM or when all attributes need to be preserved for the sliced array.","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"The variables lon and lat are related to bat because all dimensions of the variables lon and lat are also dimensions of bat (which is commonly the case for coordinate variables). Such related variables can be retrieved by indexing the NetCDF variables with the name of the corresponding variable:","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"lon_subset = ncvar_subset[\"lon\"]\nlon_subset[:] == [2, 3, 4]\n# output\ntrue","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"A view of a NetCDF variable also implements the function parent and parentindices with the same meaning as for julia Arrays.","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"A whole dataset can also be sliced using a view(ds, dim1=range1, dim2=range2...). For example:","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"ds_subset = view(ds, lon = 2:3, lat = 2:4)\n# or\n# ds_subset = @view ds[lon = 2:3, lat = 2:4]\nds_subset.dim[\"lon\"]\n\n# output\n2","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"Such sliced datasets can for example be saved into a new NetCDF file using write:","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"write(\"slice.nc\",ds_subset)","category":"page"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"Any dimension not mentioned in the @view call is not sliced. While @view produces a slice based on indices, the NCDatasets.@select macro produces a slice (of an NetCDF variable or dataset) based on the values of other related variables (typically coordinates).","category":"page"},{"location":"experimental/#Data-selection-based-on-values","page":"Experimental features","title":"Data selection based on values","text":"","category":"section"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"NCDatasets.@select","category":"page"},{"location":"experimental/#NCDatasets.@select","page":"Experimental features","title":"NCDatasets.@select","text":"vsubset = NCDatasets.@select(v,expression)\ndssubset = NCDatasets.@select(ds,expression)\n\nReturn a subset of the variable v (or dataset ds) satisfying the condition expression as a view. The condition has the following form:\n\ncondition₁ && condition₂ && condition₃ ... conditionₙ\n\nEvery condition should involve a single 1D NetCDF variable (typically a coordinate variable, referred as coord below). If v is a variable, the related 1D NetCDF variable should have a shared dimension with the variable v. All local variables need to have a $ prefix (see examples below). This macro is experimental and subjected to change.\n\nEvery condition can either perform:\n\na nearest match: coord ≈ target_coord (for ≈ type \\approx followed by the TAB-key). Only the data corresponding to the index closest to target_coord is loaded.\na nearest match with tolerance: coord ≈ target_coord ± tolerance. As before, but if the difference between the closest value in coord and target_coord is larger (in absolute value) than tolerance, an empty array is returned.\na condition operating on scalar values. For example, a condition equal to 10 <= lon <= 20 loads all data with the longitude between 10 and 20 or abs(lat) > 60 loads all variables with a latitude north of 60° N and south of 60° S (assuming that the NetCDF has the 1D variables lon and lat for longitude and latitude).\n\nOnly the data which satisfies all conditions is loaded. All conditions must be chained with an && (logical and). They should not contain additional parenthesis or other logical operators such as || (logical or).\n\nTo convert the view into a regular array one can use collect, Array or regular indexing. As in julia, views of scalars are wrapped into a zero dimensional arrays which can be dereferenced by using []. Modifying a view will modify the underlying NetCDF file (if the file is opened as writable, otherwise an error is issued).\n\nAs for any view, one can use parentindices(vsubset) to get the indices matching a select query.\n\nExamples\n\nCreate a sample file with random data:\n\nusing NCDatasets, Dates\nfname = \"sample_file.nc\"\nlon = -180:180\nlat = -90:90\ntime = DateTime(2000,1,1):Day(1):DateTime(2000,1,3)\nSST = randn(length(lon),length(lat),length(time))\n\nds = NCDataset(fname,\"c\")\ndefVar(ds,\"lon\",lon,(\"lon\",));\ndefVar(ds,\"lat\",lat,(\"lat\",));\ndefVar(ds,\"time\",time,(\"time\",));\ndefVar(ds,\"SST\",SST,(\"lon\",\"lat\",\"time\"));\n\n\n# load by bounding box\nv = NCDatasets.@select(ds[\"SST\"],30 <= lon <= 60 && 40 <= lat <= 90)\n\n# substitute a local variable in condition using $\nlonr = (30,60) # longitude range\nlatr = (40,90) # latitude range\n\nv = NCDatasets.@select(ds[\"SST\"],$lonr[1] <= lon <= $lonr[2] && $latr[1] <= lat <= $latr[2])\n\n# You can also select based on `ClosedInterval`s from `IntervalSets.jl`.\n# Both 30..60 and 65 ± 25 construct `ClosedInterval`s, see their documentation for details.\n\nlon_interval = 30..60\nlat_interval = 65 ± 25\nv = NCDatasets.@select(ds[\"SST\"], lon ∈ $lon_interval && lat ∈ $lat_interval)\n\n# get the indices matching the select query\n(lon_indices,lat_indices,time_indices) = parentindices(v)\n\n# get longitude matchting the select query\nv_lon = v[\"lon\"]\n\n# find the nearest time instance\nv = NCDatasets.@select(ds[\"SST\"],time ≈ DateTime(2000,1,4))\n\n# find the nearest time instance but not earlier or later than 2 hours\n# an empty array is returned if no time instance is present\n\nv = NCDatasets.@select(ds[\"SST\"],time ≈ DateTime(2000,1,3,1) ± Hour(2))\n\nclose(ds)\n\nAny 1D variable with the same dimension name can be used in @select. For example, if we have a time series of temperature and salinity, the temperature values can also be selected based on salinity:\n\n# create a sample time series\nusing NCDatasets, Dates\nfname = \"sample_series.nc\"\ntime = DateTime(2000,1,1):Day(1):DateTime(2009,12,31)\nsalinity = randn(length(time)) .+ 35\ntemperature = randn(length(time))\n\nNCDataset(fname,\"c\") do ds\n defVar(ds,\"time\",time,(\"time\",));\n defVar(ds,\"salinity\",salinity,(\"time\",));\n defVar(ds,\"temperature\",temperature,(\"time\",));\nend\n\nds = NCDataset(fname)\n\n# load all temperature data from January where the salinity is larger than 35.\nv = NCDatasets.@select(ds[\"temperature\"],Dates.month(time) == 1 && salinity >= 35)\n\n# this is equivalent to\nv2 = ds[\"temperature\"][findall(Dates.month.(time) .== 1 .&& salinity .>= 35)]\n\n@test v == v2\nclose(ds)\n\nnote: Note\nFor optimal performance, one should try to load contiguous data ranges, in particular when the data is loaded over HTTP/OPeNDAP.\n\n\n\n\n\n","category":"macro"},{"location":"experimental/#Experimental-functions","page":"Experimental features","title":"Experimental functions","text":"","category":"section"},{"location":"experimental/","page":"Experimental features","title":"Experimental features","text":"NCDatasets.ancillaryvariables\nNCDatasets.filter","category":"page"},{"location":"experimental/#NCDatasets.ancillaryvariables","page":"Experimental features","title":"NCDatasets.ancillaryvariables","text":"ncvar = NCDatasets.ancillaryvariables(ncv::NCDatasets.CFVariable,modifier)\n\nReturn the first ancillary variables from the NetCDF variable ncv with the standard name modifier modifier. It can be used for example to access related variable like status flags.\n\n\n\n\n\n","category":"function"},{"location":"experimental/#Base.filter","page":"Experimental features","title":"Base.filter","text":"data = NCDatasets.filter(ncv, indices...; accepted_status_flags = nothing)\n\nLoad and filter observations by replacing all variables without an acepted status flag to missing. It is used the attribute ancillary_variables to identify the status flag.\n\n# da[\"data\"] is 2D matrix\ngood_data = NCDatasets.filter(ds[\"data\"],:,:, accepted_status_flags = [\"good_data\",\"probably_good_data\"])\n\n\n\n\n\n","category":"function"},{"location":"tutorials/#Tutorials","page":"Tutorials","title":"Tutorials","text":"","category":"section"},{"location":"tutorials/#Data-from-Copernicus-Marine","page":"Tutorials","title":"Data from Copernicus Marine","text":"","category":"section"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"This examples shows how to download sea surface temperature from the Mediterranean Sea High Resolution and Ultra High Resolution Sea Surface Temperature Analysis provided by Copernicus Marine Service. Username and password are obtained after registration.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"The username and password can be added to the URL. For example https://example.org/path should become https://username:password@example.org/path:","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"using NCDatasets, PyPlot, Statistics, URIs\n\nusername = \"your_username\"\npassword = \"your_password\"\n\nurl = \"https://nrt.cmems-du.eu/thredds/dodsC/SST_MED_SST_L4_NRT_OBSERVATIONS_010_004_a_V2\"\n\n# add username and password to url\n# username or password can contain special characters\nusername_escaped = URIs.escapeuri(username)\npassword_escaped = URIs.escapeuri(password)\nurl2 = string(URI(URI(url),userinfo = string(username_escaped,\":\",password_escaped)))\n\nds = NCDataset(url2)\n\nncvar = ds[\"analysed_sst\"];\nSST = ncvar[:,:,1]\nlon = ds[\"lon\"][:]\nlat = ds[\"lat\"][:]\ntime = ds[\"time\"][1]\n\nclf()\npcolormesh(lon,lat,nomissing(SST,NaN)')\ncbar = colorbar(orientation=\"horizontal\")\ncbar.set_label(ncvar.attrib[\"units\"])\ngca().set_aspect(1/cosd(mean(lat)))\n\ntitle(\"$(ncvar.attrib[\"long_name\"]) $time\")","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"Alternatively, one can also create the files .netrc and .ncrc in the your home directory with your credentials as explained for the NASA EarthData example which allows you to manage your passwords in a central configuration file and reduce the risk to accidentally share your credentials.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"(Image: example_SST_CMEMS.png)","category":"page"},{"location":"tutorials/#Data-from-NASA-EarthData","page":"Tutorials","title":"Data from NASA EarthData","text":"","category":"section"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"This example shows show to download data via OPeNDAP from the NASA EarthData which requires a username and password.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"You need to be registered at https://urs.earthdata.nasa.gov/users/new to get your credentials.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"The example requires NCDatasets 0.12.5.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"Simply adding username and password to the URL for NASA Earth Data OPeNDPAP services is unfortunately not sufficient as it uses a different authentication mechanism.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"Create a .netrc file with the following content in your home directory:","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"machine urs.earthdata.nasa.gov\n login YOUR_USERNAME\n password YOUR_PASSWORD","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"where YOUR_USERNAME and YOUR_PASSWORD is your Earth Data username and password.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"Create a .ncrc file with the following content in your home directory[1]:","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"HTTP.NETRC=/home/abarth/.netrc","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"where HTTP.NETRC is the full path to your new .netrc file[2]. You can test whether your configuration files are correct independently of NCDatasets by using the tool ncdump:","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"ncdump -h \"https://opendap.earthdata.nasa.gov/providers/POCLOUD/collections/GHRSST%20Level%204%20MUR%20Global%20Foundation%20Sea%20Surface%20Temperature%20Analysis%20(v4.1)/granules/20190101090000-JPL-L4_GHRSST-SSTfnd-MUR-GLOB-v02.0-fv04.1\"","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"This should return the metadata of the OPeNDAP resource:","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"netcdf \\20190101090000-JPL-L4_GHRSST-SSTfnd-MUR-GLOB-v02.0-fv04 {\ndimensions:\n\tlat = 17999 ;\n\tlon = 36000 ;\n\ttime = 1 ;\nvariables:\n\tshort analysed_sst(time, lat, lon) ;\n[...]","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"This is the typical error message which is returned when the credentials are not configured properly:","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"syntax error, unexpected WORD_WORD, expecting SCAN_ATTR or SCAN_DATASET or SCAN_ERROR\ncontext: HTTP^ Basic: Access denied.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"When there is an error on the server side (500 internal server error), you might get the following error:","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"syntax error, unexpected $end, expecting SCAN_ATTR or SCAN_DATASET or SCAN_ERROR\ncontext: ^\nncdump: https://opendap.earthdata.nasa.gov/providers/POCLOUD/collections/GHRSST%20Level%204%20MUR%20Global%20Foundation%20Sea%20Surface%20Temperature%20Analysis%20(v4.1)/granules/20190101090000-JPL-L4_GHRSST-SSTfnd-MUR-GLOB-v02.0-fv04.1: NetCDF: Malformed or inaccessible DAP2 DDS or DAP4 DMR response","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"Here we use the GHRSST Level 4 MUR Global Foundation Sea Surface Temperature Analysis (v4.1) dataset. In the following example, we download the data via OPeNDAP for a chosen bounding box and given time instance.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"using NCDatasets, PyPlot, Dates, Statistics\n\nurl = \"https://opendap.earthdata.nasa.gov/providers/POCLOUD/collections/GHRSST%20Level%204%20MUR%20Global%20Foundation%20Sea%20Surface%20Temperature%20Analysis%20(v4.1)/granules/20190101090000-JPL-L4_GHRSST-SSTfnd-MUR-GLOB-v02.0-fv04.1\"\n\nds = NCDataset(url)\n\n# range of longitude\nlonr = (-6, 37.0)\n\n# range of latitude\nlatr = (29, 45.875)\n\nds_subset = NCDatasets.@select(\n ds[\"analysed_sst\"],\n $lonr[1] <= lon <= $lonr[2] && $latr[1] <= lat <= $latr[2])\n\nncvar = ds_subset[\"analysed_sst\"]\nSST = ncvar[:,:,1]\nlon = ds_subset[\"lon\"][:]\nlat = ds_subset[\"lat\"][:]\ntime = ds_subset[\"time\"][1]\n\n\nclf()\npcolormesh(lon,lat,nomissing(SST,NaN)');\ngca().set_aspect(1/cosd(mean(lat)))\n\ncbar = colorbar(orientation=\"horizontal\")\ncbar.set_label(ncvar.attrib[\"units\"])\n\nplt.title(\"$(ncvar.attrib[\"long_name\"]) $time\")","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"This script produces the following plot:","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"(Image: example_SST.png)","category":"page"},{"location":"tutorials/#Access-data-from-S3-object-storage","page":"Tutorials","title":"Access data from S3 object storage","text":"","category":"section"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"NASA EarthData is also available from AWS S3 object storage at the AWS region us-west-2. This example assumes that you have access to an AWS instance in this region (available through e.g. Pangeo Cloud after registration thanks to funding from the NASA's ACCESS/AWS Cloud Credits for Research program and the fine folks at Pangeo).","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"The S3 access tokens available from https://archive.podaac.earthdata.nasa.gov/s3credentials are only valid for 1 hour. It is therefore preferable to get this token programmatically using your EarthData username and password. The function earthdata_s3credentials is a translation of \"Sample script to receive credentials\" to Julia:","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"using AWS, Base64, JSON3, HTTP, NCDatasets, URIs\nusing AWS: @service\n@service S3\n\nfunction earthdata_s3credentials(\n username, password;\n credentials_url = \"https://archive.podaac.earthdata.nasa.gov/s3credentials\")\n\n origin = URI(credentials_url).scheme\n\n resp = HTTP.get(credentials_url,redirect=false)\n authorize_url = Dict(resp.headers)[\"Location\"]\n\n auth = base64encode(string(username,\":\",password))\n\n resp2 = HTTP.post(authorize_url,[\"Origin\" => origin],\n \"credentials=$auth\",redirect=false)\n redirect_url=Dict(resp2.headers)[\"Location\"]\n\n # cookie jar\n jar = Dict{String, Set{HTTP.Cookie}}()\n\n # raises a 500 error, as in the shell script, but we get a cookie!\n HTTP.get(redirect_url; cookies=true,\n cookiejar = jar, redirect = false,\n status_exception = false)\n\n resp4 = HTTP.get(credentials_url; cookies=true, cookiejar = jar, redirect = false)\n\n cred = JSON3.read(resp4.body)\n return cred\nend\n\n# add your credentials here (or get it programmatically from environment variables or a file)\nusername = \"...\"\npassword = \"...\"\n\ncred = earthdata_s3credentials(username,password)\n@info \"Token expires: $(cred.expiration)\"\n\n\nENV[\"AWS_ACCESS_KEY_ID\"] = cred.accessKeyId;\nENV[\"AWS_SECRET_ACCESS_KEY\"] = cred.secretAccessKey;\nENV[\"AWS_SESSION_TOKEN\"] = cred.sessionToken;\n\nc = AWS.global_aws_config();\n\nresp = S3.list_objects(\"podaac-ops-cumulus-protected\",\n Dict(\"prefix\" => \"MODIS_TERRA_L3_SST_MID-IR_DAILY_4KM_NIGHTTIME_V2019.0/\",\n \"delimiter\" => '/'))\n\n# download the first object\ndata = S3.get_object(\"podaac-ops-cumulus-protected\",resp[\"Contents\"][1][\"Key\"]);\n\n# load the NetCDF dataset\nds = NCDataset(\"temp-memory\",\"r\",memory = data)","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"Output:","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"CDataset: temp-memory\nGroup: /\n\nDimensions\n lat = 4320\n lon = 8640\n rgb = 3\n eightbitcolor = 256\n\nVariables\n sst4 (8640 × 4320)\n Datatype: Int16\n Dimensions: lon × lat\n Attributes:\n long_name = 4um Sea Surface Temperature\n[...]","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"The example requires NCDatasets 0.12.5 which allows one to read a NetCDF dataset directly from a vector of bytes in memory.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"To debug, it is useful to run the aws shell command to list all keys in the buckets (it requires the AWS_* environment variables to be set):","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"aws s3 ls s3://podaac-ops-cumulus-protected/MODIS_TERRA_L3_SST_THERMAL_DAILY_4KM_NIGHTTIME_V2019.0/","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"[1]: Windows users need to create a .dodsrc configuration file (instead of the .ncrc file) and place it in the current working directory or set the HOME environment variable (see https://github.com/Unidata/netcdf-c/issues/2380). This NetCDF bug is likely to be fixed in NetCDF version 4.9.1.","category":"page"},{"location":"tutorials/","page":"Tutorials","title":"Tutorials","text":"[2]: More information is available at https://docs.unidata.ucar.edu/netcdf-c/4.8.1/md_auth.html.","category":"page"},{"location":"variables/#Variables","page":"Variables","title":"Variables","text":"","category":"section"},{"location":"variables/","page":"Variables","title":"Variables","text":"Variables (like e.g. CFVariable) are the quantities contained within a NetCDF dataset. See the Datasets page on how to obtain them from a dataset.","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"Different type of arrays are involved when working with NCDatasets. For instance assume that test.nc is a file with a Float32 variable called var. Assume that we open this data set in append mode (\"a\"):","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"using NCDatasets\nds = NCDataset(\"test.nc\",\"a\")\nv_cf = ds[\"var\"]","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"The variable v_cf has the type CFVariable. No data is actually loaded from disk, but you can query its size, number of dimensions, number elements, etc., using the functions size, ndims, length as if v_cf was an ordinary Julia array.","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"To load the variable v_cf in memory as numeric data you can convert it into an array (preserving its dimensionality structure) with","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"Array(v_cf)","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"The syntax v_cf[:] is equivalent with the above, it doesn't make a Vector (like it does on normal Julia arrays).","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"You can only load sub-parts of it in memory via indexing each dimension:","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"v_cf[1:5, 10:20]","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"(here you must know the number of dimensions of the variable, as you must access all of them).","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"note: Note\nNCDatasets.Variable and NCDatasets.CFVariable implement the interface of AbstractArray. It is thus possible to call any function that accepts an AbstractArray. But functions like mean, sum (and many more) would load every element individually which is very inefficient for large fields read from disk. You should instead convert such a variable to a standard Julia Array and then do computations with it. See also the performance tips for more information.","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"The following functions are convenient for working with variables:","category":"page"},{"location":"variables/","page":"Variables","title":"Variables","text":"Base.size(v::NCDatasets.CFVariable)\ndimnames\ndimsize\nname\nrenameVar\nNCDataset(var::NCDatasets.CFVariable)\nnomissing\nfillvalue","category":"page"},{"location":"variables/#Base.size-Tuple{CommonDataModel.CFVariable}","page":"Variables","title":"Base.size","text":"sz = size(var::CFVariable)\n\nReturn a tuple of integers with the size of the variable var.\n\nnote: Note\nNote that the size of a variable can change, i.e. for a variable with an unlimited dimension.\n\n\n\n\n\n","category":"method"},{"location":"variables/#CommonDataModel.dimnames","page":"Variables","title":"CommonDataModel.dimnames","text":"dimnames(v::Variable)\n\nReturn a tuple of strings with the dimension names of the variable v.\n\n\n\n\n\ndimnames(v::CFVariable)\n\nReturn a tuple of strings with the dimension names of the variable v.\n\n\n\n\n\nCommonDataModel.dimnames(v::AbstractVariable)\n\nReturn an iterable of the dimension names of the variable v.\n\n\n\n\n\nCommonDatamodel.dimnames(ds::AbstractDataset)\n\nReturn an iterable of all dimension names in ds.\n\n\n\n\n\n","category":"function"},{"location":"variables/#NCDatasets.dimsize","page":"Variables","title":"NCDatasets.dimsize","text":"dimsize(v::CFVariable)\n\nGet the size of a CFVariable as a named tuple of dimension → length.\n\n\n\n\n\n","category":"function"},{"location":"variables/#CommonDataModel.name","page":"Variables","title":"CommonDataModel.name","text":"name(ds::NCDataset)\n\nReturn the group name of the NCDataset ds\n\n\n\n\n\nname(v::Variable)\n\nReturn the name of the NetCDF variable v.\n\n\n\n\n\nCommonDatamodel.name(ds::AbstractDataset)\n\nName of the group of the data set ds. For a data set containing only a single group, this will be always the root group \"/\".\n\n\n\n\n\nCommonDataModel.name(v::AbstractVariable)\n\nReturn the name of the variable v as a string.\n\n\n\n\n\n","category":"function"},{"location":"variables/#NCDatasets.renameVar","page":"Variables","title":"NCDatasets.renameVar","text":"renameVar(ds::NCDataset,oldname,newname)\n\nRename the variable called oldname to newname.\n\n\n\n\n\n","category":"function"},{"location":"variables/#NCDatasets.NCDataset-Tuple{CommonDataModel.CFVariable}","page":"Variables","title":"NCDatasets.NCDataset","text":"mfds = NCDataset(fnames, mode = \"r\"; aggdim = nothing, deferopen = true,\n isnewdim = false,\n constvars = [])\n\nOpens a multi-file dataset in read-only \"r\" or append mode \"a\". fnames is a vector of file names.\n\nVariables are aggregated over the first unlimited dimension or over the dimension aggdim if specified. Variables without the dimensions aggdim are not aggregated. All variables containing the dimension aggdim are aggregated. The variable who do not contain the dimension aggdim are assumed constant.\n\nIf variables should be aggregated over a new dimension (not present in the NetCDF file), one should set isnewdim to true. All NetCDF files should have the same variables, attributes and groupes. Per default, all variables will have an additional dimension unless they are marked as constant using the constvars parameter.\n\nThe append mode is only implemented when deferopen is false. If deferopen is false, all files are opened at the same time. However the operating system might limit the number of open files. In Linux, the limit can be controled with the command ulimit.\n\nAll metadata (attributes and dimension length are assumed to be the same for all NetCDF files. Otherwise reading the attribute of a multi-file dataset would be ambiguous. An exception to this rule is the length of the dimension over which the data is aggregated. This aggregation dimension can varify from file to file.\n\nSetting the experimental flag _aggdimconstant to true means that the length of the aggregation dimension is constant. This speeds up the creating of a multi-file dataset as only the metadata of the first file has to be loaded.\n\nExamples:\n\nYou can use Glob.jl to make fnames from a file pattern, e.g.\n\nusing NCDatasets, Glob\nds = NCDataset(glob(\"ERA5_monthly3D_reanalysis_*.nc\"))\n\nAggregation over a new dimension:\n\nusing NCDatasets\nfor i = 1:3\n NCDataset(\"foo$i.nc\",\"c\") do ds\n defVar(ds,\"data\",[10., 11., 12., 13.], (\"lon\",))\n end\nend\n\nds = NCDataset([\"foo$i.nc\" for i = 1:3],aggdim = \"sample\", isnewdim = true)\nsize(ds[\"data\"])\n# output\n# (4, 3)\n\n\n\n\n\n","category":"method"},{"location":"variables/#NCDatasets.nomissing","page":"Variables","title":"NCDatasets.nomissing","text":"a = nomissing(da)\n\nReturn the values of the array da of type Array{Union{T,Missing},N} (potentially containing missing values) as a regular Julia array a of the same element type. It raises an error if the array contains at least one missing value.\n\n\n\n\n\na = nomissing(da,value)\n\nRetun the values of the array da of type AbstractArray{Union{T,Missing},N} as a regular Julia array a by replacing all missing value by value (converted to type T). This function is identical to coalesce.(da,T(value)) where T is the element type of da.\n\nExample:\n\njulia> nomissing([missing,1.,2.],NaN)\n# returns [NaN, 1.0, 2.0]\n\n\n\n\n\n","category":"function"},{"location":"variables/#CommonDataModel.fillvalue","page":"Variables","title":"CommonDataModel.fillvalue","text":"fillvalue(::Type{Int8})\nfillvalue(::Type{UInt8})\nfillvalue(::Type{Int16})\nfillvalue(::Type{UInt16})\nfillvalue(::Type{Int32})\nfillvalue(::Type{UInt32})\nfillvalue(::Type{Int64})\nfillvalue(::Type{UInt64})\nfillvalue(::Type{Float32})\nfillvalue(::Type{Float64})\nfillvalue(::Type{Char})\nfillvalue(::Type{String})\n\nDefault fill-value for the given type.\n\n\n\n\n\nfv = fillvalue(v::Variable)\nfv = fillvalue(v::CFVariable)\n\nReturn the fill-value of the variable v.\n\n\n\n\n\n","category":"function"},{"location":"variables/","page":"Variables","title":"Variables","text":"loadragged\nNCDatasets.load!","category":"page"},{"location":"variables/#NCDatasets.loadragged","page":"Variables","title":"NCDatasets.loadragged","text":" data = loadragged(ncvar,index::Union{Colon,UnitRange,Int})\n\nLoad data from ncvar in the contiguous ragged array representation as a vector of vectors. It is typically used to load a list of profiles or time series of different length each.\n\nThe indexed ragged array representation is currently not supported.\n\n\n\n\n\n","category":"function"},{"location":"variables/#NCDatasets.load!","page":"Variables","title":"NCDatasets.load!","text":"NCDatasets.load!(ncvar::Variable, data, indices)\n\nLoads a NetCDF variables ncvar in-place and puts the result in data along the specified indices. One can use @inbounds annotate code where bounds checking can be elided by the compiler (which typically require type-stable code).\n\nusing NCDatasets\nds = NCDataset(\"file.nc\")\nncv = ds[\"vgos\"].var;\n# data must have the right shape and type\ndata = zeros(eltype(ncv),size(ncv));\nNCDatasets.load!(ncv,data,:,:,:)\n# or\n# @inbounds NCDatasets.load!(ncv,data,:,:,:)\nclose(ds)\n\n# loading a subset\ndata = zeros(5); # must have the right shape and type\nload!(ds[\"temp\"].var,data,:,1) # loads the 1st column\n\nnote: Note\nFor a netCDF variable of type NC_CHAR, the element type of the data array must be UInt8 and cannot be the julia Char type, because the julia Char type uses 4 bytes and the NetCDF NC_CHAR only 1 byte.\n\n\n\n\n\nNCDatasets.load!(ncvar::CFVariable, data, buffer, indices)\n\nLoads a NetCDF variables ncvar in-place and puts the result in data (an array of eltype(ncvar)) along the specified indices. buffer is a temporary array of the same size as data but the type should be eltype(ncv.var), i.e. the corresponding type in the NetCDF files (before applying scale_factor, add_offset and masking fill values). Scaling and masking will be applied to the array data.\n\ndata and buffer can be the same array if eltype(ncvar) == eltype(ncvar.var).\n\nExample:\n\n# create some test array\nDataset(\"file.nc\",\"c\") do ds\n defDim(ds,\"time\",3)\n ncvar = defVar(ds,\"vgos\",Int16,(\"time\",),attrib = [\"scale_factor\" => 0.1])\n ncvar[:] = [1.1, 1.2, 1.3]\n # store 11, 12 and 13 as scale_factor is 0.1\nend\n\n\nds = Dataset(\"file.nc\")\nncv = ds[\"vgos\"];\n# data and buffer must have the right shape and type\ndata = zeros(eltype(ncv),size(ncv)); # here Vector{Float64}\nbuffer = zeros(eltype(ncv.var),size(ncv)); # here Vector{Int16}\nNCDatasets.load!(ncv,data,buffer,:,:,:)\nclose(ds)\n\n\n\n\n\n","category":"function"},{"location":"variables/#Creating-a-variable","page":"Variables","title":"Creating a variable","text":"","category":"section"},{"location":"variables/","page":"Variables","title":"Variables","text":"defVar","category":"page"},{"location":"variables/#CommonDataModel.defVar","page":"Variables","title":"CommonDataModel.defVar","text":"defVar(ds::NCDataset,name,vtype,dimnames; kwargs...)\ndefVar(ds::NCDataset,name,data,dimnames; kwargs...)\n\nDefine a variable with the name name in the dataset ds. vtype can be Julia types in the table below (with the corresponding NetCDF type). The parameter dimnames is a tuple with the names of the dimension. For scalar this parameter is the empty tuple (). The variable is returned (of the type CFVariable).\n\nInstead of providing the variable type one can directly give also the data data which will be used to fill the NetCDF variable. In this case, the dimensions with the appropriate size will be created as required using the names in dimnames.\n\nIf data is a vector or array of DateTime objects, then the dates are saved as double-precision floats and units \"days since 1900-01-01 00:00:00\" (unless a time unit is specifed with the attrib keyword as described below). Dates are converted to the default calendar in the CF conversion which is the mixed Julian/Gregorian calendar.\n\nKeyword arguments\n\nfillvalue: A value filled in the NetCDF file to indicate missing data. It will be stored in the _FillValue attribute.\nchunksizes: Vector integers setting the chunk size. The total size of a chunk must be less than 4 GiB.\ndeflatelevel: Compression level: 0 (default) means no compression and 9 means maximum compression. Each chunk will be compressed individually.\nshuffle: If true, the shuffle filter is activated which can improve the compression ratio.\nchecksum: The checksum method can be :fletcher32 or :nochecksum (checksumming is disabled, which is the default)\nattrib: An iterable of attribute name and attribute value pairs, for example a Dict, DataStructures.OrderedDict or simply a vector of pairs (see example below)\ntypename (string): The name of the NetCDF type required for vlen arrays\n\nchunksizes, deflatelevel, shuffle and checksum can only be set on NetCDF 4 files. Compression of strings and variable-length arrays is not supported by the underlying NetCDF library.\n\nNetCDF data types\n\nNetCDF Type Julia Type\nNC_BYTE Int8\nNC_UBYTE UInt8\nNC_SHORT Int16\nNC_INT Int32\nNC_INT64 Int64\nNC_FLOAT Float32\nNC_DOUBLE Float64\nNC_CHAR Char\nNC_STRING String\n\nDimension ordering\n\nThe data is stored in the NetCDF file in the same order as they are stored in memory. As julia uses the Column-major ordering for arrays, the order of dimensions will appear reversed when the data is loaded in languages or programs using Row-major ordering such as C/C++, Python/NumPy or the tools ncdump/ncgen (NetCDF CDL). NumPy can also use Column-major ordering but Row-major order is the default. For the column-major interpretation of the dimensions (as in Julia), the CF Convention recommends the order \"longitude\" (X), \"latitude\" (Y), \"height or depth\" (Z) and \"date or time\" (T) (if applicable). All other dimensions should, whenever possible, be placed to the right of the spatiotemporal dimensions.\n\nExample:\n\nIn this example, scale_factor and add_offset are applied when the data is saved.\n\njulia> using DataStructures\njulia> data = randn(3,5)\njulia> NCDataset(\"test_file.nc\",\"c\") do ds\n defVar(ds,\"temp\",data,(\"lon\",\"lat\"), attrib = OrderedDict(\n \"units\" => \"degree_Celsius\",\n \"add_offset\" => -273.15,\n \"scale_factor\" => 0.1,\n \"long_name\" => \"Temperature\"\n ))\n end;\n\nnote: Note\nIf the attributes _FillValue, missing_value, add_offset, scale_factor, units and calendar are used, they should be defined when calling defVar by using the parameter attrib as shown in the example above.\n\n\n\n\n\nv = CommonDataModel.defVar(ds::AbstractDataset,src::AbstractVariable)\n\nDefines and return the variable in the data set ds copied from the variable src. The variable name, dimension name, attributes and data are copied from src.\n\n\n\n\n\n","category":"function"},{"location":"variables/#Storage-parameter-of-a-variable","page":"Variables","title":"Storage parameter of a variable","text":"","category":"section"},{"location":"variables/","page":"Variables","title":"Variables","text":"chunking\ndeflate\nchecksum","category":"page"},{"location":"variables/#NCDatasets.chunking","page":"Variables","title":"NCDatasets.chunking","text":"storage,chunksizes = chunking(v::Variable)\n\nReturn the storage type (:contiguous or :chunked) and the chunk sizes of the varable v.\n\n\n\n\n\nstorage,chunksizes = chunking(v::MFVariable)\n\nReturn the storage type (:contiguous or :chunked) and the chunk sizes of the varable v corresponding to the first NetCDF file. If the first NetCDF file in the collection is chunked then this storage attributes are returns. If not the first NetCDF file is not contiguous, then multi-file variable is still reported as chunked with chunk size equal to the variable size.\n\n\n\n\n\n","category":"function"},{"location":"variables/#NCDatasets.deflate","page":"Variables","title":"NCDatasets.deflate","text":"isshuffled,isdeflated,deflate_level = deflate(v::Variable)\n\nReturn compression information of the variable v. If shuffle is true, then shuffling (byte interlacing) is activated. If deflate is true, then the data chunks (see chunking) are compressed using the compression level deflate_level (0 means no compression and 9 means maximum compression).\n\n\n\n\n\n","category":"function"},{"location":"variables/#NCDatasets.checksum","page":"Variables","title":"NCDatasets.checksum","text":"checksummethod = checksum(v::Variable)\n\nReturn the checksum method of the variable v which can be either be :fletcher32 or :nochecksum.\n\n\n\n\n\n","category":"function"},{"location":"variables/#Coordinate-variables-and-cell-boundaries","page":"Variables","title":"Coordinate variables and cell boundaries","text":"","category":"section"},{"location":"variables/","page":"Variables","title":"Variables","text":"coord\nbounds","category":"page"},{"location":"variables/#NCDatasets.coord","page":"Variables","title":"NCDatasets.coord","text":"cv = coord(v::Union{CFVariable,Variable},standard_name)\n\nFind the coordinate of the variable v by the standard name standard_name or some standardized heuristics based on units. If the heuristics fail to detect the coordinate, consider to modify the netCDF file to add the standard_name attribute. All dimensions of the coordinate must also be dimensions of the variable v.\n\nExample\n\nusing NCDatasets\nds = NCDataset(\"file.nc\")\nncv = ds[\"SST\"]\nlon = coord(ncv,\"longitude\")[:]\nlat = coord(ncv,\"latitude\")[:]\nv = ncv[:]\nclose(ds)\n\n\n\n\n\n","category":"function"},{"location":"variables/#NCDatasets.bounds","page":"Variables","title":"NCDatasets.bounds","text":"b = bounds(ncvar::NCDatasets.CFVariable)\n\nReturn the CFVariable corresponding to the bounds attribute of the variable ncvar. The time units and calendar from the ncvar are used but not the attributes controling the packing of data scale_factor, add_offset and _FillValue.\n\n\n\n\n\n","category":"function"},{"location":"issues/#Known-issues","page":"Known issues","title":"Known issues","text":"","category":"section"},{"location":"issues/#NetCDF:-Not-a-valid-data-type-or-_FillValue-type-mismatch","page":"Known issues","title":"NetCDF: Not a valid data type or _FillValue type mismatch","text":"","category":"section"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"Trying to define the _FillValue, produces the following error:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"ERROR: LoadError: NCDatasets.NetCDFError(-45, \"NetCDF: Not a valid data type or _FillValue type mismatch\")","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"The error could be generated by a code like this:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"using NCDatasets, DataStructures\n# ...\ntempvar = defVar(ds,\"temp\",Float32,(\"lonc\",\"latc\",\"time\"), attrib = OrderedDict(\n \"_FillValue\" => -9999.))","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"or","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"using NCDatasets\n# ...\ntempvar = defVar(ds,\"temp\",Float32,(\"lonc\",\"latc\",\"time\"), fillvalue = -9999.)","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"In fact, _FillValue must have the same data type as the corresponding variable. In the case above, tempvar is a 32-bit float and the number -9999. is a 64-bit float (aka double, which is the default floating point type in Julia). It is sufficient to convert the value -9999. to a 32-bit float -9999.f0 (or Float32(-9999.)).","category":"page"},{"location":"issues/#Defining-the-attributes-_FillValue,-add_offset,-scale_factor,-units-and-calendar","page":"Known issues","title":"Defining the attributes _FillValue, add_offset, scale_factor, units and calendar","text":"","category":"section"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"An error like Cannotconvertan object of type Missing (or similar) is generated by code like this:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"v = defVar(ds,\"var_with_all_missing_data\",Float32,(\"lon\",))\nv.attrib[\"_FillValue\"] = fv\nv[1] = missing","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"This produces the following error:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"ERROR: LoadError: MethodError: Cannot `convert` an object of type Missing to an object of type Float32\nClosest candidates are:\n convert(::Type{T}, ::T) where T<:Number at number.jl:6\n convert(::Type{T}, ::Number) where T<:Number at number.jl:7\n convert(::Type{T}, ::Base.TwicePrecision) where T<:Number at twiceprecision.jl:250\n ...\nStacktrace:\n [1] fill!(::SubArray{Float32,1,NCDatasets.CFVariable{Float32,1,NCDatasets.Variable{Float32,1},NCDatasets.Attributes},Tuple{UnitRange{Int64}},false}, ::Missing) at ./multidimensional.jl:865\n [2] copyto! at ./broadcast.jl:871 [inlined]\n [3] materialize!(::SubArray{Float32,1,NCDatasets.CFVariable{Float32,1,NCDatasets.Variable{Float32,1},NCDatasets.Attributes},Tuple{UnitRange{Int64}},false}, ::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{0},Nothing,typeof(identity),Tuple{Base.RefValue{Missing}}}) at ./broadcast.jl:822","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"One should use define the _FillValue (and similar attributes like add_offset, scale_factor, units and calendar affecting the type of the data) in the call of defVar:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"using DataStructures\nv = defVar(ds,\"var_with_all_missing_data\",Int32,(\"lon\",), fillvalue = fv, attrib = OrderedDict(\n \"scale_factor\" => 0.1,\n \"add_offset\" => 0.1\n ))","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"This change was introduced in NCDatasets version 0.10","category":"page"},{"location":"issues/#Multiple-versions-of-HDF5-or-NetCDF-libraries","page":"Known issues","title":"Multiple versions of HDF5 or NetCDF libraries","text":"","category":"section"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"Having outdated versions of HDF5 or NetCDF libraries installed can be an issue on Windows if they are included in the system PATH environment variable. It is advised to adapt the system PATH to remove the locations containing these libraries.","category":"page"},{"location":"issues/#Using-a-custom-NetCDF-library","page":"Known issues","title":"Using a custom NetCDF library","text":"","category":"section"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"The NetCDF library libnetcdf.so is installed as an artifact via the package NetCDF_jll. You can override which libnetcdf.so gets loaded through the Preferences package, as follows:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"# install these packages if necessary\nusing Preferences, NetCDF_jll\n\nset_preferences!(NetCDF_jll, \"libnetcdf_path\" => \"/path/to/libnetcdf.so.xyz\")","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"where /path/to/libnetcdf.so.xyz is the full path to the NetCDF library. This will create a LocalPreferences.toml file in your top-level project with the following content:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"[NetCDF_jll]\nlibnetcdf_path = \"/path/to/libnetcdf.so.xyz\"","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"However, the dependencies of the library version libnetcdf.so.xyz (in particular libcurl.so and libmbedtls.so) should be compatible with the dependencies of julia (in the folder .../julia-x.y.z/lib/julia). On Linux, you can list the library dependencies with the shell command ldd, for example:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"ldd /path/to/libnetcdf.so.xyz","category":"page"},{"location":"issues/#OPeNDAP-on-Windows-fails-with-Assertion-failed:-ocpanic","page":"Known issues","title":"OPeNDAP on Windows fails with Assertion failed: ocpanic","text":"","category":"section"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"On windows, NetCDF 4.7.4 can fail with this error:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"Assertion failed: ocpanic((\"state->auth.curlflags.cookiejar != NULL\")), file ocinternal.c, line 566","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"when accessing OPeNDAP URLs, like these:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"using NCDatasets\nds = NCDataset(\"https://thredds.jpl.nasa.gov/thredds/dodsC/ncml_aggregation/OceanTemperature/modis/terra/11um/4km/aggregate__MODIS_TERRA_L3_SST_THERMAL_DAILY_4KM_DAYTIME_V2019.0.ncml#fillmismatch\")","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"See also the issue report: https://github.com/Unidata/netcdf-c/issues/2380. The work-around is to create a .dodsrc in the current working directory with the content:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"HTTP.COOKIEJAR=C:\\Users\\USERNAME\\AppData\\Local\\Temp\\","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"where USERNAME is your username. The directory should exist and be writable by the user. You can run pwd() to determine the current working directory. Note that the initial current working directory can be different depending you how you start julia (from the command line or from jupyter notebook for example). Julia need to be restarted after this file is placed in the your working directory.","category":"page"},{"location":"issues/#Using-non-official-julia-builds","page":"Known issues","title":"Using non-official julia builds","text":"","category":"section"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"Julia and NetCDF_jll have several common dependencies (curl, MbedTLS, zlib). Non-official julia builds will work only if they use exactly the same library version as those used to compile NetCDF. This is unlikely to be the case in general and outside of our control. Therefore non-official julia builds are not supported. Official julia builds are available at https://julialang.org/downloads/.","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"Using for example the julia package from on Arch Linux, leads to this error:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"julia> using NCDatasets\nERROR: LoadError: InitError: could not load library \"/root/.julia/artifacts/461703969206dd426cc6b4d99f69f6ffab2a9779/lib/libnetcdf.so\"\n/usr/lib/julia/libcurl.so: version `CURL_4' not found (required by /root/.julia/artifacts/461703969206dd426cc6b4d99f69f6ffab2a9779/lib/libnetcdf.so)\nStacktrace:\n [1] macro expansion\n @ ~/.julia/packages/JLLWrappers/QpMQW/src/products/library_generators.jl:54 [inlined]\n [2] __init__()\n @ NetCDF_jll ~/.julia/packages/NetCDF_jll/BYHmI/src/wrappers/x86_64-linux-gnu.jl:12\n [3] top-level scope\n @ stdin:1\nduring initialization of module NetCDF_jll","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"You will likely have similar issues with julia installed from other package managers (like Debian/Ubuntu apt, Homebrew...). The only supported solution is to install the offical julia builds.","category":"page"},{"location":"issues/#version-CURL_4'-not-found","page":"Known issues","title":"version `CURL_4' not found","text":"","category":"section"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"If you see the following error:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"ERROR: LoadError: InitError: could not load library \"/home/user/.julia/artifacts/461703969206dd426cc6b4d99f69f6ffab2a9779/lib/libnetcdf.so\"\n/usr/lib/x86_64-linux-gnu/libcurl.so: version `CURL_4' not found (required by /home/user/.julia/artifacts/461703969206dd426cc6b4d99f69f6ffab2a9779/lib/libnetcdf.so)","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"make sure that you are using the offical julia builds (see above) and that your LD_LIBRARY_PATH and LD_PRELOAD are empty. You can verify this by running the following commands in a terminal:","category":"page"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"echo $LD_PRELOAD\necho $LD_LIBRARY_PATH","category":"page"},{"location":"issues/#Corner-cases","page":"Known issues","title":"Corner cases","text":"","category":"section"},{"location":"issues/","page":"Known issues","title":"Known issues","text":"An attribute representing a vector with a single value (e.g. [1]) will be read back as a scalar (1) (same behavior in python netCDF4 1.3.1).\nNetCDF and Julia distinguishes between a vector of chars and a string, but both are returned as string for ease of use, in particular an attribute representing a vector of chars ['u','n','i','t','s'] will be read back as the string \"units\".\nWhile reading a NetCDF time variable, the dates are converted using the Julia's DateTime (based on the proleptic Gregorian calendar following the ISO 8601 standard) when possible. When data is written to a NetCDF file (without specifying the calendar), the dates are saved using the default calendar of the NetCDF CF convention (the mixed Julian/Gregorian calendar, called \"standard\") when possible. It is recommended that the time origin specified by the units is after 15 October 1582 in which case the mixed Julian/Gregorian calendar is identical to the proleptic Gregorian calendar.","category":"page"},{"location":"attributes/#Attributes","page":"Attributes","title":"Attributes","text":"","category":"section"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"The NetCDF dataset (as returned by NCDataset or NetCDF groups) and the NetCDF variables (as returned by getindex, variable or defVar) have the field attrib which has the type NCDatasets.Attributes and behaves like a julia dictionary.","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"getindex(a::NCDatasets.Attributes,name::AbstractString)\nsetindex!(a::NCDatasets.Attributes,data,name::AbstractString)\nkeys(a::NCDatasets.Attributes)\ndelete!(a::NCDatasets.Attributes,name::AbstractString)","category":"page"},{"location":"attributes/#Base.getindex-Tuple{NCDatasets.Attributes, AbstractString}","page":"Attributes","title":"Base.getindex","text":"getindex(a::Attributes,name::SymbolOrString)\n\nReturn the value of the attribute called name from the attribute list a. Generally the attributes are loaded by indexing, for example:\n\nds = NCDataset(\"file.nc\")\ntitle = ds.attrib[\"title\"]\n\n\n\n\n\n","category":"method"},{"location":"attributes/#Base.setindex!-Tuple{NCDatasets.Attributes, Any, AbstractString}","page":"Attributes","title":"Base.setindex!","text":"Base.setindex!(a::Attributes,data,name::SymbolOrString)\n\nSet the attribute called name to the value data in the attribute list a. data can be a vector or a scalar. A scalar is handeld as a vector with one element in the NetCDF data model.\n\nGenerally the attributes are defined by indexing, for example:\n\nds = NCDataset(\"file.nc\",\"c\")\nds.attrib[\"title\"] = \"my title\"\nclose(ds)\n\nIf data is a string, then attribute is saved as a list of NetCDF characters (NC_CHAR) with the appropriate length. To save the attribute as a string (NC_STRING) you can use the following:\n\nds = NCDataset(\"file.nc\",\"c\")\nds.attrib[\"title\"] = [\"my title\"]\nclose(ds)\n\n\n\n\n\n","category":"method"},{"location":"attributes/#Base.keys-Tuple{NCDatasets.Attributes}","page":"Attributes","title":"Base.keys","text":"Base.keys(a::Attributes)\n\nReturn a list of the names of all attributes.\n\n\n\n\n\n","category":"method"},{"location":"attributes/#Base.delete!-Tuple{NCDatasets.Attributes, AbstractString}","page":"Attributes","title":"Base.delete!","text":"Base.delete!(a::Attributes, name)\n\nDelete the attribute name from the attribute list a.\n\n\n\n\n\n","category":"method"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"Loading all attributes as a Dict can be achieved by passing ds.attrib (where ds is the NCDataset) as argument to Dict.","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"using NCDatasets\nncfile = download(\"https://www.unidata.ucar.edu/software/netcdf/examples/sresa1b_ncar_ccsm3-example.nc\");\nds = NCDataset(ncfile);\nattributes_as_dictionary = Dict(ds.attrib)\ntypeof(attributes_as_dictionary)\n# returns Dict{String,Any}","category":"page"},{"location":"attributes/#Possible-type-promotion-in-Julia","page":"Attributes","title":"Possible type promotion in Julia","text":"","category":"section"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"There is a subtle problem with the following code:","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"ncv1 = defVar(ds,\"v1\", UInt8, (\"longitude\", \"latitude\", \"time\"), attrib = [\n \"add_offset\" => -1.0,\n \"scale_factor\" => 5.0,\n \"_FillValue\" => UInt8(255),\n])","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"Julia effectively promotes the _FillValue to Float64 which leads to a \"NetCDF: Not a valid data type or _FillValue type mismatch\" as the fillvalue has to have exactly the same type as the NetCDF data type. Other parameters could be equally promoted.","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"[\n \"add_offset\" => -1.0,\n \"scale_factor\" => 5.0,\n \"_FillValue\" => UInt8(255),\n]\n# returns\n# 3-element Array{Pair{String,Float64},1}:\n# \"add_offset\" => -1.0\n# \"scale_factor\" => 5.0\n# \"_FillValue\" => 255.0","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"Note the type of the second element of the Pair.","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"Using a Julia Dict does not show this behaviour:","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"ncv1 = defVar(ds,\"v1\", UInt8, (\"longitude\", \"latitude\", \"time\"), attrib = Dict(\n \"add_offset\" => -1.0,\n \"scale_factor\" => 5.0,\n \"_FillValue\" => UInt8(255),\n))","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"Note that Dict does not perserve the order of the attributes. Therefore an OrderedDict from the package DataStructures is preferable.","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"Or one could use simply the fillvalue parameter of defVar.","category":"page"},{"location":"attributes/","page":"Attributes","title":"Attributes","text":"ncv1 = defVar(ds,\"v1\", UInt8, (\"longitude\", \"latitude\", \"time\"), fillvalue = UInt8(255), attrib = [\n \"add_offset\" => -1.0,\n \"scale_factor\" => 5.0,\n])","category":"page"},{"location":"dimensions/#Dimensions","page":"Dimensions","title":"Dimensions","text":"","category":"section"},{"location":"dimensions/","page":"Dimensions","title":"Dimensions","text":"In the NetCDF data model, dimensions have names and a length (but possibly an unlimited length) and are defined for a NetCDF dataset (or group). For a given Variable or CFVariable,the names of the corresponding dimensions are obtained with using dimnames.","category":"page"},{"location":"dimensions/","page":"Dimensions","title":"Dimensions","text":"keys(d::NCDatasets.Dimensions)\nhaskey(a::NCDatasets.NCIterable,name::AbstractString)\ndefDim\nunlimited(d::NCDatasets.Dimensions)\nsetindex!(d::NCDatasets.Dimensions,len,name::AbstractString)","category":"page"},{"location":"dimensions/#Base.keys-Tuple{NCDatasets.Dimensions}","page":"Dimensions","title":"Base.keys","text":"keys(d::Dimensions)\n\nReturn a list of all dimension names in NCDataset ds.\n\nExamples\n\njulia> ds = NCDataset(\"results.nc\", \"r\");\njulia> dimnames = keys(ds.dim)\n\n\n\n\n\n","category":"method"},{"location":"dimensions/#Base.haskey-Tuple{Union{NCDatasets.AbstractDimensions, NCDatasets.AbstractGroups, NCDatasets.AbstractNCDataset, NCDatasets.BaseAttributes}, AbstractString}","page":"Dimensions","title":"Base.haskey","text":"haskey(ds::NCDataset,name)\nhaskey(d::Dimensions,name)\nhaskey(ds::Attributes,name)\n\nReturn true if the NCDataset ds (or dimension/attribute list) has a variable (dimension/attribute) with the name name. For example:\n\nds = NCDataset(\"/tmp/test.nc\",\"r\")\nif haskey(ds,\"temperature\")\n println(\"The file has a variable 'temperature'\")\nend\n\nif haskey(ds.dim,\"lon\")\n println(\"The file has a dimension 'lon'\")\nend\n\nThis example checks if the file /tmp/test.nc has a variable with the name temperature and a dimension with the name lon.\n\n\n\n\n\n","category":"method"},{"location":"dimensions/#CommonDataModel.defDim","page":"Dimensions","title":"CommonDataModel.defDim","text":"defDim(ds::NCDataset,name,len)\n\nDefine a dimension in the data set ds with the given name and length len. If len is the special value Inf, then the dimension is considered as unlimited, i.e. it will grow as data is added to the NetCDF file.\n\nFor example:\n\nusing NCDatasets\nds = NCDataset(\"/tmp/test.nc\",\"c\")\ndefDim(ds,\"lon\",100)\n# [...]\nclose(ds)\n\nThis defines the dimension lon with the size 100.\n\nTo create a variable with an unlimited dimensions use for example:\n\nusing NCDatasets\nds = NCDataset(\"/tmp/test2.nc\",\"c\")\ndefDim(ds,\"lon\",10)\ndefDim(ds,\"lat\",10)\ndefDim(ds,\"time\",Inf)\ndefVar(ds,\"unlimited_variable\",Float64,(\"lon\",\"lat\",\"time\"))\n@show ds.dim[\"time\"]\n# returns 0 as no data is added\nds[\"unlimited_variable\"][:,:,:] = randn(10,10,4)\n@show ds.dim[\"time\"]\n# returns now 4 as 4 time slice have been added\nclose(ds)\n\n\n\n\n\nCommonDatamodel.defDim(ds::AbstractDataset,name::SymbolOrString,len)\n\nCreate dimension with the name name in the data set ds with the length len. len can be Inf for unlimited dimensions.\n\n\n\n\n\n","category":"function"},{"location":"dimensions/#CommonDataModel.unlimited-Tuple{NCDatasets.Dimensions}","page":"Dimensions","title":"CommonDataModel.unlimited","text":"unlimited(d::Dimensions)\nunlimited(ds::AbstractNCDataset)\n\nReturn the names of all unlimited dimensions.\n\n\n\n\n\n","category":"method"},{"location":"dimensions/#Base.setindex!-Tuple{NCDatasets.Dimensions, Any, AbstractString}","page":"Dimensions","title":"Base.setindex!","text":"Base.setindex!(d::Dimensions,len,name::AbstractString)\n\nDefines the dimension called name to the length len. Generally dimension are defined by indexing, for example:\n\nds = NCDataset(\"file.nc\",\"c\")\nds.dim[\"longitude\"] = 100\n\nIf len is the special value Inf, then the dimension is considered as unlimited, i.e. it will grow as data is added to the NetCDF file.\n\n\n\n\n\n","category":"method"},{"location":"dimensions/","page":"Dimensions","title":"Dimensions","text":"One can iterate over a list of dimensions as follows:","category":"page"},{"location":"dimensions/","page":"Dimensions","title":"Dimensions","text":"for (dimname,dim) in ds.dim\n # all dimensions\n @show (dimname,dim)\nend","category":"page"},{"location":"#NCDatasets.jl","page":"Introduction","title":"NCDatasets.jl","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Documentation for NCDatasets.jl, a Julia package for loading and writing NetCDF (Network Common Data Form) files.","category":"page"},{"location":"#Installation","page":"Introduction","title":"Installation","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Inside the Julia shell, you can download and install using the following commands:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"using Pkg\nPkg.add(\"NCDatasets\")","category":"page"},{"location":"#Latest-development-version","page":"Introduction","title":"Latest development version","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"If you want to try the latest development version, again go into package manager mode and simply type","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"using Pkg\nPkg.add(PackageSpec(name=\"NCDatasets\", rev=\"master\"))","category":"page"},{"location":"#Contents","page":"Introduction","title":"Contents","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"To get started quickly see the Quickstart section. Otherwise see the following pages for details:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Datasets : reading/writing NetCDF datasets (including NetCDF groups) and examining their contents.\nDimensions : accessing/creating NetCDF dimensions\nVariables : accessing/examining the variables (or dimensions) stored within a NetCDF dataset.\nAttributes : accessing/creating NetCDF attributes\nSee Performance tips, Known issues, Experimental features for more information.","category":"page"},{"location":"#Quickstart","page":"Introduction","title":"Quickstart","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"This is a quickstart guide that outlines basic loading, reading, etc. usage. For more details please see the individual pages of the documentation.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Explore the content of a netCDF file\nLoad a netCDF file\nCreate a netCDF file\nEdit an existing netCDF file\nCreate a netCDF file using the metadata of an existing netCDF file as template\nGet one or several variables by specifying the value of an attribute\nLoad a file with unknown structure","category":"page"},{"location":"#Explore-the-content-of-a-netCDF-file","page":"Introduction","title":"Explore the content of a netCDF file","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Before reading the data from a netCDF file, it is often useful to explore the list of variables and attributes defined in it.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"For interactive use, the following commands (without ending semicolon) display the content of the file similarly to ncdump -h file.nc:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"using NCDatasets\nds = NCDataset(\"file.nc\")","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"which produces a listing like:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"NCDataset: file.nc\nGroup: /\n\nDimensions\n time = 115\n\nVariables\n time (115)\n Datatype: Float64\n Dimensions: time\n Attributes:\n calendar = gregorian\n standard_name = time\n units = days since 1950-01-01 00:00:00\n[...]","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"This creates the central structure of NCDatasets.jl, NCDataset, which represents the contents of the netCDF file (without immediately loading everything in memory).","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"The following displays the information just for the variable varname:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"ds[\"varname\"]","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"To get a list of global attributes, you can use:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"ds.attrib","category":"page"},{"location":"#Load-a-netCDF-file","page":"Introduction","title":"Load a netCDF file","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Loading a variable with known structure can be achieved by accessing the variables and attributes directly by their name.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"# The mode \"r\" stands for read-only. The mode \"r\" is the default mode and the parameter can be omitted.\nds = NCDataset(\"/tmp/test.nc\",\"r\")\nv = ds[\"temperature\"]\n\n# load a subset\nsubdata = v[10:30,30:5:end]\n\n# load all data\ndata = v[:,:]\n\n# load all data ignoring attributes like scale_factor, add_offset, _FillValue and time units\ndata2 = v.var[:,:]\n\n\n# load an attribute\nunit = v.attrib[\"units\"]\nclose(ds)","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"In the example above, the subset can also be loaded with:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"subdata = NCDataset(\"/tmp/test.nc\")[\"temperature\"][10:30,30:5:end]","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"This might be useful in an interactive session. However, the file test.nc is not closed, which can be a problem if you open many files. On Linux the number of opened files is often limited to 1024 (soft limit). If you write to a file, you should also always close the file to make sure that the data is properly written to the disk. (open files will get closed eventually when the dataset variable is finalized by julia's garbage collector).","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"An alternative way to ensure the file has been closed is to use a do block: the file will be closed automatically when leaving the block.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"data = NCDataset(filename,\"r\") do ds\n ds[\"temperature\"][:,:]\nend # ds is closed","category":"page"},{"location":"#Create-a-netCDF-file","page":"Introduction","title":"Create a netCDF file","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"The following gives an example of how to create a netCDF file by defining dimensions, variables and attributes.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"using NCDatasets\n# This creates a new NetCDF file /tmp/test.nc.\n# The mode \"c\" stands for creating a new file (clobber)\nds = NCDataset(\"/tmp/test.nc\",\"c\")\n\n# Define the dimension \"lon\" and \"lat\" with the size 100 and 110 resp.\ndefDim(ds,\"lon\",100)\ndefDim(ds,\"lat\",110)\n\n# Define a global attribute\nds.attrib[\"title\"] = \"this is a test file\"\n\n# Define the variables temperature\nv = defVar(ds,\"temperature\",Float32,(\"lon\",\"lat\"))\n\n# Generate some example data\ndata = [Float32(i+j) for i = 1:100, j = 1:110]\n\n# write a single column\nv[:,1] = data[:,1]\n\n# write a the complete data set\nv[:,:] = data\n\n# write attributes\nv.attrib[\"units\"] = \"degree Celsius\"\nv.attrib[\"comments\"] = \"this is a string attribute with Unicode Ω ∈ ∑ ∫ f(x) dx\"\n\nclose(ds)","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"An equivalent way to create the previous netCDF would be the following code:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"using NCDatasets\nusing DataStructures\ndata = [Float32(i+j) for i = 1:100, j = 1:110]\n\nDataset(\"/tmp/test2.nc\",\"c\",attrib = OrderedDict(\"title\" => \"this is a test file\")) do ds\n # Define the variable temperature. The dimension \"lon\" and \"lat\" with the\n # size 100 and 110 resp are implicetly created\n defVar(ds,\"temperature\",data,(\"lon\",\"lat\"), attrib = OrderedDict(\n \"units\" => \"degree Celsius\",\n \"comments\" => \"this is a string attribute with Unicode Ω ∈ ∑ ∫ f(x) dx\"\n ))\nend","category":"page"},{"location":"#Edit-an-existing-netCDF-file","page":"Introduction","title":"Edit an existing netCDF file","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"When you need to modify the variables or the attributes of a netCDF, you have to open it with the \"a\" option. Here, for instance, we add a global attribute creator to the file created in the previous step.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"ds = NCDataset(\"/tmp/test.nc\",\"a\")\nds.attrib[\"creator\"] = \"your name\"\nclose(ds);","category":"page"},{"location":"#Create-a-netCDF-file-using-the-metadata-of-an-existing-netCDF-file-as-template","page":"Introduction","title":"Create a netCDF file using the metadata of an existing netCDF file as template","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"The utility function ncgen generates the Julia code that would produce a netCDF file with the same metadata as a template netCDF file. It is thus similar to the command line tool ncgen.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"# download example file\nncfile = download(\"https://www.unidata.ucar.edu/software/netcdf/examples/sresa1b_ncar_ccsm3-example.nc\")\n# generate Julia code\nncgen(ncfile)","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"The produces the Julia code (only the beginning of the code is shown):","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"ds = NCDataset(\"filename.nc\",\"c\")\n# Dimensions\n\nds.dim[\"lat\"] = 128;\nds.dim[\"lon\"] = 256;\nds.dim[\"bnds\"] = 2;\nds.dim[\"plev\"] = 17;\nds.dim[\"time\"] = 1;\n\n# Declare variables\n\nncarea = defVar(ds,\"area\", Float32, (\"lon\", \"lat\"))\nncarea.attrib[\"long_name\"] = \"Surface area\";\nncarea.attrib[\"units\"] = \"meter2\";\n# ...","category":"page"},{"location":"#Get-one-or-several-variables-by-specifying-the-value-of-an-attribute","page":"Introduction","title":"Get one or several variables by specifying the value of an attribute","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"The variable names are not always standardized. For example, for the longitude we can find: lon, LON, longitude, ...","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"The solution implemented in the function varbyattrib consists in searching for the variables that have specified value for a given attribute.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"nclon = varbyattrib(ds, standard_name = \"longitude\");","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"will return the list of variables of the dataset ds that have \"longitude\" as standard name. To directly load the data of the first variable with the attribute standard_name equal to \"longitude\" one can do the following:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"data = varbyattrib(ds, standard_name = \"longitude\")[1][:]","category":"page"},{"location":"#Load-a-file-with-unknown-structure","page":"Introduction","title":"Load a file with unknown structure","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"If the structure of the netCDF file is not known before-hand, the program must check if a variable or attribute exists (with the haskey function) before loading it or alternatively place the loading in a try-catch block. It is also possible to iterate over all variables or attributes (global attributes or variable attributes) in the same syntax as iterating over a dictionary. However, unlike Julia dictionaries, the order of the attributes and variables is preserved and presented as they are stored in the netCDF file.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"# Open a file as read-only\nds = NCDataset(\"/tmp/test.nc\",\"r\")\n\n# check if a file has a variable with a given name\nif haskey(ds,\"temperature\")\n println(\"The file has a variable 'temperature'\")\nend\n\n# get a list of all variable names\n@show keys(ds)\n\n# iterate over all variables\nfor (varname,var) in ds\n @show (varname,size(var))\nend\n\n# query size of a variable (without loading it)\nv = ds[\"temperature\"]\n@show size(v)\n\n# similar for global and variable attributes\n\nif haskey(ds.attrib,\"title\")\n println(\"The file has the global attribute 'title'\")\nend\n\n# get an list of all attribute names\n@show keys(ds.attrib)\n\n# iterate over all attributes\nfor (attname,attval) in ds.attrib\n @show (attname,attval)\nend\n\n# get the attribute \"units\" of the variable v\n# but return the default value (here \"adimensional\")\n# if the attribute does not exists\n\nunits = get(v,\"units\",\"adimensional\")\nclose(ds)","category":"page"}] +} diff --git a/v0.13.1/siteinfo.js b/v0.13.1/siteinfo.js new file mode 100644 index 00000000..63be34ec --- /dev/null +++ b/v0.13.1/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "v0.13.1"; diff --git a/v0.13.1/tutorials/index.html b/v0.13.1/tutorials/index.html new file mode 100644 index 00000000..8d2e7619 --- /dev/null +++ b/v0.13.1/tutorials/index.html @@ -0,0 +1,141 @@ + +Tutorials · NCDatasets.jl

      Tutorials

      Data from Copernicus Marine

      This examples shows how to download sea surface temperature from the Mediterranean Sea High Resolution and Ultra High Resolution Sea Surface Temperature Analysis provided by Copernicus Marine Service. Username and password are obtained after registration.

      The username and password can be added to the URL. For example https://example.org/path should become https://username:password@example.org/path:

      using NCDatasets, PyPlot, Statistics, URIs
      +
      +username = "your_username"
      +password = "your_password"
      +
      +url = "https://nrt.cmems-du.eu/thredds/dodsC/SST_MED_SST_L4_NRT_OBSERVATIONS_010_004_a_V2"
      +
      +# add username and password to url
      +# username or password can contain special characters
      +username_escaped = URIs.escapeuri(username)
      +password_escaped = URIs.escapeuri(password)
      +url2 = string(URI(URI(url),userinfo = string(username_escaped,":",password_escaped)))
      +
      +ds = NCDataset(url2)
      +
      +ncvar = ds["analysed_sst"];
      +SST = ncvar[:,:,1]
      +lon = ds["lon"][:]
      +lat = ds["lat"][:]
      +time = ds["time"][1]
      +
      +clf()
      +pcolormesh(lon,lat,nomissing(SST,NaN)')
      +cbar = colorbar(orientation="horizontal")
      +cbar.set_label(ncvar.attrib["units"])
      +gca().set_aspect(1/cosd(mean(lat)))
      +
      +title("$(ncvar.attrib["long_name"]) $time")

      Alternatively, one can also create the files .netrc and .ncrc in the your home directory with your credentials as explained for the NASA EarthData example which allows you to manage your passwords in a central configuration file and reduce the risk to accidentally share your credentials.

      example_SST_CMEMS.png

      Data from NASA EarthData

      This example shows show to download data via OPeNDAP from the NASA EarthData which requires a username and password.

      You need to be registered at https://urs.earthdata.nasa.gov/users/new to get your credentials.

      The example requires NCDatasets 0.12.5.

      Simply adding username and password to the URL for NASA Earth Data OPeNDPAP services is unfortunately not sufficient as it uses a different authentication mechanism.

      Create a .netrc file with the following content in your home directory:

      machine urs.earthdata.nasa.gov
      +    login YOUR_USERNAME
      +    password YOUR_PASSWORD

      where YOUR_USERNAME and YOUR_PASSWORD is your Earth Data username and password.

      Create a .ncrc file with the following content in your home directory[1]:

      HTTP.NETRC=/home/abarth/.netrc

      where HTTP.NETRC is the full path to your new .netrc file[2]. You can test whether your configuration files are correct independently of NCDatasets by using the tool ncdump:

      ncdump -h "https://opendap.earthdata.nasa.gov/providers/POCLOUD/collections/GHRSST%20Level%204%20MUR%20Global%20Foundation%20Sea%20Surface%20Temperature%20Analysis%20(v4.1)/granules/20190101090000-JPL-L4_GHRSST-SSTfnd-MUR-GLOB-v02.0-fv04.1"

      This should return the metadata of the OPeNDAP resource:

      netcdf \20190101090000-JPL-L4_GHRSST-SSTfnd-MUR-GLOB-v02.0-fv04 {
      +dimensions:
      +	lat = 17999 ;
      +	lon = 36000 ;
      +	time = 1 ;
      +variables:
      +	short analysed_sst(time, lat, lon) ;
      +[...]

      This is the typical error message which is returned when the credentials are not configured properly:

      syntax error, unexpected WORD_WORD, expecting SCAN_ATTR or SCAN_DATASET or SCAN_ERROR
      +context: HTTP^ Basic: Access denied.

      When there is an error on the server side (500 internal server error), you might get the following error:

      syntax error, unexpected $end, expecting SCAN_ATTR or SCAN_DATASET or SCAN_ERROR
      +context: ^
      +ncdump: https://opendap.earthdata.nasa.gov/providers/POCLOUD/collections/GHRSST%20Level%204%20MUR%20Global%20Foundation%20Sea%20Surface%20Temperature%20Analysis%20(v4.1)/granules/20190101090000-JPL-L4_GHRSST-SSTfnd-MUR-GLOB-v02.0-fv04.1: NetCDF: Malformed or inaccessible DAP2 DDS or DAP4 DMR response

      Here we use the GHRSST Level 4 MUR Global Foundation Sea Surface Temperature Analysis (v4.1) dataset. In the following example, we download the data via OPeNDAP for a chosen bounding box and given time instance.

      using NCDatasets, PyPlot, Dates, Statistics
      +
      +url = "https://opendap.earthdata.nasa.gov/providers/POCLOUD/collections/GHRSST%20Level%204%20MUR%20Global%20Foundation%20Sea%20Surface%20Temperature%20Analysis%20(v4.1)/granules/20190101090000-JPL-L4_GHRSST-SSTfnd-MUR-GLOB-v02.0-fv04.1"
      +
      +ds = NCDataset(url)
      +
      +# range of longitude
      +lonr = (-6, 37.0)
      +
      +# range of latitude
      +latr = (29, 45.875)
      +
      +ds_subset = NCDatasets.@select(
      +    ds["analysed_sst"],
      +    $lonr[1] <= lon <= $lonr[2] && $latr[1] <= lat <= $latr[2])
      +
      +ncvar = ds_subset["analysed_sst"]
      +SST = ncvar[:,:,1]
      +lon = ds_subset["lon"][:]
      +lat = ds_subset["lat"][:]
      +time = ds_subset["time"][1]
      +
      +
      +clf()
      +pcolormesh(lon,lat,nomissing(SST,NaN)');
      +gca().set_aspect(1/cosd(mean(lat)))
      +
      +cbar = colorbar(orientation="horizontal")
      +cbar.set_label(ncvar.attrib["units"])
      +
      +plt.title("$(ncvar.attrib["long_name"]) $time")

      This script produces the following plot:

      example_SST.png

      Access data from S3 object storage

      NASA EarthData is also available from AWS S3 object storage at the AWS region us-west-2. This example assumes that you have access to an AWS instance in this region (available through e.g. Pangeo Cloud after registration thanks to funding from the NASA's ACCESS/AWS Cloud Credits for Research program and the fine folks at Pangeo).

      The S3 access tokens available from https://archive.podaac.earthdata.nasa.gov/s3credentials are only valid for 1 hour. It is therefore preferable to get this token programmatically using your EarthData username and password. The function earthdata_s3credentials is a translation of "Sample script to receive credentials" to Julia:

      using AWS, Base64, JSON3, HTTP, NCDatasets, URIs
      +using AWS: @service
      +@service S3
      +
      +function earthdata_s3credentials(
      +    username, password;
      +    credentials_url = "https://archive.podaac.earthdata.nasa.gov/s3credentials")
      +
      +    origin = URI(credentials_url).scheme
      +
      +    resp = HTTP.get(credentials_url,redirect=false)
      +    authorize_url = Dict(resp.headers)["Location"]
      +
      +    auth = base64encode(string(username,":",password))
      +
      +    resp2 = HTTP.post(authorize_url,["Origin" => origin],
      +                      "credentials=$auth",redirect=false)
      +    redirect_url=Dict(resp2.headers)["Location"]
      +
      +    # cookie jar
      +    jar = Dict{String, Set{HTTP.Cookie}}()
      +
      +    # raises a 500 error, as in the shell script, but we get a cookie!
      +    HTTP.get(redirect_url; cookies=true,
      +             cookiejar = jar, redirect = false,
      +             status_exception = false)
      +
      +    resp4 = HTTP.get(credentials_url; cookies=true, cookiejar = jar, redirect = false)
      +
      +    cred = JSON3.read(resp4.body)
      +    return cred
      +end
      +
      +# add your credentials here (or get it programmatically from environment variables or a file)
      +username = "..."
      +password = "..."
      +
      +cred = earthdata_s3credentials(username,password)
      +@info "Token expires: $(cred.expiration)"
      +
      +
      +ENV["AWS_ACCESS_KEY_ID"] = cred.accessKeyId;
      +ENV["AWS_SECRET_ACCESS_KEY"] = cred.secretAccessKey;
      +ENV["AWS_SESSION_TOKEN"] = cred.sessionToken;
      +
      +c = AWS.global_aws_config();
      +
      +resp = S3.list_objects("podaac-ops-cumulus-protected",
      +     Dict("prefix" => "MODIS_TERRA_L3_SST_MID-IR_DAILY_4KM_NIGHTTIME_V2019.0/",
      +          "delimiter" => '/'))
      +
      +# download the first object
      +data = S3.get_object("podaac-ops-cumulus-protected",resp["Contents"][1]["Key"]);
      +
      +# load the NetCDF dataset
      +ds = NCDataset("temp-memory","r",memory = data)

      Output:

      CDataset: temp-memory
      +Group: /
      +
      +Dimensions
      +   lat = 4320
      +   lon = 8640
      +   rgb = 3
      +   eightbitcolor = 256
      +
      +Variables
      +  sst4   (8640 × 4320)
      +    Datatype:    Int16
      +    Dimensions:  lon × lat
      +    Attributes:
      +     long_name            = 4um Sea Surface Temperature
      +[...]

      The example requires NCDatasets 0.12.5 which allows one to read a NetCDF dataset directly from a vector of bytes in memory.

      To debug, it is useful to run the aws shell command to list all keys in the buckets (it requires the AWS_* environment variables to be set):

      aws s3 ls s3://podaac-ops-cumulus-protected/MODIS_TERRA_L3_SST_THERMAL_DAILY_4KM_NIGHTTIME_V2019.0/
      diff --git a/v0.13.1/variables/index.html b/v0.13.1/variables/index.html new file mode 100644 index 00000000..4614d684 --- /dev/null +++ b/v0.13.1/variables/index.html @@ -0,0 +1,73 @@ + +Variables · NCDatasets.jl

      Variables

      Variables (like e.g. CFVariable) are the quantities contained within a NetCDF dataset. See the Datasets page on how to obtain them from a dataset.

      Different type of arrays are involved when working with NCDatasets. For instance assume that test.nc is a file with a Float32 variable called var. Assume that we open this data set in append mode ("a"):

      using NCDatasets
      +ds = NCDataset("test.nc","a")
      +v_cf = ds["var"]

      The variable v_cf has the type CFVariable. No data is actually loaded from disk, but you can query its size, number of dimensions, number elements, etc., using the functions size, ndims, length as if v_cf was an ordinary Julia array.

      To load the variable v_cf in memory as numeric data you can convert it into an array (preserving its dimensionality structure) with

      Array(v_cf)

      The syntax v_cf[:] is equivalent with the above, it doesn't make a Vector (like it does on normal Julia arrays).

      You can only load sub-parts of it in memory via indexing each dimension:

      v_cf[1:5, 10:20]

      (here you must know the number of dimensions of the variable, as you must access all of them).

      Note

      NCDatasets.Variable and NCDatasets.CFVariable implement the interface of AbstractArray. It is thus possible to call any function that accepts an AbstractArray. But functions like mean, sum (and many more) would load every element individually which is very inefficient for large fields read from disk. You should instead convert such a variable to a standard Julia Array and then do computations with it. See also the performance tips for more information.

      The following functions are convenient for working with variables:

      Base.sizeMethod
      sz = size(var::CFVariable)

      Return a tuple of integers with the size of the variable var.

      Note

      Note that the size of a variable can change, i.e. for a variable with an unlimited dimension.

      CommonDataModel.dimnamesFunction
      dimnames(v::Variable)

      Return a tuple of strings with the dimension names of the variable v.

      source
      dimnames(v::CFVariable)

      Return a tuple of strings with the dimension names of the variable v.

      source
      CommonDataModel.dimnames(v::AbstractVariable)

      Return an iterable of the dimension names of the variable v.

      CommonDatamodel.dimnames(ds::AbstractDataset)

      Return an iterable of all dimension names in ds.

      NCDatasets.dimsizeFunction
      dimsize(v::CFVariable)

      Get the size of a CFVariable as a named tuple of dimension → length.

      source
      CommonDataModel.nameFunction
      name(ds::NCDataset)

      Return the group name of the NCDataset ds

      source
      name(v::Variable)

      Return the name of the NetCDF variable v.

      source
      CommonDatamodel.name(ds::AbstractDataset)

      Name of the group of the data set ds. For a data set containing only a single group, this will be always the root group "/".

      CommonDataModel.name(v::AbstractVariable)

      Return the name of the variable v as a string.

      NCDatasets.NCDatasetMethod
      mfds = NCDataset(fnames, mode = "r"; aggdim = nothing, deferopen = true,
      +              isnewdim = false,
      +              constvars = [])

      Opens a multi-file dataset in read-only "r" or append mode "a". fnames is a vector of file names.

      Variables are aggregated over the first unlimited dimension or over the dimension aggdim if specified. Variables without the dimensions aggdim are not aggregated. All variables containing the dimension aggdim are aggregated. The variable who do not contain the dimension aggdim are assumed constant.

      If variables should be aggregated over a new dimension (not present in the NetCDF file), one should set isnewdim to true. All NetCDF files should have the same variables, attributes and groupes. Per default, all variables will have an additional dimension unless they are marked as constant using the constvars parameter.

      The append mode is only implemented when deferopen is false. If deferopen is false, all files are opened at the same time. However the operating system might limit the number of open files. In Linux, the limit can be controled with the command ulimit.

      All metadata (attributes and dimension length are assumed to be the same for all NetCDF files. Otherwise reading the attribute of a multi-file dataset would be ambiguous. An exception to this rule is the length of the dimension over which the data is aggregated. This aggregation dimension can varify from file to file.

      Setting the experimental flag _aggdimconstant to true means that the length of the aggregation dimension is constant. This speeds up the creating of a multi-file dataset as only the metadata of the first file has to be loaded.

      Examples:

      You can use Glob.jl to make fnames from a file pattern, e.g.

      using NCDatasets, Glob
      +ds = NCDataset(glob("ERA5_monthly3D_reanalysis_*.nc"))

      Aggregation over a new dimension:

      using NCDatasets
      +for i = 1:3
      +  NCDataset("foo$i.nc","c") do ds
      +    defVar(ds,"data",[10., 11., 12., 13.], ("lon",))
      +  end
      +end
      +
      +ds = NCDataset(["foo$i.nc" for i = 1:3],aggdim = "sample", isnewdim = true)
      +size(ds["data"])
      +# output
      +# (4, 3)
      source
      NCDatasets.nomissingFunction
      a = nomissing(da)

      Return the values of the array da of type Array{Union{T,Missing},N} (potentially containing missing values) as a regular Julia array a of the same element type. It raises an error if the array contains at least one missing value.

      source
      a = nomissing(da,value)

      Retun the values of the array da of type AbstractArray{Union{T,Missing},N} as a regular Julia array a by replacing all missing value by value (converted to type T). This function is identical to coalesce.(da,T(value)) where T is the element type of da.

      Example:

      julia> nomissing([missing,1.,2.],NaN)
      +# returns [NaN, 1.0, 2.0]
      source
      CommonDataModel.fillvalueFunction
      fillvalue(::Type{Int8})
      +fillvalue(::Type{UInt8})
      +fillvalue(::Type{Int16})
      +fillvalue(::Type{UInt16})
      +fillvalue(::Type{Int32})
      +fillvalue(::Type{UInt32})
      +fillvalue(::Type{Int64})
      +fillvalue(::Type{UInt64})
      +fillvalue(::Type{Float32})
      +fillvalue(::Type{Float64})
      +fillvalue(::Type{Char})
      +fillvalue(::Type{String})

      Default fill-value for the given type.

      source
      fv = fillvalue(v::Variable)
      +fv = fillvalue(v::CFVariable)

      Return the fill-value of the variable v.

      source
      NCDatasets.load!Function
      NCDatasets.load!(ncvar::Variable, data, indices)

      Loads a NetCDF variables ncvar in-place and puts the result in data along the specified indices. One can use @inbounds annotate code where bounds checking can be elided by the compiler (which typically require type-stable code).

      using NCDatasets
      +ds = NCDataset("file.nc")
      +ncv = ds["vgos"].var;
      +# data must have the right shape and type
      +data = zeros(eltype(ncv),size(ncv));
      +NCDatasets.load!(ncv,data,:,:,:)
      +# or
      +# @inbounds NCDatasets.load!(ncv,data,:,:,:)
      +close(ds)
      +
      +# loading a subset
      +data = zeros(5); # must have the right shape and type
      +load!(ds["temp"].var,data,:,1) # loads the 1st column
      Note

      For a netCDF variable of type NC_CHAR, the element type of the data array must be UInt8 and cannot be the julia Char type, because the julia Char type uses 4 bytes and the NetCDF NC_CHAR only 1 byte.

      source
      NCDatasets.load!(ncvar::CFVariable, data, buffer, indices)

      Loads a NetCDF variables ncvar in-place and puts the result in data (an array of eltype(ncvar)) along the specified indices. buffer is a temporary array of the same size as data but the type should be eltype(ncv.var), i.e. the corresponding type in the NetCDF files (before applying scale_factor, add_offset and masking fill values). Scaling and masking will be applied to the array data.

      data and buffer can be the same array if eltype(ncvar) == eltype(ncvar.var).

      Example:

      # create some test array
      +Dataset("file.nc","c") do ds
      +    defDim(ds,"time",3)
      +    ncvar = defVar(ds,"vgos",Int16,("time",),attrib = ["scale_factor" => 0.1])
      +    ncvar[:] = [1.1, 1.2, 1.3]
      +    # store 11, 12 and 13 as scale_factor is 0.1
      +end
      +
      +
      +ds = Dataset("file.nc")
      +ncv = ds["vgos"];
      +# data and buffer must have the right shape and type
      +data = zeros(eltype(ncv),size(ncv)); # here Vector{Float64}
      +buffer = zeros(eltype(ncv.var),size(ncv)); # here Vector{Int16}
      +NCDatasets.load!(ncv,data,buffer,:,:,:)
      +close(ds)
      source

      Creating a variable

      CommonDataModel.defVarFunction
      defVar(ds::NCDataset,name,vtype,dimnames; kwargs...)
      +defVar(ds::NCDataset,name,data,dimnames; kwargs...)

      Define a variable with the name name in the dataset ds. vtype can be Julia types in the table below (with the corresponding NetCDF type). The parameter dimnames is a tuple with the names of the dimension. For scalar this parameter is the empty tuple (). The variable is returned (of the type CFVariable).

      Instead of providing the variable type one can directly give also the data data which will be used to fill the NetCDF variable. In this case, the dimensions with the appropriate size will be created as required using the names in dimnames.

      If data is a vector or array of DateTime objects, then the dates are saved as double-precision floats and units "days since 1900-01-01 00:00:00" (unless a time unit is specifed with the attrib keyword as described below). Dates are converted to the default calendar in the CF conversion which is the mixed Julian/Gregorian calendar.

      Keyword arguments

      • fillvalue: A value filled in the NetCDF file to indicate missing data. It will be stored in the _FillValue attribute.
      • chunksizes: Vector integers setting the chunk size. The total size of a chunk must be less than 4 GiB.
      • deflatelevel: Compression level: 0 (default) means no compression and 9 means maximum compression. Each chunk will be compressed individually.
      • shuffle: If true, the shuffle filter is activated which can improve the compression ratio.
      • checksum: The checksum method can be :fletcher32 or :nochecksum (checksumming is disabled, which is the default)
      • attrib: An iterable of attribute name and attribute value pairs, for example a Dict, DataStructures.OrderedDict or simply a vector of pairs (see example below)
      • typename (string): The name of the NetCDF type required for vlen arrays

      chunksizes, deflatelevel, shuffle and checksum can only be set on NetCDF 4 files. Compression of strings and variable-length arrays is not supported by the underlying NetCDF library.

      NetCDF data types

      NetCDF TypeJulia Type
      NC_BYTEInt8
      NC_UBYTEUInt8
      NC_SHORTInt16
      NC_INTInt32
      NC_INT64Int64
      NC_FLOATFloat32
      NC_DOUBLEFloat64
      NC_CHARChar
      NC_STRINGString

      Dimension ordering

      The data is stored in the NetCDF file in the same order as they are stored in memory. As julia uses the Column-major ordering for arrays, the order of dimensions will appear reversed when the data is loaded in languages or programs using Row-major ordering such as C/C++, Python/NumPy or the tools ncdump/ncgen (NetCDF CDL). NumPy can also use Column-major ordering but Row-major order is the default. For the column-major interpretation of the dimensions (as in Julia), the CF Convention recommends the order "longitude" (X), "latitude" (Y), "height or depth" (Z) and "date or time" (T) (if applicable). All other dimensions should, whenever possible, be placed to the right of the spatiotemporal dimensions.

      Example:

      In this example, scale_factor and add_offset are applied when the data is saved.

      julia> using DataStructures
      +julia> data = randn(3,5)
      +julia> NCDataset("test_file.nc","c") do ds
      +          defVar(ds,"temp",data,("lon","lat"), attrib = OrderedDict(
      +             "units" => "degree_Celsius",
      +             "add_offset" => -273.15,
      +             "scale_factor" => 0.1,
      +             "long_name" => "Temperature"
      +          ))
      +       end;
      Note

      If the attributes _FillValue, missing_value, add_offset, scale_factor, units and calendar are used, they should be defined when calling defVar by using the parameter attrib as shown in the example above.

      source
      v = CommonDataModel.defVar(ds::AbstractDataset,src::AbstractVariable)

      Defines and return the variable in the data set ds copied from the variable src. The variable name, dimension name, attributes and data are copied from src.

      Storage parameter of a variable

      NCDatasets.chunkingFunction
      storage,chunksizes = chunking(v::Variable)

      Return the storage type (:contiguous or :chunked) and the chunk sizes of the varable v.

      source
      storage,chunksizes = chunking(v::MFVariable)

      Return the storage type (:contiguous or :chunked) and the chunk sizes of the varable v corresponding to the first NetCDF file. If the first NetCDF file in the collection is chunked then this storage attributes are returns. If not the first NetCDF file is not contiguous, then multi-file variable is still reported as chunked with chunk size equal to the variable size.

      source
      NCDatasets.deflateFunction
      isshuffled,isdeflated,deflate_level = deflate(v::Variable)

      Return compression information of the variable v. If shuffle is true, then shuffling (byte interlacing) is activated. If deflate is true, then the data chunks (see chunking) are compressed using the compression level deflate_level (0 means no compression and 9 means maximum compression).

      source
      NCDatasets.checksumFunction
      checksummethod = checksum(v::Variable)

      Return the checksum method of the variable v which can be either be :fletcher32 or :nochecksum.

      source

      Coordinate variables and cell boundaries

      NCDatasets.coordFunction
      cv = coord(v::Union{CFVariable,Variable},standard_name)

      Find the coordinate of the variable v by the standard name standard_name or some standardized heuristics based on units. If the heuristics fail to detect the coordinate, consider to modify the netCDF file to add the standard_name attribute. All dimensions of the coordinate must also be dimensions of the variable v.

      Example

      using NCDatasets
      +ds = NCDataset("file.nc")
      +ncv = ds["SST"]
      +lon = coord(ncv,"longitude")[:]
      +lat = coord(ncv,"latitude")[:]
      +v = ncv[:]
      +close(ds)
      source
      NCDatasets.boundsFunction
      b = bounds(ncvar::NCDatasets.CFVariable)

      Return the CFVariable corresponding to the bounds attribute of the variable ncvar. The time units and calendar from the ncvar are used but not the attributes controling the packing of data scale_factor, add_offset and _FillValue.

      source
      diff --git a/versions.js b/versions.js index f1663eea..10941775 100644 --- a/versions.js +++ b/versions.js @@ -13,5 +13,5 @@ var DOC_VERSIONS = [ "v0.1", "dev", ]; -var DOCUMENTER_NEWEST = "v0.13.0"; +var DOCUMENTER_NEWEST = "v0.13.1"; var DOCUMENTER_STABLE = "stable";